Category reorganization
[openwrt/svn-archive/archive.git] / XOrg / headers / native / src / X11 / Xcms.h
1 /* $Xorg: Xcms.h,v 1.6 2000/08/17 19:45:04 cpqbld Exp $ */
2
3 /*
4 * Code and supporting documentation (c) Copyright 1990 1991 Tektronix, Inc.
5 * All Rights Reserved
6 *
7 * This file is a component of an X Window System-specific implementation
8 * of Xcms based on the TekColor Color Management System. Permission is
9 * hereby granted to use, copy, modify, sell, and otherwise distribute this
10 * software and its documentation for any purpose and without fee, provided
11 * that this copyright, permission, and disclaimer notice is reproduced in
12 * all copies of this software and in supporting documentation. TekColor
13 * is a trademark of Tektronix, Inc.
14 *
15 * Tektronix makes no representation about the suitability of this software
16 * for any purpose. It is provided "as is" and with all faults.
17 *
18 * TEKTRONIX DISCLAIMS ALL WARRANTIES APPLICABLE TO THIS SOFTWARE,
19 * INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20 * PARTICULAR PURPOSE. IN NO EVENT SHALL TEKTRONIX BE LIABLE FOR ANY
21 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
22 * RESULTING FROM LOSS OF USE, DATA, OR PROFITS, WHETHER IN AN ACTION OF
23 * CONTRACT, NEGLIGENCE, OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
24 * CONNECTION WITH THE USE OR THE PERFORMANCE OF THIS SOFTWARE.
25 *
26 *
27 * DESCRIPTION
28 * Public include file for X Color Management System
29 */
30 /* $XFree86: xc/lib/X11/Xcms.h,v 1.7 2003/11/03 03:46:26 dawes Exp $ */
31 #ifndef _XCMS_H_
32 #define _XCMS_H_
33
34 #include <X11/Xlib.h>
35
36 /*
37 * XCMS Status Values
38 */
39 #define XcmsFailure 0
40 #define XcmsSuccess 1
41 #define XcmsSuccessWithCompression 2
42
43 /*
44 * Color Space Format ID's
45 * Color Space ID's are of XcmsColorFormat type.
46 *
47 * bit 31
48 * 0 == Device-Independent
49 * 1 == Device-Dependent
50 *
51 * bit 30:
52 * 0 == Registered with X Consortium
53 * 1 == Unregistered
54 */
55 #define XcmsUndefinedFormat (XcmsColorFormat)0x00000000
56 #define XcmsCIEXYZFormat (XcmsColorFormat)0x00000001
57 #define XcmsCIEuvYFormat (XcmsColorFormat)0x00000002
58 #define XcmsCIExyYFormat (XcmsColorFormat)0x00000003
59 #define XcmsCIELabFormat (XcmsColorFormat)0x00000004
60 #define XcmsCIELuvFormat (XcmsColorFormat)0x00000005
61 #define XcmsTekHVCFormat (XcmsColorFormat)0x00000006
62 #define XcmsRGBFormat (XcmsColorFormat)0x80000000
63 #define XcmsRGBiFormat (XcmsColorFormat)0x80000001
64
65 /*
66 * State of XcmsPerScrnInfo
67 */
68 #define XcmsInitNone 0x00 /* no initialization attempted */
69 #define XcmsInitSuccess 0x01 /* initialization successful */
70 #define XcmsInitFailure 0xff /* failure, use defaults */
71
72 #define DisplayOfCCC(ccc) ((ccc)->dpy)
73 #define ScreenNumberOfCCC(ccc) ((ccc)->screenNumber)
74 #define VisualOfCCC(ccc) ((ccc)->visual)
75 #define ClientWhitePointOfCCC(ccc) (&(ccc)->clientWhitePt)
76 #define ScreenWhitePointOfCCC(ccc) (&(ccc)->pPerScrnInfo->screenWhitePt)
77 #define FunctionSetOfCCC(ccc) ((ccc)->pPerScrnInfo->functionSet)
78
79 typedef unsigned long XcmsColorFormat; /* Color Space Format ID */
80
81 typedef double XcmsFloat;
82
83 /*
84 * Device RGB
85 */
86 typedef struct {
87 unsigned short red; /* scaled from 0x0000 to 0xffff */
88 unsigned short green; /* scaled from 0x0000 to 0xffff */
89 unsigned short blue; /* scaled from 0x0000 to 0xffff */
90 } XcmsRGB;
91
92 /*
93 * RGB Intensity
94 */
95 typedef struct {
96 XcmsFloat red; /* 0.0 - 1.0 */
97 XcmsFloat green; /* 0.0 - 1.0 */
98 XcmsFloat blue; /* 0.0 - 1.0 */
99 } XcmsRGBi;
100
101 /*
102 * CIE XYZ
103 */
104 typedef struct {
105 XcmsFloat X;
106 XcmsFloat Y;
107 XcmsFloat Z;
108 } XcmsCIEXYZ;
109
110 /*
111 * CIE u'v'Y
112 */
113 typedef struct {
114 XcmsFloat u_prime; /* 0.0 - 1.0 */
115 XcmsFloat v_prime; /* 0.0 - 1.0 */
116 XcmsFloat Y; /* 0.0 - 1.0 */
117 } XcmsCIEuvY;
118
119 /*
120 * CIE xyY
121 */
122 typedef struct {
123 XcmsFloat x; /* 0.0 - 1.0 */
124 XcmsFloat y; /* 0.0 - 1.0 */
125 XcmsFloat Y; /* 0.0 - 1.0 */
126 } XcmsCIExyY;
127
128 /*
129 * CIE L*a*b*
130 */
131 typedef struct {
132 XcmsFloat L_star; /* 0.0 - 100.0 */
133 XcmsFloat a_star;
134 XcmsFloat b_star;
135 } XcmsCIELab;
136
137 /*
138 * CIE L*u*v*
139 */
140 typedef struct {
141 XcmsFloat L_star; /* 0.0 - 100.0 */
142 XcmsFloat u_star;
143 XcmsFloat v_star;
144 } XcmsCIELuv;
145
146 /*
147 * TekHVC
148 */
149 typedef struct {
150 XcmsFloat H; /* 0.0 - 360.0 */
151 XcmsFloat V; /* 0.0 - 100.0 */
152 XcmsFloat C; /* 0.0 - 100.0 */
153 } XcmsTekHVC;
154
155 /*
156 * PAD
157 */
158 typedef struct {
159 XcmsFloat pad0;
160 XcmsFloat pad1;
161 XcmsFloat pad2;
162 XcmsFloat pad3;
163 } XcmsPad;
164
165
166 /*
167 * XCMS Color Structure
168 */
169 typedef struct {
170 union {
171 XcmsRGB RGB;
172 XcmsRGBi RGBi;
173 XcmsCIEXYZ CIEXYZ;
174 XcmsCIEuvY CIEuvY;
175 XcmsCIExyY CIExyY;
176 XcmsCIELab CIELab;
177 XcmsCIELuv CIELuv;
178 XcmsTekHVC TekHVC;
179 XcmsPad Pad;
180 } spec; /* the color specification */
181 unsigned long pixel; /* pixel value (as needed) */
182 XcmsColorFormat format; /* the specification format */
183 } XcmsColor;
184
185
186 /*
187 * XCMS Per Screen related data
188 */
189
190 typedef struct _XcmsPerScrnInfo {
191 XcmsColor screenWhitePt; /* Screen White point */
192 XPointer functionSet; /* pointer to Screen Color Characterization */
193 /* Function Set structure */
194 XPointer screenData; /* pointer to corresponding Screen Color*/
195 /* Characterization Data */
196 unsigned char state; /* XcmsInitNone, XcmsInitSuccess, XcmsInitFailure */
197 char pad[3];
198 } XcmsPerScrnInfo;
199
200 typedef struct _XcmsCCC *XcmsCCC;
201
202 typedef Status (*XcmsCompressionProc)( /* Gamut Compression Proc */
203 XcmsCCC /* ccc */,
204 XcmsColor* /* colors_in_out */,
205 unsigned int /* ncolors */,
206 unsigned int /* index */,
207 Bool* /* compression_flags_return */
208 );
209
210 typedef Status (*XcmsWhiteAdjustProc)( /* White Point Adjust Proc */
211 XcmsCCC /* ccc */,
212 XcmsColor* /* initial_white_point*/,
213 XcmsColor* /* target_white_point*/,
214 XcmsColorFormat /* target_format */,
215 XcmsColor* /* colors_in_out */,
216 unsigned int /* ncolors */,
217 Bool* /* compression_flags_return */
218 );
219
220 /*
221 * XCMS Color Conversion Context
222 */
223 typedef struct _XcmsCCC {
224 Display *dpy; /* X Display */
225 int screenNumber; /* X screen number */
226 Visual *visual; /* X Visual */
227 XcmsColor clientWhitePt; /* Client White Point */
228 XcmsCompressionProc gamutCompProc; /* Gamut Compression Function */
229 XPointer gamutCompClientData; /* Gamut Comp Func Client Data */
230 XcmsWhiteAdjustProc whitePtAdjProc; /* White Point Adjustment Function */
231 XPointer whitePtAdjClientData; /* White Pt Adj Func Client Data */
232 XcmsPerScrnInfo *pPerScrnInfo; /* pointer to per screen information */
233 /* associated with the above display */
234 /* screenNumber */
235 } XcmsCCCRec;
236
237 typedef Status (*XcmsScreenInitProc)( /* Screen Initialization Proc */
238 Display* /* dpy */,
239 int /* screen_number */,
240 XcmsPerScrnInfo* /* screen_info */
241 );
242
243 typedef void (*XcmsScreenFreeProc)(
244 XPointer /* screenData */
245 );
246
247 /*
248 * Function List Pointer -- pointer to an array of function pointers.
249 * The end of list is indicated by a NULL pointer.
250 */
251 /*
252 * XXX: The use of the XcmsConversionProc type is broken. The
253 * device-independent colour conversion code uses it as:
254
255 typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, XcmsColor *,
256 unsigned int);
257
258 * while the device-dependent code uses it as:
259
260 typedef Status (*XcmsConversionProc)(XcmsCCC, XcmsColor *, unsigned int,
261 Bool *);
262
263 * Until this is reworked, it's probably best to leave it unprotoized.
264 * The code works regardless.
265 */
266 typedef Status (*XcmsDDConversionProc)( /* using device-dependent version */
267 XcmsCCC /* ccc */,
268 XcmsColor* /* pcolors_in_out */,
269 unsigned int /* ncolors */,
270 Bool* /* pCompressed */
271 );
272
273 typedef Status (*XcmsDIConversionProc)( /* using device-independent version */
274 XcmsCCC /* ccc */,
275 XcmsColor* /* white_point */,
276 XcmsColor* /* pcolors_in_out */,
277 unsigned int /* ncolors */
278 );
279
280 typedef XcmsDIConversionProc XcmsConversionProc;
281 typedef XcmsConversionProc *XcmsFuncListPtr;
282
283 typedef int (*XcmsParseStringProc)( /* Color String Parsing Proc */
284 char* /* color_string */,
285 XcmsColor* /* color_return */
286 );
287
288 /*
289 * Color Space -- per Color Space related data (Device-Independent
290 * or Device-Dependent)
291 */
292 typedef struct _XcmsColorSpace {
293 const char *prefix; /* Prefix of string format. */
294 XcmsColorFormat id; /* Format ID number. */
295 XcmsParseStringProc parseString;
296 /* String format parsing function */
297 XcmsFuncListPtr to_CIEXYZ; /* Pointer to an array of function */
298 /* pointers such that when the */
299 /* functions are executed in sequence */
300 /* will convert a XcmsColor structure */
301 /* from this color space to CIEXYZ */
302 /* space. */
303 XcmsFuncListPtr from_CIEXYZ;/* Pointer to an array of function */
304 /* pointers such that when the */
305 /* functions are executed in sequence */
306 /* will convert a XcmsColor structure */
307 /* from CIEXYZ space to this color */
308 /* space. */
309 int inverse_flag; /* If 1, indicates that for 0 <= i < n */
310 /* where n is the number of function */
311 /* pointers in the lists to_CIEXYZ */
312 /* and from_CIEXYZ; for each function */
313 /* to_CIEXYZ[i] its inverse function */
314 /* is from_CIEXYZ[n - i]. */
315
316 } XcmsColorSpace;
317
318 /*
319 * Screen Color Characterization Function Set -- per device class
320 * color space conversion functions.
321 */
322 typedef struct _XcmsFunctionSet {
323 XcmsColorSpace **DDColorSpaces;
324 /* Pointer to an array of pointers to */
325 /* Device-DEPENDENT color spaces */
326 /* understood by this SCCFuncSet. */
327 XcmsScreenInitProc screenInitProc;
328 /* Screen initialization function that */
329 /* reads Screen Color Characterization*/
330 /* Data off properties on the screen's*/
331 /* root window. */
332 XcmsScreenFreeProc screenFreeProc;
333 /* Function that frees the SCCData */
334 /* structures. */
335 } XcmsFunctionSet;
336
337 _XFUNCPROTOBEGIN
338
339 extern Status XcmsAddColorSpace (
340 XcmsColorSpace* /* pColorSpace */
341 );
342
343 extern Status XcmsAddFunctionSet (
344 XcmsFunctionSet* /* functionSet */
345 );
346
347 extern Status XcmsAllocColor (
348 Display* /* dpy */,
349 Colormap /* colormap */,
350 XcmsColor* /* color_in_out */,
351 XcmsColorFormat /* result_format */
352 );
353
354 extern Status XcmsAllocNamedColor (
355 Display* /* dpy */,
356 Colormap /* colormap */,
357 _Xconst char* /* color_string */,
358 XcmsColor* /* color_scrn_return */,
359 XcmsColor* /* color_exact_return */,
360 XcmsColorFormat /* result_format */
361 );
362
363 extern XcmsCCC XcmsCCCOfColormap (
364 Display* /* dpy */,
365 Colormap /* colormap */
366 );
367
368 extern Status XcmsCIELabClipab(
369 XcmsCCC /* ccc */,
370 XcmsColor* /* colors_in_out */,
371 unsigned int /* ncolors */,
372 unsigned int /* index */,
373 Bool* /* compression_flags_return */
374 );
375
376 extern Status XcmsCIELabClipL(
377 XcmsCCC /* ccc */,
378 XcmsColor* /* colors_in_out */,
379 unsigned int /* ncolors */,
380 unsigned int /* index */,
381 Bool* /* compression_flags_return */
382 );
383
384 extern Status XcmsCIELabClipLab(
385 XcmsCCC /* ccc */,
386 XcmsColor* /* colors_in_out */,
387 unsigned int /* ncolors */,
388 unsigned int /* index */,
389 Bool* /* compression_flags_return */
390 );
391
392 extern Status XcmsCIELabQueryMaxC (
393 XcmsCCC /* ccc */,
394 XcmsFloat /* hue_angle */,
395 XcmsFloat /* L_star */,
396 XcmsColor* /* color_return */
397 );
398
399 extern Status XcmsCIELabQueryMaxL (
400 XcmsCCC /* ccc */,
401 XcmsFloat /* hue_angle */,
402 XcmsFloat /* chroma */,
403 XcmsColor* /* color_return */
404 );
405
406 extern Status XcmsCIELabQueryMaxLC (
407 XcmsCCC /* ccc */,
408 XcmsFloat /* hue_angle */,
409 XcmsColor* /* color_return */
410 );
411
412 extern Status XcmsCIELabQueryMinL (
413 XcmsCCC /* ccc */,
414 XcmsFloat /* hue_angle */,
415 XcmsFloat /* chroma */,
416 XcmsColor* /* color_return */
417 );
418
419 extern Status XcmsCIELabToCIEXYZ (
420 XcmsCCC /* ccc */,
421 XcmsColor* /* white_point */,
422 XcmsColor* /* colors */,
423 unsigned int /* ncolors */
424 );
425
426 extern Status XcmsCIELabWhiteShiftColors(
427 XcmsCCC /* ccc */,
428 XcmsColor* /* initial_white_point*/,
429 XcmsColor* /* target_white_point*/,
430 XcmsColorFormat /* target_format */,
431 XcmsColor* /* colors_in_out */,
432 unsigned int /* ncolors */,
433 Bool* /* compression_flags_return */
434 );
435
436 extern Status XcmsCIELuvClipL(
437 XcmsCCC /* ccc */,
438 XcmsColor* /* colors_in_out */,
439 unsigned int /* ncolors */,
440 unsigned int /* index */,
441 Bool* /* compression_flags_return */
442 );
443
444 extern Status XcmsCIELuvClipLuv(
445 XcmsCCC /* ccc */,
446 XcmsColor* /* colors_in_out */,
447 unsigned int /* ncolors */,
448 unsigned int /* index */,
449 Bool* /* compression_flags_return */
450 );
451
452 extern Status XcmsCIELuvClipuv(
453 XcmsCCC /* ccc */,
454 XcmsColor* /* colors_in_out */,
455 unsigned int /* ncolors */,
456 unsigned int /* index */,
457 Bool* /* compression_flags_return */
458 );
459
460 extern Status XcmsCIELuvQueryMaxC (
461 XcmsCCC /* ccc */,
462 XcmsFloat /* hue_angle */,
463 XcmsFloat /* L_star */,
464 XcmsColor* /* color_return */
465 );
466
467 extern Status XcmsCIELuvQueryMaxL (
468 XcmsCCC /* ccc */,
469 XcmsFloat /* hue_angle */,
470 XcmsFloat /* chroma */,
471 XcmsColor* /* color_return */
472 );
473
474 extern Status XcmsCIELuvQueryMaxLC (
475 XcmsCCC /* ccc */,
476 XcmsFloat /* hue_angle */,
477 XcmsColor* /* color_return */
478 );
479
480 extern Status XcmsCIELuvQueryMinL (
481 XcmsCCC /* ccc */,
482 XcmsFloat /* hue_angle */,
483 XcmsFloat /* chroma */,
484 XcmsColor* /* color_return */
485 );
486
487 extern Status XcmsCIELuvToCIEuvY (
488 XcmsCCC /* ccc */,
489 XcmsColor* /* white_point */,
490 XcmsColor* /* colors */,
491 unsigned int /* ncolors */
492 );
493
494 extern Status XcmsCIELuvWhiteShiftColors(
495 XcmsCCC /* ccc */,
496 XcmsColor* /* initial_white_point*/,
497 XcmsColor* /* target_white_point*/,
498 XcmsColorFormat /* target_format */,
499 XcmsColor* /* colors_in_out */,
500 unsigned int /* ncolors */,
501 Bool* /* compression_flags_return */
502 );
503
504 extern Status XcmsCIEXYZToCIELab (
505 XcmsCCC /* ccc */,
506 XcmsColor* /* white_point */,
507 XcmsColor* /* colors */,
508 unsigned int /* ncolors */
509 );
510
511 extern Status XcmsCIEXYZToCIEuvY (
512 XcmsCCC /* ccc */,
513 XcmsColor* /* white_point */,
514 XcmsColor* /* colors */,
515 unsigned int /* ncolors */
516 );
517
518 extern Status XcmsCIEXYZToCIExyY (
519 XcmsCCC /* ccc */,
520 XcmsColor* /* white_point */,
521 XcmsColor* /* colors */,
522 unsigned int /* ncolors */
523 );
524
525 extern Status XcmsCIEXYZToRGBi (
526 XcmsCCC /* ccc */,
527 XcmsColor* /* colors */,
528 unsigned int /* ncolors */,
529 Bool* /* compression_flags_return */
530 );
531
532 extern Status XcmsCIEuvYToCIELuv (
533 XcmsCCC /* ccc */,
534 XcmsColor* /* white_point */,
535 XcmsColor* /* colors */,
536 unsigned int /* ncolors */
537 );
538
539 extern Status XcmsCIEuvYToCIEXYZ (
540 XcmsCCC /* ccc */,
541 XcmsColor* /* white_point */,
542 XcmsColor* /* colors */,
543 unsigned int /* ncolors */
544 );
545
546 extern Status XcmsCIEuvYToTekHVC (
547 XcmsCCC /* ccc */,
548 XcmsColor* /* white_point */,
549 XcmsColor* /* colors */,
550 unsigned int /* ncolors */
551 );
552
553 extern Status XcmsCIExyYToCIEXYZ (
554 XcmsCCC /* ccc */,
555 XcmsColor* /* white_point */,
556 XcmsColor* /* colors */,
557 unsigned int /* ncolors */
558 );
559
560 extern XcmsColor *XcmsClientWhitePointOfCCC (
561 XcmsCCC /* ccc */
562 );
563
564 extern Status XcmsConvertColors (
565 XcmsCCC /* ccc */,
566 XcmsColor* /* colorArry_in_out */,
567 unsigned int /* nColors */,
568 XcmsColorFormat /* targetFormat */,
569 Bool* /* compArry_return */
570 );
571
572 extern XcmsCCC XcmsCreateCCC (
573 Display* /* dpy */,
574 int /* screenNumber */,
575 Visual* /* visual */,
576 XcmsColor* /* clientWhitePt */,
577 XcmsCompressionProc /* gamutCompProc */,
578 XPointer /* gamutCompClientData */,
579 XcmsWhiteAdjustProc /* whitePtAdjProc */,
580 XPointer /* whitePtAdjClientData */
581 );
582
583 extern XcmsCCC XcmsDefaultCCC (
584 Display* /* dpy */,
585 int /* screenNumber */
586 );
587
588 extern Display *XcmsDisplayOfCCC (
589 XcmsCCC /* ccc */
590 );
591
592 extern XcmsColorFormat XcmsFormatOfPrefix (
593 char* /* prefix */
594 );
595
596 extern void XcmsFreeCCC (
597 XcmsCCC /* ccc */
598 );
599
600 extern Status XcmsLookupColor (
601 Display* /* dpy */,
602 Colormap /* colormap */,
603 _Xconst char* /* color_string */,
604 XcmsColor* /* pColor_exact_in_out */,
605 XcmsColor* /* pColor_scrn_in_out */,
606 XcmsColorFormat /* result_format */
607 );
608
609 extern char *XcmsPrefixOfFormat (
610 XcmsColorFormat /* id */
611 );
612
613 extern Status XcmsQueryBlack (
614 XcmsCCC /* ccc */,
615 XcmsColorFormat /* target_format */,
616 XcmsColor* /* color_return */
617 );
618
619 extern Status XcmsQueryBlue (
620 XcmsCCC /* ccc */,
621 XcmsColorFormat /* target_format */,
622 XcmsColor* /* color_return */
623 );
624
625 extern Status XcmsQueryColor (
626 Display* /* dpy */,
627 Colormap /* colormap */,
628 XcmsColor* /* pColor_in_out */,
629 XcmsColorFormat /* result_format */
630 );
631
632 extern Status XcmsQueryColors (
633 Display* /* dpy */,
634 Colormap /* colormap */,
635 XcmsColor* /* colorArry_in_out */,
636 unsigned int /* nColors */,
637 XcmsColorFormat /* result_format */
638 );
639
640 extern Status XcmsQueryGreen (
641 XcmsCCC /* ccc */,
642 XcmsColorFormat /* target_format */,
643 XcmsColor* /* color_return */
644 );
645
646 extern Status XcmsQueryRed (
647 XcmsCCC /* ccc */,
648 XcmsColorFormat /* target_format */,
649 XcmsColor* /* color_return */
650 );
651
652 extern Status XcmsQueryWhite (
653 XcmsCCC /* ccc */,
654 XcmsColorFormat /* target_format */,
655 XcmsColor* /* color_return */
656 );
657
658 extern Status XcmsRGBiToCIEXYZ (
659 XcmsCCC /* ccc */,
660 XcmsColor* /* colors */,
661 unsigned int /* ncolors */,
662 Bool* /* compression_flags_return */
663 );
664
665 extern Status XcmsRGBiToRGB (
666 XcmsCCC /* ccc */,
667 XcmsColor* /* colors */,
668 unsigned int /* ncolors */,
669 Bool* /* compression_flags_return */
670 );
671
672 extern Status XcmsRGBToRGBi (
673 XcmsCCC /* ccc */,
674 XcmsColor* /* colors */,
675 unsigned int /* ncolors */,
676 Bool* /* compression_flags_return */
677 );
678
679 extern int XcmsScreenNumberOfCCC (
680 XcmsCCC /* ccc */
681 );
682
683 extern XcmsColor *XcmsScreenWhitePointOfCCC (
684 XcmsCCC /* ccc */
685 );
686
687 extern XcmsCCC XcmsSetCCCOfColormap(
688 Display* /* dpy */,
689 Colormap /* colormap */,
690 XcmsCCC /* ccc */
691 );
692
693 extern XcmsCompressionProc XcmsSetCompressionProc (
694 XcmsCCC /* ccc */,
695 XcmsCompressionProc /* compression_proc */,
696 XPointer /* client_data */
697 );
698
699 extern XcmsWhiteAdjustProc XcmsSetWhiteAdjustProc (
700 XcmsCCC /* ccc */,
701 XcmsWhiteAdjustProc /* white_adjust_proc */,
702 XPointer /* client_data */
703 );
704
705 extern Status XcmsSetWhitePoint (
706 XcmsCCC /* ccc */,
707 XcmsColor* /* color */
708 );
709
710 extern Status XcmsStoreColor (
711 Display* /* dpy */,
712 Colormap /* colormap */,
713 XcmsColor* /* pColor_in */
714 );
715
716 extern Status XcmsStoreColors (
717 Display* /* dpy */,
718 Colormap /* colormap */,
719 XcmsColor* /* colorArry_in */,
720 unsigned int /* nColors */,
721 Bool* /* compArry_return */
722 );
723
724 extern Status XcmsTekHVCClipC(
725 XcmsCCC /* ccc */,
726 XcmsColor* /* colors_in_out */,
727 unsigned int /* ncolors */,
728 unsigned int /* index */,
729 Bool* /* compression_flags_return */
730 );
731
732 extern Status XcmsTekHVCClipV(
733 XcmsCCC /* ccc */,
734 XcmsColor* /* colors_in_out */,
735 unsigned int /* ncolors */,
736 unsigned int /* index */,
737 Bool* /* compression_flags_return */
738 );
739
740 extern Status XcmsTekHVCClipVC(
741 XcmsCCC /* ccc */,
742 XcmsColor* /* colors_in_out */,
743 unsigned int /* ncolors */,
744 unsigned int /* index */,
745 Bool* /* compression_flags_return */
746 );
747
748 extern Status XcmsTekHVCQueryMaxC (
749 XcmsCCC /* ccc */,
750 XcmsFloat /* hue */,
751 XcmsFloat /* value */,
752 XcmsColor* /* color_return */
753 );
754
755 extern Status XcmsTekHVCQueryMaxV (
756 XcmsCCC /* ccc */,
757 XcmsFloat /* hue */,
758 XcmsFloat /* chroma */,
759 XcmsColor* /* color_return */
760 );
761
762 extern Status XcmsTekHVCQueryMaxVC (
763 XcmsCCC /* ccc */,
764 XcmsFloat /* hue */,
765 XcmsColor* /* color_return */
766 );
767
768 extern Status XcmsTekHVCQueryMaxVSamples (
769 XcmsCCC /* ccc */,
770 XcmsFloat /* hue */,
771 XcmsColor* /* colors_return */,
772 unsigned int /* nsamples */
773 );
774
775 extern Status XcmsTekHVCQueryMinV (
776 XcmsCCC /* ccc */,
777 XcmsFloat /* hue */,
778 XcmsFloat /* chroma */,
779 XcmsColor* /* color_return */
780 );
781
782 extern Status XcmsTekHVCToCIEuvY (
783 XcmsCCC /* ccc */,
784 XcmsColor* /* white_point */,
785 XcmsColor* /* colors */,
786 unsigned int /* ncolors */
787 );
788
789 extern Status XcmsTekHVCWhiteShiftColors(
790 XcmsCCC /* ccc */,
791 XcmsColor* /* initial_white_point*/,
792 XcmsColor* /* target_white_point*/,
793 XcmsColorFormat /* target_format */,
794 XcmsColor* /* colors_in_out */,
795 unsigned int /* ncolors */,
796 Bool* /* compression_flags_return */
797 );
798
799 extern Visual *XcmsVisualOfCCC (
800 XcmsCCC /* ccc */
801 );
802
803 _XFUNCPROTOEND
804
805 #endif /* _XCMS_H_ */