15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    EXT_histogram
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_EXT_histogram
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciVersion
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    $Date: 1996/04/05 19:17:02 $ $Revision: 1.24 $
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNumber
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    11
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciDependencies
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    EXT_abgr affects the definition of this extension
205bd8deadSopenharmony_ci    EXT_texture is required
215bd8deadSopenharmony_ci
225bd8deadSopenharmony_ciOverview
235bd8deadSopenharmony_ci
245bd8deadSopenharmony_ci    This extension defines pixel operations that count occurences of
255bd8deadSopenharmony_ci    specific color component values (histogram) and that track the minimum
265bd8deadSopenharmony_ci    and maximum color component values (minmax).  An optional mode allows
275bd8deadSopenharmony_ci    pixel data to be discarded after the histogram and/or minmax operations
285bd8deadSopenharmony_ci    are completed.  Otherwise the pixel data continue on to the next
295bd8deadSopenharmony_ci    operation unaffected.
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ciNew Procedures and Functions
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci    void HistogramEXT(enum target,
345bd8deadSopenharmony_ci                      sizei width,
355bd8deadSopenharmony_ci                      enum internalformat,
365bd8deadSopenharmony_ci                      boolean sink);
375bd8deadSopenharmony_ci
385bd8deadSopenharmony_ci    void ResetHistogramEXT(enum target);
395bd8deadSopenharmony_ci
405bd8deadSopenharmony_ci    void GetHistogramEXT(enum target,
415bd8deadSopenharmony_ci                         boolean reset,
425bd8deadSopenharmony_ci                         enum format,
435bd8deadSopenharmony_ci                         enum type,
445bd8deadSopenharmony_ci                         void* values);
455bd8deadSopenharmony_ci
465bd8deadSopenharmony_ci    void GetHistogramParameterivEXT(enum target,
475bd8deadSopenharmony_ci                                    enum pname,
485bd8deadSopenharmony_ci                                    int* params);
495bd8deadSopenharmony_ci
505bd8deadSopenharmony_ci    void GetHistogramParameterfvEXT(enum target,
515bd8deadSopenharmony_ci                                    enum pname,
525bd8deadSopenharmony_ci                                    float* params);
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    void MinmaxEXT(enum target,
555bd8deadSopenharmony_ci                   enum internalformat,
565bd8deadSopenharmony_ci                   boolean sink);
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ci    void ResetMinmaxEXT(enum target);
595bd8deadSopenharmony_ci
605bd8deadSopenharmony_ci    void GetMinmaxEXT(enum target,
615bd8deadSopenharmony_ci                      boolean reset,
625bd8deadSopenharmony_ci                      enum format,
635bd8deadSopenharmony_ci                      enum type,
645bd8deadSopenharmony_ci                      void* values);
655bd8deadSopenharmony_ci
665bd8deadSopenharmony_ci    void GetMinmaxParameterivEXT(enum target,
675bd8deadSopenharmony_ci                                 enum pname,
685bd8deadSopenharmony_ci                                 int* params);
695bd8deadSopenharmony_ci
705bd8deadSopenharmony_ci    void GetMinmaxParameterfvEXT(enum target,
715bd8deadSopenharmony_ci                                 enum pname,
725bd8deadSopenharmony_ci                                 float* params);
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ciNew Tokens
755bd8deadSopenharmony_ci
765bd8deadSopenharmony_ci    Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, by
775bd8deadSopenharmony_ci    the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and
785bd8deadSopenharmony_ci    GetDoublev, and by the <target> parameter of HistogramEXT,
795bd8deadSopenharmony_ci    ResetHistogramEXT, GetHistogramEXT, GetHistogramParameterivEXT, and
805bd8deadSopenharmony_ci    GetHistogramParameterfvEXT:
815bd8deadSopenharmony_ci
825bd8deadSopenharmony_ci        HISTOGRAM_EXT                       0x8024
835bd8deadSopenharmony_ci
845bd8deadSopenharmony_ci    Accepted by the <target> parameter of HistogramEXT,
855bd8deadSopenharmony_ci    GetHistogramParameterivEXT, and GetHistogramParameterfvEXT:
865bd8deadSopenharmony_ci
875bd8deadSopenharmony_ci        PROXY_HISTOGRAM_EXT                 0x8025
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetHistogramParameterivEXT and
905bd8deadSopenharmony_ci    GetHistogramParameterfvEXT:
915bd8deadSopenharmony_ci
925bd8deadSopenharmony_ci        HISTOGRAM_WIDTH_EXT                 0x8026
935bd8deadSopenharmony_ci        HISTOGRAM_FORMAT_EXT                0x8027
945bd8deadSopenharmony_ci        HISTOGRAM_RED_SIZE_EXT              0x8028
955bd8deadSopenharmony_ci        HISTOGRAM_GREEN_SIZE_EXT            0x8029
965bd8deadSopenharmony_ci        HISTOGRAM_BLUE_SIZE_EXT             0x802A
975bd8deadSopenharmony_ci        HISTOGRAM_ALPHA_SIZE_EXT            0x802B
985bd8deadSopenharmony_ci        HISTOGRAM_LUMINANCE_SIZE_EXT        0x802C
995bd8deadSopenharmony_ci        HISTOGRAM_SINK_EXT                  0x802D
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ci    Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, by
1025bd8deadSopenharmony_ci    the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and
1035bd8deadSopenharmony_ci    GetDoublev, and by the <target> parameter of MinmaxEXT, ResetMinmaxEXT,
1045bd8deadSopenharmony_ci    GetMinmaxEXT, GetMinmaxParameterivEXT, and GetMinmaxParameterfvEXT:
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ci        MINMAX_EXT                          0x802E
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetMinmaxParameterivEXT and
1095bd8deadSopenharmony_ci    GetMinmaxParameterfvEXT:
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ci        MINMAX_FORMAT_EXT                   0x802F
1125bd8deadSopenharmony_ci        MINMAX_SINK_EXT                     0x8030
1135bd8deadSopenharmony_ci
1145bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation)
1155bd8deadSopenharmony_ci
1165bd8deadSopenharmony_ci    A new error token value, TABLE_TOO_LARGE_EXT, is defined and added to
1175bd8deadSopenharmony_ci    table 2.3:
1185bd8deadSopenharmony_ci                                                                           Offending
1195bd8deadSopenharmony_ci                                                                           command
1205bd8deadSopenharmony_ci        Error                   Description                                ignored?
1215bd8deadSopenharmony_ci        -----                   -----------                                ---------
1225bd8deadSopenharmony_ci        INVALID_ENUM            enum argument out of range                 Yes
1235bd8deadSopenharmony_ci        INVALID_VALUE           Numeric argument out of range              Yes
1245bd8deadSopenharmony_ci        INVALID_OPERATION       Operation illegal in current state         Yes
1255bd8deadSopenharmony_ci        STACK_OVERFLOW          Command would cause a stack overflow       Yes
1265bd8deadSopenharmony_ci        STACK_UNDERFLOW         Command would cause a stack underflow      Yes
1275bd8deadSopenharmony_ci        OUT_OF_MEMORY           Not enough memory left to execute command  Unknown
1285bd8deadSopenharmony_ci        TEXTURE_TOO_LARGE_EXT   The specified texture is too large         Yes
1295bd8deadSopenharmony_ci        TABLE_TOO_LARGE_EXT     The specified table is too large           Yes
1305bd8deadSopenharmony_ci
1315bd8deadSopenharmony_ci        Table 2.3: Summary of GL errors
1325bd8deadSopenharmony_ci
1335bd8deadSopenharmony_ci    and defined as follows:
1345bd8deadSopenharmony_ci
1355bd8deadSopenharmony_ci        GL_TABLE_TOO_LARGE_EXT              0x8031
1365bd8deadSopenharmony_ci
1375bd8deadSopenharmony_ci
1385bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 specification (Rasterization)
1395bd8deadSopenharmony_ci
1405bd8deadSopenharmony_ci    The specification of histogram and minmax operators is added to
1415bd8deadSopenharmony_ci    the GL Specification in section 3.6.2, "Pixel Transfer Modes."  A
1425bd8deadSopenharmony_ci    histogram table is specified using the HistogramEXT command.  Its
1435bd8deadSopenharmony_ci    <target> parameter must be HISTOGRAM_EXT if a histogram table is
1445bd8deadSopenharmony_ci    to be specified.  (Optional target value PROXY_HISTOGRAM_EXT is
1455bd8deadSopenharmony_ci    described below.)  Its <width> parameter, which must be a power of
1465bd8deadSopenharmony_ci    2, specifies the number of entries in the histogram table, and its
1475bd8deadSopenharmony_ci    <internalformat> parameter specifies the format of each table
1485bd8deadSopenharmony_ci    entry.  <sink> specifies whether pixel groups will be consumed by
1495bd8deadSopenharmony_ci    the histogram operation (TRUE) or passed on to the minmax
1505bd8deadSopenharmony_ci    operation (FALSE).  The error INVALID_VALUE results if <width> is
1515bd8deadSopenharmony_ci    specified less than zero or is not a power of 2.  The error
1525bd8deadSopenharmony_ci    TABLE_TOO_LARGE_EXT results if the specified histogram table is
1535bd8deadSopenharmony_ci    too large for the implementation.  (See the PROXY discussion
1545bd8deadSopenharmony_ci    below.)  The error INVALID_ENUM results if <internalformat> is not
1555bd8deadSopenharmony_ci    one of the values accepted by the <components> parameter of
1565bd8deadSopenharmony_ci    TexImage2D (as defined by EXT_texture), except that values 1, 2,
1575bd8deadSopenharmony_ci    3, 4, INTENSITY_EXT, INTENSITY4_EXT, INTENSITY8_EXT,
1585bd8deadSopenharmony_ci    INTENSITY12_EXT, and INTENSITY16_EXT are not accepted.
1595bd8deadSopenharmony_ci
1605bd8deadSopenharmony_ci    If no error results from the execution of HistogramEXT, the specified
1615bd8deadSopenharmony_ci    histogram table is redefined to have <width> entries, each with the
1625bd8deadSopenharmony_ci    specified internal format.  The entries are indexed zero through N-1,
1635bd8deadSopenharmony_ci    where N is the <width> of the table.  Each value in each entry is set
1645bd8deadSopenharmony_ci    to zero.  The values in the previous histogram table, if any, are lost.
1655bd8deadSopenharmony_ci    
1665bd8deadSopenharmony_ci    It is acceptable for an implementation to vary its allocation of
1675bd8deadSopenharmony_ci    internal component resolution based any HistogramEXT parameter, but the
1685bd8deadSopenharmony_ci    allocation must not be a function of any other factor, and cannot be
1695bd8deadSopenharmony_ci    changed once it is established.  In particular, allocations must be
1705bd8deadSopenharmony_ci    invariant -- the same allocation must be made each time a histogram is
1715bd8deadSopenharmony_ci    specified with the same parameter values.  Provision is made for an
1725bd8deadSopenharmony_ci    application to determine what component resolutions are available
1735bd8deadSopenharmony_ci    without having to fully specify the histogram (see below).
1745bd8deadSopenharmony_ci
1755bd8deadSopenharmony_ci    A minmax table is specified using the MinmaxEXT command.  Its <target>
1765bd8deadSopenharmony_ci    parameter must be MINMAX_EXT.  <internalformat> may be any of the token
1775bd8deadSopenharmony_ci    values accepted by the <components> parameter of TexImage2D, except that
1785bd8deadSopenharmony_ci    1, 2, 3, 4, INTENSITY_EXT, INTENSITY4_EXT, INTENSITY8_EXT,
1795bd8deadSopenharmony_ci    INTENSITY12_EXT, and INTENSITY16_EXT are not accepted.  <sink> is set
1805bd8deadSopenharmony_ci    to TRUE or FALSE.  The resulting minmax table always has 2 entries,
1815bd8deadSopenharmony_ci    each with values corresponding only to the components of the internal
1825bd8deadSopenharmony_ci    format.
1835bd8deadSopenharmony_ci
1845bd8deadSopenharmony_ci    The operations of the histogram and minmax are added to the GL
1855bd8deadSopenharmony_ci    Specification in section 3.6.3, "Rasterization of Pixel
1865bd8deadSopenharmony_ci    Rectangles, immediately following the subsection "Index Lookup",
1875bd8deadSopenharmony_ci    and immediately prior to the subsection "Final Conversion".
1885bd8deadSopenharmony_ci    Histogram and minmax operations are performed only for RGBA pixel
1895bd8deadSopenharmony_ci    groups, though these groups may have been specified as color
1905bd8deadSopenharmony_ci    indices and converted to RGBA by index table lookup.  Histogram
1915bd8deadSopenharmony_ci    and minmax are enabled and disabled by calling Enable or Disable
1925bd8deadSopenharmony_ci    with HISTOGRAM_EXT or MINMAX_EXT passed as the <cap> parameter.
1935bd8deadSopenharmony_ci    If HISTOGRAM_EXT is enabled and the width of the table is
1945bd8deadSopenharmony_ci    non-zero, and the pixel groups contain RGBA values, then indices
1955bd8deadSopenharmony_ci    Ri, Gi, Bi, and Ai are derived from the red, green, blue, and
1965bd8deadSopenharmony_ci    alpha components of each pixel group (without modifying these
1975bd8deadSopenharmony_ci    components) by clamping the components to [0,1], multiplying each
1985bd8deadSopenharmony_ci    by one less than the width of the histogram table, and rounding
1995bd8deadSopenharmony_ci    each to the nearest integer.  If the format of the HISTOGRAM_EXT
2005bd8deadSopenharmony_ci    table includes red or luminance, the red or luminance component of
2015bd8deadSopenharmony_ci    histogram entry Ri is incremented by one.  If the format of the
2025bd8deadSopenharmony_ci    HISTOGRAM_EXT table includes green, the green component of
2035bd8deadSopenharmony_ci    histogram entry Gi is incremented by one.  The blue and alpha
2045bd8deadSopenharmony_ci    components of histogram entries Bi and Ai are incremented in the
2055bd8deadSopenharmony_ci    same way.  If a histogram entry component is incremented beyond
2065bd8deadSopenharmony_ci    its maximum value, its value becomes undefined.  (This is not an
2075bd8deadSopenharmony_ci    error.)
2085bd8deadSopenharmony_ci
2095bd8deadSopenharmony_ci    If MINMAX_EXT is enabled, and the pixel groups contain RGBA values, then
2105bd8deadSopenharmony_ci    the red, green, blue, and alpha components of each group are compared
2115bd8deadSopenharmony_ci    to the minimum and maximum values for each, which are stored in the
2125bd8deadSopenharmony_ci    2-element minmax table.  (The first element stores the minimum values,
2135bd8deadSopenharmony_ci    the second stores the maximum values.)  If the format of this table
2145bd8deadSopenharmony_ci    includes red or luminance, the red component value replaces the red or
2155bd8deadSopenharmony_ci    luminance value in the minimum table element if and only if it is less
2165bd8deadSopenharmony_ci    than that component.  Likewise, if the format includes red or luminance
2175bd8deadSopenharmony_ci    and the red component of the group is greater than the red or luminance
2185bd8deadSopenharmony_ci    value in the maximum element, the red group component replaces the red
2195bd8deadSopenharmony_ci    or luminance maximum component.  If the format of the table includes
2205bd8deadSopenharmony_ci    green, the green group component conditionally replaces the green
2215bd8deadSopenharmony_ci    minimum and/or maximum if it is smaller or larger, respectively.  The
2225bd8deadSopenharmony_ci    blue and alpha group components are similarly tested and replaced, if
2235bd8deadSopenharmony_ci    the table format includes blue and/or alpha.  The internal type of the
2245bd8deadSopenharmony_ci    minimum and maximum component values is floating point -- there are no
2255bd8deadSopenharmony_ci    semantics defined for the treatment of group component values that are
2265bd8deadSopenharmony_ci    outside the representable range of the minimum and maximum values.
2275bd8deadSopenharmony_ci
2285bd8deadSopenharmony_ci    By default histogram and minmax operations have no effect on the stream
2295bd8deadSopenharmony_ci    of pixel groups being processed.  If HISTOGRAM_EXT is enabled and the
2305bd8deadSopenharmony_ci    histogram <sink> parameter was specified as TRUE, however, all RGBA
2315bd8deadSopenharmony_ci    pixel groups are discarded immediately after the histogram operation
2325bd8deadSopenharmony_ci    is completed.  Because histogram precedes minmax, no minmax operation
2335bd8deadSopenharmony_ci    is performed.  No pixel fragments are generated, no change is made to
2345bd8deadSopenharmony_ci    texture memory contents, and no pixel values are returned.  If
2355bd8deadSopenharmony_ci    MINMAX_EXT is enabled and the minmax <sink> parameter was specified
2365bd8deadSopenharmony_ci    as TRUE, all RGBA pixel groups are discarded immediately after the
2375bd8deadSopenharmony_ci    minmax operation is completed.  Because minmax follows histogram, a
2385bd8deadSopenharmony_ci    histogram operation with <sink> set to FALSE may precede such a minmax
2395bd8deadSopenharmony_ci    operation.  Again no pixel fragments are generated, no change is made
2405bd8deadSopenharmony_ci    to texture memory contents, and no pixel values are returned.
2415bd8deadSopenharmony_ci
2425bd8deadSopenharmony_ci    The current contents of the histogram tables are queried using
2435bd8deadSopenharmony_ci    GetHistogramEXT.  <target> must be HISTOGRAM_EXT.  <format> must be one
2445bd8deadSopenharmony_ci    of RED, GREEN, BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or
2455bd8deadSopenharmony_ci    LUMINANCE_ALPHA.  <type> must be UNSIGNED_BYTE, BYTE, UNSIGNED_SHORT,
2465bd8deadSopenharmony_ci    SHORT, UNSIGNED_INT, INT, or FLOAT.  A 1-dimensional image with the
2475bd8deadSopenharmony_ci    same width as the histogram is returned to <values>.  No pixel
2485bd8deadSopenharmony_ci    transfer operations are performed on this image, but pixel storage
2495bd8deadSopenharmony_ci    modes that are applicable to ReadPixels are performed.  Color
2505bd8deadSopenharmony_ci    components that are requested in the specified <format>, but which are
2515bd8deadSopenharmony_ci    not included in the internal format of the histogram, are returned as
2525bd8deadSopenharmony_ci    zero.  The assignments of internal color components to the components
2535bd8deadSopenharmony_ci    requested by <format> are
2545bd8deadSopenharmony_ci
2555bd8deadSopenharmony_ci                internal component      resulting component
2565bd8deadSopenharmony_ci                ------------------      -------------------
2575bd8deadSopenharmony_ci                red                     red
2585bd8deadSopenharmony_ci                green                   green
2595bd8deadSopenharmony_ci                blue                    blue
2605bd8deadSopenharmony_ci                alpha                   alpha
2615bd8deadSopenharmony_ci                luminance               red
2625bd8deadSopenharmony_ci    
2635bd8deadSopenharmony_ci    <reset> is either TRUE or FALSE.  If TRUE, each component counter that
2645bd8deadSopenharmony_ci    is actually returned is reset to zero.  Counters that are not returned
2655bd8deadSopenharmony_ci    are not modified.  All counters of all elements of histogram <target>
2665bd8deadSopenharmony_ci    are reset to zero when ResetHistogramEXT is called.  <target> must be
2675bd8deadSopenharmony_ci    either HISTOGRAM_EXT.  It is not an error to reset or query the contents
2685bd8deadSopenharmony_ci    of a histogram table with zero entries.
2695bd8deadSopenharmony_ci
2705bd8deadSopenharmony_ci    The current contents of the minmax tables are queried using
2715bd8deadSopenharmony_ci    GetMinmaxEXT.  <target> must be MINMAX_EXT.  <format> must be one
2725bd8deadSopenharmony_ci    of RED, GREEN, BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or
2735bd8deadSopenharmony_ci    LUMINANCE_ALPHA.  <type> must be UNSIGNED_BYTE, BYTE,
2745bd8deadSopenharmony_ci    UNSIGNED_SHORT, SHORT, UNSIGNED_INT, INT, or FLOAT.  A
2755bd8deadSopenharmony_ci    1-dimensional image with width of 2 is returned to values.  No
2765bd8deadSopenharmony_ci    pixel transfer operations are performed on this image, but pixel
2775bd8deadSopenharmony_ci    storage modes that are applicable to ReadPixels are
2785bd8deadSopenharmony_ci    performed. Color components that are requested in the specified
2795bd8deadSopenharmony_ci    <format>, but which are not included in the internal format of the
2805bd8deadSopenharmony_ci    minmax table, are returned as zero.  The assignment of internal
2815bd8deadSopenharmony_ci    color components to the components requested by <format> are the
2825bd8deadSopenharmony_ci    same as for histogram return.
2835bd8deadSopenharmony_ci
2845bd8deadSopenharmony_ci    <reset> is either TRUE or FALSE.  If TRUE, each minimum value that is
2855bd8deadSopenharmony_ci    actually returned is reset to the maximum representable value, and each
2865bd8deadSopenharmony_ci    maximum value that is returned is reset to the minimum representable
2875bd8deadSopenharmony_ci    value.  Minimum and maximum values that are not returned are not
2885bd8deadSopenharmony_ci    modified.  All minimum and maximum values of minmax table <target> are
2895bd8deadSopenharmony_ci    reset to their maximum and minimum representable values, respectively,
2905bd8deadSopenharmony_ci    when ResetMinmaxEXT is called.  <target> must be MINMAX_EXT.
2915bd8deadSopenharmony_ci
2925bd8deadSopenharmony_ci    Query support
2935bd8deadSopenharmony_ci    -------------
2945bd8deadSopenharmony_ci
2955bd8deadSopenharmony_ci    Alternate sets of partial histogram state are defined for the
2965bd8deadSopenharmony_ci    proxy histogram PROXY_HISTOGRAM_EXT.  Specifically,
2975bd8deadSopenharmony_ci    HISTOGRAM_WIDTH_EXT, HISTOGRAM_FORMAT, HISTOGRAM_RED_SIZE_EXT,
2985bd8deadSopenharmony_ci    HISTOGRAM_GREEN_SIZE_EXT, HISTOGRAM_BLUE_SIZE_EXT,
2995bd8deadSopenharmony_ci    HISTOGRAM_ALPHA_SIZE_EXT, and HISTOGRAM_LUMINANCE_SIZE_EXT are
3005bd8deadSopenharmony_ci    maintained for the proxy histogram.  When HistogramEXT is called
3015bd8deadSopenharmony_ci    with <target> set to PROXY_HISTOGRAM_EXT, these proxy state values
3025bd8deadSopenharmony_ci    are always recomputed and updated, even if the histogram is too
3035bd8deadSopenharmony_ci    large to actually be used.  If the histogram is too large, all of
3045bd8deadSopenharmony_ci    these state variables are set to zero.  If the histogram could be
3055bd8deadSopenharmony_ci    accommodated by Histogram called with <target> HISTOGRAM_EXT,
3065bd8deadSopenharmony_ci    these values are set as though HISTOGRAM_EXT were being defined.
3075bd8deadSopenharmony_ci    All of these state values can be queried with
3085bd8deadSopenharmony_ci    GetHistogramParameterivEXT or GetHistogramParameterfvEXT with
3095bd8deadSopenharmony_ci    <target> set to PROXY_HISTOGRAM_EXT.  Calling HistogramEXT with
3105bd8deadSopenharmony_ci    <target> PROXY_HISTOGRAM_EXT has no effect on the actual
3115bd8deadSopenharmony_ci    histogram.
3125bd8deadSopenharmony_ci
3135bd8deadSopenharmony_ci    There is no image associated with PROXY_HISTOGRAM_EXT.  Therefore
3145bd8deadSopenharmony_ci    PROXY_HISTOGRAM_EXT cannot be used as a histogram, and its image must
3155bd8deadSopenharmony_ci    never be queried using GetHistogramEXT.  (The error INVALID_ENUM
3165bd8deadSopenharmony_ci    results if this is attempted.)
3175bd8deadSopenharmony_ci
3185bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations
3195bd8deadSopenharmony_ciand the Framebuffer)
3205bd8deadSopenharmony_ci
3215bd8deadSopenharmony_ci    The operation of histogram and minmax during pixel copy and query
3225bd8deadSopenharmony_ci    operations is identical to the operation during pixel drawing and
3235bd8deadSopenharmony_ci    texture image definition.
3245bd8deadSopenharmony_ci
3255bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions)
3265bd8deadSopenharmony_ci
3275bd8deadSopenharmony_ci    HistogramEXT with a proxy target, GetHistogramEXT,
3285bd8deadSopenharmony_ci    GetHistogramParameterivEXT, GetHistogramParameterfvEXT, GetMinmaxEXT,
3295bd8deadSopenharmony_ci    GetMinmaxParameterivEXT, and GetMinmaxParameterfvEXT are not included in
3305bd8deadSopenharmony_ci    display lists -- they are executed immediately when called.
3315bd8deadSopenharmony_ci
3325bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests)
3335bd8deadSopenharmony_ci
3345bd8deadSopenharmony_ci    Integer and floating point query functions GetHistogramParameterivEXT
3355bd8deadSopenharmony_ci    and GetHistogramParameterfvEXT are provided.  <target> must be
3365bd8deadSopenharmony_ci    HISTOGRAM_EXT or PROXY_HISTOGRAM_EXT.  <pname> is one of
3375bd8deadSopenharmony_ci    HISTOGRAM_FORMAT_EXT, HISTOGRAM_WIDTH_EXT, HISTOGRAM_RED_SIZE_EXT,
3385bd8deadSopenharmony_ci    HISTOGRAM_GREEN_SIZE_EXT, HISTOGRAM_BLUE_SIZE_EXT,
3395bd8deadSopenharmony_ci    HISTOGRAM_ALPHA_SIZE_EXT, HISTOGRAM_LUMINANCE_SIZE_EXT,
3405bd8deadSopenharmony_ci    or HISTOGRAM_SINK_EXT.  The value of the specified parameter is
3415bd8deadSopenharmony_ci    returned in <params>.
3425bd8deadSopenharmony_ci
3435bd8deadSopenharmony_ci    Integer and floating point query functions GetMinmaxParameterivEXT and
3445bd8deadSopenharmony_ci    GetMinmaxParameterfvEXT are provided.  <target> must be MINMAX_EXT.
3455bd8deadSopenharmony_ci    <pname> is MINMAX_FORMAT_EXT or MINMAX_SINK_EXT.  The value of the
3465bd8deadSopenharmony_ci    specified parameter is returned in <params>.
3475bd8deadSopenharmony_ci
3485bd8deadSopenharmony_ciAdditions to the GLX Specification
3495bd8deadSopenharmony_ci
3505bd8deadSopenharmony_ci    None
3515bd8deadSopenharmony_ci
3525bd8deadSopenharmony_ciGLX Protocol
3535bd8deadSopenharmony_ci
3545bd8deadSopenharmony_ci    Ten new GL commands are added.
3555bd8deadSopenharmony_ci
3565bd8deadSopenharmony_ci    The following four rendering commands are sent to the server as
3575bd8deadSopenharmony_ci    part of a glXRender request:
3585bd8deadSopenharmony_ci
3595bd8deadSopenharmony_ci        HistogramEXT
3605bd8deadSopenharmony_ci            2           20              rendering command length
3615bd8deadSopenharmony_ci            2           4110            rendering command opcode
3625bd8deadSopenharmony_ci            4           ENUM            target
3635bd8deadSopenharmony_ci            4           INT32           width
3645bd8deadSopenharmony_ci            4           ENUM            internalformat
3655bd8deadSopenharmony_ci            1           BOOL            sink
3665bd8deadSopenharmony_ci            3                           unused
3675bd8deadSopenharmony_ci
3685bd8deadSopenharmony_ci        ResetHistogramEXT
3695bd8deadSopenharmony_ci            2           8               rendering command length
3705bd8deadSopenharmony_ci            2           4112            rendering command opcode
3715bd8deadSopenharmony_ci            4           ENUM            target
3725bd8deadSopenharmony_ci
3735bd8deadSopenharmony_ci        MinmaxEXT
3745bd8deadSopenharmony_ci            2           16              rendering command length
3755bd8deadSopenharmony_ci            2           4111            rendering command opcode
3765bd8deadSopenharmony_ci            4           ENUM            target
3775bd8deadSopenharmony_ci            4           ENUM            internalformat
3785bd8deadSopenharmony_ci            1           BOOL            sink
3795bd8deadSopenharmony_ci            3                           unused
3805bd8deadSopenharmony_ci
3815bd8deadSopenharmony_ci        ResetMinmaxEXT
3825bd8deadSopenharmony_ci            2           8               rendering command length
3835bd8deadSopenharmony_ci            2           4113            rendering command opcode
3845bd8deadSopenharmony_ci            4           ENUM            target
3855bd8deadSopenharmony_ci
3865bd8deadSopenharmony_ci
3875bd8deadSopenharmony_ci    The remaining commands are non-rendering commands. These commands
3885bd8deadSopenharmony_ci    are sent separately (i.e., not as part of a glXRender or
3895bd8deadSopenharmony_ci    glXRenderLarge request), using the glXVendorPrivateWithReply
3905bd8deadSopenharmony_ci    request:
3915bd8deadSopenharmony_ci
3925bd8deadSopenharmony_ci        GetHistogramEXT
3935bd8deadSopenharmony_ci            1           CARD8           opcode (X assigned)
3945bd8deadSopenharmony_ci            1           17              GLX opcode (glXVendorPrivateWithReply)
3955bd8deadSopenharmony_ci            2           7               request length
3965bd8deadSopenharmony_ci            4           5               vendor specific opcode
3975bd8deadSopenharmony_ci            4           GLX_CONTEXT_TAG context tag
3985bd8deadSopenharmony_ci            4           ENUM            target
3995bd8deadSopenharmony_ci            4           ENUM            format
4005bd8deadSopenharmony_ci            4           ENUM            type
4015bd8deadSopenharmony_ci            1           BOOL            swap_bytes
4025bd8deadSopenharmony_ci            1           BOOL            reset
4035bd8deadSopenharmony_ci            2                           unused
4045bd8deadSopenharmony_ci          =>
4055bd8deadSopenharmony_ci            1           1               reply
4065bd8deadSopenharmony_ci            1                           unused
4075bd8deadSopenharmony_ci            2           CARD16          sequence number
4085bd8deadSopenharmony_ci            4           n               reply length
4095bd8deadSopenharmony_ci            24                          unused
4105bd8deadSopenharmony_ci            4*n         LISTofBYTE      pixels
4115bd8deadSopenharmony_ci
4125bd8deadSopenharmony_ci        If <format> or <type> is not valid then the command is
4135bd8deadSopenharmony_ci        erroneous and n=0. The structure of <pixels> is described in
4145bd8deadSopenharmony_ci        Appendix A of the GLX Protocol Specification, "Pixel Data",
4155bd8deadSopenharmony_ci        using the parameters <swap_bytes>, <format>, and <type>. No
4165bd8deadSopenharmony_ci        extra padding is needed after <pixels> because the image
4175bd8deadSopenharmony_ci        format already pads to 32 bits.
4185bd8deadSopenharmony_ci
4195bd8deadSopenharmony_ci
4205bd8deadSopenharmony_ci        GetHistogramParameterfvEXT
4215bd8deadSopenharmony_ci            1           CARD8           opcode (X assigned)
4225bd8deadSopenharmony_ci            1           17              GLX opcode (glXVendorPrivateWithReply)
4235bd8deadSopenharmony_ci            2           5               request length
4245bd8deadSopenharmony_ci            4           6               vendor specific opcode
4255bd8deadSopenharmony_ci            4           GLX_CONTEXT_TAG context tag
4265bd8deadSopenharmony_ci            4           ENUM            target
4275bd8deadSopenharmony_ci            4           ENUM            pname
4285bd8deadSopenharmony_ci          =>
4295bd8deadSopenharmony_ci            1           1               reply
4305bd8deadSopenharmony_ci            1                           unused
4315bd8deadSopenharmony_ci            2           CARD16          sequence number
4325bd8deadSopenharmony_ci            4           m               reply length, m = (n==1 ? 0 : n)
4335bd8deadSopenharmony_ci            4                           unused
4345bd8deadSopenharmony_ci            4           CARD32          n
4355bd8deadSopenharmony_ci
4365bd8deadSopenharmony_ci            if (n=1) this follows:
4375bd8deadSopenharmony_ci
4385bd8deadSopenharmony_ci            4           INT32           params
4395bd8deadSopenharmony_ci            12                          unused
4405bd8deadSopenharmony_ci
4415bd8deadSopenharmony_ci            otherwise this follows:
4425bd8deadSopenharmony_ci
4435bd8deadSopenharmony_ci            16                          unused
4445bd8deadSopenharmony_ci            n*4         LISTofINT32     params
4455bd8deadSopenharmony_ci
4465bd8deadSopenharmony_ci        Note that n may be zero, indicating that a GL error
4475bd8deadSopenharmony_ci        occurred. Also, n>1, is for future extensibility.
4485bd8deadSopenharmony_ci
4495bd8deadSopenharmony_ci
4505bd8deadSopenharmony_ci        GetHistogramParameterivEXT
4515bd8deadSopenharmony_ci            1           CARD8           opcode (X assigned)
4525bd8deadSopenharmony_ci            1           17              GLX opcode (glXVendorPrivateWithReply)
4535bd8deadSopenharmony_ci            2           5               request length
4545bd8deadSopenharmony_ci            4           7               vendor specific opcode
4555bd8deadSopenharmony_ci            4           GLX_CONTEXT_TAG context tag
4565bd8deadSopenharmony_ci            4           ENUM            target
4575bd8deadSopenharmony_ci            4           ENUM            pname
4585bd8deadSopenharmony_ci          =>
4595bd8deadSopenharmony_ci            1           1               reply
4605bd8deadSopenharmony_ci            1                           unused
4615bd8deadSopenharmony_ci            2           CARD16          sequence number
4625bd8deadSopenharmony_ci            4           m               reply length, m = (n==1 ? 0 : n)
4635bd8deadSopenharmony_ci            4                           unused
4645bd8deadSopenharmony_ci            4           CARD32          n
4655bd8deadSopenharmony_ci
4665bd8deadSopenharmony_ci            if (n=1) this follows:
4675bd8deadSopenharmony_ci
4685bd8deadSopenharmony_ci            4           INT32           params
4695bd8deadSopenharmony_ci            12                          unused
4705bd8deadSopenharmony_ci
4715bd8deadSopenharmony_ci            otherwise this follows:
4725bd8deadSopenharmony_ci
4735bd8deadSopenharmony_ci            16                          unused
4745bd8deadSopenharmony_ci            n*4         LISTofINT32     params
4755bd8deadSopenharmony_ci
4765bd8deadSopenharmony_ci        Note that n may be zero, indicating that a GL error
4775bd8deadSopenharmony_ci        occurred. Also, n>1, is for future extensibility.
4785bd8deadSopenharmony_ci
4795bd8deadSopenharmony_ci
4805bd8deadSopenharmony_ci        GetMinmaxEXT
4815bd8deadSopenharmony_ci            1           CARD8           opcode (X assigned)
4825bd8deadSopenharmony_ci            1           17              GLX opcode (glXVendorPrivateWithReply)
4835bd8deadSopenharmony_ci            2           7               request length
4845bd8deadSopenharmony_ci            4           8               vendor specific opcode
4855bd8deadSopenharmony_ci            4           GLX_CONTEXT_TAG context tag
4865bd8deadSopenharmony_ci            4           ENUM            target
4875bd8deadSopenharmony_ci            4           ENUM            format
4885bd8deadSopenharmony_ci            4           ENUM            type
4895bd8deadSopenharmony_ci            1           BOOL            swap_bytes
4905bd8deadSopenharmony_ci            1           BOOL            reset
4915bd8deadSopenharmony_ci            2                           unused
4925bd8deadSopenharmony_ci          =>
4935bd8deadSopenharmony_ci            1           1               reply
4945bd8deadSopenharmony_ci            1                           unused
4955bd8deadSopenharmony_ci            2           CARD16          sequence number
4965bd8deadSopenharmony_ci            4           n               reply length
4975bd8deadSopenharmony_ci            24                          unused
4985bd8deadSopenharmony_ci            4*n         LISTofBYTE      pixels
4995bd8deadSopenharmony_ci
5005bd8deadSopenharmony_ci        If <format> or <type> is not valid then the command is
5015bd8deadSopenharmony_ci        erroneous and n=0. The structure of <pixels> is described in
5025bd8deadSopenharmony_ci        Appendix A of the GLX Protocol Specification, "Pixel Data",
5035bd8deadSopenharmony_ci        using the parameters <swap_bytes>, <format>, and <type>. No
5045bd8deadSopenharmony_ci        extra padding is needed after <pixels> because the image
5055bd8deadSopenharmony_ci        format already pads to 32 bits.
5065bd8deadSopenharmony_ci
5075bd8deadSopenharmony_ci
5085bd8deadSopenharmony_ci        GetMinmaxParameterfvEXT
5095bd8deadSopenharmony_ci            1           CARD8           opcode (X assigned)
5105bd8deadSopenharmony_ci            1           17              GLX opcode (glXVendorPrivateWithReply)
5115bd8deadSopenharmony_ci            2           5               request length
5125bd8deadSopenharmony_ci            4           9               vendor specific opcode
5135bd8deadSopenharmony_ci            4           GLX_CONTEXT_TAG context tag
5145bd8deadSopenharmony_ci            4           ENUM            target
5155bd8deadSopenharmony_ci            4           ENUM            pname
5165bd8deadSopenharmony_ci          =>
5175bd8deadSopenharmony_ci            1           1               reply
5185bd8deadSopenharmony_ci            1                           unused
5195bd8deadSopenharmony_ci            2           CARD16          sequence number
5205bd8deadSopenharmony_ci            4           m               reply length, m = (n==1 ? 0 : n)
5215bd8deadSopenharmony_ci            4                           unused
5225bd8deadSopenharmony_ci            4           CARD32          n
5235bd8deadSopenharmony_ci
5245bd8deadSopenharmony_ci            if (n=1) this follows:
5255bd8deadSopenharmony_ci
5265bd8deadSopenharmony_ci            4           INT32           params
5275bd8deadSopenharmony_ci            12                          unused
5285bd8deadSopenharmony_ci
5295bd8deadSopenharmony_ci            otherwise this follows:
5305bd8deadSopenharmony_ci
5315bd8deadSopenharmony_ci            16                          unused
5325bd8deadSopenharmony_ci            n*4         LISTofINT32     params
5335bd8deadSopenharmony_ci
5345bd8deadSopenharmony_ci        Note that n may be zero, indicating that a GL error
5355bd8deadSopenharmony_ci        occurred. Also, n>1, is for future extensibility.
5365bd8deadSopenharmony_ci
5375bd8deadSopenharmony_ci
5385bd8deadSopenharmony_ci        GetMinmaxParameterivEXT
5395bd8deadSopenharmony_ci            1           CARD8           opcode (X assigned)
5405bd8deadSopenharmony_ci            1           17              GLX opcode (glXVendorPrivateWithReply)
5415bd8deadSopenharmony_ci            2           5               request length
5425bd8deadSopenharmony_ci            4           10              vendor specific opcode
5435bd8deadSopenharmony_ci            4           GLX_CONTEXT_TAG context tag
5445bd8deadSopenharmony_ci            4           ENUM            target
5455bd8deadSopenharmony_ci            4           ENUM            pname
5465bd8deadSopenharmony_ci          =>
5475bd8deadSopenharmony_ci            1           1               reply
5485bd8deadSopenharmony_ci            1                           unused
5495bd8deadSopenharmony_ci            2           CARD16          sequence number
5505bd8deadSopenharmony_ci            4           m               reply length, m = (n==1 ? 0 : n)
5515bd8deadSopenharmony_ci            4                           unused
5525bd8deadSopenharmony_ci            4           CARD32          n
5535bd8deadSopenharmony_ci
5545bd8deadSopenharmony_ci            if (n=1) this follows:
5555bd8deadSopenharmony_ci
5565bd8deadSopenharmony_ci            4           INT32           params
5575bd8deadSopenharmony_ci            12                          unused
5585bd8deadSopenharmony_ci
5595bd8deadSopenharmony_ci            otherwise this follows:
5605bd8deadSopenharmony_ci
5615bd8deadSopenharmony_ci            16                          unused
5625bd8deadSopenharmony_ci            n*4         LISTofINT32     params
5635bd8deadSopenharmony_ci
5645bd8deadSopenharmony_ci
5655bd8deadSopenharmony_ci        Note that n may be zero, indicating that a GL error
5665bd8deadSopenharmony_ci        occurred. Also, n>1, is for future extensibility.
5675bd8deadSopenharmony_ci
5685bd8deadSopenharmony_ciDependencies on EXT_abgr
5695bd8deadSopenharmony_ci
5705bd8deadSopenharmony_ci    If EXT_abgr is supported, the <format> parameters of GetHistogramEXT
5715bd8deadSopenharmony_ci    and GetMinmaxEXT accept ABGR_EXT.  Otherwise they do not.
5725bd8deadSopenharmony_ci
5735bd8deadSopenharmony_ciDependencies on EXT_texture
5745bd8deadSopenharmony_ci
5755bd8deadSopenharmony_ci    EXT_texture is required.  This extension builds on the notion of
5765bd8deadSopenharmony_ci    internal image format, which is defined by EXT_texture.
5775bd8deadSopenharmony_ci
5785bd8deadSopenharmony_ciErrors
5795bd8deadSopenharmony_ci
5805bd8deadSopenharmony_ci    INVALID_ENUM is generated if HistogramEXT parameter <target> is not
5815bd8deadSopenharmony_ci    HISTOGRAM_EXT or PROXY_HISTOGRAM_EXT.
5825bd8deadSopenharmony_ci
5835bd8deadSopenharmony_ci    INVALID_VALUE is generated if HistogramEXT parameter <width> is less
5845bd8deadSopenharmony_ci    than zero or is not a power of 2.
5855bd8deadSopenharmony_ci
5865bd8deadSopenharmony_ci    INVALID_ENUM is generated if HistogramEXT parameter <internalformat> is
5875bd8deadSopenharmony_ci    not ALPHA, RGB, RGBA, LUMINANCE, LUMINANCE_ALPHA, or one of the tokens
5885bd8deadSopenharmony_ci    defined by the EXT_texture extension.  (Values 1, 2, 3, and 4 are not
5895bd8deadSopenharmony_ci    accepted as internal formats by HistogramEXT).
5905bd8deadSopenharmony_ci
5915bd8deadSopenharmony_ci    TABLE_TOO_LARGE_EXT is generated if HistogramEXT is called with
5925bd8deadSopenharmony_ci    parameter <target> of HISTOGRAM_EXT and the histogram as specified is
5935bd8deadSopenharmony_ci    too large for the implementation.
5945bd8deadSopenharmony_ci
5955bd8deadSopenharmony_ci    INVALID_ENUM is generated if ResetHistogramEXT parameter <target> is
5965bd8deadSopenharmony_ci    not HISTOGRAM_EXT.
5975bd8deadSopenharmony_ci
5985bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetHistogramEXT parameter <target> is not
5995bd8deadSopenharmony_ci    HISTOGRAM_EXT.
6005bd8deadSopenharmony_ci
6015bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetHistogramEXT parameter <format> is not
6025bd8deadSopenharmony_ci    RED, GREEN, BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or
6035bd8deadSopenharmony_ci    LUMINANCE_ALPHA.
6045bd8deadSopenharmony_ci
6055bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetHistogramEXT parameter <type> is not
6065bd8deadSopenharmony_ci    UNSIGNED_BYTE, BYTE, UNSIGNED_SHORT, SHORT, UNSIGNED_INT, INT, or FLOAT.
6075bd8deadSopenharmony_ci
6085bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetHistogramParameterivEXT or
6095bd8deadSopenharmony_ci    GetHistogramParameterfvEXT parameter <target> is not HISTOGRAM_EXT or
6105bd8deadSopenharmony_ci    PROXY_HISTOGRAM_EXT.
6115bd8deadSopenharmony_ci
6125bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetHistogramParameterivEXT or
6135bd8deadSopenharmony_ci    GetHistogramParameterfvEXT parameter <pname> is not
6145bd8deadSopenharmony_ci    HISTOGRAM_FORMAT_EXT, HISTOGRAM_WIDTH_EXT, HISTOGRAM_RED_SIZE_EXT,
6155bd8deadSopenharmony_ci    HISTOGRAM_GREEN_SIZE_EXT, HISTOGRAM_BLUE_SIZE_EXT,
6165bd8deadSopenharmony_ci    HISTOGRAM_ALPHA_SIZE_EXT, HISTOGRAM_LUMINANCE_SIZE_EXT, or
6175bd8deadSopenharmony_ci    HISTOGRAM_SINK_EXT.  INVALID_ENUM is also generated if
6185bd8deadSopenharmony_ci    GetHistogramParameterivEXT or GetHistogramParameterfvEXT parameter
6195bd8deadSopenharmony_ci    <target> specifies the proxy histogram and <pname> specifies a
6205bd8deadSopenharmony_ci    piece of state which is not maintained for the proxy histogram.
6215bd8deadSopenharmony_ci
6225bd8deadSopenharmony_ci    INVALID_OPERATION is generated if HistogramEXT, ResetHistogramEXT,
6235bd8deadSopenharmony_ci    GetHistogramEXT, GetHistogramParameterivEXT, or
6245bd8deadSopenharmony_ci    GetHistogramParameterfvEXT is called between execution of Begin and the
6255bd8deadSopenharmony_ci    corresponding execution of End.
6265bd8deadSopenharmony_ci
6275bd8deadSopenharmony_ci    INVALID_ENUM is generated if MinmaxEXT parameter <target> is not
6285bd8deadSopenharmony_ci    MINMAX_EXT.
6295bd8deadSopenharmony_ci
6305bd8deadSopenharmony_ci    INVALID_ENUM is generated if MinmaxEXT parameter <internalformat> is
6315bd8deadSopenharmony_ci    not ALPHA, RGB, RGBA, LUMINANCE, LUMINANCE_ALPHA, or one of the tokens
6325bd8deadSopenharmony_ci    defined by the EXT_texture extension.  (Values 1, 2, 3, and 4 are not
6335bd8deadSopenharmony_ci    accepted as internal formats by MinmaxEXT).
6345bd8deadSopenharmony_ci
6355bd8deadSopenharmony_ci    INVALID_ENUM is generated if ResetMinmaxEXT parameter <target> is not
6365bd8deadSopenharmony_ci    MINMAX_EXT.
6375bd8deadSopenharmony_ci
6385bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetMinmaxEXT parameter <target> is not
6395bd8deadSopenharmony_ci    MINMAX_EXT.
6405bd8deadSopenharmony_ci
6415bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetMinmaxEXT parameter <format> is not
6425bd8deadSopenharmony_ci    RED, GREEN, BLUE, ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or
6435bd8deadSopenharmony_ci    LUMINANCE_ALPHA.
6445bd8deadSopenharmony_ci
6455bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetMinmaxEXT parameter <type> is not
6465bd8deadSopenharmony_ci    UNSIGNED_BYTE, BYTE, UNSIGNED_SHORT, SHORT, UNSIGNED_INT, INT, or FLOAT.
6475bd8deadSopenharmony_ci
6485bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetMinmaxParameterivEXT or
6495bd8deadSopenharmony_ci    GetMinmaxParameterfvEXT parameter <target> is not MINMAX_EXT.
6505bd8deadSopenharmony_ci
6515bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetMinmaxParameterivEXT or
6525bd8deadSopenharmony_ci    GetMinmaxParameterfvEXT parameter <pname> is not MINMAX_FORMAT_EXT or
6535bd8deadSopenharmony_ci    MINMAX_SINK_EXT.
6545bd8deadSopenharmony_ci
6555bd8deadSopenharmony_ci    INVALID_OPERATION is generated if MinmaxEXT, ResetMinmaxEXT,
6565bd8deadSopenharmony_ci    GetMinmaxEXT, GetMinmaxParameterivEXT, or GetMinmaxParameterfvEXT is
6575bd8deadSopenharmony_ci    called between execution of Begin and the corresponding execution of End.
6585bd8deadSopenharmony_ci
6595bd8deadSopenharmony_ciNew State
6605bd8deadSopenharmony_ci
6615bd8deadSopenharmony_ci    Get Value                       Get Command                 Type    Initial Value           Attribute
6625bd8deadSopenharmony_ci    ---------                       -----------                 ----    -------------           ---------
6635bd8deadSopenharmony_ci    HISTOGRAM_EXT                   IsEnabled                   B       False                   pixel/enable
6645bd8deadSopenharmony_ci    HISTOGRAM                       GetHistogramEXT             I       empty                       -
6655bd8deadSopenharmony_ci    HISTOGRAM_WIDTH_EXT             GetHistogramParameterivEXT  Z+      0                           -
6665bd8deadSopenharmony_ci    HISTOGRAM_FORMAT_EXT            GetHistogramParameterivEXT  Z33     RGBA                        -
6675bd8deadSopenharmony_ci    HISTOGRAM_RED_SIZE_EXT          GetHistogramParameterivEXT  Z+      0                           -
6685bd8deadSopenharmony_ci    HISTOGRAM_GREEN_SIZE_EXT        GetHistogramParameterivEXT  Z+      0                           -
6695bd8deadSopenharmony_ci    HISTOGRAM_BLUE_SIZE_EXT         GetHistogramParameterivEXT  Z+      0                           -
6705bd8deadSopenharmony_ci    HISTOGRAM_ALPHA_SIZE_EXT        GetHistogramParameterivEXT  Z+      0                           -
6715bd8deadSopenharmony_ci    HISTOGRAM_LUMINANCE_SIZE_EXT    GetHistogramParameterivEXT  Z+      0                           -
6725bd8deadSopenharmony_ci    HISTOGRAM_SINK_EXT              GetHistogramParameterivEXT  B       False                       -
6735bd8deadSopenharmony_ci
6745bd8deadSopenharmony_ci    MINMAX_EXT                      IsEnabled                   B       False                   pixel/enable
6755bd8deadSopenharmony_ci    MINMAX                          GetMinmaxEXT                Rn      (M,M,M,M),(m,m,m,m)         -
6765bd8deadSopenharmony_ci    MINMAX_FORMAT_EXT               GetMinmaxParameterivEXT     Z33     RGBA                        -
6775bd8deadSopenharmony_ci    MINMAX_SINK_EXT                 GetMinmaxParameterivEXT     B       False                       -
6785bd8deadSopenharmony_ci
6795bd8deadSopenharmony_ci    Note, M and m are the maximum and minimum representable values of the
6805bd8deadSopenharmony_ci    minmax components.
6815bd8deadSopenharmony_ci
6825bd8deadSopenharmony_ciNew Implementation Dependent State
6835bd8deadSopenharmony_ci
6845bd8deadSopenharmony_ci    None
685