diff options
Diffstat (limited to 'X11/Xcms.h')
| -rw-r--r-- | X11/Xcms.h | 803 | 
1 files changed, 803 insertions, 0 deletions
| diff --git a/X11/Xcms.h b/X11/Xcms.h new file mode 100644 index 000000000..327fdc1f7 --- /dev/null +++ b/X11/Xcms.h @@ -0,0 +1,803 @@ +
 +/*
 + * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
 + * 	All Rights Reserved
 + *
 + * This file is a component of an X Window System-specific implementation
 + * of Xcms based on the TekColor Color Management System.  Permission is
 + * hereby granted to use, copy, modify, sell, and otherwise distribute this
 + * software and its documentation for any purpose and without fee, provided
 + * that this copyright, permission, and disclaimer notice is reproduced in
 + * all copies of this software and in supporting documentation.  TekColor
 + * is a trademark of Tektronix, Inc.
 + *
 + * Tektronix makes no representation about the suitability of this software
 + * for any purpose.  It is provided "as is" and with all faults.
 + *
 + * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
 + * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 + * PARTICULAR PURPOSE.  IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
 + * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
 + * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
 + * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
 + * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
 + *
 + *
 + *	DESCRIPTION
 + *		Public include file for X Color Management System
 + */
 +#ifndef _X11_XCMS_H_
 +#define _X11_XCMS_H_
 +
 +#include <X11/Xlib.h>
 +
 +    /*
 +     * XCMS Status Values
 +     */
 +#define XcmsFailure			0
 +#define XcmsSuccess			1
 +#define XcmsSuccessWithCompression	2
 +
 +    /*
 +     * Color Space Format ID's
 +     *    Color Space ID's are of XcmsColorFormat type.
 +     *
 +     *    bit 31
 +     *	    0 == Device-Independent
 +     *	    1 == Device-Dependent
 +     *
 +     *    bit 30:
 +     *	    0 == Registered with X Consortium
 +     *	    1 == Unregistered
 +     */
 +#define XcmsUndefinedFormat	(XcmsColorFormat)0x00000000
 +#define XcmsCIEXYZFormat	(XcmsColorFormat)0x00000001
 +#define XcmsCIEuvYFormat	(XcmsColorFormat)0x00000002
 +#define XcmsCIExyYFormat	(XcmsColorFormat)0x00000003
 +#define XcmsCIELabFormat	(XcmsColorFormat)0x00000004
 +#define XcmsCIELuvFormat	(XcmsColorFormat)0x00000005
 +#define XcmsTekHVCFormat	(XcmsColorFormat)0x00000006
 +#define XcmsRGBFormat		(XcmsColorFormat)0x80000000
 +#define XcmsRGBiFormat		(XcmsColorFormat)0x80000001
 +
 +    /*
 +     * State of XcmsPerScrnInfo
 +     */
 +#define XcmsInitNone		0x00	/* no initialization attempted */
 +#define XcmsInitSuccess		0x01	/* initialization successful */
 +#define XcmsInitFailure		0xff	/* failure, use defaults */
 +
 +#define DisplayOfCCC(ccc)		((ccc)->dpy)
 +#define ScreenNumberOfCCC(ccc)		((ccc)->screenNumber)
 +#define VisualOfCCC(ccc)		((ccc)->visual)
 +#define ClientWhitePointOfCCC(ccc)	(&(ccc)->clientWhitePt)
 +#define ScreenWhitePointOfCCC(ccc)	(&(ccc)->pPerScrnInfo->screenWhitePt)
 +#define FunctionSetOfCCC(ccc)		((ccc)->pPerScrnInfo->functionSet)
 +
 +typedef unsigned long XcmsColorFormat;	/* Color Space Format ID */
 +
 +typedef double XcmsFloat;
 +
 +    /*
 +     * Device RGB
 +     */
 +typedef struct {
 +    unsigned short red;		/* scaled from 0x0000 to 0xffff */
 +    unsigned short green;	/* scaled from 0x0000 to 0xffff */
 +    unsigned short blue;	/* scaled from 0x0000 to 0xffff */
 +} XcmsRGB;
 +
 +    /*
 +     * RGB Intensity
 +     */
 +typedef struct {
 +    XcmsFloat red;	/* 0.0 - 1.0 */
 +    XcmsFloat green;	/* 0.0 - 1.0 */
 +    XcmsFloat blue;	/* 0.0 - 1.0 */
 +} XcmsRGBi;
 +
 +    /*
 +     * CIE XYZ
 +     */
 +typedef struct {
 +    XcmsFloat X;
 +    XcmsFloat Y;
 +    XcmsFloat Z;
 +} XcmsCIEXYZ;
 +
 +    /*
 +     * CIE u'v'Y
 +     */
 +typedef struct {
 +    XcmsFloat u_prime;		/* 0.0 - 1.0 */
 +    XcmsFloat v_prime;		/* 0.0 - 1.0 */
 +    XcmsFloat Y;		/* 0.0 - 1.0 */
 +} XcmsCIEuvY;
 +
 +    /*
 +     * CIE xyY
 +     */
 +typedef struct {
 +    XcmsFloat x;		/* 0.0 - 1.0 */
 +    XcmsFloat y;		/* 0.0 - 1.0 */
 +    XcmsFloat Y;		/* 0.0 - 1.0 */
 +} XcmsCIExyY;
 +
 +    /*
 +     * CIE L*a*b*
 +     */
 +typedef struct {
 +    XcmsFloat L_star;		/* 0.0 - 100.0 */
 +    XcmsFloat a_star;
 +    XcmsFloat b_star;
 +} XcmsCIELab;
 +
 +    /*
 +     * CIE L*u*v*
 +     */
 +typedef struct {
 +    XcmsFloat L_star;		/* 0.0 - 100.0 */
 +    XcmsFloat u_star;
 +    XcmsFloat v_star;
 +} XcmsCIELuv;
 +
 +    /*
 +     * TekHVC
 +     */
 +typedef struct {
 +    XcmsFloat H;		/* 0.0 - 360.0 */
 +    XcmsFloat V;		/* 0.0 - 100.0 */
 +    XcmsFloat C;		/* 0.0 - 100.0 */
 +} XcmsTekHVC;
 +
 +    /*
 +     * PAD
 +     */
 +typedef struct {
 +    XcmsFloat pad0;
 +    XcmsFloat pad1;
 +    XcmsFloat pad2;
 +    XcmsFloat pad3;
 +} XcmsPad;
 +
 +
 +    /*
 +     * XCMS Color Structure
 +     */
 +typedef struct {
 +    union {
 +	XcmsRGB RGB;
 +	XcmsRGBi RGBi;
 +	XcmsCIEXYZ CIEXYZ;
 +	XcmsCIEuvY CIEuvY;
 +	XcmsCIExyY CIExyY;
 +	XcmsCIELab CIELab;
 +	XcmsCIELuv CIELuv;
 +	XcmsTekHVC TekHVC;
 +	XcmsPad Pad;
 +    } spec;			/* the color specification	*/
 +    unsigned long pixel;	/* pixel value (as needed)	*/
 +    XcmsColorFormat	format;		/* the specification format	*/
 +} XcmsColor;
 +
 +
 +    /*
 +     * XCMS Per Screen related data
 +     */
 +
 +typedef struct _XcmsPerScrnInfo {
 +    XcmsColor	screenWhitePt;	/* Screen White point */
 +    XPointer	functionSet;	/* pointer to Screen Color Characterization */
 +				/*      Function Set structure		*/
 +    XPointer	screenData;	/* pointer to corresponding Screen Color*/
 +				/*	Characterization Data		*/
 +    unsigned char state;   /* XcmsInitNone, XcmsInitSuccess, XcmsInitFailure */
 +    char	pad[3];
 +} XcmsPerScrnInfo;
 +
 +typedef struct _XcmsCCC *XcmsCCC;
 +
 +typedef Status (*XcmsCompressionProc)(		/* Gamut Compression Proc */
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +typedef Status (*XcmsWhiteAdjustProc)(	 	/* White Point Adjust Proc */
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* initial_white_point*/,
 +    XcmsColor*		/* target_white_point*/,
 +    XcmsColorFormat	/* target_format */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +    /*
 +     * XCMS Color Conversion Context
 +     */
 +typedef struct _XcmsCCC {
 +    Display	*dpy;			/* X Display */
 +    int		screenNumber;		/* X screen number */
 +    Visual	*visual;		/* X Visual */
 +    XcmsColor	clientWhitePt;		/* Client White Point */
 +    XcmsCompressionProc	gamutCompProc;	/* Gamut Compression Function */
 +    XPointer	gamutCompClientData;	/* Gamut Comp Func Client Data */
 +    XcmsWhiteAdjustProc	whitePtAdjProc;	/* White Point Adjustment Function */
 +    XPointer	whitePtAdjClientData;	/* White Pt Adj Func Client Data */
 +    XcmsPerScrnInfo *pPerScrnInfo;	/* pointer to per screen information */
 +					/*  associated with the above display */
 +					/*  screenNumber */
 +} XcmsCCCRec;
 +
 +typedef Status (*XcmsScreenInitProc)(	/* Screen Initialization Proc */
 +    Display*		/* dpy */,
 +    int			/* screen_number */,
 +    XcmsPerScrnInfo*	/* screen_info */
 +);
 +
 +typedef void (*XcmsScreenFreeProc)(
 +    XPointer		/* screenData */
 +);
 +
 +    /*
 +     * Function List Pointer -- pointer to an array of function pointers.
 +     *    The end of list is indicated by a NULL pointer.
 +     */
 +/*
 + * XXX:  The use of the XcmsConversionProc type is broken.  The
 + *       device-independent colour conversion code uses it as:
 +
 +typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, XcmsColor *,
 +				     unsigned int);
 +
 + *       while the device-dependent code uses it as:
 +
 +typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, unsigned int,
 +				     Bool *);
 +
 + *       Until this is reworked, it's probably best to leave it unprotoized.
 + *       The code works regardless.
 + */
 +typedef Status (*XcmsDDConversionProc)( /* using device-dependent version */
 +    XcmsCCC             /* ccc */,
 +    XcmsColor*          /* pcolors_in_out */,
 +    unsigned int        /* ncolors */,
 +    Bool*               /* pCompressed */
 +    );
 +
 +typedef Status (*XcmsDIConversionProc)( /* using device-independent version */
 +    XcmsCCC             /* ccc */,
 +    XcmsColor*          /* white_point */,
 +    XcmsColor*          /* pcolors_in_out */,
 +    unsigned int        /* ncolors */
 +    );
 +
 +typedef XcmsDIConversionProc XcmsConversionProc;
 +typedef XcmsConversionProc *XcmsFuncListPtr;
 +
 +typedef int (*XcmsParseStringProc)(	/* Color String Parsing Proc */
 +    char*		/* color_string */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +    /*
 +     * Color Space -- per Color Space related data (Device-Independent
 +     *    or Device-Dependent)
 +     */
 +typedef struct _XcmsColorSpace {
 +    const char *prefix;		/* Prefix of string format.		*/
 +    XcmsColorFormat id;		/* Format ID number.			*/
 +    XcmsParseStringProc parseString;
 +				/* String format parsing function	*/
 +    XcmsFuncListPtr to_CIEXYZ;	/* Pointer to an array of function 	*/
 +				/*   pointers such that when the	*/
 +				/*   functions are executed in sequence	*/
 +				/*   will convert a XcmsColor structure	*/
 +				/*   from this color space to CIEXYZ	*/
 +				/*   space.				*/
 +    XcmsFuncListPtr from_CIEXYZ;/* Pointer to an array of function 	*/
 +				/*   pointers such that when the	*/
 +				/*   functions are executed in sequence	*/
 +				/*   will convert a XcmsColor structure	*/
 +				/*   from CIEXYZ space to this color	*/
 +				/*   space.				*/
 +    int inverse_flag;		/* If 1, indicates that for 0 <= i < n	*/
 +				/*   where n is the number of function	*/
 +				/*   pointers in the lists to_CIEXYZ	*/
 +				/*   and from_CIEXYZ; for each function */
 +				/*   to_CIEXYZ[i] its inverse function	*/
 +				/*   is from_CIEXYZ[n - i].		*/
 +
 +} XcmsColorSpace;
 +
 +    /*
 +     * Screen Color Characterization Function Set -- per device class
 +     *    color space conversion functions.
 +     */
 +typedef struct _XcmsFunctionSet {
 +    XcmsColorSpace **DDColorSpaces;
 +				/* Pointer to an array of pointers to	*/
 +				/*   Device-DEPENDENT color spaces	*/
 +				/*   understood by this SCCFuncSet.	*/
 +    XcmsScreenInitProc screenInitProc;
 +				/* Screen initialization function that	*/
 +				/*   reads Screen Color Characterization*/
 +				/*   Data off properties on the screen's*/
 +				/*   root window.			*/
 +    XcmsScreenFreeProc screenFreeProc;
 +				/* Function that frees the SCCData	*/
 +				/*   structures.			*/
 +} XcmsFunctionSet;
 +
 +_XFUNCPROTOBEGIN
 +
 +extern Status XcmsAddColorSpace (
 +    XcmsColorSpace*	/* pColorSpace */
 +);
 +
 +extern Status XcmsAddFunctionSet (
 +    XcmsFunctionSet*	/* functionSet */
 +);
 +
 +extern Status XcmsAllocColor (
 +    Display*		/* dpy */,
 +    Colormap		/* colormap */,
 +    XcmsColor*		/* color_in_out */,
 +    XcmsColorFormat		/* result_format */
 +);
 +
 +extern Status XcmsAllocNamedColor (
 +    Display*		/* dpy */,
 +    Colormap		/* colormap */,
 +    _Xconst char*	/* color_string */,
 +    XcmsColor*		/* color_scrn_return */,
 +    XcmsColor*		/* color_exact_return */,
 +    XcmsColorFormat		/* result_format */
 +);
 +
 +extern XcmsCCC XcmsCCCOfColormap (
 +    Display*		/* dpy */,
 +    Colormap		/* colormap */
 +);
 +
 +extern Status XcmsCIELabClipab(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsCIELabClipL(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsCIELabClipLab(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsCIELabQueryMaxC (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue_angle */,
 +    XcmsFloat		/* L_star */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsCIELabQueryMaxL (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue_angle */,
 +    XcmsFloat		/* chroma */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsCIELabQueryMaxLC (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue_angle */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsCIELabQueryMinL (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue_angle */,
 +    XcmsFloat		/* chroma */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsCIELabToCIEXYZ (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern Status XcmsCIELabWhiteShiftColors(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* initial_white_point*/,
 +    XcmsColor*		/* target_white_point*/,
 +    XcmsColorFormat	/* target_format */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsCIELuvClipL(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsCIELuvClipLuv(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsCIELuvClipuv(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsCIELuvQueryMaxC (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue_angle */,
 +    XcmsFloat		/* L_star */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsCIELuvQueryMaxL (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue_angle */,
 +    XcmsFloat		/* chroma */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsCIELuvQueryMaxLC (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue_angle */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsCIELuvQueryMinL (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue_angle */,
 +    XcmsFloat		/* chroma */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsCIELuvToCIEuvY (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern Status XcmsCIELuvWhiteShiftColors(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* initial_white_point*/,
 +    XcmsColor*		/* target_white_point*/,
 +    XcmsColorFormat	/* target_format */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsCIEXYZToCIELab (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern Status XcmsCIEXYZToCIEuvY (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern Status XcmsCIEXYZToCIExyY (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern Status XcmsCIEXYZToRGBi (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsCIEuvYToCIELuv (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern Status XcmsCIEuvYToCIEXYZ (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern Status XcmsCIEuvYToTekHVC (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern Status XcmsCIExyYToCIEXYZ (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern XcmsColor *XcmsClientWhitePointOfCCC (
 +    XcmsCCC		/* ccc */
 +);
 +
 +extern Status XcmsConvertColors (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colorArry_in_out */,
 +    unsigned int	/* nColors */,
 +    XcmsColorFormat		/* targetFormat */,
 +    Bool*		/* compArry_return */
 +);
 +
 +extern XcmsCCC XcmsCreateCCC (
 +    Display*		/* dpy */,
 +    int			/* screenNumber */,
 +    Visual*		/* visual */,
 +    XcmsColor*		/* clientWhitePt */,
 +    XcmsCompressionProc /* gamutCompProc */,
 +    XPointer		/* gamutCompClientData */,
 +    XcmsWhiteAdjustProc	/* whitePtAdjProc */,
 +    XPointer		/* whitePtAdjClientData */
 +);
 +
 +extern XcmsCCC XcmsDefaultCCC (
 +    Display*		/* dpy */,
 +    int			/* screenNumber */
 +);
 +
 +extern Display *XcmsDisplayOfCCC (
 +    XcmsCCC		/* ccc */
 +);
 +
 +extern XcmsColorFormat XcmsFormatOfPrefix (
 +    char*		/* prefix */
 +);
 +
 +extern void XcmsFreeCCC (
 +    XcmsCCC		/* ccc */
 +);
 +
 +extern Status XcmsLookupColor (
 +    Display*		/* dpy */,
 +    Colormap		/* colormap */,
 +    _Xconst char*	/* color_string */,
 +    XcmsColor*		/* pColor_exact_in_out */,
 +    XcmsColor*		/* pColor_scrn_in_out */,
 +    XcmsColorFormat		/* result_format */
 +);
 +
 +extern char *XcmsPrefixOfFormat (
 +    XcmsColorFormat		/* id */
 +);
 +
 +extern Status XcmsQueryBlack (
 +    XcmsCCC		/* ccc */,
 +    XcmsColorFormat	/* target_format */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsQueryBlue (
 +    XcmsCCC		/* ccc */,
 +    XcmsColorFormat	/* target_format */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsQueryColor (
 +    Display*		/* dpy */,
 +    Colormap		/* colormap */,
 +    XcmsColor*		/* pColor_in_out */,
 +    XcmsColorFormat		/* result_format */
 +);
 +
 +extern Status XcmsQueryColors (
 +    Display*		/* dpy */,
 +    Colormap		/* colormap */,
 +    XcmsColor*		/* colorArry_in_out */,
 +    unsigned int	/* nColors */,
 +    XcmsColorFormat	/* result_format */
 +);
 +
 +extern Status XcmsQueryGreen (
 +    XcmsCCC		/* ccc */,
 +    XcmsColorFormat	/* target_format */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsQueryRed (
 +    XcmsCCC		/* ccc */,
 +    XcmsColorFormat	/* target_format */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsQueryWhite (
 +    XcmsCCC		/* ccc */,
 +    XcmsColorFormat	/* target_format */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsRGBiToCIEXYZ (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsRGBiToRGB (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsRGBToRGBi (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern int XcmsScreenNumberOfCCC (
 +    XcmsCCC		/* ccc */
 +);
 +
 +extern XcmsColor *XcmsScreenWhitePointOfCCC (
 +    XcmsCCC		/* ccc */
 +);
 +
 +extern XcmsCCC XcmsSetCCCOfColormap(
 +    Display*		/* dpy */,
 +    Colormap		/* colormap */,
 +    XcmsCCC		/* ccc */
 +);
 +
 +extern XcmsCompressionProc XcmsSetCompressionProc (
 +    XcmsCCC		/* ccc */,
 +    XcmsCompressionProc	/* compression_proc */,
 +    XPointer		/* client_data */
 +);
 +
 +extern XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc (
 +    XcmsCCC		/* ccc */,
 +    XcmsWhiteAdjustProc	/* white_adjust_proc */,
 +    XPointer		/* client_data */
 +);
 +
 +extern Status XcmsSetWhitePoint (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* color */
 +);
 +
 +extern Status XcmsStoreColor (
 +    Display*		/* dpy */,
 +    Colormap		/* colormap */,
 +    XcmsColor*		/* pColor_in */
 +);
 +
 +extern Status XcmsStoreColors (
 +    Display*		/* dpy */,
 +    Colormap		/* colormap */,
 +    XcmsColor*		/* colorArry_in */,
 +    unsigned int	/* nColors */,
 +    Bool*		/* compArry_return */
 +);
 +
 +extern Status XcmsTekHVCClipC(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsTekHVCClipV(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsTekHVCClipVC(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    unsigned int	/* index */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Status XcmsTekHVCQueryMaxC (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue */,
 +    XcmsFloat		/* value */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsTekHVCQueryMaxV (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue */,
 +    XcmsFloat		/* chroma */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsTekHVCQueryMaxVC (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsTekHVCQueryMaxVSamples (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue */,
 +    XcmsColor*		/* colors_return */,
 +    unsigned int	/* nsamples */
 +);
 +
 +extern Status XcmsTekHVCQueryMinV (
 +    XcmsCCC		/* ccc */,
 +    XcmsFloat		/* hue */,
 +    XcmsFloat		/* chroma */,
 +    XcmsColor*		/* color_return */
 +);
 +
 +extern Status XcmsTekHVCToCIEuvY (
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* white_point */,
 +    XcmsColor*		/* colors */,
 +    unsigned int	/* ncolors */
 +);
 +
 +extern Status XcmsTekHVCWhiteShiftColors(
 +    XcmsCCC		/* ccc */,
 +    XcmsColor*		/* initial_white_point*/,
 +    XcmsColor*		/* target_white_point*/,
 +    XcmsColorFormat	/* target_format */,
 +    XcmsColor*		/* colors_in_out */,
 +    unsigned int	/* ncolors */,
 +    Bool*		/* compression_flags_return */
 +);
 +
 +extern Visual *XcmsVisualOfCCC (
 +    XcmsCCC		/* ccc */
 +);
 +
 +_XFUNCPROTOEND
 +
 +#endif /* _X11_XCMS_H_ */
 | 
