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

Unified Diff: Source/core/html/canvas/CanvasRenderingContext2D.idl

Issue 282873004: IDL: overload resolution for string and enumeration arguments (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Rebaseline tests Created 6 years, 7 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/html/FormData.idl ('k') | Source/modules/mediastream/RTCDataChannel.idl » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/html/canvas/CanvasRenderingContext2D.idl
diff --git a/Source/core/html/canvas/CanvasRenderingContext2D.idl b/Source/core/html/canvas/CanvasRenderingContext2D.idl
index 4aa31cae745a60c3f26ef7c257795345d09268cd..f3050e36eabfba836f0bf092d27208c9beeee484 100644
--- a/Source/core/html/canvas/CanvasRenderingContext2D.idl
+++ b/Source/core/html/canvas/CanvasRenderingContext2D.idl
@@ -23,90 +23,104 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-enum CanvasWindingRule { "nonzero", "evenodd" };
+// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#canvasrenderingcontext2d
+
+// FIXME: float => double throughout
+// FIXME: Use union type in drawImage and createPattern once supported:
+// http://crbug.com/372891
+typedef (HTMLImageElement or
+ HTMLVideoElement or
+ HTMLCanvasElement // or
+ // CanvasRenderingContext2D or
+ // ImageBitmap
+ ) CanvasImageSource;
+
+enum CanvasFillRule { "nonzero", "evenodd" };
[
TypeChecking=Interface|Nullable|Unrestricted,
WillBeGarbageCollected,
] interface CanvasRenderingContext2D {
-
+ // back-reference to the canvas
readonly attribute HTMLCanvasElement canvas;
- void save();
- void restore();
+ // state
+ void save(); // push state on state stack
+ void restore(); // pop state stack and restore state
+ // transformations (default transform is the identity matrix)
[RuntimeEnabled=ExperimentalCanvasFeatures] attribute SVGMatrix currentTransform;
- void scale(unrestricted float sx, unrestricted float sy);
+ void scale(unrestricted float x, unrestricted float y);
void rotate(unrestricted float angle);
- void translate(unrestricted float tx, unrestricted float ty);
- void transform(unrestricted float m11, unrestricted float m12, unrestricted float m21, unrestricted float m22, unrestricted float dx, unrestricted float dy);
- void setTransform(unrestricted float m11, unrestricted float m12, unrestricted float m21, unrestricted float m22, unrestricted float dx, unrestricted float dy);
+ void translate(unrestricted float x, unrestricted float y);
+ void transform(unrestricted float a, unrestricted float b, unrestricted float c, unrestricted float d, unrestricted float e, unrestricted float f);
+ void setTransform(unrestricted float a, unrestricted float b, unrestricted float c, unrestricted float d, unrestricted float e, unrestricted float f);
void resetTransform();
- attribute unrestricted float globalAlpha;
- [TreatNullAs=NullString] attribute DOMString globalCompositeOperation;
+ // compositing
+ attribute unrestricted float globalAlpha; // (default 1.0)
+ [TreatNullAs=NullString] attribute DOMString globalCompositeOperation; // (default source-over)
+
+ // image smoothing
+ [ImplementedAs=imageSmoothingEnabled, MeasureAs=PrefixedImageSmoothingEnabled] attribute boolean webkitImageSmoothingEnabled;
+ [MeasureAs=UnprefixedImageSmoothingEnabled] attribute boolean imageSmoothingEnabled;
+ // colors and styles (see also the CanvasDrawingStyles interface)
+ // FIXME: Use union types when supported: http://crbug.com/372891
+ [Custom] attribute object strokeStyle; // (default black)
+ [Custom] attribute object fillStyle; // (default black)
CanvasGradient createLinearGradient(float x0, float y0, float x1, float y1);
[RaisesException] CanvasGradient createRadialGradient(float x0, float y0, float r0, float x1, float y1, float r1);
+ [RaisesException] CanvasPattern createPattern(HTMLCanvasElement canvas, [TreatNullAs=NullString] DOMString repetitionType);
+ [RaisesException] CanvasPattern createPattern(HTMLImageElement image, [TreatNullAs=NullString] DOMString repetitionType);
+ [RaisesException] CanvasPattern createPattern(HTMLVideoElement image, [TreatNullAs=NullString] DOMString repetitionType);
- attribute unrestricted float lineWidth;
- [TreatNullAs=NullString] attribute DOMString lineCap;
- [TreatNullAs=NullString] attribute DOMString lineJoin;
- attribute unrestricted float miterLimit;
-
+ // shadows
attribute unrestricted float shadowOffsetX;
attribute unrestricted float shadowOffsetY;
attribute unrestricted float shadowBlur;
[TreatNullAs=NullString] attribute DOMString shadowColor;
- void setLineDash(sequence<unrestricted float> dash);
- sequence<unrestricted float> getLineDash();
- attribute unrestricted float lineDashOffset;
-
+ // rects
void clearRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height);
void fillRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height);
+ void strokeRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height);
+ // path API (see also CanvasPathMethods)
void beginPath();
-
- // FIXME: Simplify these using optional CanvasWindingRule once crbug.com/339000 gets fixed.
+ // FIXME: Simplify these using optional CanvasFillRule once crbug.com/339000 gets fixed.
void fill();
+ void fill(CanvasFillRule winding);
[RuntimeEnabled=Path2D] void fill(Path2D path);
- void fill(CanvasWindingRule winding);
- [RuntimeEnabled=Path2D] void fill(Path2D path, CanvasWindingRule winding);
+ [RuntimeEnabled=Path2D] void fill(Path2D path, CanvasFillRule winding);
void stroke();
[RuntimeEnabled=Path2D] void stroke(Path2D path);
- // FIXME: Simplify these using optional CanvasWindingRule once crbug.com/339000 gets fixed.
+ // Focus rings
+ [RuntimeEnabled=ExperimentalCanvasFeatures] void drawFocusIfNeeded(Element element);
+ [RuntimeEnabled=ExperimentalCanvasFeatures] void drawFocusIfNeeded(Path2D path, Element element);
+ [RuntimeEnabled=ExperimentalCanvasFeatures] boolean drawCustomFocusRing(Element element);
+
+ [RuntimeEnabled=ExperimentalCanvasFeatures] void scrollPathIntoView();
+ [RuntimeEnabled=ExperimentalCanvasFeatures] void scrollPathIntoView(Path2D path);
+ // FIXME: Simplify these using optional CanvasFillRule once crbug.com/339000 gets fixed.
void clip();
+ void clip(CanvasFillRule winding);
[RuntimeEnabled=Path2D] void clip(Path2D path);
- void clip(CanvasWindingRule winding);
- [RuntimeEnabled=Path2D] void clip(Path2D path, CanvasWindingRule winding);
-
- // FIXME: Simplify these using optional CanvasWindingRule once crbug.com/339000 gets fixed.
+ [RuntimeEnabled=Path2D] void clip(Path2D path, CanvasFillRule winding);
+ // FIXME: Simplify these using optional CanvasFillRule once crbug.com/339000 gets fixed.
boolean isPointInPath(unrestricted float x, unrestricted float y);
+ boolean isPointInPath(unrestricted float x, unrestricted float y, CanvasFillRule winding);
[RuntimeEnabled=Path2D] boolean isPointInPath(Path2D path, unrestricted float x, unrestricted float y);
- boolean isPointInPath(unrestricted float x, unrestricted float y, CanvasWindingRule winding);
- [RuntimeEnabled=Path2D] boolean isPointInPath(Path2D path, unrestricted float x, unrestricted float y, CanvasWindingRule winding);
+ [RuntimeEnabled=Path2D] boolean isPointInPath(Path2D path, unrestricted float x, unrestricted float y, CanvasFillRule winding);
boolean isPointInStroke(unrestricted float x, unrestricted float y);
[RuntimeEnabled=Path2D] boolean isPointInStroke(Path2D path, unrestricted float x, unrestricted float y);
- [RuntimeEnabled=ExperimentalCanvasFeatures] void scrollPathIntoView();
- [RuntimeEnabled=ExperimentalCanvasFeatures] void scrollPathIntoView(Path2D path);
-
- // text
- attribute DOMString font;
- attribute DOMString textAlign;
- attribute DOMString textBaseline;
+ // text (see also the CanvasDrawingStyles interface)
void fillText(DOMString text, unrestricted float x, unrestricted float y, optional unrestricted float maxWidth);
void strokeText(DOMString text, unrestricted float x, unrestricted float y, optional unrestricted float maxWidth);
-
TextMetrics measureText(DOMString text);
- // Context state
- // Should be merged with WebGL counterpart in CanvasRenderingContext, once no-longer experimental
- [RuntimeEnabled=ExperimentalCanvasFeatures] boolean isContextLost();
-
- void strokeRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height);
-
+ // drawing images
[RaisesException] void drawImage(HTMLImageElement image, unrestricted float x, unrestricted float y);
[RaisesException] void drawImage(HTMLImageElement image, unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height);
[RaisesException] void drawImage(HTMLImageElement image, unrestricted float sx, unrestricted float sy, unrestricted float sw, unrestricted float sh, unrestricted float dx, unrestricted float dy, unrestricted float dw, unrestricted float dh);
@@ -120,32 +134,38 @@ enum CanvasWindingRule { "nonzero", "evenodd" };
[RuntimeEnabled=ExperimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap imageBitmap, unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height);
[RuntimeEnabled=ExperimentalCanvasFeatures, RaisesException] void drawImage(ImageBitmap imageBitmap, unrestricted float sx, unrestricted float sy, unrestricted float sw, unrestricted float sh, unrestricted float dx, unrestricted float dy, unrestricted float dw, unrestricted float dh);
- void putImageData(ImageData imagedata, float dx, float dy);
- void putImageData(ImageData imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight);
-
- [RaisesException] CanvasPattern createPattern(HTMLCanvasElement canvas, [TreatNullAs=NullString] DOMString repetitionType);
- [RaisesException] CanvasPattern createPattern(HTMLImageElement image, [TreatNullAs=NullString] DOMString repetitionType);
- [RaisesException] CanvasPattern createPattern(HTMLVideoElement image, [TreatNullAs=NullString] DOMString repetitionType);
+ // pixel manipulation
ImageData createImageData(ImageData imagedata);
[RaisesException] ImageData createImageData(float sw, float sh);
+ [RaisesException] ImageData getImageData(float sx, float sy, float sw, float sh);
+ void putImageData(ImageData imagedata, float dx, float dy);
+ void putImageData(ImageData imagedata, float dx, float dy, float dirtyX, float dirtyY, float dirtyWidth, float dirtyHeight);
- [Custom] attribute object strokeStyle;
- [Custom] attribute object fillStyle;
+ // Context state
+ // Should be merged with WebGL counterpart in CanvasRenderingContext, once no-longer experimental
+ [RuntimeEnabled=ExperimentalCanvasFeatures] boolean isContextLost();
- // pixel manipulation
- [RaisesException] ImageData getImageData(float sx, float sy, float sw, float sh);
+ Canvas2DContextAttributes getContextAttributes();
- // Focus rings
- [RuntimeEnabled=ExperimentalCanvasFeatures] void drawFocusIfNeeded(Element element);
- [RuntimeEnabled=ExperimentalCanvasFeatures] void drawFocusIfNeeded(Path2D path, Element element);
- [RuntimeEnabled=ExperimentalCanvasFeatures] boolean drawCustomFocusRing(Element element);
+ // FIXME: factor out to CanvasDrawingStyles
+ // line caps/joins
+ attribute unrestricted float lineWidth; // (default 1)
+ [TreatNullAs=NullString] attribute DOMString lineCap; // "butt", "round", "square" (default "butt")
+ [TreatNullAs=NullString] attribute DOMString lineJoin; // "round", "bevel", "miter" (default "miter")
+ attribute unrestricted float miterLimit; // (default 10)
- [ImplementedAs=imageSmoothingEnabled, MeasureAs=PrefixedImageSmoothingEnabled] attribute boolean webkitImageSmoothingEnabled;
- [MeasureAs=UnprefixedImageSmoothingEnabled] attribute boolean imageSmoothingEnabled;
+ // dashed lines
+ void setLineDash(sequence<unrestricted float> dash);
+ sequence<unrestricted float> getLineDash();
+ attribute unrestricted float lineDashOffset;
- Canvas2DContextAttributes getContextAttributes();
+ // text
+ attribute DOMString font; // (default 10px sans-serif)
+ attribute DOMString textAlign; // "start", "end", "left", "right", "center" (default: "start")
+ attribute DOMString textBaseline; // "top", "hanging", "middle", "alphabetic", "ideographic", "bottom" (default: "alphabetic")
// Non-standard APIs. Candidates for deprecation
+ // https://developer.mozilla.org/en/docs/Web/API/CanvasRenderingContext2D
[MeasureAs=CanvasRenderingContext2DSetAlpha] void setAlpha(unrestricted float alpha);
[MeasureAs=CanvasRenderingContext2DSetCompositeOperation] void setCompositeOperation(DOMString compositeOperation);
[MeasureAs=CanvasRenderingContext2DSetLineWidth] void setLineWidth(unrestricted float width);
@@ -153,11 +173,11 @@ enum CanvasWindingRule { "nonzero", "evenodd" };
[MeasureAs=CanvasRenderingContext2DSetLineJoin] void setLineJoin(DOMString join);
[MeasureAs=CanvasRenderingContext2DSetMiterLimit] void setMiterLimit(unrestricted float limit);
[MeasureAs=CanvasRenderingContext2DClearShadow] void clearShadow();
- [MeasureAs=CanvasRenderingContext2DSetStrokeColor] void setStrokeColor([LegacyOverloadString] DOMString color, optional unrestricted float alpha);
+ [MeasureAs=CanvasRenderingContext2DSetStrokeColor] void setStrokeColor(DOMString color, optional unrestricted float alpha);
[MeasureAs=CanvasRenderingContext2DSetStrokeColor] void setStrokeColor(unrestricted float grayLevel, optional unrestricted float alpha);
[MeasureAs=CanvasRenderingContext2DSetStrokeColor] void setStrokeColor(unrestricted float r, unrestricted float g, unrestricted float b, unrestricted float a);
[MeasureAs=CanvasRenderingContext2DSetStrokeColor] void setStrokeColor(unrestricted float c, unrestricted float m, unrestricted float y, unrestricted float k, unrestricted float a);
- [MeasureAs=CanvasRenderingContext2DSetFillColor] void setFillColor([LegacyOverloadString] DOMString color, optional unrestricted float alpha);
+ [MeasureAs=CanvasRenderingContext2DSetFillColor] void setFillColor(DOMString color, optional unrestricted float alpha);
[MeasureAs=CanvasRenderingContext2DSetFillColor] void setFillColor(unrestricted float grayLevel, optional unrestricted float alpha);
[MeasureAs=CanvasRenderingContext2DSetFillColor] void setFillColor(unrestricted float r, unrestricted float g, unrestricted float b, unrestricted float a);
[MeasureAs=CanvasRenderingContext2DSetFillColor] void setFillColor(unrestricted float c, unrestricted float m, unrestricted float y, unrestricted float k, unrestricted float a);
« no previous file with comments | « Source/core/html/FormData.idl ('k') | Source/modules/mediastream/RTCDataChannel.idl » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698