[whatwg] Enabling LCD Text and antialiasing in canvas

Robert O'Callahan robert at ocallahan.org
Wed Feb 13 20:35:31 PST 2013

On Thu, Feb 14, 2013 at 5:16 PM, Rik Cabanier <cabanier at gmail.com> wrote:

> Looking at the WebKit implementation, I'm unsure how 'opaque' can
> implemented for accelerated canvas. It might work with non-accelerated
> canvas but would have to run some experiments.
> I also look at mozilla's Core Graphics implementation and unless I'm
> missing something, it doesn't have special code to handle 'opaque'. When do
> you use this parameter?

CanvasRenderingContext2D::GetSurfaceFormat is part of the process. That
selects a surface format that is passed down to the graphics layer when
creating the canvas surface. It's true that we don't currently do anything
with that when drawing with CoreGraphics. That would need to be cleaned up
before we started promoting this feature.

Now that you mention it, having to modify the definition of compositing is
a bit of a bummer for the 'opaque' attribute approach. I think we could do
everything we want using your approach --- internally keeping a flag to
indicate whether the alpha values of the canvas are all 1, setting it when
the canvas is filled with a solid color and clearing it when non-over
drawing (or clear()) are used. Let's try that!

But I think "matte" is unnecessarily obscure. How about adding a
clear(DOMString) method that does a 'copy' of the color to the entire
canvas buffer? The color could default to rgba(0,0,0,0).

Wrfhf pnyyrq gurz gbtrgure naq fnvq, “Lbh xabj gung gur ehyref bs gur
Tragvyrf ybeq vg bire gurz, naq gurve uvtu bssvpvnyf rkrepvfr nhgubevgl
bire gurz. Abg fb jvgu lbh. Vafgrnq, jubrire jnagf gb orpbzr terng nzbat
lbh zhfg or lbhe freinag, naq jubrire jnagf gb or svefg zhfg or lbhe fynir
— whfg nf gur Fba bs Zna qvq abg pbzr gb or freirq, ohg gb freir, naq gb
tvir uvf yvsr nf n enafbz sbe znal.” [Znggurj 20:25-28]

More information about the whatwg mailing list