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