diff options
Diffstat (limited to 'experimental/svg/model/SkSVGTransformableNode.cpp')
-rw-r--r-- | experimental/svg/model/SkSVGTransformableNode.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/experimental/svg/model/SkSVGTransformableNode.cpp b/experimental/svg/model/SkSVGTransformableNode.cpp index 3636754fcc..2686a4c542 100644 --- a/experimental/svg/model/SkSVGTransformableNode.cpp +++ b/experimental/svg/model/SkSVGTransformableNode.cpp @@ -5,6 +5,8 @@ * found in the LICENSE file. */ +#include "SkCanvas.h" +#include "SkSVGRenderContext.h" #include "SkSVGTransformableNode.h" #include "SkSVGValue.h" @@ -12,6 +14,16 @@ SkSVGTransformableNode::SkSVGTransformableNode(SkSVGTag tag) : INHERITED(tag) , fMatrix(SkMatrix::I()) { } + +bool SkSVGTransformableNode::onPrepareToRender(SkSVGRenderContext* ctx) const { + if (!fMatrix.isIdentity()) { + ctx->canvas()->save(); + ctx->canvas()->concat(fMatrix); + } + + return this->INHERITED::onPrepareToRender(ctx); +} + void SkSVGTransformableNode::onSetAttribute(SkSVGAttribute attr, const SkSVGValue& v) { switch (attr) { case SkSVGAttribute::kTransform: |