<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.whatwg.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jcgregorio</id>
	<title>WHATWG Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.whatwg.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jcgregorio"/>
	<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/wiki/Special:Contributions/Jcgregorio"/>
	<updated>2026-06-03T10:06:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9560</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9560"/>
		<updated>2014-05-07T17:49:38Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
** [https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBezierPath_Class/Reference/Reference.html#//apple_ref/occ/clm/NSBezierPath/bezierPathWithRoundedRect:xRadius:yRadius: Cocoa]&lt;br /&gt;
** [http://skia-autogen.googlecode.com/svn/docs/html/classSkCanvas.html#a8f5223fd2b9dc377071352c8da9f2a75 Skia]&lt;br /&gt;
* This feature can be polyfilled, see this [https://github.com/jcgregorio/canvas-5-polyfill fork of canvas-5-polyfill]. [http://jcgregorio.github.io/canvas-5-polyfill/ The polyfill in action].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
The values of x, y, width and height describe the rectangle. All the other parameters describe the radii of the corners for the path of the round rect. Each method must create a new subpath containing just the components of the round rect, and must then mark the subpath as closed.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;br /&gt;
* Should these be methods on CanvasPathMethods or only on Path2D?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9559</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9559"/>
		<updated>2014-05-07T17:49:01Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
** [https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBezierPath_Class/Reference/Reference.html#//apple_ref/occ/clm/NSBezierPath/bezierPathWithRoundedRect:xRadius:yRadius: Cocoa]&lt;br /&gt;
** [http://skia-autogen.googlecode.com/svn/docs/html/classSkCanvas.html#a8f5223fd2b9dc377071352c8da9f2a75 Skia]&lt;br /&gt;
* This feature can be polyfilled, see this [https://github.com/jcgregorio/canvas-5-polyfill fork of canvas-5-polyfill]. [http://jcgregorio.github.io/canvas-5-polyfill/ The polyfill in action].&lt;br /&gt;
&lt;br /&gt;
TODO create polyfill in fork of canvas-5-polyfill.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
The values of x, y, width and height describe the rectangle. All the other parameters describe the radii of the corners for the path of the round rect. Each method must create a new subpath containing just the components of the round rect, and must then mark the subpath as closed.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;br /&gt;
* Should these be methods on CanvasPathMethods or only on Path2D?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9558</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9558"/>
		<updated>2014-05-07T13:39:50Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
** [https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBezierPath_Class/Reference/Reference.html#//apple_ref/occ/clm/NSBezierPath/bezierPathWithRoundedRect:xRadius:yRadius: Cocoa]&lt;br /&gt;
** [http://skia-autogen.googlecode.com/svn/docs/html/classSkCanvas.html#a8f5223fd2b9dc377071352c8da9f2a75 Skia]&lt;br /&gt;
* TODO create polyfill in fork of canvas-5-polyfill.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
The values of x, y, width and height describe the rectangle. All the other parameters describe the radii of the corners for the path of the round rect. Each method must create a new subpath containing just the components of the round rect, and must then mark the subpath as closed.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;br /&gt;
* Should these be methods on CanvasPathMethods or only on Path2D?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9557</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9557"/>
		<updated>2014-05-06T20:55:29Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
** [https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSBezierPath_Class/Reference/Reference.html#//apple_ref/occ/clm/NSBezierPath/bezierPathWithRoundedRect:xRadius:yRadius: Cocoa]&lt;br /&gt;
** [http://skia-autogen.googlecode.com/svn/docs/html/classSkCanvas.html#a8f5223fd2b9dc377071352c8da9f2a75 Skia]&lt;br /&gt;
* TODO create polyfill in fork of canvas-5-polyfill.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
The values of x, y, width and height describe the rectangle. All the other parameters describe the radii of the corners for the path of the round rect. Each method must create a new subpath containing just the components of the round rect, and must then mark the subpath as closed.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9556</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9556"/>
		<updated>2014-05-06T20:22:03Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
* TODO create polyfill in fork of canvas-5-polyfill.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
The values of x, y, width and height describe the rectangle. All the other parameters describe the radii of the corners for the path of the round rect. Each method must create a new subpath containing just the components of the round rect, and must then mark the subpath as closed.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9555</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9555"/>
		<updated>2014-05-06T20:21:12Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
The values of x, y, width and height describe the rectangle. All the other parameters describe the radii of the corners for the path of the round rect. Each method must create a new subpath containing just the components of the round rect, and must then mark the subpath as closed.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9554</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9554"/>
		<updated>2014-05-06T20:05:50Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: /* Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
The values of x, y, width and height describe the rectangle. All the other parameters describe the radii of the corners for the path of the round rect.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9553</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9553"/>
		<updated>2014-05-06T19:54:24Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9552</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9552"/>
		<updated>2014-05-06T19:52:15Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: /* Motivation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height, &lt;br /&gt;
        unrestricted float radius);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9551</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9551"/>
		<updated>2014-05-06T19:51:50Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The specification would add the following methods to CanvasPathMethods, which mean they would appear in Path2D and CanvasRenderingContext2D.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    NoInterfaceObject, // Always used on target of &#039;implements&#039;&lt;br /&gt;
] interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height, &lt;br /&gt;
        unrestricted float radius);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9550</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9550"/>
		<updated>2014-05-06T19:50:28Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    NoInterfaceObject, // Always used on target of &#039;implements&#039;&lt;br /&gt;
] interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height, &lt;br /&gt;
        unrestricted float radius);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
Corner curves must not overlap: When the sum of any two adjacent border radii exceeds the size of the border box, the implementation must throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9549</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9549"/>
		<updated>2014-05-06T19:49:28Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: /* Open Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    NoInterfaceObject, // Always used on target of &#039;implements&#039;&lt;br /&gt;
] interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height, &lt;br /&gt;
        unrestricted float radius);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;br /&gt;
* Should the overlap be an error that raises an exception, or should we reduce radii until everything works like the CSS spec does it?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9548</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9548"/>
		<updated>2014-05-06T19:03:05Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: /* Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    NoInterfaceObject, // Always used on target of &#039;implements&#039;&lt;br /&gt;
] interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height, &lt;br /&gt;
        unrestricted float radius);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtl, rtr, rbr, rbl);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner going in a clockwise direction starting from the top-left corner. The radii given are rtl: top-left, rtr: top-right, rbr: bottom-right, rbl: bottom left.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path with a radius given for each corner, both horizontal and vertical dimension, going in a clockwise direction starting from the top-left corner. The radii given are rtlh: top-left-horizontal, rtlv: top-left-vertical, rtrh: top-right-horizontal, rtrv: top-right-vertical, rbrh: bottom-right-horizontal, rbrv: bottom-right-veritcal, rblh: bottom-left-horizontal, rblv: bottom-left-vertical. &lt;br /&gt;
&lt;br /&gt;
Negative values for any radius must cause the implementation to throw an IndexSizeError exception.&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9547</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9547"/>
		<updated>2014-05-06T18:56:19Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: /* Open Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    NoInterfaceObject, // Always used on target of &#039;implements&#039;&lt;br /&gt;
] interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height, &lt;br /&gt;
        unrestricted float radius);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius)&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have the given radius. Negative values for radius must cause the implementation to throw an IndexSizeError exception. If radiusY is omitted, user agents must act as if it had the same value as radiusX.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. Negative values for rh or rv must cause the implementation to throw an IndexSizeError exception. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rtl, rtr, rbr, rbl);&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;br /&gt;
* Should the spec text use horizontal and vertical like the CSS spec, or stick to x and y?&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9546</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9546"/>
		<updated>2014-05-06T18:55:07Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: /* Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    NoInterfaceObject, // Always used on target of &#039;implements&#039;&lt;br /&gt;
] interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height, &lt;br /&gt;
        unrestricted float radius);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius)&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have the given radius. Negative values for radius must cause the implementation to throw an IndexSizeError exception. If radiusY is omitted, user agents must act as if it had the same value as radiusX.&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
&lt;br /&gt;
Adds the path of the round rect to the current path. Every corner will have a horizontal radius of &#039;rh and a verical radius of &#039;rv&#039;. Negative values for rh or rv must cause the implementation to throw an IndexSizeError exception. If rv is omitted, user agents must act as if it had the same value as rh.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius, rtl, rtr, rbr, rbl);&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9545</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9545"/>
		<updated>2014-05-06T18:35:32Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: /* Abstract */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform know of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    NoInterfaceObject, // Always used on target of &#039;implements&#039;&lt;br /&gt;
] interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height, &lt;br /&gt;
        unrestricted float radius);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius)&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
  roundRect(x, y, width, height, radius, rtl, rtr, rbr, rbl);&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
	<entry>
		<id>https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9544</id>
		<title>CanvasRoundRect</title>
		<link rel="alternate" type="text/html" href="https://wiki.whatwg.org/index.php?title=CanvasRoundRect&amp;diff=9544"/>
		<updated>2014-05-06T18:18:38Z</updated>

		<summary type="html">&lt;p&gt;Jcgregorio: Created page with &amp;quot;Proposal to add roundRect() to Path2D.  == Abstract == Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying p...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Proposal to add roundRect() to Path2D.&lt;br /&gt;
&lt;br /&gt;
== Abstract ==&lt;br /&gt;
Roundrects are everywhere, a single call in Path2D to create a round rect can be accelerated as it lets the underlying platform of the intent to draw a round rect, as opposed to merely composing a round rect from a series of individual paths.&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
Follow http://dev.w3.org/csswg/css-backgrounds/#border-radius the rules for css border radius.&lt;br /&gt;
&lt;br /&gt;
== Motivation ==&lt;br /&gt;
&lt;br /&gt;
* Speed. TODO - Add some perf measurements against either native skia, or a patch against blink showing the perf increase.&lt;br /&gt;
* Ease of use.&lt;br /&gt;
* TODO find examples of roundrect in other apis.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WebIDL&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[&lt;br /&gt;
    NoInterfaceObject, // Always used on target of &#039;implements&#039;&lt;br /&gt;
] interface CanvasPathMethods {&lt;br /&gt;
    ...&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height, &lt;br /&gt;
        unrestricted float radius);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rh, unrestricted float rv);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtl, unrestricted float rtr, unrestricted float rbr, unrestricted float rbl);&lt;br /&gt;
    [RaisesException] void roundRect(unrestricted float x, unrestricted float y, unrestricted float width, unrestricted float height,&lt;br /&gt;
        unrestricted float rtlh, unrestricted float rtlv,&lt;br /&gt;
        unrestricted float rtrh, unrestricted float rtrv,&lt;br /&gt;
        unrestricted float rbrh, unrestricted float rbrv,&lt;br /&gt;
        unrestricted float rblh, unrestricted float rblv);&lt;br /&gt;
    ...&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Details ==&lt;br /&gt;
&lt;br /&gt;
  roundRect(x, y, width, height, radius)&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv);&lt;br /&gt;
  roundRect(x, y, width, height, radius, rtl, rtr, rbr, rbl);&lt;br /&gt;
  roundRect(x, y, width, height, radius, rh, rv, rtlh, rtlv, rtrh, rtrv, rbrh, rbrv, rblh, rblv);&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Open Questions ==&lt;br /&gt;
&lt;br /&gt;
* Should these calls be RaisesException? Alternatively they could do nothing for invalid inputs, i.e. negative radii.&lt;/div&gt;</summary>
		<author><name>Jcgregorio</name></author>
	</entry>
</feed>