1Name 2 3 APPLE_texture_range 4 5Name Strings 6 7 GL_APPLE_texture_range 8 9Contact 10 11 Bob Beretta, Apple Inc. (beretta 'at' apple.com) 12 13Version 14 15 $Date: 2002/02/18 18:16:55 $ $Revision: 1.3 $ 16 17Number 18 19 367 20 21Dependencies 22 23 None 24 25Overview 26 27 This extension provides a method to specify the range of client address 28 space that may be used by a texture. In general, the storage size of a 29 texture may be easily determined by the texture's data type and geometry. 30 However, driver optimizations may be realized if an extended address 31 range is specified to encompass the storage of multiple textures, or to 32 encompass potential future changes in the size of a texture. A typical 33 usage of this extension is to specify an identical address range for 34 several textures in a particular working set that encompasses the storage 35 of all the textures in the set. This allows the driver to make a single 36 memory mapping for all of the textures. 37 38 Further, a mechanism is provided to allow the application to give the GL 39 driver a hint regarding the storage requirements of the texture data. 40 41New Procedures and Functions 42 43 void TextureRangeAPPLE(enum target, sizei length, void *pointer) 44 45 void GetTexParameterPointervAPPLE(enum target, enum pname, void **params) 46 47New Tokens 48 49 Accepted by the <pname> parameters of TexParameteri, TexParameterf, 50 TexParameteriv, TexParameterfv, GetTexParameteriv, and 51 GetTexParameterfv: 52 53 TEXTURE_STORAGE_HINT_APPLE 0x85BC 54 55 Accepted by the <param> parameters of TexParameteri, TexParameterf, 56 TexParameteriv, and TexParameterfv: 57 58 STORAGE_PRIVATE_APPLE 0x85BD 59 STORAGE_CACHED_APPLE 0x85BE 60 STORAGE_SHARED_APPLE 0x85BF 61 62 Accepted by the <pname> parameters of GetTexParameteriv and 63 GetTexParameterfv: 64 65 TEXTURE_RANGE_LENGTH_APPLE 0x85B7 66 67 Accepted by the <pname> parameters of GetTexParameterPointerv: 68 69 TEXTURE_RANGE_POINTER_APPLE 0x85B8 70 71Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 72 73 None 74 75Additions to Chapter 3 of the 1.0 Specification (Rasterization) 76 77 XXX - lots 78 79Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 80and the Frame Buffer) 81 82 None 83 84Additions to Chapter 5 of the 1.0 Specification (Special Functions) 85 86 None 87 88Additions to Chapter 6 of the 1.0 Specification (State and State Requests) 89 90 None 91 92Additions to the GLX Specification 93 94 "OpenGL implementations using GLX indirect rendering should silently 95 ignore the texture range. 96 97Errors 98 99 TextureRangeAPPLE(enum target, sizei length, void *pointer); 100 101 GetTexParameterPointerv(enum target, enum pname, void **params); 102 103 INVALID_ENUM is generated if TextureRangeAPPLE or GetTexParameterPointerv 104 is called with <target> that is not a valid texture target. 105 106 INVALID_ENUM is generated if GetTexParameterPointerv parameter 107 <pname> is not equal to TEXTURE_RANGE_POINTER_APPLE. 108 109 INVALID_VALUE is generated if TextureRangeAPPLE parameter <length> is 110 negative. 111 112New State 113 114 Get Value Get Command Type Value Attrib 115 --------- ----------- ---- ------- ------------ 116 TEXTURE_RANGE_POINTER_APPLE GetTexParameterPointerv Y 0 texture 117 TEXTURE_RANGE_LENGTH_APPLE GetTexParameteriv Z+ 0 texture 118 119New Implementation Dependent State 120 121 None 122 123