1Name 2 3 EXT_texture_mirror_clamp_to_edge 4 5Name Strings 6 7 GL_EXT_texture_mirror_clamp_to_edge 8 9Contact 10 11 Christophe Riccio, Unity Technologies (christophe.riccio 'at' unity3d.com) 12 13Contributors 14 15 Contributors to ARB_texture_mirror_clamp_to_edge 16 Ian Romanick 17 Daniel Koch 18 19Notice 20 21 Copyright (c) 2017 The Khronos Group Inc. Copyright terms at 22 http://www.khronos.org/registry/speccopyright.html 23 24Status 25 26 Completed on September 7, 2017. 27 28Version 29 30 Last Modified Date: September 7, 2017 31 Revision 2 32 33Number 34 35 ES Extension #291 36 37Dependencies 38 39 OpenGL ES 2.0 is required. 40 41 This extension interacts with OpenGL ES 3.0. 42 43 This extension interacts with OpenGL ES 3.2. 44 45 This extension interacts with OES_texture_3D. 46 47 This extension is written against the OpenGL ES 3.2 Specification. 48 49Overview 50 51 EXT_texture_mirror_clamp_to_edge extends the set of texture wrap modes to 52 include an additional mode (GL_MIRROR_CLAMP_TO_EDGE_EXT) that effectively uses 53 a texture map twice as large as the original image in which the additional 54 half of the new image is a mirror image of the original image. 55 56 This new mode relaxes the need to generate images whose opposite edges 57 match by using the original image to generate a matching "mirror image". 58 This mode allows the texture to be mirrored only once in the negative 59 s, t, and r directions. 60 61New Procedure and Functions 62 63 None 64 65New Tokens 66 67 Accepted by the <param> parameter of TexParameter{if}, SamplerParameter{if} 68 and SamplerParameter{if}v, and by the <params> parameter of 69 TexParameter{if}v, TexParameterI{i ui}v and SamplerParameterI{i ui}v when 70 their <pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or 71 TEXTURE_WRAP_R: 72 73 MIRROR_CLAMP_TO_EDGE_EXT 0x8743 (same value as OpenGL core MIRROR_CLAMP_TO_EDGE) 74 75Additions to Chapter 8 if the OpenGL ES 3.2 Specification 76(Textures and Samplers) 77 78 In section 8.10 (Texture Parameters) modify the table entries for Table 8.16 79 (Texture parameters and their values) for TEXTURE_WRAP_S, TEXTURE_WRAP_T, 80 and TEXTURE_WRAP_R and add the following to the "Legal Values" column: 81 82 Name Type Legal Values 83 --------------- ---- ------------ 84 TEXTURE_WRAP_S enum (.. as before) 85 MIRROR_CLAMP_TO_EDGE 86 TEXTURE_WRAP_T enum (.. as before) 87 MIRROR_CLAMP_TO_EDGE 88 TEXTURE_WRAP_R enum (.. as before) 89 MIRROR_CLAMP_TO_EDGE 90 91 In section 8.14.2 (Coordinate Wrapping and Texel Selection) add the 92 following row to Table 8.19 (Texel location wrap mode application): 93 94 Wrap mode Result of wrap(coord) 95 --------- --------------------- 96 (previous entries..) 97 MIRROR_CLAMP_TO_EDGE min(1-1/(2*size), max(1/(2*size), abs(coord))) 98 99Additions to the GLX Specification 100 101 None 102 103GLX Protocol 104 105 None 106 107Dependencies on OES_texture_3D or equivalent 108 109 If OES_texture_3D or equivalent functionality is not implemented, 110 then the references to clamping of 3D textures in this file are 111 invalid, and references to TEXTURE_WRAP_R should be ignored. 112 113Dependencies on OpenGL ES 3.0 or equivalent 114 115 If OpenGL ES 3.0 or equivalent is not supported, then ignore all 116 references to sampler objects and SamplerParameter* functions. 117 118Dependencies on OpenGL ES 3.2 or equivalent 119 120 If OpenGL ES 3.2 or equivalent is not supported, then ignore all 121 references to the TexParameterI* and SamplerParameterI* functions. 122 123New State 124 125 Only the type information changes for these parameters: 126 127 Update Table 21.10 (Textures - state per texture object) 128 Get Value Get Command Type Initial Value (...) 129 --------- ----------- ---- ------------- 130 TEXTURE_WRAP_S GetTexParameter n x Z5 see sec 8.19 (...) 131 TEXTURE_WRAP_T GetTexParameter n x Z5 see sec 8.19 (...) 132 TEXTURE_WRAP_R GetTexParameter n x Z5 see sec 8.19 (...) 133 134 Update Table 21.12 (Textures - state per sampler object) 135 Get Value Get Command Type Initial Value (...) 136 --------- ----------- ---- ------------- 137 TEXTURE_WRAP_S GetSamplerParameteriv n x Z5 see sec 8.19 (...) 138 TEXTURE_WRAP_T GetSamplerParameteriv n x Z5 see sec 8.19 (...) 139 TEXTURE_WRAP_R GetSamplerParameteriv n x Z5 see sec 8.19 (...) 140 141New Implementation Dependent State 142 143 None 144 145Issues 146 147 None 148 149Revision History 150 151 Revision 2 - September 7, 2017 (criccio) 152 - Require OpenGL ES 2.0 instead of OpenGL ES 3.0 153 154 Revision 1 - September 5, 2017 (criccio) 155 - Initial EXT version based on ARB_texture_mirror_clamp_to_edge 156 157 158