15bd8deadSopenharmony_ciName
25bd8deadSopenharmony_ci
35bd8deadSopenharmony_ci    EXT_pixel_transform
45bd8deadSopenharmony_ci
55bd8deadSopenharmony_ciName Strings
65bd8deadSopenharmony_ci
75bd8deadSopenharmony_ci    GL_EXT_pixel_transform
85bd8deadSopenharmony_ci
95bd8deadSopenharmony_ciVersion
105bd8deadSopenharmony_ci
115bd8deadSopenharmony_ci    $Date: 1997/10/17 02:08:51 $ $Revision: 1.2 $
125bd8deadSopenharmony_ci
135bd8deadSopenharmony_ciNumber
145bd8deadSopenharmony_ci
155bd8deadSopenharmony_ci    138
165bd8deadSopenharmony_ci
175bd8deadSopenharmony_ciDependencies
185bd8deadSopenharmony_ci
195bd8deadSopenharmony_ci    None
205bd8deadSopenharmony_ci
215bd8deadSopenharmony_ciOverview
225bd8deadSopenharmony_ci
235bd8deadSopenharmony_ci    This extension provides support for scaling, rotation, translation and
245bd8deadSopenharmony_ci    shearing of two-dimensional pixel rectangles in the pixel rasterizer.
255bd8deadSopenharmony_ci    The transformation is defined via a 4x4 matrix, where only those entries
265bd8deadSopenharmony_ci    which apply as a 2D affine transformation will be accepted and used.
275bd8deadSopenharmony_ci    These matrices can be manipulated using the same functions as the other 
285bd8deadSopenharmony_ci    OpenGL matrix stacks.
295bd8deadSopenharmony_ci   
305bd8deadSopenharmony_ci
315bd8deadSopenharmony_ciNew Procedures and Functions
325bd8deadSopenharmony_ci
335bd8deadSopenharmony_ci    void PixelTransformParameteriEXT(enum target,
345bd8deadSopenharmony_ci                                     enum pname,
355bd8deadSopenharmony_ci                                     const int param)
365bd8deadSopenharmony_ci
375bd8deadSopenharmony_ci    void PixelTransformParameterfEXT(enum target,
385bd8deadSopenharmony_ci                                     enum pname,
395bd8deadSopenharmony_ci                                     const float param)
405bd8deadSopenharmony_ci
415bd8deadSopenharmony_ci    void PixelTransformParameterivEXT(enum target,
425bd8deadSopenharmony_ci                                      enum pname,
435bd8deadSopenharmony_ci                                      const int* params)
445bd8deadSopenharmony_ci
455bd8deadSopenharmony_ci    void PixelTransformParameterfvEXT(enum target,
465bd8deadSopenharmony_ci                                      enum pname,
475bd8deadSopenharmony_ci                                      const float* params)
485bd8deadSopenharmony_ci
495bd8deadSopenharmony_ci    These routines are used to set pixel transformation attributes.
505bd8deadSopenharmony_ci    The only allowable value for <target> at this time is
515bd8deadSopenharmony_ci    PIXEL_TRANSFORM_2D_EXT.  Allowable values for <pname> include:
525bd8deadSopenharmony_ci    PIXEL_MAG_FILTER_EXT, PIXEL_MIN_FILTER_EXT, and PIXEL_CUBIC_WEIGHT_EXT.
535bd8deadSopenharmony_ci
545bd8deadSopenharmony_ci    void GetPixelTransformParameterivEXT(enum target,
555bd8deadSopenharmony_ci                                         enum pname,
565bd8deadSopenharmony_ci                                         const int* params)
575bd8deadSopenharmony_ci
585bd8deadSopenharmony_ci    void GetPixelTransformParameterfvEXT(enum target,
595bd8deadSopenharmony_ci                                         enum pname,
605bd8deadSopenharmony_ci                                         const float* params)
615bd8deadSopenharmony_ci
625bd8deadSopenharmony_ci    These routines are used to query pixel transformation attributes.
635bd8deadSopenharmony_ci    The only allowable value for <target> at this time is
645bd8deadSopenharmony_ci    PIXEL_TRANSFORM_2D_EXT.  Allowable values for <pname> include:
655bd8deadSopenharmony_ci    PIXEL_MAG_FILTER_EXT, PIXEL_MIN_FILTER_EXT, and PIXEL_CUBIC_WEIGHT_EXT.
665bd8deadSopenharmony_ci
675bd8deadSopenharmony_ciNew Tokens
685bd8deadSopenharmony_ci
695bd8deadSopenharmony_ci    Accepted by the <pname> parameter of PixelTransformParameteri,
705bd8deadSopenharmony_ci    PixelTransformParameterf, PixelTransformParameteriv,
715bd8deadSopenharmony_ci    PixelTransformParameterfv, GetPixelTransformParameteriv and
725bd8deadSopenharmony_ci    GetPixelTransformParameterfv:
735bd8deadSopenharmony_ci
745bd8deadSopenharmony_ci        PIXEL_MAG_FILTER_EXT                           0x8331
755bd8deadSopenharmony_ci        PIXEL_MIN_FILTER_EXT                           0x8332
765bd8deadSopenharmony_ci        PIXEL_CUBIC_WEIGHT_EXT                         0x8333
775bd8deadSopenharmony_ci
785bd8deadSopenharmony_ci    Accepted by the <params> parameter of PixelTransformParameteriEXT,
795bd8deadSopenharmony_ci    PixelTransformParameterfEXT, PixelTransformParameterivEXT, and
805bd8deadSopenharmony_ci    PixelTransformParameterfvEXT when <pname> is PIXEL_MAG_FILTER_EXT
815bd8deadSopenharmony_ci    or PIXEL_MIN_FILTER_EXT:
825bd8deadSopenharmony_ci
835bd8deadSopenharmony_ci        CUBIC_EXT                                      0x8334
845bd8deadSopenharmony_ci
855bd8deadSopenharmony_ci    Accepted by the <params> parameter of PixelTransformParameteriEXT,
865bd8deadSopenharmony_ci    PixelTransformParameterfEXT, PixelTransformParameterivEXT, and
875bd8deadSopenharmony_ci    PixelTransformParameterfvEXT when <pname> is PIXEL_MIN_FILTER_EXT:
885bd8deadSopenharmony_ci
895bd8deadSopenharmony_ci        AVERAGE_EXT                                    0x8335
905bd8deadSopenharmony_ci
915bd8deadSopenharmony_ci    Accepted by the <mode> parameter of MatrixMode,
925bd8deadSopenharmony_ci    and by the <target> parameter of PixelTransformParameterivEXT,
935bd8deadSopenharmony_ci    PixelTransformParameterfvEXT, GetPixelTransformParameterivEXT,
945bd8deadSopenharmony_ci    and GetPixelTransformParameterfvEXT:
955bd8deadSopenharmony_ci
965bd8deadSopenharmony_ci        PIXEL_TRANSFORM_2D_EXT                         0x8330
975bd8deadSopenharmony_ci
985bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetIntegerv, GetFloatv, 
995bd8deadSopenharmony_ci    and GetDoublev: 
1005bd8deadSopenharmony_ci
1015bd8deadSopenharmony_ci        PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT             0x8336
1025bd8deadSopenharmony_ci        MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT         0x8337
1035bd8deadSopenharmony_ci
1045bd8deadSopenharmony_ci    Accepted by the <pname> parameter of GetFloatv, and GetDoublev: 
1055bd8deadSopenharmony_ci
1065bd8deadSopenharmony_ci        PIXEL_TRANSFORM_2D_MATRIX_EXT                  0x8338
1075bd8deadSopenharmony_ci
1085bd8deadSopenharmony_ci
1095bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.1 Specification (OpenGL Operation)
1105bd8deadSopenharmony_ci
1115bd8deadSopenharmony_ci    In section 2.10.2 "Matrices":
1125bd8deadSopenharmony_ci
1135bd8deadSopenharmony_ci    The projection matrix, model-view matrix and pixel-transform matrix
1145bd8deadSopenharmony_ci    are set and modified with a variety of commands. The affected matrix is
1155bd8deadSopenharmony_ci    determined by the current matrix mode.  The current matrix mode is set with
1165bd8deadSopenharmony_ci   
1175bd8deadSopenharmony_ci       void MatrixMode (enum mode);
1185bd8deadSopenharmony_ci
1195bd8deadSopenharmony_ci    which takes one of the four pre-defined constants TEXTURE, MODELVIEW, 
1205bd8deadSopenharmony_ci    PROJECTION, or PIXEL_TRANSFORM_2D_EXT as the argument value.  TEXTURE is
1215bd8deadSopenharmony_ci    described later.  If the current matrix mode is MODELVIEW, then matrix 
1225bd8deadSopenharmony_ci    operations apply to the model-view matrix; if PROJECTION, then they apply
1235bd8deadSopenharmony_ci    to the projection matrix; if PIXEL_TRANSFORM_2D_EXT, then they apply to
1245bd8deadSopenharmony_ci    the pixel-transform matrix.
1255bd8deadSopenharmony_ci
1265bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization)
1275bd8deadSopenharmony_ci
1285bd8deadSopenharmony_ci    The specification of two-dimensional pixel transformation operators
1295bd8deadSopenharmony_ci    is defined in the GL specification in the final subsection of
1305bd8deadSopenharmony_ci    Section 3.6.3, "Conversion to Fragments."  The following paragraphs
1315bd8deadSopenharmony_ci    replace the text of the subsection.
1325bd8deadSopenharmony_ci
1335bd8deadSopenharmony_ci    The conversion of a group to fragments is controlled by the pixel
1345bd8deadSopenharmony_ci    transformation matrix.  The pixel transformation matrix is defined
1355bd8deadSopenharmony_ci    by calling MatrixMode with <mode> set to PIXEL_TRANSFORM_2D_EXT, then using 
1365bd8deadSopenharmony_ci    any of the existing functions which operate on matrices and matrix stacks.
1375bd8deadSopenharmony_ci    (i.e. LoadIdentity, LoadMatrix, MultMatrix, PushMatrix, PopMatrix, Rotate, 
1385bd8deadSopenharmony_ci    Scale, and Translate.)  When using the matrix operators, while in 
1395bd8deadSopenharmony_ci    PIXEL_TRANSFORM_2D_EXT matrix mode, those entries in the 4 x 4 matrix 
1405bd8deadSopenharmony_ci    that are not part of a 2D affine transformation are forced to take on 
1415bd8deadSopenharmony_ci    values of either 0 or 1 so that the final matrix represents a 2D affine 
1425bd8deadSopenharmony_ci    transformation matrix.  That is to say, of the matrix entries shown below:
1435bd8deadSopenharmony_ci
1445bd8deadSopenharmony_ci           --               --
1455bd8deadSopenharmony_ci           | m0  m4  m8   m12|
1465bd8deadSopenharmony_ci       P = | m1  m5  m9   m13|
1475bd8deadSopenharmony_ci           | m2  m6  m10  m14|
1485bd8deadSopenharmony_ci           | m3  m7  m11  m15|
1495bd8deadSopenharmony_ci           --               --
1505bd8deadSopenharmony_ci
1515bd8deadSopenharmony_ci    only the matrix entries m0, m1, m4, m5, m12, and m13 are allowed to
1525bd8deadSopenharmony_ci    vary.  The other matrix entries will be forced to be either 0 or 1 as 
1535bd8deadSopenharmony_ci    shown below:
1545bd8deadSopenharmony_ci
1555bd8deadSopenharmony_ci           --               --
1565bd8deadSopenharmony_ci           | m0  m4   0   m12|
1575bd8deadSopenharmony_ci       P = | m1  m5   0   m13|
1585bd8deadSopenharmony_ci           |  0   0   1    0 |
1595bd8deadSopenharmony_ci           |  0   0   0    1 |
1605bd8deadSopenharmony_ci           --               --
1615bd8deadSopenharmony_ci
1625bd8deadSopenharmony_ci    The pixel transformation operation is always enabled.  The pixel 
1635bd8deadSopenharmony_ci    transformation operation uses the current pixel transformation
1645bd8deadSopenharmony_ci    matrix to compute new window coordinates for each incoming pixel.
1655bd8deadSopenharmony_ci    Resampling occurs after the pixel transformation matrix has been
1665bd8deadSopenharmony_ci    applied.
1675bd8deadSopenharmony_ci
1685bd8deadSopenharmony_ci    Window coordinates are computed for each group by multiplying
1695bd8deadSopenharmony_ci    the column/row location in the original pixel rectangle by the pixel
1705bd8deadSopenharmony_ci    transformation matrix.  The components of the current raster position
1715bd8deadSopenharmony_ci    (section 2.12) are then added to the resulting components.  (If the
1725bd8deadSopenharmony_ci    current raster position is invalid, then DrawPixels is
1735bd8deadSopenharmony_ci    ignored.) Let (Xrp, Yrp) be the current raster position and let
1745bd8deadSopenharmony_ci    (Xo, Yo) represent the column and row of the group in the original
1755bd8deadSopenharmony_ci    pixel rectangle.  The depth value (Z) for the group is defined
1765bd8deadSopenharmony_ci    as the depth value at the original location in the pixel rectangle
1775bd8deadSopenharmony_ci    if the format was DEPTH_COMPONENT, and as the depth associated with
1785bd8deadSopenharmony_ci    the current raster position otherwise.  The final transformed pixel
1795bd8deadSopenharmony_ci    coordinate (Xf, Yf, Zf) is computed by:
1805bd8deadSopenharmony_ci
1815bd8deadSopenharmony_ci       --    --       --  --
1825bd8deadSopenharmony_ci       |  Xo  |       | Xt |
1835bd8deadSopenharmony_ci       |  Yo  |  P =  | Yt |
1845bd8deadSopenharmony_ci       |  Z   |       | Zt |
1855bd8deadSopenharmony_ci       |  1   |       | 1  |
1865bd8deadSopenharmony_ci       --    --       --  --
1875bd8deadSopenharmony_ci
1885bd8deadSopenharmony_ci       Xf = Xt + Xrp
1895bd8deadSopenharmony_ci       Yf = Yt + Yrp
1905bd8deadSopenharmony_ci       Zf = Zt
1915bd8deadSopenharmony_ci
1925bd8deadSopenharmony_ci    The function
1935bd8deadSopenharmony_ci
1945bd8deadSopenharmony_ci        void PixelZoom( float zx, float zy ) ;
1955bd8deadSopenharmony_ci
1965bd8deadSopenharmony_ci    will set the current pixel transformation matrix (the current top
1975bd8deadSopenharmony_ci    of the pixel transformation matrix stack) to the scaling matrix:
1985bd8deadSopenharmony_ci
1995bd8deadSopenharmony_ci           --               --
2005bd8deadSopenharmony_ci           | zx   0   0    0 |
2015bd8deadSopenharmony_ci       P = |  0  zy   0    0 |
2025bd8deadSopenharmony_ci           |  0   0   1    0 |
2035bd8deadSopenharmony_ci           |  0   0   0    1 |
2045bd8deadSopenharmony_ci           --               --
2055bd8deadSopenharmony_ci
2065bd8deadSopenharmony_ci    The original pixel value for each input pixel location is left unmodified
2075bd8deadSopenharmony_ci    by the pixel transformation.  Since multiple input pixels can be mapped
2085bd8deadSopenharmony_ci    into a single output pixel (minification of the input pixel rectangle),
2095bd8deadSopenharmony_ci    or since output pixels might not have any input pixels mapped to them
2105bd8deadSopenharmony_ci    (magnification of input pixel rectangle), some method of resampling
2115bd8deadSopenharmony_ci    is required.  Resampling methods are set using the functions
2125bd8deadSopenharmony_ci    PixelTransformParameteriEXT, PixelTransformParameterfEXT,
2135bd8deadSopenharmony_ci    PixelTransformParameterivEXT, or PixelTransformParameterfvEXT with
2145bd8deadSopenharmony_ci    <target> set to PIXEL_TRANSFORM_2D_EXT. 
2155bd8deadSopenharmony_ci
2165bd8deadSopenharmony_ci    The resampling method to be used when the pixel rectangle is
2175bd8deadSopenharmony_ci    magnified is specified by calling one of these functions with
2185bd8deadSopenharmony_ci    <pname> set to PIXEL_MAG_FILTER_EXT and <params> set to NEAREST,
2195bd8deadSopenharmony_ci    LINEAR, or CUBIC_EXT.  The resampling method to be used when the
2205bd8deadSopenharmony_ci    pixel rectangle is minified is specified by calling one of these
2215bd8deadSopenharmony_ci    functions with <pname> set to PIXEL_MIN_FILTER_EXT and <params>
2225bd8deadSopenharmony_ci    set to NEAREST, LINEAR, CUBIC_EXT, or AVERAGE_EXT.
2235bd8deadSopenharmony_ci    PIXEL_CUBIC_WEIGHT_EXT defines the cubic weighting coefficient
2245bd8deadSopenharmony_ci    that is to be used whenever the resampling technique is set to CUBIC_EXT.
2255bd8deadSopenharmony_ci    
2265bd8deadSopenharmony_ci    If the resampling method is NEAREST, each output pixel will have the
2275bd8deadSopenharmony_ci    value of the input pixel whose transformed coordinate value is nearest
2285bd8deadSopenharmony_ci    (in Manhattan distance).  If the resampling method is LINEAR, each
2295bd8deadSopenharmony_ci    output pixel will have a value that is the weighted average of the 
2305bd8deadSopenharmony_ci    four input pixels whose transformed coordinate values are nearest.
2315bd8deadSopenharmony_ci
2325bd8deadSopenharmony_ci    If the resampling method is CUBIC_EXT, each output pixel will have a value
2335bd8deadSopenharmony_ci    that is affected by the 16 input pixels whose transformed coordinate
2345bd8deadSopenharmony_ci    values are nearest.  The 16 input pixels will be used to perform a cubic
2355bd8deadSopenharmony_ci    spline interpolation to determine the value of the output pixel.  The
2365bd8deadSopenharmony_ci    cubic weight factor is a floating point value that is applied to the
2375bd8deadSopenharmony_ci    cubic interpolation in the manner described in "Digital Image Warping"
2385bd8deadSopenharmony_ci    by George Wolberg (IEEE Computer Society Press, ISBN 0-8186-8944-7).
2395bd8deadSopenharmony_ci    Visually pleasing cubic weighting values are typically in the
2405bd8deadSopenharmony_ci    range [-1,0].  The values -1.0 and -0.5 are most commonly used.
2415bd8deadSopenharmony_ci    For the purpose of performing bicubic interpolation along the outer
2425bd8deadSopenharmony_ci    edge of the pixel rectangle, the outermost one pixel edge of the pixel
2435bd8deadSopenharmony_ci    rectangle is duplicated prior to performing the interpolation along the
2445bd8deadSopenharmony_ci    edges.
2455bd8deadSopenharmony_ci
2465bd8deadSopenharmony_ci    If the resampling method is AVERAGE_EXT, the values of all of the input
2475bd8deadSopenharmony_ci    pixels that contribute to the final output pixel will be averaged to
2485bd8deadSopenharmony_ci    determine the final output pixel value.  That is to say, an output pixel
2495bd8deadSopenharmony_ci    is backward mapped into the input pixel rectangle, then the nearest 
2505bd8deadSopenharmony_ci    neighbor resampling method determines the address of the center input 
2515bd8deadSopenharmony_ci    pixel from which input pixels will be averaged.  All pixels in the input 
2525bd8deadSopenharmony_ci    that forward map into the same location in the output pixel rectangle will 
2535bd8deadSopenharmony_ci    be added together and divided by the total number of input pixels which
2545bd8deadSopenharmony_ci    contribute the same output pixel.  An example would be, if the output
2555bd8deadSopenharmony_ci    pixel rectangle is 1/3 the size of the input pixel rectangle, then a
2565bd8deadSopenharmony_ci    total of 9 pixels would be read from the input pixel rectangle, averaged,
2575bd8deadSopenharmony_ci    and then the new single value will be written into the output pixel
2585bd8deadSopenharmony_ci    rectangle.
2595bd8deadSopenharmony_ci
2605bd8deadSopenharmony_ci    Pixel transformation is defined for pixel rectangles that contain INDEX, 
2615bd8deadSopenharmony_ci    LUMINANCE, LUMINANCE_ALPHA, RGB, RGBA, or ABGR_EXT components or depth 
2625bd8deadSopenharmony_ci    components in pixel rastorization.  Groups arising from DrawPixels with
2635bd8deadSopenharmony_ci    a format of STENCIL_INDEX are treated specially and are described in
2645bd8deadSopenharmony_ci    section 4.3.1.
2655bd8deadSopenharmony_ci
2665bd8deadSopenharmony_ci    A fragment arising from a group consisting of color data takes on the
2675bd8deadSopenharmony_ci    color index or color components of the group; the depth and texture
2685bd8deadSopenharmony_ci    coordinates are taken from the current raster position's associated
2695bd8deadSopenharmony_ci    data.  A fragment arising from a depth component takes the component's
2705bd8deadSopenharmony_ci    depth value; the color and texture coordinates are given by those 
2715bd8deadSopenharmony_ci    associated with the current raster position.  In both cases texture
2725bd8deadSopenharmony_ci    coordinates s, t, and r are replaced with s/q, t/q, and r/q,
2735bd8deadSopenharmony_ci    respectively.
2745bd8deadSopenharmony_ci
2755bd8deadSopenharmony_ci
2765bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations
2775bd8deadSopenharmony_ciand the Frame Buffer)
2785bd8deadSopenharmony_ci
2795bd8deadSopenharmony_ci    The pixel transformation operation occurs in pixel rasterization 
2805bd8deadSopenharmony_ci    immediately after the operations in the pixel transfer pipeline.
2815bd8deadSopenharmony_ci    The operation of pixel transformation during pixel copy
2825bd8deadSopenharmony_ci    operations is identical to the operation during pixel drawing.
2835bd8deadSopenharmony_ci    The pixel transformation is not applied during pixel query
2845bd8deadSopenharmony_ci    operations.
2855bd8deadSopenharmony_ci
2865bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions)
2875bd8deadSopenharmony_ci
2885bd8deadSopenharmony_ci    GetPixelTransformParameterivEXT, and GetPixelTransformParameterfvEXT
2895bd8deadSopenharmony_ci    are not included in display lists, but are instead executed immediately.
2905bd8deadSopenharmony_ci
2915bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests)
2925bd8deadSopenharmony_ci
2935bd8deadSopenharmony_ci    Integer and floating point query functions GetPixelTransformParameterivEXT
2945bd8deadSopenharmony_ci    and GetPixelTransformParameterfvEXT are provided.  <target> must be
2955bd8deadSopenharmony_ci    PIXEL_TRANSFORM_2D_EXT.  <pname> is one of PIXEL_MAG_FILTER_EXT, 
2965bd8deadSopenharmony_ci    PIXEL_MIN_FILTER_EXT, or PIXEL_CUBIC_WEIGHT_EXT.  The value of the 
2975bd8deadSopenharmony_ci    specified parameter is returned in <params>.
2985bd8deadSopenharmony_ci
2995bd8deadSopenharmony_ciAdditions to the GLX Specification
3005bd8deadSopenharmony_ci    
3015bd8deadSopenharmony_ci    None
3025bd8deadSopenharmony_ci
3035bd8deadSopenharmony_ciGLX Protocol
3045bd8deadSopenharmony_ci
3055bd8deadSopenharmony_ci    Four new GL commands are added.
3065bd8deadSopenharmony_ci
3075bd8deadSopenharmony_ci    The following two rendering commands are sent to the server as part of
3085bd8deadSopenharmony_ci    a glXRender request:
3095bd8deadSopenharmony_ci
3105bd8deadSopenharmony_ci        PixelTransformParameterfEXT
3115bd8deadSopenharmony_ci            2       16              rendering command length
3125bd8deadSopenharmony_ci            2       16385           rendering command opcode
3135bd8deadSopenharmony_ci            4       ENUM            target
3145bd8deadSopenharmony_ci            4       ENUM            pname
3155bd8deadSopenharmony_ci            4       FLOAT32         param
3165bd8deadSopenharmony_ci
3175bd8deadSopenharmony_ci        PixelTransformParameteriEXT
3185bd8deadSopenharmony_ci            2       16              rendering command length
3195bd8deadSopenharmony_ci            2       16386           rendering command opcode
3205bd8deadSopenharmony_ci            4       ENUM            target
3215bd8deadSopenharmony_ci            4       ENUM            pname
3225bd8deadSopenharmony_ci            4       INT32           param
3235bd8deadSopenharmony_ci
3245bd8deadSopenharmony_ci    The remaining two commands are non-rendering commands. These commands
3255bd8deadSopenharmony_ci    are sent seperately (i.e., not as part of a glXRender or
3265bd8deadSopenharmony_ci    glXRenderLarge request), using the glXVendorPrivateWithReply
3275bd8deadSopenharmony_ci    request:
3285bd8deadSopenharmony_ci
3295bd8deadSopenharmony_ci        GetPixelTransformParameterfvEXT
3305bd8deadSopenharmony_ci            1       CARD8           opcode (X assigned)
3315bd8deadSopenharmony_ci            1       17              GLX opcode (glXVendorPrivateWithReply)
3325bd8deadSopenharmony_ci            2       5               request length
3335bd8deadSopenharmony_ci            4       2051            vendor specific opcode
3345bd8deadSopenharmony_ci            4       GLX_CONTEXT_TAG context tabg
3355bd8deadSopenharmony_ci            4       ENUM            target
3365bd8deadSopenharmony_ci            4       ENUM            pname
3375bd8deadSopenharmony_ci         ==>
3385bd8deadSopenharmony_ci            1       1               reply
3395bd8deadSopenharmony_ci            1                       unused
3405bd8deadSopenharmony_ci            2       CARD16          sequence number
3415bd8deadSopenharmony_ci            4       m               reply length, m = (n==1 ? 0: n)
3425bd8deadSopenharmony_ci            4                       unused
3435bd8deadSopenharmony_ci            4       CARD16          n (0 or 1)
3445bd8deadSopenharmony_ci
3455bd8deadSopenharmony_ci            if (n=1) this follows:
3465bd8deadSopenharmony_ci
3475bd8deadSopenharmony_ci            4       FLOAT32         params
3485bd8deadSopenharmony_ci            12                      unused
3495bd8deadSopenharmony_ci
3505bd8deadSopenharmony_ci    Note that n may be zero, indicating that a GL error occurred.
3515bd8deadSopenharmony_ci
3525bd8deadSopenharmony_ci
3535bd8deadSopenharmony_ci        GetPixelTransformParameterivEXT
3545bd8deadSopenharmony_ci            1       CARD8           opcode (X assigned)
3555bd8deadSopenharmony_ci            1       17              GLX opcode (glXVendorPrivateWithReply)
3565bd8deadSopenharmony_ci            2       5               request length
3575bd8deadSopenharmony_ci            4       2052            vendor specific opcode
3585bd8deadSopenharmony_ci            4       GLX_CONTEXT_TAG context tabg
3595bd8deadSopenharmony_ci            4       ENUM            target
3605bd8deadSopenharmony_ci            4       ENUM            pname
3615bd8deadSopenharmony_ci         ==>
3625bd8deadSopenharmony_ci            1       1               reply
3635bd8deadSopenharmony_ci            1                       unused
3645bd8deadSopenharmony_ci            2       CARD16          sequence number
3655bd8deadSopenharmony_ci            4       m               reply length, m = (n==1 ? 0: n)
3665bd8deadSopenharmony_ci            4                       unused
3675bd8deadSopenharmony_ci            4       CARD16          n (0 or 1)
3685bd8deadSopenharmony_ci
3695bd8deadSopenharmony_ci            if (n=1) this follows:
3705bd8deadSopenharmony_ci
3715bd8deadSopenharmony_ci            4       INT32           params
3725bd8deadSopenharmony_ci            12                      unused
3735bd8deadSopenharmony_ci
3745bd8deadSopenharmony_ci    Note that n may be zero, indicating that a GL error occurred.
3755bd8deadSopenharmony_ci
3765bd8deadSopenharmony_ci
3775bd8deadSopenharmony_ci
3785bd8deadSopenharmony_ciErrors
3795bd8deadSopenharmony_ci
3805bd8deadSopenharmony_ci    INVALID_ENUM is generated if PixelTransformParameteriEXT,
3815bd8deadSopenharmony_ci    PixelTransformParameterfEXT, PixelTransformParameterivEXT,
3825bd8deadSopenharmony_ci    PixelTransformParameterfvEXT, GetPixelTransformParameterivEXT,
3835bd8deadSopenharmony_ci    or GetPixelTransformParameterfvEXT is called with <target> set to
3845bd8deadSopenharmony_ci    a value other than PIXEL_TRANSFORM_2D_EXT.
3855bd8deadSopenharmony_ci
3865bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetPixelTransformParameterivEXT or
3875bd8deadSopenharmony_ci    GetPixelTransformParameterfvEXT is called with <pname> set to
3885bd8deadSopenharmony_ci    PIXEL_MAG_FILTER_EXT and <params> is not one of NEAREST, LINEAR,
3895bd8deadSopenharmony_ci    or CUBIC_EXT.
3905bd8deadSopenharmony_ci
3915bd8deadSopenharmony_ci    INVALID_ENUM is generated if GetPixelTransformParameterivEXT or
3925bd8deadSopenharmony_ci    GetPixelTransformParameterfvEXT is called with <pname> set to
3935bd8deadSopenharmony_ci    PIXEL_MIN_FILTER_EXT and <params> is not one of NEAREST, LINEAR,
3945bd8deadSopenharmony_ci    CUBIC_EXT, or AVERAGE_EXT.
3955bd8deadSopenharmony_ci
3965bd8deadSopenharmony_ci    INVALID_VALUE is generated if PixelTransformParameteriEXT,
3975bd8deadSopenharmony_ci    PixelTransformParameterfEXT, PixelTransformParameterivEXT, or
3985bd8deadSopenharmony_ci    PixelTransformParameterfvEXT is called with <pname> set to
3995bd8deadSopenharmony_ci    PIXEL_CUBIC_WEIGHT_EXT and <params> is a value outside of
4005bd8deadSopenharmony_ci    the range [-1, 0].
4015bd8deadSopenharmony_ci
4025bd8deadSopenharmony_ci    INVALID_OPERATION is generated if PixelTransformParameteriEXT,
4035bd8deadSopenharmony_ci    PixelTransformParameterfEXT, PixelTransformParameterivEXT,
4045bd8deadSopenharmony_ci    PixelTransformParameterfvEXT, GetPixelTransformParameterivEXT,
4055bd8deadSopenharmony_ci    or GetPixelTransformParameterfvEXT is called between execution of
4065bd8deadSopenharmony_ci    Begin and the corresponding execution of End.
4075bd8deadSopenharmony_ci
4085bd8deadSopenharmony_ciNew State
4095bd8deadSopenharmony_ci                                                                                        Initial
4105bd8deadSopenharmony_ci    Get Value                                   Get Command                     Type    Value     Attrib
4115bd8deadSopenharmony_ci    ---------                                   -----------                     ----    -------   ------
4125bd8deadSopenharmony_ci    PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT          GetIntegerv                      I          1       -
4135bd8deadSopenharmony_ci    PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT          GetFloatv                        R          1       -
4145bd8deadSopenharmony_ci    PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT          GetDoublev                       D          1       -
4155bd8deadSopenharmony_ci    MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT      GetIntegerv                      I         32       -
4165bd8deadSopenharmony_ci    MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT      GetFloatv                        R         32       -
4175bd8deadSopenharmony_ci    MAX_PIXEL_TRANSFORM_2D_STACK_DEPTH_EXT      GetDoublev                       D         32       -
4185bd8deadSopenharmony_ci    PIXEL_TRANSFORM_2D_MATRIX_EXT               GetFloatv                      16 x R   Identity    -
4195bd8deadSopenharmony_ci    PIXEL_TRANSFORM_2D_MATRIX_EXT               GetDoublev                     16 x D   Identity    -
4205bd8deadSopenharmony_ci    PIXEL_MAG_FILTER_EXT                        GetPixelTransformParameteri      Z3     NEAREST   pixel
4215bd8deadSopenharmony_ci    PIXEL_MIN_FILTER_EXT                        GetPixelTransformParameteri      Z4     NEAREST   pixel
4225bd8deadSopenharmony_ci    PIXEL_CUBIC_WEIGHT_EXT                      GetPixelTransformParameterf      R         -1     pixel
4235bd8deadSopenharmony_ci
4245bd8deadSopenharmony_ci
4255bd8deadSopenharmony_ciNew Implementation Dependent State
4265bd8deadSopenharmony_ci
4275bd8deadSopenharmony_ci    None
4285bd8deadSopenharmony_ci
429