Mercurial > repos > rliterman > csp2
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_ */ |