Index: experimental/svg/model/SkSVGTransformableNode.cpp |
diff --git a/experimental/svg/model/SkSVGTransformableNode.cpp b/experimental/svg/model/SkSVGTransformableNode.cpp |
index 3636754fcc80c5c18affd8895e80a2773e2f86c5..2686a4c5423d681ede38c94013b2aa21fcf488eb 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: |