cmsGlobls.c revision 1ab64890
11ab64890Smrg/*$Xorg: cmsGlobls.c,v 1.3 2000/08/17 19:45:09 cpqbld Exp $ */
21ab64890Smrg
31ab64890Smrg/*
41ab64890Smrg * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
51ab64890Smrg * 	All Rights Reserved
61ab64890Smrg *
71ab64890Smrg * This file is a component of an X Window System-specific implementation
81ab64890Smrg * of Xcms based on the TekColor Color Management System.  Permission is
91ab64890Smrg * hereby granted to use, copy, modify, sell, and otherwise distribute this
101ab64890Smrg * software and its documentation for any purpose and without fee, provided
111ab64890Smrg * that this copyright, permission, and disclaimer notice is reproduced in
121ab64890Smrg * all copies of this software and in supporting documentation.  TekColor
131ab64890Smrg * is a trademark of Tektronix, Inc.
141ab64890Smrg *
151ab64890Smrg * Tektronix makes no representation about the suitability of this software
161ab64890Smrg * for any purpose.  It is provided "as is" and with all faults.
171ab64890Smrg *
181ab64890Smrg * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
191ab64890Smrg * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
201ab64890Smrg * PARTICULAR PURPOSE.  IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
211ab64890Smrg * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
221ab64890Smrg * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
231ab64890Smrg * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
241ab64890Smrg * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
251ab64890Smrg *
261ab64890Smrg *
271ab64890Smrg *	NAME
281ab64890Smrg *		XcmsGlobls.c
291ab64890Smrg *
301ab64890Smrg *	DESCRIPTION
311ab64890Smrg *		Source file containing Xcms globals
321ab64890Smrg *
331ab64890Smrg *
341ab64890Smrg */
351ab64890Smrg/* $XFree86: xc/lib/X11/cmsGlobls.c,v 1.4 2001/01/17 19:41:51 dawes Exp $ */
361ab64890Smrg
371ab64890Smrg#ifdef HAVE_CONFIG_H
381ab64890Smrg#include <config.h>
391ab64890Smrg#endif
401ab64890Smrg#include "Xlibint.h"
411ab64890Smrg#include "Xcmsint.h"
421ab64890Smrg#include "Cv.h"
431ab64890Smrg
441ab64890Smrg/*
451ab64890Smrg *      GLOBALS
461ab64890Smrg *              Variables declared in this package that are allowed
471ab64890Smrg *		to be used globally.
481ab64890Smrg */
491ab64890Smrg
501ab64890Smrg    /*
511ab64890Smrg     * Initial array of Device Independent Color Spaces
521ab64890Smrg     */
531ab64890SmrgXcmsColorSpace *_XcmsDIColorSpacesInit[] = {
541ab64890Smrg    &XcmsCIEXYZColorSpace,
551ab64890Smrg    &XcmsCIEuvYColorSpace,
561ab64890Smrg    &XcmsCIExyYColorSpace,
571ab64890Smrg    &XcmsCIELabColorSpace,
581ab64890Smrg    &XcmsCIELuvColorSpace,
591ab64890Smrg    &XcmsTekHVCColorSpace,
601ab64890Smrg    &XcmsUNDEFINEDColorSpace,
611ab64890Smrg    NULL
621ab64890Smrg};
631ab64890Smrg    /*
641ab64890Smrg     * Pointer to the array of pointers to XcmsColorSpace structures for
651ab64890Smrg     * Device-Independent Color Spaces that are currently accessible by
661ab64890Smrg     * the color management system.  End of list is indicated by a NULL pointer.
671ab64890Smrg     */
681ab64890SmrgXcmsColorSpace **_XcmsDIColorSpaces = _XcmsDIColorSpacesInit;
691ab64890Smrg
701ab64890Smrg    /*
711ab64890Smrg     * Initial array of Device Dependent Color Spaces
721ab64890Smrg     */
731ab64890SmrgXcmsColorSpace *_XcmsDDColorSpacesInit[] = {
741ab64890Smrg    &XcmsRGBColorSpace,
751ab64890Smrg    &XcmsRGBiColorSpace,
761ab64890Smrg    NULL
771ab64890Smrg};
781ab64890Smrg    /*
791ab64890Smrg     * Pointer to the array of pointers to XcmsColorSpace structures for
801ab64890Smrg     * Device-Dependent Color Spaces that are currently accessible by
811ab64890Smrg     * the color management system.  End of list is indicated by a NULL pointer.
821ab64890Smrg     */
831ab64890SmrgXcmsColorSpace **_XcmsDDColorSpaces = &_XcmsDDColorSpacesInit[0];
841ab64890Smrg
851ab64890Smrg    /*
861ab64890Smrg     * Initial array of Screen Color Characterization Function Sets
871ab64890Smrg     */
881ab64890SmrgXcmsFunctionSet	*_XcmsSCCFuncSetsInit[] = {
891ab64890Smrg	&XcmsLinearRGBFunctionSet,
901ab64890Smrg#ifdef GRAY
911ab64890Smrg	&XcmsGrayFunctionSet,
921ab64890Smrg#endif /* GRAY */
931ab64890Smrg	NULL};
941ab64890Smrg    /*
951ab64890Smrg     * Pointer to the array of pointers to XcmsSCCFuncSet structures
961ab64890Smrg     * (Screen Color Characterization Function Sets) that are currently
971ab64890Smrg     * accessible by the color management system.  End of list is
981ab64890Smrg     * indicated by a NULL pointer.
991ab64890Smrg     */
1001ab64890SmrgXcmsFunctionSet **_XcmsSCCFuncSets = _XcmsSCCFuncSetsInit;
1011ab64890Smrg
1021ab64890Smrg    /*
1031ab64890Smrg     * X Consortium Registered Device-Independent Color Spaces
1041ab64890Smrg     *	Note that prefix must be in lowercase.
1051ab64890Smrg     */
1061ab64890Smrgconst char	_XcmsCIEXYZ_prefix[] = "ciexyz";
1071ab64890Smrgconst char	_XcmsCIEuvY_prefix[] = "cieuvy";
1081ab64890Smrgconst char	_XcmsCIExyY_prefix[] = "ciexyy";
1091ab64890Smrgconst char	_XcmsCIELab_prefix[] = "cielab";
1101ab64890Smrgconst char 	_XcmsCIELuv_prefix[] = "cieluv";
1111ab64890Smrgconst char	_XcmsTekHVC_prefix[] = "tekhvc";
1121ab64890Smrg    /*
1131ab64890Smrg     * Registered Device-Dependent Color Spaces
1141ab64890Smrg     */
1151ab64890Smrgconst char	_XcmsRGBi_prefix[] = "rgbi";
1161ab64890Smrgconst char	_XcmsRGB_prefix[] = "rgb";
1171ab64890Smrg
1181ab64890SmrgXcmsRegColorSpaceEntry _XcmsRegColorSpaces[] = {
1191ab64890Smrg    { _XcmsCIEXYZ_prefix, XcmsCIEXYZFormat },
1201ab64890Smrg    { _XcmsCIEuvY_prefix, XcmsCIEuvYFormat },
1211ab64890Smrg    { _XcmsCIExyY_prefix, XcmsCIExyYFormat },
1221ab64890Smrg    { _XcmsCIELab_prefix, XcmsCIELabFormat },
1231ab64890Smrg    { _XcmsCIELuv_prefix, XcmsCIELuvFormat },
1241ab64890Smrg    { _XcmsTekHVC_prefix, XcmsTekHVCFormat },
1251ab64890Smrg    { _XcmsRGB_prefix, XcmsRGBFormat },
1261ab64890Smrg    { _XcmsRGBi_prefix,	XcmsRGBiFormat },
1271ab64890Smrg    { NULL, 0 }
1281ab64890Smrg};
129