Implementation issues with the Drawing Model [1] have been floating
around for some time.
For whatever reasons, Microsoft is not willing to publicly discuss
their issue with the spec,
beyond the scant details listed below.
That's fine and all.. I'm bringing it to the WHATWG's attention
because it seems to me
like some of the confusion could be avoided were a "standard" PNG
photo available,
demonstrating proper behavior.
I thought this issue was resolved some time ago, but it keeps coming
up.
I don't fault anyone, it's a very subtle part of the spec.
This reference image helped me communicate with Robert (Mozilla)
last year, about the drawing model section.
Screen cap:
http://imgur.com/zUu66.png
Generated from:
https://developer.mozilla.org/en/Canvas_tutorial/Compositing
Thread:
http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-December/024316.html
There seems to still be some disagreement over composting:
https://bugs.webkit.org/show_bug.cgi?id=39177
I thought we had a handle on this, following some slight changes to
the spec by Ian:
http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2009-October/023706.html
Apparently it's not handled yet.
Sending out a flare, hoping that we can get this issue put to rest
before the next round
of major releases.
-Charles
Below are the only public comments I'm aware of, that MS has posted
on the issue:
http://lists.w3.org/Archives/Public/public-canvas-api/2010OctDec/0070.html
Earlier thread...
http://lists.w3.org/Archives/Public/public-canvas-api/2010AprJun/0046.html
These comments lack the detail necessary to provide feedback.
-------- Original Message --------
We initially felt
that the Drawing Model [1], as written in the spec, was
incorrectly defined. We have since consulted with many
graphics experts, and it appears that the spec as written, and
implemented by Firefox and Opera, is the correct definition of
Porter-Duff and composition operations, and its behavior is
acceptable.
Thanks,
Jatinder
[1]
http://dev.w3.org/html5/2dcontext/#drawing-model
Jatinder Mann | Microsoft Program Manager
|
jmann-0li6OtcxBFHby3iVrkZq2A@public.gmane.org
As we were reviewing the
globalCompositeOperation property [1] of the Canvas 2D Context,
we have noticed that there is a large inconsistency with the way
web browsers implement this property.
Firefox 3.6.3 and Opera 10.5 have a
similar behaviour that matches the current version of the Canvas
2D Context spec. Chrome 4.1 and Safari 4.0.5 behave similarly to
each other, albeit differently from the spec. Today, web
developers cannot reliably use this property in designing their
webpages due to this interoperability issue.
We consider that the Safari implementation
of the Drawing Model makes more sense from a web developer point
of view. Most of the Canvas APIs are applied to the next
primitive being drawn. However, the clipping behavior, as
defined in the current Drawing Model [2], affects the current
contents of the Canvas outside of the current primitive being
drawn. The Safari Drawing Model calls for the clipping region to
only affect the current primitive being drawn.
We recommend updating the spec to match
the Safari Drawing Model. We would like to discuss this area in
more detail.
Thank you,
Jatinder
[1]
http://dev.w3.org/html5/2dcontext/#compositing
[2]
http://dev.w3.org/html5/2dcontext/#drawing-model
Jatinder Mann | Microsoft Program Manager
|
jmann-0li6OtcxBFHby3iVrkZq2A@public.gmane.org