| Name |
| |
| ATI_texture_mirror_once |
| |
| Name Strings |
| |
| GL_ATI_texture_mirror_once |
| |
| Contact |
| |
| Dan Ginsburg, AMD (dan.ginsburg 'at' amd.com) |
| |
| Version |
| |
| Last Modified Date: 11/4/2006 Revision: 0.31 |
| |
| Number |
| |
| 221 |
| |
| Dependencies |
| |
| EXT_texture3D |
| |
| Overview |
| |
| ATI_texture_mirror_once extends the set of texture wrap modes to |
| include two modes (GL_MIRROR_CLAMP_ATI, GL_MIRROR_CLAMP_TO_EDGE_ATI) |
| that effectively use 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. |
| |
| Issues |
| |
| None known |
| |
| New Procedure and Functions |
| |
| None |
| |
| New Tokens |
| |
| Accepted by the <param> parameter of TexParameteri and TexParameterf, |
| and by the <params> parameter of TexParameteriv and TexParameterfv, when |
| their <pname> parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or |
| TEXTURE_WRAP_R_EXT: |
| |
| MIRROR_CLAMP_ATI 0x8742 |
| MIRROR_CLAMP_TO_EDGE_ATI 0x8743 |
| |
| Additions to Chapter 2 of the OpenGL 1.2.1 Specification (Operation) |
| |
| None |
| |
| Additions to Chapter 3 if the OpenGL 1.2.1 Specification (Rasterization): |
| |
| - (3.8.3, p. 124) Change first three entries in table: |
| |
| "TEXTURE_WRAP_S integer CLAMP, CLAMP_TO_EDGE, REPEAT, |
| MIRROR_CLAMP_ATI, MIRROR_CLAMP_TO_EDGE_ATI |
| TEXTURE_WRAP_T integer CLAMP, CLAMP_TO_EDGE, REPEAT, |
| MIRROR_CLAMP_ATI, MIRROR_CLAMP_TO_EDGE_ATI |
| TEXTURE_WRAP_R integer CLAMP, CLAMP_TO_EDGE, REPEAT, |
| MIRROR_CLAMP_ATI, MIRROR_CLAMP_TO_EDGE_ATI" |
| |
| - (3.8.4, p. 125) Added after second paragraph: |
| |
| "If TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R_EXT is set to |
| MIRROR_CLAMP_ATI or MIRROR_CLAMP_TO_EDGE_ATI, the s (or t or r) |
| coordinate is clamped to [-1, 1] and then converted to: |
| |
| s 0 <= s <= 1 |
| -s -1 <= s < 0 |
| |
| Like the CLAMP wrap mode, with MIRROR_CLAMP_ATI the texels from |
| the border can be used by the texture filter. MIRROR_CLAMP_TO_EDGE_ATI |
| clamps texture coordinates at all mipmap levels such that the texture |
| filter never samples a border texel." |
| |
| - (3.8.5, p.127) Change last paragraph to: |
| |
| "When TEXTURE_MIN_FILTER is LINEAR, a 2 x 2 x 2 cube of texels in the |
| image array of level TEXTURE_BASE_LEVEL is selected. This cube is |
| obtained by first clamping texture coordinates as described above |
| under Texture Wrap Modes (if the wrap mode for a coordinate is CLAMP, |
| CLAMP_TO_EDGE, MIRROR_CLAMP_ATI, or MIRROR_CLAMP_TO_EDGE_ATI) and |
| computing..." |
| |
| |
| Additions to Chapter 4: |
| |
| None |
| |
| Additions to Chapter 5: |
| |
| None |
| |
| Additions to Chapter 6: |
| |
| None |
| |
| Additions to the GLX Specification |
| |
| None |
| |
| GLX Protocol |
| |
| None |
| |
| Errors |
| |
| None |
| |
| Dependencies on EXT_texture3D |
| |
| If EXT_texture3D is not implemented, then the references to clamping of 3D |
| textures in this file are invalid, and references to TEXTURE_WRAP_R_EXT |
| should be ignored. |
| |
| |
| New State |
| |
| Only the type information changes for these parameters: |
| |
| Get Value Get Command Type Initial Value Attrib |
| --------- ----------- ---- ------------- ------ |
| TEXTURE_WRAP_S GetTexParameteriv n x Z5 REPEAT texture |
| TEXTURE_WRAP_T GetTexParameteriv n x Z5 REPEAT texture |
| TEXTURE_WRAP_R_EXT GetTexParameteriv n x Z5 REPEAT texture |
| |
| New Implementation Dependent State |
| |
| None |
| |
| |
| |