15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci SGIS_multitexture 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_SGIS_multitexture 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciVersion 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci $Date: 1998/10/15 00:54:19 $ $Revision: 1.20 $ 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNumber 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci 116 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciDependencies 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci OpenGL 1.1 is required 205bd8deadSopenharmony_ci EXT_texture3D affects the definition of this extension. 215bd8deadSopenharmony_ci SGIS_texture4D affects the definition of this extension. 225bd8deadSopenharmony_ci SGIS_texture_border_clamp affects the definition of this extension. 235bd8deadSopenharmony_ci SGI_texture_color_table affects the definition of this extension. 245bd8deadSopenharmony_ci SGIS_texture_edge_clamp affects the definition of this extension. 255bd8deadSopenharmony_ci SGIX_texture_add_env affects the definition of this extension. 265bd8deadSopenharmony_ci SGIS_texture_filter4 affects the definition of this extension. 275bd8deadSopenharmony_ci SGIS_texture_lod affects the definition of this extension. 285bd8deadSopenharmony_ci SGIX_texture_lod_bias affects the definition of this extension. 295bd8deadSopenharmony_ci SGIX_texture_scale_bias affects the definition of this extension. 305bd8deadSopenharmony_ci SGIS_texture_select affects the definition of this extension. 315bd8deadSopenharmony_ci SGIS_detail_texture affects the definition of this extension. 325bd8deadSopenharmony_ci SGIS_sharpen_texture affects the definition of this extension. 335bd8deadSopenharmony_ci SGIX_shadow affects the definition of this extension. 345bd8deadSopenharmony_ci SGIX_shadow_ambient affects the definition of this extension. 355bd8deadSopenharmony_ci SGIX_clipmap affects the definition of this extension. 365bd8deadSopenharmony_ci SGIS_point_line_texgen affects the definition of this extension. 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ciOverview 395bd8deadSopenharmony_ci 405bd8deadSopenharmony_ci This extension adds support for multiple active textures. The texture 415bd8deadSopenharmony_ci capabilities are symmetric for all active textures. Any texture capability 425bd8deadSopenharmony_ci extension supported for one texture must be supported for all active 435bd8deadSopenharmony_ci textures. Each active texture has its own state vector which includes 445bd8deadSopenharmony_ci texture image and filtering parameters and texture environment application. 455bd8deadSopenharmony_ci 465bd8deadSopenharmony_ci The texture environments are applied in a pipelined fashion whereby the 475bd8deadSopenharmony_ci output of one texture environment is used as the input fragment color for 485bd8deadSopenharmony_ci the texture environment for the next active texture. Changes to texture 495bd8deadSopenharmony_ci state other than texture coordinates are routed through a selector which 505bd8deadSopenharmony_ci controls which instance of texture state is affected. 515bd8deadSopenharmony_ci 525bd8deadSopenharmony_ci +-----+ 535bd8deadSopenharmony_ci Cf ----->| | +-----+ pipelined texture 545bd8deadSopenharmony_ci | TE0 |--->| | environment 555bd8deadSopenharmony_ci Ct0 ----->| | | TE1 | +-----+ 565bd8deadSopenharmony_ci +-----+ | |--->| | 575bd8deadSopenharmony_ci Ct1 ---------------->| | | TE2 | +-----+ 585bd8deadSopenharmony_ci +-----+ | |--->| | 595bd8deadSopenharmony_ci Ct2 --------------------------->| | | TE3 | 605bd8deadSopenharmony_ci +-----+ | |--> cf' 615bd8deadSopenharmony_ci Ct3 -------------------------------------->| | 625bd8deadSopenharmony_ci +-----+ 635bd8deadSopenharmony_ci . 645bd8deadSopenharmony_ci . 655bd8deadSopenharmony_ci . 665bd8deadSopenharmony_ci 675bd8deadSopenharmony_ci Ct<i> = texture color from texture lookup <i> 685bd8deadSopenharmony_ci Cf = fragment color 695bd8deadSopenharmony_ci TE = texture environment 705bd8deadSopenharmony_ci 715bd8deadSopenharmony_ci Texture coordinate set, texture coordinate evaluator state, texture 725bd8deadSopenharmony_ci generation function, and texture matrix are replicated independently of 735bd8deadSopenharmony_ci the texture rasterization state and may differ in number from the 745bd8deadSopenharmony_ci number of textures which can be active during rasterization. 755bd8deadSopenharmony_ci Post-transform texture coordinates sets are associated with a texture 765bd8deadSopenharmony_ci rasterization unit by binding them to a texture environment and they may 775bd8deadSopenharmony_ci be multicast to several texture rasterization units. 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ci The specification is written using four active textures and four 805bd8deadSopenharmony_ci sets of texture coordinates though the actual number supported is 815bd8deadSopenharmony_ci implementation dependent and can be larger or smaller than four. 825bd8deadSopenharmony_ci 835bd8deadSopenharmony_ciIssues 845bd8deadSopenharmony_ci 855bd8deadSopenharmony_ci * MultiTexCoord is an annoying name 865bd8deadSopenharmony_ci 875bd8deadSopenharmony_ci * alternatives for supplying fine grain texcoord 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ci 1. Tex<k>Coord<n><T>[v|f](<T> data); 905bd8deadSopenharmony_ci 915bd8deadSopenharmony_ci a. efficient, no error checking required 925bd8deadSopenharmony_ci d. adds *a lot* of new commands 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci 2. MultiTexCoord<n><T>[v|f](enum target, <T> data); 955bd8deadSopenharmony_ci 965bd8deadSopenharmony_ci a. only a small number of commands added 975bd8deadSopenharmony_ci a. can be fairly efficient (may need hw tweak) 985bd8deadSopenharmony_ci d. needs range checking for <target> 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci 3. reuse TexCoord command and add SelectTextureCoordSetSGIS(enum target) 1015bd8deadSopenharmony_ci to control routing 1025bd8deadSopenharmony_ci 1035bd8deadSopenharmony_ci a. only add one new commands 1045bd8deadSopenharmony_ci d. adds a lot of function call overhead when using multiple 1055bd8deadSopenharmony_ci textures 1065bd8deadSopenharmony_ci d. need to range check <target> 1075bd8deadSopenharmony_ci 1085bd8deadSopenharmony_ci * seems a little hacky to have SelectTextureSGIS control texture matrix 1095bd8deadSopenharmony_ci since that is part of transform state and to have it control evaluator 1105bd8deadSopenharmony_ci state yet SELECTED_TEXTURE itself is part of texture state. 1115bd8deadSopenharmony_ci 1125bd8deadSopenharmony_ci * SelectTextureSGIS probably should not affect client state such as 1135bd8deadSopenharmony_ci the vertex array state. 1145bd8deadSopenharmony_ci 1155bd8deadSopenharmony_ci it doesn't any more 1165bd8deadSopenharmony_ci 1175bd8deadSopenharmony_ci * mechanism to replicate input texcoords across multiple texture paths 1185bd8deadSopenharmony_ci could be done with a pre-transform multicast or post-transform 1195bd8deadSopenharmony_ci multicast. 1205bd8deadSopenharmony_ci 1215bd8deadSopenharmony_ci done using TEXTURE_ENV_COORD_SET_SGIS texture parameter 1225bd8deadSopenharmony_ci which is a post-transform mechanism. 1235bd8deadSopenharmony_ci 1245bd8deadSopenharmony_ci RESOLVED: leave the coord source binding separate from 1255bd8deadSopenharmony_ci the texture object state => needs a new command to set it. 1265bd8deadSopenharmony_ci 1275bd8deadSopenharmony_ci * need proxy/macro object to handle resource constraints 1285bd8deadSopenharmony_ci save for another extension? 1295bd8deadSopenharmony_ci 1305bd8deadSopenharmony_ci * still need a way to route textures to lighting block :( 1315bd8deadSopenharmony_ci 1325bd8deadSopenharmony_ci defined in light_texture.spec 1335bd8deadSopenharmony_ci 1345bd8deadSopenharmony_ci * should there be a post-filter colortable per texture? 1355bd8deadSopenharmony_ci 1365bd8deadSopenharmony_ci * should the number of textures and the number of texture 1375bd8deadSopenharmony_ci coordinate paths be decoupled? 1385bd8deadSopenharmony_ci RESOLVED: yes 1395bd8deadSopenharmony_ci There are some issues with this. We choose to break 1405bd8deadSopenharmony_ci texture state into 3 pieces: 1415bd8deadSopenharmony_ci 1. client state deal with issuing texture coordinates 1425bd8deadSopenharmony_ci from the application 1435bd8deadSopenharmony_ci 2. transform state which includes texgen, texture 1445bd8deadSopenharmony_ci matrix, evaluation maps, and texture coordinate 1455bd8deadSopenharmony_ci retrieval from Gets and Feedback. 1465bd8deadSopenharmony_ci 3. rasterization state which includes texture 1475bd8deadSopenharmony_ci images, filter parameters and environment. 1485bd8deadSopenharmony_ci 2 & 3 are both server state. there is an implication 1495bd8deadSopenharmony_ci that 1 and 2 are a little more tightly coupled and 1505bd8deadSopenharmony_ci equal in number but we need to keep the client 1515bd8deadSopenharmony_ci state separate. 1525bd8deadSopenharmony_ci There is some clumsyness with referring to the 2nd 1535bd8deadSopenharmony_ci group of state as transform state. There is a problem 1545bd8deadSopenharmony_ci that the texgen state is part of the texture state 1555bd8deadSopenharmony_ci used in PushAttrib and PopAttrib so some finessing 1565bd8deadSopenharmony_ci is required. 1575bd8deadSopenharmony_ci 1585bd8deadSopenharmony_ci * special treatment of name 0? 1595bd8deadSopenharmony_ci 1605bd8deadSopenharmony_ci RESOLVED: no 1615bd8deadSopenharmony_ci 1625bd8deadSopenharmony_ci * more texture environment functions, SUBTRACT, ...? 1635bd8deadSopenharmony_ci leading candidates are SUBTRACT and REVERSE_SUBTRACT 1645bd8deadSopenharmony_ci could also make a new version of environment which is 1655bd8deadSopenharmony_ci similar to blending. 1665bd8deadSopenharmony_ci 1675bd8deadSopenharmony_ci RESOLVED: new environment, see texture_env.spec 1685bd8deadSopenharmony_ci 1695bd8deadSopenharmony_ci * more general combination of texture results? 1705bd8deadSopenharmony_ci 1715bd8deadSopenharmony_ci RESOLVED: do them in add-on specs 1725bd8deadSopenharmony_ci 1735bd8deadSopenharmony_ci * allow texture environment computation to do something 1745bd8deadSopenharmony_ci even when texture is disabled. This contradicts the current 1755bd8deadSopenharmony_ci specification of texturing (the difference would show 1765bd8deadSopenharmony_ci up in the REPLACE environment), so we redefine this 1775bd8deadSopenharmony_ci behavior in a new environment (see texture_env.spec) 1785bd8deadSopenharmony_ci 1795bd8deadSopenharmony_ci * support for interleaved arrays 1805bd8deadSopenharmony_ci 1815bd8deadSopenharmony_ci add a command which acts as a multiplier on the current 1825bd8deadSopenharmony_ci interleaved array token causing the texture coordinate 1835bd8deadSopenharmony_ci array to have <n> contiguous texture coords of the same 1845bd8deadSopenharmony_ci type and format. 1855bd8deadSopenharmony_ci 1865bd8deadSopenharmony_ci * some clarifications: 1875bd8deadSopenharmony_ci 1885bd8deadSopenharmony_ci SelectTextureCoordSetSGIS affects client state only and 1895bd8deadSopenharmony_ci affects the commands TexCoord<n>{T}[v], TexCoordPointer, 1905bd8deadSopenharmony_ci EnableClientState, and DisableClientState. Display lists 1915bd8deadSopenharmony_ci contain texture coordinates for which the binding is fully 1925bd8deadSopenharmony_ci resolved to one of TEXTURE0_SGIS .. TEXTURE<n>_SGIS. 1935bd8deadSopenharmony_ci 1945bd8deadSopenharmony_ci I chose to remove MultiTexCoordPointerSGIS as it was difficult 1955bd8deadSopenharmony_ci to also include tokens which would make it possible to call 1965bd8deadSopenharmony_ci Enable/DisableClientState with a token corresponding to the 1975bd8deadSopenharmony_ci appropriate texture coordinate set, so SelectTextureCoordSetSGIS 1985bd8deadSopenharmony_ci is required to manipulate the array state. To maintain symmetry, 1995bd8deadSopenharmony_ci I made all commands use SelectTextureCoordSetSGIS and the 2005bd8deadSopenharmony_ci MultiTexCoord<n>{T}[v]SGIS commands are added to help with 2015bd8deadSopenharmony_ci performance. An alternative would be to have both 2025bd8deadSopenharmony_ci MultiTexCoordPointerSGIS and add new tokens 2035bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY0_SGIS .. TEXTURE_COORD_ARRAY<n>_SGIS and 2045bd8deadSopenharmony_ci not give TEXTURE_COORD_ARRAY0_SGIS the same value as 2055bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY, so that we can have the relationship 2065bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY<i>_SGIS = TEXTURE_COORD_ARRAY0_SGIS+i. 2075bd8deadSopenharmony_ci This still might cause some confusion/asymmetry if the <target> 2085bd8deadSopenharmony_ci parameter of MultiTexCoordPointerSGIS/MultiTexCoord<n>{T}[v]SGIS 2095bd8deadSopenharmony_ci is TEXTURE0_SGIS .. TEXTURE<n>_SGIS but EnableClientState/ 2105bd8deadSopenharmony_ci DisableClientState use TEXTURE_COORD_ARRAY0_SGIS .. 2115bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY<n>_SGIS 2125bd8deadSopenharmony_ci 2135bd8deadSopenharmony_ci 2145bd8deadSopenharmony_ci 2155bd8deadSopenharmony_ciNew Procedures and Functions 2165bd8deadSopenharmony_ci 2175bd8deadSopenharmony_ci void MultiTexCoord{1234}{sifd}SGIS(enum target, T coords); 2185bd8deadSopenharmony_ci void MultiTexCoord{1234}{sifd}vSGIS(enum target, T coords); 2195bd8deadSopenharmony_ci 2205bd8deadSopenharmony_ci void InterleavedTextureCoordSetsSGIS(int factor); 2215bd8deadSopenharmony_ci 2225bd8deadSopenharmony_ci void SelectTextureSGIS(enum target); 2235bd8deadSopenharmony_ci 2245bd8deadSopenharmony_ci void SelectTextureCoordSetSGIS(enum target); 2255bd8deadSopenharmony_ci 2265bd8deadSopenharmony_ci void SelectTextureTransformSGIS(enum target); 2275bd8deadSopenharmony_ci 2285bd8deadSopenharmony_ciNew Tokens 2295bd8deadSopenharmony_ci 2305bd8deadSopenharmony_ci Accepted by the <pname> parameters of GetBooleanv, GetIntegerv, 2315bd8deadSopenharmony_ci GetFloatv, and GetDoublev: 2325bd8deadSopenharmony_ci 2335bd8deadSopenharmony_ci SELECTED_TEXTURE_SGIS 0x83C0 2345bd8deadSopenharmony_ci SELECTED_TEXTURE_COORD_SET_SGIS 0x83C1 2355bd8deadSopenharmony_ci SELECTED_TEXTURE_TRANSFORM_SGIS 0x83C2 2365bd8deadSopenharmony_ci MAX_TEXTURES_SGIS 0x83C3 2375bd8deadSopenharmony_ci MAX_TEXTURE_COORD_SETS_SGIS 0x83C4 2385bd8deadSopenharmony_ci TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS 0x83C5 2395bd8deadSopenharmony_ci 2405bd8deadSopenharmony_ci Accepted by the <pname> parameter of TexEnvi, TexEnvf, 2415bd8deadSopenharmony_ci TexEnviv, TexEnvfv, GetTexEnviv, and GetTexEnvfv: 2425bd8deadSopenharmony_ci 2435bd8deadSopenharmony_ci TEXTURE_ENV_COORD_SET_SGIS 0x83C6 2445bd8deadSopenharmony_ci 2455bd8deadSopenharmony_ci Accepted by the <target> parameter of SelectTextureSGIS, 2465bd8deadSopenharmony_ci SelectTextureTransformSGIS, SelectTextureCoordSetSGIS, 2475bd8deadSopenharmony_ci MultiTexCoord<n>{T}[v]SGIS, and the <param> of TexParameteri and 2485bd8deadSopenharmony_ci TexParameterf, and the <params> parameter of TexParameteriv, and 2495bd8deadSopenharmony_ci TexParameterfv: 2505bd8deadSopenharmony_ci 2515bd8deadSopenharmony_ci TEXTURE0_SGIS 0x83C7 2525bd8deadSopenharmony_ci TEXTURE1_SGIS 0x83C8 2535bd8deadSopenharmony_ci TEXTURE2_SGIS 0x83C9 2545bd8deadSopenharmony_ci TEXTURE3_SGIS 0x83CA 2555bd8deadSopenharmony_ci <reserve enums for 32> 2565bd8deadSopenharmony_ci 2575bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.1 Specification (OpenGL Operation) 2585bd8deadSopenharmony_ci 2595bd8deadSopenharmony_ci Section 2.6 Begin/End Paradigm 2605bd8deadSopenharmony_ci 2615bd8deadSopenharmony_ci <amend paragraph 2 & 3> 2625bd8deadSopenharmony_ci 2635bd8deadSopenharmony_ci Each vertex is specified with two, three, or four coordinates. In 2645bd8deadSopenharmony_ci addition, a current normal, current texture coordinate set, and current 2655bd8deadSopenharmony_ci color may be used in processing each vertex. Normals are used by the GL in 2665bd8deadSopenharmony_ci lighting calculations; the current normal is a three-dimensional vector 2675bd8deadSopenharmony_ci that may be set by sending three coordinates that specify it. Texture 2685bd8deadSopenharmony_ci coordinates determine how a texture image is mapped onto a primitive. 2695bd8deadSopenharmony_ci Multiple sets of texture coordinates may be used to specify how multiple 2705bd8deadSopenharmony_ci texture images are mapped onto a primitive. The number of texture 2715bd8deadSopenharmony_ci coordinate sets supported is implementation dependent but must be at least 2725bd8deadSopenharmony_ci one. 2735bd8deadSopenharmony_ci 2745bd8deadSopenharmony_ci A color is associated with each vertex as it is specified. This associated 2755bd8deadSopenharmony_ci color is either the current color or a color produced by lighting 2765bd8deadSopenharmony_ci depending on whether or not lighting is enabled. Texture coordinates are 2775bd8deadSopenharmony_ci similarly associated with each vertex. Multiple sets of texture coordinates 2785bd8deadSopenharmony_ci may be associated with a vertex. Figure 2.2 summarizes the association of 2795bd8deadSopenharmony_ci auxiliary data with a transformed vertex to produce a processed vertex. 2805bd8deadSopenharmony_ci 2815bd8deadSopenharmony_ci <amend figure 2.2 to include multiple texcoord processing blocks 2825bd8deadSopenharmony_ci (current texcoords, texgen, texture matrix)> 2835bd8deadSopenharmony_ci 2845bd8deadSopenharmony_ci <amend paragraph 6> 2855bd8deadSopenharmony_ci Before a color has been assigned to a vertex, the state required by a vertex 2865bd8deadSopenharmony_ci is the vertex's coordinates, the current normal, and the current texture 2875bd8deadSopenharmony_ci coordinate sets. Once color has been assigned, however, the current normal 2885bd8deadSopenharmony_ci is no longer needed. Because color assignment is done vertex-by-vertex, a 2895bd8deadSopenharmony_ci processed vertex comprises the vertex's coordinates, its assigned color, 2905bd8deadSopenharmony_ci and its texture coordinate sets. 2915bd8deadSopenharmony_ci 2925bd8deadSopenharmony_ci 2935bd8deadSopenharmony_ci 2945bd8deadSopenharmony_ci Section 2.7 Vertex Specifications <texture coordinates> 2955bd8deadSopenharmony_ci 2965bd8deadSopenharmony_ci <amend paragraph 2> 2975bd8deadSopenharmony_ci 2985bd8deadSopenharmony_ci Current values are used in associating auxiliary data with a vertex 2995bd8deadSopenharmony_ci as described in section 2.6. A current value may be changed at any time 3005bd8deadSopenharmony_ci by issuing an appropriate command. The commands 3015bd8deadSopenharmony_ci 3025bd8deadSopenharmony_ci void TexCoord{1234}{sifd}(T coords); 3035bd8deadSopenharmony_ci void TexCoord{1234}{sifd}v(T coords); 3045bd8deadSopenharmony_ci 3055bd8deadSopenharmony_ci specify the current homogeneous texture coordinates, named s,t,r, and q. 3065bd8deadSopenharmony_ci The TexCoord1 family of commands set the s coordinate to the provided 3075bd8deadSopenharmony_ci single argument while setting t and r to 0 and q to 1. Similarly, 3085bd8deadSopenharmony_ci TexCoord2 sets s and t to the specified values, r to 0, and q to 1; 3095bd8deadSopenharmony_ci TexCoord3 sets s, t, and r, with q set to 1, and TexCoord4 sets all four 3105bd8deadSopenharmony_ci texture coordinates. 3115bd8deadSopenharmony_ci 3125bd8deadSopenharmony_ci Implementations may support more than 1 set of texture 3135bd8deadSopenharmony_ci coordinates. The MultiTexCoord family of commands takes the 3145bd8deadSopenharmony_ci coordinate set to be modified as the <target> parameter. The 3155bd8deadSopenharmony_ci <target> parameter is one of TEXTURE0_SGIS through 3165bd8deadSopenharmony_ci TEXTURE3_SGIS. If a <target> parameter greater than the number of 3175bd8deadSopenharmony_ci supported coordinate sets is specified, the command has no effect. 3185bd8deadSopenharmony_ci The command 3195bd8deadSopenharmony_ci 3205bd8deadSopenharmony_ci void SelectTextureCoordSetSGIS(enum target); 3215bd8deadSopenharmony_ci 3225bd8deadSopenharmony_ci is used to change the texture coordinate set modified by the TexCoord* 3235bd8deadSopenharmony_ci family of commands. <target> is one of TEXTURE0_SGIS through TEXTURE3_SGIS 3245bd8deadSopenharmony_ci corresponding to the texture coordinate set to be modified by the TexCoord 3255bd8deadSopenharmony_ci commands. The current coordinate set selection is part of client state rather 3265bd8deadSopenharmony_ci than server state. 3275bd8deadSopenharmony_ci 3285bd8deadSopenharmony_ci 3295bd8deadSopenharmony_ci Section 2.8 Vertex Arrays 3305bd8deadSopenharmony_ci 3315bd8deadSopenharmony_ci <amend paragraph 1> 3325bd8deadSopenharmony_ci 3335bd8deadSopenharmony_ci The vertex specification commands in section 2.7 accept data in almost any 3345bd8deadSopenharmony_ci format, but their use requires many command executions to specify even 3355bd8deadSopenharmony_ci simple geometry. Vertex data may also be placed in arrays that are stored 3365bd8deadSopenharmony_ci in the client's address space. Blocks of data in these arrays may be used 3375bd8deadSopenharmony_ci to specify multiple geometric primitives through the execution of a single 3385bd8deadSopenharmony_ci GL command. The client may specify 6 or more arrays at once: one each to 3395bd8deadSopenharmony_ci store vertex coordinates, edge flags, colors, color indices, normals and 3405bd8deadSopenharmony_ci one or more texture coordinate sets. The commands 3415bd8deadSopenharmony_ci 3425bd8deadSopenharmony_ci void EdgeFlagPointer(sizei stride, void *pointer); 3435bd8deadSopenharmony_ci void VertexPointer(int size, enum type, sizei stride, void *pointer); 3445bd8deadSopenharmony_ci void ColorPointer(int size, enum type, sizei stride, void *pointer); 3455bd8deadSopenharmony_ci void IndexPointer(enum type, sizei stride, void *pointer); 3465bd8deadSopenharmony_ci void NormalPointer(enum type, sizei stride, void *pointer); 3475bd8deadSopenharmony_ci void TexCoordPointer(int size, enum type, sizei stride, void *pointer); 3485bd8deadSopenharmony_ci 3495bd8deadSopenharmony_ci ... 3505bd8deadSopenharmony_ci 3515bd8deadSopenharmony_ci <insert this paragraph> between paragraph 2 & 3> 3525bd8deadSopenharmony_ci 3535bd8deadSopenharmony_ci In implementations which support more than one set of texture coordinates, 3545bd8deadSopenharmony_ci the command SelectTextureCoordSetSGIS is used to select the vertex array 3555bd8deadSopenharmony_ci parameters to be modified by the TexCoordPointer command and the array 3565bd8deadSopenharmony_ci affected by client state enable and disable commands with the 3575bd8deadSopenharmony_ci TEXTURE_COORD_ARRAY parameter. 3585bd8deadSopenharmony_ci 3595bd8deadSopenharmony_ci <modify the section on interleaved arrays as follows> 3605bd8deadSopenharmony_ci 3615bd8deadSopenharmony_ci The commands 3625bd8deadSopenharmony_ci 3635bd8deadSopenharmony_ci void InterleavedArrays(enum format, sizei stride, 3645bd8deadSopenharmony_ci void *pointer) ; 3655bd8deadSopenharmony_ci 3665bd8deadSopenharmony_ci void InterleavedTextureCoordSetsSGIS(int factor) ; 3675bd8deadSopenharmony_ci 3685bd8deadSopenharmony_ci efficiently initializes the six arrays and their enables to one of 14 3695bd8deadSopenharmony_ci configurations. <format> must be one 14 symbolic constants: V2F, V3F, 3705bd8deadSopenharmony_ci C4UB_V2F, C4UB_V3F, C3F_V3F, N3F_V3F, C4F_N3F_V3F, T2F_V3F, T4F_V4F, 3715bd8deadSopenharmony_ci T2F_C4UB_V3F, T2F_C3F_V3F, T2F_N3F_V3F, T2F_C4F_N3F_V3F, T4F_C4F_N3F_V4F. 3725bd8deadSopenharmony_ci <factor> is an integer between 1 and SELECTED_TEXTURE_COORD_SET_SGIS 3735bd8deadSopenharmony_ci and specifies how many texture coordinate sets are enabled as part 3745bd8deadSopenharmony_ci of the InterleavedArrays command. 3755bd8deadSopenharmony_ci 3765bd8deadSopenharmony_ci The effect of 3775bd8deadSopenharmony_ci 3785bd8deadSopenharmony_ci InterleavedArrays(format, stride, pointer); 3795bd8deadSopenharmony_ci InterleavedTextureCoordSetsSGIS(factor); 3805bd8deadSopenharmony_ci 3815bd8deadSopenharmony_ci is the same as the effect of the command sequence 3825bd8deadSopenharmony_ci 3835bd8deadSopenharmony_ci <copy command sequence from 1.1 spec, but change the part dealing 3845bd8deadSopenharmony_ci with texture coords to> 3855bd8deadSopenharmony_ci 3865bd8deadSopenharmony_ci GetIntegerv(SELECTED_TEXTURE_COORD_SET_SGIS, &x); 3875bd8deadSopenharmony_ci if (<et>) { 3885bd8deadSopenharmony_ci for(i = 0; i < factor; i++) { 3895bd8deadSopenharmony_ci SelectTextureCoordSetSGIS(TEXTURE0_SGIS+i); 3905bd8deadSopenharmony_ci EnableClientState(TEXTURE_COORD_ARRAY); 3915bd8deadSopenharmony_ci TexCoordPointer(st, FLOAT, str, <pointer>+i*pc); 3925bd8deadSopenharmony_ci } 3935bd8deadSopenharmony_ci for(i = factor; i < MAX_TEXTURE_COORD_SETS_SGIS; i++) { 3945bd8deadSopenharmony_ci SelectTextureCoordSetSGIS(TEXTURE0_SGIS+i); 3955bd8deadSopenharmony_ci DisableClientState(TEXTURE_COORD_ARRAY); 3965bd8deadSopenharmony_ci } 3975bd8deadSopenharmony_ci } else { 3985bd8deadSopenharmony_ci for(i = 0; i < MAX_TEXTURE_COORD_SETS_SGIS; i++) { 3995bd8deadSopenharmony_ci SelectTextureCoordSetSGIS(TEXTURE0_SGIS+i); 4005bd8deadSopenharmony_ci DisableClientState(TEXTURE_COORD_ARRAY); 4015bd8deadSopenharmony_ci } 4025bd8deadSopenharmony_ci } 4035bd8deadSopenharmony_ci SelectTextureCoordSetSGIS(x); 4045bd8deadSopenharmony_ci pc *= factor; 4055bd8deadSopenharmony_ci 4065bd8deadSopenharmony_ci 4075bd8deadSopenharmony_ci If the number of supported is texture coordinate sets, 4085bd8deadSopenharmony_ci MAX_TEXTURE_COORD_SETS_SGIS, is <k>, then the client state require to 4095bd8deadSopenharmony_ci implement vertex arrays consists of five plus <k> boolean values, five 4105bd8deadSopenharmony_ci plus <k> integer stride values, four plus <k> constants representing array 4115bd8deadSopenharmony_ci types, and three plus <k> integers representing values per element. In the 4125bd8deadSopenharmony_ci initial state, the boolean values are each disabled, the memory pointers 4135bd8deadSopenharmony_ci are each null, the strides are each zero, the array types are each FLOAT, 4145bd8deadSopenharmony_ci and the integers representing values per element are each four. 4155bd8deadSopenharmony_ci 4165bd8deadSopenharmony_ci 4175bd8deadSopenharmony_ci Section 2.10.2 Matrices 4185bd8deadSopenharmony_ci 4195bd8deadSopenharmony_ci <amend paragraph 8 texture matrix> 4205bd8deadSopenharmony_ci 4215bd8deadSopenharmony_ci There is another 4x4 matrix that is applied to texture coordinates. 4225bd8deadSopenharmony_ci This matrix is applied as 4235bd8deadSopenharmony_ci 4245bd8deadSopenharmony_ci | m1 m5 m9 m13 | |s| 4255bd8deadSopenharmony_ci | m2 m6 m10 m14 | |t| , 4265bd8deadSopenharmony_ci | m3 m7 m11 m15 | |r| 4275bd8deadSopenharmony_ci | m4 m8 m12 m16 | |q| 4285bd8deadSopenharmony_ci 4295bd8deadSopenharmony_ci where the left matrix is the current texture matrix. The Matrix is applied 4305bd8deadSopenharmony_ci to the coordinates resulting from texture coordinate generation which 4315bd8deadSopenharmony_ci (which may simply be the current texture coordinates), and the resulting 4325bd8deadSopenharmony_ci transformed coordinates become the texture coordinates associated with a 4335bd8deadSopenharmony_ci vertex. Setting the matrix mode to TEXTURE causes the already described 4345bd8deadSopenharmony_ci matrix operations to apply to the texture matrix stack. 4355bd8deadSopenharmony_ci 4365bd8deadSopenharmony_ci For implementations which support more than one set of texture coordinates, 4375bd8deadSopenharmony_ci there is a corresponding texture matrix stack for each coordinate set. Each 4385bd8deadSopenharmony_ci stack has the same depth. The texture matrix stack which is affected by the 4395bd8deadSopenharmony_ci matrix operations is set using the SelectTextureTransformSGIS command. 4405bd8deadSopenharmony_ci 4415bd8deadSopenharmony_ci There is a stack of matrices for each of the matrix modes. For MODELVIEW 4425bd8deadSopenharmony_ci mode, the stack depth is at least 32 (that is, there is a stack of at least 4435bd8deadSopenharmony_ci 32 model-view matrices). For other modes, the depth is at least 2. Texture 4445bd8deadSopenharmony_ci matrix stacks for all texture coordinate sets have the same depth. 4455bd8deadSopenharmony_ci 4465bd8deadSopenharmony_ci void PushMatrix( void ); 4475bd8deadSopenharmony_ci 4485bd8deadSopenharmony_ci pushes the stack down by one, duplicating the current matrix in both the 4495bd8deadSopenharmony_ci top of the stack and the entry below it. 4505bd8deadSopenharmony_ci 4515bd8deadSopenharmony_ci void PopMatrix( void ); 4525bd8deadSopenharmony_ci 4535bd8deadSopenharmony_ci pops the top entry off of the stack, replacing the current matrix with the 4545bd8deadSopenharmony_ci matrix that was the second entry in the stack. The pushing or popping 4555bd8deadSopenharmony_ci takes place on the stack corresponding to the current matrix mode. Popping 4565bd8deadSopenharmony_ci a matrix off a stack with only one entry generates the error STACK_UNDERFLOW; 4575bd8deadSopenharmony_ci pushing a matrix onto a full stack generates STACK_OVERFLOW. 4585bd8deadSopenharmony_ci 4595bd8deadSopenharmony_ci When the current matrix mode is TEXTURE, the texture matrix stack corresponding 4605bd8deadSopenharmony_ci to the currently selected textured is pushed or popped. 4615bd8deadSopenharmony_ci 4625bd8deadSopenharmony_ci The state required to implement transformations consists of a three-value 4635bd8deadSopenharmony_ci integer indicating the current matrix mode, a stack of at least two 4x4 4645bd8deadSopenharmony_ci matrices for PROJECTION and one stack of at least two 4x4 matrices for 4655bd8deadSopenharmony_ci each set of texture coordinates, TEXTURE, as well as associated stack pointers, 4665bd8deadSopenharmony_ci and a stack of at least 32 4x4 matrices with an associated stack pointer for 4675bd8deadSopenharmony_ci MODELVIEW. Initially, there is only one matrix on each stack and all 4685bd8deadSopenharmony_ci matrices are set to the identity. The initial matrix mode is MODELVIEW. 4695bd8deadSopenharmony_ci 4705bd8deadSopenharmony_ci Section 2.10.4 Generating texture coordinates 4715bd8deadSopenharmony_ci 4725bd8deadSopenharmony_ci <amend paragraph 4> 4735bd8deadSopenharmony_ci 4745bd8deadSopenharmony_ci The state required for texture coordinate generation for each set of 4755bd8deadSopenharmony_ci texture coordinates supported by the implementation comprises a 4765bd8deadSopenharmony_ci three-valued integer for each coordinate indicating coordinate generation 4775bd8deadSopenharmony_ci mode, and a bit for each coordinate to indicate whether texture coordinate 4785bd8deadSopenharmony_ci generation is enabled or disabled. In addition, four coefficients are 4795bd8deadSopenharmony_ci required for the four coordinates for each of EYE_LINEAR and 4805bd8deadSopenharmony_ci OBJECT_LINEAR. The initial state has the texture generation function 4815bd8deadSopenharmony_ci disabled for all texture coordinates. The initial values of p_i for s 4825bd8deadSopenharmony_ci except p_1 which is one; for t all the p_i are zero except p_2, which is 4835bd8deadSopenharmony_ci 1. The values of p_i for r and q are all zero. These values of p_i apply 4845bd8deadSopenharmony_ci for both the EYE_LINEAR and OBJECT_LINEAR versions. Initially all texture 4855bd8deadSopenharmony_ci generation modes are EYE_LINEAR. 4865bd8deadSopenharmony_ci 4875bd8deadSopenharmony_ci Section 2.12 Current Raster Position 4885bd8deadSopenharmony_ci 4895bd8deadSopenharmony_ci <amend paragraph 2> 4905bd8deadSopenharmony_ci 4915bd8deadSopenharmony_ci The current raster position consists of three window coordinates x_w, 4925bd8deadSopenharmony_ci y_w, and z_w, a clip coordinate w_c value, and eye coordinate distance, 4935bd8deadSopenharmony_ci a valid bit, and associated data consisting op a color and texture 4945bd8deadSopenharmony_ci coordinate sets. It is set using one of the RasterPos commands: 4955bd8deadSopenharmony_ci ... 4965bd8deadSopenharmony_ci 4975bd8deadSopenharmony_ci <amend paragraph 5> 4985bd8deadSopenharmony_ci 4995bd8deadSopenharmony_ci The current raster position requires five single-precision floating-point 5005bd8deadSopenharmony_ci values for its x_w, y_w, and z_w window coordinates, its w_c clip 5015bd8deadSopenharmony_ci coordinate, and its eye coordinate distance, a single valid bit, a color 5025bd8deadSopenharmony_ci (RGBA and color index), and texture coordinates for each set of texture 5035bd8deadSopenharmony_ci coordinates supported by the implementation. In the initial state, the 5045bd8deadSopenharmony_ci coordinates and texture coordinates and both (0,0,0,1), the eye coordinate 5055bd8deadSopenharmony_ci distance is 0, the valid bit is set, the associated RGBA color is (1,1,1,1) 5065bd8deadSopenharmony_ci and the associated color index is 1. In RGBA mode, the associated color 5075bd8deadSopenharmony_ci index always has its initial value; in color index mode, the RGBA color 5085bd8deadSopenharmony_ci always maintains its initial value. 5095bd8deadSopenharmony_ci 5105bd8deadSopenharmony_ci 5115bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.1 Specification (Rasterization) 5125bd8deadSopenharmony_ci 5135bd8deadSopenharmony_ci Section 3.8 Texturing 5145bd8deadSopenharmony_ci 5155bd8deadSopenharmony_ci <amend paragraphs 1 & 2> 5165bd8deadSopenharmony_ci 5175bd8deadSopenharmony_ci Texturing maps a portion of one or more specified images onto each 5185bd8deadSopenharmony_ci primitive for which texturing is enabled. This mapping is accomplished by 5195bd8deadSopenharmony_ci using the color of an image at the location indicated by a fragment's 5205bd8deadSopenharmony_ci (s,t,r) coordinates to modify the fragment's RGBA color (r is currently 5215bd8deadSopenharmony_ci ignored). An implementation may support texturing using more than one 5225bd8deadSopenharmony_ci image at a time. In this case the fragment carries multiple sets of 5235bd8deadSopenharmony_ci texture coordinates (s,t,r) which are used to index separate images to 5245bd8deadSopenharmony_ci produce color values which are collectively used to modify the fragment's 5255bd8deadSopenharmony_ci RGBA color. Texturing is specified only for RGBA mode; its use in color 5265bd8deadSopenharmony_ci index mode is undefined. The following subsections (up to and including 5275bd8deadSopenharmony_ci Section 3.8.5) specify the GL operation with a single texture and Section 5285bd8deadSopenharmony_ci 3.8.6 specifies the details of how multiple textures interact. 5295bd8deadSopenharmony_ci 5305bd8deadSopenharmony_ci The GL provides a means to specify the details of how texturing of a 5315bd8deadSopenharmony_ci primitive is effected. These details include specifications of the image to 5325bd8deadSopenharmony_ci be texture mapped, the means by which the image is filtered when applied to 5335bd8deadSopenharmony_ci the primitive, and the function that determines what RGBA value is produced 5345bd8deadSopenharmony_ci given a fragment color and an image value. 5355bd8deadSopenharmony_ci 5365bd8deadSopenharmony_ci 5375bd8deadSopenharmony_ci Section 3.8.4 Texture Objects 5385bd8deadSopenharmony_ci 5395bd8deadSopenharmony_ci <add this paragraph to the end of the section> 5405bd8deadSopenharmony_ci 5415bd8deadSopenharmony_ci The texture object name space is shared amongst all textures in multiple 5425bd8deadSopenharmony_ci texture implementations. A texture object may be bound to more than one 5435bd8deadSopenharmony_ci texture target simultaneously, though they must all be of the same type 5445bd8deadSopenharmony_ci (e.g., TEXTURE_1D, TEXTURE_2D). After a texture object is bound, any GL 5455bd8deadSopenharmony_ci operations on that target also affect any other target to which the same 5465bd8deadSopenharmony_ci texture object is bound. 5475bd8deadSopenharmony_ci 5485bd8deadSopenharmony_ci 5495bd8deadSopenharmony_ci Section 3.8.5 Texture Environments and Texture Functions 5505bd8deadSopenharmony_ci 5515bd8deadSopenharmony_ci <amend the second half of paragraph 1> 5525bd8deadSopenharmony_ci The possible environment parameters are TEXTURE_ENV_MODE, 5535bd8deadSopenharmony_ci TEXTURE_ENV_COLOR, and TEXTURE_ENV_COORD_SET_SGIS. TEXTURE_ENV_MODE may be 5545bd8deadSopenharmony_ci set to one of REPLACE, MODULATE, DECAL, or BLEND; TEXTURE_ENV_COLOR is set 5555bd8deadSopenharmony_ci to an RGBA color by providing four single-precision floating-point values 5565bd8deadSopenharmony_ci in the range [0,1](values outside this range are clamped to it). If 5575bd8deadSopenharmony_ci integers are provided for TEXTURE_ENV_COLOR, then they are converted to 5585bd8deadSopenharmony_ci floating-point as specified in Table 2.6 for signed integers. 5595bd8deadSopenharmony_ci TEXTURE_ENV_COORD_SET_SGIS may be set to one of TEXTURE0_SGIS .. 5605bd8deadSopenharmony_ci TEXTURE<n>_SGIS where <n> is one less than the number of supported 5615bd8deadSopenharmony_ci texture coordinate sets. If a floating-point value is provided, then it 5625bd8deadSopenharmony_ci is rounded to the nearest integer. 5635bd8deadSopenharmony_ci 5645bd8deadSopenharmony_ci <insert before paragraph 3> 5655bd8deadSopenharmony_ci 5665bd8deadSopenharmony_ci The value of TEXTURE_ENV_COORD_SET_SGIS specifies which set of fragment 5675bd8deadSopenharmony_ci texture coordinates are used to determine the texture value used in 5685bd8deadSopenharmony_ci the texture function. The same set of texture coordinates may 5695bd8deadSopenharmony_ci be simultaneously used by multiple textures. 5705bd8deadSopenharmony_ci 5715bd8deadSopenharmony_ci <replace paragraph 3> 5725bd8deadSopenharmony_ci 5735bd8deadSopenharmony_ci The state required for the current texture environment consists of the 5745bd8deadSopenharmony_ci four-valued integer indicating the texture function, four floating- 5755bd8deadSopenharmony_ci point TEXTURE_ENV_COLOR values, and one MAX_TEXTURE_COORD_SETS_SGIS-valued 5765bd8deadSopenharmony_ci integer indicating the texture coordinate set binding. In the initial 5775bd8deadSopenharmony_ci state, the texture function is given by MODULATE, TEXTURE_ENV_COLOR is 5785bd8deadSopenharmony_ci (0,0,0,0), and texture coordinate set is TEXTURE0_SGIS. 5795bd8deadSopenharmony_ci 5805bd8deadSopenharmony_ci 5815bd8deadSopenharmony_ci Section 3.8.6 Texture Application <replace with this> 5825bd8deadSopenharmony_ci 5835bd8deadSopenharmony_ci Texturing is enabled or disabled using the generic Enable and Disable 5845bd8deadSopenharmony_ci commands, respectively, with the symbolic constant TEXTURE_1D or TEXTURE_2D 5855bd8deadSopenharmony_ci to enable the one-dimensional or two-dimensional texture, respectively. If 5865bd8deadSopenharmony_ci both the one- and two-dimensional textures are enabled, the two-dimensional 5875bd8deadSopenharmony_ci texture is used. If all texturing is disabled, a rasterized fragment is 5885bd8deadSopenharmony_ci passed unaltered to the next stage of the GL (although its texture 5895bd8deadSopenharmony_ci coordinates may be discarded). Otherwise, a texture value is found 5905bd8deadSopenharmony_ci according to the parameter values of the currently bound texture image of 5915bd8deadSopenharmony_ci the appropriate dimensionality using the rules given in sections 3.8.1 and 5925bd8deadSopenharmony_ci 3.8.2. This texture value is used along with the incoming fragment in 5935bd8deadSopenharmony_ci computing the texture function indicated by the currently bound texture 5945bd8deadSopenharmony_ci environment. The result of this function replaces the incoming fragment's 5955bd8deadSopenharmony_ci R, G, B, and A values. These are the color values passed to subsequent 5965bd8deadSopenharmony_ci operations. Other data associated with the incoming fragment remain 5975bd8deadSopenharmony_ci unchanged, except that the texture coordinates may be discarded. 5985bd8deadSopenharmony_ci 5995bd8deadSopenharmony_ci When multiple textures are supported, additional textures are each paired 6005bd8deadSopenharmony_ci with an environment function. The second texture function is computed 6015bd8deadSopenharmony_ci using the texture value from the second texture, the fragment resulting 6025bd8deadSopenharmony_ci from the first texture function computation and the environment function 6035bd8deadSopenharmony_ci currently bound to the second texture. If there is a third texture, the 6045bd8deadSopenharmony_ci fragment resulting from the second texture function is combined with the 6055bd8deadSopenharmony_ci third texture value using the environment function bound to the third 6065bd8deadSopenharmony_ci texture and so on. Texturing is enabled and disabled individually for each 6075bd8deadSopenharmony_ci texture. If texturing is disabled for one of the textures, then the 6085bd8deadSopenharmony_ci fragment result from the previous stage is passed unaltered to the next 6095bd8deadSopenharmony_ci stage. 6105bd8deadSopenharmony_ci 6115bd8deadSopenharmony_ci 6125bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.1 Specification (Per-Fragment Operations 6135bd8deadSopenharmony_ciand the Framebuffer) 6145bd8deadSopenharmony_ci 6155bd8deadSopenharmony_ci 6165bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.1 Specification (Special Functions) 6175bd8deadSopenharmony_ci 6185bd8deadSopenharmony_ci Section 5.1 Evaluators 6195bd8deadSopenharmony_ci 6205bd8deadSopenharmony_ci <amend second part of paragraph 2 to indicate that the evaluator 6215bd8deadSopenharmony_ci map modified is affected by SELECTED_TEXTURE_TRANSFORM_SGIS when the 6225bd8deadSopenharmony_ci the type parameter is one of the texture coordinates.> 6235bd8deadSopenharmony_ci 6245bd8deadSopenharmony_ci <amend paragraph 7> 6255bd8deadSopenharmony_ci 6265bd8deadSopenharmony_ci The evaluation of a defined map is enabled or disabled with Enable and 6275bd8deadSopenharmony_ci Disable using the constant corresponding to the map as described 6285bd8deadSopenharmony_ci above. In implementations which support multiple texture coordinates the 6295bd8deadSopenharmony_ci affected texture evaluator map is further qualified by the value of 6305bd8deadSopenharmony_ci SELECTED_TEXTURE_TRANSFORM_SGIS. The error INVALID_VALUE results if 6315bd8deadSopenharmony_ci either ustride or vstride is less than k, or if u1 is equal to u2, or 6325bd8deadSopenharmony_ci if v1 is equal to v2. 6335bd8deadSopenharmony_ci 6345bd8deadSopenharmony_ci 6355bd8deadSopenharmony_ci Section 5.3 Feedback 6365bd8deadSopenharmony_ci 6375bd8deadSopenharmony_ci <amend bottom of paragraph 2> 6385bd8deadSopenharmony_ci 6395bd8deadSopenharmony_ci The texture coordinates and colors returned are these resulting from the 6405bd8deadSopenharmony_ci clipping operations described in (section 2.13.8). Only one set of texture 6415bd8deadSopenharmony_ci coordinates is returned even for implementations which support multiple 6425bd8deadSopenharmony_ci texture coordinates. The texture coordinate set returned is the the one 6435bd8deadSopenharmony_ci corresponding to the value of SELECTED_TEXTURE_TRANSFORM_SGIS. 6445bd8deadSopenharmony_ci 6455bd8deadSopenharmony_ci 6465bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.1 Specification (State and State Requests) 6475bd8deadSopenharmony_ci 6485bd8deadSopenharmony_ci <add this paragraph after paragraph 14 regarding multi-valued state variables> 6495bd8deadSopenharmony_ci 6505bd8deadSopenharmony_ci When multiple textures are supported, most texture state variables are 6515bd8deadSopenharmony_ci further qualified by the value of SELECTED_TEXTURE_TRANSFORM_SGIS or 6525bd8deadSopenharmony_ci SELECTED_TEXTURE_SGIS to determine which server texture state vector is 6535bd8deadSopenharmony_ci queried. Client texture state variables such as texture coordinate 6545bd8deadSopenharmony_ci array pointers are qualified with SELECTED_TEXTURE_COORD_SET_SGIS. 6555bd8deadSopenharmony_ci Tables 6.5 through 6.22 indicate those state variables which are 6565bd8deadSopenharmony_ci qualified by SELECTED_TEXTURE_TRANSFORM_SGIS, SELECTED_TEXTURE_SGIS or 6575bd8deadSopenharmony_ci SELECTED_TEXTURE_COORD_SET_SGIS during state queries. 6585bd8deadSopenharmony_ci 6595bd8deadSopenharmony_ci <add this paragraph after paragraph 16 regarding the TEXTURE_BIT> 6605bd8deadSopenharmony_ci 6615bd8deadSopenharmony_ci When multiple textures are supported, operations on groups containing 6625bd8deadSopenharmony_ci replicated texture state push or pop all versions of texture state 6635bd8deadSopenharmony_ci within that group. When server state for a group is pushed all state 6645bd8deadSopenharmony_ci in the group corresponding to TEXTURE0_SGIS is pushed first, followed by 6655bd8deadSopenharmony_ci state corresponding to TEXTURE1_SGIS, and so on up to and including the 6665bd8deadSopenharmony_ci state corresponding to TEXTURE<n>_SGIS where <n> is the value of 6675bd8deadSopenharmony_ci max{MAX_TEXTURES_SGIS, MAX_TEXTURE_COORD_SETS_SGIS}. If state does 6685bd8deadSopenharmony_ci not exist for an attribute (this can occur when MAX_TEXTURES_SGIS is 6695bd8deadSopenharmony_ci not equal to MAX_TEXTURE_COORD_SETS_SGIS) then it is ignored. 6705bd8deadSopenharmony_ci When server state for a group is popped the replicated texture state is 6715bd8deadSopenharmony_ci restored in the opposite order that it was pushed, starting with state 6725bd8deadSopenharmony_ci corresponding to TEXTURE<n>_SGIS and ending with TEXTURE0_SGIS. 6735bd8deadSopenharmony_ci Identical rules are observed for client texture state push and pop 6745bd8deadSopenharmony_ci operations. 6755bd8deadSopenharmony_ci 6765bd8deadSopenharmony_ci <rename vertex_array attribute group to vertex> 6775bd8deadSopenharmony_ci 6785bd8deadSopenharmony_ci 6795bd8deadSopenharmony_ciAdditions to the GLX Specification 6805bd8deadSopenharmony_ci 6815bd8deadSopenharmony_ci None 6825bd8deadSopenharmony_ci 6835bd8deadSopenharmony_ciGLX Protocol 6845bd8deadSopenharmony_ci 6855bd8deadSopenharmony_ci TBD 6865bd8deadSopenharmony_ci 6875bd8deadSopenharmony_ciDependencies on EXT_texture3D 6885bd8deadSopenharmony_ci 6895bd8deadSopenharmony_ci If EXT_texture3D is not supported than the functionality and state 6905bd8deadSopenharmony_ci associated with EXT_texture3D does not exist and is therefore not 6915bd8deadSopenharmony_ci extended. 6925bd8deadSopenharmony_ci 6935bd8deadSopenharmony_ciDependencies on SGIS_texture4D 6945bd8deadSopenharmony_ci 6955bd8deadSopenharmony_ci If SGIS_texture4D is not supported than the functionality and state 6965bd8deadSopenharmony_ci associated with SGIS_texture4D does not exist and is therefore not 6975bd8deadSopenharmony_ci extended. 6985bd8deadSopenharmony_ci 6995bd8deadSopenharmony_ciDependencies on SGIS_texture_border_clamp 7005bd8deadSopenharmony_ci 7015bd8deadSopenharmony_ci If SGIS_texture_border_clamp is not supported than the functionality and 7025bd8deadSopenharmony_ci state associated with SGIS_texture_border_clamp does not exist and is 7035bd8deadSopenharmony_ci therefore not extended. 7045bd8deadSopenharmony_ci 7055bd8deadSopenharmony_ciDependencies on SGI_texture_color_table 7065bd8deadSopenharmony_ci 7075bd8deadSopenharmony_ci If SGI_texture_color_table is not supported than the functionality and 7085bd8deadSopenharmony_ci state associated with SGI_texture_color_table does not exist and is 7095bd8deadSopenharmony_ci therefore not extended. 7105bd8deadSopenharmony_ci 7115bd8deadSopenharmony_ciDependencies on SGIS_texture_edge_clamp 7125bd8deadSopenharmony_ci 7135bd8deadSopenharmony_ci If SGIS_texture_edge_clamp is not supported than the functionality and 7145bd8deadSopenharmony_ci state associated with SGIS_texture_edge_clamp does not exist and is 7155bd8deadSopenharmony_ci therefore not extended. 7165bd8deadSopenharmony_ci 7175bd8deadSopenharmony_ciDependencies on SGIX_texture_add_env 7185bd8deadSopenharmony_ci 7195bd8deadSopenharmony_ci If SGIX_texture_add_env is not supported than the functionality and 7205bd8deadSopenharmony_ci state associated with SGIX_texture_add_env does not exist and is 7215bd8deadSopenharmony_ci therefore not extended. 7225bd8deadSopenharmony_ci 7235bd8deadSopenharmony_ciDependencies on SGIS_texture_filter4 7245bd8deadSopenharmony_ci 7255bd8deadSopenharmony_ci If SGIS_texture_filter4 is not supported than the functionality and 7265bd8deadSopenharmony_ci state associated with SGIS_texture_filter4 does not exist and is 7275bd8deadSopenharmony_ci therefore not extended. 7285bd8deadSopenharmony_ci 7295bd8deadSopenharmony_ciDependencies on SGIS_texture_lod 7305bd8deadSopenharmony_ci 7315bd8deadSopenharmony_ci If SGIS_texture_lod is not supported than the functionality and state 7325bd8deadSopenharmony_ci associated with SGIS_texture_lod does not exist and is therefore not 7335bd8deadSopenharmony_ci extended. 7345bd8deadSopenharmony_ci 7355bd8deadSopenharmony_ciDependencies on SGIX_texture_lod_bias 7365bd8deadSopenharmony_ci 7375bd8deadSopenharmony_ci If SGIX_texture_lod_bias is not supported than the functionality and 7385bd8deadSopenharmony_ci state associated with SGIX_texture_lod_bias does not exist and is 7395bd8deadSopenharmony_ci therefore not extended. 7405bd8deadSopenharmony_ci 7415bd8deadSopenharmony_ciDependencies on SGIX_texture_scale_bias 7425bd8deadSopenharmony_ci 7435bd8deadSopenharmony_ci If SGIX_texture_scale_bias is not supported than the functionality and 7445bd8deadSopenharmony_ci state associated with SGIX_texture_scale_bias does not exist and is 7455bd8deadSopenharmony_ci therefore not extended. 7465bd8deadSopenharmony_ci 7475bd8deadSopenharmony_ciDependencies on SGIS_texture_select 7485bd8deadSopenharmony_ci 7495bd8deadSopenharmony_ci If SGIS_texture_select is not supported than the functionality and state 7505bd8deadSopenharmony_ci associated with SGIS_texture_select does not exist and is therefore not 7515bd8deadSopenharmony_ci extended. 7525bd8deadSopenharmony_ci 7535bd8deadSopenharmony_ciDependencies on SGIS_detail_texture 7545bd8deadSopenharmony_ci 7555bd8deadSopenharmony_ci If SGIS_detail_texture is not supported than the functionality and state 7565bd8deadSopenharmony_ci associated with SGIS_detail_texture does not exist and is therefore not 7575bd8deadSopenharmony_ci extended. 7585bd8deadSopenharmony_ci 7595bd8deadSopenharmony_ciDependencies on SGIS_sharpen_texture 7605bd8deadSopenharmony_ci 7615bd8deadSopenharmony_ci If SGIS_sharpen_texture is not supported than the functionality and 7625bd8deadSopenharmony_ci state associated with SGIS_sharpen_texture does not exist and is 7635bd8deadSopenharmony_ci therefore not extended. 7645bd8deadSopenharmony_ci 7655bd8deadSopenharmony_ciDependencies on SGIX_shadow 7665bd8deadSopenharmony_ci 7675bd8deadSopenharmony_ci If SGIX_shadow is not supported than the functionality and state 7685bd8deadSopenharmony_ci associated with SGIX_shadow does not exist and is therefore not 7695bd8deadSopenharmony_ci extended. 7705bd8deadSopenharmony_ci 7715bd8deadSopenharmony_ciDependencies on SGIX_shadow_ambient 7725bd8deadSopenharmony_ci 7735bd8deadSopenharmony_ci If SGIX_shadow_ambient is not supported than the functionality and state 7745bd8deadSopenharmony_ci associated with SGIX_shadow_ambient does not exist and is therefore not 7755bd8deadSopenharmony_ci extended. 7765bd8deadSopenharmony_ci 7775bd8deadSopenharmony_ciDependencies on SGIX_clipmap 7785bd8deadSopenharmony_ci 7795bd8deadSopenharmony_ci If SGIX_clipmap is not supported than the functionality and state 7805bd8deadSopenharmony_ci associated with SGIX_clipmap does not exist and is therefore not 7815bd8deadSopenharmony_ci extended. 7825bd8deadSopenharmony_ci 7835bd8deadSopenharmony_ciDependencies on SGIS_point_line_texgen 7845bd8deadSopenharmony_ci 7855bd8deadSopenharmony_ci If SGIS_point_line_texgen is not supported than the functionality and 7865bd8deadSopenharmony_ci state associated with SGIS_point_line_texgen does not exist and is 7875bd8deadSopenharmony_ci therefore not extended. 7885bd8deadSopenharmony_ci 7895bd8deadSopenharmony_ci 7905bd8deadSopenharmony_ciErrors 7915bd8deadSopenharmony_ci 7925bd8deadSopenharmony_ci INVALID_ENUM is generated if SelectTextureSGIS, 7935bd8deadSopenharmony_ci SelectTextureTransformSGIS, SelectTextureCoordSetSGIS, 7945bd8deadSopenharmony_ci MultiTexCoord<n>{T}[v]SGIS, or MultiTexCoordPointer parameter <target> is 7955bd8deadSopenharmony_ci not TEXTURE0_SGIS .. TEXTURE3_SGIS. 7965bd8deadSopenharmony_ci 7975bd8deadSopenharmony_ci INVALID_OPERATION is generated if SelectTextureCoordSetSGIS or 7985bd8deadSopenharmony_ci SelectTextureTransformSGIS parameter <target> is one of TEXTURE0_SGIS 7995bd8deadSopenharmony_ci .. TEXTURE3_SGIS and <target> is greater or equal than the number of 8005bd8deadSopenharmony_ci available textures coordinate sets. 8015bd8deadSopenharmony_ci 8025bd8deadSopenharmony_ci INVALID_VALUE is generated if InterleavedTextureCoordSetsSGIS parameter 8035bd8deadSopenharmony_ci <factor> is not between 1 and MAX_TEXTURE_COORD_SETS_SGIS. 8045bd8deadSopenharmony_ci 8055bd8deadSopenharmony_ci INVALID_OPERATION is generated if SelectTextureSGIS parameter <target> is 8065bd8deadSopenharmony_ci one of TEXTURE0_SGIS .. TEXTURE3_SGIS and <target> is greater or equal than 8075bd8deadSopenharmony_ci the number of available textures. 8085bd8deadSopenharmony_ci 8095bd8deadSopenharmony_ci INVALID_ENUM is generated if TexEnv{T}[v] parameter <pname> is 8105bd8deadSopenharmony_ci TEXTURE_ENV_COORD_SET_SGIS and the <param> parameter is not one of 8115bd8deadSopenharmony_ci TEXTURE0_SGIS .. TEXTURE3_SGIS. 8125bd8deadSopenharmony_ci 8135bd8deadSopenharmony_ci INVALID_OPERATION is generated if TexEnv{T}[v] parameter <pname> 8145bd8deadSopenharmony_ci is TEXTURE_ENV_COORD_SET_SGIS and the <param> parameter is greater or equal 8155bd8deadSopenharmony_ci than the number of available textures coordinate sets. 8165bd8deadSopenharmony_ci 8175bd8deadSopenharmony_ci INVALID_OPERATION is generated if SelectTextureSGIS or 8185bd8deadSopenharmony_ci SelectTextureTransformSGIS is executed between execution of Begin and the 8195bd8deadSopenharmony_ci corresponding execution of End. 8205bd8deadSopenharmony_ci 8215bd8deadSopenharmony_ci INVALID_OPERATION is generated if SelectTextureCoordSetSGIS or 8225bd8deadSopenharmony_ci MultiTexCoordPointerSGIS is executed between execution of Begin and the 8235bd8deadSopenharmony_ci corresponding execution of End, but some implementations may not generate 8245bd8deadSopenharmony_ci the error. In such cases the result of executing these commands is 8255bd8deadSopenharmony_ci undefined. 8265bd8deadSopenharmony_ci 8275bd8deadSopenharmony_ciNew State 8285bd8deadSopenharmony_ci 8295bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Attribute 8305bd8deadSopenharmony_ci --------- ----------- ---- ------------- --------- 8315bd8deadSopenharmony_ci SELECTED_TEXTURE_SGIS GetIntegerv Z4 TEXTURE0_SGIS texture 8325bd8deadSopenharmony_ci SELECTED_TEXTURE_TRANSFORM_SGIS GetIntegerv Z4 TEXTURE0_SGIS texture 8335bd8deadSopenharmony_ci SELECTED_TEXTURE_COORD_SET_SGIS GetIntegerv Z4 TEXTURE0_SGIS vertex 8345bd8deadSopenharmony_ci TEXTURE_COORD_SET_INTERLEAVE_FACTOR_SGIS GetIntegerv Z4 1 vertex 8355bd8deadSopenharmony_ci 8365bd8deadSopenharmony_ciReplicated State 8375bd8deadSopenharmony_ci 8385bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Attribute 8395bd8deadSopenharmony_ci --------- ----------- ---- ------------- --------- 8405bd8deadSopenharmony_ci x CURRENT_TEXTURE_COORDS GetFloatv 1* x T (0,0,0,1) current 8415bd8deadSopenharmony_ci x CURRENT_RASTER_TEXTURE_COORDS GetFloatv 1* x T (0,0,0,1) current 8425bd8deadSopenharmony_ci 8435bd8deadSopenharmony_ci c TEXTURE_COORD_ARRAY IsEnabled 1* x B False vertex-array 8445bd8deadSopenharmony_ci c TEXTURE_COORD_ARRAY_SIZE GetIntegerv 1* x Z+ 0 vertex-array 8455bd8deadSopenharmony_ci c TEXTURE_COORD_ARRAY_TYPE GetIntegerv 1* x Z4 FLOAT vertex-array 8465bd8deadSopenharmony_ci c TEXTURE_COORD_ARRAY_STRIDE GetIntegerv 1* x Z+ 0 vertex-array 8475bd8deadSopenharmony_ci c TEXTURE_COORD_ARRAY_POINTER GetPointerv 1* x Y 0 vertex-array 8485bd8deadSopenharmony_ci 8495bd8deadSopenharmony_ci x TEXTURE_MATRIX GetFloatv 1* x 2* x M4 Identity - 8505bd8deadSopenharmony_ci x TEXTURE_STACK_DEPTH GetIntegerv 1* x Z+ 1 - 8515bd8deadSopenharmony_ci 8525bd8deadSopenharmony_ci TEXTURE_1D IsEnabled 1* x B False texture/enable 8535bd8deadSopenharmony_ci TEXTURE_2D IsEnabled 1* x B False texture/enable 8545bd8deadSopenharmony_ci TEXTURE_3D_EXT IsEnabled 1* x B False texture/enable 8555bd8deadSopenharmony_ci TEXTURE_4D_SGIS IsEnabled 1* x B False texture/enable 8565bd8deadSopenharmony_ci TEXTURE_BINDING_1D GetIntegerv 1* x Z+ 0 texture 8575bd8deadSopenharmony_ci TEXTURE_BINDING_2D GetIntegerv 1* x Z+ 0 texture 8585bd8deadSopenharmony_ci TEXTURE_BINDING_3D_EXT GetIntegerv 1* x Z+ 0 texture 8595bd8deadSopenharmony_ci TEXTURE_BINDING_4D_SGIS GetIntegerv 1* x Z+ 0 texture 8605bd8deadSopenharmony_ci TEXTURE GetTexImage 1* x n x I see sec 3.8 - 8615bd8deadSopenharmony_ci TEXTURE_WIDTH GetTexLevelParameter 1* x n x Z+ 0 - 8625bd8deadSopenharmony_ci TEXTURE_HEIGHT GetTexLevelParameter 1* x n x Z+ 0 - 8635bd8deadSopenharmony_ci +TEXTURE_DEPTH_EXT GetTexLevelParameter 1* x n x Z+ 0 - 8645bd8deadSopenharmony_ci TEXTURE_BORDER GetTexLevelParameter 1* x n x Z+ 0 - 8655bd8deadSopenharmony_ci TEXTURE_INTERNAL_FORMAT GetTexLevelParameter 1* x n x Z+ 0 - 8665bd8deadSopenharmony_ci (TEXTURE_COMPONENTS) 8675bd8deadSopenharmony_ci TEXTURE_RED_SIZE GetTexLevelParameter 1* x n x Z+ 0 - 8685bd8deadSopenharmony_ci TEXTURE_GREEN_SIZE GetTexLevelParameter 1* x n x Z+ 0 - 8695bd8deadSopenharmony_ci TEXTURE_BLUE_SIZE GetTexLevelParameter 1* x n x Z+ 0 - 8705bd8deadSopenharmony_ci TEXTURE_ALPHA_SIZE GetTexLevelParameter 1* x n x Z+ 0 - 8715bd8deadSopenharmony_ci TEXTURE_LUMINANCE_SIZE GetTexLevelParameter 1* x n x Z+ 0 - 8725bd8deadSopenharmony_ci TEXTURE_INTENISTY_SIZE GetTexLevelParameter 1* x n x Z+ 0 - 8735bd8deadSopenharmony_ci TEXTURE_BORDER_COLOR GetTexParameter 1* x 2+ x C (0,0,0,0) texture 8745bd8deadSopenharmony_ci TEXTURE_MIN_FILTER GetTexParameter 1* x 2+ x Z6 see sec 3.8 texture 8755bd8deadSopenharmony_ci TEXTURE_MAG_FILTER GetTexParameter 1* x 2+ x Z2 see sec 3.8 texture 8765bd8deadSopenharmony_ci TEXTURE_WRAP_S GetTexParameter 1* x 2+ x Z2 REPEAT texture 8775bd8deadSopenharmony_ci TEXTURE_WRAP_T GetTexParameter 1* x 2+ x Z2 REPEAT texture 8785bd8deadSopenharmony_ci +TEXTURE_WRAP_R_EXT GetTexParameter 1* x 2+ x Z2 REPEAT texture 8795bd8deadSopenharmony_ci +TEXTURE_WRAP_Q_SGIS GetTexParameter 1* x 2+ x Z2 REPEAT texture 8805bd8deadSopenharmony_ci TEXTURE_PRIORITY GetTexParameterfv 1* x 2+ x R[0,1] 1 texture 8815bd8deadSopenharmony_ci TEXTURE_RESIDENT GetTexParameterfv 1* x 2+ x B False texture 8825bd8deadSopenharmony_ci 8835bd8deadSopenharmony_ci +TEXTURE_MIN_LOD_SGIS GetTexParameterfv 1* x n x R -1000 texture 8845bd8deadSopenharmony_ci +TEXTURE_MAX_LOD_SGIS GetTexParameterfv 1* x n x R 1000 texture 8855bd8deadSopenharmony_ci +TEXTURE_BASE_LEVEL_SGIS GetTexParameteriv 1* x n x R 0 texture 8865bd8deadSopenharmony_ci +TEXTURE_MAX_LEVEL_SGIS GetTexParameteriv 1* x n x R 1000 texture 8875bd8deadSopenharmony_ci 8885bd8deadSopenharmony_ci +TEXTURE_LOD_BIAS_S_SGIX GetTexParameterfv 1* x n x R 0 texture 8895bd8deadSopenharmony_ci +TEXTURE_LOD_BIAS_T_SGIX GetTexParameterfv 1* x n x R 0 texture 8905bd8deadSopenharmony_ci +TEXTURE_LOD_BIAS_R_SGIX GetTexParameterfv 1* x n x R 0 texture 8915bd8deadSopenharmony_ci 8925bd8deadSopenharmony_ci +TEXTURE_FILTER4_FUNC_SGIS GetTexFilterFuncSGIS 1* x 2 x Size x R see text texture 8935bd8deadSopenharmony_ci 8945bd8deadSopenharmony_ci +DETAIL_TEXTURE_2D_BINDING_SGIS GetIntegerv 1* x Z+ 0 texture 8955bd8deadSopenharmony_ci +DETAIL_TEXTURE_LEVEL_SGIS GetTexParameteriv 1* x n x Z- -4 texture 8965bd8deadSopenharmony_ci +DETAIL_TEXTURE_MODE_SGIS GetTexParameteriv 1* x n x Z2 ADD texture 8975bd8deadSopenharmony_ci +DETAIL_TEXTURE_FUNC_POINTS_SGIS GetTexParameteriv 1* x n x Z+ 2 texture 8985bd8deadSopenharmony_ci +<DETAIL_TEXTURE_FUNC> GetDetailTexFuncSGIS 1* x n x m x R {0, 0}, {-4, 1} texture 8995bd8deadSopenharmony_ci 9005bd8deadSopenharmony_ci +SHARPEN_TEXTURE_FUNC_POINTS_SGIS GetTexParameteriv 1* x n x Z+ 2 texture 9015bd8deadSopenharmony_ci +<SHARPEN_TEXTURE_FUNC> GetSharpenTexFuncSGIS 1* x n x m x R {0, 0}, {-4, 1} texture 9025bd8deadSopenharmony_ci 9035bd8deadSopenharmony_ci +TEXTURE_COMPARE_SGIX GetTexParameter[if]v 1* x B False texture 9045bd8deadSopenharmony_ci +TEXTURE_COMPARE_OPERATOR_SGIX GetTexParameter[if]v 1* x Z_2 TEXTURE_LEQUAL_R_SGIX texture 9055bd8deadSopenharmony_ci 9065bd8deadSopenharmony_ci +SHADOW_AMBIENT_SGIX GetTexParameter[if]v 1* x R[0,1] 0.0 texture 9075bd8deadSopenharmony_ci 9085bd8deadSopenharmony_ci +TEXTURE_CLIPMAP_FRAME_SGIX GetTexParameterf 1* x Z+ 0 texture 9095bd8deadSopenharmony_ci +TEXTURE_CLIPMAP_CENTER_SGIX GetTexParameterfv 1* x 2 x Z+ 0,0 texture 9105bd8deadSopenharmony_ci +TEXTURE_CLIPMAP_OFFSET_SGIX GetTexParameterfv 1* x 2 x Z+ 0,0 texture 9115bd8deadSopenharmony_ci +TEXTURE_CLIPMAP_VIRTUAL_DEPTH_SGIX GetTexParameterfv 1* x 3 x Z+ 0,0,0 texture 9125bd8deadSopenharmony_ci 9135bd8deadSopenharmony_ci +DUAL_TEXTURE_SELECT_SGIS GetTexParameter 1* x n x 3 x Z2 0 texture 9145bd8deadSopenharmony_ci +QUAD_TEXTURE_SELECT_SGIS GetTexParameter 1* x n x 3 x Z4 0 texture 9155bd8deadSopenharmony_ci 9165bd8deadSopenharmony_ci +POST_TEXTURE_FILTER_BIAS_SGIX GetTexParameterfv 1* x n x 4 x R (0,0,0,0) texture 9175bd8deadSopenharmony_ci +POST_TEXTURE_FILTER_SCALE_SGIX GetTexParameterfv 1* x n x 4 x R (1,1,1,1) texture 9185bd8deadSopenharmony_ci 9195bd8deadSopenharmony_ci TEXTURE_COLOR_TABLE_SGI IsEnabled B False texture/enable 9205bd8deadSopenharmony_ci +COLOR_TABLE GetColorTableSGI 4 x I empty - 9215bd8deadSopenharmony_ci +COLOR_TABLE_FORMAT_SGI GetColorTableParameterivSGI 2 x 4 x Z38 RGBA - 9225bd8deadSopenharmony_ci +COLOR_TABLE_WIDTH_SGI GetColorTableParameterivSGI 2 x 4 x Z+ 0 - 9235bd8deadSopenharmony_ci +COLOR_TABLE_RED_SIZE_SGI GetColorTableParameterivSGI 2 x 4 x Z+ 0 - 9245bd8deadSopenharmony_ci +COLOR_TABLE_GREEN_SIZE_SGI GetColorTableParameterivSGI 2 x 4 x Z+ 0 - 9255bd8deadSopenharmony_ci +COLOR_TABLE_BLUE_SIZE_SGI GetColorTableParameterivSGI 2 x 4 x Z+ 0 - 9265bd8deadSopenharmony_ci +COLOR_TABLE_ALPHA_SIZE_SGI GetColorTableParameterivSGI 2 x 4 x Z+ 0 - 9275bd8deadSopenharmony_ci +COLOR_TABLE_LUMINANCE_SIZE_SGI GetColorTableParameterivSGI 2 x 4 x Z+ 0 - 9285bd8deadSopenharmony_ci +COLOR_TABLE_INTENSITY_SIZE_SGI GetColorTableParameterivSGI 2 x 4 x Z+ 0 - 9295bd8deadSopenharmony_ci +COLOR_TABLE_SCALE_SGI GetColorTableParameterfvSGI 4 x R4 (1,1,1,1) pixel 9305bd8deadSopenharmony_ci +COLOR_TABLE_BIAS_SGI GetColorTableParameterfvSGI 4 x R4 (0,0,0,0) pixel 9315bd8deadSopenharmony_ci 9325bd8deadSopenharmony_ci TEXTURE_ENV_MODE GetTexEnviv 1* x Z4 MODULATE texture 9335bd8deadSopenharmony_ci TEXTURE_ENV_COLOR GetTexEnviv 1* x C (0,0,0,0) texture 9345bd8deadSopenharmony_ci TEXTURE_ENV_COORD_SET_SGIS GetTexEnviv 1* x Z4 see sec 3.8 texture 9355bd8deadSopenharmony_ci x TEXTURE_GEN_x IsEnabled 1* x 4 x B False texture/enable 9365bd8deadSopenharmony_ci x EYE_PLANE GetTexGenfv 1* x 4 x R4 see sec 2.10.4 texture 9375bd8deadSopenharmony_ci x OBJECT_PLANE GetTexGenfv 1* x 4 x R4 see sec 2.10.4 texture 9385bd8deadSopenharmony_ci x TEXTURE_GEN_MODE GetTexGeniv 1* x 4 x Z3 EYE_LINEAR texture 9395bd8deadSopenharmony_ci 9405bd8deadSopenharmony_ci +TEXTURE_ENV_BIAS_SGIX GetFloatv 1* x C (0,0,0,0) texture 9415bd8deadSopenharmony_ci 9425bd8deadSopenharmony_ci x+EYE_POINT_SGIS GetTexGeniv 1* x 4 x R (0,0,0,1) texture 9435bd8deadSopenharmony_ci x+OBJECT_POINT_SGIS GetTexGeniv 1* x 4 x R (0,0,0,1) texture 9445bd8deadSopenharmony_ci x+EYE_LINE_SGIS GetTexGeniv 1* x 7 x R (0,0,0,1,0,0,1) texture 9455bd8deadSopenharmony_ci x+OBJECT_LINE_SGIS GetTexGeniv 1* x 7 x R (0,0,0,1,0,0,1) texture 9465bd8deadSopenharmony_ci 9475bd8deadSopenharmony_ci x ORDER GetMapiv (k+9) x Z8* 1 - 9485bd8deadSopenharmony_ci x ORDER GetMapiv (k+9) x 2 x Z8* 1,1 - 9495bd8deadSopenharmony_ci x COEFF GetMapfv (k+9) x 8* x Rn see sec 5.1 - 9505bd8deadSopenharmony_ci x COEFF GetMapfv (k+9) x 8* x 8* x Rn see sec 5.1 - 9515bd8deadSopenharmony_ci x DOMAIN GetMapfv (k+9) x 2 x R see sec 5.1 - 9525bd8deadSopenharmony_ci x DOMAIN GetMapfv (k+9) x 4 x R see sec 5.1 - 9535bd8deadSopenharmony_ci x MAP1_x IsEnabled (k+9) x B False - 9545bd8deadSopenharmony_ci x MAP2_x IsEnabled (k+9) x B False - 9555bd8deadSopenharmony_ci 9565bd8deadSopenharmony_ci+ = state defined in another extension. 9575bd8deadSopenharmony_cix = state qualified by SELECTED_TEXTURE_TRANSFORM_SGIS 9585bd8deadSopenharmony_cic = state qualified by SELECTED_TEXTURE_COORD_SET_SGIS 9595bd8deadSopenharmony_ci 9605bd8deadSopenharmony_ciNew Implementation Dependent State 9615bd8deadSopenharmony_ci 9625bd8deadSopenharmony_ci Get Value Get Command Type Minimum Value 9635bd8deadSopenharmony_ci --------- ----------- ---- ------------- 9645bd8deadSopenharmony_ci MAX_TEXTURES_SGIS GetIntegerv Z+ 1 9655bd8deadSopenharmony_ci MAX_TEXTURE_COORD_SETS_SGIS GetIntegerv Z+ 1 966