typedef unsigned long XcmsColorFormat; /* Color Specification Format */typedef struct { union { XcmsRGB RGB; XcmsRGBi RGBi; XcmsCIEXYZ CIEXYZ; XcmsCIEuvY CIEuvY; XcmsCIExyY CIExyY; XcmsCIELab CIELab; XcmsCIELuv CIELuv; XcmsTekHVC TekHVC; XcmsPad Pad; } spec; unsigned long pixel; XcmsColorFormat format; } XcmsColor; /* Xcms Color Structure */
typedef double XcmsFloat;typedef struct { unsigned short red; /* 0x0000 to 0xffff */ unsigned short green; /* 0x0000 to 0xffff */ unsigned short blue; /* 0x0000 to 0xffff */ } XcmsRGB; /* RGB Device */
typedef struct {
XcmsFloat red; /* 0.0 to 1.0 */
XcmsFloat green; /* 0.0 to 1.0 */
XcmsFloat blue; /* 0.0 to 1.0 */
} XcmsRGBi; /* RGB Intensity */
typedef struct {
XcmsFloat X;
XcmsFloat Y; /* 0.0 to 1.0 */
XcmsFloat Z;
} XcmsCIEXYZ; /* CIE XYZ */
typedef struct {
XcmsFloat u_prime; /* 0.0 to ~0.6 */
XcmsFloat v_prime; /* 0.0 to ~0.6 */
XcmsFloat Y; /* 0.0 to 1.0 */
} XcmsCIEuvY; /* CIE u'v'Y */
typedef struct {
XcmsFloat x; /* 0.0 to ~.75 */
XcmsFloat y; /* 0.0 to ~.85 */
XcmsFloat Y; /* 0.0 to 1.0 */
} XcmsCIExyY; /* CIE xyY */
typedef struct {
XcmsFloat L_star; /* 0.0 to 100.0 */
XcmsFloat a_star;
XcmsFloat b_star;
} XcmsCIELab; /* CIE L*a*b* */
typedef struct {
XcmsFloat L_star; /* 0.0 to 100.0 */
XcmsFloat u_star;
XcmsFloat v_star;
} XcmsCIELuv; /* CIE L*u*v* */
typedef struct {
XcmsFloat H; /* 0.0 to 360.0 */
XcmsFloat V; /* 0.0 to 100.0 */
XcmsFloat C; /* 0.0 to 100.0 */
} XcmsTekHVC; /* TekHVC */
typedef struct {
XcmsFloat pad0;
XcmsFloat pad1;
XcmsFloat pad2;
XcmsFloat pad3;
} XcmsPad; /* four doubles */