• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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