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 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