OpenGL.GL.EXT.texture_integer
OpenGL extension EXT.texture_integer
This module customises the behaviour of the
OpenGL.raw.GL.EXT.texture_integer to provide a more
Python-friendly API
Overview (from the spec)
Fixed-point textures in unextended OpenGL have integer components,
but those values are taken to represent floating-point values in
the range [0,1]. These integer components are considered
"normalized" integers. When such a texture is accessed by a
shader or by fixed-function fragment processing, floating-point
values are returned.
This extension provides a set of new "unnormalized" integer texture
formats. Formats with both signed and unsigned integers are provided. In
these formats, the components are treated as true integers. When such
textures are accessed by a shader, actual integer values are returned.
Pixel operations that read from or write to a texture or color
buffer with unnormalized integer components follow a path similar
to that used for color index pixel operations, except that more
than one component may be provided at once. Integer values flow
through the pixel processing pipe, and no pixel transfer
operations are performed. Integer format enumerants used for such
operations indicate unnormalized integer data.
Textures or render buffers with unnormalized integer formats may also be
attached to framebuffer objects to receive fragment color values written
by a fragment shader. Per-fragment operations that require floating-point
color components, including multisample alpha operations, alpha test,
blending, and dithering, have no effect when the corresponding colors are
written to an integer color buffer. The NV_gpu_program4 and
EXT_gpu_shader4 extensions add the capability to fragment programs and
fragment shaders to write signed and unsigned integer output values.
This extension does not enforce type consistency for texture accesses or
between fragment shaders and the corresponding framebuffer attachments.
The results of a texture lookup from an integer texture are undefined:
- for fixed-function fragment processing, or
- for shader texture accesses expecting floating-point return values.
The color components used for per-fragment operations and written into a
color buffer are undefined:
- for fixed-function fragment processing with an integer color buffer,
- for fragment shaders that write floating-point color components to an integer color buffer, or
- for fragment shaders that write integer color components to a color buffer with floating point or normalized integer components.
The official definition of this extension is available here:
http://www.opengl.org/registry/specs/EXT/texture_integer.txt
Functions
Constants
GL_ALPHA16I_EXT (36234)
GL_ALPHA16UI_EXT (36216)
GL_ALPHA32I_EXT (36228)
GL_ALPHA32UI_EXT (36210)
GL_ALPHA8I_EXT (36240)
GL_ALPHA8UI_EXT (36222)
GL_ALPHA_INTEGER_EXT (36247)
GL_BGR_INTEGER_EXT (36250)
GL_BGRA_INTEGER_EXT (36251)
GL_BLUE_INTEGER_EXT (36246)
GL_GREEN_INTEGER_EXT (36245)
GL_INTENSITY16I_EXT (36235)
GL_INTENSITY16UI_EXT (36217)
GL_INTENSITY32I_EXT (36229)
GL_INTENSITY32UI_EXT (36211)
GL_INTENSITY8I_EXT (36241)
GL_INTENSITY8UI_EXT (36223)
GL_LUMINANCE16I_EXT (36236)
GL_LUMINANCE16UI_EXT (36218)
GL_LUMINANCE32I_EXT (36230)
GL_LUMINANCE32UI_EXT (36212)
GL_LUMINANCE8I_EXT (36242)
GL_LUMINANCE8UI_EXT (36224)
GL_LUMINANCE_ALPHA16I_EXT (36237)
GL_LUMINANCE_ALPHA16UI_EXT (36219)
GL_LUMINANCE_ALPHA32I_EXT (36231)
GL_LUMINANCE_ALPHA32UI_EXT (36213)
GL_LUMINANCE_ALPHA8I_EXT (36243)
GL_LUMINANCE_ALPHA8UI_EXT (36225)
GL_LUMINANCE_ALPHA_INTEGER_EXT (36253)
GL_LUMINANCE_INTEGER_EXT (36252)
GL_RED_INTEGER_EXT (36244)
GL_RGB16I_EXT (36233)
GL_RGB16UI_EXT (36215)
GL_RGB32I_EXT (36227)
GL_RGB32UI_EXT (36209)
GL_RGB8I_EXT (36239)
GL_RGB8UI_EXT (36221)
GL_RGB_INTEGER_EXT (36248)
GL_RGBA16I_EXT (36232)
GL_RGBA16UI_EXT (36214)
GL_RGBA32I_EXT (36226)
GL_RGBA32UI_EXT (36208)
GL_RGBA8I_EXT (36238)
GL_RGBA8UI_EXT (36220)
GL_RGBA_INTEGER_EXT (36249)
GL_RGBA_INTEGER_MODE_EXT (36254)