• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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