[webkit-dev] Request for position: New Canvas 2D API

Maciej Stachowiak mjs at apple.com
Wed May 5 13:37:01 PDT 2021



> On May 3, 2021, at 9:58 AM, Simon Fraser via webkit-dev <webkit-dev at lists.webkit.org> wrote:
> 
> 
>> On May 1, 2021, at 10:07 AM, Aaron Krajeski via webkit-dev <webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>> wrote:
>> 
>> Hi webkit-dev,
>> 
>> This is a request for WebKit's position on New Canvas 2D API <https://github.com/fserb/canvas2D/blob/master/rationale.md> features. 
>> 
>> Explainer/Chrome Dev Summit Video
>> https://github.com/fserb/canvas2d <https://github.com/fserb/canvas2d>
>> https://youtu.be/dfOKFSDG7IM <https://youtu.be/dfOKFSDG7IM>
>> 
>> Summary
>> Updated functionality for the Canvas2D API. Adds nine new features/functions to CanvasRenderingContext2D:
>>   - "ContextLost" and "ContextRestored" events
> 
> Seems reasonable.
> 
>>   - "willReadFrequently" option for canvases where lots of readback is expected
> 
> Seems reasonable.
> 
>>   - CSSColorValues as style inputs
> 
> Seems reasonable (gated on Typed OM support).
> 
>>   - More CSS text modifier support
> 
> WebKit has already expressed support for the proposal.
> 
>>   - A reset function
> 
> We'e already expressed some concerns in the issue.
> 
>>   - A roundRect draw primitive
> 
> Seems reasonable.
> 
>>   - Full 4x4 transformation matrices
> 
> WebKit's architecture on macOS/iOS currently has no way to render these, so we don't support this proposal at this time.
> 
>>   - Conic gradients
> 
> Seems reasonable.
> 
>>   - Better support for SVG filters
> 
> Seems reasonable, although this would have performance implications in our current architecture.

^ On this one I’ll add, it would be better if this could reuse the existing CSS or SVG ways of describing a filter instead of adding a novel way. In addition, the filter syntax here is strictly less expressive than SVG filters; it appears to only support a linear filter chain, rather than a filter graph like SVG does.

> 
> Simon
> 
>> 
>> Contact emails
>> aaronhk at chromium.org <mailto:aaronhk at chromium.org>, fserb at chromium.org <mailto:fserb at chromium.org>
>> 
>> Spec and tests
>>   - WHATWG spec in progress:
>> 	Text Modifiers <https://github.com/whatwg/html/pull/6560>
>> 	Filters <https://github.com/web-platform-tests/wpt>
>> 	Perspective Transforms <https://github.com/whatwg/html/issues/5620>
>> 	reset() <https://github.com/whatwg/html/issues/5618>
>> 	CSSColorValue <https://github.com/whatwg/html/issues/5616>
>> 	willReadFrequently <https://github.com/whatwg/html/issues/5614>
>> 	RoundRect <https://github.com/whatwg/html/issues/5619>
>> 	ConicGradient <https://github.com/whatwg/html/issues/5431>
>> 	Context Loss <https://github.com/whatwg/html/issues/4809>
>>   - MDN spec 
>>          Conic gradient <https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/createConicGradient>
>> 	Text Modifiers <https://github.com/GoogleChromeLabs/puppy-content/pull/23> (via ChromeLabs/puppy-content)
>>   - Web platform tests
>> 	RoundRect	 <https://github.com/web-platform-tests/wpt/tree/7b0ebaccc62b566a1965396e5be7bb2bc06f841f/html/canvas/element/path-objects>
>> 	reset() <https://github.com/web-platform-tests/wpt/tree/master/html/canvas/element/reset>
>> 	Perspective Transforms <https://github.com/web-platform-tests/wpt/tree/master/html/canvas/element/transformations>
>> 	Context Loss <https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/web_tests/fast/canvas/canvas-lost-gpu-context.html?q=f:web_tests%20canvas%20context%20lost&sq=package:chromium> (this is not testable on WPT)
>> 	Filters <https://github.com/web-platform-tests/wpt/tree/master/html/canvas/element/shadows>
>> 	CSSColorValue Input <https://chromium-review.googlesource.com/c/chromium/src/+/2794982>
>> 	WillReadFrequently <https://source.chromium.org/chromium/chromium/src/+/master:third_party/blink/web_tests/fast/canvas/OffscreenCanvas-2d-willReadFrequently.html?q=f:web_tests%20canvas%20willreadfrequently&sq=package:chromium> (testable in WPT, work in progress to add tests there)
>> 	Conic Gradient <https://github.com/web-platform-tests/wpt/blob/master/html/canvas/element/fill-and-stroke-styles/2d.gradient.conic.html>
>> 	Text Modifiers <https://github.com/web-platform-tests/wpt/tree/master/html/canvas/element/drawing-text-to-the-canvas>
>>   - Chrome Status <https://chromestatus.com/feature/6051647656558592>
>> 
>> Look forward to hearing your feedback!
>> 
>> Cheers!
>>   Aaron
>> _______________________________________________
>> webkit-dev mailing list
>> webkit-dev at lists.webkit.org <mailto:webkit-dev at lists.webkit.org>
>> https://lists.webkit.org/mailman/listinfo/webkit-dev
> 
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-dev/attachments/20210505/050e5c76/attachment.htm>


More information about the webkit-dev mailing list