[cairo] Road map for remaining pixman refactoring

Simon Thum simon.thum at gmx.de
Thu Aug 27 07:31:18 PDT 2009


> Indeed. As the SVG module owner for Mozilla I've heard quite a few complaints
> about lack of linearRGB support in Mozilla's SVG implementation, especially for
> gradients. It's also the source of conformance test failures for us. If cairo
> could add support that we could expose it would be a great help.
> 
> Jonathan

Jonathan, I fear you're at the heart of a big long-term problem in OS
graphics: Virtually no one cares about linearity. That's why photoshop
is simply better ;(

What's to do?

For starters, cairo might offer distinct ways to specify color:

a) native (transfer function determined by the context/its target
surface, more or less current state)
b) linear RGB
c) sRGB (sRGB transfer function, CM can be added later)

b) and c) might directly convert to a), or better: cairo's surfaces and
patterns could know their intended transfer function, so ops and
back-ends may accomodate properly.

This is relatively simple, and even if support isn't great at first, it
wouldn't harm to code against. More importantly, a widely-used API would
state that ignorance isn't bliss, and get people to at least think about
the matter. Optionally encouraged by deprecating current
cairo_set_source_rgb*() :)

Of course, that's just a small start. As you suggest, gradients need to
be worked out, and I didn't really mention the all the rest.

Cheers,

Simon


More information about the xorg-devel mailing list