[whatwg] CanvasRenderingContext2D with addPath, currentPath

Rik Cabanier cabanier at gmail.com
Mon Nov 4 19:29:40 PST 2013


On Mon, Nov 4, 2013 at 5:21 PM, Robert O'Callahan <robert at ocallahan.org>wrote:

> If you return a path in user-space, what do you get if you call
> getCurrentPath with a singular transform?
>   ctx.moveTo(0,0);
>   ctx.lineTo(1,1);
>   ctx.scale(0,0);
>   var p = ctx.getCurrentPath();
>

I mixed up my terms :-)
getCurrentPath should return the path in device coordinates (not user).

However, for your example, I'm unsure what the right solution is. The
canvas specification is silent on what the behavior is for non-invertible
matrices.
I think setting scale(0,0) or another matrix operation that is not
reversible, should remove drawing operations from the state because:
- how would you stroke with such a matrix?
- how do patterns operate? the same for gradient fills.
- how would you pass this to the underlying graphics library?
- certain operators such as 'arc' rely on doing the transform in reverse.

I seem to remember that for SVG we decided that non-invertible matrices
don't draw either.



More information about the whatwg mailing list