1Name 2 3 SGIS_texture_edge_clamp 4 5Name Strings 6 7 GL_SGIS_texture_edge_clamp 8 9Version 10 11 $Date: 1997/02/26 03:36:36 $ $Revision: 1.6 $ 12 13Number 14 15 35 16 17Dependencies 18 19 EXT_texture3D affects the definition of this extension 20 SGIS_texture_filter4 affects the definition of this extension 21 22Overview 23 24 The base OpenGL provides clamping such that the texture coordinates are 25 limited to exactly the range [0,1]. When a texture coordinate is 26 clamped using this algorithm, the texture sampling filter straddles the 27 edge of the texture image, taking 1/2 its sample values from within the 28 texture image, and the other 1/2 from the texture border. It is 29 sometimes desirable to clamp a texture without requiring a border, and 30 without using the constant border color. 31 32 This extension defines a new texture clamping algorithm. 33 CLAMP_TO_EDGE_SGIS clamps texture coordinates at all mipmap levels such 34 that the texture filter never samples a border texel. When used with a 35 NEAREST or a LINEAR filter, the color returned when clamping is derived 36 only from texels at the edge of the texture image. When used with 37 FILTER4 filters, the filter operations of CLAMP_TO_EDGE_SGIS are defined 38 but don't result in a nice clamp-to-edge color. 39 40 CLAMP_TO_EDGE_SGIS is supported by 1, 2, and 3-dimensional textures 41 only. 42 43Issues 44 45 * Is the arithmetic for FILTER4 filters correct? Is this the right 46 thing to do? 47 48New Procedures and Functions 49 50 None 51 52New Tokens 53 54 Accepted by the <param> parameter of TexParameteri and TexParameterf, 55 and by the <params> parameter of TexParameteriv and TexParameterfv, when 56 their <pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or 57 TEXTURE_WRAP_R_EXT: 58 59 CLAMP_TO_EDGE_SGIS 0x812F 60 61Additions to Chapter 2 of the 1.0 Specification (OpenGL Operation) 62 63 None 64 65Additions to Chapter 3 of the 1.0 Specification (Rasterization) 66 67 GL Specification Table 3.7 is updated as follows: 68 69 Name Type Legal Values 70 ---- ---- ------------ 71 TEXTURE_WRAP_S integer CLAMP, REPEAT, 72 CLAMP_TO_EDGE_SGIS 73 TEXTURE_WRAP_T integer CLAMP, REPEAT, 74 CLAMP_TO_EDGE_SGIS 75 TEXTURE_WRAP_R_EXT integer CLAMP, REPEAT, 76 CLAMP_TO_EDGE_SGIS 77 TEXTURE_MIN_FILTER integer NEAREST, LINEAR, 78 NEAREST_MIPMAP_NEAREST, 79 NEAREST_MIPMAP_LINEAR, 80 LINEAR_MIPMAP_NEAREST, 81 LINEAR_MIPMAP_LINEAR, 82 FILTER4_SGIS, 83 LINEAR_CLIPMAP_LINEAR_SGIX 84 TEXTURE_MAG_FILTER integer NEAREST, LINEAR, 85 FILTER4_SGIS, 86 LINEAR_DETAIL_SGIS, 87 LINEAR_DETAIL_ALPHA_SGIS, 88 LINEAR_DETAIL_COLOR_SGIS, 89 LINEAR_SHARPEN_SGIS, 90 LINEAR_SHARPEN_ALPHA_SGIS, 91 LINEAR_SHARPEN_COLOR_SGIS, 92 LINEAR_LEQUAL_R_SGIS, 93 LINEAR_GEQUAL_R_SGIS 94 TEXTURE_BORDER_COLOR 4 floats any 4 values in [0,1] 95 DETAIL_TEXTURE_LEVEL_SGIS integer any non-negative integer 96 DETAIL_TEXTURE_MODE_SGIS integer ADD, MODULATE 97 TEXTURE_MIN_LOD_SGIS float any value 98 TEXTURE_MAX_LOD_SGIS float any value 99 TEXTURE_BASE_LEVEL_SGIS integer any non-negative integer 100 TEXTURE_MAX_LEVEL_SGIS integer any non-negative integer 101 GENERATE_MIPMAP_SGIS boolean TRUE or FALSE 102 TEXTURE_CLIPMAP_OFFSET_SGIX 2 floats any 2 values 103 104 Table 3.7: Texture parameters and their values. 105 106 CLAMP_TO_EDGE_SGIS texture clamping is specified by calling 107 TexParameteri with <target> set to TEXTURE_1D, TEXTURE_2D, or 108 TEXTURE_3D_EXT, <pname> set to TEXTURE_WRAP_S, TEXTURE_WRAP_T, 109 or TEXTURE_WRAP_R_EXT, and <param> set to CLAMP_TO_EDGE_SGIS. 110 111 Let [min,max] be the range of a clamped texture coordinate, and let N 112 be the size of the 1D, 2D, or 3D texture image in the direction of 113 clamping. Then in all cases 114 115 max = 1 - min 116 117 because the clamping is always symmetric about the [0,1] mapped range of 118 a texture coordinate. When used with NEAREST or LINEAR filters, 119 CLAMP_TO_EDGE_SGIS defines a minimum clamping value of 120 121 min = 1 / 2*N 122 123 When used with FILTER4 filters, CLAMP_TO_EDGE_SGIS defines a minimum 124 clamping value of 125 126 min = 3 / 2*N, N > 2 127 128 min = 1/2 N <= 2 129 130Additions to Chapter 4 of the 1.0 Specification (Per-Fragment Operations 131and the Framebuffer) 132 133 None 134 135Additions to Chapter 5 of the 1.0 Specification (Special Functions) 136 137 None 138 139Additions to Chapter 6 of the 1.0 Specification (State and State Requests) 140 141 None 142 143Additions to the GLX Specification 144 145 None 146 147Dependencies on EXT_texture3D 148 149 If EXT_texture3D is not implemented, then the references clamping of 3D 150 textures in this file are invalid, and references to TEXTURE_WRAP_R_EXT 151 should be ignored. 152 153Dependencies on SGIS_texture_filter4 154 155 If SGIS_texture_filter4 is not implemented, then discussions about the 156 interaction of filter4 texture filters and the clamping function 157 described in this file are invalid, and should be ignored. 158 159Errors 160 161 None 162 163New State 164 165 Only the type information changes for these parameters: 166 167 Get Value Get Command Type Initial Value Attrib 168 --------- ----------- ---- ------------- ------ 169 TEXTURE_WRAP_S GetTexParameteriv n x Z3 REPEAT texture 170 TEXTURE_WRAP_T GetTexParameteriv n x Z3 REPEAT texture 171 TEXTURE_WRAP_R_EXT GetTexParameteriv n x Z3 REPEAT texture 172 173New Implementation Dependent State 174 175 None 176