| Name |
| |
| EXT_texture_mirror_clamp_to_edge |
| |
| Name Strings |
| |
| GL_EXT_texture_mirror_clamp_to_edge |
| |
| Contact |
| |
| Christophe Riccio, Unity Technologies (christophe.riccio 'at' unity3d.com) |
| |
| Contributors |
| |
| Contributors to ARB_texture_mirror_clamp_to_edge |
| Ian Romanick |
| Daniel Koch |
| |
| Notice |
| |
| Copyright (c) 2017 The Khronos Group Inc. Copyright terms at |
| http://www.khronos.org/registry/speccopyright.html |
| |
| Status |
| |
| Completed on September 7, 2017. |
| |
| Version |
| |
| Last Modified Date: September 7, 2017 |
| Revision 2 |
| |
| Number |
| |
| ES Extension #291 |
| |
| Dependencies |
| |
| OpenGL ES 2.0 is required. |
| |
| This extension interacts with OpenGL ES 3.0. |
| |
| This extension interacts with OpenGL ES 3.2. |
| |
| This extension interacts with OES_texture_3D. |
| |
| This extension is written against the OpenGL ES 3.2 Specification. |
| |
| Overview |
| |
| EXT_texture_mirror_clamp_to_edge extends the set of texture wrap modes to |
| include an additional mode (GL_MIRROR_CLAMP_TO_EDGE_EXT) that effectively uses |
| a texture map twice as large as the original image in which the additional |
| half of the new image is a mirror image of the original image. |
| |
| This new mode relaxes the need to generate images whose opposite edges |
| match by using the original image to generate a matching "mirror image". |
| This mode allows the texture to be mirrored only once in the negative |
| s, t, and r directions. |
| |
| New Procedure and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted by the <param> parameter of TexParameter{if}, SamplerParameter{if} |
| and SamplerParameter{if}v, and by the <params> parameter of |
| TexParameter{if}v, TexParameterI{i ui}v and SamplerParameterI{i ui}v when |
| their <pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or |
| TEXTURE_WRAP_R: |
| |
| MIRROR_CLAMP_TO_EDGE_EXT 0x8743 (same value as OpenGL core MIRROR_CLAMP_TO_EDGE) |
| |
| Additions to Chapter 8 if the OpenGL ES 3.2 Specification |
| (Textures and Samplers) |
| |
| In section 8.10 (Texture Parameters) modify the table entries for Table 8.16 |
| (Texture parameters and their values) for TEXTURE_WRAP_S, TEXTURE_WRAP_T, |
| and TEXTURE_WRAP_R and add the following to the "Legal Values" column: |
| |
| Name Type Legal Values |
| --------------- ---- ------------ |
| TEXTURE_WRAP_S enum (.. as before) |
| MIRROR_CLAMP_TO_EDGE |
| TEXTURE_WRAP_T enum (.. as before) |
| MIRROR_CLAMP_TO_EDGE |
| TEXTURE_WRAP_R enum (.. as before) |
| MIRROR_CLAMP_TO_EDGE |
| |
| In section 8.14.2 (Coordinate Wrapping and Texel Selection) add the |
| following row to Table 8.19 (Texel location wrap mode application): |
| |
| Wrap mode Result of wrap(coord) |
| --------- --------------------- |
| (previous entries..) |
| MIRROR_CLAMP_TO_EDGE min(1-1/(2*size), max(1/(2*size), abs(coord))) |
| |
| Additions to the GLX Specification |
| |
| None |
| |
| GLX Protocol |
| |
| None |
| |
| Dependencies on OES_texture_3D or equivalent |
| |
| If OES_texture_3D or equivalent functionality is not implemented, |
| then the references to clamping of 3D textures in this file are |
| invalid, and references to TEXTURE_WRAP_R should be ignored. |
| |
| Dependencies on OpenGL ES 3.0 or equivalent |
| |
| If OpenGL ES 3.0 or equivalent is not supported, then ignore all |
| references to sampler objects and SamplerParameter* functions. |
| |
| Dependencies on OpenGL ES 3.2 or equivalent |
| |
| If OpenGL ES 3.2 or equivalent is not supported, then ignore all |
| references to the TexParameterI* and SamplerParameterI* functions. |
| |
| New State |
| |
| Only the type information changes for these parameters: |
| |
| Update Table 21.10 (Textures - state per texture object) |
| Get Value Get Command Type Initial Value (...) |
| --------- ----------- ---- ------------- |
| TEXTURE_WRAP_S GetTexParameter n x Z5 see sec 8.19 (...) |
| TEXTURE_WRAP_T GetTexParameter n x Z5 see sec 8.19 (...) |
| TEXTURE_WRAP_R GetTexParameter n x Z5 see sec 8.19 (...) |
| |
| Update Table 21.12 (Textures - state per sampler object) |
| Get Value Get Command Type Initial Value (...) |
| --------- ----------- ---- ------------- |
| TEXTURE_WRAP_S GetSamplerParameteriv n x Z5 see sec 8.19 (...) |
| TEXTURE_WRAP_T GetSamplerParameteriv n x Z5 see sec 8.19 (...) |
| TEXTURE_WRAP_R GetSamplerParameteriv n x Z5 see sec 8.19 (...) |
| |
| New Implementation Dependent State |
| |
| None |
| |
| Issues |
| |
| None |
| |
| Revision History |
| |
| Revision 2 - September 7, 2017 (criccio) |
| - Require OpenGL ES 2.0 instead of OpenGL ES 3.0 |
| |
| Revision 1 - September 5, 2017 (criccio) |
| - Initial EXT version based on ARB_texture_mirror_clamp_to_edge |
| |
| |