1Name 2 3 ATI_texture_mirror_once 4 5Name Strings 6 7 GL_ATI_texture_mirror_once 8 9Contact 10 11 Dan Ginsburg, AMD (dan.ginsburg 'at' amd.com) 12 13Version 14 15 Last Modified Date: 11/4/2006 Revision: 0.31 16 17Number 18 19 221 20 21Dependencies 22 23 EXT_texture3D 24 25Overview 26 27 ATI_texture_mirror_once extends the set of texture wrap modes to 28 include two modes (GL_MIRROR_CLAMP_ATI, GL_MIRROR_CLAMP_TO_EDGE_ATI) 29 that effectively use a texture map twice as large as the original image 30 in which the additional half of the new image is a mirror image of the 31 original image. 32 33 This new mode relaxes the need to generate images whose opposite edges 34 match by using the original image to generate a matching "mirror image". 35 This mode allows the texture to be mirrored only once in the negative 36 s, t, and r directions. 37 38Issues 39 40 None known 41 42New Procedure and Functions 43 44 None 45 46New Tokens 47 48 Accepted by the <param> parameter of TexParameteri and TexParameterf, 49 and by the <params> parameter of TexParameteriv and TexParameterfv, when 50 their <pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or 51 TEXTURE_WRAP_R_EXT: 52 53 MIRROR_CLAMP_ATI 0x8742 54 MIRROR_CLAMP_TO_EDGE_ATI 0x8743 55 56Additions to Chapter 2 of the OpenGL 1.2.1 Specification (Operation) 57 58 None 59 60Additions to Chapter 3 if the OpenGL 1.2.1 Specification (Rasterization): 61 62 - (3.8.3, p. 124) Change first three entries in table: 63 64 "TEXTURE_WRAP_S integer CLAMP, CLAMP_TO_EDGE, REPEAT, 65 MIRROR_CLAMP_ATI, MIRROR_CLAMP_TO_EDGE_ATI 66 TEXTURE_WRAP_T integer CLAMP, CLAMP_TO_EDGE, REPEAT, 67 MIRROR_CLAMP_ATI, MIRROR_CLAMP_TO_EDGE_ATI 68 TEXTURE_WRAP_R integer CLAMP, CLAMP_TO_EDGE, REPEAT, 69 MIRROR_CLAMP_ATI, MIRROR_CLAMP_TO_EDGE_ATI" 70 71 - (3.8.4, p. 125) Added after second paragraph: 72 73 "If TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R_EXT is set to 74 MIRROR_CLAMP_ATI or MIRROR_CLAMP_TO_EDGE_ATI, the s (or t or r) 75 coordinate is clamped to [-1, 1] and then converted to: 76 77 s 0 <= s <= 1 78 -s -1 <= s < 0 79 80 Like the CLAMP wrap mode, with MIRROR_CLAMP_ATI the texels from 81 the border can be used by the texture filter. MIRROR_CLAMP_TO_EDGE_ATI 82 clamps texture coordinates at all mipmap levels such that the texture 83 filter never samples a border texel." 84 85 - (3.8.5, p.127) Change last paragraph to: 86 87 "When TEXTURE_MIN_FILTER is LINEAR, a 2 x 2 x 2 cube of texels in the 88 image array of level TEXTURE_BASE_LEVEL is selected. This cube is 89 obtained by first clamping texture coordinates as described above 90 under Texture Wrap Modes (if the wrap mode for a coordinate is CLAMP, 91 CLAMP_TO_EDGE, MIRROR_CLAMP_ATI, or MIRROR_CLAMP_TO_EDGE_ATI) and 92 computing..." 93 94 95Additions to Chapter 4: 96 97 None 98 99Additions to Chapter 5: 100 101 None 102 103Additions to Chapter 6: 104 105 None 106 107Additions to the GLX Specification 108 109 None 110 111GLX Protocol 112 113 None 114 115Errors 116 117 None 118 119Dependencies on EXT_texture3D 120 121 If EXT_texture3D is not implemented, then the references to clamping of 3D 122 textures in this file are invalid, and references to TEXTURE_WRAP_R_EXT 123 should be ignored. 124 125 126New State 127 128 Only the type information changes for these parameters: 129 130 Get Value Get Command Type Initial Value Attrib 131 --------- ----------- ---- ------------- ------ 132 TEXTURE_WRAP_S GetTexParameteriv n x Z5 REPEAT texture 133 TEXTURE_WRAP_T GetTexParameteriv n x Z5 REPEAT texture 134 TEXTURE_WRAP_R_EXT GetTexParameteriv n x Z5 REPEAT texture 135 136New Implementation Dependent State 137 138 None 139 140 141 142