15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci EXT_convolution 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_EXT_convolution 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciVersion 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci Date: June 27, 2002 Version: 1.32 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNumber 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci 12 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciDependencies 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci EXT_abgr affects the definition of this extension 205bd8deadSopenharmony_ci EXT_texture is required 215bd8deadSopenharmony_ci EXT_copy_texture affects the definition of this extension 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ciOverview 245bd8deadSopenharmony_ci 255bd8deadSopenharmony_ci This extension defines 1 and 2 dimensional convolution operations 265bd8deadSopenharmony_ci at a fixed location in the pixel transfer process. Thus pixel drawing, 275bd8deadSopenharmony_ci reading, and copying, as well as texture image definition, are all 285bd8deadSopenharmony_ci candidates for convolution. The convolution kernels are themselves 295bd8deadSopenharmony_ci treated as 1 and 2 dimensional images, which can be loaded from 305bd8deadSopenharmony_ci application memory or from the framebuffer. 315bd8deadSopenharmony_ci 325bd8deadSopenharmony_ci This extension is designed to accommodate 3D convolution, but the 335bd8deadSopenharmony_ci API is left for a future extension. 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciNew Procedures and Functions 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci void ConvolutionFilter1DEXT(enum target, 385bd8deadSopenharmony_ci enum internalformat, 395bd8deadSopenharmony_ci sizei width, 405bd8deadSopenharmony_ci enum format, 415bd8deadSopenharmony_ci enum type, 425bd8deadSopenharmony_ci const void* image); 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ci void ConvolutionFilter2DEXT(enum target, 455bd8deadSopenharmony_ci enum internalformat, 465bd8deadSopenharmony_ci sizei width, 475bd8deadSopenharmony_ci sizei height, 485bd8deadSopenharmony_ci enum format, 495bd8deadSopenharmony_ci enum type, 505bd8deadSopenharmony_ci const void* image); 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci void CopyConvolutionFilter1DEXT(enum target, 535bd8deadSopenharmony_ci enum internalformat, 545bd8deadSopenharmony_ci int x, 555bd8deadSopenharmony_ci int y, 565bd8deadSopenharmony_ci sizei width); 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ci void CopyConvolutionFilter2DEXT(enum target, 595bd8deadSopenharmony_ci enum internalformat, 605bd8deadSopenharmony_ci int x, 615bd8deadSopenharmony_ci int y, 625bd8deadSopenharmony_ci sizei width, 635bd8deadSopenharmony_ci sizei height); 645bd8deadSopenharmony_ci 655bd8deadSopenharmony_ci void GetConvolutionFilterEXT(enum target, 665bd8deadSopenharmony_ci enum format, 675bd8deadSopenharmony_ci enum type, 685bd8deadSopenharmony_ci void* image); 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ci void SeparableFilter2DEXT(enum target, 715bd8deadSopenharmony_ci enum internalformat, 725bd8deadSopenharmony_ci sizei width, 735bd8deadSopenharmony_ci sizei height, 745bd8deadSopenharmony_ci enum format, 755bd8deadSopenharmony_ci enum type, 765bd8deadSopenharmony_ci const void* row, 775bd8deadSopenharmony_ci const void* column); 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci void GetSeparableFilterEXT(enum target, 805bd8deadSopenharmony_ci enum format, 815bd8deadSopenharmony_ci enum type, 825bd8deadSopenharmony_ci void* row, 835bd8deadSopenharmony_ci void* column, 845bd8deadSopenharmony_ci void* span); 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ci void ConvolutionParameteriEXT(enum target, 875bd8deadSopenharmony_ci enum pname, 885bd8deadSopenharmony_ci int param); 895bd8deadSopenharmony_ci 905bd8deadSopenharmony_ci void ConvolutionParameterivEXT(enum target, 915bd8deadSopenharmony_ci enum pname, 925bd8deadSopenharmony_ci const int* params); 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci void ConvolutionParameterfEXT(enum target, 955bd8deadSopenharmony_ci enum pname, 965bd8deadSopenharmony_ci float param); 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ci void ConvolutionParameterfvEXT(enum target, 995bd8deadSopenharmony_ci enum pname, 1005bd8deadSopenharmony_ci const float* params); 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ci void GetConvolutionParameterivEXT(enum target, 1035bd8deadSopenharmony_ci enum pname, 1045bd8deadSopenharmony_ci int* params); 1055bd8deadSopenharmony_ci 1065bd8deadSopenharmony_ci void GetConvolutionParameterfvEXT(enum target, 1075bd8deadSopenharmony_ci enum pname, 1085bd8deadSopenharmony_ci float* params); 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ciNew Tokens 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ci Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, by 1135bd8deadSopenharmony_ci the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and 1145bd8deadSopenharmony_ci GetDoublev, and by the <target> parameter of ConvolutionFilter1DEXT, 1155bd8deadSopenharmony_ci CopyConvolutionFilter1DEXT, GetConvolutionFilterEXT, 1165bd8deadSopenharmony_ci ConvolutionParameteriEXT, ConvolutionParameterfEXT, 1175bd8deadSopenharmony_ci ConvolutionParameterivEXT, ConvolutionParameterfvEXT, 1185bd8deadSopenharmony_ci GetConvolutionParameterivEXT, and GetConvolutionParameterfvEXT: 1195bd8deadSopenharmony_ci 1205bd8deadSopenharmony_ci CONVOLUTION_1D_EXT 0x8010 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, by 1235bd8deadSopenharmony_ci the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and 1245bd8deadSopenharmony_ci GetDoublev, and by the <target> parameter of ConvolutionFilter2DEXT, 1255bd8deadSopenharmony_ci CopyConvolutionFilter2DEXT, GetConvolutionFilterEXT, 1265bd8deadSopenharmony_ci ConvolutionParameteriEXT, ConvolutionParameterfEXT, 1275bd8deadSopenharmony_ci ConvolutionParameterivEXT, ConvolutionParameterfvEXT, 1285bd8deadSopenharmony_ci GetConvolutionParameterivEXT, and GetConvolutionParameterfvEXT: 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ci CONVOLUTION_2D_EXT 0x8011 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ci Accepted by the <cap> parameter of Enable, Disable, and IsEnabled, by 1335bd8deadSopenharmony_ci the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, and 1345bd8deadSopenharmony_ci GetDoublev, and by the <target> parameter of SeparableFilter2DEXT, 1355bd8deadSopenharmony_ci SeparableFilter2DEXT, GetSeparableFilterEXT, 1365bd8deadSopenharmony_ci ConvolutionParameteriEXT, ConvolutionParameterfEXT, 1375bd8deadSopenharmony_ci ConvolutionParameterivEXT, ConvolutionParameterfvEXT, 1385bd8deadSopenharmony_ci GetConvolutionParameterivEXT, and GetConvolutionParameterfvEXT: 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ci SEPARABLE_2D_EXT 0x8012 1415bd8deadSopenharmony_ci 1425bd8deadSopenharmony_ci Accepted by the <pname> parameter of ConvolutionParameteriEXT, 1435bd8deadSopenharmony_ci ConvolutionParameterfEXT, ConvolutionParameterivEXT, 1445bd8deadSopenharmony_ci ConvolutionParameterfvEXT, GetConvolutionParameterivEXT, and 1455bd8deadSopenharmony_ci GetConvolutionParameterfvEXT: 1465bd8deadSopenharmony_ci 1475bd8deadSopenharmony_ci CONVOLUTION_BORDER_MODE_EXT 0x8013 1485bd8deadSopenharmony_ci 1495bd8deadSopenharmony_ci Accepted by the <pname> parameter of ConvolutionParameterivEXT, 1505bd8deadSopenharmony_ci ConvolutionParameterfvEXT, GetConvolutionParameterivEXT, and 1515bd8deadSopenharmony_ci GetConvolutionParameterfvEXT: 1525bd8deadSopenharmony_ci 1535bd8deadSopenharmony_ci CONVOLUTION_FILTER_SCALE_EXT 0x8014 1545bd8deadSopenharmony_ci CONVOLUTION_FILTER_BIAS_EXT 0x8015 1555bd8deadSopenharmony_ci 1565bd8deadSopenharmony_ci Accepted by the <param> parameter of ConvolutionParameteriEXT, 1575bd8deadSopenharmony_ci and ConvolutionParameterfEXT, and by the <params> parameter of 1585bd8deadSopenharmony_ci ConvolutionParameterivEXT and ConvolutionParameterfvEXT, when the 1595bd8deadSopenharmony_ci <pname> parameter is CONVOLUTION_BORDER_MODE_EXT: 1605bd8deadSopenharmony_ci 1615bd8deadSopenharmony_ci REDUCE_EXT 0x8016 1625bd8deadSopenharmony_ci 1635bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetConvolutionParameterivEXT and 1645bd8deadSopenharmony_ci GetConvolutionParameterfvEXT: 1655bd8deadSopenharmony_ci 1665bd8deadSopenharmony_ci CONVOLUTION_FORMAT_EXT 0x8017 1675bd8deadSopenharmony_ci CONVOLUTION_WIDTH_EXT 0x8018 1685bd8deadSopenharmony_ci CONVOLUTION_HEIGHT_EXT 0x8019 1695bd8deadSopenharmony_ci MAX_CONVOLUTION_WIDTH_EXT 0x801A 1705bd8deadSopenharmony_ci MAX_CONVOLUTION_HEIGHT_EXT 0x801B 1715bd8deadSopenharmony_ci 1725bd8deadSopenharmony_ci Accepted by the <pname> parameter of PixelTransferi, PixelTransferf, 1735bd8deadSopenharmony_ci and by the <pname> parameter of GetBooleanv, GetIntegerv, GetFloatv, 1745bd8deadSopenharmony_ci and GetDoublev: 1755bd8deadSopenharmony_ci 1765bd8deadSopenharmony_ci POST_CONVOLUTION_RED_SCALE_EXT 0x801C 1775bd8deadSopenharmony_ci POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D 1785bd8deadSopenharmony_ci POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E 1795bd8deadSopenharmony_ci POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F 1805bd8deadSopenharmony_ci POST_CONVOLUTION_RED_BIAS_EXT 0x8020 1815bd8deadSopenharmony_ci POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 1825bd8deadSopenharmony_ci POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 1835bd8deadSopenharmony_ci POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 1845bd8deadSopenharmony_ci 1855bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 1865bd8deadSopenharmony_ci 1875bd8deadSopenharmony_ci None 1885bd8deadSopenharmony_ci 1895bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization) 1905bd8deadSopenharmony_ci 1915bd8deadSopenharmony_ci The specification of convolution operators is added to the GL 1925bd8deadSopenharmony_ci Specification in section 3.6.2, "Pixel Transfer Modes." A 2-dimensional 1935bd8deadSopenharmony_ci convolution filter image is specified using the ConvolutionFilter2DEXT 1945bd8deadSopenharmony_ci command. Its <target> parameter must be CONVOLUTION_2D_EXT. Its 1955bd8deadSopenharmony_ci <internalformat> parameter specifies the format of image that will be 1965bd8deadSopenharmony_ci retained; it must be one of ALPHA, LUMINANCE, LUMINANCE_ALPHA, 1975bd8deadSopenharmony_ci INTENSITY_EXT, RGB, or RGBA. Its <width>, <height>, <format>, <type>, 1985bd8deadSopenharmony_ci and <image> parameters specify an image in memory with exactly the same 1995bd8deadSopenharmony_ci semantics of the corresponding parameters to DrawPixels. 2005bd8deadSopenharmony_ci 2015bd8deadSopenharmony_ci The specified image is extracted from memory and processed just as if 2025bd8deadSopenharmony_ci DrawPixels were called, stopping after the Final Expansion to RGBA step 2035bd8deadSopenharmony_ci is completed. The R, G, B, and A components of each pixel are then scaled 2045bd8deadSopenharmony_ci by the four 2D CONVOLUTION_FILTER_SCALE_EXT parameters, then biased by the 2055bd8deadSopenharmony_ci four 2D CONVOLUTION_FILTER_BIAS_EXT parameters. These parameters are 2065bd8deadSopenharmony_ci themselves specified by calling ConvolutionParameterivEXT or 2075bd8deadSopenharmony_ci ConvolutionParameterfvEXT with <target> CONVOLUTION_2D_EXT, <pname> 2085bd8deadSopenharmony_ci CONVOLUTION_FILTER_SCALE_EXT or CONVOLUTION_FILTER_BIAS_EXT, and <params> 2095bd8deadSopenharmony_ci pointing to a vector of four values: red, green, blue, and alpha, in that 2105bd8deadSopenharmony_ci order. The R, G, B, and A values are not clamped to [0,1] at any time 2115bd8deadSopenharmony_ci during this process. 2125bd8deadSopenharmony_ci 2135bd8deadSopenharmony_ci Each pixel is then converted to have the specified internal format. 2145bd8deadSopenharmony_ci This conversion simply maps the component values of the pixel (R, G, B, 2155bd8deadSopenharmony_ci and A) to the values included in the internal format (red, green, blue, 2165bd8deadSopenharmony_ci alpha, luminance, and intensity). The mapping is as follows: 2175bd8deadSopenharmony_ci 2185bd8deadSopenharmony_ci Internal Format red green blue alpha luminance intensity 2195bd8deadSopenharmony_ci --------------- --- ----- ---- ----- --------- --------- 2205bd8deadSopenharmony_ci 2215bd8deadSopenharmony_ci ALPHA A 2225bd8deadSopenharmony_ci LUMINANCE R 2235bd8deadSopenharmony_ci LUMINANCE_ALPHA A R 2245bd8deadSopenharmony_ci INTENSITY_EXT R 2255bd8deadSopenharmony_ci RGB R G B 2265bd8deadSopenharmony_ci RGBA R G B A 2275bd8deadSopenharmony_ci 2285bd8deadSopenharmony_ci 2295bd8deadSopenharmony_ci Pixel Organization 2305bd8deadSopenharmony_ci 2315bd8deadSopenharmony_ci The red, green, blue, alpha, luminance, and/or intensity components of 2325bd8deadSopenharmony_ci the pixels are stored in floating point, rather than integer format. 2335bd8deadSopenharmony_ci They form a 2-dimensional image indexed with coordinates i,j such that i 2345bd8deadSopenharmony_ci increases from left to right, starting at zero, and j increases from 2355bd8deadSopenharmony_ci bottom to top, also starting at zero. Image location i,j is specified 2365bd8deadSopenharmony_ci by the Nth pixel, counting from zero, where N is i+j*width. 2375bd8deadSopenharmony_ci 2385bd8deadSopenharmony_ci The error INVALID_VALUE is generated if <width> or <height> is greater 2395bd8deadSopenharmony_ci than the maximum supported value. This value is queried with 2405bd8deadSopenharmony_ci GetConvolutionParameterivEXT, setting <target> to CONVOLUTION_2D_EXT and 2415bd8deadSopenharmony_ci <pname> to MAX_CONVOLUTION_WIDTH_EXT or MAX_CONVOLUTION_HEIGHT_EXT, 2425bd8deadSopenharmony_ci respectively. 2435bd8deadSopenharmony_ci 2445bd8deadSopenharmony_ci A 1-dimensional convolution filter is defined using ConvolutionFilter1DEXT. 2455bd8deadSopenharmony_ci Its <target> parameter must be CONVOLUTION_1D_EXT. Its <internalformat>, 2465bd8deadSopenharmony_ci <format>, and <type> parameters have identical semantics and accept the 2475bd8deadSopenharmony_ci same values as do their 2D counterparts. <image> must point to a 2485bd8deadSopenharmony_ci 1-dimensional image, however. 2495bd8deadSopenharmony_ci 2505bd8deadSopenharmony_ci The 1-dimensional image is taken from memory and processed as if 2515bd8deadSopenharmony_ci ConvolutionFilter2DEXT were called with a height of 1, except that it is 2525bd8deadSopenharmony_ci scaled and biased by the two 1D vectors, rather than the 2D vectors. 2535bd8deadSopenharmony_ci (The 1D scale and bias vectors are specified using 2545bd8deadSopenharmony_ci ConvolutionParameterivEXT with <target> CONVOLUTION_1D_EXT and <pname> 2555bd8deadSopenharmony_ci CONVOLUTION_FILTER_SCALE_EXT or CONVOLUTION_FILTER_BIAS_EXT.) The 2565bd8deadSopenharmony_ci 1-dimensional image is formed with coordinates i such that i increases 2575bd8deadSopenharmony_ci from left to right, starting at zero. Image location i is specified by 2585bd8deadSopenharmony_ci the ith pixel, counting from zero. 2595bd8deadSopenharmony_ci 2605bd8deadSopenharmony_ci The error INVALID_VALUE is generated if <width> is greater than the 2615bd8deadSopenharmony_ci maximum supported value, which is queried using 2625bd8deadSopenharmony_ci GetConvolutionParameterivEXT, setting <target> to CONVOLUTION_1D_EXT 2635bd8deadSopenharmony_ci and <pname> to MAX_CONVOLUTION_WIDTH_EXT. 2645bd8deadSopenharmony_ci 2655bd8deadSopenharmony_ci If EXT_copy_texture is supported, one and 2-dimensional filters can also 2665bd8deadSopenharmony_ci be defined using image data in the framebuffer. Rather than accepting 2675bd8deadSopenharmony_ci image data from memory, they copy image data from the color buffer 2685bd8deadSopenharmony_ci specified by the current ReadBuffer mode. CopyConvolutionFilter2DEXT 2695bd8deadSopenharmony_ci accepts image data from a <width> pixel wide by <height> pixel high 2705bd8deadSopenharmony_ci color buffer region whose lower-left pixel has window coordinates <x>,<y>. 2715bd8deadSopenharmony_ci If any pixels within this region are outside the window that is 2725bd8deadSopenharmony_ci associated with the GL context, the values obtained for those pixels 2735bd8deadSopenharmony_ci are undefined. 2745bd8deadSopenharmony_ci 2755bd8deadSopenharmony_ci These pixel values are obtained from the framebuffer exactly as if 2765bd8deadSopenharmony_ci ReadPixels had been called with <format> set to RGBA, with processing 2775bd8deadSopenharmony_ci continuing through Conversion of RGBA values. At this point all pixel 2785bd8deadSopenharmony_ci component values are treated exactly as if ConvolutionFilter2DEXT had 2795bd8deadSopenharmony_ci been called, beginning with the scaling of the color components by 2805bd8deadSopenharmony_ci CONVOLUTION_FILTER_SCALE_SGI. Pixel ordering is such that lower X 2815bd8deadSopenharmony_ci screen coordinates correspond to lower i filter image coordinates, and 2825bd8deadSopenharmony_ci lower Y screen coordinates correspond to lower j filter image 2835bd8deadSopenharmony_ci coordinates. The semantics and accepted values of the <target> and 2845bd8deadSopenharmony_ci <internalformat> parameters are exactly equivalent to their 2855bd8deadSopenharmony_ci ConvolutionFilter2DEXT counterparts. 2865bd8deadSopenharmony_ci 2875bd8deadSopenharmony_ci CopyConvolutionFilter1DEXT accepts image data from a <width> pixel wide 2885bd8deadSopenharmony_ci by 1 pixel high color buffer region whose left-most pixel has window 2895bd8deadSopenharmony_ci coordinates <x>,<y>. If any pixels within this region are outside the 2905bd8deadSopenharmony_ci window that is associated with the GL context, the values obtained for 2915bd8deadSopenharmony_ci those pixels are undefined. 2925bd8deadSopenharmony_ci 2935bd8deadSopenharmony_ci The pixels are processed just as those of CopyConvolutionFilter2DEXT are, 2945bd8deadSopenharmony_ci and they define a filter image such that lower X window coordinates 2955bd8deadSopenharmony_ci correspond to lower i filter image coordinates. The semantics and 2965bd8deadSopenharmony_ci accepted values of the <target> and <internalformat> parameters are 2975bd8deadSopenharmony_ci exactly equivalent to their ConvolutionFilter1DEXT counterparts. 2985bd8deadSopenharmony_ci 2995bd8deadSopenharmony_ci Special facilities are provided for the definition of 2-dimensional 3005bd8deadSopenharmony_ci separable filters -- filters whose image can be represented as the 3015bd8deadSopenharmony_ci product of two 1-dimensional images, rather than as full 3025bd8deadSopenharmony_ci 2-dimensional images. A 2-dimensional convolution filter is specified 3035bd8deadSopenharmony_ci using SeparableFilter2DEXT. Its <target> parameter must be 3045bd8deadSopenharmony_ci SEPARABLE_2D_EXT. Its <internalformat> parameter specifies the formats 3055bd8deadSopenharmony_ci of two 1-dimensional images that will be retained; it must be one of 3065bd8deadSopenharmony_ci ALPHA, LUMINANCE, LUMINANCE_ALPHA, INTENSITY_EXT, RGB, or RGBA. <row> 3075bd8deadSopenharmony_ci and <column> point to two 1-dimensional images in memory. The <row> 3085bd8deadSopenharmony_ci image is <width> pixels wide, and is defined by <format> and <type>. 3095bd8deadSopenharmony_ci The <column> image is <height> pixels wide, and is also defined by 3105bd8deadSopenharmony_ci <format> and <type>. 3115bd8deadSopenharmony_ci 3125bd8deadSopenharmony_ci The two images are extracted from memory and processed just as if 3135bd8deadSopenharmony_ci ConvolutionFilter1DEXT were called separately for each, with the resulting 3145bd8deadSopenharmony_ci retained images replacing the current 2D separable filter images, except 3155bd8deadSopenharmony_ci that each image is scaled and biased using the 2D separable scale and bias 3165bd8deadSopenharmony_ci vectors. (These vectors are specified using ConvolutionParameterivEXT with 3175bd8deadSopenharmony_ci <target> SEPARABLE_2D_EXT and <pname> CONVOLUTION_FILTER_SCALE_EXT or 3185bd8deadSopenharmony_ci CONVOLUTION_FILTER_BIAS_EXT.) 3195bd8deadSopenharmony_ci 3205bd8deadSopenharmony_ci The operations of the convolution filters are added to the GL 3215bd8deadSopenharmony_ci Specification in section 3.6.3, "Rasterization of Pixel Rectangles, 3225bd8deadSopenharmony_ci immediately following the subsection "Index Lookup", and immediately 3235bd8deadSopenharmony_ci prior to the operations described by EXT_histogram. Filters are 3245bd8deadSopenharmony_ci enabled and disabled by calling Enable and Disable with filter name 3255bd8deadSopenharmony_ci passed as the <cap> parameter. Convolution is performed only for RGBA 3265bd8deadSopenharmony_ci groups, though these groups may have been specified as color indexes 3275bd8deadSopenharmony_ci and converted to RGBA by index table lookup. 3285bd8deadSopenharmony_ci 3295bd8deadSopenharmony_ci If CONVOLUTION_1D_EXT is enabled, the 1-dimensional convolution filter 3305bd8deadSopenharmony_ci is applied only to the image passed to TexImage1D, and to 1-dimensional 3315bd8deadSopenharmony_ci textures queried by GetTexImage. If CONVOLUTION_2D_EXT is enabled, the 3325bd8deadSopenharmony_ci 2-dimensional convolution filter is applied only to the 2D images passed 3335bd8deadSopenharmony_ci to DrawPixels, CopyPixels, ReadPixels, TexImage2D, TexSubImage2DEXT, 3345bd8deadSopenharmony_ci CopyTexImage2DEXT, CopyTexSubImage2DEXT, and GetTexImage, and to 3355bd8deadSopenharmony_ci 2-dimensional images queried by GetTexImage. If SEPARABLE_2D_EXT is 3365bd8deadSopenharmony_ci enabled, and CONVOLUTION_2D_EXT is disabled, the separable 2-dimensional 3375bd8deadSopenharmony_ci convolution filter is applied only to these same images. 3385bd8deadSopenharmony_ci 3395bd8deadSopenharmony_ci The convolution operation is a sum of products of source image pixels 3405bd8deadSopenharmony_ci and convolution filter pixels. Source image pixels always have four 3415bd8deadSopenharmony_ci components: red, green, blue, and alpha, denoted in the equations below 3425bd8deadSopenharmony_ci as Rs, Gs, Bs, and As. Filter pixels may be stored in one of five 3435bd8deadSopenharmony_ci formats, with 1, 2, 3, or 4 components. These components are denoted 3445bd8deadSopenharmony_ci as Rf, Gf, Bf, Af, Lf, and If in the equations below. The result of the 3455bd8deadSopenharmony_ci convolution operation is the 4-tuple R,G,B,A. Depending on the internal 3465bd8deadSopenharmony_ci format of the filter, individual color components of each source image 3475bd8deadSopenharmony_ci pixel are convolved with one filter component, or are passed unmodified. 3485bd8deadSopenharmony_ci The rules for this are: 3495bd8deadSopenharmony_ci 3505bd8deadSopenharmony_ci Filter format 3515bd8deadSopenharmony_ci ------------- 3525bd8deadSopenharmony_ci ALPHA R = Rs G = Gs B = Bs A = convolve(As,Af) 3535bd8deadSopenharmony_ci LUMINANCE R = convolve(Rs,Lf) G = convolve(Gs,Lf) B = convolve(Bs,Lf) A = As 3545bd8deadSopenharmony_ci LUMINANCE_ALPHA R = convolve(Rs,Lf) G = convolve(Gs,Lf) B = convolve(Bs,Lf) A = convolve(As,Af) 3555bd8deadSopenharmony_ci INTENSITY R = convolve(Rs,If) G = convolve(Gs,If) B = convolve(Bs,If) A = convolve(As,If) 3565bd8deadSopenharmony_ci RGB R = convolve(Rs,Rf) G = convolve(Gs,Gf) B = convolve(Bs,Bf) A = As 3575bd8deadSopenharmony_ci RGBA R = convolve(Rs,Rf) G = convolve(Gs,Gf) B = convolve(Bs,Bf) A = convolve(As,Af) 3585bd8deadSopenharmony_ci 3595bd8deadSopenharmony_ci The convolution operation is defined differently for each of the three 3605bd8deadSopenharmony_ci convolution filters. In the following equations the 3615bd8deadSopenharmony_ci 3625bd8deadSopenharmony_ci SUM{}{}equation 3635bd8deadSopenharmony_ci 3645bd8deadSopenharmony_ci notation indicate the sum of the equation evaluated for all combinations 3655bd8deadSopenharmony_ci of conditions indicated within the sets of curly brackets. The 3665bd8deadSopenharmony_ci variables Wf and Hf refer to the dimensions of the convolution filter. 3675bd8deadSopenharmony_ci The variables Ws and Hs refer to the dimensions of the source pixel 3685bd8deadSopenharmony_ci image. The pixel indexing nomenclature is decribed in the Pixel 3695bd8deadSopenharmony_ci Organization section, above. 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ci The convolution equations are: 3725bd8deadSopenharmony_ci 3735bd8deadSopenharmony_ci 1-dimensional filter: 3745bd8deadSopenharmony_ci 3755bd8deadSopenharmony_ci C[i] = SUM{n = 0 through Wf-1} 3765bd8deadSopenharmony_ci 3775bd8deadSopenharmony_ci Cs[i+n] * Cf[n] 3785bd8deadSopenharmony_ci 3795bd8deadSopenharmony_ci 2-dimensional filter: 3805bd8deadSopenharmony_ci 3815bd8deadSopenharmony_ci C[i,j] = SUM{n = 0 through Wf-1} 3825bd8deadSopenharmony_ci {m = 0 through Hf-1} 3835bd8deadSopenharmony_ci 3845bd8deadSopenharmony_ci Cs[i+n,j+m] * Cf[n,m] 3855bd8deadSopenharmony_ci 3865bd8deadSopenharmony_ci 2-dimensional separable filter: 3875bd8deadSopenharmony_ci 3885bd8deadSopenharmony_ci C[i,j] = SUM{n = 0 through Wf-1} 3895bd8deadSopenharmony_ci {m = 0 through Hf-1} 3905bd8deadSopenharmony_ci 3915bd8deadSopenharmony_ci Cs[i+n,j+m] * Crow[n] * Ccolumn[m] 3925bd8deadSopenharmony_ci 3935bd8deadSopenharmony_ci If Wf of a 1-dimensional filter is zero, then C[i] is always set to 3945bd8deadSopenharmony_ci zero. Likewise, if either Wf or Hf of a 2-dimensional filter is zero, 3955bd8deadSopenharmony_ci then C[i,j] is always set to zero. 3965bd8deadSopenharmony_ci 3975bd8deadSopenharmony_ci The convolution border mode for a specific convolution filter is 3985bd8deadSopenharmony_ci specified using ConvolutionParameteriEXT with the <target> parameter 3995bd8deadSopenharmony_ci set to the name of the filter, the <pname> parameter set to 4005bd8deadSopenharmony_ci CONVOLUTION_BORDER_MODE_EXT, and <param> set to REDUCE_EXT. (This 4015bd8deadSopenharmony_ci extension defines only a single border mode.) The width and height of 4025bd8deadSopenharmony_ci source images convolved with border mode REDUCE_EXT are reduced by 4035bd8deadSopenharmony_ci Wf-1 and Hf-1, respectively. If this reduction would generate a 4045bd8deadSopenharmony_ci resulting image with zero or negative width and/or height, the output 4055bd8deadSopenharmony_ci is simply null, with no error generated. The coordinates of the image 4065bd8deadSopenharmony_ci that results from a convolution with border mode REDUCE_EXT are zero 4075bd8deadSopenharmony_ci through Ws-Wf in width, and zero through Hs-Hf in height. In 4085bd8deadSopenharmony_ci cases where errors can result from the specification of invalid image 4095bd8deadSopenharmony_ci dimensions, it is these resulting dimensions that are tested, not the 4105bd8deadSopenharmony_ci dimensions of the source image. (A specific example is TexImage1D and 4115bd8deadSopenharmony_ci TexImage2D, which specify constraints for image dimensions. Even if 4125bd8deadSopenharmony_ci TexImage1D or TexImage2D is called with a null pixel pointer, the 4135bd8deadSopenharmony_ci dimensions of the resulting texture image are those that would result 4145bd8deadSopenharmony_ci from the convolution of the specified image.) 4155bd8deadSopenharmony_ci 4165bd8deadSopenharmony_ci If a convolution operation is performed, the resulting image is scaled 4175bd8deadSopenharmony_ci and biased by parameters specified using the PixelTransfer command. 4185bd8deadSopenharmony_ci These operations are: 4195bd8deadSopenharmony_ci 4205bd8deadSopenharmony_ci red = red * POST_CONVOLUTION_RED_SCALE_EXT 4215bd8deadSopenharmony_ci + POST_CONVOLUTION_RED_BIAS_EXT 4225bd8deadSopenharmony_ci 4235bd8deadSopenharmony_ci green = green * POST_CONVOLUTION_GREEN_SCALE_EXT 4245bd8deadSopenharmony_ci + POST_CONVOLUTION_GREEN_BIAS_EXT 4255bd8deadSopenharmony_ci 4265bd8deadSopenharmony_ci blue = blue * POST_CONVOLUTION_BLUE_SCALE_EXT 4275bd8deadSopenharmony_ci + POST_CONVOLUTION_BLUE_BIAS_EXT 4285bd8deadSopenharmony_ci 4295bd8deadSopenharmony_ci alpha = alpha * POST_CONVOLUTION_ALPHA_SCALE_EXT 4305bd8deadSopenharmony_ci + POST_CONVOLUTION_ALPHA_BIAS_EXT 4315bd8deadSopenharmony_ci 4325bd8deadSopenharmony_ci If no convolution operation is performed, the scale and bias are not 4335bd8deadSopenharmony_ci performed either. 4345bd8deadSopenharmony_ci 4355bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 4365bd8deadSopenharmony_ciand the Framebuffer) 4375bd8deadSopenharmony_ci 4385bd8deadSopenharmony_ci The operation of convolution during pixel copy and query operations is 4395bd8deadSopenharmony_ci identical to the operation during pixel drawing and texture image 4405bd8deadSopenharmony_ci definition. 4415bd8deadSopenharmony_ci 4425bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions) 4435bd8deadSopenharmony_ci 4445bd8deadSopenharmony_ci Commands GetConvolutionFilterEXT, GetSeparableFilterEXT, 4455bd8deadSopenharmony_ci GetConvolutionParameterivEXT, and GetConvolutionParameterfvEXT are not 4465bd8deadSopenharmony_ci included in display lists. They are always executed immediately. 4475bd8deadSopenharmony_ci 4485bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests) 4495bd8deadSopenharmony_ci 4505bd8deadSopenharmony_ci Integer and floating point query functions GetConvolutionParameterivEXT 4515bd8deadSopenharmony_ci and GetConvolutionParameterfvEXT are provided. <target> must be 4525bd8deadSopenharmony_ci CONVOLUTION_1D_EXT, CONVOLUTION_2D_EXT, or SEPARABLE_2D_EXT. <pname> 4535bd8deadSopenharmony_ci is one of CONVOLUTION_FORMAT_EXT, CONVOLUTION_WIDTH_EXT, 4545bd8deadSopenharmony_ci CONVOLUTION_HEIGHT_EXT, MAX_CONVOLUTION_WIDTH_EXT, or 4555bd8deadSopenharmony_ci MAX_CONVOLUTION_HEIGHT_EXT. The value of the specified parameter is 4565bd8deadSopenharmony_ci returned in <params>. 4575bd8deadSopenharmony_ci 4585bd8deadSopenharmony_ci The current contents of a convolution filter image are queried using 4595bd8deadSopenharmony_ci GetConvolutionFilterEXT. <target> must be CONVOLUTION_1D_EXT or 4605bd8deadSopenharmony_ci CONVOLUTION_2D_EXT. <format> must be one of RED, GREEN, BLUE, ALPHA, RGB, 4615bd8deadSopenharmony_ci RGBA, ABGR_EXT, LUMINANCE, or LUMINANCE_ALPHA. <type> must be 4625bd8deadSopenharmony_ci UNSIGNED_BYTE, BYTE, UNSIGNED_SHORT, SHORT, UNSIGNED_INT, INT, or FLOAT. 4635bd8deadSopenharmony_ci The 1-dimensional or 2-dimensional image is returned to <image>. No pixel 4645bd8deadSopenharmony_ci transfer operations are performed on this image, but pixel storage modes 4655bd8deadSopenharmony_ci that are applicable to ReadPixels are performed. Color components are 4665bd8deadSopenharmony_ci converted from the internal floating point representation to <type> 4675bd8deadSopenharmony_ci according to table 2.4. Prior to the conversion, if <type> is one of 4685bd8deadSopenharmony_ci UNSIGNED_BYTE, UNSIGNED_SHORT, or UNSIGNED_INT, the color components are 4695bd8deadSopenharmony_ci clamped to 0..1, if <type> is one of BYTE, SHORT, or INT, the components are 4705bd8deadSopenharmony_ci clamped to -1..1. No clamping is performed if <type> is FLOAT. Color 4715bd8deadSopenharmony_ci components that are requested in the specified <format>, but which are not 4725bd8deadSopenharmony_ci included in the internal format of the filter image, are returned as zero. 4735bd8deadSopenharmony_ci The assignments of internal color components to the components requested by 4745bd8deadSopenharmony_ci <format> are 4755bd8deadSopenharmony_ci 4765bd8deadSopenharmony_ci internal component resulting component 4775bd8deadSopenharmony_ci ------------------ ------------------- 4785bd8deadSopenharmony_ci red red 4795bd8deadSopenharmony_ci green green 4805bd8deadSopenharmony_ci blue blue 4815bd8deadSopenharmony_ci alpha alpha 4825bd8deadSopenharmony_ci luminance red 4835bd8deadSopenharmony_ci intensity red 4845bd8deadSopenharmony_ci 4855bd8deadSopenharmony_ci The current contents of a separable filter image are queried using 4865bd8deadSopenharmony_ci GetSeparableFilterEXT. <target> must be SEPARABLE_2D_EXT. <format> 4875bd8deadSopenharmony_ci and <type> accept the same values as do the corresponding parameters 4885bd8deadSopenharmony_ci of GetConvolutionFilterEXT. The row and column images are returned to 4895bd8deadSopenharmony_ci <row> and <column> respectively. No change is made to any location 4905bd8deadSopenharmony_ci related to <span>. Pixel processing and component mapping are 4915bd8deadSopenharmony_ci identical to those of GetConvolutionFilterEXT. 4925bd8deadSopenharmony_ci 4935bd8deadSopenharmony_ciAdditions to the GLX Specification 4945bd8deadSopenharmony_ci 4955bd8deadSopenharmony_ci None 4965bd8deadSopenharmony_ci 4975bd8deadSopenharmony_ciGLX Protocol 4985bd8deadSopenharmony_ci 4995bd8deadSopenharmony_ci Thirteen new GL commands are added. 5005bd8deadSopenharmony_ci 5015bd8deadSopenharmony_ci The following six rendering commands are sent to the server as part of 5025bd8deadSopenharmony_ci a glXRender request: 5035bd8deadSopenharmony_ci 5045bd8deadSopenharmony_ci CopyConvolutionFilter1DEXT 5055bd8deadSopenharmony_ci 2 24 rendering command length 5065bd8deadSopenharmony_ci 2 4107 rendering command opcode 5075bd8deadSopenharmony_ci 4 ENUM target 5085bd8deadSopenharmony_ci 4 ENUM internalformat 5095bd8deadSopenharmony_ci 4 INT32 x 5105bd8deadSopenharmony_ci 4 INT32 y 5115bd8deadSopenharmony_ci 4 INT32 width 5125bd8deadSopenharmony_ci 5135bd8deadSopenharmony_ci CopyConvolutionFilter2DEXT 5145bd8deadSopenharmony_ci 2 28 rendering command length 5155bd8deadSopenharmony_ci 2 4108 rendering command opcode 5165bd8deadSopenharmony_ci 4 ENUM target 5175bd8deadSopenharmony_ci 4 ENUM internalformat 5185bd8deadSopenharmony_ci 4 INT32 x 5195bd8deadSopenharmony_ci 4 INT32 y 5205bd8deadSopenharmony_ci 4 INT32 width 5215bd8deadSopenharmony_ci 4 INT32 height 5225bd8deadSopenharmony_ci 5235bd8deadSopenharmony_ci ConvolutionParameteriEXT 5245bd8deadSopenharmony_ci 2 16 rendering command length 5255bd8deadSopenharmony_ci 2 4105 rendering command opcode 5265bd8deadSopenharmony_ci 4 ENUM target 5275bd8deadSopenharmony_ci 4 ENUM pname 5285bd8deadSopenharmony_ci 0x8013 CONVOLUTION_BORDER_MODE_EXT 5295bd8deadSopenharmony_ci 4 INT32 param 5305bd8deadSopenharmony_ci 5315bd8deadSopenharmony_ci ConvolutionParameterivEXT 5325bd8deadSopenharmony_ci 2 12+4*n rendering command length 5335bd8deadSopenharmony_ci 2 4106 rendering command opcode 5345bd8deadSopenharmony_ci 4 ENUM target 5355bd8deadSopenharmony_ci 4 ENUM pname 5365bd8deadSopenharmony_ci 0x8013 n=1 CONVOLUTION_BORDER_MODE_EXT 5375bd8deadSopenharmony_ci 0x8014 n=4 CONVOLUTION_FILTER_SCALE_EXT 5385bd8deadSopenharmony_ci 0x8015 n=4 CONVOLUTION_FILTER_BIAS_EXT 5395bd8deadSopenharmony_ci 0x8017 n=1 CONVOLUTION_FORMAT_EXT 5405bd8deadSopenharmony_ci 0x8018 n=1 CONVOLUTION_WIDTH_EXT 5415bd8deadSopenharmony_ci 0x8019 n=1 CONVOLUTION_HEIGHT_EXT 5425bd8deadSopenharmony_ci 0x801A n=1 MAX_CONVOLUTION_WIDTH_EXT 5435bd8deadSopenharmony_ci 0x801B n=1 MAX_CONVOLUTION_HEIGHT_EXT 5445bd8deadSopenharmony_ci 4*n LISTofINT32 params 5455bd8deadSopenharmony_ci 5465bd8deadSopenharmony_ci ConvolutionParameterfEXT 5475bd8deadSopenharmony_ci 2 16 rendering command length 5485bd8deadSopenharmony_ci 2 4103 rendering command opcode 5495bd8deadSopenharmony_ci 4 ENUM target 5505bd8deadSopenharmony_ci 4 ENUM pname 5515bd8deadSopenharmony_ci 0x8013 CONVOLUTION_BORDER_MODE_EXT 5525bd8deadSopenharmony_ci 4 FLOAT32 param 5535bd8deadSopenharmony_ci 5545bd8deadSopenharmony_ci ConvolutionParameterfvEXT 5555bd8deadSopenharmony_ci 2 12+4*n rendering command length 5565bd8deadSopenharmony_ci 2 4104 rendering command opcode 5575bd8deadSopenharmony_ci 4 ENUM target 5585bd8deadSopenharmony_ci 4 ENUM pname 5595bd8deadSopenharmony_ci 0x8013 n=1 CONVOLUTION_BORDER_MODE_EXT 5605bd8deadSopenharmony_ci 0x8014 n=4 CONVOLUTION_FILTER_SCALE_EXT 5615bd8deadSopenharmony_ci 0x8015 n=4 CONVOLUTION_FILTER_BIAS_EXT 5625bd8deadSopenharmony_ci 0x8017 n=1 CONVOLUTION_FORMAT_EXT 5635bd8deadSopenharmony_ci 0x8018 n=1 CONVOLUTION_WIDTH_EXT 5645bd8deadSopenharmony_ci 0x8019 n=1 CONVOLUTION_HEIGHT_EXT 5655bd8deadSopenharmony_ci 0x801A n=1 MAX_CONVOLUTION_WIDTH_EXT 5665bd8deadSopenharmony_ci 0x801B n=1 MAX_CONVOLUTION_HEIGHT_EXT 5675bd8deadSopenharmony_ci 4*n LISTofFLOAT32 params 5685bd8deadSopenharmony_ci 5695bd8deadSopenharmony_ci The following three rendering commands contain pixel data and are thus 5705bd8deadSopenharmony_ci sent to the server as part of a glXRender request or as part of a 5715bd8deadSopenharmony_ci glXRenderLarge request: 5725bd8deadSopenharmony_ci 5735bd8deadSopenharmony_ci ConvolutionFilter1DEXT 5745bd8deadSopenharmony_ci 2 48+n+p rendering command length 5755bd8deadSopenharmony_ci 2 4101 rendering command opcode 5765bd8deadSopenharmony_ci 1 BOOL swap_bytes 5775bd8deadSopenharmony_ci 1 BOOL lsb_first 5785bd8deadSopenharmony_ci 2 unused 5795bd8deadSopenharmony_ci 4 CARD32 row_length 5805bd8deadSopenharmony_ci 4 CARD32 skip_rows 5815bd8deadSopenharmony_ci 4 CARD32 skip_pixels 5825bd8deadSopenharmony_ci 4 CARD32 alignment 5835bd8deadSopenharmony_ci 4 ENUM target 5845bd8deadSopenharmony_ci 4 ENUM internalformat 5855bd8deadSopenharmony_ci 4 INT32 width 5865bd8deadSopenharmony_ci 4 INT32 height 5875bd8deadSopenharmony_ci 4 ENUM format 5885bd8deadSopenharmony_ci 4 ENUM type 5895bd8deadSopenharmony_ci n LISTofBYTE pixels 5905bd8deadSopenharmony_ci p unused, p=pad(n) 5915bd8deadSopenharmony_ci 5925bd8deadSopenharmony_ci If the command is encoded in a glXRenderLarge request, the 5935bd8deadSopenharmony_ci command opcode and command length fields above are expanded to 5945bd8deadSopenharmony_ci 4 bytes each: 5955bd8deadSopenharmony_ci 4 52+n+p rendering command length 5965bd8deadSopenharmony_ci 4 4101 rendering command opcode 5975bd8deadSopenharmony_ci 5985bd8deadSopenharmony_ci If <width> < 0, <format> is invalid or <type> is invalid, then the 5995bd8deadSopenharmony_ci command is erroneous and n=0. The structure of <pixels> is described 6005bd8deadSopenharmony_ci in Appendix A of the GLX Protocol Specification, "Pixel Data", using 6015bd8deadSopenharmony_ci the parameters <swap_bytes>, <lsb_first>, <row_length>, <skip_rows>, 6025bd8deadSopenharmony_ci <skip_pixels>, <alignment>, <width>, <format>, and <type> as given 6035bd8deadSopenharmony_ci in the request, and a height of 1. 6045bd8deadSopenharmony_ci 6055bd8deadSopenharmony_ci ConvolutionFilter2DEXT 6065bd8deadSopenharmony_ci 2 48+n+p rendering command length 6075bd8deadSopenharmony_ci 2 4102 rendering command opcode 6085bd8deadSopenharmony_ci 1 BOOL swap_bytes 6095bd8deadSopenharmony_ci 1 BOOL lsb_first 6105bd8deadSopenharmony_ci 2 unused 6115bd8deadSopenharmony_ci 4 CARD32 row_length 6125bd8deadSopenharmony_ci 4 CARD32 skip_rows 6135bd8deadSopenharmony_ci 4 CARD32 skip_pixels 6145bd8deadSopenharmony_ci 4 CARD32 alignment 6155bd8deadSopenharmony_ci 4 ENUM target 6165bd8deadSopenharmony_ci 4 ENUM internalformat 6175bd8deadSopenharmony_ci 4 INT32 width 6185bd8deadSopenharmony_ci 4 INT32 height 6195bd8deadSopenharmony_ci 4 ENUM format 6205bd8deadSopenharmony_ci 4 ENUM type 6215bd8deadSopenharmony_ci n LISTofBYTE pixels 6225bd8deadSopenharmony_ci p unused, p=pad(n) 6235bd8deadSopenharmony_ci 6245bd8deadSopenharmony_ci If the command is encoded in a glXRenderLarge request, the 6255bd8deadSopenharmony_ci command opcode and command length fields above are expanded to 6265bd8deadSopenharmony_ci 4 bytes each: 6275bd8deadSopenharmony_ci 4 52+n+p rendering command length 6285bd8deadSopenharmony_ci 4 4102 rendering command opcode 6295bd8deadSopenharmony_ci 6305bd8deadSopenharmony_ci If <width> < 0, <height> < 0, <format> is invalid or <type> is 6315bd8deadSopenharmony_ci invalid, then the command is erroneous and n=0. The structure of 6325bd8deadSopenharmony_ci <pixels> is described in Appendix A of the GLX Protocol 6335bd8deadSopenharmony_ci Specification, "Pixel Data", using the parameters <swap_bytes>, 6345bd8deadSopenharmony_ci <lsb_first>, <row_length>, <skip_rows>, <skip_pixels>, <alignment>, 6355bd8deadSopenharmony_ci <width>, <height>, <format>, and <type> as given in the request. 6365bd8deadSopenharmony_ci 6375bd8deadSopenharmony_ci SeparableFilter2DEXT 6385bd8deadSopenharmony_ci 2 48+n1+p1+n2+p2 rendering command length 6395bd8deadSopenharmony_ci 2 4109 rendering command opcode 6405bd8deadSopenharmony_ci 1 BOOL swap_bytes 6415bd8deadSopenharmony_ci 1 BOOL lsb_first 6425bd8deadSopenharmony_ci 2 unused 6435bd8deadSopenharmony_ci 4 CARD32 row_length 6445bd8deadSopenharmony_ci 4 CARD32 skip_rows 6455bd8deadSopenharmony_ci 4 CARD32 skip_pixels 6465bd8deadSopenharmony_ci 4 CARD32 alignment 6475bd8deadSopenharmony_ci 4 ENUM target 6485bd8deadSopenharmony_ci 4 ENUM internalformat 6495bd8deadSopenharmony_ci 4 INT32 width 6505bd8deadSopenharmony_ci 4 INT32 height 6515bd8deadSopenharmony_ci 4 ENUM format 6525bd8deadSopenharmony_ci 4 ENUM type 6535bd8deadSopenharmony_ci n1 LISTofBYTE row 6545bd8deadSopenharmony_ci p1 unused, p=pad(n) 6555bd8deadSopenharmony_ci n2 LISTofBYTE column 6565bd8deadSopenharmony_ci p2 unused, p=pad(n) 6575bd8deadSopenharmony_ci 6585bd8deadSopenharmony_ci If the command is encoded in a glXRenderLarge request, the 6595bd8deadSopenharmony_ci command opcode and command length fields above are expanded 6605bd8deadSopenharmony_ci to 4 bytes each: 6615bd8deadSopenharmony_ci 4 52+n+p rendering command length 6625bd8deadSopenharmony_ci 4 4109 rendering command opcode 6635bd8deadSopenharmony_ci 6645bd8deadSopenharmony_ci If <width> < 0, <height> < 0, <format> is invalid or <type> is 6655bd8deadSopenharmony_ci invalid, then the command is erroneous and n=0. The structure of 6665bd8deadSopenharmony_ci <row> is described in Appendix A of the GLX Protocol Specification, 6675bd8deadSopenharmony_ci "Pixel Data", using the parameters <swap_bytes>, <lsb_first>, 6685bd8deadSopenharmony_ci <row_length>, <skip_rows>, <skip_pixels>, <alignment>, <width>, 6695bd8deadSopenharmony_ci <format>, and <type> as given in the request, and and a height of 1. 6705bd8deadSopenharmony_ci The structure of <column> is the same (it is also a one-dimensional 6715bd8deadSopenharmony_ci image) except that it is <height> pixels wide, instead of <width> 6725bd8deadSopenharmony_ci pixels wide. 6735bd8deadSopenharmony_ci 6745bd8deadSopenharmony_ci The remaining commands are non-rendering commands. These commands are 6755bd8deadSopenharmony_ci sent separately (i.e., not as part of a glXRender or glXRenderLarge 6765bd8deadSopenharmony_ci request), using the glXVendorPrivateWithReply request: 6775bd8deadSopenharmony_ci 6785bd8deadSopenharmony_ci GetConvolutionParameterivEXT 6795bd8deadSopenharmony_ci 1 CARD8 opcode (X assigned) 6805bd8deadSopenharmony_ci 1 17 GLX opcode (glXVendorPrivateWithReply) 6815bd8deadSopenharmony_ci 2 5 request length 6825bd8deadSopenharmony_ci 4 3 vendor specific opcode 6835bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 6845bd8deadSopenharmony_ci 4 ENUM target 6855bd8deadSopenharmony_ci 4 ENUM pname 6865bd8deadSopenharmony_ci => 6875bd8deadSopenharmony_ci 1 1 reply 6885bd8deadSopenharmony_ci 1 unused 6895bd8deadSopenharmony_ci 2 CARD16 sequence number 6905bd8deadSopenharmony_ci 4 m reply length, m = (n==1 ? 0 : n) 6915bd8deadSopenharmony_ci 4 unused 6925bd8deadSopenharmony_ci 4 CARD32 n 6935bd8deadSopenharmony_ci 6945bd8deadSopenharmony_ci if (n=1) this follows: 6955bd8deadSopenharmony_ci 6965bd8deadSopenharmony_ci 4 INT32 params 6975bd8deadSopenharmony_ci 12 unused 6985bd8deadSopenharmony_ci 6995bd8deadSopenharmony_ci otherwise this follows: 7005bd8deadSopenharmony_ci 7015bd8deadSopenharmony_ci 16 unused 7025bd8deadSopenharmony_ci n*4 LISTofINT32 params 7035bd8deadSopenharmony_ci 7045bd8deadSopenharmony_ci Note that n may be zero, indicating that a GL error occurred. 7055bd8deadSopenharmony_ci 7065bd8deadSopenharmony_ci 7075bd8deadSopenharmony_ci GetConvolutionParameterfvEXT 7085bd8deadSopenharmony_ci 1 CARD8 opcode (X assigned) 7095bd8deadSopenharmony_ci 1 17 GLX opcode (glXVendorPrivateWithReply) 7105bd8deadSopenharmony_ci 2 5 request length 7115bd8deadSopenharmony_ci 4 2 vendor specific opcode 7125bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 7135bd8deadSopenharmony_ci 4 ENUM target 7145bd8deadSopenharmony_ci 4 ENUM pname 7155bd8deadSopenharmony_ci => 7165bd8deadSopenharmony_ci 1 1 reply 7175bd8deadSopenharmony_ci 1 unused 7185bd8deadSopenharmony_ci 2 CARD16 sequence number 7195bd8deadSopenharmony_ci 4 m reply length, m = (n==1 ? 0 : n) 7205bd8deadSopenharmony_ci 4 unused 7215bd8deadSopenharmony_ci 4 CARD32 n 7225bd8deadSopenharmony_ci 7235bd8deadSopenharmony_ci if (n=1) this follows: 7245bd8deadSopenharmony_ci 7255bd8deadSopenharmony_ci 4 FLOAT32 params 7265bd8deadSopenharmony_ci 12 unused 7275bd8deadSopenharmony_ci 7285bd8deadSopenharmony_ci otherwise this follows: 7295bd8deadSopenharmony_ci 7305bd8deadSopenharmony_ci 16 unused 7315bd8deadSopenharmony_ci n*4 LISTofFLOAT32 params 7325bd8deadSopenharmony_ci 7335bd8deadSopenharmony_ci Note that n may be zero, indicating that a GL error occurred. 7345bd8deadSopenharmony_ci 7355bd8deadSopenharmony_ci 7365bd8deadSopenharmony_ci GetConvolutionFilterEXT 7375bd8deadSopenharmony_ci 1 CARD8 opcode (X assigned) 7385bd8deadSopenharmony_ci 1 17 GLX opcode (glXVendorPrivateWithReply) 7395bd8deadSopenharmony_ci 2 7 request length 7405bd8deadSopenharmony_ci 4 1 vendor specific opcode 7415bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 7425bd8deadSopenharmony_ci 4 ENUM target 7435bd8deadSopenharmony_ci 4 ENUM format 7445bd8deadSopenharmony_ci 4 ENUM type 7455bd8deadSopenharmony_ci 1 BOOL swap_bytes 7465bd8deadSopenharmony_ci 3 unused 7475bd8deadSopenharmony_ci => 7485bd8deadSopenharmony_ci 1 1 reply 7495bd8deadSopenharmony_ci 1 unused 7505bd8deadSopenharmony_ci 2 CARD16 sequence number 7515bd8deadSopenharmony_ci 4 n reply length 7525bd8deadSopenharmony_ci 8 unused 7535bd8deadSopenharmony_ci 4 INT32 width 7545bd8deadSopenharmony_ci 4 INT32 height 7555bd8deadSopenharmony_ci 8 unused 7565bd8deadSopenharmony_ci 4*n LISTofBYTE pixels 7575bd8deadSopenharmony_ci 7585bd8deadSopenharmony_ci Note that n may be zero, indicating that a GL error occurred. 7595bd8deadSopenharmony_ci 7605bd8deadSopenharmony_ci If <format> or <type> is invalid then the command is erroneous and 7615bd8deadSopenharmony_ci n=0. The structure of <pixels> is described in Appendix A of the GLX 7625bd8deadSopenharmony_ci Protocol Specification, "Pixel Data", using the parameters 7635bd8deadSopenharmony_ci <swap_bytes>, <format>, and <type>. No extra padding is needed after 7645bd8deadSopenharmony_ci <pixels> because the image format already pads to 32 bits. 7655bd8deadSopenharmony_ci 7665bd8deadSopenharmony_ci 7675bd8deadSopenharmony_ci GetSeparableFilterEXT 7685bd8deadSopenharmony_ci 1 CARD8 opcode (X assigned) 7695bd8deadSopenharmony_ci 1 17 GLX opcode (glXVendorPrivateWithReply) 7705bd8deadSopenharmony_ci 2 7 request length 7715bd8deadSopenharmony_ci 4 4 vendor specific opcode 7725bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 7735bd8deadSopenharmony_ci 4 ENUM target 7745bd8deadSopenharmony_ci 4 ENUM format 7755bd8deadSopenharmony_ci 4 ENUM type 7765bd8deadSopenharmony_ci 1 BOOL swap_bytes 7775bd8deadSopenharmony_ci 3 unused 7785bd8deadSopenharmony_ci => 7795bd8deadSopenharmony_ci 1 1 reply 7805bd8deadSopenharmony_ci 1 unused 7815bd8deadSopenharmony_ci 2 CARD16 sequence number 7825bd8deadSopenharmony_ci 4 n reply length 7835bd8deadSopenharmony_ci 8 unused 7845bd8deadSopenharmony_ci 4 INT32 width 7855bd8deadSopenharmony_ci 4 INT32 height 7865bd8deadSopenharmony_ci 8 unused 7875bd8deadSopenharmony_ci 4*n LISTofBYTE row followed by column 7885bd8deadSopenharmony_ci 7895bd8deadSopenharmony_ci Note that n may be zero, indicating that a GL error occurred. 7905bd8deadSopenharmony_ci 7915bd8deadSopenharmony_ci If <format> or <type> is invalid then the command is erroneous and 7925bd8deadSopenharmony_ci n=0. The structure of <pixels> is described in Appendix A of the GLX 7935bd8deadSopenharmony_ci Protocol Specification, "Pixel Data", using the parameters 7945bd8deadSopenharmony_ci <swap_bytes>, <format>, and <type>. No extra padding is needed after 7955bd8deadSopenharmony_ci <pixels> because the image format already pads to 32 bits. 7965bd8deadSopenharmony_ci 7975bd8deadSopenharmony_ciDependencies on EXT_abgr 7985bd8deadSopenharmony_ci 7995bd8deadSopenharmony_ci If EXT_abgr is supported, the <format> parameters of 8005bd8deadSopenharmony_ci ConvolutionFilter1DEXT, ConvolutionFilter2DEXT, GetConvolutionFilterEXT, 8015bd8deadSopenharmony_ci SeparableFilter2DEXT, and GetSeparableFilterEXT accept ABGR_EXT. 8025bd8deadSopenharmony_ci Otherwise they do not. 8035bd8deadSopenharmony_ci 8045bd8deadSopenharmony_ciDependencies on EXT_texture 8055bd8deadSopenharmony_ci 8065bd8deadSopenharmony_ci EXT_texture is required. This extension builds on the notion of 8075bd8deadSopenharmony_ci internal image format, which is defined by EXT_texture. 8085bd8deadSopenharmony_ci 8095bd8deadSopenharmony_ciDependencies on EXT_copy_texture 8105bd8deadSopenharmony_ci 8115bd8deadSopenharmony_ci If EXT_copy_texture is not supported, commands CopyConvolutionFilter1DEXT 8125bd8deadSopenharmony_ci and CopyConvolutionFilter2DEXT are not supported. 8135bd8deadSopenharmony_ci 8145bd8deadSopenharmony_ciErrors 8155bd8deadSopenharmony_ci 8165bd8deadSopenharmony_ci INVALID_ENUM is generated if ConvolutionFilter1DEXT parameter <target> 8175bd8deadSopenharmony_ci is not CONVOLUTION_1D_EXT. 8185bd8deadSopenharmony_ci 8195bd8deadSopenharmony_ci INVALID_ENUM is generated if ConvolutionFilter2DEXT parameter <target> 8205bd8deadSopenharmony_ci is not CONVOLUTION_2D_EXT. 8215bd8deadSopenharmony_ci 8225bd8deadSopenharmony_ci INVALID_ENUM is generated if CopyConvolutionFilter1DEXT parameter 8235bd8deadSopenharmony_ci <target> is not CONVOLUTION_1D_EXT. 8245bd8deadSopenharmony_ci 8255bd8deadSopenharmony_ci INVALID_ENUM is generated if CopyConvolutionFilter2DEXT parameter 8265bd8deadSopenharmony_ci <target> is not CONVOLUTION_2D_EXT. 8275bd8deadSopenharmony_ci 8285bd8deadSopenharmony_ci INVALID_ENUM is generated if SeparableFilter2DEXT parameter <target> 8295bd8deadSopenharmony_ci is not SEPARABLE_2D_EXT. 8305bd8deadSopenharmony_ci 8315bd8deadSopenharmony_ci INVALID_ENUM is generated if GetConvolutionFilterEXT parameter <target> 8325bd8deadSopenharmony_ci is not CONVOLUTION_1D_EXT or CONVOLUTION_2D_EXT. 8335bd8deadSopenharmony_ci 8345bd8deadSopenharmony_ci INVALID_ENUM is generated if GetSeparableFilterEXT parameter <target> 8355bd8deadSopenharmony_ci is not SEPARABLE_2D_EXT. 8365bd8deadSopenharmony_ci 8375bd8deadSopenharmony_ci INVALID_ENUM is generated if ConvolutionParameteriEXT, 8385bd8deadSopenharmony_ci ConvolutionParameterfEXT, ConvolutionParameterivEXT, 8395bd8deadSopenharmony_ci ConvolutionParameterfvEXT, GetConvolutionParameterivEXT, or 8405bd8deadSopenharmony_ci GetConvolutionParameterfvEXT parameter <target> is not 8415bd8deadSopenharmony_ci CONVOLUTION_1D_EXT, CONVOLUTION_2D_EXT, or SEPARABLE_2D_EXT. 8425bd8deadSopenharmony_ci 8435bd8deadSopenharmony_ci INVALID_ENUM is generated if ConvolutionFilter1DEXT, 8445bd8deadSopenharmony_ci ConvolutionFilter2DEXT, CopyConvolutionFilter1DEXT, 8455bd8deadSopenharmony_ci CopyConvolutionFilter2DEXT, or SeparableFilter2DEXT parameter 8465bd8deadSopenharmony_ci <internalformat> is not ALPHA, LUMINANCE, LUMINANCE_ALPHA, INTENSITY, 8475bd8deadSopenharmony_ci RGB, or RGBA. 8485bd8deadSopenharmony_ci 8495bd8deadSopenharmony_ci INVALID_VALUE is generated if ConvolutionFilter1DEXT parameter <width> 8505bd8deadSopenharmony_ci is less than zero, or greater than MAX_CONVOLUTION_WIDTH_EXT as queried 8515bd8deadSopenharmony_ci using GetConvolutionParameterivEXT with <target> CONVOLUTION_1D_EXT. 8525bd8deadSopenharmony_ci 8535bd8deadSopenharmony_ci INVALID_VALUE is generated if ConvolutionFilter2DEXT parameter <width> 8545bd8deadSopenharmony_ci is less than zero, or greater than MAX_CONVOLUTION_WIDTH_EXT as queried 8555bd8deadSopenharmony_ci using GetConvolutionParameterivEXT with <target> CONVOLUTION_2D_EXT. 8565bd8deadSopenharmony_ci 8575bd8deadSopenharmony_ci INVALID_VALUE is generated if CopyConvolutionFilter1DEXT parameter 8585bd8deadSopenharmony_ci <width> is less than zero, or greater than MAX_CONVOLUTION_WIDTH_EXT 8595bd8deadSopenharmony_ci as queried using GetConvolutionParameterivEXT with <target> 8605bd8deadSopenharmony_ci CONVOLUTION_1D_EXT. 8615bd8deadSopenharmony_ci 8625bd8deadSopenharmony_ci INVALID_VALUE is generated if CopyConvolutionFilter2DEXT parameter 8635bd8deadSopenharmony_ci <width> is less than zero, or greater than MAX_CONVOLUTION_WIDTH_EXT 8645bd8deadSopenharmony_ci as queried using GetConvolutionParameterivEXT with <target> 8655bd8deadSopenharmony_ci CONVOLUTION_2D_EXT. 8665bd8deadSopenharmony_ci 8675bd8deadSopenharmony_ci INVALID_VALUE is generated if SeparableFilter2DEXT parameter <width> 8685bd8deadSopenharmony_ci is less than zero, or greater than MAX_CONVOLUTION_WIDTH_EXT as queried 8695bd8deadSopenharmony_ci using GetConvolutionParameterivEXT with <target> SEPARABLE_2D_EXT. 8705bd8deadSopenharmony_ci 8715bd8deadSopenharmony_ci INVALID_VALUE is generated if ConvolutionFilter2DEXT parameter <height> 8725bd8deadSopenharmony_ci is less than zero, or greater than MAX_CONVOLUTION_HEIGHT_EXT as queried 8735bd8deadSopenharmony_ci using GetConvolutionParameterivEXT with <target> CONVOLUTION_2D_EXT. 8745bd8deadSopenharmony_ci 8755bd8deadSopenharmony_ci INVALID_VALUE is generated if CopyConvolutionFilter2DEXT parameter 8765bd8deadSopenharmony_ci <height> is less than zero, or greater than MAX_CONVOLUTION_HEIGHT_EXT 8775bd8deadSopenharmony_ci as queried using GetConvolutionParameterivEXT with <target> 8785bd8deadSopenharmony_ci CONVOLUTION_2D_EXT. 8795bd8deadSopenharmony_ci 8805bd8deadSopenharmony_ci INVALID_VALUE is generated if SeparableFilter2DEXT parameter <height> 8815bd8deadSopenharmony_ci is less than zero, or greater than MAX_CONVOLUTION_HEIGHT_EXT as queried 8825bd8deadSopenharmony_ci using GetConvolutionParameterivEXT with <target> SEPARABLE_2D_EXT. 8835bd8deadSopenharmony_ci 8845bd8deadSopenharmony_ci INVALID_ENUM is generated if ConvolutionFilter1DEXT, 8855bd8deadSopenharmony_ci ConvolutionFilter2DEXT, GetConvolutionFilterEXT, SeparableFilter2DEXT, 8865bd8deadSopenharmony_ci or GetSeparableFilterEXT parameter <format> is not RED, GREEN, BLUE, 8875bd8deadSopenharmony_ci ALPHA, RGB, RGBA, ABGR_EXT, LUMINANCE, or LUMINANCE_ALPHA. 8885bd8deadSopenharmony_ci 8895bd8deadSopenharmony_ci INVALID_ENUM is generated if ConvolutionFilter1DEXT, 8905bd8deadSopenharmony_ci ConvolutionFilter2DEXT, GetConvolutionFilterEXT, SeparableFilter2DEXT, 8915bd8deadSopenharmony_ci or GetSeparableFilterEXT parameter <type> is not UNSIGNED_BYTE, BYTE, 8925bd8deadSopenharmony_ci UNSIGNED_SHORT, SHORT, UNSIGNED_INT, INT, or FLOAT. 8935bd8deadSopenharmony_ci 8945bd8deadSopenharmony_ci INVALID_ENUM is generated if ConvolutionParameterivEXT or 8955bd8deadSopenharmony_ci ConvolutionParameterfvEXT parameter <pname> is not 8965bd8deadSopenharmony_ci CONVOLUTION_FILTER_SCALE_EXT, CONVOLUTION_FILTER_BIAS_EXT, 8975bd8deadSopenharmony_ci or CONVOLUTION_BORDER_MODE_EXT. 8985bd8deadSopenharmony_ci 8995bd8deadSopenharmony_ci INVALID_ENUM is generated if ConvolutionParameteriEXT or 9005bd8deadSopenharmony_ci ConvolutionParameterfEXT parameter <pname> is not 9015bd8deadSopenharmony_ci CONVOLUTION_BORDER_MODE_EXT. 9025bd8deadSopenharmony_ci 9035bd8deadSopenharmony_ci INVALID_ENUM is generated if ConvolutionParameteriEXT, 9045bd8deadSopenharmony_ci ConvolutionParameterfEXT, ConvolutionParameterivEXT, or 9055bd8deadSopenharmony_ci ConvolutionParameterfvEXT parameter <pname> is 9065bd8deadSopenharmony_ci CONVOLUTION_BORDER_MODE_EXT and parameter <params> is not REDUCE_EXT. 9075bd8deadSopenharmony_ci 9085bd8deadSopenharmony_ci INVALID_ENUM is generated if GetConvolutionParameterivEXT or 9095bd8deadSopenharmony_ci GetConvolutionParameterfvEXT parameter <pname> is not 9105bd8deadSopenharmony_ci CONVOLUTION_FILTER_SCALE_EXT, CONVOLUTION_FILTER_BIAS_EXT, 9115bd8deadSopenharmony_ci CONVOLUTION_BORDER_MODE_EXT, CONVOLUTION_FORMAT_EXT, 9125bd8deadSopenharmony_ci CONVOLUTION_WIDTH_EXT, CONVOLUTION_HEIGHT_EXT, MAX_CONVOLUTION_WIDTH_EXT 9135bd8deadSopenharmony_ci or MAX_CONVOLUTION_HEIGHT_EXT. 9145bd8deadSopenharmony_ci 9155bd8deadSopenharmony_ci INVALID_ENUM is generated if GetConvolutionParameterivEXT or 9165bd8deadSopenharmony_ci GetConvolutionParameterfvEXT parameter <target> is CONVOLUTION_1D_EXT 9175bd8deadSopenharmony_ci and <pname> is CONVOLUTION_HEIGHT_EXT or MAX_CONVOLUTION_HEIGHT_EXT. 9185bd8deadSopenharmony_ci 9195bd8deadSopenharmony_ci INVALID_OPERATION is generated if ConvolutionFilter1DEXT, 9205bd8deadSopenharmony_ci ConvolutionFilter2DEXT, CopyConvolutionFilter1DEXT, 9215bd8deadSopenharmony_ci CopyConvolutionFilter2DEXT, GetConvolutionFilterEXT, SeparableFilter2DEXT, 9225bd8deadSopenharmony_ci GetSeparableFilterEXT, ConvolutionParameteriEXT, 9235bd8deadSopenharmony_ci ConvolutionParameterivEXT, ConvolutionParameterfEXT, 9245bd8deadSopenharmony_ci ConvolutionParameterfvEXT, GetConvolutionParameterivEXT, or 9255bd8deadSopenharmony_ci GetConvolutionParameterfvEXT is executed between execution of Begin and 9265bd8deadSopenharmony_ci the corresponding execution of End. 9275bd8deadSopenharmony_ci 9285bd8deadSopenharmony_ciNew State 9295bd8deadSopenharmony_ci 9305bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Attribute 9315bd8deadSopenharmony_ci --------- ----------- ---- ------------- --------- 9325bd8deadSopenharmony_ci CONVOLUTION_1D_EXT IsEnabled B False pixel/enable 9335bd8deadSopenharmony_ci CONVOLUTION_2D_EXT IsEnabled B False pixel/enable 9345bd8deadSopenharmony_ci SEPARABLE_2D_EXT IsEnabled B False pixel/enable 9355bd8deadSopenharmony_ci CONVOLUTION_FILTER_SCALE_EXT GetConvolutionParameterivEXT 3 x R4 (1,1,1,1) pixel 9365bd8deadSopenharmony_ci CONVOLUTION_FILTER_BIAS_EXT GetConvolutionParameterivEXT 3 x R4 (0,0,0,0) pixel 9375bd8deadSopenharmony_ci CONVOLUTION_BORDER_MODE_EXT GetConvolutionParameterivEXT 3 x Z1 REDUCE_EXT pixel 9385bd8deadSopenharmony_ci 9395bd8deadSopenharmony_ci CONVOLUTION_xD (x is 1 or 2) GetConvolutionFilterEXT 2 x I empty - 9405bd8deadSopenharmony_ci SEPARABLE_2D GetSeparableFilterEXT 1 x I empty - 9415bd8deadSopenharmony_ci CONVOLUTION_FORMAT_EXT GetConvolutionParameterivEXT 3 x Z8 RGBA - 9425bd8deadSopenharmony_ci CONVOLUTION_WIDTH_EXT GetConvolutionParameterivEXT 3 x Z+ 0 - 9435bd8deadSopenharmony_ci CONVOLUTION_HEIGHT_EXT GetConvolutionParameterivEXT 2 x Z+ 0 - 9445bd8deadSopenharmony_ci 9455bd8deadSopenharmony_ci POST_CONVOLUTION_RED_SCALE_EXT GetFloatv R 1 pixel 9465bd8deadSopenharmony_ci POST_CONVOLUTION_GREEN_SCALE_EXT GetFloatv R 1 pixel 9475bd8deadSopenharmony_ci POST_CONVOLUTION_BLUE_SCALE_EXT GetFloatv R 1 pixel 9485bd8deadSopenharmony_ci POST_CONVOLUTION_ALPHA_SCALE_EXT GetFloatv R 1 pixel 9495bd8deadSopenharmony_ci POST_CONVOLUTION_RED_BIAS_EXT GetFloatv R 0 pixel 9505bd8deadSopenharmony_ci POST_CONVOLUTION_GREEN_BIAS_EXT GetFloatv R 0 pixel 9515bd8deadSopenharmony_ci POST_CONVOLUTION_BLUE_BIAS_EXT GetFloatv R 0 pixel 9525bd8deadSopenharmony_ci POST_CONVOLUTION_ALPHA_BIAS_EXT GetFloatv R 0 pixel 9535bd8deadSopenharmony_ci 9545bd8deadSopenharmony_ciNew Implementation Dependent State 9555bd8deadSopenharmony_ci 9565bd8deadSopenharmony_ci Get Value Get Command Type Minimum Value 9575bd8deadSopenharmony_ci --------- ----------- ---- ------------- 9585bd8deadSopenharmony_ci MAX_CONVOLUTION_WIDTH_EXT GetConvolutionParameterivEXT 3 x Z+ 3 9595bd8deadSopenharmony_ci MAX_CONVOLUTION_HEIGHT_EXT GetConvolutionParameterivEXT 2 x Z+ 3 9605bd8deadSopenharmony_ci 9615bd8deadSopenharmony_ciRevision History 9625bd8deadSopenharmony_ci 9635bd8deadSopenharmony_ci Version 1.32, 2002/06/27 - fixed targets for GetConvolutionFilter and 9645bd8deadSopenharmony_ci GetSeparableFilter. 965