11ab64890Smrg
21ab64890Smrg#ifndef _CV_H_
31ab64890Smrg#define _CV_H_
41ab64890Smrg
51ab64890Smrg/* variables */
61ab64890Smrgextern const char      _XcmsCIEXYZ_prefix[];
71ab64890Smrgextern const char      _XcmsCIEuvY_prefix[];
81ab64890Smrgextern const char      _XcmsCIExyY_prefix[];
91ab64890Smrgextern const char      _XcmsCIELab_prefix[];
101ab64890Smrgextern const char      _XcmsCIELuv_prefix[];
111ab64890Smrgextern const char      _XcmsTekHVC_prefix[];
121ab64890Smrgextern const char      _XcmsRGBi_prefix[];
131ab64890Smrgextern const char      _XcmsRGB_prefix[];
141ab64890Smrg
151ab64890Smrgextern XcmsColorSpace  XcmsUNDEFINEDColorSpace;
161ab64890Smrgextern XcmsColorSpace  XcmsTekHVCColorSpace;
171ab64890Smrgextern XcmsColorSpace  XcmsCIEXYZColorSpace;
181ab64890Smrgextern XcmsColorSpace  XcmsCIEuvYColorSpace;
191ab64890Smrgextern XcmsColorSpace  XcmsCIExyYColorSpace;
201ab64890Smrgextern XcmsColorSpace  XcmsCIELabColorSpace;
211ab64890Smrgextern XcmsColorSpace  XcmsCIELuvColorSpace;
221ab64890Smrgextern XcmsColorSpace  XcmsRGBColorSpace;
231ab64890Smrgextern XcmsColorSpace  XcmsRGBiColorSpace;
241ab64890Smrg
251ab64890Smrgextern XcmsColorSpace  *_XcmsDIColorSpacesInit[];
261ab64890Smrgextern XcmsColorSpace  **_XcmsDIColorSpaces;
271ab64890Smrg
281ab64890Smrgextern XcmsColorSpace  *_XcmsDDColorSpacesInit[];
291ab64890Smrgextern XcmsColorSpace  **_XcmsDDColorSpaces;
301ab64890Smrg
311ab64890Smrgextern XcmsFunctionSet XcmsLinearRGBFunctionSet;
321ab64890Smrg
331ab64890Smrgextern XcmsFunctionSet *_XcmsSCCFuncSetsInit[];
341ab64890Smrgextern XcmsFunctionSet **_XcmsSCCFuncSets;
351ab64890Smrg
361ab64890Smrgextern XcmsRegColorSpaceEntry _XcmsRegColorSpaces[];
371ab64890Smrg
381ab64890Smrg/* functions */
391ab64890Smrgextern XPointer *
401ab64890Smrg_XcmsCopyPointerArray(
411ab64890Smrg    XPointer *pap);
421ab64890Smrgextern void
431ab64890Smrg_XcmsFreePointerArray(
441ab64890Smrg    XPointer *pap);
451ab64890Smrgextern XPointer *
461ab64890Smrg_XcmsPushPointerArray(
471ab64890Smrg    XPointer *pap,
481ab64890Smrg    XPointer p,
491ab64890Smrg    XPointer *papNoFree);
501ab64890Smrgextern Status
511ab64890Smrg_XcmsCIEXYZ_ValidSpec(
521ab64890Smrg    XcmsColor *pColor);
531ab64890Smrgextern Status
541ab64890Smrg_XcmsCIEuvY_ValidSpec(
551ab64890Smrg    XcmsColor *pColor);
561ab64890Smrgextern int
571ab64890Smrg_XcmsTekHVC_CheckModify(
581ab64890Smrg    XcmsColor *pColor);
591ab64890Smrg
601ab64890Smrgextern Status
611ab64890Smrg_XcmsTekHVCQueryMaxVCRGB(
621ab64890Smrg    XcmsCCC     ccc,
631ab64890Smrg    XcmsFloat   hue,
641ab64890Smrg    XcmsColor   *pColor_return,
651ab64890Smrg    XcmsRGBi    *pRGB_return);
661ab64890Smrgextern Status
671ab64890Smrg_XcmsCIELabQueryMaxLCRGB(
681ab64890Smrg    XcmsCCC     ccc,
691ab64890Smrg    XcmsFloat   hue,                /* hue in radians */
701ab64890Smrg    XcmsColor   *pColor_return,
711ab64890Smrg    XcmsRGBi    *pRGB_return);
721ab64890Smrgextern Status
731ab64890Smrg_XcmsConvertColorsWithWhitePt(
741ab64890Smrg    XcmsCCC ccc,
751ab64890Smrg    XcmsColor *pColors_in_out,
761ab64890Smrg    XcmsColor *pWhitePt,
771ab64890Smrg    unsigned int nColors,
781ab64890Smrg    XcmsColorFormat newFormat,
791ab64890Smrg    Bool *pCompressed);
801ab64890Smrg
811ab64890Smrgextern Status
821ab64890Smrg_XcmsDIConvertColors(
831ab64890Smrg    XcmsCCC ccc,
841ab64890Smrg    XcmsColor *pColors_in_out,
851ab64890Smrg    XcmsColor *pWhitePt,
861ab64890Smrg    unsigned int nColors,
871ab64890Smrg    XcmsColorFormat newFormat);
881ab64890Smrgextern Status
891ab64890Smrg_XcmsDDConvertColors(
901ab64890Smrg    XcmsCCC ccc,
911ab64890Smrg    XcmsColor *pColors_in_out,
921ab64890Smrg    unsigned int nColors,
931ab64890Smrg    XcmsColorFormat newFormat,
941ab64890Smrg    Bool *pCompressed);
951ab64890Smrgextern XcmsColorFormat
961ab64890Smrg_XcmsRegFormatOfPrefix(
971ab64890Smrg    _Xconst char *prefix);
981ab64890Smrgextern void
991ab64890Smrg_XColor_to_XcmsRGB(
1001ab64890Smrg    XcmsCCC ccc,
1011ab64890Smrg    XColor *pXColors,
1021ab64890Smrg    XcmsColor *pColors,
1031ab64890Smrg    unsigned int nColors);
1041ab64890Smrgextern Status
1051ab64890Smrg_XcmsSetGetColor(
1061ab64890Smrg    Status (*xColorProc)(
1071ab64890Smrg        Display*            /* display */,
1081ab64890Smrg        Colormap            /* colormap */,
1091ab64890Smrg        XColor*             /* screen_in_out */),
1101ab64890Smrg    Display *dpy,
1111ab64890Smrg    Colormap cmap,
1121ab64890Smrg    XcmsColor *pColors_in_out,
1131ab64890Smrg    XcmsColorFormat result_format,
1141ab64890Smrg    Bool *pCompressed);
1151ab64890Smrgextern Status
1161ab64890Smrg_XcmsSetGetColors(
1171ab64890Smrg    Status (*xColorProc)(
1181ab64890Smrg        Display*            /* display */,
1191ab64890Smrg        Colormap            /* colormap */,
1201ab64890Smrg        XColor*             /* screen_in_out */,
1211ab64890Smrg        int                 /* nColors */),
1221ab64890Smrg    Display *dpy,
1231ab64890Smrg    Colormap cmap,
1241ab64890Smrg    XcmsColor *pColors_in_out,
1251ab64890Smrg    int nColors,
1261ab64890Smrg    XcmsColorFormat result_format,
1271ab64890Smrg    Bool *pCompressed);
1281ab64890Smrgextern Status
1291ab64890Smrg_XcmsCIELuvQueryMaxLCRGB(
1301ab64890Smrg    XcmsCCC     ccc,
1311ab64890Smrg    XcmsFloat   hue,            /* hue in radians */
1321ab64890Smrg    XcmsColor   *pColor_return,
1331ab64890Smrg    XcmsRGBi    *pRGB_return);
1341ab64890Smrg
1351ab64890Smrgextern XcmsIntensityMap *
1361ab64890Smrg_XcmsGetIntensityMap(
1371ab64890Smrg    Display *dpy,
1381ab64890Smrg    Visual *visual);
1391ab64890Smrgextern int
1401ab64890Smrg_XcmsInitDefaultCCCs(
1411ab64890Smrg    Display *dpy);
1421ab64890Smrgextern int
1431ab64890Smrg_XcmsInitScrnInfo(
1441ab64890Smrg    register Display *dpy,
1451ab64890Smrg    int screenNumber);
1461ab64890Smrgextern XcmsCmapRec *
1471ab64890Smrg_XcmsCopyCmapRecAndFree(
1481ab64890Smrg    Display *dpy,
1491ab64890Smrg    Colormap src_cmap,
1501ab64890Smrg    Colormap copy_cmap);
1511ab64890Smrgextern void
1521ab64890Smrg_XcmsCopyISOLatin1Lowered(
1531ab64890Smrg    char *dst,
1541ab64890Smrg    const char *src);
1551ab64890Smrgextern int
1561ab64890Smrg_XcmsEqualWhitePts(
1571ab64890Smrg    XcmsCCC ccc, XcmsColor *pWhitePt1, XcmsColor *pWhitePt2);
1581ab64890Smrgextern int
1591ab64890Smrg_XcmsLRGB_InitScrnDefault(
1601ab64890Smrg    Display *dpy,
1611ab64890Smrg    int screenNumber,
1621ab64890Smrg    XcmsPerScrnInfo *pPerScrnInfo);
1631ab64890Smrgextern void
1641ab64890Smrg_XcmsFreeIntensityMaps(
1651ab64890Smrg    Display *dpy);
1661ab64890Smrgextern int
1671ab64890Smrg_XcmsGetProperty(
1681ab64890Smrg    Display *pDpy,
1691ab64890Smrg    Window  w,
1701ab64890Smrg    Atom property,
1711ab64890Smrg    int             *pFormat,
1721ab64890Smrg    unsigned long   *pNItems,
1731ab64890Smrg    unsigned long   *pNBytes,
1741ab64890Smrg    char            **pValue);
1751ab64890Smrgextern unsigned long
1761ab64890Smrg_XcmsGetElement(
1771ab64890Smrg    int             format,
1781ab64890Smrg    char            **pValue,
1791ab64890Smrg    unsigned long   *pCount);
1801ab64890Smrgextern void
1811ab64890Smrg_XcmsUnresolveColor(
1821ab64890Smrg    XcmsCCC ccc,
1831ab64890Smrg    XcmsColor *pColor);
1841ab64890Smrgextern void
1851ab64890Smrg_XcmsResolveColor(
1861ab64890Smrg    XcmsCCC ccc,
1871ab64890Smrg    XcmsColor *pXcmsColor);
1881ab64890Smrg
1891ab64890Smrg#endif /* _CV_H_ */
190