15bd8deadSopenharmony_ciName 25bd8deadSopenharmony_ci 35bd8deadSopenharmony_ci EXT_texture_object 45bd8deadSopenharmony_ci 55bd8deadSopenharmony_ciName Strings 65bd8deadSopenharmony_ci 75bd8deadSopenharmony_ci GL_EXT_texture_object 85bd8deadSopenharmony_ci 95bd8deadSopenharmony_ciVersion 105bd8deadSopenharmony_ci 115bd8deadSopenharmony_ci $Date: 1995/10/03 05:39:56 $ $Revision: 1.27 $ 125bd8deadSopenharmony_ci 135bd8deadSopenharmony_ciNumber 145bd8deadSopenharmony_ci 155bd8deadSopenharmony_ci 20 165bd8deadSopenharmony_ci 175bd8deadSopenharmony_ciDependencies 185bd8deadSopenharmony_ci 195bd8deadSopenharmony_ci EXT_texture3D affects the definition of this extension 205bd8deadSopenharmony_ci 215bd8deadSopenharmony_ciOverview 225bd8deadSopenharmony_ci 235bd8deadSopenharmony_ci This extension introduces named texture objects. The only way to name 245bd8deadSopenharmony_ci a texture in GL 1.0 is by defining it as a single display list. Because 255bd8deadSopenharmony_ci display lists cannot be edited, these objects are static. Yet it is 265bd8deadSopenharmony_ci important to be able to change the images and parameters of a texture. 275bd8deadSopenharmony_ci 285bd8deadSopenharmony_ciIssues 295bd8deadSopenharmony_ci 305bd8deadSopenharmony_ci * Should the dimensions of a texture object be static once they are 315bd8deadSopenharmony_ci changed from zero? This might simplify the management of texture 325bd8deadSopenharmony_ci memory. What about other properties of a texture object? 335bd8deadSopenharmony_ci 345bd8deadSopenharmony_ci No. 355bd8deadSopenharmony_ci 365bd8deadSopenharmony_ciReasoning 375bd8deadSopenharmony_ci 385bd8deadSopenharmony_ci * Previous proposals overloaded the <target> parameter of many Tex 395bd8deadSopenharmony_ci commands with texture object names, as well as the original 405bd8deadSopenharmony_ci enumerated values. This proposal eliminated such overloading, 415bd8deadSopenharmony_ci choosing instead to require an application to bind a texture object, 425bd8deadSopenharmony_ci and then operate on it through the binding reference. If this 435bd8deadSopenharmony_ci constraint ultimately proves to be unacceptable, we can always 445bd8deadSopenharmony_ci extend the extension with additional binding points for editing and 455bd8deadSopenharmony_ci querying only, but if we expect to do this, we might choose to bite 465bd8deadSopenharmony_ci the bullet and overload the <target> parameters now. 475bd8deadSopenharmony_ci 485bd8deadSopenharmony_ci * Commands to directly set the priority of a texture object and to 495bd8deadSopenharmony_ci query the resident status of a texture object are included. I feel 505bd8deadSopenharmony_ci that binding a texture object would be an unacceptable burden for 515bd8deadSopenharmony_ci these management operations. These commands also allow queries and 525bd8deadSopenharmony_ci operations on lists of texture objects, which should improve 535bd8deadSopenharmony_ci efficiency. 545bd8deadSopenharmony_ci 555bd8deadSopenharmony_ci * GenTexturesEXT does not return a success/failure boolean because 565bd8deadSopenharmony_ci it should never fail in practice. 575bd8deadSopenharmony_ci 585bd8deadSopenharmony_ciNew Procedures and Functions 595bd8deadSopenharmony_ci 605bd8deadSopenharmony_ci void GenTexturesEXT(sizei n, 615bd8deadSopenharmony_ci uint* textures); 625bd8deadSopenharmony_ci 635bd8deadSopenharmony_ci void DeleteTexturesEXT(sizei n, 645bd8deadSopenharmony_ci const uint* textures); 655bd8deadSopenharmony_ci 665bd8deadSopenharmony_ci void BindTextureEXT(enum target, 675bd8deadSopenharmony_ci uint texture); 685bd8deadSopenharmony_ci 695bd8deadSopenharmony_ci void PrioritizeTexturesEXT(sizei n, 705bd8deadSopenharmony_ci const uint* textures, 715bd8deadSopenharmony_ci const clampf* priorities); 725bd8deadSopenharmony_ci 735bd8deadSopenharmony_ci boolean AreTexturesResidentEXT(sizei n, 745bd8deadSopenharmony_ci const uint* textures, 755bd8deadSopenharmony_ci boolean* residences); 765bd8deadSopenharmony_ci 775bd8deadSopenharmony_ci boolean IsTextureEXT(uint texture); 785bd8deadSopenharmony_ci 795bd8deadSopenharmony_ciNew Tokens 805bd8deadSopenharmony_ci 815bd8deadSopenharmony_ci Accepted by the <pname> parameters of TexParameteri, TexParameterf, 825bd8deadSopenharmony_ci TexParameteriv, TexParameterfv, GetTexParameteriv, and GetTexParameterfv: 835bd8deadSopenharmony_ci 845bd8deadSopenharmony_ci TEXTURE_PRIORITY_EXT 0x8066 855bd8deadSopenharmony_ci 865bd8deadSopenharmony_ci Accepted by the <pname> parameters of GetTexParameteriv and 875bd8deadSopenharmony_ci GetTexParameterfv: 885bd8deadSopenharmony_ci 895bd8deadSopenharmony_ci TEXTURE_RESIDENT_EXT 0x8067 905bd8deadSopenharmony_ci 915bd8deadSopenharmony_ci Accepted by the <pname> parameters of GetBooleanv, GetIntegerv, 925bd8deadSopenharmony_ci GetFloatv, and GetDoublev: 935bd8deadSopenharmony_ci 945bd8deadSopenharmony_ci TEXTURE_1D_BINDING_EXT 0x8068 955bd8deadSopenharmony_ci TEXTURE_2D_BINDING_EXT 0x8069 965bd8deadSopenharmony_ci TEXTURE_3D_BINDING_EXT 0x806A 975bd8deadSopenharmony_ci 985bd8deadSopenharmony_ciAdditions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 995bd8deadSopenharmony_ci 1005bd8deadSopenharmony_ci None 1015bd8deadSopenharmony_ci 1025bd8deadSopenharmony_ciAdditions to Chapter 3 of the 1.0 Specification (Rasterization) 1035bd8deadSopenharmony_ci 1045bd8deadSopenharmony_ci Add the following discussion to section 3.8 (Texturing). In addition 1055bd8deadSopenharmony_ci to the default textures TEXTURE_1D, TEXTURE_2D, and TEXTURE_3D_EXT, it 1065bd8deadSopenharmony_ci is possible to create named 1, 2, and 3-dimensional texture objects. 1075bd8deadSopenharmony_ci The name space for texture objects is the unsigned integers, with zero 1085bd8deadSopenharmony_ci reserved by the GL. 1095bd8deadSopenharmony_ci 1105bd8deadSopenharmony_ci A texture object is created by binding an unused name to TEXTURE_1D, 1115bd8deadSopenharmony_ci TEXTURE_2D, or TEXTURE_3D_EXT. This binding is accomplished by calling 1125bd8deadSopenharmony_ci BindTextureEXT with <target> set to TEXTURE_1D, TEXTURE_2D, or 1135bd8deadSopenharmony_ci TEXTURE_3D_EXT, and <texture> set to the name of the new texture object. 1145bd8deadSopenharmony_ci When a texture object is bound to a target, the previous binding for 1155bd8deadSopenharmony_ci that target is automatically broken. 1165bd8deadSopenharmony_ci 1175bd8deadSopenharmony_ci When a texture object is first bound it takes the dimensionality of its 1185bd8deadSopenharmony_ci target. Thus, a texture object first bound to TEXTURE_1D is 1195bd8deadSopenharmony_ci 1-dimensional; a texture object first bound to TEXTURE_2D is 1205bd8deadSopenharmony_ci 2-dimensional, and a texture object first bound to TEXTURE_3D_EXT is 1215bd8deadSopenharmony_ci 3-dimensional. The state of a 1-dimensional texture object 1225bd8deadSopenharmony_ci immediately after it is first bound is equivalent to the state of the 1235bd8deadSopenharmony_ci default TEXTURE_1D at GL initialization. Likewise, the state of a 1245bd8deadSopenharmony_ci 2-dimensional or 3-dimensional texture object immediately after it is 1255bd8deadSopenharmony_ci first bound is equivalent to the state of the default TEXTURE_2D or 1265bd8deadSopenharmony_ci TEXTURE_3D_EXT at GL initialization. Subsequent bindings of a texture 1275bd8deadSopenharmony_ci object have no effect on its state. The error INVALID_OPERATION is 1285bd8deadSopenharmony_ci generated if an attempt is made to bind a texture object to a target of 1295bd8deadSopenharmony_ci different dimensionality. 1305bd8deadSopenharmony_ci 1315bd8deadSopenharmony_ci While a texture object is bound, GL operations on the target to which it 1325bd8deadSopenharmony_ci is bound affect the bound texture object, and queries of the target to 1335bd8deadSopenharmony_ci which it is bound return state from the bound texture object. If 1345bd8deadSopenharmony_ci texture mapping of the dimensionality of the target to which a texture 1355bd8deadSopenharmony_ci object is bound is active, the bound texture object is used. 1365bd8deadSopenharmony_ci 1375bd8deadSopenharmony_ci By default when an OpenGL context is created, TEXTURE_1D, TEXTURE_2D, 1385bd8deadSopenharmony_ci and TEXTURE_3D_EXT have 1, 2, and 3-dimensional textures associated 1395bd8deadSopenharmony_ci with them. In order that access to these default textures not be 1405bd8deadSopenharmony_ci lost, this extension treats them as though their names were all zero. 1415bd8deadSopenharmony_ci Thus the default 1-dimensional texture is operated on, queried, and 1425bd8deadSopenharmony_ci applied as TEXTURE_1D while zero is bound to TEXTURE_1D. Likewise, 1435bd8deadSopenharmony_ci the default 2-dimensional texture is operated on, queried, and applied 1445bd8deadSopenharmony_ci as TEXTURE_2D while zero is bound to TEXTURE_2D, and the default 1455bd8deadSopenharmony_ci 3-dimensional texture is operated on, queried, and applied as 1465bd8deadSopenharmony_ci TEXTURE_3D_EXT while zero is bound to TEXTURE_3D_EXT. 1475bd8deadSopenharmony_ci 1485bd8deadSopenharmony_ci Texture objects are deleted by calling DeleteTexturesEXT with <textures> 1495bd8deadSopenharmony_ci pointing to a list of <n> names of texture object to be deleted. After 1505bd8deadSopenharmony_ci a texture object is deleted, it has no contents or dimensionality, and 1515bd8deadSopenharmony_ci its name is freed. If a texture object that is currently bound is 1525bd8deadSopenharmony_ci deleted, the binding reverts to zero. DeleteTexturesEXT ignores names 1535bd8deadSopenharmony_ci that do not correspond to textures objects, including zero. 1545bd8deadSopenharmony_ci 1555bd8deadSopenharmony_ci GenTexturesEXT returns <n> texture object names in <textures>. These 1565bd8deadSopenharmony_ci names are chosen in an unspecified manner, the only condition being that 1575bd8deadSopenharmony_ci only names that were not in use immediately prior to the call to 1585bd8deadSopenharmony_ci GenTexturesEXT are considered. Names returned by GenTexturesEXT are 1595bd8deadSopenharmony_ci marked as used (so that they are not returned by subsequent calls to 1605bd8deadSopenharmony_ci GenTexturesEXT), but they are associated with a texture object only 1615bd8deadSopenharmony_ci after they are first bound (just as if the name were unused). 1625bd8deadSopenharmony_ci 1635bd8deadSopenharmony_ci An implementation may choose to establish a working set of texture 1645bd8deadSopenharmony_ci objects on which binding operations are performed with higher 1655bd8deadSopenharmony_ci performance. A texture object that is currently being treated as a 1665bd8deadSopenharmony_ci part of the working set is said to be resident. AreTexturesResidentEXT 1675bd8deadSopenharmony_ci returns TRUE if all of the <n> texture objects named in <textures> are 1685bd8deadSopenharmony_ci resident, FALSE otherwise. If FALSE is returned, the residence of each 1695bd8deadSopenharmony_ci texture object is returned in <residences>. Otherwise the contents of 1705bd8deadSopenharmony_ci the <residences> array are not changed. If any of the names in 1715bd8deadSopenharmony_ci <textures> is not the name of a texture object, FALSE is returned, the 1725bd8deadSopenharmony_ci error INVALID_VALUE is generated, and the contents of <residences> are 1735bd8deadSopenharmony_ci indeterminate. The resident status of a single bound texture object 1745bd8deadSopenharmony_ci can also be queried by calling GetTexParameteriv or GetTexParameterfv 1755bd8deadSopenharmony_ci with <target> set to the target to which the texture object is bound, 1765bd8deadSopenharmony_ci and <pname> set to TEXTURE_RESIDENT_EXT. This is the only way that the 1775bd8deadSopenharmony_ci resident status of a default texture can be queried. 1785bd8deadSopenharmony_ci 1795bd8deadSopenharmony_ci Applications guide the OpenGL implementation in determining which 1805bd8deadSopenharmony_ci texture objects should be resident by specifying a priority for each 1815bd8deadSopenharmony_ci texture object. PrioritizeTexturesEXT sets the priorities of the <n> 1825bd8deadSopenharmony_ci texture objects in <textures> to the values in <priorities>. Each 1835bd8deadSopenharmony_ci priority value is clamped to the range [0.0, 1.0] before it is 1845bd8deadSopenharmony_ci assigned. Zero indicates the lowest priority, and hence the least 1855bd8deadSopenharmony_ci likelihood of being resident. One indicates the highest priority, and 1865bd8deadSopenharmony_ci hence the greatest likelihood of being resident. The priority of a 1875bd8deadSopenharmony_ci single bound texture object can also be changed by calling 1885bd8deadSopenharmony_ci TexParameteri, TexParameterf, TexParameteriv, or TexParameterfv with 1895bd8deadSopenharmony_ci <target> set to the target to which the texture object is bound, <pname> 1905bd8deadSopenharmony_ci set to TEXTURE_PRIORITY_EXT, and <param> or <params> specifying the new 1915bd8deadSopenharmony_ci priority value (which is clamped to [0.0,1.0] before being assigned). 1925bd8deadSopenharmony_ci This is the only way that the priority of a default texture can be 1935bd8deadSopenharmony_ci specified. (PrioritizeTexturesEXT silently ignores attempts to 1945bd8deadSopenharmony_ci prioritize nontextures, and texture zero.) 1955bd8deadSopenharmony_ci 1965bd8deadSopenharmony_ciAdditions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 1975bd8deadSopenharmony_ciand the Frame Buffer) 1985bd8deadSopenharmony_ci 1995bd8deadSopenharmony_ci None 2005bd8deadSopenharmony_ci 2015bd8deadSopenharmony_ciAdditions to Chapter 5 of the 1.0 Specification (Special Functions) 2025bd8deadSopenharmony_ci 2035bd8deadSopenharmony_ci BindTextureEXT and PrioritizeTexturesEXT are included in display lists. 2045bd8deadSopenharmony_ci All other commands defined by this extension are not included in display 2055bd8deadSopenharmony_ci lists. 2065bd8deadSopenharmony_ci 2075bd8deadSopenharmony_ciAdditions to Chapter 6 of the 1.0 Specification (State and State Requests) 2085bd8deadSopenharmony_ci 2095bd8deadSopenharmony_ci IsTextureEXT returns TRUE if <texture> is the name of a valid texture 2105bd8deadSopenharmony_ci object. If <texture> is zero, or is a non-zero value that is not the 2115bd8deadSopenharmony_ci name of a texture object, or if an error condition occurs, IsTextureEXT 2125bd8deadSopenharmony_ci returns FALSE. 2135bd8deadSopenharmony_ci 2145bd8deadSopenharmony_ci Because the query values of TEXTURE_1D, TEXTURE_2D, and TEXTURE_3D_EXT 2155bd8deadSopenharmony_ci are already defined as booleans indicating whether these textures are 2165bd8deadSopenharmony_ci enabled or disabled, another mechanism is required to query the 2175bd8deadSopenharmony_ci binding associated with each of these texture targets. The name 2185bd8deadSopenharmony_ci of the texture object currently bound to TEXTURE_1D is returned in 2195bd8deadSopenharmony_ci <params> when GetIntegerv is called with <pname> set to 2205bd8deadSopenharmony_ci TEXTURE_1D_BINDING_EXT. If no texture object is currently bound to 2215bd8deadSopenharmony_ci TEXTURE_1D, zero is returned. Likewise, the name of the texture object 2225bd8deadSopenharmony_ci bound to TEXTURE_2D or TEXTURE_3D_EXT is returned in <params> when 2235bd8deadSopenharmony_ci GetIntegerv is called with <pname> set to TEXTURE_2D_BINDING_EXT or 2245bd8deadSopenharmony_ci TEXTURE_3D_BINDING_EXT. If no texture object is currently bound to 2255bd8deadSopenharmony_ci TEXTURE_2D or to TEXTURE_3D_EXT, zero is returned. 2265bd8deadSopenharmony_ci 2275bd8deadSopenharmony_ci A texture object comprises the image arrays, priority, border color, 2285bd8deadSopenharmony_ci filter modes, and wrap modes that are associated with that object. More 2295bd8deadSopenharmony_ci explicitly, the state list 2305bd8deadSopenharmony_ci 2315bd8deadSopenharmony_ci TEXTURE, 2325bd8deadSopenharmony_ci TEXTURE_PRIORITY_EXT 2335bd8deadSopenharmony_ci TEXTURE_RED_SIZE, 2345bd8deadSopenharmony_ci TEXTURE_GREEN_SIZE, 2355bd8deadSopenharmony_ci TEXTURE_BLUE_SIZE, 2365bd8deadSopenharmony_ci TEXTURE_ALPHA_SIZE, 2375bd8deadSopenharmony_ci TEXTURE_LUMINANCE_SIZE, 2385bd8deadSopenharmony_ci TEXTURE_INTENSITY_SIZE, 2395bd8deadSopenharmony_ci TEXTURE_WIDTH, 2405bd8deadSopenharmony_ci TEXTURE_HEIGHT, 2415bd8deadSopenharmony_ci TEXTURE_DEPTH_EXT, 2425bd8deadSopenharmony_ci TEXTURE_BORDER, 2435bd8deadSopenharmony_ci TEXTURE_COMPONENTS, 2445bd8deadSopenharmony_ci TEXTURE_BORDER_COLOR, 2455bd8deadSopenharmony_ci TEXTURE_MIN_FILTER, 2465bd8deadSopenharmony_ci TEXTURE_MAG_FILTER, 2475bd8deadSopenharmony_ci TEXTURE_WRAP_S, 2485bd8deadSopenharmony_ci TEXTURE_WRAP_T, 2495bd8deadSopenharmony_ci TEXTURE_WRAP_R_EXT 2505bd8deadSopenharmony_ci 2515bd8deadSopenharmony_ci composes a single texture object. 2525bd8deadSopenharmony_ci 2535bd8deadSopenharmony_ci When PushAttrib is called with TEXTURE_BIT enabled, the priorities, 2545bd8deadSopenharmony_ci border colors, filter modes, and wrap modes of the currently bound 2555bd8deadSopenharmony_ci texture objects are pushed, as well as the current texture bindings and 2565bd8deadSopenharmony_ci enables. When an attribute set that includes texture information is 2575bd8deadSopenharmony_ci popped, the bindings and enables are first restored to their pushed 2585bd8deadSopenharmony_ci values, then the bound texture objects have their priorities, border 2595bd8deadSopenharmony_ci colors, filter modes, and wrap modes restored to their pushed values. 2605bd8deadSopenharmony_ci 2615bd8deadSopenharmony_ciAdditions to the GLX Specification 2625bd8deadSopenharmony_ci 2635bd8deadSopenharmony_ci Texture objects are shared between GLX rendering contexts if and only 2645bd8deadSopenharmony_ci if the rendering contexts share display lists. No change is made to 2655bd8deadSopenharmony_ci the GLX API. 2665bd8deadSopenharmony_ci 2675bd8deadSopenharmony_ciGLX Protocol 2685bd8deadSopenharmony_ci 2695bd8deadSopenharmony_ci Six new GL commands are added. 2705bd8deadSopenharmony_ci 2715bd8deadSopenharmony_ci The following rendering command is sent to the server as part of a 2725bd8deadSopenharmony_ci glXRender request: 2735bd8deadSopenharmony_ci 2745bd8deadSopenharmony_ci BindTextureEXT 2755bd8deadSopenharmony_ci 2 12 rendering command length 2765bd8deadSopenharmony_ci 2 4117 rendering command opcode 2775bd8deadSopenharmony_ci 4 ENUM target 2785bd8deadSopenharmony_ci 4 CARD32 texture 2795bd8deadSopenharmony_ci 2805bd8deadSopenharmony_ci The following rendering command can be sent to the server as part of a 2815bd8deadSopenharmony_ci glXRender request or as part of a glXRenderLarge request: 2825bd8deadSopenharmony_ci 2835bd8deadSopenharmony_ci PrioritizeTexturesEXT 2845bd8deadSopenharmony_ci 2 8+(n*8) rendering command length 2855bd8deadSopenharmony_ci 2 4118 rendering command opcode 2865bd8deadSopenharmony_ci 4 INT32 n 2875bd8deadSopenharmony_ci n*4 LISTofCARD32 textures 2885bd8deadSopenharmony_ci n*4 LISTofFLOAT32 priorities 2895bd8deadSopenharmony_ci 2905bd8deadSopenharmony_ci If the command is encoded in a glXRenderLarge request, the 2915bd8deadSopenharmony_ci command opcode and command length fields above are expanded to 2925bd8deadSopenharmony_ci 4 bytes each: 2935bd8deadSopenharmony_ci 2945bd8deadSopenharmony_ci 4 12+(n*8) rendering command length 2955bd8deadSopenharmony_ci 4 4118 rendering command opcode 2965bd8deadSopenharmony_ci 2975bd8deadSopenharmony_ci The remaining commands are non-rendering commands. These commands are 2985bd8deadSopenharmony_ci sent separately (i.e., not as part of a glXRender or glXRenderLarge 2995bd8deadSopenharmony_ci request), using either the glXVendorPrivate request or the 3005bd8deadSopenharmony_ci glXVendorPrivateWithReply request: 3015bd8deadSopenharmony_ci 3025bd8deadSopenharmony_ci DeleteTexturesEXT 3035bd8deadSopenharmony_ci 1 CARD8 opcode (X assigned) 3045bd8deadSopenharmony_ci 1 16 GLX opcode (glXVendorPrivate) 3055bd8deadSopenharmony_ci 2 4+n request length 3065bd8deadSopenharmony_ci 4 12 vendor specific opcode 3075bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 3085bd8deadSopenharmony_ci 4 INT32 n 3095bd8deadSopenharmony_ci n*4 CARD32 textures 3105bd8deadSopenharmony_ci 3115bd8deadSopenharmony_ci GenTexturesEXT 3125bd8deadSopenharmony_ci 1 CARD8 opcode (X assigned) 3135bd8deadSopenharmony_ci 1 17 GLX opcode (glXVendorPrivateWithReply) 3145bd8deadSopenharmony_ci 2 4 request length 3155bd8deadSopenharmony_ci 4 13 vendor specific opcode 3165bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 3175bd8deadSopenharmony_ci 4 INT32 n 3185bd8deadSopenharmony_ci => 3195bd8deadSopenharmony_ci 1 1 reply 3205bd8deadSopenharmony_ci 1 unused 3215bd8deadSopenharmony_ci 2 CARD16 sequence number 3225bd8deadSopenharmony_ci 4 n reply length 3235bd8deadSopenharmony_ci 24 unused 3245bd8deadSopenharmony_ci 4*n LISTofCARD32 textures 3255bd8deadSopenharmony_ci 3265bd8deadSopenharmony_ci AreTexturesResidentEXT 3275bd8deadSopenharmony_ci 1 CARD8 opcode (X assigned) 3285bd8deadSopenharmony_ci 1 17 GLX opcode (glXVendorPrivateWithReply) 3295bd8deadSopenharmony_ci 2 4+n request length 3305bd8deadSopenharmony_ci 4 11 vendor specific opcode 3315bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 3325bd8deadSopenharmony_ci 4 INT32 n 3335bd8deadSopenharmony_ci 4*n LISTofCARD32 textures 3345bd8deadSopenharmony_ci => 3355bd8deadSopenharmony_ci 1 1 reply 3365bd8deadSopenharmony_ci 1 unused 3375bd8deadSopenharmony_ci 2 CARD16 sequence number 3385bd8deadSopenharmony_ci 4 (n+p)/4 reply length 3395bd8deadSopenharmony_ci 4 BOOL32 return_value 3405bd8deadSopenharmony_ci 20 unused 3415bd8deadSopenharmony_ci n LISTofBOOL residences 3425bd8deadSopenharmony_ci p unused, p=pad(n) 3435bd8deadSopenharmony_ci 3445bd8deadSopenharmony_ci IsTextureEXT 3455bd8deadSopenharmony_ci 1 CARD8 opcode (X assigned) 3465bd8deadSopenharmony_ci 1 17 GLX opcode (glXVendorPrivateWithReply) 3475bd8deadSopenharmony_ci 2 4 request length 3485bd8deadSopenharmony_ci 4 14 vendor specific opcode 3495bd8deadSopenharmony_ci 4 GLX_CONTEXT_TAG context tag 3505bd8deadSopenharmony_ci 4 CARD32 textures 3515bd8deadSopenharmony_ci => 3525bd8deadSopenharmony_ci 1 1 reply 3535bd8deadSopenharmony_ci 1 unused 3545bd8deadSopenharmony_ci 2 CARD16 sequence number 3555bd8deadSopenharmony_ci 4 0 reply length 3565bd8deadSopenharmony_ci 4 BOOL32 return_value 3575bd8deadSopenharmony_ci 20 unused 3585bd8deadSopenharmony_ci 3595bd8deadSopenharmony_ciDependencies on EXT_texture3D 3605bd8deadSopenharmony_ci 3615bd8deadSopenharmony_ci If EXT_texture3D is not supported, then all references to 3D textures 3625bd8deadSopenharmony_ci in this specification are invalid. 3635bd8deadSopenharmony_ci 3645bd8deadSopenharmony_ciErrors 3655bd8deadSopenharmony_ci 3665bd8deadSopenharmony_ci INVALID_VALUE is generated if GenTexturesEXT parameter <n> is negative. 3675bd8deadSopenharmony_ci 3685bd8deadSopenharmony_ci INVALID_VALUE is generated if DeleteTexturesEXT parameter <n> is 3695bd8deadSopenharmony_ci negative. 3705bd8deadSopenharmony_ci 3715bd8deadSopenharmony_ci INVALID_ENUM is generated if BindTextureEXT parameter <target> is not 3725bd8deadSopenharmony_ci TEXTURE_1D, TEXTURE_2D, or TEXTURE_3D_EXT. 3735bd8deadSopenharmony_ci 3745bd8deadSopenharmony_ci INVALID_OPERATION is generated if BindTextureEXT parameter <target> is 3755bd8deadSopenharmony_ci TEXTURE_1D, and parameter <texture> is the name of a 2-dimensional or 3765bd8deadSopenharmony_ci 3-dimensional texture object. 3775bd8deadSopenharmony_ci 3785bd8deadSopenharmony_ci INVALID_OPERATION is generated if BindTextureEXT parameter <target> is 3795bd8deadSopenharmony_ci TEXTURE_2D, and parameter <texture> is the name of a 1-dimensional or 3805bd8deadSopenharmony_ci 3-dimensional texture object. 3815bd8deadSopenharmony_ci 3825bd8deadSopenharmony_ci INVALID_OPERATION is generated if BindTextureEXT parameter <target> is 3835bd8deadSopenharmony_ci TEXTURE_3D_EXT, and parameter <texture> is the name of a 1-dimensional 3845bd8deadSopenharmony_ci or 2-dimensional texture object. 3855bd8deadSopenharmony_ci 3865bd8deadSopenharmony_ci INVALID_VALUE is generated if PrioritizeTexturesEXT parameter <n> 3875bd8deadSopenharmony_ci negative. 3885bd8deadSopenharmony_ci 3895bd8deadSopenharmony_ci INVALID_VALUE is generated if AreTexturesResidentEXT parameter <n> 3905bd8deadSopenharmony_ci is negative. 3915bd8deadSopenharmony_ci 3925bd8deadSopenharmony_ci INVALID_VALUE is generated by AreTexturesResidentEXT if any of the 3935bd8deadSopenharmony_ci names in <textures> is zero, or is not the name of a texture. 3945bd8deadSopenharmony_ci 3955bd8deadSopenharmony_ci INVALID_OPERATION is generated if any of the commands defined in this 3965bd8deadSopenharmony_ci extension is executed between the execution of Begin and the 3975bd8deadSopenharmony_ci corresponding execution of End. 3985bd8deadSopenharmony_ci 3995bd8deadSopenharmony_ciNew State 4005bd8deadSopenharmony_ci 4015bd8deadSopenharmony_ci 4025bd8deadSopenharmony_ci Get Value Get Command Type Initial Value Attribute 4035bd8deadSopenharmony_ci --------- ----------- ---- ------------- --------- 4045bd8deadSopenharmony_ci TEXTURE_1D IsEnabled B FALSE texture/enable 4055bd8deadSopenharmony_ci TEXTURE_2D IsEnabled B FALSE texture/enable 4065bd8deadSopenharmony_ci TEXTURE_3D_EXT IsEnabled B FALSE texture/enable 4075bd8deadSopenharmony_ci TEXTURE_1D_BINDING_EXT GetIntegerv Z+ 0 texture 4085bd8deadSopenharmony_ci TEXTURE_2D_BINDING_EXT GetIntegerv Z+ 0 texture 4095bd8deadSopenharmony_ci TEXTURE_3D_BINDING_EXT GetIntegerv Z+ 0 texture 4105bd8deadSopenharmony_ci TEXTURE_PRIORITY_EXT GetTexParameterfv n x Z+ 1 texture 4115bd8deadSopenharmony_ci TEXTURE_RESIDENT_EXT AreTexturesResidentEXT n x B unknown - 4125bd8deadSopenharmony_ci 4135bd8deadSopenharmony_ci TEXTURE GetTexImage n x levels x I null - 4145bd8deadSopenharmony_ci TEXTURE_RED_SIZE_EXT GetTexLevelParameteriv n x levels x Z+ 0 - 4155bd8deadSopenharmony_ci TEXTURE_GREEN_SIZE_EXT GetTexLevelParameteriv n x levels x Z+ 0 - 4165bd8deadSopenharmony_ci TEXTURE_BLUE_SIZE_EXT GetTexLevelParameteriv n x levels x Z+ 0 - 4175bd8deadSopenharmony_ci TEXTURE_ALPHA_SIZE_EXT GetTexLevelParameteriv n x levels x Z+ 0 - 4185bd8deadSopenharmony_ci TEXTURE_LUMINANCE_SIZE_EXT GetTexLevelParameteriv n x levels x Z+ 0 - 4195bd8deadSopenharmony_ci TEXTURE_INTENSITY_SIZE_EXT GetTexLevelParameteriv n x levels x Z+ 0 - 4205bd8deadSopenharmony_ci TEXTURE_WIDTH GetTexLevelParameteriv n x levels x Z+ 0 - 4215bd8deadSopenharmony_ci TEXTURE_HEIGHT GetTexLevelParameteriv n x levels x Z+ 0 - 4225bd8deadSopenharmony_ci TEXTURE_DEPTH_EXT GetTexLevelParameteriv n x levels x Z+ 0 - 4235bd8deadSopenharmony_ci TEXTURE_4DSIZE_SGIS GetTexLevelParameteriv n x levels x Z+ 0 - 4245bd8deadSopenharmony_ci TEXTURE_BORDER GetTexLevelParameteriv n x levels x Z+ 0 - 4255bd8deadSopenharmony_ci TEXTURE_COMPONENTS (1D and 2D) GetTexLevelParameteriv n x levels x Z42 1 - 4265bd8deadSopenharmony_ci TEXTURE_COMPONENTS (3D and 4D) GetTexLevelParameteriv n x levels x Z38 LUMINANCE - 4275bd8deadSopenharmony_ci TEXTURE_BORDER_COLOR GetTexParameteriv n x C 0, 0, 0, 0 texture 4285bd8deadSopenharmony_ci TEXTURE_MIN_FILTER GetTexParameteriv n x Z7 NEAREST_MIPMAP_LINEAR texture 4295bd8deadSopenharmony_ci TEXTURE_MAG_FILTER GetTexParameteriv n x Z3 LINEAR texture 4305bd8deadSopenharmony_ci TEXTURE_WRAP_S GetTexParameteriv n x Z2 REPEAT texture 4315bd8deadSopenharmony_ci TEXTURE_WRAP_T GetTexParameteriv n x Z2 REPEAT texture 4325bd8deadSopenharmony_ci TEXTURE_WRAP_R_EXT GetTexParameteriv n x Z2 REPEAT texture 4335bd8deadSopenharmony_ci TEXTURE_WRAP_Q_SGIS GetTexParameteriv n x Z2 REPEAT texture 4345bd8deadSopenharmony_ci 4355bd8deadSopenharmony_ciNew Implementation Dependent State 4365bd8deadSopenharmony_ci 4375bd8deadSopenharmony_ci None 438