diff options
Diffstat (limited to 'experimental/sksg/effects/SkSGTransform.h')
-rw-r--r-- | experimental/sksg/effects/SkSGTransform.h | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/experimental/sksg/effects/SkSGTransform.h b/experimental/sksg/effects/SkSGTransform.h deleted file mode 100644 index 6b7fbc010b..0000000000 --- a/experimental/sksg/effects/SkSGTransform.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright 2017 Google Inc. - * - * Use of this source code is governed by a BSD-style license that can be - * found in the LICENSE file. - */ - -#ifndef SkSGTransform_DEFINED -#define SkSGTransform_DEFINED - -#include "SkSGEffectNode.h" - -#include "SkMatrix.h" - -namespace sksg { - -/** - * Concrete node, wrapping an SkMatrix, with an optional parent Matrix (to allow chaining): - * - * M' = parent x M - */ -class Matrix : public Node { -public: - static sk_sp<Matrix> Make(const SkMatrix& m, sk_sp<Matrix> parent = nullptr) { - return sk_sp<Matrix>(new Matrix(m, std::move(parent))); - } - - ~Matrix() override; - - SG_ATTRIBUTE(Matrix, SkMatrix, fLocalMatrix) - - const SkMatrix& getTotalMatrix() const { return fTotalMatrix; } - -protected: - Matrix(const SkMatrix&, sk_sp<Matrix>); - - SkRect onRevalidate(InvalidationController*, const SkMatrix&) override; - -private: - sk_sp<Matrix> fParent; - SkMatrix fLocalMatrix, - fTotalMatrix; // cached during revalidation - - typedef Node INHERITED; -}; - -/** - * Concrete Effect node, binding a Matrix to a RenderNode. - */ -class Transform final : public EffectNode { -public: - static sk_sp<Transform> Make(sk_sp<RenderNode> child, sk_sp<Matrix> matrix) { - return child && matrix - ? sk_sp<Transform>(new Transform(std::move(child), std::move(matrix))) - : nullptr; - } - - static sk_sp<Transform> Make(sk_sp<RenderNode> child, const SkMatrix& m) { - return Make(std::move(child), Matrix::Make(m)); - } - - ~Transform() override; - - const sk_sp<Matrix>& getMatrix() const { return fMatrix; } - -protected: - void onRender(SkCanvas*) const override; - - SkRect onRevalidate(InvalidationController*, const SkMatrix&) override; - -private: - Transform(sk_sp<RenderNode>, sk_sp<Matrix>); - - const sk_sp<Matrix> fMatrix; - - typedef EffectNode INHERITED; -}; - -} // namespace sksg - -#endif // SkSGTransform_DEFINED |