blob: 05cf4fb91ce0dabbd16b778e42103cf57b6e0e3d [file] [log] [blame]
Name
ARM_texture_unnormalized_coordinates
Name Strings
GL_ARM_texture_unnormalized_coordinates
Contact
Jan-Harald Fredriksen ( jan-harald.fredriksen 'at' arm.com)
Contributors
Jan-Harald Fredriksen, ARM
Status
Complete
Version
Last Modified Date: December 17, 2019
Revision: 1
Number
324
Dependencies
OpenGL ES 3.0 is required.
This extension is written against OpenGL ES 3.2, May 14th 2018.
Overview
This extension provides the option to switch to unnormalized
coordinates for texture lookups using a sampler parameter.
Texture lookup in OpenGL ES is done using normalized coordinates. For
certain applications it is convenient to work with non-normalized
coordinates instead. It also beneficial to keep support for bilinear
filtering.
Additional restrictions apply to textures with non-normalized
coordinates that affect texture completeness and the available
texture lookup functions.
IP Status
No known IP claims.
New Procedures and Functions
None
New Tokens
Accepted by the <pname> parameter of TexParameteri, TexParameterf,
TexParameteriv, TexParameterfv, SamplerParameteri, SamplerParameterf,
SamplerParameteriv, SamplerParameterfv, TexParameterIivEXT,
TexParameterIuivEXT, SamplerParameterIivEXT, SamplerParameterIuivEXT,
GetTexParameteriv, GetTexParameterfv, GetTexParameterIivEXT,
GetTexParameterIuivEXT, GetSamplerParameteriv, GetSamplerParameterfv,
GetSamplerParameterIivEXT, and GetSamplerParameterIuivEXT:
TEXTURE_UNNORMALIZED_COORDINATES_ARM 0x8F6A
Additions to Chapter 8 of the OpenGL ES 3.2 Specification (Textures and Samplers)
Add a section after section 8.15 (Texture Magnification)
8.xx Unnormalized coordinates
If the value of TEXTURE_UNNORMALIZED_COORDINATES_ARM is TRUE, then the range
of the coordinates used to lookup the texture value is in the range of zero
to the texture dimensions for x, y and z, rather than in the range of zero
to one.
When the value of TEXTURE_UNNORMALIZED_COORDINATES_ARM is TRUE,
equation 8.9 is not used. Instead, let
u(x; y) = s(x; y)
v(x; y) = t(x; y)
w(x; y) = r(x; y)
When the value of TEXTURE_UNNORMALIZED_COORDINATES_ARM is TRUE, results of
a texture lookup are undefined if any of the following conditions is true:
- the texture access is performed with a lookup functions that supports
texel offsets
- the texture access is performed with a lookup functions with projection
Add to 8.17 Texture Completeness
Add to the conditions for texture completeness below "Using the preceding
definitions, a texture is complete unless any of the following conditions
hold true:":
* The value of TEXTURE_UNNORMALIZED_COORDINATES_ARM is TRUE, and any of
** the texture is not a two-dimensional texture
** the minification filter is not NEAREST
** the magnification is not NEAREST
** the value of TEXTURE_BASE_LEVEL is not 0
** the value of TEXTURE_WRAP_S and TEXTURE_WRAP_T is not CLAMP_TO_EDGE nor CLAMP_TO_BORDER
** the value of TEXTURE_COMPARE_MODE is not NONE
Errors
None.
New State
Modify Table 21.12: Textures (state per sampler object)
Add the following parameter:
Get Value Type Get Command Value Description Sec.
------------------------------------- ----- ------------------- ------- ------------------- ----
TEXTURE_UNNORMALIZED_COORDINATES_ARM B GetSamplerParameter FALSE unnormalized coords 8.xx
New Implementation Dependent State
None
Issues
None
Revision History
Rev. Date Author Changes
---- ---------- -------- -----------------------------------------
1 2019-12-17 jhf initial version