aboutsummaryrefslogtreecommitdiffhomepage
path: root/experimental/svg/model/SkSVGTransformableNode.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'experimental/svg/model/SkSVGTransformableNode.cpp')
-rw-r--r--experimental/svg/model/SkSVGTransformableNode.cpp12
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: