1Name 2 3 IBM_texture_mirrored_repeat 4 5Name Strings 6 7 GL_IBM_texture_mirrored_repeat 8 9Version 10 11 $Date: 1999/12/28 01:40:35 $ $Revision: 1.2 $ 12 IBM Id: texture_mirrored_repeat.spec,v 1.5 1998/01/16 18:09:31 pbrown Exp 13 14Number 15 16 224 17 18Dependencies 19 20 EXT_texture_3D 21 IBM_texture_edge_clamp 22 23Overview 24 25 IBM_texture_mirrored_repeat extends the set of texture wrap modes to 26 include a mode (GL_MIRRORED_REPEAT_IBM) that effectively uses a texture 27 map twice as large at the original image in which the additional half of 28 the new image is a mirror image of the original image. 29 30 This new mode relaxes the need to generate images whose opposite edges 31 match by using the original image to generate a matching "mirror image". 32 33Issues 34 35 * The spec clamps the final (u,v) coordinates to the range [0.5, 2^n-0.5]. 36 This will produce the same effect as trapping a sample of the border texel 37 and using the corresponding edge texel. The choice of technique is purely 38 an implementation detail. 39 40New Procedures and Functions 41 42 None 43 44New Tokens 45 46 Accepted by the <param> parameter of TexParameteri and TexParameterf, 47 and by the <params> parameter of TexParameteriv and TexParameterfv, when 48 their <pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or 49 TEXTURE_WRAP_R_EXT: 50 51 GL_MIRRORED_REPEAT_IBM 0x8370 52 53Additions to Chapter 2 of the GL Specification (OpenGL Operation) 54 55 None. 56 57Additions to Chapter 3 of the GL Specification (Rasterization) 58 59 None 60 61Additions to Chapter 4 of the GL Specification (Per-Fragment Operations 62and the Framebuffer) 63 64 Change to Section 3.8 (Subsection "Texture Wrap Modes") 65 66 If TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R_EXT is set to 67 MIRRORED_REPEAT_IBM, the s (or t or r) coordinate is converted to: 68 69 s - floor(s), if floor(s) is even, or 70 1 - (s - floor(s)), if floor(s) is odd. 71 72 73 Change to Section 3.8.1, Texture Minification 74 75 Let: 76 u(x,y) = 2^n * s(x,y), 77 v(x,y) = 2^m * t(x,y), and 78 w(x,y) = 2^l * r(x,y). 79 80 If the TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R_EXT is set to 81 either MIRRORED_REPEAT_IBM or CLAMP_TO_EDGE_IBM, the resulting u, v, or 82 w coordinates (respectively) are clamped to the range [0.5, 2^n-0.5]. 83 84Additions to Chapter 5 of the GL Specification (Special Functions) 85 86 None 87 88Additions to Chapter 6 of the GL Specification (State and State Requests) 89 90 None 91 92Additions to the GLX Specification 93 94 None 95 96GLX Protocol 97 98 None. 99 100Errors 101 102 None 103 104Dependencies on EXT_texture3D 105 106 If EXT_texture3D is not implemented, then the references clamping of 3D 107 textures in this file are invalid, and references to TEXTURE_WRAP_R_EXT 108 should be ignored. 109 110Dependencies on IBM_texture_edge_clamp 111 112 If IBM_texture_edge_clamp is not implemented, then the references to 113 CLAMP_TO_EDGE_IBM should be ignored. 114 115New State 116 117 Only the type information changes for these parameters: 118 119 Get Value Get Command Type Initial Value Attrib 120 --------- ----------- ---- ------------- ------ 121 TEXTURE_WRAP_S GetTexParameteriv n x Z5 REPEAT texture 122 TEXTURE_WRAP_T GetTexParameteriv n x Z5 REPEAT texture 123 TEXTURE_WRAP_R_EXT GetTexParameteriv n x Z5 REPEAT texture 124 125New Implementation Dependent State 126 127 None 128