Index: Source/core/html/canvas/CanvasRenderingContext2D.h |
diff --git a/Source/core/html/canvas/CanvasRenderingContext2D.h b/Source/core/html/canvas/CanvasRenderingContext2D.h |
index a3f8eb1cfa2181615fba78ba660f01fa79ebf0d4..72e2459c2d25f6acbc32a257c55076b62ed0b331 100644 |
--- a/Source/core/html/canvas/CanvasRenderingContext2D.h |
+++ b/Source/core/html/canvas/CanvasRenderingContext2D.h |
@@ -36,6 +36,8 @@ |
#include "core/platform/graphics/ImageBuffer.h" |
#include "core/platform/graphics/Path.h" |
#include "core/platform/graphics/transforms/AffineTransform.h" |
+#include "core/svg/SVGMatrix.h" |
+#include "core/svg/properties/SVGPropertyTearOff.h" |
#include "wtf/HashMap.h" |
#include "wtf/Vector.h" |
#include "wtf/text/WTFString.h" |
@@ -117,6 +119,20 @@ public: |
void save() { ++m_unrealizedSaveCount; } |
void restore(); |
+ // TODO(dshwang): Need to clean up currentTransform binding methods via improving binding generator script. |
+ // The binding code generated by 'attribute SVGMatix foo' in idl requires foo() and updateFoo(), |
+ // because SVGTransform.idl needs to return the reference of SVGMatrix. |
+ // When JS changes the return value, SVGTransform is applied immediately. |
+ // However, CanvanRenderingContext2D doesn't need the implicit update. |
+ // So updateCurrentTransform() does nothing. |
+ SVGMatrix& currentTransform() |
+ { |
+ m_dummyCurrentTransform = SVGMatrix(state().m_transform); |
+ return m_dummyCurrentTransform; |
+ } |
+ void updateCurrentTransform() { } |
+ void setCurrentTransform(SVGPropertyTearOff<SVGMatrix>*, ExceptionState&); |
+ |
void scale(float sx, float sy); |
void rotate(float angleInRadians); |
void translate(float tx, float ty); |
@@ -330,6 +346,7 @@ private: |
bool m_usesCSSCompatibilityParseMode; |
bool m_hasAlpha; |
MutableStylePropertyMap m_fetchedFonts; |
+ SVGMatrix m_dummyCurrentTransform; |
}; |
} // namespace WebCore |