github.com/rajveermalviya/gamen@v0.1.2-0.20220930195403-9be15877c1aa/internal/xkbcommon/include/X11/Xcms.h (about) 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_ */