1Name 2 3 EXT_histogram 4 5Name Strings 6 7 GL_EXT_histogram 8 9Version 10 11 $Date: 1996/04/05 19:17:02 $ $Revision: 1.24 $ 12 13Number 14 15 11 16 17Dependencies 18 19 EXT_abgr affects the definition of this extension 20 EXT_texture is required 21 22Overview 23 24 This extension defines pixel operations that count occurences of 25 specific color component values (histogram) and that track the minimum 26 and maximum color component values (minmax). An optional mode allows 27 pixel data to be discarded after the histogram and/or minmax operations 28 are completed. Otherwise the pixel data continue on to the next 29 operation unaffected. 30 31New Procedures and Functions 32 33 void HistogramEXT(enum target, 34 sizei width, 35 enum internalformat, 36 boolean sink); 37 38 void ResetHistogramEXT(enum target); 39 40 void GetHistogramEXT(enum target, 41 boolean reset, 42 enum format, 43 enum type, 44 void* values); 45 46 void GetHistogramParameterivEXT(enum target, 47 enum pname, 48 int* params); 49 50 void GetHistogramParameterfvEXT(enum target, 51 enum pname, 52 float* params); 53 54 void MinmaxEXT(enum target, 55 enum internalformat, 56 boolean sink); 57 58 void ResetMinmaxEXT(enum target); 59 60 void GetMinmaxEXT(enum target, 61 boolean reset, 62 enum format, 63 enum type, 64 void* values); 65 66 void GetMinmaxParameterivEXT(enum target, 67 enum pname, 68 int* params); 69 70 void GetMinmaxParameterfvEXT(enum target, 71 enum pname, 72 float* params); 73 74New Tokens 75 76 Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, by 77 the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and 78 GetDoublev, and by the <target> parameter of HistogramEXT, 79 ResetHistogramEXT, GetHistogramEXT, GetHistogramParameterivEXT, and 80 GetHistogramParameterfvEXT: 81 82 HISTOGRAM_EXT 0x8024 83 84 Accepted by the <target> parameter of HistogramEXT, 85 GetHistogramParameterivEXT, and GetHistogramParameterfvEXT: 86 87 PROXY_HISTOGRAM_EXT 0x8025 88 89 Accepted by the <pname> parameter of GetHistogramParameterivEXT and 90 GetHistogramParameterfvEXT: 91 92 HISTOGRAM_WIDTH_EXT 0x8026 93 HISTOGRAM_FORMAT_EXT 0x8027 94 HISTOGRAM_RED_SIZE_EXT 0x8028 95 HISTOGRAM_GREEN_SIZE_EXT 0x8029 96 HISTOGRAM_BLUE_SIZE_EXT 0x802A 97 HISTOGRAM_ALPHA_SIZE_EXT 0x802B 98 HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C 99 HISTOGRAM_SINK_EXT 0x802D 100 101 Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, by 102 the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and 103 GetDoublev, and by the <target> parameter of MinmaxEXT, ResetMinmaxEXT, 104 GetMinmaxEXT, GetMinmaxParameterivEXT, and GetMinmaxParameterfvEXT: 105 106 MINMAX_EXT 0x802E 107 108 Accepted by the <pname> parameter of GetMinmaxParameterivEXT and 109 GetMinmaxParameterfvEXT: 110 111 MINMAX_FORMAT_EXT 0x802F 112 MINMAX_SINK_EXT 0x8030 113 114Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 115 116 A new error token value, TABLE_TOO_LARGE_EXT, is defined and added to 117 table 2.3: 118 Offending 119 command 120 Error Description ignored? 121 ----- ----------- --------- 122 INVALID_ENUM enum argument out of range Yes 123 INVALID_VALUE Numeric argument out of range Yes 124 INVALID_OPERATION Operation illegal in current state Yes 125 STACK_OVERFLOW Command would cause a stack overflow Yes 126 STACK_UNDERFLOW Command would cause a stack underflow Yes 127 OUT_OF_MEMORY Not enough memory left to execute command Unknown 128 TEXTURE_TOO_LARGE_EXT The specified texture is too large Yes 129 TABLE_TOO_LARGE_EXT The specified table is too large Yes 130 131 Table 2.3: Summary of GL errors 132 133 and defined as follows: 134 135 GL_TABLE_TOO_LARGE_EXT 0x8031 136 137 138Additions to Chapter 3 of the 1.0 specification (Rasterization) 139 140 The specification of histogram and minmax operators is added to 141 the GL Specification in section 3.6.2, "Pixel Transfer Modes." A 142 histogram table is specified using the HistogramEXT command. Its 143 <target> parameter must be HISTOGRAM_EXT if a histogram table is 144 to be specified. (Optional target value PROXY_HISTOGRAM_EXT is 145 described below.) Its <width> parameter, which must be a power of 146 2, specifies the number of entries in the histogram table, and its 147 <internalformat> parameter specifies the format of each table 148 entry. <sink> specifies whether pixel groups will be consumed by 149 the histogram operation (TRUE) or passed on to the minmax 150 operation (FALSE). The error INVALID_VALUE results if <width> is 151 specified less than zero or is not a power of 2. The error 152 TABLE_TOO_LARGE_EXT results if the specified histogram table is 153 too large for the implementation. (See the PROXY discussion 154 below.) The error INVALID_ENUM results if <internalformat> is not 155 one of the values accepted by the <components> parameter of 156 TexImage2D (as defined by EXT_texture), except that values 1, 2, 157 3, 4, INTENSITY_EXT, INTENSITY4_EXT, INTENSITY8_EXT, 158 INTENSITY12_EXT, and INTENSITY16_EXT are not accepted. 159 160 If no error results from the execution of HistogramEXT, the specified 161 histogram table is redefined to have <width> entries, each with the 162 specified internal format. The entries are indexed zero through N-1, 163 where N is the <width> of the table. Each value in each entry is set 164 to zero. The values in the previous histogram table, if any, are lost. 165 166 It is acceptable for an implementation to vary its allocation of 167 internal component resolution based any HistogramEXT parameter, but the 168 allocation must not be a function of any other factor, and cannot be 169 changed once it is established. In particular, allocations must be 170 invariant -- the same allocation must be made each time a histogram is 171 specified with the same parameter values. Provision is made for an 172 application to determine what component resolutions are available 173 without having to fully specify the histogram (see below). 174 175 A minmax table is specified using the MinmaxEXT command. Its <target> 176 parameter must be MINMAX_EXT. <internalformat> may be any of the token 177 values accepted by the <components> parameter of TexImage2D, except that 178 1, 2, 3, 4, INTENSITY_EXT, INTENSITY4_EXT, INTENSITY8_EXT, 179 INTENSITY12_EXT, and INTENSITY16_EXT are not accepted. <sink> is set 180 to TRUE or FALSE. The resulting minmax table always has 2 entries, 181 each with values corresponding only to the components of the internal 182 format. 183 184 The operations of the histogram and minmax are added to the GL 185 Specification in section 3.6.3, "Rasterization of Pixel 186 Rectangles, immediately following the subsection "Index Lookup", 187 and immediately prior to the subsection "Final Conversion". 188 Histogram and minmax operations are performed only for RGBA pixel 189 groups, though these groups may have been specified as color 190 indices and converted to RGBA by index table lookup. Histogram 191 and minmax are enabled and disabled by calling Enable or Disable 192 with HISTOGRAM_EXT or MINMAX_EXT passed as the <cap> parameter. 193 If HISTOGRAM_EXT is enabled and the width of the table is 194 non-zero, and the pixel groups contain RGBA values, then indices 195 Ri, Gi, Bi, and Ai are derived from the red, green, blue, and 196 alpha components of each pixel group (without modifying these 197 components) by clamping the components to [0,1], multiplying each 198 by one less than the width of the histogram table, and rounding 199 each to the nearest integer. If the format of the HISTOGRAM_EXT 200 table includes red or luminance, the red or luminance component of 201 histogram entry Ri is incremented by one. If the format of the 202 HISTOGRAM_EXT table includes green, the green component of 203 histogram entry Gi is incremented by one. The blue and alpha 204 components of histogram entries Bi and Ai are incremented in the 205 same way. If a histogram entry component is incremented beyond 206 its maximum value, its value becomes undefined. (This is not an 207 error.) 208 209 If MINMAX_EXT is enabled, and the pixel groups contain RGBA values, then 210 the red, green, blue, and alpha components of each group are compared 211 to the minimum and maximum values for each, which are stored in the 212 2-element minmax table. (The first element stores the minimum values, 213 the second stores the maximum values.) If the format of this table 214 includes red or luminance, the red component value replaces the red or 215 luminance value in the minimum table element if and only if it is less 216 than that component. Likewise, if the format includes red or luminance 217 and the red component of the group is greater than the red or luminance 218 value in the maximum element, the red group component replaces the red 219 or luminance maximum component. If the format of the table includes 220 green, the green group component conditionally replaces the green 221 minimum and/or maximum if it is smaller or larger, respectively. The 222 blue and alpha group components are similarly tested and replaced, if 223 the table format includes blue and/or alpha. The internal type of the 224 minimum and maximum component values is floating point -- there are no 225 semantics defined for the treatment of group component values that are 226 outside the representable range of the minimum and maximum values. 227 228 By default histogram and minmax operations have no effect on the stream 229 of pixel groups being processed. If HISTOGRAM_EXT is enabled and the 230 histogram <sink> parameter was specified as TRUE, however, all RGBA 231 pixel groups are discarded immediately after the histogram operation 232 is completed. Because histogram precedes minmax, no minmax operation 233 is performed. No pixel fragments are generated, no change is made to 234 texture memory contents, and no pixel values are returned. If 235 MINMAX_EXT is enabled and the minmax <sink> parameter was specified 236 as TRUE, all RGBA pixel groups are discarded immediately after the 237 minmax operation is completed. Because minmax follows histogram, a 238 histogram operation with <sink> set to FALSE may precede such a minmax 239 operation. Again no pixel fragments are generated, no change is made 240 to texture memory contents, and no pixel values are returned. 241 242 The current contents of the histogram tables are queried using 243 GetHistogramEXT. <target> must be HISTOGRAM_EXT. <format> must be one 244 of RED, GREEN, BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or 245 LUMINANCE_ALPHA. <type> must be UNSIGNED_BYTE, BYTE, UNSIGNED_SHORT, 246 SHORT, UNSIGNED_INT, INT, or FLOAT. A 1-dimensional image with the 247 same width as the histogram is returned to <values>. No pixel 248 transfer operations are performed on this image, but pixel storage 249 modes that are applicable to ReadPixels are performed. Color 250 components that are requested in the specified <format>, but which are 251 not included in the internal format of the histogram, are returned as 252 zero. The assignments of internal color components to the components 253 requested by <format> are 254 255 internal component resulting component 256 ------------------ ------------------- 257 red red 258 green green 259 blue blue 260 alpha alpha 261 luminance red 262 263 <reset> is either TRUE or FALSE. If TRUE, each component counter that 264 is actually returned is reset to zero. Counters that are not returned 265 are not modified. All counters of all elements of histogram <target> 266 are reset to zero when ResetHistogramEXT is called. <target> must be 267 either HISTOGRAM_EXT. It is not an error to reset or query the contents 268 of a histogram table with zero entries. 269 270 The current contents of the minmax tables are queried using 271 GetMinmaxEXT. <target> must be MINMAX_EXT. <format> must be one 272 of RED, GREEN, BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or 273 LUMINANCE_ALPHA. <type> must be UNSIGNED_BYTE, BYTE, 274 UNSIGNED_SHORT, SHORT, UNSIGNED_INT, INT, or FLOAT. A 275 1-dimensional image with width of 2 is returned to values. No 276 pixel transfer operations are performed on this image, but pixel 277 storage modes that are applicable to ReadPixels are 278 performed. Color components that are requested in the specified 279 <format>, but which are not included in the internal format of the 280 minmax table, are returned as zero. The assignment of internal 281 color components to the components requested by <format> are the 282 same as for histogram return. 283 284 <reset> is either TRUE or FALSE. If TRUE, each minimum value that is 285 actually returned is reset to the maximum representable value, and each 286 maximum value that is returned is reset to the minimum representable 287 value. Minimum and maximum values that are not returned are not 288 modified. All minimum and maximum values of minmax table <target> are 289 reset to their maximum and minimum representable values, respectively, 290 when ResetMinmaxEXT is called. <target> must be MINMAX_EXT. 291 292 Query support 293 ------------- 294 295 Alternate sets of partial histogram state are defined for the 296 proxy histogram PROXY_HISTOGRAM_EXT. Specifically, 297 HISTOGRAM_WIDTH_EXT, HISTOGRAM_FORMAT, HISTOGRAM_RED_SIZE_EXT, 298 HISTOGRAM_GREEN_SIZE_EXT, HISTOGRAM_BLUE_SIZE_EXT, 299 HISTOGRAM_ALPHA_SIZE_EXT, and HISTOGRAM_LUMINANCE_SIZE_EXT are 300 maintained for the proxy histogram. When HistogramEXT is called 301 with <target> set to PROXY_HISTOGRAM_EXT, these proxy state values 302 are always recomputed and updated, even if the histogram is too 303 large to actually be used. If the histogram is too large, all of 304 these state variables are set to zero. If the histogram could be 305 accommodated by Histogram called with <target> HISTOGRAM_EXT, 306 these values are set as though HISTOGRAM_EXT were being defined. 307 All of these state values can be queried with 308 GetHistogramParameterivEXT or GetHistogramParameterfvEXT with 309 <target> set to PROXY_HISTOGRAM_EXT. Calling HistogramEXT with 310 <target> PROXY_HISTOGRAM_EXT has no effect on the actual 311 histogram. 312 313 There is no image associated with PROXY_HISTOGRAM_EXT. Therefore 314 PROXY_HISTOGRAM_EXT cannot be used as a histogram, and its image must 315 never be queried using GetHistogramEXT. (The error INVALID_ENUM 316 results if this is attempted.) 317 318Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 319and the Framebuffer) 320 321 The operation of histogram and minmax during pixel copy and query 322 operations is identical to the operation during pixel drawing and 323 texture image definition. 324 325Additions to Chapter 5 of the 1.0 Specification (Special Functions) 326 327 HistogramEXT with a proxy target, GetHistogramEXT, 328 GetHistogramParameterivEXT, GetHistogramParameterfvEXT, GetMinmaxEXT, 329 GetMinmaxParameterivEXT, and GetMinmaxParameterfvEXT are not included in 330 display lists -- they are executed immediately when called. 331 332Additions to Chapter 6 of the 1.0 Specification (State and State Requests) 333 334 Integer and floating point query functions GetHistogramParameterivEXT 335 and GetHistogramParameterfvEXT are provided. <target> must be 336 HISTOGRAM_EXT or PROXY_HISTOGRAM_EXT. <pname> is one of 337 HISTOGRAM_FORMAT_EXT, HISTOGRAM_WIDTH_EXT, HISTOGRAM_RED_SIZE_EXT, 338 HISTOGRAM_GREEN_SIZE_EXT, HISTOGRAM_BLUE_SIZE_EXT, 339 HISTOGRAM_ALPHA_SIZE_EXT, HISTOGRAM_LUMINANCE_SIZE_EXT, 340 or HISTOGRAM_SINK_EXT. The value of the specified parameter is 341 returned in <params>. 342 343 Integer and floating point query functions GetMinmaxParameterivEXT and 344 GetMinmaxParameterfvEXT are provided. <target> must be MINMAX_EXT. 345 <pname> is MINMAX_FORMAT_EXT or MINMAX_SINK_EXT. The value of the 346 specified parameter is returned in <params>. 347 348Additions to the GLX Specification 349 350 None 351 352GLX Protocol 353 354 Ten new GL commands are added. 355 356 The following four rendering commands are sent to the server as 357 part of a glXRender request: 358 359 HistogramEXT 360 2 20 rendering command length 361 2 4110 rendering command opcode 362 4 ENUM target 363 4 INT32 width 364 4 ENUM internalformat 365 1 BOOL sink 366 3 unused 367 368 ResetHistogramEXT 369 2 8 rendering command length 370 2 4112 rendering command opcode 371 4 ENUM target 372 373 MinmaxEXT 374 2 16 rendering command length 375 2 4111 rendering command opcode 376 4 ENUM target 377 4 ENUM internalformat 378 1 BOOL sink 379 3 unused 380 381 ResetMinmaxEXT 382 2 8 rendering command length 383 2 4113 rendering command opcode 384 4 ENUM target 385 386 387 The remaining commands are non-rendering commands. These commands 388 are sent separately (i.e., not as part of a glXRender or 389 glXRenderLarge request), using the glXVendorPrivateWithReply 390 request: 391 392 GetHistogramEXT 393 1 CARD8 opcode (X assigned) 394 1 17 GLX opcode (glXVendorPrivateWithReply) 395 2 7 request length 396 4 5 vendor specific opcode 397 4 GLX_CONTEXT_TAG context tag 398 4 ENUM target 399 4 ENUM format 400 4 ENUM type 401 1 BOOL swap_bytes 402 1 BOOL reset 403 2 unused 404 => 405 1 1 reply 406 1 unused 407 2 CARD16 sequence number 408 4 n reply length 409 24 unused 410 4*n LISTofBYTE pixels 411 412 If <format> or <type> is not valid then the command is 413 erroneous and n=0. The structure of <pixels> is described in 414 Appendix A of the GLX Protocol Specification, "Pixel Data", 415 using the parameters <swap_bytes>, <format>, and <type>. No 416 extra padding is needed after <pixels> because the image 417 format already pads to 32 bits. 418 419 420 GetHistogramParameterfvEXT 421 1 CARD8 opcode (X assigned) 422 1 17 GLX opcode (glXVendorPrivateWithReply) 423 2 5 request length 424 4 6 vendor specific opcode 425 4 GLX_CONTEXT_TAG context tag 426 4 ENUM target 427 4 ENUM pname 428 => 429 1 1 reply 430 1 unused 431 2 CARD16 sequence number 432 4 m reply length, m = (n==1 ? 0 : n) 433 4 unused 434 4 CARD32 n 435 436 if (n=1) this follows: 437 438 4 INT32 params 439 12 unused 440 441 otherwise this follows: 442 443 16 unused 444 n*4 LISTofINT32 params 445 446 Note that n may be zero, indicating that a GL error 447 occurred. Also, n>1, is for future extensibility. 448 449 450 GetHistogramParameterivEXT 451 1 CARD8 opcode (X assigned) 452 1 17 GLX opcode (glXVendorPrivateWithReply) 453 2 5 request length 454 4 7 vendor specific opcode 455 4 GLX_CONTEXT_TAG context tag 456 4 ENUM target 457 4 ENUM pname 458 => 459 1 1 reply 460 1 unused 461 2 CARD16 sequence number 462 4 m reply length, m = (n==1 ? 0 : n) 463 4 unused 464 4 CARD32 n 465 466 if (n=1) this follows: 467 468 4 INT32 params 469 12 unused 470 471 otherwise this follows: 472 473 16 unused 474 n*4 LISTofINT32 params 475 476 Note that n may be zero, indicating that a GL error 477 occurred. Also, n>1, is for future extensibility. 478 479 480 GetMinmaxEXT 481 1 CARD8 opcode (X assigned) 482 1 17 GLX opcode (glXVendorPrivateWithReply) 483 2 7 request length 484 4 8 vendor specific opcode 485 4 GLX_CONTEXT_TAG context tag 486 4 ENUM target 487 4 ENUM format 488 4 ENUM type 489 1 BOOL swap_bytes 490 1 BOOL reset 491 2 unused 492 => 493 1 1 reply 494 1 unused 495 2 CARD16 sequence number 496 4 n reply length 497 24 unused 498 4*n LISTofBYTE pixels 499 500 If <format> or <type> is not valid then the command is 501 erroneous and n=0. The structure of <pixels> is described in 502 Appendix A of the GLX Protocol Specification, "Pixel Data", 503 using the parameters <swap_bytes>, <format>, and <type>. No 504 extra padding is needed after <pixels> because the image 505 format already pads to 32 bits. 506 507 508 GetMinmaxParameterfvEXT 509 1 CARD8 opcode (X assigned) 510 1 17 GLX opcode (glXVendorPrivateWithReply) 511 2 5 request length 512 4 9 vendor specific opcode 513 4 GLX_CONTEXT_TAG context tag 514 4 ENUM target 515 4 ENUM pname 516 => 517 1 1 reply 518 1 unused 519 2 CARD16 sequence number 520 4 m reply length, m = (n==1 ? 0 : n) 521 4 unused 522 4 CARD32 n 523 524 if (n=1) this follows: 525 526 4 INT32 params 527 12 unused 528 529 otherwise this follows: 530 531 16 unused 532 n*4 LISTofINT32 params 533 534 Note that n may be zero, indicating that a GL error 535 occurred. Also, n>1, is for future extensibility. 536 537 538 GetMinmaxParameterivEXT 539 1 CARD8 opcode (X assigned) 540 1 17 GLX opcode (glXVendorPrivateWithReply) 541 2 5 request length 542 4 10 vendor specific opcode 543 4 GLX_CONTEXT_TAG context tag 544 4 ENUM target 545 4 ENUM pname 546 => 547 1 1 reply 548 1 unused 549 2 CARD16 sequence number 550 4 m reply length, m = (n==1 ? 0 : n) 551 4 unused 552 4 CARD32 n 553 554 if (n=1) this follows: 555 556 4 INT32 params 557 12 unused 558 559 otherwise this follows: 560 561 16 unused 562 n*4 LISTofINT32 params 563 564 565 Note that n may be zero, indicating that a GL error 566 occurred. Also, n>1, is for future extensibility. 567 568Dependencies on EXT_abgr 569 570 If EXT_abgr is supported, the <format> parameters of GetHistogramEXT 571 and GetMinmaxEXT accept ABGR_EXT. Otherwise they do not. 572 573Dependencies on EXT_texture 574 575 EXT_texture is required. This extension builds on the notion of 576 internal image format, which is defined by EXT_texture. 577 578Errors 579 580 INVALID_ENUM is generated if HistogramEXT parameter <target> is not 581 HISTOGRAM_EXT or PROXY_HISTOGRAM_EXT. 582 583 INVALID_VALUE is generated if HistogramEXT parameter <width> is less 584 than zero or is not a power of 2. 585 586 INVALID_ENUM is generated if HistogramEXT parameter <internalformat> is 587 not ALPHA, RGB, RGBA, LUMINANCE, LUMINANCE_ALPHA, or one of the tokens 588 defined by the EXT_texture extension. (Values 1, 2, 3, and 4 are not 589 accepted as internal formats by HistogramEXT). 590 591 TABLE_TOO_LARGE_EXT is generated if HistogramEXT is called with 592 parameter <target> of HISTOGRAM_EXT and the histogram as specified is 593 too large for the implementation. 594 595 INVALID_ENUM is generated if ResetHistogramEXT parameter <target> is 596 not HISTOGRAM_EXT. 597 598 INVALID_ENUM is generated if GetHistogramEXT parameter <target> is not 599 HISTOGRAM_EXT. 600 601 INVALID_ENUM is generated if GetHistogramEXT parameter <format> is not 602 RED, GREEN, BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or 603 LUMINANCE_ALPHA. 604 605 INVALID_ENUM is generated if GetHistogramEXT parameter <type> is not 606 UNSIGNED_BYTE, BYTE, UNSIGNED_SHORT, SHORT, UNSIGNED_INT, INT, or FLOAT. 607 608 INVALID_ENUM is generated if GetHistogramParameterivEXT or 609 GetHistogramParameterfvEXT parameter <target> is not HISTOGRAM_EXT or 610 PROXY_HISTOGRAM_EXT. 611 612 INVALID_ENUM is generated if GetHistogramParameterivEXT or 613 GetHistogramParameterfvEXT parameter <pname> is not 614 HISTOGRAM_FORMAT_EXT, HISTOGRAM_WIDTH_EXT, HISTOGRAM_RED_SIZE_EXT, 615 HISTOGRAM_GREEN_SIZE_EXT, HISTOGRAM_BLUE_SIZE_EXT, 616 HISTOGRAM_ALPHA_SIZE_EXT, HISTOGRAM_LUMINANCE_SIZE_EXT, or 617 HISTOGRAM_SINK_EXT. INVALID_ENUM is also generated if 618 GetHistogramParameterivEXT or GetHistogramParameterfvEXT parameter 619 <target> specifies the proxy histogram and <pname> specifies a 620 piece of state which is not maintained for the proxy histogram. 621 622 INVALID_OPERATION is generated if HistogramEXT, ResetHistogramEXT, 623 GetHistogramEXT, GetHistogramParameterivEXT, or 624 GetHistogramParameterfvEXT is called between execution of Begin and the 625 corresponding execution of End. 626 627 INVALID_ENUM is generated if MinmaxEXT parameter <target> is not 628 MINMAX_EXT. 629 630 INVALID_ENUM is generated if MinmaxEXT parameter <internalformat> is 631 not ALPHA, RGB, RGBA, LUMINANCE, LUMINANCE_ALPHA, or one of the tokens 632 defined by the EXT_texture extension. (Values 1, 2, 3, and 4 are not 633 accepted as internal formats by MinmaxEXT). 634 635 INVALID_ENUM is generated if ResetMinmaxEXT parameter <target> is not 636 MINMAX_EXT. 637 638 INVALID_ENUM is generated if GetMinmaxEXT parameter <target> is not 639 MINMAX_EXT. 640 641 INVALID_ENUM is generated if GetMinmaxEXT parameter <format> is not 642 RED, GREEN, BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or 643 LUMINANCE_ALPHA. 644 645 INVALID_ENUM is generated if GetMinmaxEXT parameter <type> is not 646 UNSIGNED_BYTE, BYTE, UNSIGNED_SHORT, SHORT, UNSIGNED_INT, INT, or FLOAT. 647 648 INVALID_ENUM is generated if GetMinmaxParameterivEXT or 649 GetMinmaxParameterfvEXT parameter <target> is not MINMAX_EXT. 650 651 INVALID_ENUM is generated if GetMinmaxParameterivEXT or 652 GetMinmaxParameterfvEXT parameter <pname> is not MINMAX_FORMAT_EXT or 653 MINMAX_SINK_EXT. 654 655 INVALID_OPERATION is generated if MinmaxEXT, ResetMinmaxEXT, 656 GetMinmaxEXT, GetMinmaxParameterivEXT, or GetMinmaxParameterfvEXT is 657 called between execution of Begin and the corresponding execution of End. 658 659New State 660 661 Get Value Get Command Type Initial Value Attribute 662 --------- ----------- ---- ------------- --------- 663 HISTOGRAM_EXT IsEnabled B False pixel/enable 664 HISTOGRAM GetHistogramEXT I empty - 665 HISTOGRAM_WIDTH_EXT GetHistogramParameterivEXT Z+ 0 - 666 HISTOGRAM_FORMAT_EXT GetHistogramParameterivEXT Z33 RGBA - 667 HISTOGRAM_RED_SIZE_EXT GetHistogramParameterivEXT Z+ 0 - 668 HISTOGRAM_GREEN_SIZE_EXT GetHistogramParameterivEXT Z+ 0 - 669 HISTOGRAM_BLUE_SIZE_EXT GetHistogramParameterivEXT Z+ 0 - 670 HISTOGRAM_ALPHA_SIZE_EXT GetHistogramParameterivEXT Z+ 0 - 671 HISTOGRAM_LUMINANCE_SIZE_EXT GetHistogramParameterivEXT Z+ 0 - 672 HISTOGRAM_SINK_EXT GetHistogramParameterivEXT B False - 673 674 MINMAX_EXT IsEnabled B False pixel/enable 675 MINMAX GetMinmaxEXT Rn (M,M,M,M),(m,m,m,m) - 676 MINMAX_FORMAT_EXT GetMinmaxParameterivEXT Z33 RGBA - 677 MINMAX_SINK_EXT GetMinmaxParameterivEXT B False - 678 679 Note, M and m are the maximum and minimum representable values of the 680 minmax components. 681 682New Implementation Dependent State 683 684 None 685