6.10.4 Supplied White Point Adjustment Procedures

White point adjustment procedures provided by Xlib are as follows: From an implementation point of view, these white point adjustment procedures convert the color specifications to a device-independent but white-point-dependent color space (for example, CIE L*u*v*, CIE L*a*b*, TekHVC) using one white point and then converting those specifications to the target color space using another white point. In other words, the specification goes in the color space with one white point but comes out with another white point, resulting in a chromatic shift based on the chromatic displacement between the initial white point and target white point. The CIE color spaces that are assumed to be white-point-independent are CIE u'v'Y, CIE XYZ, and CIE xyY. When developing a custom white point adjustment procedure that uses a device-independent color space not initially accessible for use in the color management system, use XcmsAddColorSpace() to insure that it is added.

As an example, if the CCC specifies a white point adjustment procedure and if the Client White Point and Screen White Point differ, the XcmsAllocColor() function will use the white point adjustment procedure twice:

For example, assume the specification is in XcmsCIEuvY and the adjustment procedure is XcmsCIELuvWhiteShiftColors. During conversion to XcmsRGB, the call to XcmsAllocColor() results in the following series of color specification conversions:

The resulting RGB specification is passed to XAllocColor(), and the RGB specification returned by XAllocColor() is converted back to XcmsCIEuvY by reversing the color conversion sequence.
Next: Gamut Querying Functions

Christophe Tronche, ch@tronche.com