15bd8deadSopenharmony_ciXXX - Not complete yet!!! 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ciName 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ci SGIX_clipmap 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ciName Strings 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ci GL_SGIX_clipmap 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ciVersion 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ci $Date: 1996/06/12 17:19:43 $ $Revision: 1.9 $ 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ciNumber 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ci 33 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ciDependencies 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ci EXT_texture is required 225bd8deadSopenharmony_ci EXT_texture_object affects the definition of this extension 235bd8deadSopenharmony_ci SGIS_texture_lod affects the definition of this extension 245bd8deadSopenharmony_ci SGI_detail_texture affects the definition of this extension 255bd8deadSopenharmony_ci SGI_sharpen_texture affects the definition of this extension 265bd8deadSopenharmony_ci 275bd8deadSopenharmony_ciOverview 285bd8deadSopenharmony_ci 295bd8deadSopenharmony_ci Mipmaps provide a general but expensive solution when the texture image 305bd8deadSopenharmony_ci is very large. This extension defines clipmaps, which occupy a small 315bd8deadSopenharmony_ci subset of the memory required by equivalent mipmaps, but provide much 325bd8deadSopenharmony_ci of the mipmap rendering capabilities. Clipmaps are especially useful 335bd8deadSopenharmony_ci for rendering terrain. 345bd8deadSopenharmony_ci 355bd8deadSopenharmony_ciIssues 365bd8deadSopenharmony_ci 375bd8deadSopenharmony_ci * Is lod clamping treated properly if we have no texel data? 385bd8deadSopenharmony_ci * Should we always have to specify a virtual depth? 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ciNew Procedures and Functions 415bd8deadSopenharmony_ci 425bd8deadSopenharmony_ci None 435bd8deadSopenharmony_ci 445bd8deadSopenharmony_ciNew Tokens 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ci Accepted by the <param> parameter of TexParameteri and TexParameterf, 475bd8deadSopenharmony_ci and by the <params> parameter of TexParameteriv and TexParameterfv, 485bd8deadSopenharmony_ci when their <pname> parameter is TEXTURE_MIN_FILTER: 495bd8deadSopenharmony_ci 505bd8deadSopenharmony_ci LINEAR_CLIPMAP_LINEAR_SGIX 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci Accepted by the <pname> parameter of TexParameteri, TexParameterf, 535bd8deadSopenharmony_ci TexParameteriv, TexParameterfv, GetTexParameteriv, and GetTexParameterfv: 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci TEXTURE_CLIPMAP_FRAME_SGIX 565bd8deadSopenharmony_ci 575bd8deadSopenharmony_ci Accepted by the <pname> parameter of TexParameteriv, TexParameterfv, 585bd8deadSopenharmony_ci GetTexParameteriv, and GetTexParameterfv: 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci TEXTURE_CLIPMAP_CENTER_SGIX 615bd8deadSopenharmony_ci TEXTURE_CLIPMAP_OFFSET_SGIX 625bd8deadSopenharmony_ci TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 635bd8deadSopenharmony_ci 645bd8deadSopenharmony_ci Accepted by the <pname> parameter of GetBooleanv, GetIntegerv, 655bd8deadSopenharmony_ci GetFloatv, and GetDoublev: 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci MAX_CLIPMAP_DEPTH_SGIX 685bd8deadSopenharmony_ci MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX 695bd8deadSopenharmony_ci 705bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 715bd8deadSopenharmony_ci 725bd8deadSopenharmony_ci None 735bd8deadSopenharmony_ci 745bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization) 755bd8deadSopenharmony_ci 765bd8deadSopenharmony_ci GL Specification Table 3.7 is updated as follows: 775bd8deadSopenharmony_ci 785bd8deadSopenharmony_ci Name Type Legal Values 795bd8deadSopenharmony_ci ---- ---- ------------ 805bd8deadSopenharmony_ci TEXTURE_WRAP_S integer CLAMP, REPEAT 815bd8deadSopenharmony_ci TEXTURE_WRAP_T integer CLAMP, REPEAT 825bd8deadSopenharmony_ci TEXTURE_WRAP_R_EXT integer CLAMP, REPEAT 835bd8deadSopenharmony_ci TEXTURE_MIN_FILTER integer NEAREST, LINEAR, 845bd8deadSopenharmony_ci NEAREST_MIPMAP_NEAREST, 855bd8deadSopenharmony_ci NEAREST_MIPMAP_LINEAR, 865bd8deadSopenharmony_ci LINEAR_MIPMAP_NEAREST, 875bd8deadSopenharmony_ci LINEAR_MIPMAP_LINEAR, 885bd8deadSopenharmony_ci FILTER4_SGIS, 895bd8deadSopenharmony_ci LINEAR_CLIPMAP_LINEAR_SGIX 905bd8deadSopenharmony_ci TEXTURE_MAG_FILTER integer NEAREST, LINEAR, 915bd8deadSopenharmony_ci FILTER4_SGIS, 925bd8deadSopenharmony_ci LINEAR_DETAIL_SGIS, 935bd8deadSopenharmony_ci LINEAR_DETAIL_ALPHA_SGIS, 945bd8deadSopenharmony_ci LINEAR_DETAIL_COLOR_SGIS, 955bd8deadSopenharmony_ci LINEAR_SHARPEN_SGIS, 965bd8deadSopenharmony_ci LINEAR_SHARPEN_ALPHA_SGIS, 975bd8deadSopenharmony_ci LINEAR_SHARPEN_COLOR_SGIS 985bd8deadSopenharmony_ci TEXTURE_BORDER_COLOR 4 floats any 4 values in [0,1] 995bd8deadSopenharmony_ci DETAIL_TEXTURE_LEVEL_SGIS integer any non-negative integer 1005bd8deadSopenharmony_ci DETAIL_TEXTURE_MODE_SGIS integer ADD, MODULATE 1015bd8deadSopenharmony_ci TEXTURE_MIN_LOD_SGIS float any value 1025bd8deadSopenharmony_ci TEXTURE_MAX_LOD_SGIS float any value 1035bd8deadSopenharmony_ci TEXTURE_BASE_LEVEL_SGIS integer any non-negative integer 1045bd8deadSopenharmony_ci TEXTURE_MAX_LEVEL_SGIS integer any non-negative integer 1055bd8deadSopenharmony_ci GENERATE_MIPMAP_SGIS boolean TRUE or FALSE 1065bd8deadSopenharmony_ci TEXTURE_CLIPMAP_FRAME_SGIX float any non-negative value 1075bd8deadSopenharmony_ci TEXTURE_CLIPMAP_CENTER_SGIX 2 integers any 2 non-negative integers 1085bd8deadSopenharmony_ci TEXTURE_CLIPMAP_OFFSET_SGIX 2 integers any 2 non-negative integers 1095bd8deadSopenharmony_ci TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 3 integers any 3 non-negative integers 1105bd8deadSopenharmony_ci 1115bd8deadSopenharmony_ci Table 3.7: Texture parameters and their values. 1125bd8deadSopenharmony_ci 1135bd8deadSopenharmony_ci Notes: 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ci * Clipmap filtering is supported only for 2D, borderless textures. 1165bd8deadSopenharmony_ci 1175bd8deadSopenharmony_ci * Clipmap filtering is performed when the texture minification filter 1185bd8deadSopenharmony_ci is LINEAR_CLIPMAP_LINEAR_SGIX. We could define other clipmap 1195bd8deadSopenharmony_ci filters with NEAREST sampling, but it probably isn't worth the 1205bd8deadSopenharmony_ci trouble. 1215bd8deadSopenharmony_ci 1225bd8deadSopenharmony_ci * Clipmap filtering is supported with all magnification filters 1235bd8deadSopenharmony_ci except FILTER4_SGIS. Detail and sharpen filtering are performed 1245bd8deadSopenharmony_ci only when the texture data are supplied by the level 0 image. 1255bd8deadSopenharmony_ci 1265bd8deadSopenharmony_ci * A clipmap virtualizes a mipmap by holding, at any given time, only a 1275bd8deadSopenharmony_ci portion of a full mipmap pyramid. A clipmap is complete only if 1285bd8deadSopenharmony_ci levels 0 through B have the same dimension, levels B through N form 1295bd8deadSopenharmony_ci the base of a valid mipmap, all image dimensions are a power of 2, 1305bd8deadSopenharmony_ci and N is less than MAX_CLIPMAP_DEPTH_SGIX. 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ci Each image level P, where P ranges from B through N, is treated as 1335bd8deadSopenharmony_ci though it contains the full image from the same level of the complete 1345bd8deadSopenharmony_ci (N+1) level mipmap. 1355bd8deadSopenharmony_ci 1365bd8deadSopenharmony_ci Each image level P, where P ranges from 0 through B-1, is treated as 1375bd8deadSopenharmony_ci though it contains a subimage from the same level of the complete 1385bd8deadSopenharmony_ci (N+1) level mipmap. This subimage is centered at texel coordinates 1395bd8deadSopenharmony_ci 1405bd8deadSopenharmony_ci S = (Scenter >> P) 1415bd8deadSopenharmony_ci T = (Tcenter >> P) 1425bd8deadSopenharmony_ci 1435bd8deadSopenharmony_ci where Scenter and Tcenter are specified by the application. 1445bd8deadSopenharmony_ci 1455bd8deadSopenharmony_ci For instance, if the width of the clipmap is W=8, N=12, and Scenter= 1465bd8deadSopenharmony_ci 2048, the clipmap will contain the data given by 0's in the S-edge 1475bd8deadSopenharmony_ci view below: 1485bd8deadSopenharmony_ci 1495bd8deadSopenharmony_ci 0 .********************************00000000********************************. 1505bd8deadSopenharmony_ci 1 .********************************00000000********************************. 1515bd8deadSopenharmony_ci 2 .********************************00000000********************************. 1525bd8deadSopenharmony_ci 3 .********************************00000000********************************. 1535bd8deadSopenharmony_ci 4 .********************************00000000********************************. 1545bd8deadSopenharmony_ci 5 .********************************00000000********************************. 1555bd8deadSopenharmony_ci 6 ****************************00000000**************************** 1565bd8deadSopenharmony_ci 7 ************00000000************ 1575bd8deadSopenharmony_ci 8 ****00000000**** 1585bd8deadSopenharmony_ciB=9 00000000 1595bd8deadSopenharmony_ci 10 0000 1605bd8deadSopenharmony_ci 11 00 1615bd8deadSopenharmony_ciN=12 0 1625bd8deadSopenharmony_ci 1635bd8deadSopenharmony_ci Likewise, if Scenter=2016 (32 less than above): 1645bd8deadSopenharmony_ci 1655bd8deadSopenharmony_ci 0 .00000000****************************************************************. 1665bd8deadSopenharmony_ci 1 .****************00000000************************************************. 1675bd8deadSopenharmony_ci 2 .************************00000000****************************************. 1685bd8deadSopenharmony_ci 3 .****************************00000000************************************. 1695bd8deadSopenharmony_ci 4 .******************************00000000**********************************. 1705bd8deadSopenharmony_ci 5 .*******************************00000000*********************************. 1715bd8deadSopenharmony_ci 6 ****************************00000000***************************** 1725bd8deadSopenharmony_ci 7 ************00000000************ 1735bd8deadSopenharmony_ci 8 ****00000000**** 1745bd8deadSopenharmony_ci 9 00000000 1755bd8deadSopenharmony_ci 10 0000 1765bd8deadSopenharmony_ci 11 00 1775bd8deadSopenharmony_ciN=12 0 1785bd8deadSopenharmony_ci 1795bd8deadSopenharmony_ci * Scenter and Tcenter are specified by the application by calling 1805bd8deadSopenharmony_ci TexParameteriv or TexParameterfv with <target> set to TEXTURE_2D, 1815bd8deadSopenharmony_ci <pname> set to <TEXTURE_CLIPMAP_CENTER_SGIX>, and <params> pointing 1825bd8deadSopenharmony_ci to a vector whose first component is Scenter and whose second 1835bd8deadSopenharmony_ci component is Tcenter. The center can be changed at any time. 1845bd8deadSopenharmony_ci 1855bd8deadSopenharmony_ci * The clipped levels (i.e. those levels P, where P<B) of the map can 1865bd8deadSopenharmony_ci be framed with a region of texels guaranteed not to be displayed. 1875bd8deadSopenharmony_ci The frames allow for paging of new texture data into a non-active 1885bd8deadSopenharmony_ci portion of texture memory, enabling efficient roaming throughout the 1895bd8deadSopenharmony_ci larger virtual mipmap. The frames for all of the clipped levels are 1905bd8deadSopenharmony_ci the same width and are measured as a fraction of the width of the 1915bd8deadSopenharmony_ci clipped levels. Specifically, 1925bd8deadSopenharmony_ci 1935bd8deadSopenharmony_ci width of frame in texels = Cframe * W / 2 1945bd8deadSopenharmony_ci 1955bd8deadSopenharmony_ci The floating point value Cframe can take on values from 0.0 to 1.0 1965bd8deadSopenharmony_ci and is specified by the application. 1975bd8deadSopenharmony_ci 1985bd8deadSopenharmony_ci Cframe is a non-negative fraction of half the level width specified 1995bd8deadSopenharmony_ci by calling TexParameterf or TexParameterfv with <target> set to 2005bd8deadSopenharmony_ci TEXTURE_2D, <pname> set to <TEXTURE_CLIPMAP_FRAME_SGIX>, and <param> 2015bd8deadSopenharmony_ci set to Cframe or <params> pointing to Cframe. Cframe is clamped to 2025bd8deadSopenharmony_ci the range [0,1]. The frame width can be changed at any time. 2035bd8deadSopenharmony_ci 2045bd8deadSopenharmony_ci * During filtering a level of detail is determined just as it would be 2055bd8deadSopenharmony_ci for the equivalent (N+1) level mipmap. If the level of detail falls 2065bd8deadSopenharmony_ci into the clipped portion of the clipmap and the required texels are 2075bd8deadSopenharmony_ci not available within the framed region of the two closest image 2085bd8deadSopenharmony_ci levels, the level of detail is increased to the nearest image level 2095bd8deadSopenharmony_ci that does include the required texels. The values of TEXTURE_WRAP_S 2105bd8deadSopenharmony_ci and TEXTURE_WRAP_T have no effect during clipmap minification. 2115bd8deadSopenharmony_ci 2125bd8deadSopenharmony_ci If SGIS_texture_lod is supported, the level of detail is clamped to 2135bd8deadSopenharmony_ci the range defined by TEXTURE_MIN_LOD_SGIS, TEXTURE_MAX_LOD_SGIS, 2145bd8deadSopenharmony_ci TEXTURE_BASE_LEVEL_SGIS, and TEXTURE_MAX_LEVEL_SGIS. (Issue: what 2155bd8deadSopenharmony_ci if texels do not exist on the level given by max_lod?) 2165bd8deadSopenharmony_ci 2175bd8deadSopenharmony_ci * As the center moves, only texels along the edges of the clipmap levels 2185bd8deadSopenharmony_ci change. To allow for incremental loading only of these texels via 2195bd8deadSopenharmony_ci TexSubImage2DEXT, torroidal offset values are added to the texture 2205bd8deadSopenharmony_ci addresses of each level. For the Pth level where P ranges from 0 to 2215bd8deadSopenharmony_ci B-1, these offsets are 2225bd8deadSopenharmony_ci 2235bd8deadSopenharmony_ci Soffsetp = (Soffset >> P) 2245bd8deadSopenharmony_ci Toffsetp = (Toffset >> P) 2255bd8deadSopenharmony_ci 2265bd8deadSopenharmony_ci where Soffset and Toffset are specified by the application. Note that 2275bd8deadSopenharmony_ci Soffset and Toffset for the top level defines the offsets for 2285bd8deadSopenharmony_ci subsequent levels by a simple shift just as with the center. 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ci Soffset and Toffset are specified by calling TexParameteriv or 2315bd8deadSopenharmony_ci TexParameterfv with <target> set to TEXTURE_2D, <pname> set to 2325bd8deadSopenharmony_ci <TEXTURE_CLIPMAP_OFFSET_SGIX>, and <params> pointing to a vector 2335bd8deadSopenharmony_ci whose first component is Soffset and whose second component is 2345bd8deadSopenharmony_ci Toffset. The offset can be changed at any time. 2355bd8deadSopenharmony_ci 2365bd8deadSopenharmony_ci * To index into a clipmap of greater than MAX_CLIPMAP_DEPTH_SGIX levels 2375bd8deadSopenharmony_ci of detail, additional parameters are provided to restrictively index 2385bd8deadSopenharmony_ci a smaller clipmap of (N+1) levels located wholly within a complete, 2395bd8deadSopenharmony_ci larger clipmap. The larger clipmap is complete only if levels 0 2405bd8deadSopenharmony_ci through B have the same dimension, levels B through V form the base 2415bd8deadSopenharmony_ci of a valid mipmap, all image dimensions are a power of 2, and V is 2425bd8deadSopenharmony_ci less than MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX. These constraints are 2435bd8deadSopenharmony_ci precisely those given above with the exception of the depth, V, being 2445bd8deadSopenharmony_ci allowed to range up to MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX. 2455bd8deadSopenharmony_ci 2465bd8deadSopenharmony_ci The second, smaller clipmap has a base level located at level D of 2475bd8deadSopenharmony_ci the larger clipmap and has a depth of N. Both parameters D and N are 2485bd8deadSopenharmony_ci specified by the application. The smaller clipmap is valid only if D 2495bd8deadSopenharmony_ci is between 0 and V, (D+N) is less than or equal to V, and D is less 2505bd8deadSopenharmony_ci than MAX_CLIPMAP_DEPTH_SGIX. 2515bd8deadSopenharmony_ci 2525bd8deadSopenharmony_ci Scenter, Tcenter, Soffset, and Toffset are still relative the level 2535bd8deadSopenharmony_ci 0, the base level of the larger, virtual mipmap, as are the minimum 2545bd8deadSopenharmony_ci and maximum levels of detail specified in the SGIS_texture_lod 2555bd8deadSopenharmony_ci extension. 2565bd8deadSopenharmony_ci 2575bd8deadSopenharmony_ci For D=2, N=5, V=12, and Scenter=2048, the valid texels are given by 2585bd8deadSopenharmony_ci the x's in the diagram below. 2595bd8deadSopenharmony_ci 2605bd8deadSopenharmony_ci 0 ...******************************00000000******************************... 2615bd8deadSopenharmony_ci 1 ...******************************00000000******************************... 2625bd8deadSopenharmony_ciD=2 ...******************************xxxxxxxx******************************... 2635bd8deadSopenharmony_ci 3 ...******************************xxxxxxxx******************************... 2645bd8deadSopenharmony_ci 4 ...******************************xxxxxxxx******************************... 2655bd8deadSopenharmony_ci 5 ...******************************00xxxx00******************************... 2665bd8deadSopenharmony_ci 6 ****************************000xx000**************************** 2675bd8deadSopenharmony_ciD+N=7 ************000x0000************ 2685bd8deadSopenharmony_ci 8 ****00000000**** 2695bd8deadSopenharmony_ci 9 00000000 2705bd8deadSopenharmony_ci 10 0000 2715bd8deadSopenharmony_ci 11 00 2725bd8deadSopenharmony_ciV=12 0 2735bd8deadSopenharmony_ci 2745bd8deadSopenharmony_ci Likewise, if Scenter=2016 (32 less than above): 2755bd8deadSopenharmony_ci 2765bd8deadSopenharmony_ci 0 .00000000**************************************************************... 2775bd8deadSopenharmony_ci 1 .****************00000000**********************************************... 2785bd8deadSopenharmony_ciD=2 ...**********************xxxxxxxx**************************************... 2795bd8deadSopenharmony_ci 3 ...**************************xxxxxxxx**********************************... 2805bd8deadSopenharmony_ci 4 ...****************************xxxxxxxx********************************... 2815bd8deadSopenharmony_ci 5 ...*****************************00xxxx00*******************************... 2825bd8deadSopenharmony_ci 6 ****************************000xx000****************************** 2835bd8deadSopenharmony_ciD+N=7 ************000x0000************ 2845bd8deadSopenharmony_ci 8 ****00000000**** 2855bd8deadSopenharmony_ci 9 00000000 2865bd8deadSopenharmony_ci 10 0000 2875bd8deadSopenharmony_ci 11 00 2885bd8deadSopenharmony_ciV=12 0 2895bd8deadSopenharmony_ci 2905bd8deadSopenharmony_ci Texel address and level of detail generation proceed with the smaller 2915bd8deadSopenharmony_ci clipmap precisely as described above for the original clipmap. If 2925bd8deadSopenharmony_ci the level of detail is such that a level below D would be indexed, 2935bd8deadSopenharmony_ci texture magnification is performed even though the finer texture 2945bd8deadSopenharmony_ci information may be present in texture memory. Likewise, levels of 2955bd8deadSopenharmony_ci detail coarser than D+N may demonstrate aliasing. The onus is on the 2965bd8deadSopenharmony_ci application to choose parameters D and N to prevent unwanted 2975bd8deadSopenharmony_ci filtering operations. 2985bd8deadSopenharmony_ci 2995bd8deadSopenharmony_ci The finest level of the clipmap, D, the depth of the clipmap, N+1, and 3005bd8deadSopenharmony_ci the depth of the virtual clipmap, V+1, are specified by calling 3015bd8deadSopenharmony_ci TexParameteriv, or TexParameterfv with <target> set to TEXTURE_2D, 3025bd8deadSopenharmony_ci <pname> set to <TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX>, and <params> set 3035bd8deadSopenharmony_ci to (D,N+1,V+1). These parameters can be changed at any time. 3045bd8deadSopenharmony_ci 3055bd8deadSopenharmony_ci If the depth of the virtual clipmap is zero, clipmap virtualization 3065bd8deadSopenharmony_ci is ignored, and texturing proceeds as with a non-virtual clipmap. 3075bd8deadSopenharmony_ci 3085bd8deadSopenharmony_ci * Special Case: 3095bd8deadSopenharmony_ci TEXTURE_CLIPMAP_LOD_OFFSET_SGIX is ignored 3105bd8deadSopenharmony_ci TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX === TEXTURE_CLIPMAP_DEPTH_SGIX 3115bd8deadSopenharmony_ci 3125bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 3135bd8deadSopenharmony_ciand the Frame Buffer) 3145bd8deadSopenharmony_ci 3155bd8deadSopenharmony_ci None 3165bd8deadSopenharmony_ci 3175bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions) 3185bd8deadSopenharmony_ci 3195bd8deadSopenharmony_ci None 3205bd8deadSopenharmony_ci 3215bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests) 3225bd8deadSopenharmony_ci 3235bd8deadSopenharmony_ci None 3245bd8deadSopenharmony_ci 3255bd8deadSopenharmony_ciAdditions to the GLX Specification 3265bd8deadSopenharmony_ci 3275bd8deadSopenharmony_ci None 3285bd8deadSopenharmony_ci 3295bd8deadSopenharmony_ciDependencies on EXT_texture 3305bd8deadSopenharmony_ci 3315bd8deadSopenharmony_ci EXT_texture is required 3325bd8deadSopenharmony_ci 3335bd8deadSopenharmony_ciDependencies on EXT_texture_object 3345bd8deadSopenharmony_ci 3355bd8deadSopenharmony_ci If EXT_texture_object is implemented, the state values named 3365bd8deadSopenharmony_ci 3375bd8deadSopenharmony_ci TEXTURE_CLIPMAP_FRAME_SGIX 3385bd8deadSopenharmony_ci TEXTURE_CLIPMAP_CENTER_SGIX 3395bd8deadSopenharmony_ci TEXTURE_CLIPMAP_OFFSET_SGIX 3405bd8deadSopenharmony_ci TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX 3415bd8deadSopenharmony_ci 3425bd8deadSopenharmony_ci are added to the state vector of each texture object. When an attribute 3435bd8deadSopenharmony_ci set that includes texture information is popped, the bindings and 3445bd8deadSopenharmony_ci enables are first restored to their pushed values, then the bound 3455bd8deadSopenharmony_ci textures have their TEXTURE_CLIPMAP_FRAME_SGIX, 3465bd8deadSopenharmony_ci TEXTURE_CLIPMAP_CENTER_SGIX, TEXTURE_CLIPMAP_OFFSET_SGIX, and 3475bd8deadSopenharmony_ci TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX parameters restored to their pushed 3485bd8deadSopenharmony_ci values. 3495bd8deadSopenharmony_ci 3505bd8deadSopenharmony_ciDependencies on SGIS_texture_lod 3515bd8deadSopenharmony_ci 3525bd8deadSopenharmony_ci If SGIS_texture_lod is not supported, references to user-defined lod 3535bd8deadSopenharmony_ci clamping and ranges in this document are invalid and should be ignored. 3545bd8deadSopenharmony_ci 3555bd8deadSopenharmony_ciDependencies on SGIS_detail_texture 3565bd8deadSopenharmony_ci 3575bd8deadSopenharmony_ci If SGIS_detail_texture is not supported, references to detail texture 3585bd8deadSopenharmony_ci mapping in this document are invalid and should be ignored. 3595bd8deadSopenharmony_ci 3605bd8deadSopenharmony_ciDependencies on SGIS_sharpen_texture 3615bd8deadSopenharmony_ci 3625bd8deadSopenharmony_ci If SGIS_sharpen_texture is not supported, references to sharpen texture 3635bd8deadSopenharmony_ci mapping in this document are invalid and should be ignored. 3645bd8deadSopenharmony_ci 3655bd8deadSopenharmony_ciErrors 3665bd8deadSopenharmony_ci 3675bd8deadSopenharmony_ci INVALID_VALUE is generated if TexParameteriv, TexParameterfv, 3685bd8deadSopenharmony_ci parameter <pname> is TEXTURE_CLIPMAP_CENTER_SGIX, and either of the two 3695bd8deadSopenharmony_ci parameters <params> points to are negative. 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ci INVALID_VALUE is generated if TexParameteriv, TexParameterfv, 3725bd8deadSopenharmony_ci parameter <pname> is TEXTURE_CLIPMAP_OFFSET_SGIX, and either of the two 3735bd8deadSopenharmony_ci parameters <params> points to are negative. 3745bd8deadSopenharmony_ci 3755bd8deadSopenharmony_ci INVALID_VALUE is generated if TexParameteriv, TexParameterfv, 3765bd8deadSopenharmony_ci parameter <pname> is TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX, and any of the 3775bd8deadSopenharmony_ci three parameters <params> points to are negative. 3785bd8deadSopenharmony_ci 3795bd8deadSopenharmony_ci INVALID_VALUE is generated if TexParameteriv, TexParameterfv, 3805bd8deadSopenharmony_ci parameter <pname> is TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX, and the sum of 3815bd8deadSopenharmony_ci the clipmap level of detail offset and the clipmap depth is greater than 3825bd8deadSopenharmony_ci the virtual clipmap depth. 3835bd8deadSopenharmony_ci 3845bd8deadSopenharmony_ciNew State 3855bd8deadSopenharmony_ci 3865bd8deadSopenharmony_ci Initial 3875bd8deadSopenharmony_ci Get Value Get Command Type Value Attrib 3885bd8deadSopenharmony_ci --------- ----------- ---- ------- ------ 3895bd8deadSopenharmony_ci TEXTURE_CLIPMAP_FRAME_SGIX GetTexParameterf Z+ 0 texture 3905bd8deadSopenharmony_ci TEXTURE_CLIPMAP_CENTER_SGIX GetTexParameterfv 2 x Z+ 0,0 texture 3915bd8deadSopenharmony_ci TEXTURE_CLIPMAP_OFFSET_SGIX GetTexParameterfv 2 x Z+ 0,0 texture 3925bd8deadSopenharmony_ci TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX GetTexParameterfv 3 x Z+ 0,0,0 texture 3935bd8deadSopenharmony_ci 3945bd8deadSopenharmony_ci 3955bd8deadSopenharmony_ciNew Implementation Dependent State 3965bd8deadSopenharmony_ci 3975bd8deadSopenharmony_ci Minimum 3985bd8deadSopenharmony_ci Get Value Get Command Type Value 3995bd8deadSopenharmony_ci --------- ----------- ---- ------- 4005bd8deadSopenharmony_ci MAX_CLIPMAP_DEPTH_SGIX GetIntegerv Z+ 10 4015bd8deadSopenharmony_ci MAX_CLIPMAP_VIRTUAL_DEPTH_SGIX GetIntegerv Z+ 10 402