Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(117)

Side by Side Diff: Source/core/html/canvas/CanvasRenderingContext2D.h

Issue 24233004: Support currentTransform in 2D Canvas. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Remove custom binding based on ch.dumez's work Created 7 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006, 2007, 2009, 2010, 2011, 2012 Apple Inc. All rights reserv ed. 2 * Copyright (C) 2006, 2007, 2009, 2010, 2011, 2012 Apple Inc. All rights reserv ed.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 18 matching lines...) Expand all
29 #include "core/html/canvas/Canvas2DContextAttributes.h" 29 #include "core/html/canvas/Canvas2DContextAttributes.h"
30 #include "core/html/canvas/CanvasPathMethods.h" 30 #include "core/html/canvas/CanvasPathMethods.h"
31 #include "core/html/canvas/CanvasRenderingContext.h" 31 #include "core/html/canvas/CanvasRenderingContext.h"
32 #include "core/platform/graphics/Color.h" 32 #include "core/platform/graphics/Color.h"
33 #include "core/platform/graphics/FloatSize.h" 33 #include "core/platform/graphics/FloatSize.h"
34 #include "core/platform/graphics/Font.h" 34 #include "core/platform/graphics/Font.h"
35 #include "core/platform/graphics/GraphicsTypes.h" 35 #include "core/platform/graphics/GraphicsTypes.h"
36 #include "core/platform/graphics/ImageBuffer.h" 36 #include "core/platform/graphics/ImageBuffer.h"
37 #include "core/platform/graphics/Path.h" 37 #include "core/platform/graphics/Path.h"
38 #include "core/platform/graphics/transforms/AffineTransform.h" 38 #include "core/platform/graphics/transforms/AffineTransform.h"
39 #include "core/svg/SVGMatrix.h"
40 #include "core/svg/properties/SVGPropertyTearOff.h"
39 #include "wtf/HashMap.h" 41 #include "wtf/HashMap.h"
40 #include "wtf/Vector.h" 42 #include "wtf/Vector.h"
41 #include "wtf/text/WTFString.h" 43 #include "wtf/text/WTFString.h"
42 44
43 namespace WebKit { class WebLayer; } 45 namespace WebKit { class WebLayer; }
44 46
45 namespace WebCore { 47 namespace WebCore {
46 48
47 class CanvasGradient; 49 class CanvasGradient;
48 class CanvasPattern; 50 class CanvasPattern;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 112
111 float globalAlpha() const; 113 float globalAlpha() const;
112 void setGlobalAlpha(float); 114 void setGlobalAlpha(float);
113 115
114 String globalCompositeOperation() const; 116 String globalCompositeOperation() const;
115 void setGlobalCompositeOperation(const String&); 117 void setGlobalCompositeOperation(const String&);
116 118
117 void save() { ++m_unrealizedSaveCount; } 119 void save() { ++m_unrealizedSaveCount; }
118 void restore(); 120 void restore();
119 121
122 // TODO(dshwang): Need to clean up currentTransform binding methods via impr oving binding generator script.
123 // The binding code generated by 'attribute SVGMatix foo' in idl requires fo o() and updateFoo(),
124 // because SVGTransform.idl needs to return the reference of SVGMatrix.
125 // When JS changes the return value, SVGTransform is applied immediately.
126 // However, CanvanRenderingContext2D doesn't need the implicit update.
127 // So updateCurrentTransform() does nothing.
128 SVGMatrix& currentTransform()
129 {
130 m_dummyCurrentTransform = SVGMatrix(state().m_transform);
131 return m_dummyCurrentTransform;
132 }
133 void updateCurrentTransform() { }
134 void setCurrentTransform(SVGPropertyTearOff<SVGMatrix>*, ExceptionState&);
135
120 void scale(float sx, float sy); 136 void scale(float sx, float sy);
121 void rotate(float angleInRadians); 137 void rotate(float angleInRadians);
122 void translate(float tx, float ty); 138 void translate(float tx, float ty);
123 void transform(float m11, float m12, float m21, float m22, float dx, float d y); 139 void transform(float m11, float m12, float m21, float m22, float dx, float d y);
124 void setTransform(float m11, float m12, float m21, float m22, float dx, floa t dy); 140 void setTransform(float m11, float m12, float m21, float m22, float dx, floa t dy);
125 void resetTransform(); 141 void resetTransform();
126 142
127 void setStrokeColor(const String& color); 143 void setStrokeColor(const String& color);
128 void setStrokeColor(float grayLevel); 144 void setStrokeColor(float grayLevel);
129 void setStrokeColor(const String& color, float alpha); 145 void setStrokeColor(const String& color, float alpha);
(...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after
323 339
324 virtual bool isTransformInvertible() const { return state().m_invertibleCTM; } 340 virtual bool isTransformInvertible() const { return state().m_invertibleCTM; }
325 341
326 virtual WebKit::WebLayer* platformLayer() const OVERRIDE; 342 virtual WebKit::WebLayer* platformLayer() const OVERRIDE;
327 343
328 Vector<State, 1> m_stateStack; 344 Vector<State, 1> m_stateStack;
329 unsigned m_unrealizedSaveCount; 345 unsigned m_unrealizedSaveCount;
330 bool m_usesCSSCompatibilityParseMode; 346 bool m_usesCSSCompatibilityParseMode;
331 bool m_hasAlpha; 347 bool m_hasAlpha;
332 MutableStylePropertyMap m_fetchedFonts; 348 MutableStylePropertyMap m_fetchedFonts;
349 SVGMatrix m_dummyCurrentTransform;
333 }; 350 };
334 351
335 } // namespace WebCore 352 } // namespace WebCore
336 353
337 #endif 354 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698