| // Copyright 2013 The Flutter Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style license that can be | |
| // found in the LICENSE file. | |
| #ifndef FLUTTER_FLOW_LAYERS_TRANSFORM_LAYER_H_ | |
| #define FLUTTER_FLOW_LAYERS_TRANSFORM_LAYER_H_ | |
| #include "flutter/flow/layers/container_layer.h" | |
| namespace flutter { | |
| // Be careful that SkMatrix's default constructor doesn't initialize the matrix | |
| // at all. Hence |set_transform| must be called with an initialized SkMatrix. | |
| class TransformLayer : public ContainerLayer { | |
| public: | |
| explicit TransformLayer(const SkMatrix& transform) | |
| : TransformLayer(SkM44(transform)) {} | |
| explicit TransformLayer(const SkM44& transform); | |
| void Diff(DiffContext* context, const Layer* old_layer) override; | |
| void Preroll(PrerollContext* context) override; | |
| void Paint(PaintContext& context) const override; | |
| private: | |
| SkM44 transform_; | |
| FML_DISALLOW_COPY_AND_ASSIGN(TransformLayer); | |
| }; | |
| } // namespace flutter | |
| #endif // FLUTTER_FLOW_LAYERS_TRANSFORM_LAYER_H_ |