Name
IBM_texture_mirrored_repeat
Name Strings
GL_IBM_texture_mirrored_repeat
Version
$Date: 1999/12/28 01:40:35 $ $Revision: 1.2 $
IBM Id: texture_mirrored_repeat.spec,v 1.5 1998/01/16 18:09:31 pbrown Exp
Number
224
Dependencies
EXT_texture_3D
IBM_texture_edge_clamp
Overview
IBM_texture_mirrored_repeat extends the set of texture wrap modes to
include a mode (GL_MIRRORED_REPEAT_IBM) that effectively uses a texture
map twice as large at 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".
Issues
* The spec clamps the final (u,v) coordinates to the range [0.5, 2^n-0.5].
This will produce the same effect as trapping a sample of the border texel
and using the corresponding edge texel. The choice of technique is purely
an implementation detail.
New Procedures and Functions
None
New Tokens
Accepted by the parameter of TexParameteri and TexParameterf,
and by the parameter of TexParameteriv and TexParameterfv, when
their parameter is TEXTURE_WRAP_S, TEXTURE_WRAP_T, or
TEXTURE_WRAP_R_EXT:
GL_MIRRORED_REPEAT_IBM 0x8370
Additions to Chapter 2 of the GL Specification (OpenGL Operation)
None.
Additions to Chapter 3 of the GL Specification (Rasterization)
None
Additions to Chapter 4 of the GL Specification (Per-Fragment Operations
and the Framebuffer)
Change to Section 3.8 (Subsection "Texture Wrap Modes")
If TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R_EXT is set to
MIRRORED_REPEAT_IBM, the s (or t or r) coordinate is converted to:
s - floor(s), if floor(s) is even, or
1 - (s - floor(s)), if floor(s) is odd.
Change to Section 3.8.1, Texture Minification
Let:
u(x,y) = 2^n * s(x,y),
v(x,y) = 2^m * t(x,y), and
w(x,y) = 2^l * r(x,y).
If the TEXTURE_WRAP_S, TEXTURE_WRAP_T, or TEXTURE_WRAP_R_EXT is set to
either MIRRORED_REPEAT_IBM or CLAMP_TO_EDGE_IBM, the resulting u, v, or
w coordinates (respectively) are clamped to the range [0.5, 2^n-0.5].
Additions to Chapter 5 of the GL Specification (Special Functions)
None
Additions to Chapter 6 of the GL Specification (State and State Requests)
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 clamping of 3D
textures in this file are invalid, and references to TEXTURE_WRAP_R_EXT
should be ignored.
Dependencies on IBM_texture_edge_clamp
If IBM_texture_edge_clamp is not implemented, then the references to
CLAMP_TO_EDGE_IBM 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