GSoC CM collaboration

Graeme Gill graeme2 at
Mon Mar 3 20:21:41 PST 2008

Tomas Carnecky wrote:

> It would be interesting to know how Windows/MacOS handles these issues. 
> Is it handled transparently for all applications? Or does each 
> application have to explicitly ask the OS do convert its colors to the 
> monitor colorspace? Or do these operating systems provide functions for 
> the transformation and each app has to do that manually before it 
> renders the pixels into its window? Can multiple windows be in different 
> colorspaces and still be rendered correctly on the monitor?

The documentation for all that is on line. Search for ColorSync
at Apple, and ICM 2 (old) and WCS (new) at Microsoft.

In general it's been retrofitted to their old graphics API's,
and so allows for default behaviour of color managed unaware
application. It having been done a while ago is also
a disadvantage - the changes aren't always as clean as they could be.

Basically the changes from the graphics API side are about
specifying a few more details about the color spaces being
operated in. Rather than "RGB" it's "This RGB with these
preferences for handling color rendering", plus ancillary
tools for getting color converted from one color space
to another, setting CMM preferences (they all have a plug
in CMM architecture).

There are two approaches to backwards compatible behaviour.

One is to default to the old being device native, and
getting the applications changed to select something else
to take advantage of color management.

The other is to provide a system wide default color
space (ie. sRGB), and then let the applications be changed
if they or their users prefer something. Sometimes new API's
are added to give native color space or color managed access.
Generally the graphics API's are also expanded at
this time to allow for color spaces other than RGB,
so that native printing rendering can be handled.

(Apple uses the horrible convention of setting the
  source space equal to the destination space to magically
  turn the color management off. This ignores the possibility
  that gamut mapping or black might be going on in such a "null" transform.
  Far better to explicitly select the native color space I think.)

Graeme Gill.

More information about the xorg mailing list