comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/X11/Xcms.h @ 69:33d812a61356

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