Guile-OpenGL

Next: , Up: (dir)   [Index]

Guile-OpenGL

This manual is for Guile-OpenGL (version 0.1.0, updated 23 March 2014)

Copyright © 2014 Free Software Foundation, Inc. and others.

Guile-OpenGL is free software: you can redistribute and/or modify it and its documentation under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

Guile-OpenGL is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Portions of this document were generated from the upstream OpenGL documentation. The work as a whole is redistributable under the license above. Sections containing generated documentation are prefixed with a specific copyright header.


Next: , Previous: , Up: Top   [Index]

1 Introduction

Guile-OpenGL is Guile’s interface to OpenGL.

In addition to the OpenGL API, Guile also provides access to related libraries and toolkits such as GLU, GLX, and GLUT. The following chapters discuss the parts of OpenGL and how Guile binds them.

But before that, some notes on the binding as a whole.


Up: Introduction   [Index]

1.1 About

Guile-OpenGL uses the dynamic foreign function interface provided by Guile 2.0, providing access to OpenGL without any C code at all. In fact, much of Guile-OpenGL (and this manual) is automatically generated from upstream API specifications and documentation.

We have tried to do a very complete job at wrapping OpenGL, and additionally have tried to provide a nice Scheme interface as well. Our strategy has been to separate the binding into low-level and high-level pieces.

The low-level bindings correspond exactly with the OpenGL specification, and are well-documented. However, these interfaces are not so nice to use from Scheme; output arguments have to be allocated by the caller, and there is only the most basic level of type checking, and no sanity checking at all. For example, you can pass a bytevector of image data to the low-level glTexImage2D procedure, but no check is made that the dimensions you specify actually correspond to the size of the bytevector. This function could end up reading past the end of the bytevector. Worse things can happen with procedures that write to arrays, like glGetTexImage.

The high-level bindings are currently a work in progress, and are being manually written. They intend to be a complete interface to the OpenGL API, without the need to use the low-level bindings. However, the low-level bindings will always be available for you to use if needed, and have the advantage that their behavior is better documented and specified by OpenGL itself.

Low-level bindings are accessed by loading the (module low-level), for example via:

(use-modules (gl low-level))

The high-level modules are named like (module), for example (gl).


Next: , Previous: , Up: Top   [Index]

2 API Conventions

FIXME: A very rough draft. Bindings and text are not fully synced until more work is done here.

This chapter documents the general conventions used by the low-level and high-level bindings. Any conventions specific to a particular module are documented in the relevent section.

As Guile-OpenGL is in very early stages of development these conventions are subject to change. Feedback is certainly welcome, and nothing is set in stone.


Next: , Up: API Conventions   [Index]

2.1 Enumerations

The OpenGL API defines many symbolic constants, most of which are collected together as named enumerations or bitfields. Access to these constants is the same for the low-level bindings and high-level interface.

For each OpenGL enumeration type, there is a similarly named Scheme type whose constructor takes an unquoted Scheme symbol naming one of the values. Guile-OpenGL translates the names to a more common Scheme style:

For example, the OpenGL API defines an enumeration with symbolic constants whose C names are GL_POINTS, GL_LINES, GL_TRIANGLES, and so on. Collectively they form the BeginMode enumeration type. To access these constants in Guile, apply the constant name to the enumeration type: (begin-mode triangles).

Bitfields are similar, though the constructor accepts multiple symbols and produces an appropriate mask. In the GLUT API there is the DisplayMode bitfield, with symbolic constants GLUT_RGB, GLUT_INDEX, GLUT_SINGLE, and so on. To create a mask representing a double-buffered, rgb display-mode with a depth buffer: (display-mode double rgb depth).

Enumeration and bitfield values, once constructed, can be compared using eqv?. For example, to determine if modelview is the current matrix mode use (eqv? (gl-matrix-mode) (matrix-mode modelview)).


Previous: , Up: API Conventions   [Index]

2.2 Functions

The low-level bindings currently use names identical to their C API counterparts.

High-level bindings adopt names that are closer to natural language, and a more common style for Scheme:

Some function names are altered in additional ways, to make clear which object is being operated on. Functions that mutate objects or state will have their name prefixed with set-, such as set-matrix-mode.

FIXME: This choice may be too unnatural for GL users.

Where the C API specifies multiple functions that perform a similar task on varying number and types of arguments, the high-level bindings provide a single function that takes optional arguments, and, where appropriate, using only the most natural type. Consider the group of C API functions including glVertex2f, glVertex3f, and so on; the high-level GL interface provides only a single function glVertex with optional arguments.

The high-level interfaces may differ in other ways, and it is important to refer to the specific documentation.

It is generally fine to intermix functions from corresponding low-level and high-level bindings. This can be useful if you know the specific type of data you are working with and want to avoid the overhead of dynamic dispatch at runtime. Any cases where such intermixing causes problems will be noted in the documentation for the high-level bindings.


Next: , Previous: , Up: Top   [Index]

3 GL


Next: , Up: GL   [Index]

3.1 About OpenGL

The OpenGL API is a standard interface for drawing three-dimensional graphics. From its origin in Silicon Graphics’s workstations the early 1990s, today it has become ubiquitous, with implementations on mobile phones, televisions, tablets, desktops, and even web browsers.

OpenGL has been able to achieve such widespread adoption not just because it co-evolved with powerful graphics hardware, but also because it was conceived of as an interface specification and not a piece of source code. In fact, these days it is a family of APIs, available in several flavors and versions:

OpenGL 1.x

This series of specifications started with the original releases in 1992, and ended with OpenGL 1.5 in 2003. This era corresponds to a time when graphics cards were less powerful and more special-purpose, with dedicated hardware to handle such details as fog and lighting. As such the OpenGL 1.x API reflects the capabilities of these special units.

OpenGL 2.x

By the early 2000s, graphics hardware had become much more general-purpose and needed a more general-purpose API. The so-called fixed-function rendering pipeline of the earlier years was replaced with a programmable rendering pipeline, in which effects that would have required special hardware were instead performed by custom programs running on the graphics card. OpenGL added support for allocating buffer objects on the graphics card, and for shader programs, which did the actual rendering. In time, this buffer-focused API came to be the preferred form of talking to the GL.

OpenGL ES

OpenGL ES was a “cut-down” version of OpenGL 2.x, designed to be small enough to appeal to embedded device vendors. OpenGL ES 1.x removed some of the legacy functionality from OpenGL, while adding interfaces to use fixed-point math, for devices without floating-point units. OpenGL ES 2.x went farther still, removing the fixed-function pipeline entirely. OpenGL ES 2.x is common on current smart phone platforms.

OpenGL 3.x and above

The OpenGL 3.x series followed the lead of OpenGL ES, first deprecating (in 3.0) and then removing (in 3.1) the fixed-function pipeline. OpenGL 3.0 was released in 2008, but the free Mesa impementation only began supporting it in 2012, so it is currently (23 March 2014) less common.

Guile wraps the OpenGL 2.1 API. It’s a ubiquitous subset of the OpenGL implementations that are actually deployed in the wild; its legacy API looks back to OpenGL 1.x, while the buffer-oriented API is compatible with OpenGL ES.

The full OpenGL 2.1 specification is available at http://www.opengl.org/registry/doc/glspec21.20061201.pdf.


Next: , Previous: , Up: GL   [Index]

3.2 GL Contexts

All this talk about drawing is very well and good, but how do you actually get a canvas? Interestingly enough, this is outside the purview of the OpenGL specification. There are specific ways to get an OpenGL context for each different windowing system that is out there. OpenGL is all crayons and no paper.

For the X window system, there is a standard API for creating a GL context given a window (or a drawable), GLX. See GLX, for more information on its binding in Guile.

Bseides creating contexts from native windows or drawables, each backend also supports functions to make a context current. The OpenGL API is stateful; you can think of each call as taking an implicit current context parameter, which holds the current state of the GL and is operated on by the function in question. Contexts are thread-specific, and one context should not be active on more than one thread at a time.

All calls to OpenGL functions must be made while a context is active; otherwise the result is undefined. Hopefully while you are getting used to this rule, your driver is nice enough not to crash on you if you call a function outside a GL context, but it’s not even required to do that. Backend-specific functions may or may not require a context to be current; for example, Windows requires a context to be current, wheras GLX does not.

There have been a few attempts at abstracting away the need for calling API specific to a given windowing system, notably GLUT and EGL. GLUT is the older of the two, and though it is practically unchanged since the mid-1990s, it is still widely used on desktops. See GLUT, for more on GLUT.

EGL is technically part of OpenGL ES, and was designed with the modern OpenGL API and mobile hardware in mind, though it also works on the desktop. Guile does not yet have an EGL binding.


Next: , Previous: , Up: GL   [Index]

3.3 Rendering

To draw with OpenGL, you obtain a drawing context (see GL Contexts) and send the GL some geometry. (You can think of the GL as a layer over your graphics card.) You can give the GL points, lines, and triangles in three-dimensional space. You configure your GL to render a certain part of space, and it takes your geometry, rasterizes it, and writes it to the screen (when you tell it to).

That’s the basic idea. You can customize most parts of this rendering pipeline, by specifying attributes of your geometry with the OpenGL API, and by programmatically operating on the geometry and the pixels with programs called shaders.

GL is an immediate-mode graphics API, which is to say that it doesn’t keep around a scene graph of objects. Instead, at every frame you as the OpenGL user have to tell the GL what is in the world, and how to paint it. It’s a fairly low-level interface, but a powerful one. See http://www.opengl.org/wiki/Rendering_Pipeline_Overview, for more details.

In the old days of OpenGL 1.0, it was common to call a function to paint each individual vertex. You’ll still see this style in some old tutorials. This quickly gets expensive if you have a lot of vertexes, though. This style, known as Legacy OpenGL, was deprecated and even removed from some versions of OpenGL. See http://www.opengl.org/wiki/Legacy_OpenGL, for more on the older APIs.

Instead, the newer thing to do is to send the geometry to the GL in a big array buffer, and have the GL draw geometry from the buffer. The newer functions like glGenBuffers allocate buffers, returning an integer that names a buffer managed by the GL. You as a user can update the contents of the buffer, but when drawing you reference the buffer by name. This has the advantage of reducing the chatter and data transfer between you and the GL, though it can be less convenient to use.

So which API should you use? Use what you feel like using, if you have a choice. Legacy OpenGL isn’t going away any time soon on the desktop. Sometimes you don’t have a choice, though; for example, when targeting a device that only supports OpenGL ES 2.x, legacy OpenGL is unavailable.

But if you want some advice, we suggest that you use the newer APIs. Not only will your code be future-proof and more efficient on the GL level, reducing the number of API calls improves performance, and it can reduce the amount of heap allocation in your program. All floating-point numbers are currently allocated on the heap in Guile, and doing less floating-point math in tight loops can only be a good thing.


Next: , Previous: , Up: GL   [Index]

3.4 GL API

The procedures exported from the (gl) module are documented below, organized by their corresponding section in the OpenGL 2.1 specification.

(use-modules (gl))

See http://www.opengl.org/registry/doc/glspec21.20061201.pdf, for more information.


Next: , Up: GL API   [Index]

3.4.1 OpenGL Operation

3.4.1.1 Begin/End Paradigm

Macro: gl-begin begin-mode body ...

Begin immediate-mode drawing with begin-mode, evaluate the sequence of body expressions, and then end drawing (as with glBegin and glEnd).

The values produced by the last body expression are returned to the continuation of the gl-begin.

Function: gl-edge-flag boundary?

Flag edges as either boundary or nonboundary. Note that the edge mode is only significant if the polygon-mode is line or point.

3.4.1.2 Vertex Specification

Function: gl-vertex x y [z=0.0] [w=1.0]

Draw a vertex at the given coordinates.

The following procedures modify the current per-vertex state. Drawing a vertex captures the current state and associates it with the vertex.

Function: gl-texture-coordinates s [t=0.0] [r=0.0] [q=1.0]

Set the current texture coordinate.

Function: gl-multi-texture-coordinates texture s [t=0.0] [r=0.0] [q=1.0]

Set the current texture coordinate for a specific texture unit.

Function: gl-color red green blue [alpha=1.0]

Set the current color.

Function: gl-vertex-attribute index x [y=0.0] [z=0.0] [w=1.0]

Set the current value of a generic vertex attribute.

Function: gl-normal x y z

Set the current normal vector. By default the normal should have unit length, though setting (enable-cap rescale-normal) or (enable-cap normalize) can change this.

Function: gl-fog-coordinate coord

Set the current fog coordinate.

Function: gl-secondary-color red green blue

Set the current secondary color.

Function: gl-index c

Set the current color index.

3.4.1.3 Rectangles

Function: gl-rectangle x1 y1 x2 y2

Draw a rectangle in immediate-mode with a given pair of corner points.

3.4.1.4 Coordinate Transformation

Function: gl-depth-range near-val far-val

Specify the mapping of the near and far clipping planes, respectively, to window coordinates.

Function: gl-viewport x y width height

Set the viewport: the pixel position of the lower-left corner of the viewport rectangle, and the width and height of the viewport.

Function: gl-load-matrix m [#:transpose=#f]

Load a matrix. m should be a packed vector in column-major order.

Note that Guile’s two-dimensional arrays are stored in row-major order, so you might need to transpose the matrix as it is loaded (via the #:transpose keyword argument).

Function: gl-multiply-matrix m [#:transpose=#f]

Multiply the current matrix by m. As with gl-load-matrix, you might need to transpose the matrix first.

Function: set-gl-matrix-mode matrix-mode

Set the current matrix mode. See the matrix-mode enumerator.

Macro: with-gl-push-matrix body ...

Save the current matrix, evaluate the sequence of body expressions, and restore the saved matrix.

Function: gl-load-identity

Load the identity matrix.

Function: gl-rotate angle x y z

Rotate the current matrix about the vector (x,y,z). angle should be specified in degrees.

Function: gl-translate x y z

Translate the current matrix.

Function: gl-scale x y z

Scale the current matrix.

Function: gl-frustum left right bottom top near-val far-val

Multiply the current matrix by a perspective matrix. left, right, bottom, and top are the coordinates of the corresponding clipping planes. near-val and far-val specify the distances to the near and far clipping planes.

Function: gl-ortho left right bottom top near-val far-val

Multiply the current matrix by a perspective matrix. left, right, bottom, and top are the coordinates of the corresponding clipping planes. near-val and far-val specify the distances to the near and far clipping planes.

Function: set-gl-active-texture texture

Set the active texture unit.

Function: gl-enable enable-cap
Function: gl-disable enable-cap

Enable or disable server-side GL capabilities.

3.4.1.5 Colors and Coloring

Function: set-gl-shade-model mode

Select flat or smooth shading.


Next: , Previous: , Up: GL API   [Index]

3.4.2 Rasterization


Next: , Previous: , Up: GL API   [Index]

3.4.3 Per-Fragment Operations

Function: set-gl-stencil-function stencil-function k [#:mask] [#:face]

Set the front and/or back function and the reference value k for stencil testing. Without the face keyword argument, both functions are set. The default mask is all-inclusive.

Function: set-gl-stencil-operation stencil-fail depth-fail depth-pass [#:face]

Set the front and/or back stencil test actions. Without the face keyword argument, both stencil test actions are set. See the stencil-op enumeration for possible values for stencil-fail, depth-fail, and depth-pass.

Function: set-gl-blend-equation mode-rgb [mode-alpha=mode-rgb]

Set the blend equation. With one argument, set the same blend equation for all components. Pass two arguments to specify a separate equation for the alpha component.

Function: set-gl-blend-function src-rgb dest-rgb [src-alpha=src-rgb] [dest-alpha=dest-rgb]

Set the blend function. With two arguments, set the same blend function for all components. Pass an additional two arguments to specify separate functions for the alpha components.

Function: set-gl-scissor x y width height

Define the scissor box. The box is defined in window coordinates, with (x,y) being the lower-left corner of the box.

Function: set-gl-sample-coverage value invert

Specify multisample coverage parameters.

Function: set-gl-alpha-function func ref

Specify the alpha test function. See the alpha-function enumerator.

Function: set-gl-depth-function func

Specify the depth test function. See the depth-function enumerator.

Function: set-gl-blend-color r g b a

Specify the blend color.

Function: set-gl-logic-operation opcode

Specify a logical pixel operation for color index rendering.

3.4.3.1 Whole Framebuffer Operations

Function: set-gl-draw-buffers buffers

Specify a list of color buffers to be drawn into. buffers should be a list of draw-buffer-mode enumerated values.

Function: set-gl-stencil-mask mask [#:face]

Control the writing of individual bits into the front and/or back stencil planes. With one argument, the stencil mask for both states are set.

Function: set-gl-draw-buffer mode

Specify the buffer or buffers to draw into.

Function: set-gl-index-mask mask

Control the writing of individual bits into the color index buffers.

Function: set-gl-color-mask red? green? blue? alpha?

Enable and disable writing of frame buffer color components.

Function: set-gl-depth-mask enable?

Enable and disable writing into the depth buffer.

Function: gl-clear mask

Clear a set of buffers to pre-set values. Use the clear-buffer-mask enumerator to specify which buffers to clear.

Function: set-gl-clear-color r g b a

Set the clear color for the color buffers.

Function: set-gl-clear-index c

Set the clear index for the color index buffers.

Function: set-gl-clear-depth depth

Set the clear value for the depth buffer.

Function: set-gl-clear-stencil-value s

Set the clear value for the stencil buffer.

Function: set-gl-clear-accumulation-color r g b a

Set the clear color for the accumulation buffer.

Function: set-gl-accumulation-buffer-operation op value

Operate on the accumulation buffer. op may be one of the accum-op enumerated values. The interpretation of value depends on op.

3.4.3.2 Drawing, Reading and Copying Pixels

Function: set-gl-read-buffer mode

Select a color buffer source for pixels. Use read-buffer-mode to select a mode.

Function: gl-copy-pixels x y width height type

Copy pixels from a screen-aligned rectangle in the frame buffer to a region relative to the current raster position. type selects which buffer to copy from.


Next: , Previous: , Up: GL API   [Index]

3.4.4 Special Functions


Previous: , Up: GL API   [Index]

3.4.5 State and State Requests

3.4.5.1 Querying GL State

Macro: with-gl-push-attrib bits body ...

Save part of the current state, evaluation the sequence of body expressions, then restore the state. Use attrib-mask to specify which parts of the state to save.


Next: , Previous: , Up: GL   [Index]

3.5 GL Enumerations

The functions from this section may be had by loading the module:

(use-modules (gl enums)
Macro: attrib-mask bit...

Bitfield constructor. The symbolic bit arguments are replaced with their corresponding numeric values and combined with logior at compile-time. The symbolic arguments known to this bitfield constructor are:

current, point, line, polygon, polygon-stipple, pixel-mode, lighting, fog, depth-buffer, accum-buffer, stencil-buffer, viewport, transform, enable, color-buffer, hint, eval, list, texture, scissor, all-attrib.

Macro: version-1-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

multisample-bit, multisample, sample-alpha-to-coverage, sample-alpha-to-one, sample-coverage, sample-buffers, samples, sample-coverage-value, sample-coverage-invert, clamp-to-border, texture0, texture1, texture2, texture3, texture4, texture5, texture6, texture7, texture8, texture9, texture10, texture11, texture12, texture13, texture14, texture15, texture16, texture17, texture18, texture19, texture20, texture21, texture22, texture23, texture24, texture25, texture26, texture27, texture28, texture29, texture30, texture31, active-texture, client-active-texture, max-texture-units, transpose-modelview-matrix, transpose-projection-matrix, transpose-texture-matrix, transpose-color-matrix, subtract, compressed-alpha, compressed-luminance, compressed-luminance-alpha, compressed-intensity, compressed-rgb, compressed-rgba, texture-compression-hint, texture-compressed-image-size, texture-compressed, num-compressed-texture-formats, compressed-texture-formats, normal-map, reflection-map, texture-cube-map, texture-binding-cube-map, texture-cube-map-positive-x, texture-cube-map-negative-x, texture-cube-map-positive-y, texture-cube-map-negative-y, texture-cube-map-positive-z, texture-cube-map-negative-z, proxy-texture-cube-map, max-cube-map-texture-size, combine, combine-rgb, combine-alpha, rgb-scale, add-signed, interpolate, constant, primary-color, previous, source0-rgb, source1-rgb, source2-rgb, source0-alpha, source1-alpha, source2-alpha, operand0-rgb, operand1-rgb, operand2-rgb, operand0-alpha, operand1-alpha, operand2-alpha, dot3-rgb, dot3-rgba.

Macro: arb-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

multisample-bit-arb, multisample-arb, sample-alpha-to-coverage-arb, sample-alpha-to-one-arb, sample-coverage-arb, sample-buffers-arb, samples-arb, sample-coverage-value-arb, sample-coverage-invert-arb.

Macro: ext-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

multisample-bit-ext, multisample-ext, sample-alpha-to-mask-ext, sample-alpha-to-one-ext, sample-mask-ext, 1pass-ext, 2pass-0-ext, 2pass-1-ext, 4pass-0-ext, 4pass-1-ext, 4pass-2-ext, 4pass-3-ext, sample-buffers-ext, samples-ext, sample-mask-value-ext, sample-mask-invert-ext, sample-pattern-ext, multisample-bit-ext.

Macro: 3dfx-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

multisample-bit-3dfx, multisample-3dfx, sample-buffers-3dfx, samples-3dfx, multisample-bit-3dfx.

Macro: clear-buffer-mask bit...

Bitfield constructor. The symbolic bit arguments are replaced with their corresponding numeric values and combined with logior at compile-time. The symbolic arguments known to this bitfield constructor are:

depth-buffer, accum-buffer, stencil-buffer, color-buffer, coverage-buffer-bit-nv.

Macro: client-attrib-mask bit...

Bitfield constructor. The symbolic bit arguments are replaced with their corresponding numeric values and combined with logior at compile-time. The symbolic arguments known to this bitfield constructor are:

client-pixel-store, client-vertex-array, client-all-attrib.

Macro: version-3-0 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

map-read-bit, map-write-bit, map-invalidate-range-bit, map-invalidate-buffer-bit, map-flush-explicit-bit, map-unsynchronized-bit, context-flag-forward-compatible-bit, invalid-framebuffer-operation, half-float, clip-distance0, clip-distance1, clip-distance2, clip-distance3, clip-distance4, clip-distance5, clip-distance6, clip-distance7, framebuffer-attachment-color-encoding, framebuffer-attachment-component-type, framebuffer-attachment-red-size, framebuffer-attachment-green-size, framebuffer-attachment-blue-size, framebuffer-attachment-alpha-size, framebuffer-attachment-depth-size, framebuffer-attachment-stencil-size, framebuffer-default, framebuffer-undefined, depth-stencil-attachment, major-version, minor-version, num-extensions, context-flags, index, compressed-red, compressed-rg, rg, rg-integer, r8, r16, rg8, rg16, r16f, r32f, rg16f, rg32f, r8i, r8ui, r16i, r16ui, r32i, r32ui, rg8i, rg8ui, rg16i, rg16ui, rg32i, rg32ui, max-renderbuffer-size, depth-stencil, unsigned-int-24-8, vertex-array-binding, rgba32f, rgb32f, rgba16f, rgb16f, compare-ref-to-texture, depth24-stencil8, texture-stencil-size, vertex-attrib-array-integer, max-array-texture-layers, min-program-texel-offset, max-program-texel-offset, clamp-vertex-color, clamp-fragment-color, clamp-read-color, fixed-only, max-varying-components, texture-red-type, texture-green-type, texture-blue-type, texture-alpha-type, texture-luminance-type, texture-intensity-type, texture-depth-type, unsigned-normalized, texture-1d-array, proxy-texture-1d-array, texture-2d-array, proxy-texture-2d-array, texture-binding-1d-array, texture-binding-2d-array, r11f-g11f-b10f, unsigned-int-10f-11f-11f-rev, rgb9-e5, unsigned-int-5-9-9-9-rev, texture-shared-size, transform-feedback-varying-max-length, transform-feedback-varying-max-length-ext, back-primary-color-nv, back-secondary-color-nv, texture-coord-nv, clip-distance-nv, vertex-id-nv, primitive-id-nv, generic-attrib-nv, transform-feedback-attribs-nv, transform-feedback-buffer-mode, transform-feedback-buffer-mode-ext, transform-feedback-buffer-mode-nv, max-transform-feedback-separate-components, max-transform-feedback-separate-components-ext, max-transform-feedback-separate-components-nv, active-varyings-nv, active-varying-max-length-nv, transform-feedback-varyings, transform-feedback-varyings-ext, transform-feedback-varyings-nv, transform-feedback-buffer-start, transform-feedback-buffer-start-ext, transform-feedback-buffer-start-nv, transform-feedback-buffer-size, transform-feedback-buffer-size-ext, transform-feedback-buffer-size-nv, transform-feedback-record-nv, primitives-generated, primitives-generated-ext, primitives-generated-nv, transform-feedback-primitives-written, transform-feedback-primitives-written-ext, transform-feedback-primitives-written-nv, rasterizer-discard, rasterizer-discard-ext, rasterizer-discard-nv, max-transform-feedback-interleaved-components, max-transform-feedback-interleaved-components-ext, max-transform-feedback-interleaved-components-nv, max-transform-feedback-separate-attribs, max-transform-feedback-separate-attribs-ext, max-transform-feedback-separate-attribs-nv, interleaved-attribs, interleaved-attribs-ext, interleaved-attribs-nv, separate-attribs, separate-attribs-ext, separate-attribs-nv, transform-feedback-buffer, transform-feedback-buffer-ext, transform-feedback-buffer-nv, transform-feedback-buffer-binding, transform-feedback-buffer-binding-ext, transform-feedback-buffer-binding-nv, framebuffer-binding, draw-framebuffer-binding, renderbuffer-binding, read-framebuffer, draw-framebuffer, read-framebuffer-binding, renderbuffer-samples, depth-component32f, depth32f-stencil8, framebuffer-attachment-object-type, framebuffer-attachment-object-type-ext, framebuffer-attachment-object-name, framebuffer-attachment-object-name-ext, framebuffer-attachment-texture-level, framebuffer-attachment-texture-level-ext, framebuffer-attachment-texture-cube-map-face, framebuffer-attachment-texture-cube-map-face-ext, framebuffer-attachment-texture-layer, framebuffer-attachment-texture-3d-zoffset-ext, framebuffer-complete, framebuffer-complete-ext, framebuffer-incomplete-attachment, framebuffer-incomplete-attachment-ext, framebuffer-incomplete-missing-attachment, framebuffer-incomplete-missing-attachment-ext, framebuffer-incomplete-dimensions-ext, framebuffer-incomplete-formats-ext, framebuffer-incomplete-draw-buffer, framebuffer-incomplete-draw-buffer-ext, framebuffer-incomplete-read-buffer, framebuffer-incomplete-read-buffer-ext, framebuffer-unsupported, framebuffer-unsupported-ext, max-color-attachments, max-color-attachments-ext, color-attachment0, color-attachment0-ext, color-attachment1, color-attachment1-ext, color-attachment2, color-attachment2-ext, color-attachment3, color-attachment3-ext, color-attachment4, color-attachment4-ext, color-attachment5, color-attachment5-ext, color-attachment6, color-attachment6-ext, color-attachment7, color-attachment7-ext, color-attachment8, color-attachment8-ext, color-attachment9, color-attachment9-ext, color-attachment10, color-attachment10-ext, color-attachment11, color-attachment11-ext, color-attachment12, color-attachment12-ext, color-attachment13, color-attachment13-ext, color-attachment14, color-attachment14-ext, color-attachment15, color-attachment15-ext, depth-attachment, depth-attachment-ext, stencil-attachment, stencil-attachment-ext, framebuffer, framebuffer-ext, renderbuffer, renderbuffer-ext, renderbuffer-width, renderbuffer-width-ext, renderbuffer-height, renderbuffer-height-ext, renderbuffer-internal-format, renderbuffer-internal-format-ext, stencil-index1, stencil-index1-ext, stencil-index4, stencil-index4-ext, stencil-index8, stencil-index8-ext, stencil-index16, stencil-index16-ext, renderbuffer-red-size, renderbuffer-red-size-ext, renderbuffer-green-size, renderbuffer-green-size-ext, renderbuffer-blue-size, renderbuffer-blue-size-ext, renderbuffer-alpha-size, renderbuffer-alpha-size-ext, renderbuffer-depth-size, renderbuffer-depth-size-ext, renderbuffer-stencil-size, renderbuffer-stencil-size-ext, framebuffer-incomplete-multisample, max-samples, rgba32ui, rgba32ui-ext, rgb32ui, rgb32ui-ext, alpha32ui-ext, intensity32ui-ext, luminance32ui-ext, luminance-alpha32ui-ext, rgba16ui, rgba16ui-ext, rgb16ui, rgb16ui-ext, alpha16ui-ext, intensity16ui-ext, luminance16ui-ext, luminance-alpha16ui-ext, rgba8ui, rgba8ui-ext, rgb8ui, rgb8ui-ext, alpha8ui-ext, intensity8ui-ext, luminance8ui-ext, luminance-alpha8ui-ext, rgba32i, rgba32i-ext, rgb32i, rgb32i-ext, alpha32i-ext, intensity32i-ext, luminance32i-ext, luminance-alpha32i-ext, rgba16i, rgba16i-ext, rgb16i, rgb16i-ext, alpha16i-ext, intensity16i-ext, luminance16i-ext, luminance-alpha16i-ext, rgba8i, rgba8i-ext, rgb8i, rgb8i-ext, alpha8i-ext, intensity8i-ext, luminance8i-ext, luminance-alpha8i-ext, red-integer, red-integer-ext, green-integer, green-integer-ext, blue-integer, blue-integer-ext, alpha-integer, alpha-integer-ext, rgb-integer, rgb-integer-ext, rgba-integer, rgba-integer-ext, bgr-integer, bgr-integer-ext, bgra-integer, bgra-integer-ext, luminance-integer-ext, luminance-alpha-integer-ext, rgba-integer-mode-ext, float-32-unsigned-int-24-8-rev, framebuffer-srgb, compressed-red-rgtc1, compressed-signed-red-rgtc1, compressed-rg-rgtc2, compressed-signed-rg-rgtc2, sampler-1d-array, sampler-2d-array, sampler-1d-array-shadow, sampler-2d-array-shadow, sampler-cube-shadow, unsigned-int-vec2, unsigned-int-vec3, unsigned-int-vec4, int-sampler-1d, int-sampler-2d, int-sampler-3d, int-sampler-cube, int-sampler-1d-array, int-sampler-2d-array, unsigned-int-sampler-1d, unsigned-int-sampler-2d, unsigned-int-sampler-3d, unsigned-int-sampler-cube, unsigned-int-sampler-1d-array, unsigned-int-sampler-2d-array, query-wait, query-no-wait, query-by-region-wait, query-by-region-no-wait, buffer-access-flags, buffer-map-length, buffer-map-offset.

Macro: arb-map-buffer-range bit...

Bitfield constructor. The symbolic bit arguments are replaced with their corresponding numeric values and combined with logior at compile-time. The symbolic arguments known to this bitfield constructor are:

map-read, map-write, map-invalidate-range, map-invalidate-buffer, map-flush-explicit, map-unsynchronized.

Macro: ext-map-buffer-range enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

map-read-bit-ext, map-write-bit-ext, map-invalidate-range-bit-ext, map-invalidate-buffer-bit-ext, map-flush-explicit-bit-ext, map-unsynchronized-bit-ext.

Macro: version-4-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

context-flag-debug-bit, num-shading-language-versions, vertex-attrib-array-long.

Macro: khr-debug enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

context-flag-debug-bit, debug-output-synchronous, debug-next-logged-message-length, debug-callback-function, debug-callback-user-param, debug-source-api, debug-source-window-system, debug-source-shader-compiler, debug-source-third-party, debug-source-application, debug-source-other, debug-type-error, debug-type-deprecated-behavior, debug-type-undefined-behavior, debug-type-portability, debug-type-performance, debug-type-other, debug-type-marker, debug-type-push-group, debug-type-pop-group, debug-severity-notification, max-debug-group-stack-depth, debug-group-stack-depth, buffer, shader, program, query, program-pipeline, sampler, display-list, max-label-length, max-debug-message-length, max-debug-logged-messages, debug-logged-messages, debug-severity-high, debug-severity-medium, debug-severity-low, debug-output.

Macro: arb-robustness enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

context-flag-robust-access-bit-arb, lose-context-on-reset-arb, guilty-context-reset-arb, innocent-context-reset-arb, unknown-context-reset-arb, reset-notification-strategy-arb, no-reset-notification-arb.

Macro: arb-separate-shader-objects enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-shader-bit, fragment-shader-bit, geometry-shader-bit, tess-control-shader-bit, tess-evaluation-shader-bit, all-shader-bits, program-separable, active-program, program-pipeline-binding.

Macro: arb-compute-shader enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compute-shader-bit, max-compute-shared-memory-size, max-compute-uniform-components, max-compute-atomic-counter-buffers, max-compute-atomic-counters, max-combined-compute-uniform-components, compute-local-work-size, max-compute-local-invocations, uniform-block-referenced-by-compute-shader, atomic-counter-buffer-referenced-by-compute-shader, dispatch-indirect-buffer, dispatch-indirect-buffer-binding, compute-shader, max-compute-uniform-blocks, max-compute-texture-image-units, max-compute-image-uniforms, max-compute-work-group-count, max-compute-work-group-size.

Macro: ext-separate-shader-objects enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-shader-bit-ext, fragment-shader-bit-ext, all-shader-bits-ext, program-separable-ext, active-program-ext, program-pipeline-binding-ext, active-program-ext.

Macro: ext-shader-image-load-store enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-array-barrier-bit-ext, element-array-barrier-bit-ext, uniform-barrier-bit-ext, texture-fetch-barrier-bit-ext, shader-image-access-barrier-bit-ext, command-barrier-bit-ext, pixel-buffer-barrier-bit-ext, texture-update-barrier-bit-ext, buffer-update-barrier-bit-ext, framebuffer-barrier-bit-ext, transform-feedback-barrier-bit-ext, atomic-counter-barrier-bit-ext, all-barrier-bits-ext, max-image-units-ext, max-combined-image-units-and-fragment-outputs-ext, image-binding-name-ext, image-binding-level-ext, image-binding-layered-ext, image-binding-layer-ext, image-binding-access-ext, image-1d-ext, image-2d-ext, image-3d-ext, image-2d-rect-ext, image-cube-ext, image-buffer-ext, image-1d-array-ext, image-2d-array-ext, image-cube-map-array-ext, image-2d-multisample-ext, image-2d-multisample-array-ext, int-image-1d-ext, int-image-2d-ext, int-image-3d-ext, int-image-2d-rect-ext, int-image-cube-ext, int-image-buffer-ext, int-image-1d-array-ext, int-image-2d-array-ext, int-image-cube-map-array-ext, int-image-2d-multisample-ext, int-image-2d-multisample-array-ext, unsigned-int-image-1d-ext, unsigned-int-image-2d-ext, unsigned-int-image-3d-ext, unsigned-int-image-2d-rect-ext, unsigned-int-image-cube-ext, unsigned-int-image-buffer-ext, unsigned-int-image-1d-array-ext, unsigned-int-image-2d-array-ext, unsigned-int-image-cube-map-array-ext, unsigned-int-image-2d-multisample-ext, unsigned-int-image-2d-multisample-array-ext, max-image-samples-ext, image-binding-format-ext.

Macro: arb-shader-image-load-store enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-array-barrier-bit, element-array-barrier-bit, uniform-barrier-bit, texture-fetch-barrier-bit, shader-image-access-barrier-bit, command-barrier-bit, pixel-buffer-barrier-bit, texture-update-barrier-bit, buffer-update-barrier-bit, framebuffer-barrier-bit, transform-feedback-barrier-bit, atomic-counter-barrier-bit, all-barrier-bits, max-image-units, max-combined-image-units-and-fragment-outputs, image-binding-name, image-binding-level, image-binding-layered, image-binding-layer, image-binding-access, image-1d, image-2d, image-3d, image-2d-rect, image-cube, image-buffer, image-1d-array, image-2d-array, image-cube-map-array, image-2d-multisample, image-2d-multisample-array, int-image-1d, int-image-2d, int-image-3d, int-image-2d-rect, int-image-cube, int-image-buffer, int-image-1d-array, int-image-2d-array, int-image-cube-map-array, int-image-2d-multisample, int-image-2d-multisample-array, unsigned-int-image-1d, unsigned-int-image-2d, unsigned-int-image-3d, unsigned-int-image-2d-rect, unsigned-int-image-cube, unsigned-int-image-buffer, unsigned-int-image-1d-array, unsigned-int-image-2d-array, unsigned-int-image-cube-map-array, unsigned-int-image-2d-multisample, unsigned-int-image-2d-multisample-array, max-image-samples, image-binding-format, image-format-compatibility-type, image-format-compatibility-by-size, image-format-compatibility-by-class, max-vertex-image-uniforms, max-tess-control-image-uniforms, max-tess-evaluation-image-uniforms, max-geometry-image-uniforms, max-fragment-image-uniforms, max-combined-image-uniforms.

Macro: arb-shader-storage-buffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

shader-storage-barrier-bit, shader-storage-buffer, shader-storage-buffer-binding, shader-storage-buffer-start, shader-storage-buffer-size, max-vertex-shader-storage-blocks, max-geometry-shader-storage-blocks, max-tess-control-shader-storage-blocks, max-tess-evaluation-shader-storage-blocks, max-fragment-shader-storage-blocks, max-compute-shader-storage-blocks, max-combined-shader-storage-blocks, max-shader-storage-buffer-bindings, max-shader-storage-block-size, shader-storage-buffer-offset-alignment, max-combined-shader-output-resources, max-combined-image-units-and-fragment-outputs.

Macro: intel-map-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

layout-default-intel, layout-linear-intel, layout-linear-cpu-cached-intel, texture-memory-layout-intel.

Macro: boolean enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

false, true.

Macro: begin-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

points, lines, line-loop, line-strip, triangles, triangle-strip, triangle-fan, quads, quad-strip, polygon.

Macro: version-3-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

lines-adjacency, line-strip-adjacency, triangles-adjacency, triangle-strip-adjacency, program-point-size, depth-clamp, texture-cube-map-seamless, geometry-vertices-out, geometry-input-type, geometry-output-type, max-geometry-texture-image-units, framebuffer-attachment-layered, framebuffer-incomplete-layer-targets, geometry-shader, max-geometry-uniform-components, max-geometry-output-vertices, max-geometry-total-output-components, quads-follow-provoking-vertex-convention, first-vertex-convention, last-vertex-convention, provoking-vertex, sample-position, sample-mask, sample-mask-value, max-sample-mask-words, texture-2d-multisample, proxy-texture-2d-multisample, texture-2d-multisample-array, proxy-texture-2d-multisample-array, texture-binding-2d-multisample, texture-binding-2d-multisample-array, texture-samples, texture-fixed-sample-locations, sampler-2d-multisample, int-sampler-2d-multisample, unsigned-int-sampler-2d-multisample, sampler-2d-multisample-array, int-sampler-2d-multisample-array, unsigned-int-sampler-2d-multisample-array, max-color-texture-samples, max-depth-texture-samples, max-integer-samples, max-server-wait-timeout, object-type, sync-condition, sync-status, sync-flags, sync-fence, sync-gpu-commands-complete, unsignaled, signaled, already-signaled, timeout-expired, condition-satisfied, wait-failed, timeout-ignored, sync-flush-commands-bit, timeout-ignored, max-vertex-output-components, max-geometry-input-components, max-geometry-output-components, max-fragment-input-components, context-core-profile-bit, context-compatibility-profile-bit, context-profile-mask.

Macro: arb-geometry-shader-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

lines-adjacency-arb, line-strip-adjacency-arb, triangles-adjacency-arb, triangle-strip-adjacency-arb, program-point-size-arb, max-varying-components, max-geometry-texture-image-units-arb, framebuffer-attachment-object-type, framebuffer-attachment-object-type-ext, framebuffer-attachment-object-name, framebuffer-attachment-object-name-ext, framebuffer-attachment-texture-level, framebuffer-attachment-texture-level-ext, framebuffer-attachment-texture-cube-map-face, framebuffer-attachment-texture-cube-map-face-ext, framebuffer-attachment-texture-layer, framebuffer-attachment-texture-3d-zoffset-ext, framebuffer-complete, framebuffer-complete-ext, framebuffer-incomplete-attachment, framebuffer-incomplete-attachment-ext, framebuffer-incomplete-missing-attachment, framebuffer-incomplete-missing-attachment-ext, framebuffer-incomplete-dimensions-ext, framebuffer-incomplete-formats-ext, framebuffer-incomplete-draw-buffer, framebuffer-incomplete-draw-buffer-ext, framebuffer-incomplete-read-buffer, framebuffer-incomplete-read-buffer-ext, framebuffer-unsupported, framebuffer-unsupported-ext, max-color-attachments, max-color-attachments-ext, color-attachment0, color-attachment0-ext, color-attachment1, color-attachment1-ext, color-attachment2, color-attachment2-ext, color-attachment3, color-attachment3-ext, color-attachment4, color-attachment4-ext, color-attachment5, color-attachment5-ext, color-attachment6, color-attachment6-ext, color-attachment7, color-attachment7-ext, color-attachment8, color-attachment8-ext, color-attachment9, color-attachment9-ext, color-attachment10, color-attachment10-ext, color-attachment11, color-attachment11-ext, color-attachment12, color-attachment12-ext, color-attachment13, color-attachment13-ext, color-attachment14, color-attachment14-ext, color-attachment15, color-attachment15-ext, depth-attachment, depth-attachment-ext, stencil-attachment, stencil-attachment-ext, framebuffer, framebuffer-ext, renderbuffer, renderbuffer-ext, renderbuffer-width, renderbuffer-width-ext, renderbuffer-height, renderbuffer-height-ext, renderbuffer-internal-format, renderbuffer-internal-format-ext, stencil-index1, stencil-index1-ext, stencil-index4, stencil-index4-ext, stencil-index8, stencil-index8-ext, stencil-index16, stencil-index16-ext, renderbuffer-red-size, renderbuffer-red-size-ext, renderbuffer-green-size, renderbuffer-green-size-ext, renderbuffer-blue-size, renderbuffer-blue-size-ext, renderbuffer-alpha-size, renderbuffer-alpha-size-ext, renderbuffer-depth-size, renderbuffer-depth-size-ext, renderbuffer-stencil-size, renderbuffer-stencil-size-ext, framebuffer-attachment-layered-arb, framebuffer-incomplete-layer-targets-arb, framebuffer-incomplete-layer-count-arb, geometry-shader-arb, geometry-vertices-out-arb, geometry-input-type-arb, geometry-output-type-arb, max-geometry-varying-components-arb, max-vertex-varying-components-arb, max-geometry-uniform-components-arb, max-geometry-output-vertices-arb, max-geometry-total-output-components-arb.

Macro: nv-geometry-program-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

lines-adjacency-ext, line-strip-adjacency-ext, triangles-adjacency-ext, triangle-strip-adjacency-ext, program-point-size-ext, geometry-program-nv, max-program-output-vertices-nv, max-program-total-output-components-nv, max-geometry-texture-image-units-ext, framebuffer-attachment-texture-layer-ext, framebuffer-attachment-layered-ext, framebuffer-incomplete-layer-targets-ext, framebuffer-incomplete-layer-count-ext, geometry-vertices-out-ext, geometry-input-type-ext, geometry-output-type-ext.

Macro: arb-tessellation-shader enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

patches, uniform-block-referenced-by-tess-control-shader, uniform-block-referenced-by-tess-evaluation-shader, max-tess-control-input-components, max-tess-evaluation-input-components, max-combined-tess-control-uniform-components, max-combined-tess-evaluation-uniform-components, patch-vertices, patch-default-inner-level, patch-default-outer-level, tess-control-output-vertices, tess-gen-mode, tess-gen-spacing, tess-gen-vertex-order, tess-gen-point-mode, isolines, fractional-odd, fractional-even, max-patch-vertices, max-tess-gen-level, max-tess-control-uniform-components, max-tess-evaluation-uniform-components, max-tess-control-texture-image-units, max-tess-evaluation-texture-image-units, max-tess-control-output-components, max-tess-patch-components, max-tess-control-total-output-components, max-tess-evaluation-output-components, tess-evaluation-shader, tess-control-shader, max-tess-control-uniform-blocks, max-tess-evaluation-uniform-blocks.

Macro: nv-gpu-shader-5 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

patches, int64-nv, unsigned-int64-nv, int8-nv, int8-vec2-nv, int8-vec3-nv, int8-vec4-nv, int16-nv, int16-vec2-nv, int16-vec3-nv, int16-vec4-nv, int64-vec2-nv, int64-vec3-nv, int64-vec4-nv, unsigned-int8-nv, unsigned-int8-vec2-nv, unsigned-int8-vec3-nv, unsigned-int8-vec4-nv, unsigned-int16-nv, unsigned-int16-vec2-nv, unsigned-int16-vec3-nv, unsigned-int16-vec4-nv, unsigned-int64-vec2-nv, unsigned-int64-vec3-nv, unsigned-int64-vec4-nv, float16-nv, float16-vec2-nv, float16-vec3-nv, float16-vec4-nv.

Macro: accum-op enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

accum, load, return, mult, add.

Macro: alpha-function enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

never, less, equal, lequal, greater, notequal, gequal, always.

Macro: blending-factor-dest enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

zero, one, src-color, one-minus-src-color, src-alpha, one-minus-src-alpha, dst-alpha, one-minus-dst-alpha, constant-color-ext, one-minus-constant-color-ext, constant-alpha-ext, one-minus-constant-alpha-ext.

Macro: blending-factor-src enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

zero, one, dst-color, one-minus-dst-color, src-alpha-saturate, src-alpha, one-minus-src-alpha, dst-alpha, one-minus-dst-alpha, constant-color-ext, one-minus-constant-color-ext, constant-alpha-ext, one-minus-constant-alpha-ext.

Macro: blend-equation-mode-ext enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

logic-op, func-add-ext, min-ext, max-ext, func-subtract-ext, func-reverse-subtract-ext, alpha-min-sgix, alpha-max-sgix.

Macro: color-material-face enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

front, back, front-and-back.

Macro: color-material-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

ambient, diffuse, specular, emission, ambient-and-diffuse.

Macro: color-pointer-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

byte, unsigned-byte, short, unsigned-short, int, unsigned-int, float, double.

Macro: color-table-parameter-p-name-sgi enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color-table-scale-sgi, color-table-bias-sgi.

Macro: color-table-target-sgi enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color-table-sgi, post-convolution-color-table-sgi, post-color-matrix-color-table-sgi, proxy-color-table-sgi, proxy-post-convolution-color-table-sgi, proxy-post-color-matrix-color-table-sgi, texture-color-table-sgi, proxy-texture-color-table-sgi.

Macro: convolution-border-mode-ext enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

reduce-ext.

Macro: convolution-parameter-ext enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

convolution-border-mode-ext, convolution-filter-scale-ext, convolution-filter-bias-ext.

Macro: convolution-target-ext enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

convolution-1d-ext, convolution-2d-ext.

Macro: cull-face-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

front, back, front-and-back.

Macro: depth-function enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

never, less, equal, lequal, greater, notequal, gequal, always.

Macro: draw-buffer-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

none, front-left, front-right, back-left, back-right, front, back, left, right, front-and-back, aux0, aux1, aux2, aux3.

Macro: oes-framebuffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fog, lighting, texture-1d, texture-2d, line-stipple, polygon-stipple, cull-face, alpha-test, blend, index-logic-op, color-logic-op, dither, stencil-test, depth-test, clip-plane0, clip-plane1, clip-plane2, clip-plane3, clip-plane4, clip-plane5, light0, light1, light2, light3, light4, light5, light6, light7, texture-gen-s, texture-gen-t, texture-gen-r, texture-gen-q, map1-vertex-3, map1-vertex-4, map1-color-4, map1-index, map1-normal, map1-texture-coord-1, map1-texture-coord-2, map1-texture-coord-3, map1-texture-coord-4, map2-vertex-3, map2-vertex-4, map2-color-4, map2-index, map2-normal, map2-texture-coord-1, map2-texture-coord-2, map2-texture-coord-3, map2-texture-coord-4, point-smooth, line-smooth, polygon-smooth, scissor-test, color-material, normalize, auto-normal, polygon-offset-point, polygon-offset-line, polygon-offset-fill, vertex-array, normal-array, color-array, index-array, texture-coord-array, edge-flag-array, convolution-1d-ext, convolution-2d-ext, separable-2d-ext, histogram-ext, minmax-ext, rescale-normal-ext, shared-texture-palette-ext, texture-3d-ext, multisample-sgis, sample-alpha-to-mask-sgis, sample-alpha-to-one-sgis, sample-mask-sgis, texture-4d-sgis, async-histogram-sgix, async-tex-image-sgix, async-draw-pixels-sgix, async-read-pixels-sgix, calligraphic-fragment-sgix, fog-offset-sgix, fragment-lighting-sgix, fragment-color-material-sgix, fragment-light0-sgix, fragment-light1-sgix, fragment-light2-sgix, fragment-light3-sgix, fragment-light4-sgix, fragment-light5-sgix, fragment-light6-sgix, fragment-light7-sgix, framezoom-sgix, interlace-sgix, ir-instrument1-sgix, pixel-tex-gen-sgix, pixel-texture-sgis, reference-plane-sgix, sprite-sgix, color-table-sgi, post-convolution-color-table-sgi, post-color-matrix-color-table-sgi, texture-color-table-sgi, invalid-framebuffer-operation-oes, rgba4-oes, rgb5-a1-oes, depth-component16-oes, max-renderbuffer-size-oes, framebuffer-binding-oes, renderbuffer-binding-oes, framebuffer-attachment-object-type-oes, framebuffer-attachment-object-name-oes, framebuffer-attachment-texture-level-oes, framebuffer-attachment-texture-cube-map-face-oes, framebuffer-attachment-texture-3d-zoffset-oes, framebuffer-complete-oes, framebuffer-incomplete-attachment-oes, framebuffer-incomplete-missing-attachment-oes, framebuffer-incomplete-dimensions-oes, framebuffer-incomplete-formats-oes, framebuffer-incomplete-draw-buffer-oes, framebuffer-incomplete-read-buffer-oes, framebuffer-unsupported-oes, color-attachment0-oes, depth-attachment-oes, stencil-attachment-oes, framebuffer-oes, renderbuffer-oes, renderbuffer-width-oes, renderbuffer-height-oes, renderbuffer-internal-format-oes, stencil-index1-oes, stencil-index4-oes, stencil-index8-oes, renderbuffer-red-size-oes, renderbuffer-green-size-oes, renderbuffer-blue-size-oes, renderbuffer-alpha-size-oes, renderbuffer-depth-size-oes, renderbuffer-stencil-size-oes, rgb565-oes.

Macro: enable-cap enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fog, lighting, texture-1d, texture-2d, line-stipple, polygon-stipple, cull-face, alpha-test, blend, index-logic-op, color-logic-op, dither, stencil-test, depth-test, clip-plane0, clip-plane1, clip-plane2, clip-plane3, clip-plane4, clip-plane5, light0, light1, light2, light3, light4, light5, light6, light7, texture-gen-s, texture-gen-t, texture-gen-r, texture-gen-q, map1-vertex-3, map1-vertex-4, map1-color-4, map1-index, map1-normal, map1-texture-coord-1, map1-texture-coord-2, map1-texture-coord-3, map1-texture-coord-4, map2-vertex-3, map2-vertex-4, map2-color-4, map2-index, map2-normal, map2-texture-coord-1, map2-texture-coord-2, map2-texture-coord-3, map2-texture-coord-4, point-smooth, line-smooth, polygon-smooth, scissor-test, color-material, normalize, auto-normal, polygon-offset-point, polygon-offset-line, polygon-offset-fill, vertex-array, normal-array, color-array, index-array, texture-coord-array, edge-flag-array, convolution-1d-ext, convolution-2d-ext, separable-2d-ext, histogram-ext, minmax-ext, rescale-normal-ext, shared-texture-palette-ext, texture-3d-ext, multisample-sgis, sample-alpha-to-mask-sgis, sample-alpha-to-one-sgis, sample-mask-sgis, texture-4d-sgis, async-histogram-sgix, async-tex-image-sgix, async-draw-pixels-sgix, async-read-pixels-sgix, calligraphic-fragment-sgix, fog-offset-sgix, fragment-lighting-sgix, fragment-color-material-sgix, fragment-light0-sgix, fragment-light1-sgix, fragment-light2-sgix, fragment-light3-sgix, fragment-light4-sgix, fragment-light5-sgix, fragment-light6-sgix, fragment-light7-sgix, framezoom-sgix, interlace-sgix, ir-instrument1-sgix, pixel-tex-gen-sgix, pixel-texture-sgis, reference-plane-sgix, sprite-sgix, color-table-sgi, post-convolution-color-table-sgi, post-color-matrix-color-table-sgi, texture-color-table-sgi.

Macro: error-code enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

no-error, invalid-enum, invalid-value, invalid-operation, stack-overflow, stack-underflow, out-of-memory, table-too-large-ext, texture-too-large-ext.

Macro: arb-framebuffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

invalid-framebuffer-operation, framebuffer-attachment-color-encoding, framebuffer-attachment-component-type, framebuffer-attachment-red-size, framebuffer-attachment-green-size, framebuffer-attachment-blue-size, framebuffer-attachment-alpha-size, framebuffer-attachment-depth-size, framebuffer-attachment-stencil-size, framebuffer-default, framebuffer-undefined, depth-stencil-attachment, index, max-renderbuffer-size, depth-stencil, unsigned-int-24-8, depth24-stencil8, texture-stencil-size, texture-red-type, texture-green-type, texture-blue-type, texture-alpha-type, texture-luminance-type, texture-intensity-type, texture-depth-type, unsigned-normalized, framebuffer-binding, draw-framebuffer-binding, renderbuffer-binding, read-framebuffer, draw-framebuffer, read-framebuffer-binding, renderbuffer-samples, framebuffer-attachment-object-type, framebuffer-attachment-object-type-ext, framebuffer-attachment-object-name, framebuffer-attachment-object-name-ext, framebuffer-attachment-texture-level, framebuffer-attachment-texture-level-ext, framebuffer-attachment-texture-cube-map-face, framebuffer-attachment-texture-cube-map-face-ext, framebuffer-attachment-texture-layer, framebuffer-attachment-texture-3d-zoffset-ext, framebuffer-complete, framebuffer-complete-ext, framebuffer-incomplete-attachment, framebuffer-incomplete-attachment-ext, framebuffer-incomplete-missing-attachment, framebuffer-incomplete-missing-attachment-ext, framebuffer-incomplete-dimensions-ext, framebuffer-incomplete-formats-ext, framebuffer-incomplete-draw-buffer, framebuffer-incomplete-draw-buffer-ext, framebuffer-incomplete-read-buffer, framebuffer-incomplete-read-buffer-ext, framebuffer-unsupported, framebuffer-unsupported-ext, max-color-attachments, max-color-attachments-ext, color-attachment0, color-attachment0-ext, color-attachment1, color-attachment1-ext, color-attachment2, color-attachment2-ext, color-attachment3, color-attachment3-ext, color-attachment4, color-attachment4-ext, color-attachment5, color-attachment5-ext, color-attachment6, color-attachment6-ext, color-attachment7, color-attachment7-ext, color-attachment8, color-attachment8-ext, color-attachment9, color-attachment9-ext, color-attachment10, color-attachment10-ext, color-attachment11, color-attachment11-ext, color-attachment12, color-attachment12-ext, color-attachment13, color-attachment13-ext, color-attachment14, color-attachment14-ext, color-attachment15, color-attachment15-ext, depth-attachment, depth-attachment-ext, stencil-attachment, stencil-attachment-ext, framebuffer, framebuffer-ext, renderbuffer, renderbuffer-ext, renderbuffer-width, renderbuffer-width-ext, renderbuffer-height, renderbuffer-height-ext, renderbuffer-internal-format, renderbuffer-internal-format-ext, stencil-index1, stencil-index1-ext, stencil-index4, stencil-index4-ext, stencil-index8, stencil-index8-ext, stencil-index16, stencil-index16-ext, renderbuffer-red-size, renderbuffer-red-size-ext, renderbuffer-green-size, renderbuffer-green-size-ext, renderbuffer-blue-size, renderbuffer-blue-size-ext, renderbuffer-alpha-size, renderbuffer-alpha-size-ext, renderbuffer-depth-size, renderbuffer-depth-size-ext, renderbuffer-stencil-size, renderbuffer-stencil-size-ext, framebuffer-incomplete-multisample, max-samples.

Macro: ext-framebuffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

invalid-framebuffer-operation-ext, max-renderbuffer-size-ext, framebuffer-binding-ext, renderbuffer-binding-ext, framebuffer-attachment-object-type, framebuffer-attachment-object-type-ext, framebuffer-attachment-object-name, framebuffer-attachment-object-name-ext, framebuffer-attachment-texture-level, framebuffer-attachment-texture-level-ext, framebuffer-attachment-texture-cube-map-face, framebuffer-attachment-texture-cube-map-face-ext, framebuffer-attachment-texture-layer, framebuffer-attachment-texture-3d-zoffset-ext, framebuffer-complete, framebuffer-complete-ext, framebuffer-incomplete-attachment, framebuffer-incomplete-attachment-ext, framebuffer-incomplete-missing-attachment, framebuffer-incomplete-missing-attachment-ext, framebuffer-incomplete-dimensions-ext, framebuffer-incomplete-formats-ext, framebuffer-incomplete-draw-buffer, framebuffer-incomplete-draw-buffer-ext, framebuffer-incomplete-read-buffer, framebuffer-incomplete-read-buffer-ext, framebuffer-unsupported, framebuffer-unsupported-ext, max-color-attachments, max-color-attachments-ext, color-attachment0, color-attachment0-ext, color-attachment1, color-attachment1-ext, color-attachment2, color-attachment2-ext, color-attachment3, color-attachment3-ext, color-attachment4, color-attachment4-ext, color-attachment5, color-attachment5-ext, color-attachment6, color-attachment6-ext, color-attachment7, color-attachment7-ext, color-attachment8, color-attachment8-ext, color-attachment9, color-attachment9-ext, color-attachment10, color-attachment10-ext, color-attachment11, color-attachment11-ext, color-attachment12, color-attachment12-ext, color-attachment13, color-attachment13-ext, color-attachment14, color-attachment14-ext, color-attachment15, color-attachment15-ext, depth-attachment, depth-attachment-ext, stencil-attachment, stencil-attachment-ext, framebuffer, framebuffer-ext, renderbuffer, renderbuffer-ext, renderbuffer-width, renderbuffer-width-ext, renderbuffer-height, renderbuffer-height-ext, renderbuffer-internal-format, renderbuffer-internal-format-ext, stencil-index1, stencil-index1-ext, stencil-index4, stencil-index4-ext, stencil-index8, stencil-index8-ext, stencil-index16, stencil-index16-ext, renderbuffer-red-size, renderbuffer-red-size-ext, renderbuffer-green-size, renderbuffer-green-size-ext, renderbuffer-blue-size, renderbuffer-blue-size-ext, renderbuffer-alpha-size, renderbuffer-alpha-size-ext, renderbuffer-depth-size, renderbuffer-depth-size-ext, renderbuffer-stencil-size, renderbuffer-stencil-size-ext.

Macro: feedback-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

2d, 3d, 3d-color, 3d-color-texture, 4d-color-texture.

Macro: feed-back-token enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pass-through-token, point-token, line-token, polygon-token, bitmap-token, draw-pixel-token, copy-pixel-token, line-reset-token.

Macro: ffd-mask-sgix bit...

Bitfield constructor. The symbolic bit arguments are replaced with their corresponding numeric values and combined with logior at compile-time. The symbolic arguments known to this bitfield constructor are:

texture-deformation-bit-sgix, geometry-deformation-bit-sgix.

Macro: ffd-target-sgix enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

geometry-deformation-sgix, texture-deformation-sgix.

Macro: fog-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

linear, exp, exp2, fog-func-sgis.

Macro: fog-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fog-color, fog-density, fog-end, fog-index, fog-mode, fog-start, fog-offset-value-sgix.

Macro: fragment-light-model-parameter-sgix enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-light-model-local-viewer-sgix, fragment-light-model-two-side-sgix, fragment-light-model-ambient-sgix, fragment-light-model-normal-interpolation-sgix.

Macro: front-face-direction enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

cw, ccw.

Macro: get-color-table-parameter-p-name-sgi enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color-table-scale-sgi, color-table-bias-sgi, color-table-format-sgi, color-table-width-sgi, color-table-red-size-sgi, color-table-green-size-sgi, color-table-blue-size-sgi, color-table-alpha-size-sgi, color-table-luminance-size-sgi, color-table-intensity-size-sgi.

Macro: get-convolution-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

convolution-border-mode-ext, convolution-filter-scale-ext, convolution-filter-bias-ext, convolution-format-ext, convolution-width-ext, convolution-height-ext, max-convolution-width-ext, max-convolution-height-ext.

Macro: get-histogram-parameter-p-name-ext enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

histogram-width-ext, histogram-format-ext, histogram-red-size-ext, histogram-green-size-ext, histogram-blue-size-ext, histogram-alpha-size-ext, histogram-luminance-size-ext, histogram-sink-ext.

Macro: get-map-query enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

coeff, order, domain.

Macro: get-minmax-parameter-p-name-ext enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

minmax-format-ext, minmax-sink-ext.

Macro: get-pixel-map enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-map-i-to-i, pixel-map-s-to-s, pixel-map-i-to-r, pixel-map-i-to-g, pixel-map-i-to-b, pixel-map-i-to-a, pixel-map-r-to-r, pixel-map-g-to-g, pixel-map-b-to-b, pixel-map-a-to-a.

Macro: get-pointerv-p-name enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-array-pointer, normal-array-pointer, color-array-pointer, index-array-pointer, texture-coord-array-pointer, edge-flag-array-pointer, feedback-buffer-pointer, selection-buffer-pointer, instrument-buffer-pointer-sgix.

Macro: get-p-name enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

current-color, current-index, current-normal, current-texture-coords, current-raster-color, current-raster-index, current-raster-texture-coords, current-raster-position, current-raster-position-valid, current-raster-distance, point-smooth, point-size, point-size-range, point-size-granularity, line-smooth, line-width, line-width-range, line-width-granularity, line-stipple, line-stipple-pattern, line-stipple-repeat, smooth-point-size-range, smooth-point-size-granularity, smooth-line-width-range, smooth-line-width-granularity, aliased-point-size-range, aliased-line-width-range, list-mode, max-list-nesting, list-base, list-index, polygon-mode, polygon-smooth, polygon-stipple, edge-flag, cull-face, cull-face-mode, front-face, lighting, light-model-local-viewer, light-model-two-side, light-model-ambient, shade-model, color-material-face, color-material-parameter, color-material, fog, fog-index, fog-density, fog-start, fog-end, fog-mode, fog-color, depth-range, depth-test, depth-writemask, depth-clear-value, depth-func, accum-clear-value, stencil-test, stencil-clear-value, stencil-func, stencil-value-mask, stencil-fail, stencil-pass-depth-fail, stencil-pass-depth-pass, stencil-ref, stencil-writemask, matrix-mode, normalize, viewport, modelview-stack-depth, projection-stack-depth, texture-stack-depth, modelview-matrix, projection-matrix, texture-matrix, attrib-stack-depth, client-attrib-stack-depth, alpha-test, alpha-test-func, alpha-test-ref, dither, blend-dst, blend-src, blend, logic-op-mode, index-logic-op, logic-op, color-logic-op, aux-buffers, draw-buffer, read-buffer, scissor-box, scissor-test, index-clear-value, index-writemask, color-clear-value, color-writemask, index-mode, rgba-mode, doublebuffer, stereo, render-mode, perspective-correction-hint, point-smooth-hint, line-smooth-hint, polygon-smooth-hint, fog-hint, texture-gen-s, texture-gen-t, texture-gen-r, texture-gen-q, pixel-map-i-to-i-size, pixel-map-s-to-s-size, pixel-map-i-to-r-size, pixel-map-i-to-g-size, pixel-map-i-to-b-size, pixel-map-i-to-a-size, pixel-map-r-to-r-size, pixel-map-g-to-g-size, pixel-map-b-to-b-size, pixel-map-a-to-a-size, unpack-swap-bytes, unpack-lsb-first, unpack-row-length, unpack-skip-rows, unpack-skip-pixels, unpack-alignment, pack-swap-bytes, pack-lsb-first, pack-row-length, pack-skip-rows, pack-skip-pixels, pack-alignment, map-color, map-stencil, index-shift, index-offset, red-scale, red-bias, zoom-x, zoom-y, green-scale, green-bias, blue-scale, blue-bias, alpha-scale, alpha-bias, depth-scale, depth-bias, max-eval-order, max-lights, max-clip-distances, max-clip-planes, max-texture-size, max-pixel-map-table, max-attrib-stack-depth, max-modelview-stack-depth, max-name-stack-depth, max-projection-stack-depth, max-texture-stack-depth, max-viewport-dims, max-client-attrib-stack-depth, subpixel-bits, index-bits, red-bits, green-bits, blue-bits, alpha-bits, depth-bits, stencil-bits, accum-red-bits, accum-green-bits, accum-blue-bits, accum-alpha-bits, name-stack-depth, auto-normal, map1-color-4, map1-index, map1-normal, map1-texture-coord-1, map1-texture-coord-2, map1-texture-coord-3, map1-texture-coord-4, map1-vertex-3, map1-vertex-4, map2-color-4, map2-index, map2-normal, map2-texture-coord-1, map2-texture-coord-2, map2-texture-coord-3, map2-texture-coord-4, map2-vertex-3, map2-vertex-4, map1-grid-domain, map1-grid-segments, map2-grid-domain, map2-grid-segments, texture-1d, texture-2d, feedback-buffer-size, feedback-buffer-type, selection-buffer-size, polygon-offset-units, polygon-offset-point, polygon-offset-line, polygon-offset-fill, polygon-offset-factor, texture-binding-1d, texture-binding-2d, texture-binding-3d, vertex-array, normal-array, color-array, index-array, texture-coord-array, edge-flag-array, vertex-array-size, vertex-array-type, vertex-array-stride, normal-array-type, normal-array-stride, color-array-size, color-array-type, color-array-stride, index-array-type, index-array-stride, texture-coord-array-size, texture-coord-array-type, texture-coord-array-stride, edge-flag-array-stride, clip-plane0, clip-plane1, clip-plane2, clip-plane3, clip-plane4, clip-plane5, light0, light1, light2, light3, light4, light5, light6, light7, light-model-color-control, blend-color-ext, blend-equation-ext, pack-cmyk-hint-ext, unpack-cmyk-hint-ext, convolution-1d-ext, convolution-2d-ext, separable-2d-ext, post-convolution-red-scale-ext, post-convolution-green-scale-ext, post-convolution-blue-scale-ext, post-convolution-alpha-scale-ext, post-convolution-red-bias-ext, post-convolution-green-bias-ext, post-convolution-blue-bias-ext, post-convolution-alpha-bias-ext, histogram-ext, minmax-ext, polygon-offset-bias-ext, rescale-normal-ext, shared-texture-palette-ext, texture-3d-binding-ext, pack-skip-images-ext, pack-image-height-ext, unpack-skip-images-ext, unpack-image-height-ext, texture-3d-ext, max-3d-texture-size-ext, vertex-array-count-ext, normal-array-count-ext, color-array-count-ext, index-array-count-ext, texture-coord-array-count-ext, edge-flag-array-count-ext, detail-texture-2d-binding-sgis, fog-func-points-sgis, max-fog-func-points-sgis, generate-mipmap-hint-sgis, multisample-sgis, sample-alpha-to-mask-sgis, sample-alpha-to-one-sgis, sample-mask-sgis, sample-buffers-sgis, samples-sgis, sample-mask-value-sgis, sample-mask-invert-sgis, sample-pattern-sgis, pixel-texture-sgis, point-size-min-sgis, point-size-max-sgis, point-fade-threshold-size-sgis, distance-attenuation-sgis, pack-skip-volumes-sgis, pack-image-depth-sgis, unpack-skip-volumes-sgis, unpack-image-depth-sgis, texture-4d-sgis, max-4d-texture-size-sgis, texture-4d-binding-sgis, async-marker-sgix, async-histogram-sgix, max-async-histogram-sgix, async-tex-image-sgix, async-draw-pixels-sgix, async-read-pixels-sgix, max-async-tex-image-sgix, max-async-draw-pixels-sgix, max-async-read-pixels-sgix, calligraphic-fragment-sgix, max-clipmap-virtual-depth-sgix, max-clipmap-depth-sgix, convolution-hint-sgix, fog-offset-sgix, fog-offset-value-sgix, fragment-lighting-sgix, fragment-color-material-sgix, fragment-color-material-face-sgix, fragment-color-material-parameter-sgix, max-fragment-lights-sgix, max-active-lights-sgix, light-env-mode-sgix, fragment-light-model-local-viewer-sgix, fragment-light-model-two-side-sgix, fragment-light-model-ambient-sgix, fragment-light-model-normal-interpolation-sgix, fragment-light0-sgix, framezoom-sgix, framezoom-factor-sgix, max-framezoom-factor-sgix, instrument-measurements-sgix, interlace-sgix, ir-instrument1-sgix, pixel-tex-gen-sgix, pixel-tex-gen-mode-sgix, pixel-tile-best-alignment-sgix, pixel-tile-cache-increment-sgix, pixel-tile-width-sgix, pixel-tile-height-sgix, pixel-tile-grid-width-sgix, pixel-tile-grid-height-sgix, pixel-tile-grid-depth-sgix, pixel-tile-cache-size-sgix, deformations-mask-sgix, reference-plane-equation-sgix, reference-plane-sgix, sprite-sgix, sprite-mode-sgix, sprite-axis-sgix, sprite-translation-sgix, pack-subsample-rate-sgix, unpack-subsample-rate-sgix, pack-resample-sgix, unpack-resample-sgix, post-texture-filter-bias-range-sgix, post-texture-filter-scale-range-sgix, vertex-preclip-sgix, vertex-preclip-hint-sgix, color-matrix-sgi, color-matrix-stack-depth-sgi, max-color-matrix-stack-depth-sgi, post-color-matrix-red-scale-sgi, post-color-matrix-green-scale-sgi, post-color-matrix-blue-scale-sgi, post-color-matrix-alpha-scale-sgi, post-color-matrix-red-bias-sgi, post-color-matrix-green-bias-sgi, post-color-matrix-blue-bias-sgi, post-color-matrix-alpha-bias-sgi, color-table-sgi, post-convolution-color-table-sgi, post-color-matrix-color-table-sgi, texture-color-table-sgi.

Macro: qcom-alpha-test enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

alpha-test-qcom, alpha-test-func-qcom, alpha-test-ref-qcom.

Macro: ext-unpack-subimage enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

unpack-row-length, unpack-skip-rows, unpack-skip-pixels.

Macro: ext-multiview-draw-buffers enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

draw-buffer-ext, read-buffer-ext, draw-buffer-ext, read-buffer-ext, color-attachment-ext, multiview-ext, max-multiview-buffers-ext.

Macro: nv-read-buffer enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

read-buffer-nv.

Macro: get-texture-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-mag-filter, texture-min-filter, texture-wrap-s, texture-wrap-t, texture-width, texture-height, texture-internal-format, texture-components, texture-border-color, texture-border, texture-red-size, texture-green-size, texture-blue-size, texture-alpha-size, texture-luminance-size, texture-intensity-size, texture-priority, texture-resident, texture-depth-ext, texture-wrap-r-ext, detail-texture-level-sgis, detail-texture-mode-sgis, detail-texture-func-points-sgis, generate-mipmap-sgis, sharpen-texture-func-points-sgis, texture-filter4-size-sgis, texture-min-lod-sgis, texture-max-lod-sgis, texture-base-level-sgis, texture-max-level-sgis, dual-texture-select-sgis, quad-texture-select-sgis, texture-4dsize-sgis, texture-wrap-q-sgis, texture-clipmap-center-sgix, texture-clipmap-frame-sgix, texture-clipmap-offset-sgix, texture-clipmap-virtual-depth-sgix, texture-clipmap-lod-offset-sgix, texture-clipmap-depth-sgix, texture-compare-sgix, texture-compare-operator-sgix, texture-lequal-r-sgix, texture-gequal-r-sgix, shadow-ambient-sgix, texture-max-clamp-s-sgix, texture-max-clamp-t-sgix, texture-max-clamp-r-sgix, texture-lod-bias-s-sgix, texture-lod-bias-t-sgix, texture-lod-bias-r-sgix, post-texture-filter-bias-sgix, post-texture-filter-scale-sgix.

Macro: nv-texture-border-clamp enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-border-color-nv, clamp-to-border-nv.

Macro: hint-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

dont-care, fastest, nicest.

Macro: hint-target enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

perspective-correction-hint, point-smooth-hint, line-smooth-hint, polygon-smooth-hint, fog-hint, pack-cmyk-hint-ext, unpack-cmyk-hint-ext, generate-mipmap-hint-sgis, convolution-hint-sgix, texture-multi-buffer-hint-sgix, vertex-preclip-hint-sgix.

Macro: histogram-target-ext enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

histogram-ext, proxy-histogram-ext.

Macro: index-pointer-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

short, int, float, double.

Macro: light-env-mode-sgix enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

replace, modulate, add.

Macro: light-env-parameter-sgix enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

light-env-mode-sgix.

Macro: light-model-color-control enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

single-color, separate-specular-color.

Macro: light-model-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

light-model-ambient, light-model-local-viewer, light-model-two-side, light-model-color-control.

Macro: light-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

ambient, diffuse, specular, position, spot-direction, spot-exponent, spot-cutoff, constant-attenuation, linear-attenuation, quadratic-attenuation.

Macro: list-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compile, compile-and-execute.

Macro: data-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

byte, unsigned-byte, short, unsigned-short, int, unsigned-int, float, 2-bytes, 3-bytes, 4-bytes, double, double-ext.

Macro: oes-element-index-uint bit...

Bitfield constructor. The symbolic bit arguments are replaced with their corresponding numeric values and combined with logior at compile-time. The symbolic arguments known to this bitfield constructor are:

.

Macro: oes-texture-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

half-float-oes.

Macro: ext-vertex-attrib-64-bit enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

double-mat2-ext, double-mat3-ext, double-mat4-ext, double-mat-2x-3-ext, double-mat-2x-4-ext, double-mat-3x-2-ext, double-mat-3x-4-ext, double-mat-4x-2-ext, double-mat-4x-3-ext, double-vec2-ext, double-vec3-ext, double-vec4-ext.

Macro: arb-half-float-vertex enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

half-float.

Macro: arb-half-float-pixel enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

half-float-arb.

Macro: nv-half-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

half-float-nv.

Macro: apple-float-pixels enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

half-apple, rgba-float32-apple, rgb-float32-apple, alpha-float32-apple, intensity-float32-apple, luminance-float32-apple, luminance-alpha-float32-apple, rgba-float16-apple, rgb-float16-apple, alpha-float16-apple, intensity-float16-apple, luminance-float16-apple, luminance-alpha-float16-apple, color-float-apple.

Macro: arb-es2-compatibility enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fixed, implementation-color-read-type, implementation-color-read-format, rgb565, low-float, medium-float, high-float, low-int, medium-int, high-int, shader-binary-formats, num-shader-binary-formats, shader-compiler, max-vertex-uniform-vectors, max-varying-vectors, max-fragment-uniform-vectors.

Macro: oes-fixed-point enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fixed-oes.

Macro: nv-vertex-attrib-integer-64-bit enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

int64-nv, unsigned-int64-nv.

Macro: list-name-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

byte, unsigned-byte, short, unsigned-short, int, unsigned-int, float, 2-bytes, 3-bytes, 4-bytes.

Macro: list-parameter-name enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

list-priority-sgix.

Macro: logic-op enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

clear, and, and-reverse, copy, and-inverted, noop, xor, or, nor, equiv, invert, or-reverse, copy-inverted, or-inverted, nand, set.

Macro: map-target enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

map1-color-4, map1-index, map1-normal, map1-texture-coord-1, map1-texture-coord-2, map1-texture-coord-3, map1-texture-coord-4, map1-vertex-3, map1-vertex-4, map2-color-4, map2-index, map2-normal, map2-texture-coord-1, map2-texture-coord-2, map2-texture-coord-3, map2-texture-coord-4, map2-vertex-3, map2-vertex-4, geometry-deformation-sgix, texture-deformation-sgix.

Macro: material-face enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

front, back, front-and-back.

Macro: material-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

emission, shininess, ambient-and-diffuse, color-indexes, ambient, diffuse, specular.

Macro: matrix-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

modelview, projection, texture.

Macro: mesh-mode-1 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point, line.

Macro: mesh-mode-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point, line, fill.

Macro: minmax-target-ext enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

minmax-ext.

Macro: normal-pointer-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

byte, short, int, float, double.

Macro: pixel-copy-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color, depth, stencil.

Macro: ext-discard-framebuffer enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color-ext, depth-ext, stencil-ext.

Macro: pixel-format enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color-index, stencil-index, depth-component, red, green, blue, alpha, rgb, rgba, luminance, luminance-alpha, abgr-ext, cmyk-ext, cmyka-ext, ycrcb-422-sgix, ycrcb-444-sgix.

Macro: oes-depth-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

red-ext.

Macro: ext-texture-rg enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

red-ext, rg-ext, r8-ext, rg8-ext.

Macro: pixel-map enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-map-i-to-i, pixel-map-s-to-s, pixel-map-i-to-r, pixel-map-i-to-g, pixel-map-i-to-b, pixel-map-i-to-a, pixel-map-r-to-r, pixel-map-g-to-g, pixel-map-b-to-b, pixel-map-a-to-a.

Macro: pixel-store-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

unpack-swap-bytes, unpack-lsb-first, unpack-row-length, unpack-skip-rows, unpack-skip-pixels, unpack-alignment, pack-swap-bytes, pack-lsb-first, pack-row-length, pack-skip-rows, pack-skip-pixels, pack-alignment, pack-skip-images-ext, pack-image-height-ext, unpack-skip-images-ext, unpack-image-height-ext, pack-skip-volumes-sgis, pack-image-depth-sgis, unpack-skip-volumes-sgis, unpack-image-depth-sgis, pixel-tile-width-sgix, pixel-tile-height-sgix, pixel-tile-grid-width-sgix, pixel-tile-grid-height-sgix, pixel-tile-grid-depth-sgix, pixel-tile-cache-size-sgix, pack-subsample-rate-sgix, unpack-subsample-rate-sgix, pack-resample-sgix, unpack-resample-sgix.

Macro: pixel-store-resample-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

resample-replicate-sgix, resample-zero-fill-sgix, resample-decimate-sgix.

Macro: pixel-store-subsample-rate enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-subsample-4444-sgix, pixel-subsample-2424-sgix, pixel-subsample-4242-sgix.

Macro: pixel-tex-gen-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

none, rgb, rgba, luminance, luminance-alpha, pixel-tex-gen-alpha-replace-sgix, pixel-tex-gen-alpha-no-replace-sgix, pixel-tex-gen-alpha-ms-sgix, pixel-tex-gen-alpha-ls-sgix.

Macro: pixel-tex-gen-parameter-name-sgis enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-fragment-rgb-source-sgis, pixel-fragment-alpha-source-sgis.

Macro: pixel-transfer-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

map-color, map-stencil, index-shift, index-offset, red-scale, red-bias, green-scale, green-bias, blue-scale, blue-bias, alpha-scale, alpha-bias, depth-scale, depth-bias, post-convolution-red-scale-ext, post-convolution-green-scale-ext, post-convolution-blue-scale-ext, post-convolution-alpha-scale-ext, post-convolution-red-bias-ext, post-convolution-green-bias-ext, post-convolution-blue-bias-ext, post-convolution-alpha-bias-ext, post-color-matrix-red-scale-sgi, post-color-matrix-green-scale-sgi, post-color-matrix-blue-scale-sgi, post-color-matrix-alpha-scale-sgi, post-color-matrix-red-bias-sgi, post-color-matrix-green-bias-sgi, post-color-matrix-blue-bias-sgi, post-color-matrix-alpha-bias-sgi.

Macro: pixel-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

bitmap, byte, unsigned-byte, short, unsigned-short, int, unsigned-int, float, unsigned-byte-3-3-2-ext, unsigned-short-4-4-4-4-ext, unsigned-short-5-5-5-1-ext, unsigned-int-8-8-8-8-ext, unsigned-int-10-10-10-2-ext.

Macro: point-parameter-name-sgis enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point-size-min-sgis, point-size-max-sgis, point-fade-threshold-size-sgis, distance-attenuation-sgis.

Macro: polygon-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point, line, fill.

Macro: read-buffer-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

front-left, front-right, back-left, back-right, front, back, left, right, aux0, aux1, aux2, aux3.

Macro: rendering-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

render, feedback, select.

Macro: sample-pattern-sgis enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

1pass-sgis, 2pass-0-sgis, 2pass-1-sgis, 4pass-0-sgis, 4pass-1-sgis, 4pass-2-sgis, 4pass-3-sgis.

Macro: separable-target-ext enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

separable-2d-ext.

Macro: shading-model enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

flat, smooth.

Macro: stencil-function enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

never, less, equal, lequal, greater, notequal, gequal, always.

Macro: stencil-op enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

zero, keep, replace, incr, decr, invert.

Macro: string-name enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vendor, renderer, version, extensions.

Macro: tex-coord-pointer-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

short, int, float, double.

Macro: texture-coord-name enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

s, t, r, q.

Macro: texture-env-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

modulate, decal, blend, replace-ext, add, texture-env-bias-sgix.

Macro: texture-env-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-env-mode, texture-env-color.

Macro: texture-env-target enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-env.

Macro: texture-filter-func-sgis enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

filter4-sgis.

Macro: texture-gen-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

eye-linear, object-linear, sphere-map, eye-distance-to-point-sgis, object-distance-to-point-sgis, eye-distance-to-line-sgis, object-distance-to-line-sgis.

Macro: texture-gen-parameter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-gen-mode, object-plane, eye-plane, eye-point-sgis, object-point-sgis, eye-line-sgis, object-line-sgis.

Macro: oes-texture-cube-map enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-gen-mode, normal-map-oes, reflection-map-oes, texture-cube-map-oes, texture-binding-cube-map-oes, texture-cube-map-positive-x-oes, texture-cube-map-negative-x-oes, texture-cube-map-positive-y-oes, texture-cube-map-negative-y-oes, texture-cube-map-positive-z-oes, texture-cube-map-negative-z-oes, max-cube-map-texture-size-oes, texture-gen-str-oes.

Macro: texture-mag-filter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

nearest, linear, linear-detail-sgis, linear-detail-alpha-sgis, linear-detail-color-sgis, linear-sharpen-sgis, linear-sharpen-alpha-sgis, linear-sharpen-color-sgis, filter4-sgis, pixel-tex-gen-q-ceiling-sgix, pixel-tex-gen-q-round-sgix, pixel-tex-gen-q-floor-sgix.

Macro: texture-min-filter enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

nearest, linear, nearest-mipmap-nearest, linear-mipmap-nearest, nearest-mipmap-linear, linear-mipmap-linear, filter4-sgis, linear-clipmap-linear-sgix, nearest-clipmap-nearest-sgix, nearest-clipmap-linear-sgix, linear-clipmap-nearest-sgix, pixel-tex-gen-q-ceiling-sgix, pixel-tex-gen-q-round-sgix, pixel-tex-gen-q-floor-sgix.

Macro: texture-parameter-name enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-mag-filter, texture-min-filter, texture-wrap-s, texture-wrap-t, texture-border-color, texture-priority, texture-wrap-r-ext, detail-texture-level-sgis, detail-texture-mode-sgis, generate-mipmap-sgis, dual-texture-select-sgis, quad-texture-select-sgis, texture-wrap-q-sgis, texture-clipmap-center-sgix, texture-clipmap-frame-sgix, texture-clipmap-offset-sgix, texture-clipmap-virtual-depth-sgix, texture-clipmap-lod-offset-sgix, texture-clipmap-depth-sgix, texture-compare-sgix, texture-compare-operator-sgix, shadow-ambient-sgix, texture-max-clamp-s-sgix, texture-max-clamp-t-sgix, texture-max-clamp-r-sgix, texture-lod-bias-s-sgix, texture-lod-bias-t-sgix, texture-lod-bias-r-sgix, post-texture-filter-bias-sgix, post-texture-filter-scale-sgix.

Macro: texture-target enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-1d, texture-2d, proxy-texture-1d, proxy-texture-2d, texture-3d-ext, proxy-texture-3d-ext, detail-texture-2d-sgis, texture-4d-sgis, proxy-texture-4d-sgis, texture-min-lod-sgis, texture-max-lod-sgis, texture-base-level-sgis, texture-max-level-sgis.

Macro: texture-wrap-mode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

clamp, repeat, clamp-to-border-sgis, clamp-to-edge-sgis.

Macro: pixel-internal-format enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

r3-g3-b2, alpha4, alpha8, alpha12, alpha16, luminance4, luminance8, luminance12, luminance16, luminance4-alpha4, luminance6-alpha2, luminance8-alpha8, luminance12-alpha4, luminance12-alpha12, luminance16-alpha16, intensity, intensity4, intensity8, intensity12, intensity16, rgb4, rgb5, rgb8, rgb10, rgb12, rgb16, rgba2, rgba4, rgb5-a1, rgba8, rgb10-a2, rgba12, rgba16, rgb2-ext, dual-alpha4-sgis, dual-alpha8-sgis, dual-alpha12-sgis, dual-alpha16-sgis, dual-luminance4-sgis, dual-luminance8-sgis, dual-luminance12-sgis, dual-luminance16-sgis, dual-intensity4-sgis, dual-intensity8-sgis, dual-intensity12-sgis, dual-intensity16-sgis, dual-luminance-alpha4-sgis, dual-luminance-alpha8-sgis, quad-alpha4-sgis, quad-alpha8-sgis, quad-luminance4-sgis, quad-luminance8-sgis, quad-intensity4-sgis, quad-intensity8-sgis, depth-component16-sgix, depth-component24-sgix, depth-component32-sgix.

Macro: oes-rgb-8-rgba-8 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgb8, rgba8.

Macro: interleaved-array-format enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

v2f, v3f, c4ub-v2f, c4ub-v3f, c3f-v3f, n3f-v3f, c4f-n3f-v3f, t2f-v3f, t4f-v4f, t2f-c4ub-v3f, t2f-c3f-v3f, t2f-n3f-v3f, t2f-c4f-n3f-v3f, t4f-c4f-n3f-v4f.

Macro: vertex-pointer-type enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

short, int, float, double.

Macro: clip-plane-name enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

clip-plane0, clip-plane1, clip-plane2, clip-plane3, clip-plane4, clip-plane5.

Macro: light-name enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

light0, light1, light2, light3, light4, light5, light6, light7, fragment-light0-sgix, fragment-light1-sgix, fragment-light2-sgix, fragment-light3-sgix, fragment-light4-sgix, fragment-light5-sgix, fragment-light6-sgix, fragment-light7-sgix.

Macro: ext-abgr enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

abgr-ext.

Macro: version-1-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

constant-color, one-minus-constant-color, constant-alpha, one-minus-constant-alpha, blend-color, func-add, func-add-ext, min, min-ext, max, max-ext, blend-equation, blend-equation-ext, func-subtract, func-subtract-ext, func-reverse-subtract, func-reverse-subtract-ext, convolution-1d, convolution-2d, separable-2d, convolution-border-mode, convolution-filter-scale, convolution-filter-bias, reduce, convolution-format, convolution-width, convolution-height, max-convolution-width, max-convolution-height, post-convolution-red-scale, post-convolution-green-scale, post-convolution-blue-scale, post-convolution-alpha-scale, post-convolution-red-bias, post-convolution-green-bias, post-convolution-blue-bias, post-convolution-alpha-bias, histogram, proxy-histogram, histogram-width, histogram-format, histogram-red-size, histogram-green-size, histogram-blue-size, histogram-alpha-size, histogram-sink, minmax, minmax-format, minmax-sink, table-too-large, unsigned-byte-3-3-2, unsigned-short-4-4-4-4, unsigned-short-5-5-5-1, unsigned-int-8-8-8-8, unsigned-int-10-10-10-2, unsigned-byte-2-3-3-rev, unsigned-short-5-6-5, unsigned-short-5-6-5-rev, unsigned-short-4-4-4-4-rev, unsigned-short-1-5-5-5-rev, unsigned-int-8-8-8-8-rev, unsigned-int-2-10-10-10-rev, rescale-normal, pack-skip-images, pack-image-height, unpack-skip-images, unpack-image-height, texture-3d, proxy-texture-3d, texture-depth, texture-wrap-r, max-3d-texture-size, color-matrix, color-matrix-stack-depth, max-color-matrix-stack-depth, post-color-matrix-red-scale, post-color-matrix-green-scale, post-color-matrix-blue-scale, post-color-matrix-alpha-scale, post-color-matrix-red-bias, post-color-matrix-green-bias, post-color-matrix-blue-bias, post-color-matrix-alpha-bias, color-table, post-convolution-color-table, post-color-matrix-color-table, proxy-color-table, proxy-post-convolution-color-table, proxy-post-color-matrix-color-table, color-table-scale, color-table-bias, color-table-format, color-table-width, color-table-red-size, color-table-green-size, color-table-blue-size, color-table-alpha-size, color-table-luminance-size, color-table-intensity-size, bgr, bgra, max-elements-vertices, max-elements-indices, clamp-to-edge, texture-min-lod, texture-max-lod, texture-base-level, texture-max-level, constant-border, replicate-border, convolution-border-color, light-model-color-control, single-color, separate-specular-color, smooth-point-size-range, smooth-point-size-granularity, smooth-line-width-range, smooth-line-width-granularity, aliased-point-size-range, aliased-line-width-range.

Macro: ext-blend-color enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

constant-color-ext, one-minus-constant-color-ext, constant-alpha-ext, one-minus-constant-alpha-ext, blend-color-ext.

Macro: ext-blend-minmax enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

func-add, func-add-ext, min, min-ext, max, max-ext, blend-equation, blend-equation-ext.

Macro: version-2-0 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

blend-equation-rgb, vertex-attrib-array-enabled, vertex-attrib-array-size, vertex-attrib-array-stride, vertex-attrib-array-type, current-vertex-attrib, vertex-program-point-size, vertex-program-two-side, vertex-attrib-array-pointer, stencil-back-func, stencil-back-fail, stencil-back-pass-depth-fail, stencil-back-pass-depth-pass, stencil-back-fail-ati, max-draw-buffers, draw-buffer0, draw-buffer1, draw-buffer2, draw-buffer3, draw-buffer4, draw-buffer5, draw-buffer6, draw-buffer7, draw-buffer8, draw-buffer9, draw-buffer10, draw-buffer11, draw-buffer12, draw-buffer13, draw-buffer14, draw-buffer15, blend-equation-alpha, point-sprite, coord-replace, max-vertex-attribs, vertex-attrib-array-normalized, max-texture-coords, max-texture-image-units, fragment-shader, fragment-shader-arb, vertex-shader, vertex-shader-arb, program-object-arb, shader-object-arb, max-fragment-uniform-components, max-fragment-uniform-components-arb, max-vertex-uniform-components, max-vertex-uniform-components-arb, max-varying-floats, max-varying-floats-arb, max-vertex-texture-image-units, max-vertex-texture-image-units-arb, max-combined-texture-image-units, max-combined-texture-image-units-arb, object-type-arb, shader-type, object-subtype-arb, float-vec2, float-vec2-arb, float-vec3, float-vec3-arb, float-vec4, float-vec4-arb, int-vec2, int-vec2-arb, int-vec3, int-vec3-arb, int-vec4, int-vec4-arb, bool, bool-arb, bool-vec2, bool-vec2-arb, bool-vec3, bool-vec3-arb, bool-vec4, bool-vec4-arb, float-mat2, float-mat2-arb, float-mat3, float-mat3-arb, float-mat4, float-mat4-arb, sampler-1d, sampler-1d-arb, sampler-2d, sampler-2d-arb, sampler-3d, sampler-3d-arb, sampler-cube, sampler-cube-arb, sampler-1d-shadow, sampler-1d-shadow-arb, sampler-2d-shadow, sampler-2d-shadow-arb, sampler-2d-rect-arb, sampler-2d-rect-shadow-arb, float-mat-2x-3, float-mat-2x-4, float-mat-3x-2, float-mat-3x-4, float-mat-4x-2, float-mat-4x-3, delete-status, object-delete-status-arb, compile-status, object-compile-status-arb, link-status, object-link-status-arb, validate-status, object-validate-status-arb, info-log-length, object-info-log-length-arb, attached-shaders, object-attached-objects-arb, active-uniforms, object-active-uniforms-arb, active-uniform-max-length, object-active-uniform-max-length-arb, shader-source-length, object-shader-source-length-arb, active-attributes, object-active-attributes-arb, active-attribute-max-length, object-active-attribute-max-length-arb, fragment-shader-derivative-hint, fragment-shader-derivative-hint-arb, shading-language-version, shading-language-version-arb, current-program, point-sprite-coord-origin, lower-left, upper-left, stencil-back-ref, stencil-back-value-mask, stencil-back-writemask.

Macro: ext-blend-equation-separate enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

blend-equation-rgb-ext, blend-equation-alpha-ext.

Macro: oes-blend-equation-separate enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

blend-equation-rgb-oes, blend-equation-alpha-oes.

Macro: ext-blend-subtract enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

func-subtract, func-subtract-ext, func-reverse-subtract, func-reverse-subtract-ext.

Macro: oes-blend-subtract enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

func-add-oes, blend-equation-oes, func-subtract-oes, func-reverse-subtract-oes.

Macro: ext-cmyka enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

cmyk-ext, cmyka-ext, pack-cmyk-hint-ext, unpack-cmyk-hint-ext.

Macro: ext-convolution enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

convolution-1d-ext, convolution-2d-ext, separable-2d-ext, convolution-border-mode-ext, convolution-filter-scale-ext, convolution-filter-bias-ext, reduce-ext, convolution-format-ext, convolution-width-ext, convolution-height-ext, max-convolution-width-ext, max-convolution-height-ext, post-convolution-red-scale-ext, post-convolution-green-scale-ext, post-convolution-blue-scale-ext, post-convolution-alpha-scale-ext, post-convolution-red-bias-ext, post-convolution-green-bias-ext, post-convolution-blue-bias-ext, post-convolution-alpha-bias-ext.

Macro: ext-histogram enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

histogram-ext, proxy-histogram-ext, histogram-width-ext, histogram-format-ext, histogram-red-size-ext, histogram-green-size-ext, histogram-blue-size-ext, histogram-alpha-size-ext, histogram-luminance-size, histogram-luminance-size-ext, histogram-sink-ext, minmax-ext, minmax-format-ext, minmax-sink-ext, table-too-large-ext.

Macro: ext-packed-pixels enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

unsigned-byte-3-3-2-ext, unsigned-short-4-4-4-4-ext, unsigned-short-5-5-5-1-ext, unsigned-int-8-8-8-8-ext, unsigned-int-10-10-10-2-ext, unsigned-byte-2-3-3-rev-ext, unsigned-short-5-6-5-ext, unsigned-short-5-6-5-rev-ext, unsigned-short-4-4-4-4-rev-ext, unsigned-short-1-5-5-5-rev-ext, unsigned-int-8-8-8-8-rev-ext, unsigned-int-2-10-10-10-rev-ext.

Macro: ext-texture-type-2-10-10-10-rev enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

polygon-offset-ext, polygon-offset-factor-ext, polygon-offset-bias-ext.

Macro: ext-polygon-offset enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

polygon-offset-ext, polygon-offset-factor-ext, polygon-offset-bias-ext.

Macro: ext-rescale-normal enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rescale-normal-ext.

Macro: ext-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

alpha4-ext, alpha8-ext, alpha12-ext, alpha16-ext, luminance4-ext, luminance8-ext, luminance12-ext, luminance16-ext, luminance4-alpha4-ext, luminance6-alpha2-ext, luminance8-alpha8-ext, luminance12-alpha4-ext, luminance12-alpha12-ext, luminance16-alpha16-ext, intensity-ext, intensity4-ext, intensity8-ext, intensity12-ext, intensity16-ext, rgb2-ext, rgb4-ext, rgb5-ext, rgb8-ext, rgb10-ext, rgb12-ext, rgb16-ext, rgba2-ext, rgba4-ext, rgb5-a1-ext, rgba8-ext, rgb10-a2-ext, rgba12-ext, rgba16-ext, texture-red-size-ext, texture-green-size-ext, texture-blue-size-ext, texture-alpha-size-ext, texture-luminance-size-ext, texture-intensity-size-ext, replace-ext, proxy-texture-1d-ext, proxy-texture-2d-ext, texture-too-large-ext.

Macro: ext-texture-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-priority-ext, texture-resident-ext, texture-1d-binding-ext, texture-2d-binding-ext, texture-3d-binding-ext.

Macro: ext-texture-3d enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pack-skip-images-ext, pack-image-height-ext, unpack-skip-images-ext, unpack-image-height-ext, texture-3d-ext, proxy-texture-3d-ext, texture-depth-ext, texture-wrap-r-ext, max-3d-texture-size-ext.

Macro: oes-texture-3d enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-3d-binding-oes, texture-3d-oes, texture-wrap-r-oes, max-3d-texture-size-oes, sampler-3d-oes, framebuffer-attachment-texture-3d-zoffset-oes.

Macro: ext-vertex-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-array-ext, normal-array-ext, color-array-ext, index-array-ext, texture-coord-array-ext, edge-flag-array-ext, vertex-array-size-ext, vertex-array-type-ext, vertex-array-stride-ext, vertex-array-count-ext, normal-array-type-ext, normal-array-stride-ext, normal-array-count-ext, color-array-size-ext, color-array-type-ext, color-array-stride-ext, color-array-count-ext, index-array-type-ext, index-array-stride-ext, index-array-count-ext, texture-coord-array-size-ext, texture-coord-array-type-ext, texture-coord-array-stride-ext, texture-coord-array-count-ext, edge-flag-array-stride-ext, edge-flag-array-count-ext, vertex-array-pointer-ext, normal-array-pointer-ext, color-array-pointer-ext, index-array-pointer-ext, texture-coord-array-pointer-ext, edge-flag-array-pointer-ext.

Macro: sgix-interlace enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

interlace-sgix.

Macro: sgis-detail-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

detail-texture-2d-sgis, detail-texture-2d-binding-sgis, linear-detail-sgis, linear-detail-alpha-sgis, linear-detail-color-sgis, detail-texture-level-sgis, detail-texture-mode-sgis, detail-texture-func-points-sgis.

Macro: sgis-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

multisample-sgis, sample-alpha-to-mask-sgis, sample-alpha-to-one-sgis, sample-mask-sgis, 1pass-sgis, 2pass-0-sgis, 2pass-1-sgis, 4pass-0-sgis, 4pass-1-sgis, 4pass-2-sgis, 4pass-3-sgis, sample-buffers-sgis, samples-sgis, sample-mask-value-sgis, sample-mask-invert-sgis, sample-pattern-sgis.

Macro: nv-multisample-coverage enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

coverage-samples-nv, color-samples-nv.

Macro: sgis-sharpen-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

linear-sharpen-sgis, linear-sharpen-alpha-sgis, linear-sharpen-color-sgis, sharpen-texture-func-points-sgis.

Macro: sgi-color-matrix enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color-matrix-sgi, color-matrix-stack-depth-sgi, max-color-matrix-stack-depth-sgi, post-color-matrix-red-scale-sgi, post-color-matrix-green-scale-sgi, post-color-matrix-blue-scale-sgi, post-color-matrix-alpha-scale-sgi, post-color-matrix-red-bias-sgi, post-color-matrix-green-bias-sgi, post-color-matrix-blue-bias-sgi, post-color-matrix-alpha-bias-sgi.

Macro: sgi-texture-color-table enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-color-table-sgi, proxy-texture-color-table-sgi.

Macro: sgix-texture-add-env enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-env-bias-sgix.

Macro: sgix-shadow-ambient enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

shadow-ambient-sgix.

Macro: version-1-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

blend-dst-rgb, blend-src-rgb, blend-dst-alpha, blend-src-alpha, point-size-min, point-size-max, point-fade-threshold-size, point-distance-attenuation, generate-mipmap, generate-mipmap-hint, depth-component16, depth-component24, depth-component32, mirrored-repeat, fog-coordinate-source, fog-coordinate, fragment-depth, current-fog-coordinate, fog-coordinate-array-type, fog-coordinate-array-stride, fog-coordinate-array-pointer, fog-coordinate-array, color-sum, current-secondary-color, secondary-color-array-size, secondary-color-array-type, secondary-color-array-stride, secondary-color-array-pointer, secondary-color-array, max-texture-lod-bias, texture-filter-control, texture-lod-bias, incr-wrap, decr-wrap, texture-depth-size, depth-texture-mode, texture-compare-mode, texture-compare-func, compare-r-to-texture.

Macro: ext-blend-func-separate enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

blend-dst-rgb-ext, blend-src-rgb-ext, blend-dst-alpha-ext, blend-src-alpha-ext.

Macro: oes-blend-func-separate enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

blend-dst-rgb-oes, blend-src-rgb-oes, blend-dst-alpha-oes, blend-src-alpha-oes.

Macro: ext-422-pixels enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

422-ext, 422-rev-ext, 422-average-ext, 422-rev-average-ext.

Macro: sgi-color-table enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color-table-sgi, post-convolution-color-table-sgi, post-color-matrix-color-table-sgi, proxy-color-table-sgi, proxy-post-convolution-color-table-sgi, proxy-post-color-matrix-color-table-sgi, color-table-scale-sgi, color-table-bias-sgi, color-table-format-sgi, color-table-width-sgi, color-table-red-size-sgi, color-table-green-size-sgi, color-table-blue-size-sgi, color-table-alpha-size-sgi, color-table-luminance-size-sgi, color-table-intensity-size-sgi.

Macro: arb-vertex-array-bgra enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

bgr-ext, bgra-ext.

Macro: ext-bgra enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

bgr-ext, bgra-ext.

Macro: sgis-texture-select enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

dual-alpha4-sgis, dual-alpha8-sgis, dual-alpha12-sgis, dual-alpha16-sgis, dual-luminance4-sgis, dual-luminance8-sgis, dual-luminance12-sgis, dual-luminance16-sgis, dual-intensity4-sgis, dual-intensity8-sgis, dual-intensity12-sgis, dual-intensity16-sgis, dual-luminance-alpha4-sgis, dual-luminance-alpha8-sgis, quad-alpha4-sgis, quad-alpha8-sgis, quad-luminance4-sgis, quad-luminance8-sgis, quad-intensity4-sgis, quad-intensity8-sgis, dual-texture-select-sgis, quad-texture-select-sgis.

Macro: arb-point-parameters enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point-size-min-arb, point-size-max-arb, point-fade-threshold-size-arb, point-distance-attenuation-arb.

Macro: ext-point-parameters enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point-size-min-ext, point-size-max-ext, point-fade-threshold-size-ext, distance-attenuation-ext.

Macro: sgis-point-parameters enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point-size-min-sgis, point-size-max-sgis, point-fade-threshold-size-sgis, distance-attenuation-sgis.

Macro: sgis-fog-function enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fog-func-sgis, fog-func-points-sgis, max-fog-func-points-sgis.

Macro: arb-texture-border-clamp enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

clamp-to-border-arb.

Macro: sgis-texture-border-clamp enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

clamp-to-border-sgis.

Macro: sgix-texture-multi-buffer enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-multi-buffer-hint-sgix.

Macro: sgis-texture-edge-clamp enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

clamp-to-edge-sgis.

Macro: sgis-texture-4d enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pack-skip-volumes-sgis, pack-image-depth-sgis, unpack-skip-volumes-sgis, unpack-image-depth-sgis, texture-4d-sgis, proxy-texture-4d-sgis, texture-4dsize-sgis, texture-wrap-q-sgis, max-4d-texture-size-sgis, texture-4d-binding-sgis.

Macro: sgix-pixel-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-tex-gen-sgix, pixel-tex-gen-mode-sgix.

Macro: sgis-texture-lod enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-min-lod-sgis, texture-max-lod-sgis, texture-base-level-sgis, texture-max-level-sgis.

Macro: sgix-pixel-tiles enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-tile-best-alignment-sgix, pixel-tile-cache-increment-sgix, pixel-tile-width-sgix, pixel-tile-height-sgix, pixel-tile-grid-width-sgix, pixel-tile-grid-height-sgix, pixel-tile-grid-depth-sgix, pixel-tile-cache-size-sgix.

Macro: sgis-texture-filter-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

filter4-sgis, texture-filter4-size-sgis.

Macro: sgix-sprite enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sprite-sgix, sprite-mode-sgix, sprite-axis-sgix, sprite-translation-sgix, sprite-axial-sgix, sprite-object-aligned-sgix, sprite-eye-aligned-sgix.

Macro: hp-convolution-border-modes enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

ignore-border-hp, constant-border-hp, replicate-border-hp, convolution-border-color-hp.

Macro: sgix-clipmap enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

linear-clipmap-linear-sgix, texture-clipmap-center-sgix, texture-clipmap-frame-sgix, texture-clipmap-offset-sgix, texture-clipmap-virtual-depth-sgix, texture-clipmap-lod-offset-sgix, texture-clipmap-depth-sgix, max-clipmap-depth-sgix, max-clipmap-virtual-depth-sgix, nearest-clipmap-nearest-sgix, nearest-clipmap-linear-sgix, linear-clipmap-nearest-sgix.

Macro: sgix-texture-scale-bias enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

post-texture-filter-bias-sgix, post-texture-filter-scale-sgix, post-texture-filter-bias-range-sgix, post-texture-filter-scale-range-sgix.

Macro: sgix-reference-plane enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

reference-plane-sgix, reference-plane-equation-sgix.

Macro: sgix-ir-instrument-1 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

ir-instrument1-sgix.

Macro: sgix-instruments enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

instrument-buffer-pointer-sgix, instrument-measurements-sgix.

Macro: sgix-list-priority enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

list-priority-sgix.

Macro: sgix-calligraphic-fragment enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

calligraphic-fragment-sgix.

Macro: sgix-impact-pixel-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-tex-gen-q-ceiling-sgix, pixel-tex-gen-q-round-sgix, pixel-tex-gen-q-floor-sgix, pixel-tex-gen-alpha-replace-sgix, pixel-tex-gen-alpha-no-replace-sgix, pixel-tex-gen-alpha-ls-sgix, pixel-tex-gen-alpha-ms-sgix.

Macro: sgix-framezoom enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

framezoom-sgix, framezoom-factor-sgix, max-framezoom-factor-sgix.

Macro: sgix-texture-lod-bias enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-lod-bias-s-sgix, texture-lod-bias-t-sgix, texture-lod-bias-r-sgix.

Macro: sgis-generate-mipmap enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

generate-mipmap-sgis, generate-mipmap-hint-sgis.

Macro: sgix-polynomial-ffd enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

geometry-deformation-sgix, texture-deformation-sgix, deformations-mask-sgix, max-deformation-order-sgix.

Macro: sgix-fog-offset enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fog-offset-sgix, fog-offset-value-sgix.

Macro: sgix-shadow enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-compare-sgix, texture-compare-operator-sgix, texture-lequal-r-sgix, texture-gequal-r-sgix.

Macro: arb-depth-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-component16-arb, depth-component24-arb, depth-component32-arb, texture-depth-size-arb, depth-texture-mode-arb.

Macro: sgix-depth-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-component16-sgix, depth-component24-sgix, depth-component32-sgix.

Macro: oes-depth-24 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-component24-oes.

Macro: oes-depth-32 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-component32-oes.

Macro: ext-compiled-vertex-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

array-element-lock-first-ext, array-element-lock-count-ext.

Macro: ext-cull-vertex enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

cull-vertex-ext, cull-vertex-eye-position-ext, cull-vertex-object-position-ext.

Macro: ext-index-array-formats enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

iui-v2f-ext, iui-v3f-ext, iui-n3f-v2f-ext, iui-n3f-v3f-ext, t2f-iui-v2f-ext, t2f-iui-v3f-ext, t2f-iui-n3f-v2f-ext, t2f-iui-n3f-v3f-ext.

Macro: ext-index-func enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

index-test-ext, index-test-func-ext, index-test-ref-ext.

Macro: ext-index-material enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

index-material-ext, index-material-parameter-ext, index-material-face-ext.

Macro: sgix-ycrcb enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

ycrcb-422-sgix, ycrcb-444-sgix.

Macro: sunx-general-triangle-list enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

restart-sun, replace-middle-sun, replace-oldest-sun, wrap-border-sun, triangle-list-sun, replacement-code-sun, replacement-code-array-sun, replacement-code-array-type-sun, replacement-code-array-stride-sun, replacement-code-array-pointer-sun, r1ui-v3f-sun, r1ui-c4ub-v3f-sun, r1ui-c3f-v3f-sun, r1ui-n3f-v3f-sun, r1ui-c4f-n3f-v3f-sun, r1ui-t2f-v3f-sun, r1ui-t2f-n3f-v3f-sun, r1ui-t2f-c4f-n3f-v3f-sun.

Macro: sunx-constant-data enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

unpack-constant-data-sunx, texture-constant-data-sunx.

Macro: sun-global-alpha enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

global-alpha-sun, global-alpha-factor-sun.

Macro: sgis-texture-color-mask enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-color-writemask-sgis.

Macro: sgis-point-line-texgen enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

eye-distance-to-point-sgis, object-distance-to-point-sgis, eye-distance-to-line-sgis, object-distance-to-line-sgis, eye-point-sgis, object-point-sgis, eye-line-sgis, object-line-sgis.

Macro: ext-separate-specular-color enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

light-model-color-control-ext, single-color-ext, separate-specular-color-ext.

Macro: ext-shared-texture-palette enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

shared-texture-palette-ext.

Macro: ati-text-fragment-shader enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

text-fragment-shader-ati.

Macro: ext-color-buffer-half-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

framebuffer-attachment-component-type-ext, r16f-ext, rg16f-ext, rgba16f-ext, rgb16f-ext, unsigned-normalized-ext.

Macro: oes-surfaceless-context enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

framebuffer-undefined-oes.

Macro: arb-texture-rg enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rg, rg-integer, r8, r16, rg8, rg16, r16f, r32f, rg16f, rg32f, r8i, r8ui, r16i, r16ui, r32i, r32ui, rg8i, rg8ui, rg16i, rg16ui, rg32i, rg32ui.

Macro: arb-cl-event enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sync-cl-event-arb, sync-cl-event-complete-arb.

Macro: arb-debug-output enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

debug-output-synchronous-arb, debug-next-logged-message-length-arb, debug-callback-function-arb, debug-callback-user-param-arb, debug-source-api-arb, debug-source-window-system-arb, debug-source-shader-compiler-arb, debug-source-third-party-arb, debug-source-application-arb, debug-source-other-arb, debug-type-error-arb, debug-type-deprecated-behavior-arb, debug-type-undefined-behavior-arb, debug-type-portability-arb, debug-type-performance-arb, debug-type-other-arb, max-debug-message-length-arb, max-debug-logged-messages-arb, debug-logged-messages-arb, debug-severity-high-arb, debug-severity-medium-arb, debug-severity-low-arb.

Macro: arb-get-program-binary enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

program-binary-retrievable-hint, program-binary-length, num-program-binary-formats, program-binary-formats.

Macro: arb-viewport-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-viewports, viewport-subpixel-bits, viewport-bounds-range, layer-provoking-vertex, viewport-index-provoking-vertex, undefined-vertex, first-vertex-convention, last-vertex-convention, provoking-vertex.

Macro: arb-explicit-uniform-location enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-uniform-locations.

Macro: arb-internalformat-query-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

internalformat-supported, internalformat-preferred, internalformat-red-size, internalformat-green-size, internalformat-blue-size, internalformat-alpha-size, internalformat-depth-size, internalformat-stencil-size, internalformat-shared-size, internalformat-red-type, internalformat-green-type, internalformat-blue-type, internalformat-alpha-type, internalformat-depth-type, internalformat-stencil-type, max-width, max-height, max-depth, max-layers, max-combined-dimensions, color-components, depth-components, stencil-components, color-renderable, depth-renderable, stencil-renderable, framebuffer-renderable, framebuffer-renderable-layered, framebuffer-blend, read-pixels, read-pixels-format, read-pixels-type, texture-image-format, texture-image-type, get-texture-image-format, get-texture-image-type, mipmap, manual-generate-mipmap, auto-generate-mipmap, color-encoding, srgb-read, srgb-write, srgb-decode-arb, filter, vertex-texture, tess-control-texture, tess-evaluation-texture, geometry-texture, fragment-texture, compute-texture, texture-shadow, texture-gather, texture-gather-shadow, shader-image-load, shader-image-store, shader-image-atomic, image-texel-size, image-compatibility-class, image-pixel-format, image-pixel-type, simultaneous-texture-and-depth-test, simultaneous-texture-and-stencil-test, simultaneous-texture-and-depth-write, simultaneous-texture-and-stencil-write, texture-compressed-block-width, texture-compressed-block-height, texture-compressed-block-size, clear-buffer, texture-view, view-compatibility-class, full-support, caveat-support, image-class-4-x-32, image-class-2-x-32, image-class-1-x-32, image-class-4-x-16, image-class-2-x-16, image-class-1-x-16, image-class-4-x-8, image-class-2-x-8, image-class-1-x-8, image-class-11-11-10, image-class-10-10-10-2, view-class-128-bits, view-class-96-bits, view-class-64-bits, view-class-48-bits, view-class-32-bits, view-class-24-bits, view-class-16-bits, view-class-8-bits, view-class-s3tc-dxt1-rgb, view-class-s3tc-dxt1-rgba, view-class-s3tc-dxt3-rgba, view-class-s3tc-dxt5-rgba, view-class-rgtc1-red, view-class-rgtc2-rg, view-class-bptc-unorm, view-class-bptc-float.

Macro: arb-vertex-attrib-binding enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-binding, vertex-attrib-relative-offset, vertex-binding-divisor, vertex-binding-offset, vertex-binding-stride, max-vertex-attrib-relative-offset, max-vertex-attrib-bindings.

Macro: arb-texture-view enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-view-min-level, texture-view-num-levels, texture-view-min-layer, texture-view-num-layers, texture-immutable-levels.

Macro: sgix-depth-pass-instrument enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-pass-instrument-sgix, depth-pass-instrument-counters-sgix, depth-pass-instrument-max-sgix.

Macro: sgix-fragments-instrument enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragments-instrument-sgix, fragments-instrument-counters-sgix, fragments-instrument-max-sgix.

Macro: sgix-convolution-accuracy enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

convolution-hint-sgix.

Macro: sgix-ycrcba enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

ycrcb-sgix, ycrcba-sgix.

Macro: sgix-slim enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

unpack-compressed-size-sgix, pack-max-compressed-size-sgix, pack-compressed-size-sgix, slim8u-sgix, slim10u-sgix, slim12s-sgix.

Macro: sgix-blend-alpha-minmax enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

alpha-min-sgix, alpha-max-sgix.

Macro: sgix-scalebias-hint enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

scalebias-hint-sgix.

Macro: sgix-async enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

async-marker-sgix.

Macro: sgix-async-histogram enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

async-histogram-sgix, max-async-histogram-sgix.

Macro: ext-pixel-transform enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-transform-2d-ext, pixel-mag-filter-ext, pixel-min-filter-ext, pixel-cubic-weight-ext, cubic-ext, average-ext, pixel-transform-2d-stack-depth-ext, max-pixel-transform-2d-stack-depth-ext, pixel-transform-2d-matrix-ext.

Macro: ext-light-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-material-ext, fragment-normal-ext, fragment-color-ext, attenuation-ext, shadow-attenuation-ext, texture-application-mode-ext, texture-light-ext, texture-material-face-ext, texture-material-parameter-ext, fragment-depth-ext.

Macro: sgis-pixel-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-texture-sgis, pixel-fragment-rgb-source-sgis, pixel-fragment-alpha-source-sgis, pixel-group-color-sgis.

Macro: sgix-line-quality-hint enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

line-quality-hint-sgix.

Macro: sgix-async-pixel enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

async-tex-image-sgix, async-draw-pixels-sgix, async-read-pixels-sgix, max-async-tex-image-sgix, max-async-draw-pixels-sgix, max-async-read-pixels-sgix.

Macro: sgix-texture-coordinate-clamp enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-max-clamp-s-sgix, texture-max-clamp-t-sgix, texture-max-clamp-r-sgix, fog-factor-to-alpha-sgix.

Macro: arb-texture-mirrored-repeat enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

mirrored-repeat-arb.

Macro: ibm-texture-mirrored-repeat enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

mirrored-repeat-ibm.

Macro: oes-texture-mirrored-repeat enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

mirrored-repeat-oes.

Macro: s3-s-3-tc enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgb-s3tc, rgb4-s3tc, rgba-s3tc, rgba4-s3tc, rgba-dxt5-s3tc, rgba4-dxt5-s3tc.

Macro: sgix-vertex-preclip enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-preclip-sgix, vertex-preclip-hint-sgix.

Macro: ext-texture-compression-s-3-tc enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-rgb-s3tc-dxt1-ext, compressed-rgba-s3tc-dxt1-ext, compressed-rgba-s3tc-dxt3-ext, compressed-rgba-s3tc-dxt5-ext.

Macro: angle-texture-compression-dxt-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-rgba-s3tc-dxt3-angle.

Macro: angle-texture-compression-dxt-5 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-rgba-s3tc-dxt5-angle.

Macro: intel-parallel-arrays enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

parallel-arrays-intel, vertex-array-parallel-pointers-intel, normal-array-parallel-pointers-intel, color-array-parallel-pointers-intel, texture-coord-array-parallel-pointers-intel.

Macro: sgix-fragment-lighting enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-lighting-sgix, fragment-color-material-sgix, fragment-color-material-face-sgix, fragment-color-material-parameter-sgix, max-fragment-lights-sgix, max-active-lights-sgix, current-raster-normal-sgix, light-env-mode-sgix, fragment-light-model-local-viewer-sgix, fragment-light-model-two-side-sgix, fragment-light-model-ambient-sgix, fragment-light-model-normal-interpolation-sgix, fragment-light0-sgix, fragment-light1-sgix, fragment-light2-sgix, fragment-light3-sgix, fragment-light4-sgix, fragment-light5-sgix, fragment-light6-sgix, fragment-light7-sgix.

Macro: sgix-resample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pack-resample-sgix, unpack-resample-sgix, resample-replicate-sgix, resample-zero-fill-sgix, resample-decimate-sgix.

Macro: version-1-5 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fog-coord-src, fog-coord, current-fog-coord, fog-coord-array-type, fog-coord-array-stride, fog-coord-array-pointer, fog-coord-array, src0-rgb, src1-rgb, src2-rgb, src0-alpha, src1-alpha, src2-alpha, buffer-size, buffer-usage, query-counter-bits, current-query, query-result, query-result-available, array-buffer, element-array-buffer, array-buffer-binding, element-array-buffer-binding, vertex-array-buffer-binding, normal-array-buffer-binding, color-array-buffer-binding, index-array-buffer-binding, texture-coord-array-buffer-binding, edge-flag-array-buffer-binding, secondary-color-array-buffer-binding, fog-coord-array-buffer-binding, fog-coordinate-array-buffer-binding, weight-array-buffer-binding, vertex-attrib-array-buffer-binding, read-only, write-only, read-write, buffer-access, buffer-mapped, buffer-map-pointer, stream-draw, stream-read, stream-copy, static-draw, static-read, static-copy, dynamic-draw, dynamic-read, dynamic-copy, samples-passed.

Macro: ext-fog-coord enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fog-coordinate-source-ext, fog-coordinate-ext, fragment-depth-ext, current-fog-coordinate-ext, fog-coordinate-array-type-ext, fog-coordinate-array-stride-ext, fog-coordinate-array-pointer-ext, fog-coordinate-array-ext.

Macro: ext-secondary-color enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color-sum-ext, current-secondary-color-ext, secondary-color-array-size-ext, secondary-color-array-type-ext, secondary-color-array-stride-ext, secondary-color-array-pointer-ext, secondary-color-array-ext.

Macro: arb-vertex-program enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

color-sum-arb, vertex-program-arb, vertex-attrib-array-enabled-arb, vertex-attrib-array-size-arb, vertex-attrib-array-stride-arb, vertex-attrib-array-type-arb, current-vertex-attrib-arb, program-length-arb, program-string-arb, max-program-matrix-stack-depth-arb, max-program-matrices-arb, current-matrix-stack-depth-arb, current-matrix-arb, vertex-program-point-size-arb, vertex-program-two-side-arb, vertex-attrib-array-pointer-arb, program-error-position-arb, program-binding-arb, max-vertex-attribs-arb, vertex-attrib-array-normalized-arb, max-texture-coords-arb, max-texture-image-units-arb, program-error-string-arb, program-format-ascii-arb, program-format-arb, program-instructions-arb, max-program-instructions-arb, program-native-instructions-arb, max-program-native-instructions-arb, program-temporaries-arb, max-program-temporaries-arb, program-native-temporaries-arb, max-program-native-temporaries-arb, program-parameters-arb, max-program-parameters-arb, program-native-parameters-arb, max-program-native-parameters-arb, program-attribs-arb, max-program-attribs-arb, program-native-attribs-arb, max-program-native-attribs-arb, program-address-registers-arb, max-program-address-registers-arb, program-native-address-registers-arb, max-program-native-address-registers-arb, max-program-local-parameters-arb, max-program-env-parameters-arb, program-under-native-limits-arb, transpose-current-matrix-arb, matrix0-arb, matrix1-arb, matrix2-arb, matrix3-arb, matrix4-arb, matrix5-arb, matrix6-arb, matrix7-arb, matrix8-arb, matrix9-arb, matrix10-arb, matrix11-arb, matrix12-arb, matrix13-arb, matrix14-arb, matrix15-arb, matrix16-arb, matrix17-arb, matrix18-arb, matrix19-arb, matrix20-arb, matrix21-arb, matrix22-arb, matrix23-arb, matrix24-arb, matrix25-arb, matrix26-arb, matrix27-arb, matrix28-arb, matrix29-arb, matrix30-arb, matrix31-arb.

Macro: version-2-1 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

current-raster-secondary-color, pixel-pack-buffer, pixel-unpack-buffer, pixel-pack-buffer-binding, pixel-unpack-buffer-binding, srgb, srgb8, srgb-alpha, srgb8-alpha8, sluminance-alpha, sluminance8-alpha8, sluminance, sluminance8, compressed-srgb, compressed-srgb-alpha, compressed-sluminance, compressed-sluminance-alpha.

Macro: sgix-icc-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

smooth-point-size-range, smooth-point-size-granularity, smooth-line-width-range, smooth-line-width-granularity, aliased-point-size-range, aliased-line-width-range.

Macro: rend-screen-coordinates enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

screen-coordinates-rend, inverted-screen-w-rend.

Macro: arb-multitexture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture0-arb, texture1-arb, texture2-arb, texture3-arb, texture4-arb, texture5-arb, texture6-arb, texture7-arb, texture8-arb, texture9-arb, texture10-arb, texture11-arb, texture12-arb, texture13-arb, texture14-arb, texture15-arb, texture16-arb, texture17-arb, texture18-arb, texture19-arb, texture20-arb, texture21-arb, texture22-arb, texture23-arb, texture24-arb, texture25-arb, texture26-arb, texture27-arb, texture28-arb, texture29-arb, texture30-arb, texture31-arb, active-texture-arb, client-active-texture-arb, max-texture-units-arb.

Macro: oes-texture-env-crossbar enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture0, texture1, texture2, texture3, texture4, texture5, texture6, texture7, texture8, texture9, texture10, texture11, texture12, texture13, texture14, texture15, texture16, texture17, texture18, texture19, texture20, texture21, texture22, texture23, texture24, texture25, texture26, texture27, texture28, texture29, texture30, texture31.

Macro: arb-transpose-matrix enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

transpose-modelview-matrix-arb, transpose-projection-matrix-arb, transpose-texture-matrix-arb, transpose-color-matrix-arb.

Macro: arb-texture-env-combine enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

subtract-arb.

Macro: arb-texture-compression enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-alpha-arb, compressed-luminance-arb, compressed-luminance-alpha-arb, compressed-intensity-arb, compressed-rgb-arb, compressed-rgba-arb, texture-compression-hint-arb, texture-compressed-image-size-arb, texture-compressed-arb, num-compressed-texture-formats-arb, compressed-texture-formats-arb.

Macro: nv-fence enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

all-completed-nv, fence-status-nv, fence-condition-nv.

Macro: version-3-1 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-rectangle, texture-binding-rectangle, proxy-texture-rectangle, max-rectangle-texture-size, uniform-buffer, uniform-buffer-binding, uniform-buffer-start, uniform-buffer-size, max-vertex-uniform-blocks, max-geometry-uniform-blocks, max-fragment-uniform-blocks, max-combined-uniform-blocks, max-uniform-buffer-bindings, max-uniform-block-size, max-combined-vertex-uniform-components, max-combined-geometry-uniform-components, max-combined-fragment-uniform-components, uniform-buffer-offset-alignment, active-uniform-block-max-name-length, active-uniform-blocks, uniform-type, uniform-size, uniform-name-length, uniform-block-index, uniform-offset, uniform-array-stride, uniform-matrix-stride, uniform-is-row-major, uniform-block-binding, uniform-block-data-size, uniform-block-name-length, uniform-block-active-uniforms, uniform-block-active-uniform-indices, uniform-block-referenced-by-vertex-shader, uniform-block-referenced-by-geometry-shader, uniform-block-referenced-by-fragment-shader, invalid-index, sampler-2d-rect, sampler-2d-rect-shadow, texture-buffer, max-texture-buffer-size, texture-binding-buffer, texture-buffer-data-store-binding, sampler-buffer, int-sampler-2d-rect, int-sampler-buffer, unsigned-int-sampler-2d-rect, unsigned-int-sampler-buffer, copy-read-buffer, copy-write-buffer, red-snorm, rg-snorm, rgb-snorm, rgba-snorm, r8-snorm, rg8-snorm, rgb8-snorm, rgba8-snorm, r16-snorm, rg16-snorm, rgb16-snorm, rgba16-snorm, signed-normalized, primitive-restart, primitive-restart-index.

Macro: arb-texture-rectangle enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-rectangle-arb, texture-binding-rectangle-arb, proxy-texture-rectangle-arb, max-rectangle-texture-size-arb.

Macro: nv-texture-rectangle enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-rectangle-nv, texture-binding-rectangle-nv, proxy-texture-rectangle-nv, max-rectangle-texture-size-nv.

Macro: ext-packed-depth-stencil enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-stencil-ext, unsigned-int-24-8-ext, depth24-stencil8-ext, texture-stencil-size-ext.

Macro: nv-packed-depth-stencil enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-stencil-nv, unsigned-int-24-8-nv.

Macro: oes-packed-depth-stencil enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-stencil-oes, unsigned-int-24-8-oes, depth24-stencil8-oes.

Macro: ext-texture-lod-bias enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-texture-lod-bias-ext, texture-filter-control-ext, texture-lod-bias-ext.

Macro: ext-texture-filter-anisotropic enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-max-anisotropy-ext, max-texture-max-anisotropy-ext.

Macro: ext-vertex-weighting enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

modelview1-stack-depth-ext, modelview-matrix1-ext, vertex-weighting-ext, modelview1-ext, current-vertex-weight-ext, vertex-weight-array-ext, vertex-weight-array-size-ext, vertex-weight-array-type-ext, vertex-weight-array-stride-ext, vertex-weight-array-pointer-ext.

Macro: nv-light-max-exponent enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-shininess-nv, max-spot-exponent-nv.

Macro: ext-stencil-wrap enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

incr-wrap-ext, decr-wrap-ext.

Macro: oes-stencil-wrap enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

incr-wrap-oes, decr-wrap-oes.

Macro: ext-texture-cube-map enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

normal-map-ext, reflection-map-ext, texture-cube-map-ext, texture-binding-cube-map-ext, texture-cube-map-positive-x-ext, texture-cube-map-negative-x-ext, texture-cube-map-positive-y-ext, texture-cube-map-negative-y-ext, texture-cube-map-positive-z-ext, texture-cube-map-negative-z-ext, proxy-texture-cube-map-ext, max-cube-map-texture-size-ext.

Macro: nv-texgen-reflection enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

normal-map, reflection-map.

Macro: arb-texture-cube-map enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

normal-map-arb, reflection-map-arb, texture-cube-map-arb, texture-binding-cube-map-arb, texture-cube-map-positive-x-arb, texture-cube-map-negative-x-arb, texture-cube-map-positive-y-arb, texture-cube-map-negative-y-arb, texture-cube-map-positive-z-arb, texture-cube-map-negative-z-arb, proxy-texture-cube-map-arb, max-cube-map-texture-size-arb.

Macro: nv-vertex-array-range enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-array-range-nv, vertex-array-range-length-nv, vertex-array-range-valid-nv, max-vertex-array-range-element-nv, vertex-array-range-pointer-nv.

Macro: apple-vertex-array-range enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-array-range-apple, vertex-array-range-length-apple, vertex-array-storage-hint-apple, vertex-array-range-pointer-apple, storage-client-apple, storage-cached-apple, storage-shared-apple.

Macro: nv-register-combiners enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

register-combiners-nv, variable-a-nv, variable-b-nv, variable-c-nv, variable-d-nv, variable-e-nv, variable-f-nv, variable-g-nv, constant-color0-nv, constant-color1-nv, primary-color-nv, secondary-color-nv, spare0-nv, spare1-nv, discard-nv, e-times-f-nv, spare0-plus-secondary-color-nv, vertex-array-range-without-flush-nv, multisample-filter-hint-nv, unsigned-identity-nv, unsigned-invert-nv, expand-normal-nv, expand-negate-nv, half-bias-normal-nv, half-bias-negate-nv, signed-identity-nv, unsigned-negate-nv, scale-by-two-nv, scale-by-four-nv, scale-by-one-half-nv, bias-by-negative-one-half-nv, combiner-input-nv, combiner-mapping-nv, combiner-component-usage-nv, combiner-ab-dot-product-nv, combiner-cd-dot-product-nv, combiner-mux-sum-nv, combiner-scale-nv, combiner-bias-nv, combiner-ab-output-nv, combiner-cd-output-nv, combiner-sum-output-nv, max-general-combiners-nv, num-general-combiners-nv, color-sum-clamp-nv, combiner0-nv, combiner1-nv, combiner2-nv, combiner3-nv, combiner4-nv, combiner5-nv, combiner6-nv, combiner7-nv.

Macro: nv-register-combiners-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

per-stage-constants-nv.

Macro: nv-primitive-restart enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

primitive-restart-nv, primitive-restart-index-nv.

Macro: nv-fog-distance enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fog-gen-mode-nv, eye-radial-nv, eye-plane-absolute-nv.

Macro: nv-texgen-emboss enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

emboss-light-nv, emboss-constant-nv, emboss-map-nv.

Macro: ingr-color-clamp enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

red-min-clamp-ingr, green-min-clamp-ingr, blue-min-clamp-ingr, alpha-min-clamp-ingr, red-max-clamp-ingr, green-max-clamp-ingr, blue-max-clamp-ingr, alpha-max-clamp-ingr.

Macro: ingr-interlace-read enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

interlace-read-ingr.

Macro: ext-texture-env-combine enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

combine-ext, combine-rgb-ext, combine-alpha-ext, rgb-scale-ext, add-signed-ext, interpolate-ext, constant-ext, primary-color-ext, previous-ext, source0-rgb-ext, source1-rgb-ext, source2-rgb-ext, source0-alpha-ext, source1-alpha-ext, source2-alpha-ext, operand0-rgb-ext, operand1-rgb-ext, operand2-rgb-ext, operand0-alpha-ext, operand1-alpha-ext, operand2-alpha-ext.

Macro: nv-texture-env-combine-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

combine4-nv, source3-rgb-nv, source3-alpha-nv, operand3-rgb-nv, operand3-alpha-nv.

Macro: sgix-subsample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pack-subsample-rate-sgix, unpack-subsample-rate-sgix, pixel-subsample-4444-sgix, pixel-subsample-2424-sgix, pixel-subsample-4242-sgix.

Macro: ext-texture-perturb-normal enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

perturb-ext, texture-normal-ext.

Macro: apple-specular-vector enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

light-model-specular-vector-apple.

Macro: apple-transform-hint enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

transform-hint-apple.

Macro: apple-client-storage enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

unpack-client-storage-apple.

Macro: apple-object-purgeable enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

buffer-object-apple, released-apple, volatile-apple, retained-apple, undefined-apple, purgeable-apple.

Macro: arb-vertex-array-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-array-binding.

Macro: apple-vertex-array-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-array-binding-apple.

Macro: apple-texture-range enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-range-length-apple, texture-range-pointer-apple, texture-storage-hint-apple, storage-private-apple, storage-cached-apple, storage-shared-apple.

Macro: apple-ycbcr-422 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

ycbcr-422-apple, unsigned-short-8-8-apple, unsigned-short-8-8-rev-apple.

Macro: mesa-ycbcr-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

unsigned-short-8-8-mesa, unsigned-short-8-8-rev-mesa, ycbcr-mesa.

Macro: sun-slice-accum enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

slice-accum-sun.

Macro: sun-mesh-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

quad-mesh-sun, triangle-mesh-sun.

Macro: nv-vertex-program enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-program-nv, vertex-state-program-nv, attrib-array-size-nv, attrib-array-stride-nv, attrib-array-type-nv, current-attrib-nv, program-length-nv, program-string-nv, modelview-projection-nv, identity-nv, inverse-nv, transpose-nv, inverse-transpose-nv, max-track-matrix-stack-depth-nv, max-track-matrices-nv, matrix0-nv, matrix1-nv, matrix2-nv, matrix3-nv, matrix4-nv, matrix5-nv, matrix6-nv, matrix7-nv, current-matrix-stack-depth-nv, current-matrix-nv, vertex-program-point-size-nv, vertex-program-two-side-nv, program-parameter-nv, attrib-array-pointer-nv, program-target-nv, program-resident-nv, track-matrix-nv, track-matrix-transform-nv, vertex-program-binding-nv, program-error-position-nv, vertex-attrib-array0-nv, vertex-attrib-array1-nv, vertex-attrib-array2-nv, vertex-attrib-array3-nv, vertex-attrib-array4-nv, vertex-attrib-array5-nv, vertex-attrib-array6-nv, vertex-attrib-array7-nv, vertex-attrib-array8-nv, vertex-attrib-array9-nv, vertex-attrib-array10-nv, vertex-attrib-array11-nv, vertex-attrib-array12-nv, vertex-attrib-array13-nv, vertex-attrib-array14-nv, vertex-attrib-array15-nv, map1-vertex-attrib0-4-nv, map1-vertex-attrib1-4-nv, map1-vertex-attrib2-4-nv, map1-vertex-attrib3-4-nv, map1-vertex-attrib4-4-nv, map1-vertex-attrib5-4-nv, map1-vertex-attrib6-4-nv, map1-vertex-attrib7-4-nv, map1-vertex-attrib8-4-nv, map1-vertex-attrib9-4-nv, map1-vertex-attrib10-4-nv, map1-vertex-attrib11-4-nv, map1-vertex-attrib12-4-nv, map1-vertex-attrib13-4-nv, map1-vertex-attrib14-4-nv, map1-vertex-attrib15-4-nv, map2-vertex-attrib0-4-nv, map2-vertex-attrib1-4-nv, map2-vertex-attrib2-4-nv, map2-vertex-attrib3-4-nv, map2-vertex-attrib4-4-nv, map2-vertex-attrib5-4-nv, map2-vertex-attrib6-4-nv, map2-vertex-attrib7-4-nv, map2-vertex-attrib8-4-nv, map2-vertex-attrib9-4-nv, map2-vertex-attrib10-4-nv, map2-vertex-attrib11-4-nv, map2-vertex-attrib12-4-nv, map2-vertex-attrib13-4-nv, map2-vertex-attrib14-4-nv, map2-vertex-attrib15-4-nv.

Macro: arb-depth-clamp enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-clamp.

Macro: nv-depth-clamp enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-clamp-nv.

Macro: arb-fragment-program enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-program-arb, vertex-attrib-array-enabled-arb, vertex-attrib-array-size-arb, vertex-attrib-array-stride-arb, vertex-attrib-array-type-arb, current-vertex-attrib-arb, program-length-arb, program-string-arb, max-program-matrix-stack-depth-arb, max-program-matrices-arb, current-matrix-stack-depth-arb, current-matrix-arb, vertex-program-point-size-arb, vertex-program-two-side-arb, vertex-attrib-array-pointer-arb, program-error-position-arb, program-binding-arb, fragment-program-arb, program-alu-instructions-arb, program-tex-instructions-arb, program-tex-indirections-arb, program-native-alu-instructions-arb, program-native-tex-instructions-arb, program-native-tex-indirections-arb, max-program-alu-instructions-arb, max-program-tex-instructions-arb, max-program-tex-indirections-arb, max-program-native-alu-instructions-arb, max-program-native-tex-instructions-arb, max-program-native-tex-indirections-arb, max-texture-coords-arb, max-texture-image-units-arb, program-error-string-arb, program-format-ascii-arb, program-format-arb, program-instructions-arb, max-program-instructions-arb, program-native-instructions-arb, max-program-native-instructions-arb, program-temporaries-arb, max-program-temporaries-arb, program-native-temporaries-arb, max-program-native-temporaries-arb, program-parameters-arb, max-program-parameters-arb, program-native-parameters-arb, max-program-native-parameters-arb, program-attribs-arb, max-program-attribs-arb, program-native-attribs-arb, max-program-native-attribs-arb, program-address-registers-arb, max-program-address-registers-arb, program-native-address-registers-arb, max-program-native-address-registers-arb, max-program-local-parameters-arb, max-program-env-parameters-arb, program-under-native-limits-arb, transpose-current-matrix-arb, matrix0-arb, matrix1-arb, matrix2-arb, matrix3-arb, matrix4-arb, matrix5-arb, matrix6-arb, matrix7-arb, matrix8-arb, matrix9-arb, matrix10-arb, matrix11-arb, matrix12-arb, matrix13-arb, matrix14-arb, matrix15-arb, matrix16-arb, matrix17-arb, matrix18-arb, matrix19-arb, matrix20-arb, matrix21-arb, matrix22-arb, matrix23-arb, matrix24-arb, matrix25-arb, matrix26-arb, matrix27-arb, matrix28-arb, matrix29-arb, matrix30-arb, matrix31-arb.

Macro: arb-vertex-blend enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-vertex-units-arb, active-vertex-units-arb, weight-sum-unity-arb, vertex-blend-arb, current-weight-arb, weight-array-type-arb, weight-array-stride-arb, weight-array-size-arb, weight-array-pointer-arb, weight-array-arb, modelview0-arb, modelview1-arb, modelview2-arb, modelview3-arb, modelview4-arb, modelview5-arb, modelview6-arb, modelview7-arb, modelview8-arb, modelview9-arb, modelview10-arb, modelview11-arb, modelview12-arb, modelview13-arb, modelview14-arb, modelview15-arb, modelview16-arb, modelview17-arb, modelview18-arb, modelview19-arb, modelview20-arb, modelview21-arb, modelview22-arb, modelview23-arb, modelview24-arb, modelview25-arb, modelview26-arb, modelview27-arb, modelview28-arb, modelview29-arb, modelview30-arb, modelview31-arb.

Macro: oes-matrix-palette enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-vertex-units-oes, weight-array-oes, weight-array-type-oes, weight-array-stride-oes, weight-array-size-oes, weight-array-pointer-oes, matrix-palette-oes, max-palette-matrices-oes, current-palette-matrix-oes, matrix-index-array-oes, matrix-index-array-size-oes, matrix-index-array-type-oes, matrix-index-array-stride-oes, matrix-index-array-pointer-oes, weight-array-buffer-binding-oes, matrix-index-array-buffer-binding-oes.

Macro: arb-texture-env-dot-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

dot3-rgb-arb, dot3-rgba-arb.

Macro: img-texture-env-enhanced-fixed-function enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

dot3-rgba-img, modulate-color-img, recip-add-signed-alpha-img, texture-alpha-modulate-img, factor-alpha-modulate-img, fragment-alpha-modulate-img, add-blend-img.

Macro: 3dfx-texture-compression-fxt1 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-rgb-fxt1-3dfx, compressed-rgba-fxt1-3dfx.

Macro: nv-evaluators enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

eval-2d-nv, eval-triangular-2d-nv, map-tessellation-nv, map-attrib-u-order-nv, map-attrib-v-order-nv, eval-fractional-tessellation-nv, eval-vertex-atrrib0-nv, eval-vertex-atrrib1-nv, eval-vertex-atrrib2-nv, eval-vertex-atrrib3-nv, eval-vertex-atrrib4-nv, eval-vertex-atrrib5-nv, eval-vertex-atrrib6-nv, eval-vertex-atrrib7-nv, eval-vertex-atrrib8-nv, eval-vertex-atrrib9-nv, eval-vertex-atrrib10-nv, eval-vertex-atrrib11-nv, eval-vertex-atrrib12-nv, eval-vertex-atrrib13-nv, eval-vertex-atrrib14-nv, eval-vertex-atrrib15-nv, max-map-tessellation-nv, max-rational-eval-order-nv.

Macro: nv-tessellation-program-5 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-program-patch-attribs-nv, tess-control-program-nv, tess-evaluation-program-nv, tess-control-program-parameter-buffer-nv, tess-evaluation-program-parameter-buffer-nv.

Macro: nv-texture-shader enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

offset-texture-rectangle-nv, offset-texture-rectangle-scale-nv, dot-product-texture-rectangle-nv, rgba-unsigned-dot-product-mapping-nv, unsigned-int-s8-s8-8-8-nv, unsigned-int-8-8-s8-s8-rev-nv, dsdt-mag-intensity-nv, shader-consistent-nv, texture-shader-nv, shader-operation-nv, cull-modes-nv, offset-texture-matrix-nv, offset-texture-scale-nv, offset-texture-bias-nv, offset-texture-2d-matrix-nv, offset-texture-2d-scale-nv, offset-texture-2d-bias-nv, previous-texture-input-nv, const-eye-nv, pass-through-nv, cull-fragment-nv, offset-texture-2d-nv, dependent-ar-texture-2d-nv, dependent-gb-texture-2d-nv, dot-product-nv, dot-product-depth-replace-nv, dot-product-texture-2d-nv, dot-product-texture-cube-map-nv, dot-product-diffuse-cube-map-nv, dot-product-reflect-cube-map-nv, dot-product-const-eye-reflect-cube-map-nv, hilo-nv, dsdt-nv, dsdt-mag-nv, dsdt-mag-vib-nv, hilo16-nv, signed-hilo-nv, signed-hilo16-nv, signed-rgba-nv, signed-rgba8-nv, signed-rgb-nv, signed-rgb8-nv, signed-luminance-nv, signed-luminance8-nv, signed-luminance-alpha-nv, signed-luminance8-alpha8-nv, signed-alpha-nv, signed-alpha8-nv, signed-intensity-nv, signed-intensity8-nv, dsdt8-nv, dsdt8-mag8-nv, dsdt8-mag8-intensity8-nv, signed-rgb-unsigned-alpha-nv, signed-rgb8-unsigned-alpha8-nv, hi-scale-nv, lo-scale-nv, ds-scale-nv, dt-scale-nv, magnitude-scale-nv, vibrance-scale-nv, hi-bias-nv, lo-bias-nv, ds-bias-nv, dt-bias-nv, magnitude-bias-nv, vibrance-bias-nv, texture-border-values-nv, texture-hi-size-nv, texture-lo-size-nv, texture-ds-size-nv, texture-dt-size-nv, texture-mag-size-nv.

Macro: nv-vdpau-interop enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

surface-state-nv, surface-registered-nv, surface-mapped-nv, write-discard-nv.

Macro: nv-texture-shader-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

dot-product-texture-3d-nv.

Macro: ext-texture-env-dot-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

dot3-rgb-ext, dot3-rgba-ext.

Macro: amd-program-binary-z400 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

z400-binary-amd.

Macro: oes-get-program-binary enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

program-binary-length-oes, num-program-binary-formats-oes, program-binary-formats-oes.

Macro: ati-texture-mirror-once enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

mirror-clamp-ati, mirror-clamp-to-edge-ati.

Macro: ext-texture-mirror-clamp enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

mirror-clamp-ext, mirror-clamp-to-edge-ext, mirror-clamp-to-border-ext.

Macro: ati-texture-env-combine-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

modulate-add-ati, modulate-signed-add-ati, modulate-subtract-ati.

Macro: amd-stencil-operation-extended enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

set-amd, replace-value-amd, stencil-op-value-amd, stencil-back-op-value-amd.

Macro: mesa-packed-depth-stencil enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-stencil-mesa, unsigned-int-24-8-mesa, unsigned-int-8-24-rev-mesa, unsigned-short-15-1-mesa, unsigned-short-1-15-rev-mesa.

Macro: mesa-trace enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

trace-all-bits-mesa, trace-operations-bit-mesa, trace-primitives-bit-mesa, trace-arrays-bit-mesa, trace-textures-bit-mesa, trace-pixels-bit-mesa, trace-errors-bit-mesa, trace-mask-mesa, trace-name-mesa.

Macro: mesa-pack-invert enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pack-invert-mesa.

Macro: mesax-texture-stack enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-1d-stack-mesax, texture-2d-stack-mesax, proxy-texture-1d-stack-mesax, proxy-texture-2d-stack-mesax, texture-1d-stack-binding-mesax, texture-2d-stack-binding-mesax.

Macro: mesa-shader-debug enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

debug-object-mesa, debug-print-mesa, debug-assert-mesa.

Macro: ati-vertex-array-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

static-ati, dynamic-ati, preserve-ati, discard-ati, object-buffer-size-ati, object-buffer-usage-ati, array-object-buffer-ati, array-object-offset-ati.

Macro: arb-vertex-buffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

buffer-size-arb, buffer-usage-arb, array-buffer-arb, element-array-buffer-arb, array-buffer-binding-arb, element-array-buffer-binding-arb, vertex-array-buffer-binding-arb, normal-array-buffer-binding-arb, color-array-buffer-binding-arb, index-array-buffer-binding-arb, texture-coord-array-buffer-binding-arb, edge-flag-array-buffer-binding-arb, secondary-color-array-buffer-binding-arb, fog-coordinate-array-buffer-binding-arb, weight-array-buffer-binding-arb, vertex-attrib-array-buffer-binding-arb, read-only-arb, write-only-arb, read-write-arb, buffer-access-arb, buffer-mapped-arb, buffer-map-pointer-arb, stream-draw-arb, stream-read-arb, stream-copy-arb, static-draw-arb, static-read-arb, static-copy-arb, dynamic-draw-arb, dynamic-read-arb, dynamic-copy-arb.

Macro: ati-element-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

element-array-ati, element-array-type-ati, element-array-pointer-ati.

Macro: ati-vertex-streams enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-vertex-streams-ati, vertex-stream0-ati, vertex-stream1-ati, vertex-stream2-ati, vertex-stream3-ati, vertex-stream4-ati, vertex-stream5-ati, vertex-stream6-ati, vertex-stream7-ati, vertex-source-ati.

Macro: ati-envmap-bumpmap enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

bump-rot-matrix-ati, bump-rot-matrix-size-ati, bump-num-tex-units-ati, bump-tex-units-ati, dudv-ati, du8dv8-ati, bump-envmap-ati, bump-target-ati.

Macro: ext-vertex-shader enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-shader-ext, vertex-shader-binding-ext, op-index-ext, op-negate-ext, op-dot3-ext, op-dot4-ext, op-mul-ext, op-add-ext, op-madd-ext, op-frac-ext, op-max-ext, op-min-ext, op-set-ge-ext, op-set-lt-ext, op-clamp-ext, op-floor-ext, op-round-ext, op-exp-base-2-ext, op-log-base-2-ext, op-power-ext, op-recip-ext, op-recip-sqrt-ext, op-sub-ext, op-cross-product-ext, op-multiply-matrix-ext, op-mov-ext, output-vertex-ext, output-color0-ext, output-color1-ext, output-texture-coord0-ext, output-texture-coord1-ext, output-texture-coord2-ext, output-texture-coord3-ext, output-texture-coord4-ext, output-texture-coord5-ext, output-texture-coord6-ext, output-texture-coord7-ext, output-texture-coord8-ext, output-texture-coord9-ext, output-texture-coord10-ext, output-texture-coord11-ext, output-texture-coord12-ext, output-texture-coord13-ext, output-texture-coord14-ext, output-texture-coord15-ext, output-texture-coord16-ext, output-texture-coord17-ext, output-texture-coord18-ext, output-texture-coord19-ext, output-texture-coord20-ext, output-texture-coord21-ext, output-texture-coord22-ext, output-texture-coord23-ext, output-texture-coord24-ext, output-texture-coord25-ext, output-texture-coord26-ext, output-texture-coord27-ext, output-texture-coord28-ext, output-texture-coord29-ext, output-texture-coord30-ext, output-texture-coord31-ext, output-fog-ext, scalar-ext, vector-ext, matrix-ext, variant-ext, invariant-ext, local-constant-ext, local-ext, max-vertex-shader-instructions-ext, max-vertex-shader-variants-ext, max-vertex-shader-invariants-ext, max-vertex-shader-local-constants-ext, max-vertex-shader-locals-ext, max-optimized-vertex-shader-instructions-ext, max-optimized-vertex-shader-variants-ext, max-optimized-vertex-shader-local-constants-ext, max-optimized-vertex-shader-invariants-ext, max-optimized-vertex-shader-locals-ext, vertex-shader-instructions-ext, vertex-shader-variants-ext, vertex-shader-invariants-ext, vertex-shader-local-constants-ext, vertex-shader-locals-ext, vertex-shader-optimized-ext, x-ext, y-ext, z-ext, w-ext, negative-x-ext, negative-y-ext, negative-z-ext, negative-w-ext, zero-ext, one-ext, negative-one-ext, normalized-range-ext, full-range-ext, current-vertex-ext, mvp-matrix-ext, variant-value-ext, variant-datatype-ext, variant-array-stride-ext, variant-array-type-ext, variant-array-ext, variant-array-pointer-ext, invariant-value-ext, invariant-datatype-ext, local-constant-value-ext, local-constant-datatype-ext.

Macro: amd-compressed-atc-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

atc-rgba-interpolated-alpha-amd, atc-rgb-amd, atc-rgba-explicit-alpha-amd.

Macro: ati-pn-triangles enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pn-triangles-ati, max-pn-triangles-tesselation-level-ati, pn-triangles-point-mode-ati, pn-triangles-normal-mode-ati, pn-triangles-tesselation-level-ati, pn-triangles-point-mode-linear-ati, pn-triangles-point-mode-cubic-ati, pn-triangles-normal-mode-linear-ati, pn-triangles-normal-mode-quadratic-ati.

Macro: amd-compressed-3dc-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

3dc-x-amd, 3dc-xy-amd.

Macro: ati-meminfo enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vbo-free-memory-ati, texture-free-memory-ati, renderbuffer-free-memory-ati.

Macro: ati-separate-stencil enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

stencil-back-func-ati, stencil-back-pass-depth-fail-ati, stencil-back-pass-depth-pass-ati.

Macro: arb-texture-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgba32f-arb, rgb32f-arb, alpha32f-arb, intensity32f-arb, luminance32f-arb, luminance-alpha32f-arb, rgba16f-arb, rgb16f-arb, alpha16f-arb, intensity16f-arb, luminance16f-arb, luminance-alpha16f-arb, texture-red-type-arb, texture-green-type-arb, texture-blue-type-arb, texture-alpha-type-arb, texture-luminance-type-arb, texture-intensity-type-arb, texture-depth-type-arb, unsigned-normalized-arb.

Macro: ati-texture-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgba-float32-ati, rgb-float32-ati, alpha-float32-ati, intensity-float32-ati, luminance-float32-ati, luminance-alpha-float32-ati, rgba-float16-ati, rgb-float16-ati, alpha-float16-ati, intensity-float16-ati, luminance-float16-ati, luminance-alpha-float16-ati.

Macro: arb-color-buffer-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgba-float-mode-arb, clamp-vertex-color-arb, clamp-fragment-color-arb, clamp-read-color-arb, fixed-only-arb.

Macro: ati-pixel-format-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

type-rgba-float-ati, color-clear-unclamped-value-ati.

Macro: qcom-writeonly-rendering enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

writeonly-rendering-qcom.

Macro: arb-draw-buffers enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-draw-buffers-arb, draw-buffer0-arb, draw-buffer1-arb, draw-buffer2-arb, draw-buffer3-arb, draw-buffer4-arb, draw-buffer5-arb, draw-buffer6-arb, draw-buffer7-arb, draw-buffer8-arb, draw-buffer9-arb, draw-buffer10-arb, draw-buffer11-arb, draw-buffer12-arb, draw-buffer13-arb, draw-buffer14-arb, draw-buffer15-arb.

Macro: ati-draw-buffers enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-draw-buffers-ati, draw-buffer0-ati, draw-buffer1-ati, draw-buffer2-ati, draw-buffer3-ati, draw-buffer4-ati, draw-buffer5-ati, draw-buffer6-ati, draw-buffer7-ati, draw-buffer8-ati, draw-buffer9-ati, draw-buffer10-ati, draw-buffer11-ati, draw-buffer12-ati, draw-buffer13-ati, draw-buffer14-ati, draw-buffer15-ati.

Macro: nv-draw-buffers enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-draw-buffers-nv, draw-buffer0-nv, draw-buffer1-nv, draw-buffer2-nv, draw-buffer3-nv, draw-buffer4-nv, draw-buffer5-nv, draw-buffer6-nv, draw-buffer7-nv, draw-buffer8-nv, draw-buffer9-nv, draw-buffer10-nv, draw-buffer11-nv, draw-buffer12-nv, draw-buffer13-nv, draw-buffer14-nv, draw-buffer15-nv, color-attachment0-nv, color-attachment1-nv, color-attachment2-nv, color-attachment3-nv, color-attachment4-nv, color-attachment5-nv, color-attachment6-nv, color-attachment7-nv, color-attachment8-nv, color-attachment9-nv, color-attachment10-nv, color-attachment11-nv, color-attachment12-nv, color-attachment13-nv, color-attachment14-nv, color-attachment15-nv.

Macro: amd-sample-positions enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

subsample-distance-amd.

Macro: arb-matrix-palette enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

matrix-palette-arb, max-matrix-palette-stack-depth-arb, max-palette-matrices-arb, current-palette-matrix-arb, matrix-index-array-arb, current-matrix-index-arb, matrix-index-array-size-arb, matrix-index-array-type-arb, matrix-index-array-stride-arb, matrix-index-array-pointer-arb.

Macro: arb-shadow enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-compare-mode-arb, texture-compare-func-arb, compare-r-to-texture-arb.

Macro: ext-shadow-samplers enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-compare-mode-ext, texture-compare-func-ext, compare-ref-to-texture-ext, sampler-2d-shadow-ext.

Macro: ext-texture-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compare-ref-depth-to-texture-ext, max-array-texture-layers-ext, texture-1d-array-ext, proxy-texture-1d-array-ext, texture-2d-array-ext, proxy-texture-2d-array-ext, texture-binding-1d-array-ext, texture-binding-2d-array-ext.

Macro: arb-seamless-cube-map enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-cube-map-seamless.

Macro: nv-texture-shader-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

offset-projective-texture-2d-nv, offset-projective-texture-2d-scale-nv, offset-projective-texture-rectangle-nv, offset-projective-texture-rectangle-scale-nv, offset-hilo-texture-2d-nv, offset-hilo-texture-rectangle-nv, offset-hilo-projective-texture-2d-nv, offset-hilo-projective-texture-rectangle-nv, dependent-hilo-texture-2d-nv, dependent-rgb-texture-3d-nv, dependent-rgb-texture-cube-map-nv, dot-product-pass-through-nv, dot-product-texture-1d-nv, dot-product-affine-depth-replace-nv, hilo8-nv, signed-hilo8-nv, force-blue-to-one-nv.

Macro: arb-point-sprite enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point-sprite-arb, coord-replace-arb.

Macro: nv-point-sprite enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point-sprite-nv, coord-replace-nv, point-sprite-r-mode-nv.

Macro: oes-point-sprite enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point-sprite-arb, coord-replace-arb.

Macro: arb-occlusion-query enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

query-counter-bits-arb, current-query-arb, query-result-arb, query-result-available-arb, samples-passed-arb.

Macro: nv-occlusion-query enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-counter-bits-nv, current-occlusion-query-id-nv, pixel-count-nv, pixel-count-available-nv.

Macro: ext-occlusion-query-boolean enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

current-query-ext, query-result-ext, query-result-available-ext, any-samples-passed-ext, any-samples-passed-conservative-ext.

Macro: nv-fragment-program enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-fragment-program-local-parameters-nv, fragment-program-nv, max-texture-coords-nv, max-texture-image-units-nv, fragment-program-binding-nv, program-error-string-nv.

Macro: nv-copy-depth-to-color enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-stencil-to-rgba-nv, depth-stencil-to-bgra-nv.

Macro: nv-pixel-data-range enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

write-pixel-data-range-nv, read-pixel-data-range-nv, write-pixel-data-range-length-nv, read-pixel-data-range-length-nv, write-pixel-data-range-pointer-nv, read-pixel-data-range-pointer-nv.

Macro: arb-gpu-shader-5 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

geometry-shader-invocations, max-geometry-shader-invocations, min-fragment-interpolation-offset, max-fragment-interpolation-offset, fragment-interpolation-offset-bits.

Macro: nv-float-buffer enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

float-r-nv, float-rg-nv, float-rgb-nv, float-rgba-nv, float-r16-nv, float-r32-nv, float-rg16-nv, float-rg32-nv, float-rgb16-nv, float-rgb32-nv, float-rgba16-nv, float-rgba32-nv, texture-float-components-nv, float-clear-color-value-nv, float-rgba-mode-nv.

Macro: nv-texture-expand-normal enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-unsigned-remap-mode-nv.

Macro: ext-depth-bounds-test enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-bounds-test-ext, depth-bounds-ext.

Macro: oes-mapbuffer enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

write-only-oes, buffer-access-oes, buffer-mapped-oes, buffer-map-pointer-oes.

Macro: nv-shader-buffer-store enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

read-write, write-only, shader-global-access-barrier-bit-nv.

Macro: arb-timer-query enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

time-elapsed, timestamp.

Macro: ext-timer-query enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

time-elapsed-ext.

Macro: arb-pixel-buffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-pack-buffer-arb, pixel-unpack-buffer-arb, pixel-pack-buffer-binding-arb, pixel-unpack-buffer-binding-arb.

Macro: ext-pixel-buffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pixel-pack-buffer-ext, pixel-unpack-buffer-ext, pixel-pack-buffer-binding-ext, pixel-unpack-buffer-binding-ext.

Macro: nv-s-rgb-formats enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

etc1-srgb8-nv, srgb8-nv, sluminance-alpha-nv, sluminance8-alpha8-nv, sluminance-nv, sluminance8-nv, compressed-srgb-s3tc-dxt1-nv, compressed-srgb-alpha-s3tc-dxt1-nv, compressed-srgb-alpha-s3tc-dxt3-nv, compressed-srgb-alpha-s3tc-dxt5-nv.

Macro: ext-stencil-clear-tag enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

stencil-tag-bits-ext, stencil-clear-tag-value-ext.

Macro: nv-vertex-program-2-option enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-program-exec-instructions-nv, max-program-call-depth-nv.

Macro: nv-fragment-program-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-program-exec-instructions-nv, max-program-call-depth-nv, max-program-if-depth-nv, max-program-loop-depth-nv, max-program-loop-count-nv.

Macro: arb-blend-func-extended enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

src1-color, one-minus-src1-color, one-minus-src1-alpha, max-dual-source-draw-buffers.

Macro: nv-vertex-program-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-array-integer-nv.

Macro: version-3-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-array-divisor.

Macro: arb-instanced-arrays enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-array-divisor-arb.

Macro: angle-instanced-arrays enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-array-divisor-angle.

Macro: nv-instanced-arrays enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-array-divisor-nv.

Macro: nv-gpu-program-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

min-program-texel-offset-nv, max-program-texel-offset-nv, program-attrib-components-nv, program-result-components-nv, max-program-attrib-components-nv, max-program-result-components-nv, max-program-generic-attribs-nv, max-program-generic-results-nv.

Macro: ext-stencil-two-side enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

stencil-test-two-side-ext, active-stencil-face-ext.

Macro: arb-sampler-objects enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sampler-binding.

Macro: ati-fragment-shader enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-shader-ati, reg-0-ati, reg-1-ati, reg-2-ati, reg-3-ati, reg-4-ati, reg-5-ati, reg-6-ati, reg-7-ati, reg-8-ati, reg-9-ati, reg-10-ati, reg-11-ati, reg-12-ati, reg-13-ati, reg-14-ati, reg-15-ati, reg-16-ati, reg-17-ati, reg-18-ati, reg-19-ati, reg-20-ati, reg-21-ati, reg-22-ati, reg-23-ati, reg-24-ati, reg-25-ati, reg-26-ati, reg-27-ati, reg-28-ati, reg-29-ati, reg-30-ati, reg-31-ati, con-0-ati, con-1-ati, con-2-ati, con-3-ati, con-4-ati, con-5-ati, con-6-ati, con-7-ati, con-8-ati, con-9-ati, con-10-ati, con-11-ati, con-12-ati, con-13-ati, con-14-ati, con-15-ati, con-16-ati, con-17-ati, con-18-ati, con-19-ati, con-20-ati, con-21-ati, con-22-ati, con-23-ati, con-24-ati, con-25-ati, con-26-ati, con-27-ati, con-28-ati, con-29-ati, con-30-ati, con-31-ati, mov-ati, add-ati, mul-ati, sub-ati, dot3-ati, dot4-ati, mad-ati, lerp-ati, cnd-ati, cnd0-ati, dot2-add-ati, secondary-interpolator-ati, num-fragment-registers-ati, num-fragment-constants-ati, num-passes-ati, num-instructions-per-pass-ati, num-instructions-total-ati, num-input-interpolator-components-ati, num-loopback-components-ati, color-alpha-pairing-ati, swizzle-str-ati, swizzle-stq-ati, swizzle-str-dr-ati, swizzle-stq-dq-ati, swizzle-strq-ati, swizzle-strq-dq-ati, red-bit-ati, green-bit-ati, blue-bit-ati, 2x-bit-ati, 4x-bit-ati, 8x-bit-ati, half-bit-ati, quarter-bit-ati, eighth-bit-ati, saturate-bit-ati, 2x-bit-ati, comp-bit-ati, negate-bit-ati, bias-bit-ati.

Macro: oml-interlace enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

interlace-oml, interlace-read-oml.

Macro: oml-subsample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

format-subsample-24-24-oml, format-subsample-244-244-oml.

Macro: oml-resample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pack-resample-oml, unpack-resample-oml, resample-replicate-oml, resample-zero-fill-oml, resample-average-oml, resample-decimate-oml.

Macro: oes-point-size-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

point-size-array-type-oes, point-size-array-stride-oes, point-size-array-pointer-oes, point-size-array-oes, point-size-array-buffer-binding-oes.

Macro: oes-matrix-get enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

modelview-matrix-float-as-int-bits-oes, projection-matrix-float-as-int-bits-oes, texture-matrix-float-as-int-bits-oes.

Macro: apple-vertex-program-evaluators enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-map1-apple, vertex-attrib-map2-apple, vertex-attrib-map1-size-apple, vertex-attrib-map1-coeff-apple, vertex-attrib-map1-order-apple, vertex-attrib-map1-domain-apple, vertex-attrib-map2-size-apple, vertex-attrib-map2-coeff-apple, vertex-attrib-map2-order-apple, vertex-attrib-map2-domain-apple.

Macro: apple-fence enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

draw-pixels-apple, fence-apple.

Macro: apple-element-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

element-array-apple, element-array-type-apple, element-array-pointer-apple.

Macro: arb-uniform-buffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

uniform-buffer, uniform-buffer-binding, uniform-buffer-start, uniform-buffer-size, max-vertex-uniform-blocks, max-geometry-uniform-blocks, max-fragment-uniform-blocks, max-combined-uniform-blocks, max-uniform-buffer-bindings, max-uniform-block-size, max-combined-vertex-uniform-components, max-combined-geometry-uniform-components, max-combined-fragment-uniform-components, uniform-buffer-offset-alignment, active-uniform-block-max-name-length, active-uniform-blocks, uniform-type, uniform-size, uniform-name-length, uniform-block-index, uniform-offset, uniform-array-stride, uniform-matrix-stride, uniform-is-row-major, uniform-block-binding, uniform-block-data-size, uniform-block-name-length, uniform-block-active-uniforms, uniform-block-active-uniform-indices, uniform-block-referenced-by-vertex-shader, uniform-block-referenced-by-geometry-shader, uniform-block-referenced-by-fragment-shader, invalid-index.

Macro: apple-flush-buffer-range enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

buffer-serialized-modify-apple, buffer-flushing-unmap-apple.

Macro: apple-aux-depth-stencil enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

aux-depth-stencil-apple.

Macro: apple-row-bytes enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pack-row-bytes-apple, unpack-row-bytes-apple.

Macro: apple-rgb-422 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgb-422-apple, unsigned-short-8-8-apple, unsigned-short-8-8-rev-apple.

Macro: ext-texture-s-rgb-decode enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-srgb-decode-ext, decode-ext, skip-decode-ext.

Macro: ext-debug-label enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

program-pipeline-object-ext, program-object-ext, shader-object-ext, buffer-object-ext, query-object-ext, vertex-array-object-ext.

Macro: ext-shader-framebuffer-fetch enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-shader-discards-samples-ext.

Macro: apple-sync enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sync-object-apple, max-server-wait-timeout-apple, object-type-apple, sync-condition-apple, sync-status-apple, sync-flags-apple, sync-fence-apple, sync-gpu-commands-complete-apple, unsignaled-apple, signaled-apple, already-signaled-apple, timeout-expired-apple, condition-satisfied-apple, wait-failed-apple, sync-flush-commands-bit-apple, timeout-ignored-apple.

Macro: arb-shader-objects enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-shader, fragment-shader-arb, vertex-shader, vertex-shader-arb, program-object-arb, shader-object-arb, max-fragment-uniform-components, max-fragment-uniform-components-arb, max-vertex-uniform-components, max-vertex-uniform-components-arb, max-varying-floats, max-varying-floats-arb, max-vertex-texture-image-units, max-vertex-texture-image-units-arb, max-combined-texture-image-units, max-combined-texture-image-units-arb, object-type-arb, shader-type, object-subtype-arb, float-vec2, float-vec2-arb, float-vec3, float-vec3-arb, float-vec4, float-vec4-arb, int-vec2, int-vec2-arb, int-vec3, int-vec3-arb, int-vec4, int-vec4-arb, bool, bool-arb, bool-vec2, bool-vec2-arb, bool-vec3, bool-vec3-arb, bool-vec4, bool-vec4-arb, float-mat2, float-mat2-arb, float-mat3, float-mat3-arb, float-mat4, float-mat4-arb, sampler-1d, sampler-1d-arb, sampler-2d, sampler-2d-arb, sampler-3d, sampler-3d-arb, sampler-cube, sampler-cube-arb, sampler-1d-shadow, sampler-1d-shadow-arb, sampler-2d-shadow, sampler-2d-shadow-arb, sampler-2d-rect-arb, sampler-2d-rect-shadow-arb, float-mat-2x-3, float-mat-2x-4, float-mat-3x-2, float-mat-3x-4, float-mat-4x-2, float-mat-4x-3, delete-status, object-delete-status-arb, compile-status, object-compile-status-arb, link-status, object-link-status-arb, validate-status, object-validate-status-arb, info-log-length, object-info-log-length-arb, attached-shaders, object-attached-objects-arb, active-uniforms, object-active-uniforms-arb, active-uniform-max-length, object-active-uniform-max-length-arb, shader-source-length, object-shader-source-length-arb, active-attributes, object-active-attributes-arb, active-attribute-max-length, object-active-attribute-max-length-arb, fragment-shader-derivative-hint, fragment-shader-derivative-hint-arb, shading-language-version, shading-language-version-arb.

Macro: arb-vertex-shader enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-shader, fragment-shader-arb, vertex-shader, vertex-shader-arb, program-object-arb, shader-object-arb, max-fragment-uniform-components, max-fragment-uniform-components-arb, max-vertex-uniform-components, max-vertex-uniform-components-arb, max-varying-floats, max-varying-floats-arb, max-vertex-texture-image-units, max-vertex-texture-image-units-arb, max-combined-texture-image-units, max-combined-texture-image-units-arb, object-type-arb, shader-type, object-subtype-arb, float-vec2, float-vec2-arb, float-vec3, float-vec3-arb, float-vec4, float-vec4-arb, int-vec2, int-vec2-arb, int-vec3, int-vec3-arb, int-vec4, int-vec4-arb, bool, bool-arb, bool-vec2, bool-vec2-arb, bool-vec3, bool-vec3-arb, bool-vec4, bool-vec4-arb, float-mat2, float-mat2-arb, float-mat3, float-mat3-arb, float-mat4, float-mat4-arb, sampler-1d, sampler-1d-arb, sampler-2d, sampler-2d-arb, sampler-3d, sampler-3d-arb, sampler-cube, sampler-cube-arb, sampler-1d-shadow, sampler-1d-shadow-arb, sampler-2d-shadow, sampler-2d-shadow-arb, sampler-2d-rect-arb, sampler-2d-rect-shadow-arb, float-mat-2x-3, float-mat-2x-4, float-mat-3x-2, float-mat-3x-4, float-mat-4x-2, float-mat-4x-3, delete-status, object-delete-status-arb, compile-status, object-compile-status-arb, link-status, object-link-status-arb, validate-status, object-validate-status-arb, info-log-length, object-info-log-length-arb, attached-shaders, object-attached-objects-arb, active-uniforms, object-active-uniforms-arb, active-uniform-max-length, object-active-uniform-max-length-arb, shader-source-length, object-shader-source-length-arb, active-attributes, object-active-attributes-arb, active-attribute-max-length, object-active-attribute-max-length-arb, fragment-shader-derivative-hint, fragment-shader-derivative-hint-arb, shading-language-version, shading-language-version-arb.

Macro: arb-fragment-shader enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-shader, fragment-shader-arb, vertex-shader, vertex-shader-arb, program-object-arb, shader-object-arb, max-fragment-uniform-components, max-fragment-uniform-components-arb, max-vertex-uniform-components, max-vertex-uniform-components-arb, max-varying-floats, max-varying-floats-arb, max-vertex-texture-image-units, max-vertex-texture-image-units-arb, max-combined-texture-image-units, max-combined-texture-image-units-arb, object-type-arb, shader-type, object-subtype-arb, float-vec2, float-vec2-arb, float-vec3, float-vec3-arb, float-vec4, float-vec4-arb, int-vec2, int-vec2-arb, int-vec3, int-vec3-arb, int-vec4, int-vec4-arb, bool, bool-arb, bool-vec2, bool-vec2-arb, bool-vec3, bool-vec3-arb, bool-vec4, bool-vec4-arb, float-mat2, float-mat2-arb, float-mat3, float-mat3-arb, float-mat4, float-mat4-arb, sampler-1d, sampler-1d-arb, sampler-2d, sampler-2d-arb, sampler-3d, sampler-3d-arb, sampler-cube, sampler-cube-arb, sampler-1d-shadow, sampler-1d-shadow-arb, sampler-2d-shadow, sampler-2d-shadow-arb, sampler-2d-rect-arb, sampler-2d-rect-shadow-arb, float-mat-2x-3, float-mat-2x-4, float-mat-3x-2, float-mat-3x-4, float-mat-4x-2, float-mat-4x-3, delete-status, object-delete-status-arb, compile-status, object-compile-status-arb, link-status, object-link-status-arb, validate-status, object-validate-status-arb, info-log-length, object-info-log-length-arb, attached-shaders, object-attached-objects-arb, active-uniforms, object-active-uniforms-arb, active-uniform-max-length, object-active-uniform-max-length-arb, shader-source-length, object-shader-source-length-arb, active-attributes, object-active-attributes-arb, active-attribute-max-length, object-active-attribute-max-length-arb, fragment-shader-derivative-hint, fragment-shader-derivative-hint-arb, shading-language-version, shading-language-version-arb.

Macro: nv-vertex-program-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-shader, fragment-shader-arb, vertex-shader, vertex-shader-arb, program-object-arb, shader-object-arb, max-fragment-uniform-components, max-fragment-uniform-components-arb, max-vertex-uniform-components, max-vertex-uniform-components-arb, max-varying-floats, max-varying-floats-arb, max-vertex-texture-image-units, max-vertex-texture-image-units-arb, max-combined-texture-image-units, max-combined-texture-image-units-arb, object-type-arb, shader-type, object-subtype-arb, float-vec2, float-vec2-arb, float-vec3, float-vec3-arb, float-vec4, float-vec4-arb, int-vec2, int-vec2-arb, int-vec3, int-vec3-arb, int-vec4, int-vec4-arb, bool, bool-arb, bool-vec2, bool-vec2-arb, bool-vec3, bool-vec3-arb, bool-vec4, bool-vec4-arb, float-mat2, float-mat2-arb, float-mat3, float-mat3-arb, float-mat4, float-mat4-arb, sampler-1d, sampler-1d-arb, sampler-2d, sampler-2d-arb, sampler-3d, sampler-3d-arb, sampler-cube, sampler-cube-arb, sampler-1d-shadow, sampler-1d-shadow-arb, sampler-2d-shadow, sampler-2d-shadow-arb, sampler-2d-rect-arb, sampler-2d-rect-shadow-arb, float-mat-2x-3, float-mat-2x-4, float-mat-3x-2, float-mat-3x-4, float-mat-4x-2, float-mat-4x-3, delete-status, object-delete-status-arb, compile-status, object-compile-status-arb, link-status, object-link-status-arb, validate-status, object-validate-status-arb, info-log-length, object-info-log-length-arb, attached-shaders, object-attached-objects-arb, active-uniforms, object-active-uniforms-arb, active-uniform-max-length, object-active-uniform-max-length-arb, shader-source-length, object-shader-source-length-arb, active-attributes, object-active-attributes-arb, active-attribute-max-length, object-active-attribute-max-length-arb, fragment-shader-derivative-hint, fragment-shader-derivative-hint-arb, shading-language-version, shading-language-version-arb.

Macro: oes-standard-derivatives enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-shader-derivative-hint-oes.

Macro: ext-geometry-shader-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-varying-components-ext, geometry-shader-ext, max-geometry-varying-components-ext, max-vertex-varying-components-ext, max-geometry-uniform-components-ext, max-geometry-output-vertices-ext, max-geometry-total-output-components-ext.

Macro: oes-compressed-paletted-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

palette4-rgb8-oes, palette4-rgba8-oes, palette4-r5-g6-b5-oes, palette4-rgba4-oes, palette4-rgb5-a1-oes, palette8-rgb8-oes, palette8-rgba8-oes, palette8-r5-g6-b5-oes, palette8-rgba4-oes, palette8-rgb5-a1-oes.

Macro: oes-read-format enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

implementation-color-read-type-oes, implementation-color-read-format-oes.

Macro: oes-draw-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-crop-rect-oes.

Macro: mesa-program-debug enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

fragment-program-position-mesa, fragment-program-callback-mesa, fragment-program-callback-func-mesa, fragment-program-callback-data-mesa, vertex-program-callback-mesa, vertex-program-position-mesa, vertex-program-callback-func-mesa, vertex-program-callback-data-mesa.

Macro: amd-performance-monitor enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

counter-type-amd, counter-range-amd, unsigned-int64-amd, percentage-amd, perfmon-result-available-amd, perfmon-result-size-amd, perfmon-result-amd.

Macro: qcom-extended-get enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-width-qcom, texture-height-qcom, texture-depth-qcom, texture-internal-format-qcom, texture-format-qcom, texture-type-qcom, texture-image-valid-qcom, texture-num-levels-qcom, texture-target-qcom, texture-object-valid-qcom, state-restore.

Macro: img-texture-compression-pvrtc enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-rgb-pvrtc-4bppv1-img, compressed-rgb-pvrtc-2bppv1-img, compressed-rgba-pvrtc-4bppv1-img, compressed-rgba-pvrtc-2bppv1-img.

Macro: img-shader-binary enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sgx-binary-img.

Macro: arb-texture-buffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-buffer-arb, max-texture-buffer-size-arb, texture-binding-buffer-arb, texture-buffer-data-store-binding-arb, texture-buffer-format-arb.

Macro: ext-texture-buffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-buffer-ext, max-texture-buffer-size-ext, texture-binding-buffer-ext, texture-buffer-data-store-binding-ext, texture-buffer-format-ext.

Macro: arb-occlusion-query-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

any-samples-passed.

Macro: arb-sample-shading enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sample-shading-arb, min-sample-shading-value-arb.

Macro: ext-packed-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

r11f-g11f-b10f-ext, unsigned-int-10f-11f-11f-rev-ext, rgba-signed-components-ext.

Macro: ext-texture-shared-exponent enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgb9-e5-ext, unsigned-int-5-9-9-9-rev-ext, texture-shared-size-ext.

Macro: ext-texture-s-rgb enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

srgb-ext, srgb8-ext, srgb-alpha-ext, srgb8-alpha8-ext, sluminance-alpha-ext, sluminance8-alpha8-ext, sluminance-ext, sluminance8-ext, compressed-srgb-ext, compressed-srgb-alpha-ext, compressed-sluminance-ext, compressed-sluminance-alpha-ext, compressed-srgb-s3tc-dxt1-ext, compressed-srgb-alpha-s3tc-dxt1-ext, compressed-srgb-alpha-s3tc-dxt3-ext, compressed-srgb-alpha-s3tc-dxt5-ext.

Macro: ext-texture-compression-latc enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-luminance-latc1-ext, compressed-signed-luminance-latc1-ext, compressed-luminance-alpha-latc2-ext, compressed-signed-luminance-alpha-latc2-ext.

Macro: ext-transform-feedback enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

transform-feedback-varying-max-length, transform-feedback-varying-max-length-ext, back-primary-color-nv, back-secondary-color-nv, texture-coord-nv, clip-distance-nv, vertex-id-nv, primitive-id-nv, generic-attrib-nv, transform-feedback-attribs-nv, transform-feedback-buffer-mode, transform-feedback-buffer-mode-ext, transform-feedback-buffer-mode-nv, max-transform-feedback-separate-components, max-transform-feedback-separate-components-ext, max-transform-feedback-separate-components-nv, active-varyings-nv, active-varying-max-length-nv, transform-feedback-varyings, transform-feedback-varyings-ext, transform-feedback-varyings-nv, transform-feedback-buffer-start, transform-feedback-buffer-start-ext, transform-feedback-buffer-start-nv, transform-feedback-buffer-size, transform-feedback-buffer-size-ext, transform-feedback-buffer-size-nv, transform-feedback-record-nv, primitives-generated, primitives-generated-ext, primitives-generated-nv, transform-feedback-primitives-written, transform-feedback-primitives-written-ext, transform-feedback-primitives-written-nv, rasterizer-discard, rasterizer-discard-ext, rasterizer-discard-nv, max-transform-feedback-interleaved-components, max-transform-feedback-interleaved-components-ext, max-transform-feedback-interleaved-components-nv, max-transform-feedback-separate-attribs, max-transform-feedback-separate-attribs-ext, max-transform-feedback-separate-attribs-nv, interleaved-attribs, interleaved-attribs-ext, interleaved-attribs-nv, separate-attribs, separate-attribs-ext, separate-attribs-nv, transform-feedback-buffer, transform-feedback-buffer-ext, transform-feedback-buffer-nv, transform-feedback-buffer-binding, transform-feedback-buffer-binding-ext, transform-feedback-buffer-binding-nv.

Macro: nv-transform-feedback enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

transform-feedback-varying-max-length, transform-feedback-varying-max-length-ext, back-primary-color-nv, back-secondary-color-nv, texture-coord-nv, clip-distance-nv, vertex-id-nv, primitive-id-nv, generic-attrib-nv, transform-feedback-attribs-nv, transform-feedback-buffer-mode, transform-feedback-buffer-mode-ext, transform-feedback-buffer-mode-nv, max-transform-feedback-separate-components, max-transform-feedback-separate-components-ext, max-transform-feedback-separate-components-nv, active-varyings-nv, active-varying-max-length-nv, transform-feedback-varyings, transform-feedback-varyings-ext, transform-feedback-varyings-nv, transform-feedback-buffer-start, transform-feedback-buffer-start-ext, transform-feedback-buffer-start-nv, transform-feedback-buffer-size, transform-feedback-buffer-size-ext, transform-feedback-buffer-size-nv, transform-feedback-record-nv, primitives-generated, primitives-generated-ext, primitives-generated-nv, transform-feedback-primitives-written, transform-feedback-primitives-written-ext, transform-feedback-primitives-written-nv, rasterizer-discard, rasterizer-discard-ext, rasterizer-discard-nv, max-transform-feedback-interleaved-components, max-transform-feedback-interleaved-components-ext, max-transform-feedback-interleaved-components-nv, max-transform-feedback-separate-attribs, max-transform-feedback-separate-attribs-ext, max-transform-feedback-separate-attribs-nv, interleaved-attribs, interleaved-attribs-ext, interleaved-attribs-nv, separate-attribs, separate-attribs-ext, separate-attribs-nv, transform-feedback-buffer, transform-feedback-buffer-ext, transform-feedback-buffer-nv, transform-feedback-buffer-binding, transform-feedback-buffer-binding-ext, transform-feedback-buffer-binding-nv, layer-nv, next-buffer-nv, skip-components4-nv, skip-components3-nv, skip-components2-nv, skip-components1-nv.

Macro: ext-framebuffer-blit enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

draw-framebuffer-binding-ext, read-framebuffer-ext, draw-framebuffer-ext, draw-framebuffer-binding-ext, read-framebuffer-binding-ext.

Macro: angle-framebuffer-blit enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

framebuffer-binding-angle, renderbuffer-binding-angle, read-framebuffer-angle, draw-framebuffer-angle.

Macro: nv-framebuffer-blit enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

read-framebuffer-nv, draw-framebuffer-nv, draw-framebuffer-binding-nv, read-framebuffer-binding-nv.

Macro: angle-framebuffer-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

renderbuffer-samples-angle, framebuffer-incomplete-multisample-angle, max-samples-angle.

Macro: ext-framebuffer-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

renderbuffer-samples-ext, framebuffer-incomplete-multisample-ext, max-samples-ext.

Macro: nv-framebuffer-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

renderbuffer-samples-nv, framebuffer-incomplete-multisample-nv, max-samples-nv.

Macro: nv-framebuffer-multisample-coverage enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

renderbuffer-coverage-samples-nv, renderbuffer-color-samples-nv, max-multisample-coverage-modes-nv, multisample-coverage-modes-nv.

Macro: arb-depth-buffer-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-component32f, depth32f-stencil8, float-32-unsigned-int-24-8-rev.

Macro: nv-fbo-color-attachments enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-color-attachments-nv.

Macro: oes-stencil-1 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

stencil-index1-oes.

Macro: oes-stencil-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

stencil-index4-oes.

Macro: oes-stencil-8 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

stencil-index8-oes.

Macro: oes-vertex-half-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

half-float-oes.

Macro: version-4-1 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgb565.

Macro: oes-compressed-etc1-rgb8-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

etc1-rgb8-oes.

Macro: oes-egl-image-external enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-external-oes, sampler-external-oes, texture-binding-external-oes, required-texture-image-units-oes.

Macro: arb-es3-compatibility enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

primitive-restart-fixed-index, any-samples-passed-conservative, max-element-index, compressed-r11-eac, compressed-signed-r11-eac, compressed-rg11-eac, compressed-signed-rg11-eac, compressed-rgb8-etc2, compressed-srgb8-etc2, compressed-rgb8-punchthrough-alpha1-etc2, compressed-srgb8-punchthrough-alpha1-etc2, compressed-rgba8-etc2-eac, compressed-srgb8-alpha8-etc2-eac.

Macro: ext-multisampled-render-to-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

framebuffer-attachment-texture-samples-ext.

Macro: ext-texture-integer enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgba32ui, rgba32ui-ext, rgb32ui, rgb32ui-ext, alpha32ui-ext, intensity32ui-ext, luminance32ui-ext, luminance-alpha32ui-ext, rgba16ui, rgba16ui-ext, rgb16ui, rgb16ui-ext, alpha16ui-ext, intensity16ui-ext, luminance16ui-ext, luminance-alpha16ui-ext, rgba8ui, rgba8ui-ext, rgb8ui, rgb8ui-ext, alpha8ui-ext, intensity8ui-ext, luminance8ui-ext, luminance-alpha8ui-ext, rgba32i, rgba32i-ext, rgb32i, rgb32i-ext, alpha32i-ext, intensity32i-ext, luminance32i-ext, luminance-alpha32i-ext, rgba16i, rgba16i-ext, rgb16i, rgb16i-ext, alpha16i-ext, intensity16i-ext, luminance16i-ext, luminance-alpha16i-ext, rgba8i, rgba8i-ext, rgb8i, rgb8i-ext, alpha8i-ext, intensity8i-ext, luminance8i-ext, luminance-alpha8i-ext, red-integer, red-integer-ext, green-integer, green-integer-ext, blue-integer, blue-integer-ext, alpha-integer, alpha-integer-ext, rgb-integer, rgb-integer-ext, rgba-integer, rgba-integer-ext, bgr-integer, bgr-integer-ext, bgra-integer, bgra-integer-ext, luminance-integer-ext, luminance-alpha-integer-ext, rgba-integer-mode-ext.

Macro: arb-vertex-type-2-10-10-10-rev enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

int-2-10-10-10-rev.

Macro: nv-parameter-buffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-program-parameter-buffer-bindings-nv, max-program-parameter-buffer-size-nv, vertex-program-parameter-buffer-nv, geometry-program-parameter-buffer-nv, fragment-program-parameter-buffer-nv.

Macro: nv-depth-buffer-float enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-component32f-nv, depth32f-stencil8-nv, float-32-unsigned-int-24-8-rev-nv, depth-buffer-float-mode-nv.

Macro: arb-shading-language-include enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

shader-include-arb, named-string-length-arb, named-string-type-arb.

Macro: arb-framebuffer-s-rgb enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

framebuffer-srgb.

Macro: ext-framebuffer-s-rgb enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

framebuffer-srgb-ext, framebuffer-srgb-capable-ext.

Macro: arb-texture-compression-rgtc enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-red-rgtc1, compressed-signed-red-rgtc1, compressed-rg-rgtc2, compressed-signed-rg-rgtc2.

Macro: ext-texture-compression-rgtc enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-red-rgtc1-ext, compressed-signed-red-rgtc1-ext, compressed-red-green-rgtc2-ext, compressed-signed-red-green-rgtc2-ext.

Macro: ext-gpu-shader-4 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sampler-1d-array-ext, sampler-2d-array-ext, sampler-buffer-ext, sampler-1d-array-shadow-ext, sampler-2d-array-shadow-ext, sampler-cube-shadow-ext, unsigned-int-vec2-ext, unsigned-int-vec3-ext, unsigned-int-vec4-ext, int-sampler-1d-ext, int-sampler-2d-ext, int-sampler-3d-ext, int-sampler-cube-ext, int-sampler-2d-rect-ext, int-sampler-1d-array-ext, int-sampler-2d-array-ext, int-sampler-buffer-ext, unsigned-int-sampler-1d-ext, unsigned-int-sampler-2d-ext, unsigned-int-sampler-3d-ext, unsigned-int-sampler-cube-ext, unsigned-int-sampler-2d-rect-ext, unsigned-int-sampler-1d-array-ext, unsigned-int-sampler-2d-array-ext, unsigned-int-sampler-buffer-ext.

Macro: nv-shadow-samplers-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sampler-2d-array-shadow-nv.

Macro: nv-shadow-samplers-cube enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sampler-cube-shadow-nv.

Macro: ext-bindable-uniform enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-vertex-bindable-uniforms-ext, max-fragment-bindable-uniforms-ext, max-geometry-bindable-uniforms-ext, max-bindable-uniform-size-ext, uniform-buffer-ext, uniform-buffer-binding-ext.

Macro: arb-shader-subroutine enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

active-subroutines, active-subroutine-uniforms, max-subroutines, max-subroutine-uniform-locations, active-subroutine-uniform-locations, active-subroutine-max-length, active-subroutine-uniform-max-length, num-compatible-subroutines, compatible-subroutines.

Macro: oes-vertex-type-10-10-10-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

unsigned-int-10-10-10-2-oes, int-10-10-10-2-oes.

Macro: nv-conditional-render enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

query-wait-nv, query-no-wait-nv, query-by-region-wait-nv, query-by-region-no-wait-nv.

Macro: arb-transform-feedback-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

transform-feedback, transform-feedback-paused, transform-feedback-buffer-paused, transform-feedback-active, transform-feedback-buffer-active, transform-feedback-binding.

Macro: nv-transform-feedback-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

transform-feedback-nv, transform-feedback-buffer-paused-nv, transform-feedback-buffer-active-nv, transform-feedback-binding-nv.

Macro: nv-present-video enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

frame-nv, fields-nv, current-time-nv, num-fill-streams-nv, present-time-nv, present-duration-nv.

Macro: nv-depth-nonlinear enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-component16-nonlinear-nv.

Macro: ext-direct-state-access enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

program-matrix-ext, transpose-program-matrix-ext, program-matrix-stack-depth-ext.

Macro: arb-texture-swizzle enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-swizzle-r, texture-swizzle-g, texture-swizzle-b, texture-swizzle-a, texture-swizzle-rgba.

Macro: ext-texture-swizzle enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-swizzle-r-ext, texture-swizzle-g-ext, texture-swizzle-b-ext, texture-swizzle-a-ext, texture-swizzle-rgba-ext.

Macro: arb-provoking-vertex enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

quads-follow-provoking-vertex-convention, first-vertex-convention, last-vertex-convention, provoking-vertex.

Macro: ext-provoking-vertex enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

quads-follow-provoking-vertex-convention-ext, first-vertex-convention-ext, last-vertex-convention-ext, provoking-vertex-ext.

Macro: arb-texture-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sample-position, sample-mask, sample-mask-value, max-sample-mask-words, texture-2d-multisample, proxy-texture-2d-multisample, texture-2d-multisample-array, proxy-texture-2d-multisample-array, texture-binding-2d-multisample, texture-binding-2d-multisample-array, texture-samples, texture-fixed-sample-locations, sampler-2d-multisample, int-sampler-2d-multisample, unsigned-int-sampler-2d-multisample, sampler-2d-multisample-array, int-sampler-2d-multisample-array, unsigned-int-sampler-2d-multisample-array, max-color-texture-samples, max-depth-texture-samples, max-integer-samples.

Macro: nv-explicit-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sample-position-nv, sample-mask-nv, sample-mask-value-nv, texture-binding-renderbuffer-nv, texture-renderbuffer-data-store-binding-nv, texture-renderbuffer-nv, sampler-renderbuffer-nv, int-sampler-renderbuffer-nv, unsigned-int-sampler-renderbuffer-nv, max-sample-mask-words-nv.

Macro: nv-gpu-program-5 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-geometry-program-invocations-nv, min-fragment-interpolation-offset-nv, max-fragment-interpolation-offset-nv, fragment-program-interpolation-offset-bits-nv, min-program-texture-gather-offset-nv, max-program-texture-gather-offset-nv, max-program-subroutine-parameters-nv, max-program-subroutine-num-nv.

Macro: arb-texture-gather enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

min-program-texture-gather-offset, max-program-texture-gather-offset, max-program-texture-gather-components-arb, max-program-texture-gather-components.

Macro: arb-transform-feedback-3 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-transform-feedback-buffers, max-vertex-streams.

Macro: arb-texture-compression-bptc enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-rgba-bptc-unorm-arb, compressed-srgb-alpha-bptc-unorm-arb, compressed-rgb-bptc-signed-float-arb, compressed-rgb-bptc-unsigned-float-arb.

Macro: nv-coverage-sample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

coverage-component-nv, coverage-component4-nv, coverage-attachment-nv, coverage-buffers-nv, coverage-samples-nv, coverage-all-fragments-nv, coverage-edge-fragments-nv, coverage-automatic-nv, coverage-buffer-bit-nv.

Macro: nv-shader-buffer-load enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

buffer-gpu-address-nv, gpu-address-nv, max-shader-buffer-address-nv.

Macro: nv-vertex-buffer-unified-memory enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

vertex-attrib-array-unified-nv, element-array-unified-nv, vertex-attrib-array-address-nv, vertex-array-address-nv, normal-array-address-nv, color-array-address-nv, index-array-address-nv, texture-coord-array-address-nv, edge-flag-array-address-nv, secondary-color-array-address-nv, fog-coord-array-address-nv, element-array-address-nv, vertex-attrib-array-length-nv, vertex-array-length-nv, normal-array-length-nv, color-array-length-nv, index-array-length-nv, texture-coord-array-length-nv, edge-flag-array-length-nv, secondary-color-array-length-nv, fog-coord-array-length-nv, element-array-length-nv, draw-indirect-unified-nv, draw-indirect-address-nv, draw-indirect-length-nv.

Macro: arb-copy-buffer enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

copy-read-buffer-binding, copy-read-buffer, copy-write-buffer-binding, copy-write-buffer.

Macro: arb-draw-indirect enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

draw-indirect-buffer, draw-indirect-buffer-binding.

Macro: arb-gpu-shader-fp-64 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

double-mat2, double-mat3, double-mat4, double-mat-2x-3, double-mat-2x-4, double-mat-3x-2, double-mat-3x-4, double-mat-4x-2, double-mat-4x-3, double-vec2, double-vec3, double-vec4.

Macro: arm-mali-shader-binary enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

mali-shader-binary-arm.

Macro: qcom-driver-control enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

perfmon-global-mode-qcom.

Macro: qcom-binning-control enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

binning-control-hint-qcom, cpu-optimized-qcom, gpu-optimized-qcom, render-direct-to-framebuffer-qcom.

Macro: viv-shader-binary enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

shader-binary-viv.

Macro: amd-vertex-shader-tesselator enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sampler-buffer-amd, int-sampler-buffer-amd, unsigned-int-sampler-buffer-amd, tessellation-mode-amd, tessellation-factor-amd, discrete-amd, continuous-amd.

Macro: arb-texture-cube-map-array enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-cube-map-array, texture-binding-cube-map-array, proxy-texture-cube-map-array, sampler-cube-map-array, sampler-cube-map-array-shadow, int-sampler-cube-map-array, unsigned-int-sampler-cube-map-array.

Macro: ext-texture-snorm enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

alpha-snorm, luminance-snorm, luminance-alpha-snorm, intensity-snorm, alpha8-snorm, luminance8-snorm, luminance8-alpha8-snorm, intensity8-snorm, alpha16-snorm, luminance16-snorm, luminance16-alpha16-snorm, intensity16-snorm.

Macro: amd-blend-minmax-factor enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

factor-min-amd, factor-max-amd.

Macro: amd-depth-clamp-separate enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-clamp-near-amd, depth-clamp-far-amd.

Macro: nv-video-capture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

video-buffer-nv, video-buffer-binding-nv, field-upper-nv, field-lower-nv, num-video-capture-streams-nv, next-video-capture-buffer-status-nv, video-capture-to-422-supported-nv, last-video-capture-status-nv, video-buffer-pitch-nv, video-color-conversion-matrix-nv, video-color-conversion-max-nv, video-color-conversion-min-nv, video-color-conversion-offset-nv, video-buffer-internal-format-nv, partial-success-nv, success-nv, failure-nv, ycbycr8-422-nv, ycbaycr8a-4224-nv, z6y10z6cb10z6y10z6cr10-422-nv, z6y10z6cb10z6a10z6y10z6cr10z6a10-4224-nv, z4y12z4cb12z4y12z4cr12-422-nv, z4y12z4cb12z4a12z4y12z4cr12z4a12-4224-nv, z4y12z4cb12z4cr12-444-nv, video-capture-frame-width-nv, video-capture-frame-height-nv, video-capture-field-upper-height-nv, video-capture-field-lower-height-nv, video-capture-surface-origin-nv.

Macro: nv-texture-multisample enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-coverage-samples-nv, texture-color-samples-nv.

Macro: arb-texture-rgb-10-a-2-ui enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

rgb10-a2ui.

Macro: nv-path-rendering enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

path-format-svg-nv, path-format-ps-nv, standard-font-name-nv, system-font-name-nv, file-name-nv, path-stroke-width-nv, path-end-caps-nv, path-initial-end-cap-nv, path-terminal-end-cap-nv, path-join-style-nv, path-miter-limit-nv, path-dash-caps-nv, path-initial-dash-cap-nv, path-terminal-dash-cap-nv, path-dash-offset-nv, path-client-length-nv, path-fill-mode-nv, path-fill-mask-nv, path-fill-cover-mode-nv, path-stroke-cover-mode-nv, path-stroke-mask-nv, count-up-nv, count-down-nv, path-object-bounding-box-nv, convex-hull-nv, bounding-box-nv, translate-x-nv, translate-y-nv, translate-2d-nv, translate-3d-nv, affine-2d-nv, affine-3d-nv, transpose-affine-2d-nv, transpose-affine-3d-nv, utf8-nv, utf16-nv, bounding-box-of-bounding-boxes-nv, path-command-count-nv, path-coord-count-nv, path-dash-array-count-nv, path-computed-length-nv, path-fill-bounding-box-nv, path-stroke-bounding-box-nv, square-nv, round-nv, triangular-nv, bevel-nv, miter-revert-nv, miter-truncate-nv, skip-missing-glyph-nv, use-missing-glyph-nv, path-error-position-nv, path-fog-gen-mode-nv, accum-adjacent-pairs-nv, adjacent-pairs-nv, first-to-rest-nv, path-gen-mode-nv, path-gen-coeff-nv, path-gen-color-format-nv, path-gen-components-nv, path-dash-offset-reset-nv, move-to-resets-nv, move-to-continues-nv, path-stencil-func-nv, path-stencil-ref-nv, path-stencil-value-mask-nv, close-path-nv, move-to-nv, relative-move-to-nv, line-to-nv, relative-line-to-nv, horizontal-line-to-nv, relative-horizontal-line-to-nv, vertical-line-to-nv, relative-vertical-line-to-nv, quadratic-curve-to-nv, relative-quadratic-curve-to-nv, cubic-curve-to-nv, relative-cubic-curve-to-nv, smooth-quadratic-curve-to-nv, relative-smooth-quadratic-curve-to-nv, smooth-cubic-curve-to-nv, relative-smooth-cubic-curve-to-nv, small-ccw-arc-to-nv, relative-small-ccw-arc-to-nv, small-cw-arc-to-nv, relative-small-cw-arc-to-nv, large-ccw-arc-to-nv, relative-large-ccw-arc-to-nv, large-cw-arc-to-nv, relative-large-cw-arc-to-nv, restart-path-nv, dup-first-cubic-curve-to-nv, dup-last-cubic-curve-to-nv, rect-nv, circular-ccw-arc-to-nv, circular-cw-arc-to-nv, circular-tangent-arc-to-nv, arc-to-nv, relative-arc-to-nv, bold-bit-nv, italic-bit-nv, glyph-width-bit-nv, glyph-height-bit-nv, glyph-horizontal-bearing-x-bit-nv, glyph-horizontal-bearing-y-bit-nv, glyph-horizontal-bearing-advance-bit-nv, glyph-vertical-bearing-x-bit-nv, glyph-vertical-bearing-y-bit-nv, glyph-vertical-bearing-advance-bit-nv, glyph-has-kerning-bit-nv, font-x-min-bounds-bit-nv, font-y-min-bounds-bit-nv, font-x-max-bounds-bit-nv, font-y-max-bounds-bit-nv, font-units-per-em-bit-nv, font-ascender-bit-nv, font-descender-bit-nv, font-height-bit-nv, font-max-advance-width-bit-nv, font-max-advance-height-bit-nv, font-underline-position-bit-nv, font-underline-thickness-bit-nv, font-has-kerning-bit-nv, path-stencil-depth-offset-factor-nv, path-stencil-depth-offset-units-nv, path-cover-depth-func-nv.

Macro: ext-framebuffer-multisample-blit-scaled enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

scaled-resolve-fastest-ext, scaled-resolve-nicest-ext.

Macro: arb-map-buffer-alignment enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

min-map-buffer-alignment.

Macro: nv-deep-texture-3d enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-deep-3d-texture-width-height-nv, max-deep-3d-texture-depth-nv.

Macro: ext-x-11-sync-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sync-x11-fence-ext.

Macro: arb-stencil-texturing enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

depth-stencil-texture-mode.

Macro: nv-compute-program-5 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compute-program-nv, compute-program-parameter-buffer-nv.

Macro: arb-sync enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-server-wait-timeout, object-type, sync-condition, sync-status, sync-flags, sync-fence, sync-gpu-commands-complete, unsignaled, signaled, already-signaled, timeout-expired, condition-satisfied, wait-failed, sync-flush-commands-bit, timeout-ignored.

Macro: arb-compressed-texture-pixel-storage enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

unpack-compressed-block-width, unpack-compressed-block-height, unpack-compressed-block-depth, unpack-compressed-block-size, pack-compressed-block-width, pack-compressed-block-height, pack-compressed-block-depth, pack-compressed-block-size.

Macro: arb-texture-storage enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-immutable-format.

Macro: img-program-binary enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

sgx-program-binary-img.

Macro: img-multisampled-render-to-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

renderbuffer-samples-img, framebuffer-incomplete-multisample-img, max-samples-img, texture-samples-img.

Macro: img-texture-compression-pvrtc-2 enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-rgba-pvrtc-2bppv2-img, compressed-rgba-pvrtc-4bppv2-img.

Macro: amd-debug-output enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

max-debug-message-length-amd, max-debug-logged-messages-amd, debug-logged-messages-amd, debug-severity-high-amd, debug-severity-medium-amd, debug-severity-low-amd, debug-category-api-error-amd, debug-category-window-system-amd, debug-category-deprecation-amd, debug-category-undefined-behavior-amd, debug-category-performance-amd, debug-category-shader-compiler-amd, debug-category-application-amd, debug-category-other-amd.

Macro: amd-name-gen-delete enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

data-buffer-amd, performance-monitor-amd, query-object-amd, vertex-array-object-amd, sampler-object-amd.

Macro: amd-pinned-memory enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

external-virtual-memory-buffer-amd.

Macro: amd-query-buffer-object enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

query-buffer-amd, query-buffer-binding-amd, query-result-no-wait-amd.

Macro: amd-sparse-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

virtual-page-size-x-amd, virtual-page-size-y-amd, virtual-page-size-z-amd, max-sparse-texture-size-amd, max-sparse-3d-texture-size-amd, max-sparse-array-texture-layers, min-sparse-level-amd, min-lod-warning-amd, texture-storage-sparse-bit-amd.

Macro: arb-texture-buffer-range enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-buffer-offset, texture-buffer-size, texture-buffer-offset-alignment.

Macro: dmp-shader-binary enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

shader-binary-dmp.

Macro: fj-shader-binary-gccso enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

gccso-shader-binary-fj.

Macro: arb-shader-atomic-counters enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

atomic-counter-buffer, atomic-counter-buffer-binding, atomic-counter-buffer-start, atomic-counter-buffer-size, atomic-counter-buffer-data-size, atomic-counter-buffer-active-atomic-counters, atomic-counter-buffer-active-atomic-counter-indices, atomic-counter-buffer-referenced-by-vertex-shader, atomic-counter-buffer-referenced-by-tess-control-shader, atomic-counter-buffer-referenced-by-tess-evaluation-shader, atomic-counter-buffer-referenced-by-geometry-shader, atomic-counter-buffer-referenced-by-fragment-shader, max-vertex-atomic-counter-buffers, max-tess-control-atomic-counter-buffers, max-tess-evaluation-atomic-counter-buffers, max-geometry-atomic-counter-buffers, max-fragment-atomic-counter-buffers, max-combined-atomic-counter-buffers, max-vertex-atomic-counters, max-tess-control-atomic-counters, max-tess-evaluation-atomic-counters, max-geometry-atomic-counters, max-fragment-atomic-counters, max-combined-atomic-counters, max-atomic-counter-buffer-size, max-atomic-counter-buffer-bindings, active-atomic-counter-buffers, uniform-atomic-counter-buffer-index, unsigned-int-atomic-counter.

Macro: arb-program-interface-query enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

uniform, uniform-block, program-input, program-output, buffer-variable, shader-storage-block, is-per-patch, vertex-subroutine, tess-control-subroutine, tess-evaluation-subroutine, geometry-subroutine, fragment-subroutine, compute-subroutine, vertex-subroutine-uniform, tess-control-subroutine-uniform, tess-evaluation-subroutine-uniform, geometry-subroutine-uniform, fragment-subroutine-uniform, compute-subroutine-uniform, transform-feedback-varying, active-resources, max-name-length, max-num-active-variables, max-num-compatible-subroutines, name-length, type, array-size, offset, block-index, array-stride, matrix-stride, is-row-major, atomic-counter-buffer-index, buffer-binding, buffer-data-size, num-active-variables, active-variables, referenced-by-vertex-shader, referenced-by-tess-control-shader, referenced-by-tess-evaluation-shader, referenced-by-geometry-shader, referenced-by-fragment-shader, referenced-by-compute-shader, top-level-array-size, top-level-array-stride, location, location-index.

Macro: arb-framebuffer-no-attachments enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

framebuffer-default-width, framebuffer-default-height, framebuffer-default-layers, framebuffer-default-samples, framebuffer-default-fixed-sample-locations, max-framebuffer-width, max-framebuffer-height, max-framebuffer-layers, max-framebuffer-samples.

Macro: arb-internalformat-query enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

num-sample-counts.

Macro: angle-translated-shader-source enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

translated-shader-source-length-angle.

Macro: angle-texture-usage enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

texture-usage-angle, framebuffer-attachment-angle, none.

Macro: angle-pack-reverse-row-order enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

pack-reverse-row-order-angle.

Macro: angle-depth-texture enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

program-binary-angle.

Macro: gl-khr-texture-compression-astc-ldr enum

Enumerated value. The symbolic enum argument is replaced with its corresponding numeric value at compile-time. The symbolic arguments known to this enumerated value form are:

compressed-rgba-astc-4x4-khr, compressed-rgba-astc-5x4-khr, compressed-rgba-astc-5x5-khr, compressed-rgba-astc-6x5-khr, compressed-rgba-astc-6x6-khr, compressed-rgba-astc-8x5-khr, compressed-rgba-astc-8x6-khr, compressed-rgba-astc-8x8-khr, compressed-rgba-astc-10x5-khr, compressed-rgba-astc-10x6-khr, compressed-rgba-astc-10x8-khr, compressed-rgba-astc-10x10-khr, compressed-rgba-astc-12x10-khr, compressed-rgba-astc-12x12-khr, compressed-srgb8-alpha8-astc-4x4-khr, compressed-srgb8-alpha8-astc-5x4-khr, compressed-srgb8-alpha8-astc-5x5-khr, compressed-srgb8-alpha8-astc-6x5-khr, compressed-srgb8-alpha8-astc-6x6-khr, compressed-srgb8-alpha8-astc-8x5-khr, compressed-srgb8-alpha8-astc-8x6-khr, compressed-srgb8-alpha8-astc-8x8-khr, compressed-srgb8-alpha8-astc-10x5-khr, compressed-srgb8-alpha8-astc-10x6-khr, compressed-srgb8-alpha8-astc-10x8-khr, compressed-srgb8-alpha8-astc-10x10-khr, compressed-srgb8-alpha8-astc-12x10-khr, compressed-srgb8-alpha8-astc-12x12-khr.


Next: , Previous: , Up: GL   [Index]

3.6 Low-Level GL

The functions from this section may be had by loading the module:

(use-modules (gl low-level)

This section of the manual was derived from the upstream OpenGL documentation. Each function’s documentation has its own copyright statement; for full details, see the upstream documentation. The copyright notices and licenses present in this section are as follows.

Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.

Copyright © 2003-2005 3Dlabs Inc. Ltd. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.

Copyright © 2005 Addison-Wesley. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.

Copyright © 2006 Khronos Group. This material may be distributed subject to the terms and conditions set forth in the Open Publication License, v 1.0, 8 June 1999. http://opencontent.org/openpub/.

Function: void glAccum op value

Operate on the accumulation buffer.

op

Specifies the accumulation buffer operation. Symbolic constants GL_ACCUM, GL_LOAD, GL_ADD, GL_MULT, and GL_RETURN are accepted.

value

Specifies a floating-point value used in the accumulation buffer operation. op determines how value is used.

The accumulation buffer is an extended-range color buffer. Images are not rendered into it. Rather, images rendered into one of the color buffers are added to the contents of the accumulation buffer after rendering. Effects such as antialiasing (of points, lines, and polygons), motion blur, and depth of field can be created by accumulating images generated with different transformation matrices.

Each pixel in the accumulation buffer consists of red, green, blue, and alpha values. The number of bits per component in the accumulation buffer depends on the implementation. You can examine this number by calling glGetIntegerv four times, with arguments GL_ACCUM_RED_BITS, GL_ACCUM_GREEN_BITS, GL_ACCUM_BLUE_BITS, and GL_ACCUM_ALPHA_BITS. Regardless of the number of bits per component, the range of values stored by each component is [-1,1]. The accumulation buffer pixels are mapped one-to-one with frame buffer pixels.

glAccum operates on the accumulation buffer. The first argument, op, is a symbolic constant that selects an accumulation buffer operation. The second argument, value, is a floating-point value to be used in that operation. Five operations are specified: GL_ACCUM, GL_LOAD, GL_ADD, GL_MULT, and GL_RETURN.

All accumulation buffer operations are limited to the area of the current scissor box and applied identically to the red, green, blue, and alpha components of each pixel. If a glAccum operation results in a value outside the range [-1,1], the contents of an accumulation buffer pixel component are undefined.

The operations are as follows:

GL_ACCUM

Obtains R, G, B, and A values from the buffer currently selected for reading (see glReadBuffer). Each component value is divided by 2^n-1, where n is the number of bits allocated to each color component in the currently selected buffer. The result is a floating-point value in the range [0,1], which is multiplied by value and added to the corresponding pixel component in the accumulation buffer, thereby updating the accumulation buffer.

GL_LOAD

Similar to GL_ACCUM, except that the current value in the accumulation buffer is not used in the calculation of the new value. That is, the R, G, B, and A values from the currently selected buffer are divided by 2^n-1, multiplied by value, and then stored in the corresponding accumulation buffer cell, overwriting the current value.

GL_ADD

Adds value to each R, G, B, and A in the accumulation buffer.

GL_MULT

Multiplies each R, G, B, and A in the accumulation buffer by value and returns the scaled component to its corresponding accumulation buffer location.

GL_RETURN

Transfers accumulation buffer values to the color buffer or buffers currently selected for writing. Each R, G, B, and A component is multiplied by value, then multiplied by 2^n-1, clamped to the range [0,2^n-1], and stored in the corresponding display buffer cell. The only fragment operations that are applied to this transfer are pixel ownership, scissor, dithering, and color writemasks.

To clear the accumulation buffer, call glClearAccum with R, G, B, and A values to set it to, then call glClear with the accumulation buffer enabled.

GL_INVALID_ENUM is generated if op is not an accepted value.

GL_INVALID_OPERATION is generated if there is no accumulation buffer.

GL_INVALID_OPERATION is generated if glAccum is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glActiveTexture texture

Select active texture unit.

texture

Specifies which texture unit to make active. The number of texture units is implementation dependent, but must be at least two. texture must be one of GL_TEXTUREi, where i ranges from 0 to the larger of (GL_MAX_TEXTURE_COORDS - 1) and (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1). The initial value is GL_TEXTURE0.

glActiveTexture selects which texture unit subsequent texture state calls will affect. The number of texture units an implementation supports is implementation dependent, but must be at least 2.

Vertex arrays are client-side GL resources, which are selected by the glClientActiveTexture routine.

GL_INVALID_ENUM is generated if texture is not one of GL_TEXTUREi, where i ranges from 0 to the larger of (GL_MAX_TEXTURE_COORDS - 1) and (GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS - 1).

Function: void glAlphaFunc func ref

Specify the alpha test function.

func

Specifies the alpha comparison function. Symbolic constants GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, and GL_ALWAYS are accepted. The initial value is GL_ALWAYS.

ref

Specifies the reference value that incoming alpha values are compared to. This value is clamped to the range [0,1], where 0 represents the lowest possible alpha value and 1 the highest possible value. The initial reference value is 0.

The alpha test discards fragments depending on the outcome of a comparison between an incoming fragment’s alpha value and a constant reference value. glAlphaFunc specifies the reference value and the comparison function. The comparison is performed only if alpha testing is enabled. By default, it is not enabled. (See glEnable and glDisable of GL_ALPHA_TEST.)

func and ref specify the conditions under which the pixel is drawn. The incoming alpha value is compared to ref using the function specified by func. If the value passes the comparison, the incoming fragment is drawn if it also passes subsequent stencil and depth buffer tests. If the value fails the comparison, no change is made to the frame buffer at that pixel location. The comparison functions are as follows:

GL_NEVER

Never passes.

GL_LESS

Passes if the incoming alpha value is less than the reference value.

GL_EQUAL

Passes if the incoming alpha value is equal to the reference value.

GL_LEQUAL

Passes if the incoming alpha value is less than or equal to the reference value.

GL_GREATER

Passes if the incoming alpha value is greater than the reference value.

GL_NOTEQUAL

Passes if the incoming alpha value is not equal to the reference value.

GL_GEQUAL

Passes if the incoming alpha value is greater than or equal to the reference value.

GL_ALWAYS

Always passes (initial value).

glAlphaFunc operates on all pixel write operations, including those resulting from the scan conversion of points, lines, polygons, and bitmaps, and from pixel draw and copy operations. glAlphaFunc does not affect screen clear operations.

GL_INVALID_ENUM is generated if func is not an accepted value.

GL_INVALID_OPERATION is generated if glAlphaFunc is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: GLboolean glAreTexturesResident n textures residences

Determine if textures are loaded in texture memory.

n

Specifies the number of textures to be queried.

textures

Specifies an array containing the names of the textures to be queried.

residences

Specifies an array in which the texture residence status is returned. The residence status of a texture named by an element of textures is returned in the corresponding element of residences.

GL establishes a “working set” of textures that are resident in texture memory. These textures can be bound to a texture target much more efficiently than textures that are not resident.

glAreTexturesResident queries the texture residence status of the n textures named by the elements of textures. If all the named textures are resident, glAreTexturesResident returns GL_TRUE, and the contents of residences are undisturbed. If not all the named textures are resident, glAreTexturesResident returns GL_FALSE, and detailed status is returned in the n elements of residences. If an element of residences is GL_TRUE, then the texture named by the corresponding element of textures is resident.

The residence status of a single bound texture may also be queried by calling glGetTexParameter with the target argument set to the target to which the texture is bound, and the pname argument set to GL_TEXTURE_RESIDENT. This is the only way that the residence status of a default texture can be queried.

GL_INVALID_VALUE is generated if n is negative.

GL_INVALID_VALUE is generated if any element in textures is 0 or does not name a texture. In that case, the function returns GL_FALSE and the contents of residences is indeterminate.

GL_INVALID_OPERATION is generated if glAreTexturesResident is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glArrayElement i

Render a vertex using the specified vertex array element.

i

Specifies an index into the enabled vertex data arrays.

glArrayElement commands are used within glBegin/glEnd pairs to specify vertex and attribute data for point, line, and polygon primitives. If GL_VERTEX_ARRAY is enabled when glArrayElement is called, a single vertex is drawn, using vertex and attribute data taken from location i of the enabled arrays. If GL_VERTEX_ARRAY is not enabled, no drawing occurs but the attributes corresponding to the enabled arrays are modified.

Use glArrayElement to construct primitives by indexing vertex data, rather than by streaming through arrays of data in first-to-last order. Because each call specifies only a single vertex, it is possible to explicitly specify per-primitive attributes such as a single normal for each triangle.

Changes made to array data between the execution of glBegin and the corresponding execution of glEnd may affect calls to glArrayElement that are made within the same glBegin/glEnd period in nonsequential ways. That is, a call to glArrayElement that precedes a change to array data may access the changed data, and a call that follows a change to array data may access original data.

GL_INVALID_VALUE may be generated if i is negative.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an enabled array and the buffer object’s data store is currently mapped.

Function: void glAttachShader program shader

Attaches a shader object to a program object.

program

Specifies the program object to which a shader object will be attached.

shader

Specifies the shader object that is to be attached.

In order to create an executable, there must be a way to specify the list of things that will be linked together. Program objects provide this mechanism. Shaders that are to be linked together in a program object must first be attached to that program object. glAttachShader attaches the shader object specified by shader to the program object specified by program. This indicates that shader will be included in link operations that will be performed on program.

All operations that can be performed on a shader object are valid whether or not the shader object is attached to a program object. It is permissible to attach a shader object to a program object before source code has been loaded into the shader object or before the shader object has been compiled. It is permissible to attach multiple shader objects of the same type because each may contain a portion of the complete shader. It is also permissible to attach a shader object to more than one program object. If a shader object is deleted while it is attached to a program object, it will be flagged for deletion, and deletion will not occur until glDetachShader is called to detach it from all program objects to which it is attached.

GL_INVALID_VALUE is generated if either program or shader is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_OPERATION is generated if shader is not a shader object.

GL_INVALID_OPERATION is generated if shader is already attached to program.

GL_INVALID_OPERATION is generated if glAttachShader is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBeginQuery target id
Function: void glEndQuery target

Delimit the boundaries of a query object.

target

Specifies the target type of query object established between glBeginQuery and the subsequent glEndQuery. The symbolic constant must be GL_SAMPLES_PASSED.

id

Specifies the name of a query object.

glBeginQuery and glEndQuery delimit the boundaries of a query object. If a query object with name id does not yet exist it is created.

When glBeginQuery is executed, the query object’s samples-passed counter is reset to 0. Subsequent rendering will increment the counter once for every sample that passes the depth test. When glEndQuery is executed, the samples-passed counter is assigned to the query object’s result value. This value can be queried by calling glGetQueryObject with pnameGL_QUERY_RESULT.

Querying the GL_QUERY_RESULT implicitly flushes the GL pipeline until the rendering delimited by the query object has completed and the result is available. GL_QUERY_RESULT_AVAILABLE can be queried to determine if the result is immediately available or if the rendering is not yet complete.

GL_INVALID_ENUM is generated if target is not GL_SAMPLES_PASSED.

GL_INVALID_OPERATION is generated if glBeginQuery is executed while a query object of the same target is already active.

GL_INVALID_OPERATION is generated if glEndQuery is executed when a query object of the same target is not active.

GL_INVALID_OPERATION is generated if id is 0.

GL_INVALID_OPERATION is generated if id is the name of an already active query object.

GL_INVALID_OPERATION is generated if glBeginQuery or glEndQuery is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBegin mode
Function: void glEnd

Delimit the vertices of a primitive or a group of like primitives.

mode

Specifies the primitive or primitives that will be created from vertices presented between glBegin and the subsequent glEnd. Ten symbolic constants are accepted: GL_POINTS, GL_LINES, GL_LINE_STRIP, GL_LINE_LOOP, GL_TRIANGLES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_QUADS, GL_QUAD_STRIP, and GL_POLYGON.

glBegin and glEnd delimit the vertices that define a primitive or a group of like primitives. glBegin accepts a single argument that specifies in which of ten ways the vertices are interpreted. Taking n as an integer count starting at one, and N as the total number of vertices specified, the interpretations are as follows:

GL_POINTS

Treats each vertex as a single point. Vertex n defines point n. N points are drawn.

GL_LINES

Treats each pair of vertices as an independent line segment. Vertices 2⁢n-1 and 2⁢n define line n. N/2 lines are drawn.

GL_LINE_STRIP

Draws a connected group of line segments from the first vertex to the last. Vertices n and n+1 define line n. N-1 lines are drawn.

GL_LINE_LOOP

Draws a connected group of line segments from the first vertex to the last, then back to the first. Vertices n and n+1 define line n. The last line, however, is defined by vertices N and 1. N lines are drawn.

GL_TRIANGLES

Treats each triplet of vertices as an independent triangle. Vertices 3⁢n-2, 3⁢n-1, and 3⁢n define triangle n. N/3 triangles are drawn.

GL_TRIANGLE_STRIP

Draws a connected group of triangles. One triangle is defined for each vertex presented after the first two vertices. For odd n, vertices n, n+1, and n+2 define triangle n. For even n, vertices n+1, n, and n+2 define triangle n. N-2 triangles are drawn.

GL_TRIANGLE_FAN

Draws a connected group of triangles. One triangle is defined for each vertex presented after the first two vertices. Vertices 1, n+1, and n+2 define triangle n. N-2 triangles are drawn.

GL_QUADS

Treats each group of four vertices as an independent quadrilateral. Vertices 4⁢n-3, 4⁢n-2, 4⁢n-1, and 4⁢n define quadrilateral n. N/4 quadrilaterals are drawn.

GL_QUAD_STRIP

Draws a connected group of quadrilaterals. One quadrilateral is defined for each pair of vertices presented after the first pair. Vertices 2⁢n-1, 2⁢n, 2⁢n+2, and 2⁢n+1 define quadrilateral n. N/2-1 quadrilaterals are drawn. Note that the order in which vertices are used to construct a quadrilateral from strip data is different from that used with independent data.

GL_POLYGON

Draws a single, convex polygon. Vertices 1 through N define this polygon.

Only a subset of GL commands can be used between glBegin and glEnd. The commands are glVertex, glColor, glSecondaryColor, glIndex, glNormal, glFogCoord, glTexCoord, glMultiTexCoord, glVertexAttrib, glEvalCoord, glEvalPoint, glArrayElement, glMaterial, and glEdgeFlag. Also, it is acceptable to use glCallList or glCallLists to execute display lists that include only the preceding commands. If any other GL command is executed between glBegin and glEnd, the error flag is set and the command is ignored.

Regardless of the value chosen for mode, there is no limit to the number of vertices that can be defined between glBegin and glEnd. Lines, triangles, quadrilaterals, and polygons that are incompletely specified are not drawn. Incomplete specification results when either too few vertices are provided to specify even a single primitive or when an incorrect multiple of vertices is specified. The incomplete primitive is ignored; the rest are drawn.

The minimum specification of vertices for each primitive is as follows: 1 for a point, 2 for a line, 3 for a triangle, 4 for a quadrilateral, and 3 for a polygon. Modes that require a certain multiple of vertices are GL_LINES (2), GL_TRIANGLES (3), GL_QUADS (4), and GL_QUAD_STRIP (2).

GL_INVALID_ENUM is generated if mode is set to an unaccepted value.

GL_INVALID_OPERATION is generated if glBegin is executed between a glBegin and the corresponding execution of glEnd.

GL_INVALID_OPERATION is generated if glEnd is executed without being preceded by a glBegin.

GL_INVALID_OPERATION is generated if a command other than glVertex, glColor, glSecondaryColor, glIndex, glNormal, glFogCoord, glTexCoord, glMultiTexCoord, glVertexAttrib, glEvalCoord, glEvalPoint, glArrayElement, glMaterial, glEdgeFlag, glCallList, or glCallLists is executed between the execution of glBegin and the corresponding execution glEnd.

Execution of glEnableClientState, glDisableClientState, glEdgeFlagPointer, glFogCoordPointer, glTexCoordPointer, glColorPointer, glSecondaryColorPointer, glIndexPointer, glNormalPointer, glVertexPointer, glVertexAttribPointer, glInterleavedArrays, or glPixelStore is not allowed after a call to glBegin and before the corresponding call to glEnd, but an error may or may not be generated.

Function: void glBindAttribLocation program index name

Associates a generic vertex attribute index with a named attribute variable.

program

Specifies the handle of the program object in which the association is to be made.

index

Specifies the index of the generic vertex attribute to be bound.

name

Specifies a null terminated string containing the name of the vertex shader attribute variable to which index is to be bound.

glBindAttribLocation is used to associate a user-defined attribute variable in the program object specified by program with a generic vertex attribute index. The name of the user-defined attribute variable is passed as a null terminated string in name. The generic vertex attribute index to be bound to this variable is specified by index. When program is made part of current state, values provided via the generic vertex attribute index will modify the value of the user-defined attribute variable specified by name.

If name refers to a matrix attribute variable, index refers to the first column of the matrix. Other matrix columns are then automatically bound to locations index+1 for a matrix of type mat2; index+1 and index+2 for a matrix of type mat3; and index+1, index+2, and index+3 for a matrix of type mat4.

This command makes it possible for vertex shaders to use descriptive names for attribute variables rather than generic variables that are numbered from 0 to GL_MAX_VERTEX_ATTRIBS -1. The values sent to each generic attribute index are part of current state, just like standard vertex attributes such as color, normal, and vertex position. If a different program object is made current by calling glUseProgram, the generic vertex attributes are tracked in such a way that the same values will be observed by attributes in the new program object that are also bound to index.

Attribute variable name-to-generic attribute index bindings for a program object can be explicitly assigned at any time by calling glBindAttribLocation. Attribute bindings do not go into effect until glLinkProgram is called. After a program object has been linked successfully, the index values for generic attributes remain fixed (and their values can be queried) until the next link command occurs.

Applications are not allowed to bind any of the standard OpenGL vertex attributes using this command, as they are bound automatically when needed. Any attribute binding that occurs after the program object has been linked will not take effect until the next time the program object is linked.

GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX_ATTRIBS.

GL_INVALID_OPERATION is generated if name starts with the reserved prefix "gl_".

GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_OPERATION is generated if glBindAttribLocation is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBindBuffer target buffer

Bind a named buffer object.

target

Specifies the target to which the buffer object is bound. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.

buffer

Specifies the name of a buffer object.

glBindBuffer lets you create or use a named buffer object. Calling glBindBuffer with target set to GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER or GL_PIXEL_UNPACK_BUFFER and buffer set to the name of the new buffer object binds the buffer object name to the target. When a buffer object is bound to a target, the previous binding for that target is automatically broken.

Buffer object names are unsigned integers. The value zero is reserved, but there is no default buffer object for each buffer object target. Instead, buffer set to zero effectively unbinds any buffer object previously bound, and restores client memory usage for that buffer object target. Buffer object names and the corresponding buffer object contents are local to the shared display-list space (see glXCreateContext) of the current GL rendering context; two rendering contexts share buffer object names only if they also share display lists.

You may use glGenBuffers to generate a set of new buffer object names.

The state of a buffer object immediately after it is first bound is an unmapped zero-sized memory buffer with GL_READ_WRITE access and GL_STATIC_DRAW usage.

While a non-zero buffer object name is bound, GL operations on the target to which it is bound affect the bound buffer object, and queries of the target to which it is bound return state from the bound buffer object. While buffer object name zero is bound, as in the initial state, attempts to modify or query state on the target to which it is bound generates an GL_INVALID_OPERATION error.

When vertex array pointer state is changed, for example by a call to glNormalPointer, the current buffer object binding (GL_ARRAY_BUFFER_BINDING) is copied into the corresponding client state for the vertex array type being changed, for example GL_NORMAL_ARRAY_BUFFER_BINDING. While a non-zero buffer object is bound to the GL_ARRAY_BUFFER target, the vertex array pointer parameter that is traditionally interpreted as a pointer to client-side memory is instead interpreted as an offset within the buffer object measured in basic machine units.

While a non-zero buffer object is bound to the GL_ELEMENT_ARRAY_BUFFER target, the indices parameter of glDrawElements, glDrawRangeElements, or glMultiDrawElements that is traditionally interpreted as a pointer to client-side memory is instead interpreted as an offset within the buffer object measured in basic machine units.

While a non-zero buffer object is bound to the GL_PIXEL_PACK_BUFFER target, the following commands are affected: glGetCompressedTexImage, glGetConvolutionFilter, glGetHistogram, glGetMinmax, glGetPixelMap, glGetPolygonStipple, glGetSeparableFilter, glGetTexImage, and glReadPixels. The pointer parameter that is traditionally interpreted as a pointer to client-side memory where the pixels are to be packed is instead interpreted as an offset within the buffer object measured in basic machine units.

While a non-zero buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target, the following commands are affected: glBitmap, glColorSubTable, glColorTable, glCompressedTexImage1D, glCompressedTexImage2D, glCompressedTexImage3D, glCompressedTexSubImage1D, glCompressedTexSubImage2D, glCompressedTexSubImage3D, glConvolutionFilter1D, glConvolutionFilter2D, glDrawPixels, glPixelMap, glPolygonStipple, glSeparableFilter2D, glTexImage1D, glTexImage2D, glTexImage3D, glTexSubImage1D, glTexSubImage2D, and glTexSubImage3D. The pointer parameter that is traditionally interpreted as a pointer to client-side memory from which the pixels are to be unpacked is instead interpreted as an offset within the buffer object measured in basic machine units.

A buffer object binding created with glBindBuffer remains active until a different buffer object name is bound to the same target, or until the bound buffer object is deleted with glDeleteBuffers.

Once created, a named buffer object may be re-bound to any target as often as needed. However, the GL implementation may make choices about how to optimize the storage of a buffer object based on its initial binding target.

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_OPERATION is generated if glBindBuffer is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBindTexture target texture

Bind a named texture to a texturing target.

target

Specifies the target to which the texture is bound. Must be either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP.

texture

Specifies the name of a texture.

glBindTexture lets you create or use a named texture. Calling glBindTexture with target set to GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D or GL_TEXTURE_CUBE_MAP and texture set to the name of the new texture binds the texture name to the target. When a texture is bound to a target, the previous binding for that target is automatically broken.

Texture names are unsigned integers. The value zero is reserved to represent the default texture for each texture target. Texture names and the corresponding texture contents are local to the shared display-list space (see glXCreateContext) of the current GL rendering context; two rendering contexts share texture names only if they also share display lists.

You may use glGenTextures to generate a set of new texture names.

When a texture is first bound, it assumes the specified target: A texture first bound to GL_TEXTURE_1D becomes one-dimensional texture, a texture first bound to GL_TEXTURE_2D becomes two-dimensional texture, a texture first bound to GL_TEXTURE_3D becomes three-dimensional texture, and a texture first bound to GL_TEXTURE_CUBE_MAP becomes a cube-mapped texture. The state of a one-dimensional texture immediately after it is first bound is equivalent to the state of the default GL_TEXTURE_1D at GL initialization, and similarly for two- and three-dimensional textures and cube-mapped textures.

While a texture is bound, GL operations on the target to which it is bound affect the bound texture, and queries of the target to which it is bound return state from the bound texture. If texture mapping is active on the target to which a texture is bound, the bound texture is used. In effect, the texture targets become aliases for the textures currently bound to them, and the texture name zero refers to the default textures that were bound to them at initialization.

A texture binding created with glBindTexture remains active until a different texture is bound to the same target, or until the bound texture is deleted with glDeleteTextures.

Once created, a named texture may be re-bound to its same original target as often as needed. It is usually much faster to use glBindTexture to bind an existing named texture to one of the texture targets than it is to reload the texture image using glTexImage1D, glTexImage2D, or glTexImage3D. For additional control over performance, use glPrioritizeTextures.

glBindTexture is included in display lists.

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_OPERATION is generated if texture was previously created with a target that doesn’t match that of target.

GL_INVALID_OPERATION is generated if glBindTexture is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBitmap width height xorig yorig xmove ymove bitmap

Draw a bitmap.

width
height

Specify the pixel width and height of the bitmap image.

xorig
yorig

Specify the location of the origin in the bitmap image. The origin is measured from the lower left corner of the bitmap, with right and up being the positive axes.

xmove
ymove

Specify the x and y offsets to be added to the current raster position after the bitmap is drawn.

bitmap

Specifies the address of the bitmap image.

A bitmap is a binary image. When drawn, the bitmap is positioned relative to the current raster position, and frame buffer pixels corresponding to 1’s in the bitmap are written using the current raster color or index. Frame buffer pixels corresponding to 0’s in the bitmap are not modified.

glBitmap takes seven arguments. The first pair specifies the width and height of the bitmap image. The second pair specifies the location of the bitmap origin relative to the lower left corner of the bitmap image. The third pair of arguments specifies x and y offsets to be added to the current raster position after the bitmap has been drawn. The final argument is a pointer to the bitmap image itself.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a bitmap image is specified, bitmap is treated as a byte offset into the buffer object’s data store.

The bitmap image is interpreted like image data for the glDrawPixels command, with width and height corresponding to the width and height arguments of that command, and with type set to GL_BITMAP and format set to GL_COLOR_INDEX. Modes specified using glPixelStore affect the interpretation of bitmap image data; modes specified using glPixelTransfer do not.

If the current raster position is invalid, glBitmap is ignored. Otherwise, the lower left corner of the bitmap image is positioned at the window coordinates

x_w=⌊x_r-x_o,⌋

y_w=⌊y_r-y_o,⌋

where (x_r,y_r) is the raster position and (x_o,y_o) is the bitmap origin. Fragments are then generated for each pixel corresponding to a 1 (one) in the bitmap image. These fragments are generated using the current raster z coordinate, color or color index, and current raster texture coordinates. They are then treated just as if they had been generated by a point, line, or polygon, including texture mapping, fogging, and all per-fragment operations such as alpha and depth testing.

After the bitmap has been drawn, the x and y coordinates of the current raster position are offset by xmove and ymove. No change is made to the z coordinate of the current raster position, or to the current raster color, texture coordinates, or index.

GL_INVALID_VALUE is generated if width or height is negative.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if glBitmap is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBlendColor red green blue alpha

Set the blend color.

red
green
blue
alpha

specify the components of GL_BLEND_COLOR

The GL_BLEND_COLOR may be used to calculate the source and destination blending factors. The color components are clamped to the range [0,1] before being stored. See glBlendFunc for a complete description of the blending operations. Initially the GL_BLEND_COLOR is set to (0, 0, 0, 0).

GL_INVALID_OPERATION is generated if glBlendColor is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBlendEquationSeparate modeRGB modeAlpha

Set the RGB blend equation and the alpha blend equation separately.

modeRGB

specifies the RGB blend equation, how the red, green, and blue components of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.

modeAlpha

specifies the alpha blend equation, how the alpha component of the source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.

The blend equations determines how a new pixel (the ”source” color) is combined with a pixel already in the framebuffer (the ”destination” color). This function specifies one blend equation for the RGB-color components and one blend equation for the alpha component.

The blend equations use the source and destination blend factors specified by either glBlendFunc or glBlendFuncSeparate. See glBlendFunc or glBlendFuncSeparate for a description of the various blend factors.

In the equations that follow, source and destination color components are referred to as (R_s,G_sB_sA_s) and (R_d,G_dB_dA_d), respectively. The result color is referred to as (R_r,G_rB_rA_r). The source and destination blend factors are denoted (s_R,s_Gs_Bs_A) and (d_R,d_Gd_Bd_A), respectively. For these equations all color components are understood to have values in the range [0,1].

Mode

RGB Components, Alpha Component

GL_FUNC_ADD

Rr=R_s⁢s_R+R_d⁢d_RGr=G_s⁢s_G+G_d⁢d_GBr=B_s⁢s_B+B_d⁢d_B, Ar=A_s⁢s_A+A_d⁢d_A

GL_FUNC_SUBTRACT

Rr=R_s⁢s_R-R_d⁢d_RGr=G_s⁢s_G-G_d⁢d_GBr=B_s⁢s_B-B_d⁢d_B, Ar=A_s⁢s_A-A_d⁢d_A

GL_FUNC_REVERSE_SUBTRACT

Rr=R_d⁢d_R-R_s⁢s_RGr=G_d⁢d_G-G_s⁢s_GBr=B_d⁢d_B-B_s⁢s_B, Ar=A_d⁢d_A-A_s⁢s_A

GL_MIN

Rr=min⁡(R_s,R_d)Gr=min⁡(G_s,G_d)Br=min⁡(B_s,B_d), Ar=min⁡(A_s,A_d)

GL_MAX

Rr=max⁡(R_s,R_d)Gr=max⁡(G_s,G_d)Br=max⁡(B_s,B_d), Ar=max⁡(A_s,A_d)

The results of these equations are clamped to the range [0,1].

The GL_MIN and GL_MAX equations are useful for applications that analyze image data (image thresholding against a constant color, for example). The GL_FUNC_ADD equation is useful for antialiasing and transparency, among other things.

Initially, both the RGB blend equation and the alpha blend equation are set to GL_FUNC_ADD.

GL_INVALID_ENUM is generated if either modeRGB or modeAlpha is not one of GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MAX, or GL_MIN.

GL_INVALID_OPERATION is generated if glBlendEquationSeparate is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBlendEquation mode

Specify the equation used for both the RGB blend equation and the Alpha blend equation.

mode

specifies how source and destination colors are combined. It must be GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN, GL_MAX.

The blend equations determine how a new pixel (the ”source” color) is combined with a pixel already in the framebuffer (the ”destination” color). This function sets both the RGB blend equation and the alpha blend equation to a single equation.

These equations use the source and destination blend factors specified by either glBlendFunc or glBlendFuncSeparate. See glBlendFunc or glBlendFuncSeparate for a description of the various blend factors.

In the equations that follow, source and destination color components are referred to as (R_s,G_sB_sA_s) and (R_d,G_dB_dA_d), respectively. The result color is referred to as (R_r,G_rB_rA_r). The source and destination blend factors are denoted (s_R,s_Gs_Bs_A) and (d_R,d_Gd_Bd_A), respectively. For these equations all color components are understood to have values in the range [0,1].

Mode

RGB Components, Alpha Component

GL_FUNC_ADD

Rr=R_s⁢s_R+R_d⁢d_RGr=G_s⁢s_G+G_d⁢d_GBr=B_s⁢s_B+B_d⁢d_B, Ar=A_s⁢s_A+A_d⁢d_A

GL_FUNC_SUBTRACT

Rr=R_s⁢s_R-R_d⁢d_RGr=G_s⁢s_G-G_d⁢d_GBr=B_s⁢s_B-B_d⁢d_B, Ar=A_s⁢s_A-A_d⁢d_A

GL_FUNC_REVERSE_SUBTRACT

Rr=R_d⁢d_R-R_s⁢s_RGr=G_d⁢d_G-G_s⁢s_GBr=B_d⁢d_B-B_s⁢s_B, Ar=A_d⁢d_A-A_s⁢s_A

GL_MIN

Rr=min⁡(R_s,R_d)Gr=min⁡(G_s,G_d)Br=min⁡(B_s,B_d), Ar=min⁡(A_s,A_d)

GL_MAX

Rr=max⁡(R_s,R_d)Gr=max⁡(G_s,G_d)Br=max⁡(B_s,B_d), Ar=max⁡(A_s,A_d)

The results of these equations are clamped to the range [0,1].

The GL_MIN and GL_MAX equations are useful for applications that analyze image data (image thresholding against a constant color, for example). The GL_FUNC_ADD equation is useful for antialiasing and transparency, among other things.

Initially, both the RGB blend equation and the alpha blend equation are set to GL_FUNC_ADD.

GL_INVALID_ENUM is generated if mode is not one of GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MAX, or GL_MIN.

GL_INVALID_OPERATION is generated if glBlendEquation is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBlendFuncSeparate srcRGB dstRGB srcAlpha dstAlpha

Specify pixel arithmetic for RGB and alpha components separately.

srcRGB

Specifies how the red, green, and blue blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.

dstRGB

Specifies how the red, green, and blue destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.

srcAlpha

Specified how the alpha source blending factor is computed. The same symbolic constants are accepted as for srcRGB. The initial value is GL_ONE.

dstAlpha

Specified how the alpha destination blending factor is computed. The same symbolic constants are accepted as for dstRGB. The initial value is GL_ZERO.

In RGBA mode, pixels can be drawn using a function that blends the incoming (source) RGBA values with the RGBA values that are already in the frame buffer (the destination values). Blending is initially disabled. Use glEnable and glDisable with argument GL_BLEND to enable and disable blending.

glBlendFuncSeparate defines the operation of blending when it is enabled. srcRGB specifies which method is used to scale the source RGB-color components. dstRGB specifies which method is used to scale the destination RGB-color components. Likewise, srcAlpha specifies which method is used to scale the source alpha color component, and dstAlpha specifies which method is used to scale the destination alpha component. The possible methods are described in the following table. Each method defines four scale factors, one each for red, green, blue, and alpha.

In the table and in subsequent equations, source and destination color components are referred to as (R_s,G_sB_sA_s) and (R_d,G_dB_dA_d). The color specified by glBlendColor is referred to as (R_c,G_cB_cA_c). They are understood to have integer values between 0 and (k_R,k_Gk_Bk_A), where

k_c=2^m_c,-1

and (m_R,m_Gm_Bm_A) is the number of red, green, blue, and alpha bitplanes.

Source and destination scale factors are referred to as (s_R,s_Gs_Bs_A) and (d_R,d_Gd_Bd_A). All scale factors have range [0,1].

Parameter

RGB Factor, Alpha Factor

GL_ZERO

(0,00), 0

GL_ONE

(1,11), 1

GL_SRC_COLOR

(R_s/k_R,G_s/k_GB_s/k_B), A_s/k_A

GL_ONE_MINUS_SRC_COLOR

(1,111)-(R_s/k_R,G_s/k_GB_s/k_B), 1-A_s/k_A

GL_DST_COLOR

(R_d/k_R,G_d/k_GB_d/k_B), A_d/k_A

GL_ONE_MINUS_DST_COLOR

(1,11)-(R_d/k_R,G_d/k_GB_d/k_B), 1-A_d/k_A

GL_SRC_ALPHA

(A_s/k_A,A_s/k_AA_s/k_A), A_s/k_A

GL_ONE_MINUS_SRC_ALPHA

(1,11)-(A_s/k_A,A_s/k_AA_s/k_A), 1-A_s/k_A

GL_DST_ALPHA

(A_d/k_A,A_d/k_AA_d/k_A), A_d/k_A

GL_ONE_MINUS_DST_ALPHA

(1,11)-(A_d/k_A,A_d/k_AA_d/k_A), 1-A_d/k_A

GL_CONSTANT_COLOR

(R_c,G_cB_c), A_c

GL_ONE_MINUS_CONSTANT_COLOR

(1,11)-(R_c,G_cB_c), 1-A_c

GL_CONSTANT_ALPHA

(A_c,A_cA_c), A_c

GL_ONE_MINUS_CONSTANT_ALPHA

(1,11)-(A_c,A_cA_c), 1-A_c

GL_SRC_ALPHA_SATURATE

(i,ii), 1

In the table,

i=min⁡(A_s,1-A_d,)

To determine the blended RGBA values of a pixel when drawing in RGBA mode, the system uses the following equations:

R_d=min⁡(k_R,R_s⁢s_R+R_d⁢d_R)G_d=min⁡(k_G,G_s⁢s_G+G_d⁢d_G)B_d=min⁡(k_B,B_s⁢s_B+B_d⁢d_B)A_d=min⁡(k_A,A_s⁢s_A+A_d⁢d_A)

Despite the apparent precision of the above equations, blending arithmetic is not exactly specified, because blending operates with imprecise integer color values. However, a blend factor that should be equal to 1 is guaranteed not to modify its multiplicand, and a blend factor equal to 0 reduces its multiplicand to 0. For example, when srcRGB is GL_SRC_ALPHA, dstRGB is GL_ONE_MINUS_SRC_ALPHA, and A_s is equal to k_A, the equations reduce to simple replacement:

R_d=R_sG_d=G_sB_d=B_sA_d=A_s

GL_INVALID_ENUM is generated if either srcRGB or dstRGB is not an accepted value.

GL_INVALID_OPERATION is generated if glBlendFuncSeparate is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBlendFunc sfactor dfactor

Specify pixel arithmetic.

sfactor

Specifies how the red, green, blue, and alpha source blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA, GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, GL_ONE_MINUS_CONSTANT_ALPHA, and GL_SRC_ALPHA_SATURATE. The initial value is GL_ONE.

dfactor

Specifies how the red, green, blue, and alpha destination blending factors are computed. The following symbolic constants are accepted: GL_ZERO, GL_ONE, GL_SRC_COLOR, GL_ONE_MINUS_SRC_COLOR, GL_DST_COLOR, GL_ONE_MINUS_DST_COLOR, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_DST_ALPHA, GL_ONE_MINUS_DST_ALPHA. GL_CONSTANT_COLOR, GL_ONE_MINUS_CONSTANT_COLOR, GL_CONSTANT_ALPHA, and GL_ONE_MINUS_CONSTANT_ALPHA. The initial value is GL_ZERO.

In RGBA mode, pixels can be drawn using a function that blends the incoming (source) RGBA values with the RGBA values that are already in the frame buffer (the destination values). Blending is initially disabled. Use glEnable and glDisable with argument GL_BLEND to enable and disable blending.

glBlendFunc defines the operation of blending when it is enabled. sfactor specifies which method is used to scale the source color components. dfactor specifies which method is used to scale the destination color components. The possible methods are described in the following table. Each method defines four scale factors, one each for red, green, blue, and alpha. In the table and in subsequent equations, source and destination color components are referred to as (R_s,G_sB_sA_s) and (R_d,G_dB_dA_d). The color specified by glBlendColor is referred to as (R_c,G_cB_cA_c). They are understood to have integer values between 0 and (k_R,k_Gk_Bk_A), where

k_c=2^m_c,-1

and (m_R,m_Gm_Bm_A) is the number of red, green, blue, and alpha bitplanes.

Source and destination scale factors are referred to as (s_R,s_Gs_Bs_A) and (d_R,d_Gd_Bd_A). The scale factors described in the table, denoted (f_R,f_Gf_Bf_A), represent either source or destination factors. All scale factors have range [0,1].

Parameter

(f_R,f_Gf_Bf_A)

GL_ZERO

(0,000)

GL_ONE

(1,111)

GL_SRC_COLOR

(R_s/k_R,G_s/k_GB_s/k_BA_s/k_A)

GL_ONE_MINUS_SRC_COLOR

(1,111)-(R_s/k_R,G_s/k_GB_s/k_BA_s/k_A)

GL_DST_COLOR

(R_d/k_R,G_d/k_GB_d/k_BA_d/k_A)

GL_ONE_MINUS_DST_COLOR

(1,111)-(R_d/k_R,G_d/k_GB_d/k_BA_d/k_A)

GL_SRC_ALPHA

(A_s/k_A,A_s/k_AA_s/k_AA_s/k_A)

GL_ONE_MINUS_SRC_ALPHA

(1,111)-(A_s/k_A,A_s/k_AA_s/k_AA_s/k_A)

GL_DST_ALPHA

(A_d/k_A,A_d/k_AA_d/k_AA_d/k_A)

GL_ONE_MINUS_DST_ALPHA

(1,111)-(A_d/k_A,A_d/k_AA_d/k_AA_d/k_A)

GL_CONSTANT_COLOR

(R_c,G_cB_cA_c)

GL_ONE_MINUS_CONSTANT_COLOR

(1,111)-(R_c,G_cB_cA_c)

GL_CONSTANT_ALPHA

(A_c,A_cA_cA_c)

GL_ONE_MINUS_CONSTANT_ALPHA

(1,111)-(A_c,A_cA_cA_c)

GL_SRC_ALPHA_SATURATE

(i,ii1)

In the table,

i=min⁡(A_s,k_A-A_d)/k_A

To determine the blended RGBA values of a pixel when drawing in RGBA mode, the system uses the following equations:

R_d=min⁡(k_R,R_s⁢s_R+R_d⁢d_R)G_d=min⁡(k_G,G_s⁢s_G+G_d⁢d_G)B_d=min⁡(k_B,B_s⁢s_B+B_d⁢d_B)A_d=min⁡(k_A,A_s⁢s_A+A_d⁢d_A)

Despite the apparent precision of the above equations, blending arithmetic is not exactly specified, because blending operates with imprecise integer color values. However, a blend factor that should be equal to 1 is guaranteed not to modify its multiplicand, and a blend factor equal to 0 reduces its multiplicand to 0. For example, when sfactor is GL_SRC_ALPHA, dfactor is GL_ONE_MINUS_SRC_ALPHA, and A_s is equal to k_A, the equations reduce to simple replacement:

R_d=R_sG_d=G_sB_d=B_sA_d=A_s

GL_INVALID_ENUM is generated if either sfactor or dfactor is not an accepted value.

GL_INVALID_OPERATION is generated if glBlendFunc is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBufferData target size data usage

Creates and initializes a buffer object’s data store.

target

Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.

size

Specifies the size in bytes of the buffer object’s new data store.

data

Specifies a pointer to data that will be copied into the data store for initialization, or NULL if no data is to be copied.

usage

Specifies the expected usage pattern of the data store. The symbolic constant must be GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.

glBufferData creates a new data store for the buffer object currently bound to target. Any pre-existing data store is deleted. The new data store is created with the specified size in bytes and usage. If data is not NULL, the data store is initialized with data from this pointer. In its initial state, the new data store is not mapped, it has a NULL mapped pointer, and its mapped access is GL_READ_WRITE.

usage is a hint to the GL implementation as to how a buffer object’s data store will be accessed. This enables the GL implementation to make more intelligent decisions that may significantly impact buffer object performance. It does not, however, constrain the actual usage of the data store. usage can be broken down into two parts: first, the frequency of access (modification and usage), and second, the nature of that access. The frequency of access may be one of these:

STREAM

The data store contents will be modified once and used at most a few times.

STATIC

The data store contents will be modified once and used many times.

DYNAMIC

The data store contents will be modified repeatedly and used many times.

The nature of access may be one of these:

DRAW

The data store contents are modified by the application, and used as the source for GL drawing and image specification commands.

READ

The data store contents are modified by reading data from the GL, and used to return that data when queried by the application.

COPY

The data store contents are modified by reading data from the GL, and used as the source for GL drawing and image specification commands.

GL_INVALID_ENUM is generated if target is not GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.

GL_INVALID_ENUM is generated if usage is not GL_STREAM_DRAW, GL_STREAM_READ, GL_STREAM_COPY, GL_STATIC_DRAW, GL_STATIC_READ, GL_STATIC_COPY, GL_DYNAMIC_DRAW, GL_DYNAMIC_READ, or GL_DYNAMIC_COPY.

GL_INVALID_VALUE is generated if size is negative.

GL_INVALID_OPERATION is generated if the reserved buffer object name 0 is bound to target.

GL_OUT_OF_MEMORY is generated if the GL is unable to create a data store with the specified size.

GL_INVALID_OPERATION is generated if glBufferData is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glBufferSubData target offset size data

Updates a subset of a buffer object’s data store.

target

Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.

offset

Specifies the offset into the buffer object’s data store where data replacement will begin, measured in bytes.

size

Specifies the size in bytes of the data store region being replaced.

data

Specifies a pointer to the new data that will be copied into the data store.

glBufferSubData redefines some or all of the data store for the buffer object currently bound to target. Data starting at byte offset offset and extending for size bytes is copied to the data store from the memory pointed to by data. An error is thrown if offset and size together define a range beyond the bounds of the buffer object’s data store.

GL_INVALID_ENUM is generated if target is not GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.

GL_INVALID_VALUE is generated if offset or size is negative, or if together they define a region of memory that extends beyond the buffer object’s allocated data store.

GL_INVALID_OPERATION is generated if the reserved buffer object name 0 is bound to target.

GL_INVALID_OPERATION is generated if the buffer object being updated is mapped.

GL_INVALID_OPERATION is generated if glBufferSubData is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCallLists n type lists

Execute a list of display lists.

n

Specifies the number of display lists to be executed.

type

Specifies the type of values in lists. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, and GL_4_BYTES are accepted.

lists

Specifies the address of an array of name offsets in the display list. The pointer type is void because the offsets can be bytes, shorts, ints, or floats, depending on the value of type.

glCallLists causes each display list in the list of names passed as lists to be executed. As a result, the commands saved in each display list are executed in order, just as if they were called without using a display list. Names of display lists that have not been defined are ignored.

glCallLists provides an efficient means for executing more than one display list. type allows lists with various name formats to be accepted. The formats are as follows:

GL_BYTE

lists is treated as an array of signed bytes, each in the range -128 through 127.

GL_UNSIGNED_BYTE

lists is treated as an array of unsigned bytes, each in the range 0 through 255.

GL_SHORT

lists is treated as an array of signed two-byte integers, each in the range -32768 through 32767.

GL_UNSIGNED_SHORT

lists is treated as an array of unsigned two-byte integers, each in the range 0 through 65535.

GL_INT

lists is treated as an array of signed four-byte integers.

GL_UNSIGNED_INT

lists is treated as an array of unsigned four-byte integers.

GL_FLOAT

lists is treated as an array of four-byte floating-point values.

GL_2_BYTES

lists is treated as an array of unsigned bytes. Each pair of bytes specifies a single display-list name. The value of the pair is computed as 256 times the unsigned value of the first byte plus the unsigned value of the second byte.

GL_3_BYTES

lists is treated as an array of unsigned bytes. Each triplet of bytes specifies a single display-list name. The value of the triplet is computed as 65536 times the unsigned value of the first byte, plus 256 times the unsigned value of the second byte, plus the unsigned value of the third byte.

GL_4_BYTES

lists is treated as an array of unsigned bytes. Each quadruplet of bytes specifies a single display-list name. The value of the quadruplet is computed as 16777216 times the unsigned value of the first byte, plus 65536 times the unsigned value of the second byte, plus 256 times the unsigned value of the third byte, plus the unsigned value of the fourth byte.

The list of display-list names is not null-terminated. Rather, n specifies how many names are to be taken from lists.

An additional level of indirection is made available with the glListBase command, which specifies an unsigned offset that is added to each display-list name specified in lists before that display list is executed.

glCallLists can appear inside a display list. To avoid the possibility of infinite recursion resulting from display lists calling one another, a limit is placed on the nesting level of display lists during display-list execution. This limit must be at least 64, and it depends on the implementation.

GL state is not saved and restored across a call to glCallLists. Thus, changes made to GL state during the execution of the display lists remain after execution is completed. Use glPushAttrib, glPopAttrib, glPushMatrix, and glPopMatrix to preserve GL state across glCallLists calls.

GL_INVALID_VALUE is generated if n is negative.

GL_INVALID_ENUM is generated if type is not one of GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, GL_2_BYTES, GL_3_BYTES, GL_4_BYTES.

Function: void glCallList list

Execute a display list.

list

Specifies the integer name of the display list to be executed.

glCallList causes the named display list to be executed. The commands saved in the display list are executed in order, just as if they were called without using a display list. If list has not been defined as a display list, glCallList is ignored.

glCallList can appear inside a display list. To avoid the possibility of infinite recursion resulting from display lists calling one another, a limit is placed on the nesting level of display lists during display-list execution. This limit is at least 64, and it depends on the implementation.

GL state is not saved and restored across a call to glCallList. Thus, changes made to GL state during the execution of a display list remain after execution of the display list is completed. Use glPushAttrib, glPopAttrib, glPushMatrix, and glPopMatrix to preserve GL state across glCallList calls.

Function: void glClearAccum red green blue alpha

Specify clear values for the accumulation buffer.

red
green
blue
alpha

Specify the red, green, blue, and alpha values used when the accumulation buffer is cleared. The initial values are all 0.

glClearAccum specifies the red, green, blue, and alpha values used by glClear to clear the accumulation buffer.

Values specified by glClearAccum are clamped to the range [-1,1].

GL_INVALID_OPERATION is generated if glClearAccum is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glClearColor red green blue alpha

Specify clear values for the color buffers.

red
green
blue
alpha

Specify the red, green, blue, and alpha values used when the color buffers are cleared. The initial values are all 0.

glClearColor specifies the red, green, blue, and alpha values used by glClear to clear the color buffers. Values specified by glClearColor are clamped to the range [0,1].

GL_INVALID_OPERATION is generated if glClearColor is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glClearDepth depth

Specify the clear value for the depth buffer.

depth

Specifies the depth value used when the depth buffer is cleared. The initial value is 1.

glClearDepth specifies the depth value used by glClear to clear the depth buffer. Values specified by glClearDepth are clamped to the range [0,1].

GL_INVALID_OPERATION is generated if glClearDepth is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glClearIndex c

Specify the clear value for the color index buffers.

c

Specifies the index used when the color index buffers are cleared. The initial value is 0.

glClearIndex specifies the index used by glClear to clear the color index buffers. c is not clamped. Rather, c is converted to a fixed-point value with unspecified precision to the right of the binary point. The integer part of this value is then masked with 2^m-1, where m is the number of bits in a color index stored in the frame buffer.

GL_INVALID_OPERATION is generated if glClearIndex is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glClearStencil s

Specify the clear value for the stencil buffer.

s

Specifies the index used when the stencil buffer is cleared. The initial value is 0.

glClearStencil specifies the index used by glClear to clear the stencil buffer. s is masked with 2^m-1, where m is the number of bits in the stencil buffer.

GL_INVALID_OPERATION is generated if glClearStencil is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glClear mask

Clear buffers to preset values.

mask

Bitwise OR of masks that indicate the buffers to be cleared. The four masks are GL_COLOR_BUFFER_BIT, GL_DEPTH_BUFFER_BIT, GL_ACCUM_BUFFER_BIT, and GL_STENCIL_BUFFER_BIT.

glClear sets the bitplane area of the window to values previously selected by glClearColor, glClearIndex, glClearDepth, glClearStencil, and glClearAccum. Multiple color buffers can be cleared simultaneously by selecting more than one buffer at a time using glDrawBuffer.

The pixel ownership test, the scissor test, dithering, and the buffer writemasks affect the operation of glClear. The scissor box bounds the cleared region. Alpha function, blend function, logical operation, stenciling, texture mapping, and depth-buffering are ignored by glClear.

glClear takes a single argument that is the bitwise OR of several values indicating which buffer is to be cleared.

The values are as follows:

GL_COLOR_BUFFER_BIT

Indicates the buffers currently enabled for color writing.

GL_DEPTH_BUFFER_BIT

Indicates the depth buffer.

GL_ACCUM_BUFFER_BIT

Indicates the accumulation buffer.

GL_STENCIL_BUFFER_BIT

Indicates the stencil buffer.

The value to which each buffer is cleared depends on the setting of the clear value for that buffer.

GL_INVALID_VALUE is generated if any bit other than the four defined bits is set in mask.

GL_INVALID_OPERATION is generated if glClear is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glClientActiveTexture texture

Select active texture unit.

texture

Specifies which texture unit to make active. The number of texture units is implementation dependent, but must be at least two. texture must be one of GL_TEXTUREi, where i ranges from 0 to the value of GL_MAX_TEXTURE_COORDS - 1, which is an implementation-dependent value. The initial value is GL_TEXTURE0.

glClientActiveTexture selects the vertex array client state parameters to be modified by glTexCoordPointer, and enabled or disabled with glEnableClientState or glDisableClientState, respectively, when called with a parameter of GL_TEXTURE_COORD_ARRAY.

GL_INVALID_ENUM is generated if texture is not one of GL_TEXTUREi, where i ranges from 0 to the value of GL_MAX_TEXTURE_COORDS - 1.

Function: void glClipPlane plane equation

Specify a plane against which all geometry is clipped.

plane

Specifies which clipping plane is being positioned. Symbolic names of the form GL_CLIP_PLANEi, where i is an integer between 0 and GL_MAX_CLIP_PLANES-1, are accepted.

equation

Specifies the address of an array of four double-precision floating-point values. These values are interpreted as a plane equation.

Geometry is always clipped against the boundaries of a six-plane frustum in x, y, and z. glClipPlane allows the specification of additional planes, not necessarily perpendicular to the x, y, or z axis, against which all geometry is clipped. To determine the maximum number of additional clipping planes, call glGetIntegerv with argument GL_MAX_CLIP_PLANES. All implementations support at least six such clipping planes. Because the resulting clipping region is the intersection of the defined half-spaces, it is always convex.

glClipPlane specifies a half-space using a four-component plane equation. When glClipPlane is called, equation is transformed by the inverse of the modelview matrix and stored in the resulting eye coordinates. Subsequent changes to the modelview matrix have no effect on the stored plane-equation components. If the dot product of the eye coordinates of a vertex with the stored plane equation components is positive or zero, the vertex is in with respect to that clipping plane. Otherwise, it is out.

To enable and disable clipping planes, call glEnable and glDisable with the argument GL_CLIP_PLANEi, where i is the plane number.

All clipping planes are initially defined as (0, 0, 0, 0) in eye coordinates and are disabled.

GL_INVALID_ENUM is generated if plane is not an accepted value.

GL_INVALID_OPERATION is generated if glClipPlane is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glColorMask red green blue alpha

Enable and disable writing of frame buffer color components.

red
green
blue
alpha

Specify whether red, green, blue, and alpha can or cannot be written into the frame buffer. The initial values are all GL_TRUE, indicating that the color components can be written.

glColorMask specifies whether the individual color components in the frame buffer can or cannot be written. If red is GL_FALSE, for example, no change is made to the red component of any pixel in any of the color buffers, regardless of the drawing operation attempted.

Changes to individual bits of components cannot be controlled. Rather, changes are either enabled or disabled for entire color components.

GL_INVALID_OPERATION is generated if glColorMask is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glColorMaterial face mode

Cause a material color to track the current color.

face

Specifies whether front, back, or both front and back material parameters should track the current color. Accepted values are GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK. The initial value is GL_FRONT_AND_BACK.

mode

Specifies which of several material parameters track the current color. Accepted values are GL_EMISSION, GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, and GL_AMBIENT_AND_DIFFUSE. The initial value is GL_AMBIENT_AND_DIFFUSE.

glColorMaterial specifies which material parameters track the current color. When GL_COLOR_MATERIAL is enabled, the material parameter or parameters specified by mode, of the material or materials specified by face, track the current color at all times.

To enable and disable GL_COLOR_MATERIAL, call glEnable and glDisable with argument GL_COLOR_MATERIAL. GL_COLOR_MATERIAL is initially disabled.

GL_INVALID_ENUM is generated if face or mode is not an accepted value.

GL_INVALID_OPERATION is generated if glColorMaterial is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glColorPointer size type stride pointer

Define an array of colors.

size

Specifies the number of components per color. Must be 3 or 4. The initial value is 4.

type

Specifies the data type of each color component in the array. Symbolic constants GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE are accepted. The initial value is GL_FLOAT.

stride

Specifies the byte offset between consecutive colors. If stride is 0, the colors are understood to be tightly packed in the array. The initial value is 0.

pointer

Specifies a pointer to the first component of the first color element in the array. The initial value is 0.

glColorPointer specifies the location and data format of an array of color components to use when rendering. size specifies the number of components per color, and must be 3 or 4. type specifies the data type of each color component, and stride specifies the byte stride from one color to the next, allowing vertices and attributes to be packed into a single array or stored in separate arrays. (Single-array storage may be more efficient on some implementations; see glInterleavedArrays.)

If a non-zero named buffer object is bound to the GL_ARRAY_BUFFER target (see glBindBuffer) while a color array is specified, pointer is treated as a byte offset into the buffer object’s data store. Also, the buffer object binding (GL_ARRAY_BUFFER_BINDING) is saved as color vertex array client-side state (GL_COLOR_ARRAY_BUFFER_BINDING).

When a color array is specified, size, type, stride, and pointer are saved as client-side state, in addition to the current vertex array buffer object binding.

To enable and disable the color array, call glEnableClientState and glDisableClientState with the argument GL_COLOR_ARRAY. If enabled, the color array is used when glDrawArrays, glMultiDrawArrays, glDrawElements, glMultiDrawElements, glDrawRangeElements, or glArrayElement is called.

GL_INVALID_VALUE is generated if size is not 3 or 4.

GL_INVALID_ENUM is generated if type is not an accepted value.

GL_INVALID_VALUE is generated if stride is negative.

Function: void glColorSubTable target start count format type data

Respecify a portion of a color table.

target

Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.

start

The starting index of the portion of the color table to be replaced.

count

The number of table entries to replace.

format

The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.

type

The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.

data

Pointer to a one-dimensional array of pixel data that is processed to replace the specified region of the color table.

glColorSubTable is used to respecify a contiguous portion of a color table previously defined using glColorTable. The pixels referenced by data replace the portion of the existing table from indices start to start+count-1, inclusive. This region may not include any entries outside the range of the color table as it was originally specified. It is not an error to specify a subtexture with width of 0, but such a specification has no effect.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a portion of a color table is respecified, data is treated as a byte offset into the buffer object’s data store.

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_ENUM is generated if format is not one of the allowable values.

GL_INVALID_ENUM is generated if type is not one of the allowable values.

GL_INVALID_VALUE is generated if start+count>width.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glColorSubTable is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glColorTableParameterfv target pname params
Function: void glColorTableParameteriv target pname params

Set color lookup table parameters.

target

The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.

pname

The symbolic name of a texture color lookup table parameter. Must be one of GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS.

params

A pointer to an array where the values of the parameters are stored.

glColorTableParameter is used to specify the scale factors and bias terms applied to color components when they are loaded into a color table. target indicates which color table the scale and bias terms apply to; it must be set to GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.

pname must be GL_COLOR_TABLE_SCALE to set the scale factors. In this case, params points to an array of four values, which are the scale factors for red, green, blue, and alpha, in that order.

pname must be GL_COLOR_TABLE_BIAS to set the bias terms. In this case, params points to an array of four values, which are the bias terms for red, green, blue, and alpha, in that order.

The color tables themselves are specified by calling glColorTable.

GL_INVALID_ENUM is generated if target or pname is not an acceptable value.

GL_INVALID_OPERATION is generated if glColorTableParameter is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glColorTable target internalformat width format type data

Define a color lookup table.

target

Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.

internalformat

The internal format of the color table. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, and GL_RGBA16.

width

The number of entries in the color lookup table specified by data.

format

The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.

type

The type of the pixel data in data. The allowable values are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.

data

Pointer to a one-dimensional array of pixel data that is processed to build the color table.

glColorTable may be used in two ways: to test the actual size and color resolution of a lookup table given a particular set of parameters, or to load the contents of a color lookup table. Use the targets GL_PROXY_* for the first case and the other targets for the second case.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a color table is specified, data is treated as a byte offset into the buffer object’s data store.

If target is GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE, glColorTable builds a color lookup table from an array of pixels. The pixel array specified by width, format, type, and data is extracted from memory and processed just as if glDrawPixels were called, but processing stops after the final expansion to RGBA is completed.

The four scale parameters and the four bias parameters that are defined for the table are then used to scale and bias the R, G, B, and A components of each pixel. (Use glColorTableParameter to set these scale and bias parameters.)

Next, the R, G, B, and A values are clamped to the range [0,1]. Each pixel is then converted to the internal format specified by internalformat. This conversion simply maps the component values of the pixel (R, G, B, and A) to the values included in the internal format (red, green, blue, alpha, luminance, and intensity). The mapping is as follows:

Internal Format

Red, Green, Blue, Alpha, Luminance, Intensity

GL_ALPHA

, , , A , ,

GL_LUMINANCE

, , , , R ,

GL_LUMINANCE_ALPHA

, , , A , R ,

GL_INTENSITY

, , , , , R

GL_RGB

R , G , B , , ,

GL_RGBA

R , G , B , A , ,

Finally, the red, green, blue, alpha, luminance, and/or intensity components of the resulting pixels are stored in the color table. They form a one-dimensional table with indices in the range [0,width-1].

If target is GL_PROXY_*, glColorTable recomputes and stores the values of the proxy color table’s state variables GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, and GL_COLOR_TABLE_INTENSITY_SIZE. There is no effect on the image or state of any actual color table. If the specified color table is too large to be supported, then all the proxy state variables listed above are set to zero. Otherwise, the color table could be supported by glColorTable using the corresponding non-proxy target, and the proxy state variables are set as if that target were being defined.

The proxy state variables can be retrieved by calling glGetColorTableParameter with a target of GL_PROXY_*. This allows the application to decide if a particular glColorTable command would succeed, and to determine what the resulting color table attributes would be.

If a color table is enabled, and its width is non-zero, then its contents are used to replace a subset of the components of each RGBA pixel group, based on the internal format of the table.

Each pixel group has color components (R, G, B, A) that are in the range [0.0,1.0]. The color components are rescaled to the size of the color lookup table to form an index. Then a subset of the components based on the internal format of the table are replaced by the table entry selected by that index. If the color components and contents of the table are represented as follows:

Representation

Meaning

r

Table index computed from R

g

Table index computed from G

b

Table index computed from B

a

Table index computed from A

L[i]

Luminance value at table index i

I[i]

Intensity value at table index i

R[i]

Red value at table index i

G[i]

Green value at table index i

B[i]

Blue value at table index i

A[i]

Alpha value at table index i

then the result of color table lookup is as follows:

Resulting Texture Components

Table Internal Format

R, G, B, A

GL_ALPHA

R, G, B, A[a]

GL_LUMINANCE

L[r], L[g], L[b], At

GL_LUMINANCE_ALPHA

L[r], L[g], L[b], A[a]

GL_INTENSITY

I[r], I[g], I[b], I[a]

GL_RGB

R[r], G[g], B[b], A

GL_RGBA

R[r], G[g], B[b], A[a]

When GL_COLOR_TABLE is enabled, the colors resulting from the pixel map operation (if it is enabled) are mapped by the color lookup table before being passed to the convolution operation. The colors resulting from the convolution operation are modified by the post convolution color lookup table when GL_POST_CONVOLUTION_COLOR_TABLE is enabled. These modified colors are then sent to the color matrix operation. Finally, if GL_POST_COLOR_MATRIX_COLOR_TABLE is enabled, the colors resulting from the color matrix operation are mapped by the post color matrix color lookup table before being used by the histogram operation.

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_ENUM is generated if internalformat is not one of the allowable values.

GL_INVALID_ENUM is generated if format is not one of the allowable values.

GL_INVALID_ENUM is generated if type is not one of the allowable values.

GL_INVALID_VALUE is generated if width is less than zero.

GL_TABLE_TOO_LARGE is generated if the requested color table is too large to be supported by the implementation, and target is not a GL_PROXY_* target.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glColorTable is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glColor3b red green blue
Function: void glColor3s red green blue
Function: void glColor3i red green blue
Function: void glColor3f red green blue
Function: void glColor3d red green blue
Function: void glColor3ub red green blue
Function: void glColor3us red green blue
Function: void glColor3ui red green blue
Function: void glColor4b red green blue alpha
Function: void glColor4s red green blue alpha
Function: void glColor4i red green blue alpha
Function: void glColor4f red green blue alpha
Function: void glColor4d red green blue alpha
Function: void glColor4ub red green blue alpha
Function: void glColor4us red green blue alpha
Function: void glColor4ui red green blue alpha
Function: void glColor3bv v
Function: void glColor3sv v
Function: void glColor3iv v
Function: void glColor3fv v
Function: void glColor3dv v
Function: void glColor3ubv v
Function: void glColor3usv v
Function: void glColor3uiv v
Function: void glColor4bv v
Function: void glColor4sv v
Function: void glColor4iv v
Function: void glColor4fv v
Function: void glColor4dv v
Function: void glColor4ubv v
Function: void glColor4usv v
Function: void glColor4uiv v

Set the current color.

red
green
blue

Specify new red, green, and blue values for the current color.

alpha

Specifies a new alpha value for the current color. Included only in the four-argument glColor4 commands.

The GL stores both a current single-valued color index and a current four-valued RGBA color. glColor sets a new four-valued RGBA color. glColor has two major variants: glColor3 and glColor4. glColor3 variants specify new red, green, and blue values explicitly and set the current alpha value to 1.0 (full intensity) implicitly. glColor4 variants specify all four color components explicitly.

glColor3b, glColor4b, glColor3s, glColor4s, glColor3i, and glColor4i take three or four signed byte, short, or long integers as arguments. When v is appended to the name, the color commands can take a pointer to an array of such values.

Current color values are stored in floating-point format, with unspecified mantissa and exponent sizes. Unsigned integer color components, when specified, are linearly mapped to floating-point values such that the largest representable value maps to 1.0 (full intensity), and 0 maps to 0.0 (zero intensity). Signed integer color components, when specified, are linearly mapped to floating-point values such that the most positive representable value maps to 1.0, and the most negative representable value maps to -1.0. (Note that this mapping does not convert 0 precisely to 0.0.) Floating-point values are mapped directly.

Neither floating-point nor signed integer values are clamped to the range [0,1] before the current color is updated. However, color components are clamped to this range before they are interpolated or written into a color buffer.

Function: void glCompileShader shader

Compiles a shader object.

shader

Specifies the shader object to be compiled.

glCompileShader compiles the source code strings that have been stored in the shader object specified by shader.

The compilation status will be stored as part of the shader object’s state. This value will be set to GL_TRUE if the shader was compiled without errors and is ready for use, and GL_FALSE otherwise. It can be queried by calling glGetShader with arguments shader and GL_COMPILE_STATUS.

Compilation of a shader can fail for a number of reasons as specified by the OpenGL Shading Language Specification. Whether or not the compilation was successful, information about the compilation can be obtained from the shader object’s information log by calling glGetShaderInfoLog.

GL_INVALID_VALUE is generated if shader is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if shader is not a shader object.

GL_INVALID_OPERATION is generated if glCompileShader is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCompressedTexImage1D target level internalformat width border imageSize data

Specify a one-dimensional texture image in a compressed format.

target

Specifies the target texture. Must be GL_TEXTURE_1D or GL_PROXY_TEXTURE_1D.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

internalformat

Specifies the format of the compressed image data stored at address data.

width

Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2^n+2⁡(border,) for some integer n. All implementations support texture images that are at least 64 texels wide. The height of the 1D texture image is 1.

border

Specifies the width of the border. Must be either 0 or 1.

imageSize

Specifies the number of unsigned bytes of image data starting at the address specified by data.

data

Specifies a pointer to the compressed image data in memory.

Texturing maps a portion of a specified texture image onto each graphical primitive for which texturing is enabled. To enable and disable one-dimensional texturing, call glEnable and glDisable with argument GL_TEXTURE_1D.

glCompressedTexImage1D loads a previously defined, and retrieved, compressed one-dimensional texture image if target is GL_TEXTURE_1D (see glTexImage1D).

If target is GL_PROXY_TEXTURE_1D, no data is read from data, but all of the texture image state is recalculated, checked for consistency, and checked against the implementation’s capabilities. If the implementation cannot handle a texture of the requested texture size, it sets all of the image state to 0, but does not generate an error (see glGetError). To query for an entire mipmap array, use an image array level greater than or equal to 1.

internalformat must be extension-specified compressed-texture format. When a texture is loaded with glTexImage1D using a generic compressed texture format (e.g., GL_COMPRESSED_RGB) the GL selects from one of its extensions supporting compressed textures. In order to load the compressed texture image using glCompressedTexImage1D, query the compressed texture image’s size and format using glGetTexLevelParameter.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a texture image is specified, data is treated as a byte offset into the buffer object’s data store.

GL_INVALID_ENUM is generated if internalformat is one of the generic compressed internal formats: GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, or GL_COMPRESSED_RGBA.

GL_INVALID_VALUE is generated if imageSize is not consistent with the format, dimensions, and contents of the specified compressed image data.

GL_INVALID_OPERATION is generated if parameter combinations are not supported by the specific compressed internal format as specified in the specific texture compression extension.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if glCompressedTexImage1D is executed between the execution of glBegin and the corresponding execution of glEnd.

Undefined results, including abnormal program termination, are generated if data is not encoded in a manner consistent with the extension specification defining the internal compression format.

Function: void glCompressedTexImage2D target level internalformat width height border imageSize data

Specify a two-dimensional texture image in a compressed format.

target

Specifies the target texture. Must be GL_TEXTURE_2D, GL_PROXY_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

internalformat

Specifies the format of the compressed image data stored at address data.

width

Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2^n+2⁡(border,) for some integer n. All implementations support 2D texture images that are at least 64 texels wide and cube-mapped texture images that are at least 16 texels wide.

height

Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be Must be 2^n+2⁡(border,) for some integer n. All implementations support 2D texture images that are at least 64 texels high and cube-mapped texture images that are at least 16 texels high.

border

Specifies the width of the border. Must be either 0 or 1.

imageSize

Specifies the number of unsigned bytes of image data starting at the address specified by data.

data

Specifies a pointer to the compressed image data in memory.

Texturing maps a portion of a specified texture image onto each graphical primitive for which texturing is enabled. To enable and disable two-dimensional texturing, call glEnable and glDisable with argument GL_TEXTURE_2D. To enable and disable texturing using cube-mapped textures, call glEnable and glDisable with argument GL_TEXTURE_CUBE_MAP.

glCompressedTexImage2D loads a previously defined, and retrieved, compressed two-dimensional texture image if target is GL_TEXTURE_2D (see glTexImage2D).

If target is GL_PROXY_TEXTURE_2D, no data is read from data, but all of the texture image state is recalculated, checked for consistency, and checked against the implementation’s capabilities. If the implementation cannot handle a texture of the requested texture size, it sets all of the image state to 0, but does not generate an error (see glGetError). To query for an entire mipmap array, use an image array level greater than or equal to 1.

internalformat must be an extension-specified compressed-texture format. When a texture is loaded with glTexImage2D using a generic compressed texture format (e.g., GL_COMPRESSED_RGB), the GL selects from one of its extensions supporting compressed textures. In order to load the compressed texture image using glCompressedTexImage2D, query the compressed texture image’s size and format using glGetTexLevelParameter.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a texture image is specified, data is treated as a byte offset into the buffer object’s data store.

GL_INVALID_ENUM is generated if internalformat is one of the generic compressed internal formats: GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, or GL_COMPRESSED_RGBA.

GL_INVALID_VALUE is generated if imageSize is not consistent with the format, dimensions, and contents of the specified compressed image data.

GL_INVALID_OPERATION is generated if parameter combinations are not supported by the specific compressed internal format as specified in the specific texture compression extension.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if glCompressedTexImage2D is executed between the execution of glBegin and the corresponding execution of glEnd.

Undefined results, including abnormal program termination, are generated if data is not encoded in a manner consistent with the extension specification defining the internal compression format.

Function: void glCompressedTexImage3D target level internalformat width height depth border imageSize data

Specify a three-dimensional texture image in a compressed format.

target

Specifies the target texture. Must be GL_TEXTURE_3D or GL_PROXY_TEXTURE_3D.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

internalformat

Specifies the format of the compressed image data stored at address data.

width

Specifies the width of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2^n+2⁡(border,) for some integer n. All implementations support 3D texture images that are at least 16 texels wide.

height

Specifies the height of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2^n+2⁡(border,) for some integer n. All implementations support 3D texture images that are at least 16 texels high.

depth

Specifies the depth of the texture image including the border if any. If the GL version does not support non-power-of-two sizes, this value must be 2^n+2⁡(border,) for some integer n. All implementations support 3D texture images that are at least 16 texels deep.

border

Specifies the width of the border. Must be either 0 or 1.

imageSize

Specifies the number of unsigned bytes of image data starting at the address specified by data.

data

Specifies a pointer to the compressed image data in memory.

Texturing maps a portion of a specified texture image onto each graphical primitive for which texturing is enabled. To enable and disable three-dimensional texturing, call glEnable and glDisable with argument GL_TEXTURE_3D.

glCompressedTexImage3D loads a previously defined, and retrieved, compressed three-dimensional texture image if target is GL_TEXTURE_3D (see glTexImage3D).

If target is GL_PROXY_TEXTURE_3D, no data is read from data, but all of the texture image state is recalculated, checked for consistency, and checked against the implementation’s capabilities. If the implementation cannot handle a texture of the requested texture size, it sets all of the image state to 0, but does not generate an error (see glGetError). To query for an entire mipmap array, use an image array level greater than or equal to 1.

internalformat must be an extension-specified compressed-texture format. When a texture is loaded with glTexImage2D using a generic compressed texture format (e.g., GL_COMPRESSED_RGB), the GL selects from one of its extensions supporting compressed textures. In order to load the compressed texture image using glCompressedTexImage3D, query the compressed texture image’s size and format using glGetTexLevelParameter.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a texture image is specified, data is treated as a byte offset into the buffer object’s data store.

GL_INVALID_ENUM is generated if internalformat is one of the generic compressed internal formats: GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, or GL_COMPRESSED_RGBA.

GL_INVALID_VALUE is generated if imageSize is not consistent with the format, dimensions, and contents of the specified compressed image data.

GL_INVALID_OPERATION is generated if parameter combinations are not supported by the specific compressed internal format as specified in the specific texture compression extension.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if glCompressedTexImage3D is executed between the execution of glBegin and the corresponding execution of glEnd.

Undefined results, including abnormal program termination, are generated if data is not encoded in a manner consistent with the extension specification defining the internal compression format.

Function: void glCompressedTexSubImage1D target level xoffset width format imageSize data

Specify a one-dimensional texture subimage in a compressed format.

target

Specifies the target texture. Must be GL_TEXTURE_1D.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

xoffset

Specifies a texel offset in the x direction within the texture array.

width

Specifies the width of the texture subimage.

format

Specifies the format of the compressed image data stored at address data.

imageSize

Specifies the number of unsigned bytes of image data starting at the address specified by data.

data

Specifies a pointer to the compressed image data in memory.

Texturing maps a portion of a specified texture image onto each graphical primitive for which texturing is enabled. To enable and disable one-dimensional texturing, call glEnable and glDisable with argument GL_TEXTURE_1D.

glCompressedTexSubImage1D redefines a contiguous subregion of an existing one-dimensional texture image. The texels referenced by data replace the portion of the existing texture array with x indices xoffset and xoffset+width-1, inclusive. This region may not include any texels outside the range of the texture array as it was originally specified. It is not an error to specify a subtexture with width of 0, but such a specification has no effect.

format must be an extension-specified compressed-texture format. The format of the compressed texture image is selected by the GL implementation that compressed it (see glTexImage1D), and should be queried at the time the texture was compressed with glGetTexLevelParameter.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a texture image is specified, data is treated as a byte offset into the buffer object’s data store.

GL_INVALID_ENUM is generated if format is one of these generic compressed internal formats: GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_COMPRESSED_SLUMINANCE, GL_COMPRESSED_SLUMINANCE_ALPHA, GL_COMPRESSED_SRGB, GL_COMPRESSED_SRGBA, or GL_COMPRESSED_SRGB_ALPHA.

GL_INVALID_VALUE is generated if imageSize is not consistent with the format, dimensions, and contents of the specified compressed image data.

GL_INVALID_OPERATION is generated if parameter combinations are not supported by the specific compressed internal format as specified in the specific texture compression extension.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if glCompressedTexSubImage1D is executed between the execution of glBegin and the corresponding execution of glEnd.

Undefined results, including abnormal program termination, are generated if data is not encoded in a manner consistent with the extension specification defining the internal compression format.

Function: void glCompressedTexSubImage2D target level xoffset yoffset width height format imageSize data

Specify a two-dimensional texture subimage in a compressed format.

target

Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

xoffset

Specifies a texel offset in the x direction within the texture array.

yoffset

Specifies a texel offset in the y direction within the texture array.

width

Specifies the width of the texture subimage.

height

Specifies the height of the texture subimage.

format

Specifies the format of the compressed image data stored at address data.

imageSize

Specifies the number of unsigned bytes of image data starting at the address specified by data.

data

Specifies a pointer to the compressed image data in memory.

Texturing maps a portion of a specified texture image onto each graphical primitive for which texturing is enabled. To enable and disable two-dimensional texturing, call glEnable and glDisable with argument GL_TEXTURE_2D. To enable and disable texturing using cube-mapped texture, call glEnable and glDisable with argument GL_TEXTURE_CUBE_MAP.

glCompressedTexSubImage2D redefines a contiguous subregion of an existing two-dimensional texture image. The texels referenced by data replace the portion of the existing texture array with x indices xoffset and xoffset+width-1, and the y indices yoffset and yoffset+height-1, inclusive. This region may not include any texels outside the range of the texture array as it was originally specified. It is not an error to specify a subtexture with width of 0, but such a specification has no effect.

format must be an extension-specified compressed-texture format. The format of the compressed texture image is selected by the GL implementation that compressed it (see glTexImage2D) and should be queried at the time the texture was compressed with glGetTexLevelParameter.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a texture image is specified, data is treated as a byte offset into the buffer object’s data store.

GL_INVALID_ENUM is generated if format is one of these generic compressed internal formats: GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_COMPRESSED_SLUMINANCE, GL_COMPRESSED_SLUMINANCE_ALPHA, GL_COMPRESSED_SRGB, GL_COMPRESSED_SRGBA, or GL_COMPRESSED_SRGB_ALPHA.

GL_INVALID_VALUE is generated if imageSize is not consistent with the format, dimensions, and contents of the specified compressed image data.

GL_INVALID_OPERATION is generated if parameter combinations are not supported by the specific compressed internal format as specified in the specific texture compression extension.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if glCompressedTexSubImage2D is executed between the execution of glBegin and the corresponding execution of glEnd.

Undefined results, including abnormal program termination, are generated if data is not encoded in a manner consistent with the extension specification defining the internal compression format.

Function: void glCompressedTexSubImage3D target level xoffset yoffset zoffset width height depth format imageSize data

Specify a three-dimensional texture subimage in a compressed format.

target

Specifies the target texture. Must be GL_TEXTURE_3D.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

xoffset

Specifies a texel offset in the x direction within the texture array.

yoffset

Specifies a texel offset in the y direction within the texture array.

width

Specifies the width of the texture subimage.

height

Specifies the height of the texture subimage.

depth

Specifies the depth of the texture subimage.

format

Specifies the format of the compressed image data stored at address data.

imageSize

Specifies the number of unsigned bytes of image data starting at the address specified by data.

data

Specifies a pointer to the compressed image data in memory.

Texturing maps a portion of a specified texture image onto each graphical primitive for which texturing is enabled. To enable and disable three-dimensional texturing, call glEnable and glDisable with argument GL_TEXTURE_3D.

glCompressedTexSubImage3D redefines a contiguous subregion of an existing three-dimensional texture image. The texels referenced by data replace the portion of the existing texture array with x indices xoffset and xoffset+width-1, and the y indices yoffset and yoffset+height-1, and the z indices zoffset and zoffset+depth-1, inclusive. This region may not include any texels outside the range of the texture array as it was originally specified. It is not an error to specify a subtexture with width of 0, but such a specification has no effect.

format must be an extension-specified compressed-texture format. The format of the compressed texture image is selected by the GL implementation that compressed it (see glTexImage3D) and should be queried at the time the texture was compressed with glGetTexLevelParameter.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a texture image is specified, data is treated as a byte offset into the buffer object’s data store.

GL_INVALID_ENUM is generated if format is one of these generic compressed internal formats: GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_COMPRESSED_SLUMINANCE, GL_COMPRESSED_SLUMINANCE_ALPHA, GL_COMPRESSED_SRGB, GL_COMPRESSED_SRGBA, or GL_COMPRESSED_SRGB_ALPHA.

GL_INVALID_VALUE is generated if imageSize is not consistent with the format, dimensions, and contents of the specified compressed image data.

GL_INVALID_OPERATION is generated if parameter combinations are not supported by the specific compressed internal format as specified in the specific texture compression extension.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if glCompressedTexSubImage3D is executed between the execution of glBegin and the corresponding execution of glEnd.

Undefined results, including abnormal program termination, are generated if data is not encoded in a manner consistent with the extension specification defining the internal compression format.

Function: void glConvolutionFilter1D target internalformat width format type data

Define a one-dimensional convolution filter.

target

Must be GL_CONVOLUTION_1D.

internalformat

The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.

width

The width of the pixel array referenced by data.

format

The format of the pixel data in data. The allowable values are GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_INTENSITY, GL_RGB, and GL_RGBA.

type

The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

data

Pointer to a one-dimensional array of pixel data that is processed to build the convolution filter kernel.

glConvolutionFilter1D builds a one-dimensional convolution filter kernel from an array of pixels.

The pixel array specified by width, format, type, and data is extracted from memory and processed just as if glDrawPixels were called, but processing stops after the final expansion to RGBA is completed.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a convolution filter is specified, data is treated as a byte offset into the buffer object’s data store.

The R, G, B, and A components of each pixel are next scaled by the four 1D GL_CONVOLUTION_FILTER_SCALE parameters and biased by the four 1D GL_CONVOLUTION_FILTER_BIAS parameters. (The scale and bias parameters are set by glConvolutionParameter using the GL_CONVOLUTION_1D target and the names GL_CONVOLUTION_FILTER_SCALE and GL_CONVOLUTION_FILTER_BIAS. The parameters themselves are vectors of four values that are applied to red, green, blue, and alpha, in that order.) The R, G, B, and A values are not clamped to [0,1] at any time during this process.

Each pixel is then converted to the internal format specified by internalformat. This conversion simply maps the component values of the pixel (R, G, B, and A) to the values included in the internal format (red, green, blue, alpha, luminance, and intensity). The mapping is as follows:

Internal Format

Red, Green, Blue, Alpha, Luminance, Intensity

GL_ALPHA

, , , A , ,

GL_LUMINANCE

, , , , R ,

GL_LUMINANCE_ALPHA

, , , A , R ,

GL_INTENSITY

, , , , , R

GL_RGB

R , G , B , , ,

GL_RGBA

R , G , B , A , ,

The red, green, blue, alpha, luminance, and/or intensity components of the resulting pixels are stored in floating-point rather than integer format. They form a one-dimensional filter kernel image indexed with coordinate i such that i starts at 0 and increases from left to right. Kernel location i is derived from the ith pixel, counting from 0.

Note that after a convolution is performed, the resulting color components are also scaled by their corresponding GL_POST_CONVOLUTION_c_SCALE parameters and biased by their corresponding GL_POST_CONVOLUTION_c_BIAS parameters (where c takes on the values RED, GREEN, BLUE, and ALPHA). These parameters are set by glPixelTransfer.

GL_INVALID_ENUM is generated if target is not GL_CONVOLUTION_1D.

GL_INVALID_ENUM is generated if internalformat is not one of the allowable values.

GL_INVALID_ENUM is generated if format is not one of the allowable values.

GL_INVALID_ENUM is generated if type is not one of the allowable values.

GL_INVALID_VALUE is generated if width is less than zero or greater than the maximum supported value. This value may be queried with glGetConvolutionParameter using target GL_CONVOLUTION_1D and name GL_MAX_CONVOLUTION_WIDTH.

GL_INVALID_OPERATION is generated if format is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and type is not GL_RGB.

GL_INVALID_OPERATION is generated if format is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and type is neither GL_RGBA nor GL_BGRA.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glConvolutionFilter1D is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glConvolutionFilter2D target internalformat width height format type data

Define a two-dimensional convolution filter.

target

Must be GL_CONVOLUTION_2D.

internalformat

The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.

width

The width of the pixel array referenced by data.

height

The height of the pixel array referenced by data.

format

The format of the pixel data in data. The allowable values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.

type

The type of the pixel data in data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

data

Pointer to a two-dimensional array of pixel data that is processed to build the convolution filter kernel.

glConvolutionFilter2D builds a two-dimensional convolution filter kernel from an array of pixels.

The pixel array specified by width, height, format, type, and data is extracted from memory and processed just as if glDrawPixels were called, but processing stops after the final expansion to RGBA is completed.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a convolution filter is specified, data is treated as a byte offset into the buffer object’s data store.

The R, G, B, and A components of each pixel are next scaled by the four 2D GL_CONVOLUTION_FILTER_SCALE parameters and biased by the four 2D GL_CONVOLUTION_FILTER_BIAS parameters. (The scale and bias parameters are set by glConvolutionParameter using the GL_CONVOLUTION_2D target and the names GL_CONVOLUTION_FILTER_SCALE and GL_CONVOLUTION_FILTER_BIAS. The parameters themselves are vectors of four values that are applied to red, green, blue, and alpha, in that order.) The R, G, B, and A values are not clamped to [0,1] at any time during this process.

Each pixel is then converted to the internal format specified by internalformat. This conversion simply maps the component values of the pixel (R, G, B, and A) to the values included in the internal format (red, green, blue, alpha, luminance, and intensity). The mapping is as follows:

Internal Format

Red, Green, Blue, Alpha, Luminance, Intensity

GL_ALPHA

, , , A , ,

GL_LUMINANCE

, , , , R ,

GL_LUMINANCE_ALPHA

, , , A , R ,

GL_INTENSITY

, , , , , R

GL_RGB

R , G , B , , ,

GL_RGBA

R , G , B , A , ,

The red, green, blue, alpha, luminance, and/or intensity components of the resulting pixels are stored in floating-point rather than integer format. They form a two-dimensional filter kernel image indexed with coordinates i and j such that i starts at zero and increases from left to right, and j starts at zero and increases from bottom to top. Kernel location i,j is derived from the Nth pixel, where N is i+j*width.

Note that after a convolution is performed, the resulting color components are also scaled by their corresponding GL_POST_CONVOLUTION_c_SCALE parameters and biased by their corresponding GL_POST_CONVOLUTION_c_BIAS parameters (where c takes on the values RED, GREEN, BLUE, and ALPHA). These parameters are set by glPixelTransfer.

GL_INVALID_ENUM is generated if target is not GL_CONVOLUTION_2D.

GL_INVALID_ENUM is generated if internalformat is not one of the allowable values.

GL_INVALID_ENUM is generated if format is not one of the allowable values.

GL_INVALID_ENUM is generated if type is not one of the allowable values.

GL_INVALID_VALUE is generated if width is less than zero or greater than the maximum supported value. This value may be queried with glGetConvolutionParameter using target GL_CONVOLUTION_2D and name GL_MAX_CONVOLUTION_WIDTH.

GL_INVALID_VALUE is generated if height is less than zero or greater than the maximum supported value. This value may be queried with glGetConvolutionParameter using target GL_CONVOLUTION_2D and name GL_MAX_CONVOLUTION_HEIGHT.

GL_INVALID_OPERATION is generated if height is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.

GL_INVALID_OPERATION is generated if height is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and format is neither GL_RGBA nor GL_BGRA.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glConvolutionFilter2D is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glConvolutionParameterf target pname params
Function: void glConvolutionParameteri target pname params
Function: void glConvolutionParameterfv target pname params
Function: void glConvolutionParameteriv target pname params

Set convolution parameters.

target

The target for the convolution parameter. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.

pname

The parameter to be set. Must be GL_CONVOLUTION_BORDER_MODE.

params

The parameter value. Must be one of GL_REDUCE, GL_CONSTANT_BORDER, GL_REPLICATE_BORDER.

glConvolutionParameter sets the value of a convolution parameter.

target selects the convolution filter to be affected: GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D for the 1D, 2D, or separable 2D filter, respectively.

pname selects the parameter to be changed. GL_CONVOLUTION_FILTER_SCALE and GL_CONVOLUTION_FILTER_BIAS affect the definition of the convolution filter kernel; see glConvolutionFilter1D, glConvolutionFilter2D, and glSeparableFilter2D for details. In these cases, paramsv is an array of four values to be applied to red, green, blue, and alpha values, respectively. The initial value for GL_CONVOLUTION_FILTER_SCALE is (1, 1, 1, 1), and the initial value for GL_CONVOLUTION_FILTER_BIAS is (0, 0, 0, 0).

A pname value of GL_CONVOLUTION_BORDER_MODE controls the convolution border mode. The accepted modes are:

GL_REDUCE

The image resulting from convolution is smaller than the source image. If the filter width is Wf and height is Hf, and the source image width is Ws and height is Hs, then the convolved image width will be Ws-Wf+1 and height will be Hs-Hf+1. (If this reduction would generate an image with zero or negative width and/or height, the output is simply null, with no error generated.) The coordinates of the image resulting from convolution are zero through Ws-Wf in width and zero through Hs-Hf in height.

GL_CONSTANT_BORDER

The image resulting from convolution is the same size as the source image, and processed as if the source image were surrounded by pixels with their color specified by the GL_CONVOLUTION_BORDER_COLOR.

GL_REPLICATE_BORDER

The image resulting from convolution is the same size as the source image, and processed as if the outermost pixel on the border of the source image were replicated.

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_ENUM is generated if pname is not one of the allowable values.

GL_INVALID_ENUM is generated if pname is GL_CONVOLUTION_BORDER_MODE and params is not one of GL_REDUCE, GL_CONSTANT_BORDER, or GL_REPLICATE_BORDER.

GL_INVALID_OPERATION is generated if glConvolutionParameter is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCopyColorSubTable target start x y width

Respecify a portion of a color table.

target

Must be one of GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.

start

The starting index of the portion of the color table to be replaced.

x
y

The window coordinates of the left corner of the row of pixels to be copied.

width

The number of table entries to replace.

glCopyColorSubTable is used to respecify a contiguous portion of a color table previously defined using glColorTable. The pixels copied from the framebuffer replace the portion of the existing table from indices start to start+x-1, inclusive. This region may not include any entries outside the range of the color table, as was originally specified. It is not an error to specify a subtexture with width of 0, but such a specification has no effect.

GL_INVALID_VALUE is generated if target is not a previously defined color table.

GL_INVALID_VALUE is generated if target is not one of the allowable values.

GL_INVALID_VALUE is generated if start+x>width.

GL_INVALID_OPERATION is generated if glCopyColorSubTable is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCopyColorTable target internalformat x y width

Copy pixels into a color table.

target

The color table target. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.

internalformat

The internal storage format of the texture image. Must be one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.

x

The x coordinate of the lower-left corner of the pixel rectangle to be transferred to the color table.

y

The y coordinate of the lower-left corner of the pixel rectangle to be transferred to the color table.

width

The width of the pixel rectangle.

glCopyColorTable loads a color table with pixels from the current GL_READ_BUFFER (rather than from main memory, as is the case for glColorTable).

The screen-aligned pixel rectangle with lower-left corner at (x,\ y) having width width and height 1 is loaded into the color table. If any pixels within this region are outside the window that is associated with the GL context, the values obtained for those pixels are undefined.

The pixels in the rectangle are processed just as if glReadPixels were called, with internalformat set to RGBA, but processing stops after the final conversion to RGBA.

The four scale parameters and the four bias parameters that are defined for the table are then used to scale and bias the R, G, B, and A components of each pixel. The scale and bias parameters are set by calling glColorTableParameter.

Next, the R, G, B, and A values are clamped to the range [0,1]. Each pixel is then converted to the internal format specified by internalformat. This conversion simply maps the component values of the pixel (R, G, B, and A) to the values included in the internal format (red, green, blue, alpha, luminance, and intensity). The mapping is as follows:

Internal Format

Red, Green, Blue, Alpha, Luminance, Intensity

GL_ALPHA

, , , A , ,

GL_LUMINANCE

, , , , R ,

GL_LUMINANCE_ALPHA

, , , A , R ,

GL_INTENSITY

, , , , , R

GL_RGB

R , G , B , , ,

GL_RGBA

R , G , B , A , ,

Finally, the red, green, blue, alpha, luminance, and/or intensity components of the resulting pixels are stored in the color table. They form a one-dimensional table with indices in the range [0,width-1].

GL_INVALID_ENUM is generated when target is not one of the allowable values.

GL_INVALID_VALUE is generated if width is less than zero.

GL_INVALID_VALUE is generated if internalformat is not one of the allowable values.

GL_TABLE_TOO_LARGE is generated if the requested color table is too large to be supported by the implementation.

GL_INVALID_OPERATION is generated if glCopyColorTable is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCopyConvolutionFilter1D target internalformat x y width

Copy pixels into a one-dimensional convolution filter.

target

Must be GL_CONVOLUTION_1D.

internalformat

The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.

x
y

The window space coordinates of the lower-left coordinate of the pixel array to copy.

width

The width of the pixel array to copy.

glCopyConvolutionFilter1D defines a one-dimensional convolution filter kernel with pixels from the current GL_READ_BUFFER (rather than from main memory, as is the case for glConvolutionFilter1D).

The screen-aligned pixel rectangle with lower-left corner at (x,\ y), width width and height 1 is used to define the convolution filter. If any pixels within this region are outside the window that is associated with the GL context, the values obtained for those pixels are undefined.

The pixels in the rectangle are processed exactly as if glReadPixels had been called with format set to RGBA, but the process stops just before final conversion. The R, G, B, and A components of each pixel are next scaled by the four 1D GL_CONVOLUTION_FILTER_SCALE parameters and biased by the four 1D GL_CONVOLUTION_FILTER_BIAS parameters. (The scale and bias parameters are set by glConvolutionParameter using the GL_CONVOLUTION_1D target and the names GL_CONVOLUTION_FILTER_SCALE and GL_CONVOLUTION_FILTER_BIAS. The parameters themselves are vectors of four values that are applied to red, green, blue, and alpha, in that order.) The R, G, B, and A values are not clamped to [0,1] at any time during this process.

Each pixel is then converted to the internal format specified by internalformat. This conversion simply maps the component values of the pixel (R, G, B, and A) to the values included in the internal format (red, green, blue, alpha, luminance, and intensity). The mapping is as follows:

Internal Format

Red, Green, Blue, Alpha, Luminance, Intensity

GL_ALPHA

, , , A , ,

GL_LUMINANCE

, , , , R ,

GL_LUMINANCE_ALPHA

, , , A , R ,

GL_INTENSITY

, , , , , R

GL_RGB

R , G , B , , ,

GL_RGBA

R , G , B , A , ,

The red, green, blue, alpha, luminance, and/or intensity components of the resulting pixels are stored in floating-point rather than integer format.

Pixel ordering is such that lower x screen coordinates correspond to lower i filter image coordinates.

Note that after a convolution is performed, the resulting color components are also scaled by their corresponding GL_POST_CONVOLUTION_c_SCALE parameters and biased by their corresponding GL_POST_CONVOLUTION_c_BIAS parameters (where c takes on the values RED, GREEN, BLUE, and ALPHA). These parameters are set by glPixelTransfer.

GL_INVALID_ENUM is generated if target is not GL_CONVOLUTION_1D.

GL_INVALID_ENUM is generated if internalformat is not one of the allowable values.

GL_INVALID_VALUE is generated if width is less than zero or greater than the maximum supported value. This value may be queried with glGetConvolutionParameter using target GL_CONVOLUTION_1D and name GL_MAX_CONVOLUTION_WIDTH.

GL_INVALID_OPERATION is generated if glCopyConvolutionFilter1D is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCopyConvolutionFilter2D target internalformat x y width height

Copy pixels into a two-dimensional convolution filter.

target

Must be GL_CONVOLUTION_2D.

internalformat

The internal format of the convolution filter kernel. The allowable values are GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_R3_G3_B2, GL_RGB, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, or GL_RGBA16.

x
y

The window space coordinates of the lower-left coordinate of the pixel array to copy.

width

The width of the pixel array to copy.

height

The height of the pixel array to copy.

glCopyConvolutionFilter2D defines a two-dimensional convolution filter kernel with pixels from the current GL_READ_BUFFER (rather than from main memory, as is the case for glConvolutionFilter2D).

The screen-aligned pixel rectangle with lower-left corner at (x,\ y), width width and height height is used to define the convolution filter. If any pixels within this region are outside the window that is associated with the GL context, the values obtained for those pixels are undefined.

The pixels in the rectangle are processed exactly as if glReadPixels had been called with format set to RGBA, but the process stops just before final conversion. The R, G, B, and A components of each pixel are next scaled by the four 2D GL_CONVOLUTION_FILTER_SCALE parameters and biased by the four 2D GL_CONVOLUTION_FILTER_BIAS parameters. (The scale and bias parameters are set by glConvolutionParameter using the GL_CONVOLUTION_2D target and the names GL_CONVOLUTION_FILTER_SCALE and GL_CONVOLUTION_FILTER_BIAS. The parameters themselves are vectors of four values that are applied to red, green, blue, and alpha, in that order.) The R, G, B, and A values are not clamped to [0,1] at any time during this process.

Each pixel is then converted to the internal format specified by internalformat. This conversion simply maps the component values of the pixel (R, G, B, and A) to the values included in the internal format (red, green, blue, alpha, luminance, and intensity). The mapping is as follows:

Internal Format

Red, Green, Blue, Alpha, Luminance, Intensity

GL_ALPHA

, , , A , ,

GL_LUMINANCE

, , , , R ,

GL_LUMINANCE_ALPHA

, , , A , R ,

GL_INTENSITY

, , , , , R

GL_RGB

R , G , B , , ,

GL_RGBA

R , G , B , A , ,

The red, green, blue, alpha, luminance, and/or intensity components of the resulting pixels are stored in floating-point rather than integer format.

Pixel ordering is such that lower x screen coordinates correspond to lower i filter image coordinates, and lower y screen coordinates correspond to lower j filter image coordinates.

Note that after a convolution is performed, the resulting color components are also scaled by their corresponding GL_POST_CONVOLUTION_c_SCALE parameters and biased by their corresponding GL_POST_CONVOLUTION_c_BIAS parameters (where c takes on the values RED, GREEN, BLUE, and ALPHA). These parameters are set by glPixelTransfer.

GL_INVALID_ENUM is generated if target is not GL_CONVOLUTION_2D.

GL_INVALID_ENUM is generated if internalformat is not one of the allowable values.

GL_INVALID_VALUE is generated if width is less than zero or greater than the maximum supported value. This value may be queried with glGetConvolutionParameter using target GL_CONVOLUTION_2D and name GL_MAX_CONVOLUTION_WIDTH.

GL_INVALID_VALUE is generated if height is less than zero or greater than the maximum supported value. This value may be queried with glGetConvolutionParameter using target GL_CONVOLUTION_2D and name GL_MAX_CONVOLUTION_HEIGHT.

GL_INVALID_OPERATION is generated if glCopyConvolutionFilter2D is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCopyPixels x y width height type

Copy pixels in the frame buffer.

x
y

Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.

width
height

Specify the dimensions of the rectangular region of pixels to be copied. Both must be nonnegative.

type

Specifies whether color values, depth values, or stencil values are to be copied. Symbolic constants GL_COLOR, GL_DEPTH, and GL_STENCIL are accepted.

glCopyPixels copies a screen-aligned rectangle of pixels from the specified frame buffer location to a region relative to the current raster position. Its operation is well defined only if the entire pixel source region is within the exposed portion of the window. Results of copies from outside the window, or from regions of the window that are not exposed, are hardware dependent and undefined.

x and y specify the window coordinates of the lower left corner of the rectangular region to be copied. width and height specify the dimensions of the rectangular region to be copied. Both width and height must not be negative.

Several parameters control the processing of the pixel data while it is being copied. These parameters are set with three commands: glPixelTransfer, glPixelMap, and glPixelZoom. This reference page describes the effects on glCopyPixels of most, but not all, of the parameters specified by these three commands.

glCopyPixels copies values from each pixel with the lower left-hand corner at (x+i,y+j) for 0<=i<width and 0<=j<height. This pixel is said to be the ith pixel in the jth row. Pixels are copied in row order from the lowest to the highest row, left to right in each row.

type specifies whether color, depth, or stencil data is to be copied. The details of the transfer for each data type are as follows:

GL_COLOR

Indices or RGBA colors are read from the buffer currently specified as the read source buffer (see glReadBuffer). If the GL is in color index mode, each index that is read from this buffer is converted to a fixed-point format with an unspecified number of bits to the right of the binary point. Each index is then shifted left by GL_INDEX_SHIFT bits, and added to GL_INDEX_OFFSET. If GL_INDEX_SHIFT is negative, the shift is to the right. In either case, zero bits fill otherwise unspecified bit locations in the result. If GL_MAP_COLOR is true, the index is replaced with the value that it references in lookup table GL_PIXEL_MAP_I_TO_I. Whether the lookup replacement of the index is done or not, the integer part of the index is then ANDed with 2^b-1, where b is the number of bits in a color index buffer.

If the GL is in RGBA mode, the red, green, blue, and alpha components of each pixel that is read are converted to an internal floating-point format with unspecified precision. The conversion maps the largest representable component value to 1.0, and component value 0 to 0.0. The resulting floating-point color values are then multiplied by GL_c_SCALE and added to GL_c_BIAS, where c is RED, GREEN, BLUE, and ALPHA for the respective color components. The results are clamped to the range [0,1]. If GL_MAP_COLOR is true, each color component is scaled by the size of lookup table GL_PIXEL_MAP_c_TO_c, then replaced by the value that it references in that table. c is R, G, B, or A.

If the ARB_imaging extension is supported, the color values may be additionally processed by color-table lookups, color-matrix transformations, and convolution filters.

The GL then converts the resulting indices or RGBA colors to fragments by attaching the current raster position z coordinate and texture coordinates to each pixel, then assigning window coordinates (x_r+i,y_r+j), where (x_r,y_r) is the current raster position, and the pixel was the ith pixel in the jth row. These pixel fragments are then treated just like the fragments generated by rasterizing points, lines, or polygons. Texture mapping, fog, and all the fragment operations are applied before the fragments are written to the frame buffer.

GL_DEPTH

Depth values are read from the depth buffer and converted directly to an internal floating-point format with unspecified precision. The resulting floating-point depth value is then multiplied by GL_DEPTH_SCALE and added to GL_DEPTH_BIAS. The result is clamped to the range [0,1].

The GL then converts the resulting depth components to fragments by attaching the current raster position color or color index and texture coordinates to each pixel, then assigning window coordinates (x_r+i,y_r+j), where (x_r,y_r) is the current raster position, and the pixel was the ith pixel in the jth row. These pixel fragments are then treated just like the fragments generated by rasterizing points, lines, or polygons. Texture mapping, fog, and all the fragment operations are applied before the fragments are written to the frame buffer.

GL_STENCIL

Stencil indices are read from the stencil buffer and converted to an internal fixed-point format with an unspecified number of bits to the right of the binary point. Each fixed-point index is then shifted left by GL_INDEX_SHIFT bits, and added to GL_INDEX_OFFSET. If GL_INDEX_SHIFT is negative, the shift is to the right. In either case, zero bits fill otherwise unspecified bit locations in the result. If GL_MAP_STENCIL is true, the index is replaced with the value that it references in lookup table GL_PIXEL_MAP_S_TO_S. Whether the lookup replacement of the index is done or not, the integer part of the index is then ANDed with 2^b-1, where b is the number of bits in the stencil buffer. The resulting stencil indices are then written to the stencil buffer such that the index read from the ith location of the jth row is written to location (x_r+i,y_r+j), where (x_r,y_r) is the current raster position. Only the pixel ownership test, the scissor test, and the stencil writemask affect these write operations.

The rasterization described thus far assumes pixel zoom factors of 1.0. If glPixelZoom is used to change the x and y pixel zoom factors, pixels are converted to fragments as follows. If (x_r,y_r) is the current raster position, and a given pixel is in the ith location in the jth row of the source pixel rectangle, then fragments are generated for pixels whose centers are in the rectangle with corners at

(x_r+zoom_x,⁢i,y_r+zoom_y,⁢j)

and

(x_r+zoom_x,⁡(i+1,),y_r+zoom_y,⁡(j+1,))

where zoom_x is the value of GL_ZOOM_X and zoom_y is the value of GL_ZOOM_Y.

GL_INVALID_ENUM is generated if type is not an accepted value.

GL_INVALID_VALUE is generated if either width or height is negative.

GL_INVALID_OPERATION is generated if type is GL_DEPTH and there is no depth buffer.

GL_INVALID_OPERATION is generated if type is GL_STENCIL and there is no stencil buffer.

GL_INVALID_OPERATION is generated if glCopyPixels is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCopyTexImage1D target level internalformat x y width border

Copy pixels into a 1D texture image.

target

Specifies the target texture. Must be GL_TEXTURE_1D.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

internalformat

Specifies the internal format of the texture. Must be one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.

x
y

Specify the window coordinates of the left corner of the row of pixels to be copied.

width

Specifies the width of the texture image. Must be 0 or 2^n+2⁡(border,) for some integer n. The height of the texture image is 1.

border

Specifies the width of the border. Must be either 0 or 1.

glCopyTexImage1D defines a one-dimensional texture image with pixels from the current GL_READ_BUFFER.

The screen-aligned pixel row with left corner at (x,y) and with a length of width+2⁡(border,) defines the texture array at the mipmap level specified by level. internalformat specifies the internal format of the texture array.

The pixels in the row are processed exactly as if glCopyPixels had been called, but the process stops just before final conversion. At this point all pixel component values are clamped to the range [0,1] and then converted to the texture’s internal format for storage in the texel array.

Pixel ordering is such that lower x screen coordinates correspond to lower texture coordinates.

If any of the pixels within the specified row of the current GL_READ_BUFFER are outside the window associated with the current rendering context, then the values obtained for those pixels are undefined.

glCopyTexImage1D defines a one-dimensional texture image with pixels from the current GL_READ_BUFFER.

When internalformat is one of the sRGB types, the GL does not automatically convert the source pixels to the sRGB color space. In this case, the glPixelMap function can be used to accomplish the conversion.

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_VALUE is generated if level is less than 0.

GL_INVALID_VALUE may be generated if level is greater than log_2⁢max, where max is the returned value of GL_MAX_TEXTURE_SIZE.

GL_INVALID_VALUE is generated if internalformat is not an allowable value.

GL_INVALID_VALUE is generated if width is less than 0 or greater than 2 + GL_MAX_TEXTURE_SIZE.

GL_INVALID_VALUE is generated if non-power-of-two textures are not supported and the width cannot be represented as 2^n+2⁡(border,) for some integer value of n.

GL_INVALID_VALUE is generated if border is not 0 or 1.

GL_INVALID_OPERATION is generated if glCopyTexImage1D is executed between the execution of glBegin and the corresponding execution of glEnd.

GL_INVALID_OPERATION is generated if internalformat is GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, or GL_DEPTH_COMPONENT32 and there is no depth buffer.

Function: void glCopyTexImage2D target level internalformat x y width height border

Copy pixels into a 2D texture image.

target

Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

internalformat

Specifies the internal format of the texture. Must be one of the following symbolic constants: GL_ALPHA, GL_ALPHA4, GL_ALPHA8, GL_ALPHA12, GL_ALPHA16, GL_COMPRESSED_ALPHA, GL_COMPRESSED_LUMINANCE, GL_COMPRESSED_LUMINANCE_ALPHA, GL_COMPRESSED_INTENSITY, GL_COMPRESSED_RGB, GL_COMPRESSED_RGBA, GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, GL_DEPTH_COMPONENT32, GL_LUMINANCE, GL_LUMINANCE4, GL_LUMINANCE8, GL_LUMINANCE12, GL_LUMINANCE16, GL_LUMINANCE_ALPHA, GL_LUMINANCE4_ALPHA4, GL_LUMINANCE6_ALPHA2, GL_LUMINANCE8_ALPHA8, GL_LUMINANCE12_ALPHA4, GL_LUMINANCE12_ALPHA12, GL_LUMINANCE16_ALPHA16, GL_INTENSITY, GL_INTENSITY4, GL_INTENSITY8, GL_INTENSITY12, GL_INTENSITY16, GL_RGB, GL_R3_G3_B2, GL_RGB4, GL_RGB5, GL_RGB8, GL_RGB10, GL_RGB12, GL_RGB16, GL_RGBA, GL_RGBA2, GL_RGBA4, GL_RGB5_A1, GL_RGBA8, GL_RGB10_A2, GL_RGBA12, GL_RGBA16, GL_SLUMINANCE, GL_SLUMINANCE8, GL_SLUMINANCE_ALPHA, GL_SLUMINANCE8_ALPHA8, GL_SRGB, GL_SRGB8, GL_SRGB_ALPHA, or GL_SRGB8_ALPHA8.

x
y

Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.

width

Specifies the width of the texture image. Must be 0 or 2^n+2⁡(border,) for some integer n.

height

Specifies the height of the texture image. Must be 0 or 2^m+2⁡(border,) for some integer m.

border

Specifies the width of the border. Must be either 0 or 1.

glCopyTexImage2D defines a two-dimensional texture image, or cube-map texture image with pixels from the current GL_READ_BUFFER.

The screen-aligned pixel rectangle with lower left corner at (x, y) and with a width of width+2⁡(border,) and a height of height+2⁡(border,) defines the texture array at the mipmap level specified by level. internalformat specifies the internal format of the texture array.

The pixels in the rectangle are processed exactly as if glCopyPixels had been called, but the process stops just before final conversion. At this point all pixel component values are clamped to the range [0,1] and then converted to the texture’s internal format for storage in the texel array.

Pixel ordering is such that lower x and y screen coordinates correspond to lower s and t texture coordinates.

If any of the pixels within the specified rectangle of the current GL_READ_BUFFER are outside the window associated with the current rendering context, then the values obtained for those pixels are undefined.

When internalformat is one of the sRGB types, the GL does not automatically convert the source pixels to the sRGB color space. In this case, the glPixelMap function can be used to accomplish the conversion.

GL_INVALID_ENUM is generated if target is not GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.

GL_INVALID_VALUE is generated if level is less than 0.

GL_INVALID_VALUE may be generated if level is greater than log_2⁢max, where max is the returned value of GL_MAX_TEXTURE_SIZE.

GL_INVALID_VALUE is generated if width is less than 0 or greater than 2 + GL_MAX_TEXTURE_SIZE.

GL_INVALID_VALUE is generated if non-power-of-two textures are not supported and the width or depth cannot be represented as 2^k+2⁡(border,) for some integer k.

GL_INVALID_VALUE is generated if border is not 0 or 1.

GL_INVALID_VALUE is generated if internalformat is not an accepted format.

GL_INVALID_OPERATION is generated if glCopyTexImage2D is executed between the execution of glBegin and the corresponding execution of glEnd.

GL_INVALID_OPERATION is generated if internalformat is GL_DEPTH_COMPONENT, GL_DEPTH_COMPONENT16, GL_DEPTH_COMPONENT24, or GL_DEPTH_COMPONENT32 and there is no depth buffer.

Function: void glCopyTexSubImage1D target level xoffset x y width

Copy a one-dimensional texture subimage.

target

Specifies the target texture. Must be GL_TEXTURE_1D.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

xoffset

Specifies the texel offset within the texture array.

x
y

Specify the window coordinates of the left corner of the row of pixels to be copied.

width

Specifies the width of the texture subimage.

glCopyTexSubImage1D replaces a portion of a one-dimensional texture image with pixels from the current GL_READ_BUFFER (rather than from main memory, as is the case for glTexSubImage1D).

The screen-aligned pixel row with left corner at (x,\ y), and with length width replaces the portion of the texture array with x indices xoffset through xoffset+width-1, inclusive. The destination in the texture array may not include any texels outside the texture array as it was originally specified.

The pixels in the row are processed exactly as if glCopyPixels had been called, but the process stops just before final conversion. At this point, all pixel component values are clamped to the range [0,1] and then converted to the texture’s internal format for storage in the texel array.

It is not an error to specify a subtexture with zero width, but such a specification has no effect. If any of the pixels within the specified row of the current GL_READ_BUFFER are outside the read window associated with the current rendering context, then the values obtained for those pixels are undefined.

No change is made to the internalformat, width, or border parameters of the specified texture array or to texel values outside the specified subregion.

GL_INVALID_ENUM is generated if /target is not GL_TEXTURE_1D.

GL_INVALID_OPERATION is generated if the texture array has not been defined by a previous glTexImage1D or glCopyTexImage1D operation.

GL_INVALID_VALUE is generated if level is less than 0.

GL_INVALID_VALUE may be generated if level>log_2⁡(max,), where max is the returned value of GL_MAX_TEXTURE_SIZE.

GL_INVALID_VALUE is generated if xoffset<-b, or (xoffset+width,)>(w-b,), where w is the GL_TEXTURE_WIDTH and b is the GL_TEXTURE_BORDER of the texture image being modified. Note that w includes twice the border width.

Function: void glCopyTexSubImage2D target level xoffset yoffset x y width height

Copy a two-dimensional texture subimage.

target

Specifies the target texture. Must be GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

xoffset

Specifies a texel offset in the x direction within the texture array.

yoffset

Specifies a texel offset in the y direction within the texture array.

x
y

Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.

width

Specifies the width of the texture subimage.

height

Specifies the height of the texture subimage.

glCopyTexSubImage2D replaces a rectangular portion of a two-dimensional texture image or cube-map texture image with pixels from the current GL_READ_BUFFER (rather than from main memory, as is the case for glTexSubImage2D).

The screen-aligned pixel rectangle with lower left corner at (x,y) and with width width and height height replaces the portion of the texture array with x indices xoffset through xoffset+width-1, inclusive, and y indices yoffset through yoffset+height-1, inclusive, at the mipmap level specified by level.

The pixels in the rectangle are processed exactly as if glCopyPixels had been called, but the process stops just before final conversion. At this point, all pixel component values are clamped to the range [0,1] and then converted to the texture’s internal format for storage in the texel array.

The destination rectangle in the texture array may not include any texels outside the texture array as it was originally specified. It is not an error to specify a subtexture with zero width or height, but such a specification has no effect.

If any of the pixels within the specified rectangle of the current GL_READ_BUFFER are outside the read window associated with the current rendering context, then the values obtained for those pixels are undefined.

No change is made to the internalformat, width, height, or border parameters of the specified texture array or to texel values outside the specified subregion.

GL_INVALID_ENUM is generated if target is not GL_TEXTURE_2D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, or GL_TEXTURE_CUBE_MAP_NEGATIVE_Z.

GL_INVALID_OPERATION is generated if the texture array has not been defined by a previous glTexImage2D or glCopyTexImage2D operation.

GL_INVALID_VALUE is generated if level is less than 0.

GL_INVALID_VALUE may be generated if level>log_2⁡(max,), where max is the returned value of GL_MAX_TEXTURE_SIZE.

GL_INVALID_VALUE is generated if xoffset<-b, (xoffset+width,)>(w-b,), yoffset<-b, or (yoffset+height,)>(h-b,), where w is the GL_TEXTURE_WIDTH, h is the GL_TEXTURE_HEIGHT, and b is the GL_TEXTURE_BORDER of the texture image being modified. Note that w and h include twice the border width.

GL_INVALID_OPERATION is generated if glCopyTexSubImage2D is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCopyTexSubImage3D target level xoffset yoffset zoffset x y width height

Copy a three-dimensional texture subimage.

target

Specifies the target texture. Must be GL_TEXTURE_3D

level

Specifies the level-of-detail number. Level 0 is the base image level. Level n is the nth mipmap reduction image.

xoffset

Specifies a texel offset in the x direction within the texture array.

yoffset

Specifies a texel offset in the y direction within the texture array.

zoffset

Specifies a texel offset in the z direction within the texture array.

x
y

Specify the window coordinates of the lower left corner of the rectangular region of pixels to be copied.

width

Specifies the width of the texture subimage.

height

Specifies the height of the texture subimage.

glCopyTexSubImage3D replaces a rectangular portion of a three-dimensional texture image with pixels from the current GL_READ_BUFFER (rather than from main memory, as is the case for glTexSubImage3D).

The screen-aligned pixel rectangle with lower left corner at (x,\ y) and with width width and height height replaces the portion of the texture array with x indices xoffset through xoffset+width-1, inclusive, and y indices yoffset through yoffset+height-1, inclusive, at z index zoffset and at the mipmap level specified by level.

The pixels in the rectangle are processed exactly as if glCopyPixels had been called, but the process stops just before final conversion. At this point, all pixel component values are clamped to the range [0,1] and then converted to the texture’s internal format for storage in the texel array.

The destination rectangle in the texture array may not include any texels outside the texture array as it was originally specified. It is not an error to specify a subtexture with zero width or height, but such a specification has no effect.

If any of the pixels within the specified rectangle of the current GL_READ_BUFFER are outside the read window associated with the current rendering context, then the values obtained for those pixels are undefined.

No change is made to the internalformat, width, height, depth, or border parameters of the specified texture array or to texel values outside the specified subregion.

GL_INVALID_ENUM is generated if /target is not GL_TEXTURE_3D.

GL_INVALID_OPERATION is generated if the texture array has not been defined by a previous glTexImage3D operation.

GL_INVALID_VALUE is generated if level is less than 0.

GL_INVALID_VALUE may be generated if level>log_2⁡(max,), where max is the returned value of GL_MAX_3D_TEXTURE_SIZE.

GL_INVALID_VALUE is generated if xoffset<-b, (xoffset+width,)>(w-b,), yoffset<-b, (yoffset+height,)>(h-b,), zoffset<-b, or (zoffset+1,)>(d-b,), where w is the GL_TEXTURE_WIDTH, h is the GL_TEXTURE_HEIGHT, d is the GL_TEXTURE_DEPTH, and b is the GL_TEXTURE_BORDER of the texture image being modified. Note that w, h, and d include twice the border width.

GL_INVALID_OPERATION is generated if glCopyTexSubImage3D is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: GLuint glCreateProgram

Creates a program object.

glCreateProgram creates an empty program object and returns a non-zero value by which it can be referenced. A program object is an object to which shader objects can be attached. This provides a mechanism to specify the shader objects that will be linked to create a program. It also provides a means for checking the compatibility of the shaders that will be used to create a program (for instance, checking the compatibility between a vertex shader and a fragment shader). When no longer needed as part of a program object, shader objects can be detached.

One or more executables are created in a program object by successfully attaching shader objects to it with glAttachShader, successfully compiling the shader objects with glCompileShader, and successfully linking the program object with glLinkProgram. These executables are made part of current state when glUseProgram is called. Program objects can be deleted by calling glDeleteProgram. The memory associated with the program object will be deleted when it is no longer part of current rendering state for any context.

This function returns 0 if an error occurs creating the program object.

GL_INVALID_OPERATION is generated if glCreateProgram is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: GLuint glCreateShader shaderType

Creates a shader object.

shaderType

Specifies the type of shader to be created. Must be either GL_VERTEX_SHADER or GL_FRAGMENT_SHADER.

glCreateShader creates an empty shader object and returns a non-zero value by which it can be referenced. A shader object is used to maintain the source code strings that define a shader. shaderType indicates the type of shader to be created. Two types of shaders are supported. A shader of type GL_VERTEX_SHADER is a shader that is intended to run on the programmable vertex processor and replace the fixed functionality vertex processing in OpenGL. A shader of type GL_FRAGMENT_SHADER is a shader that is intended to run on the programmable fragment processor and replace the fixed functionality fragment processing in OpenGL.

When created, a shader object’s GL_SHADER_TYPE parameter is set to either GL_VERTEX_SHADER or GL_FRAGMENT_SHADER, depending on the value of shaderType.

This function returns 0 if an error occurs creating the shader object.

GL_INVALID_ENUM is generated if shaderType is not an accepted value.

GL_INVALID_OPERATION is generated if glCreateShader is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glCullFace mode

Specify whether front- or back-facing facets can be culled.

mode

Specifies whether front- or back-facing facets are candidates for culling. Symbolic constants GL_FRONT, GL_BACK, and GL_FRONT_AND_BACK are accepted. The initial value is GL_BACK.

glCullFace specifies whether front- or back-facing facets are culled (as specified by mode) when facet culling is enabled. Facet culling is initially disabled. To enable and disable facet culling, call the glEnable and glDisable commands with the argument GL_CULL_FACE. Facets include triangles, quadrilaterals, polygons, and rectangles.

glFrontFace specifies which of the clockwise and counterclockwise facets are front-facing and back-facing. See glFrontFace.

GL_INVALID_ENUM is generated if mode is not an accepted value.

GL_INVALID_OPERATION is generated if glCullFace is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDeleteBuffers n buffers

Delete named buffer objects.

n

Specifies the number of buffer objects to be deleted.

buffers

Specifies an array of buffer objects to be deleted.

glDeleteBuffers deletes n buffer objects named by the elements of the array buffers. After a buffer object is deleted, it has no contents, and its name is free for reuse (for example by glGenBuffers). If a buffer object that is currently bound is deleted, the binding reverts to 0 (the absence of any buffer object, which reverts to client memory usage).

glDeleteBuffers silently ignores 0’s and names that do not correspond to existing buffer objects.

GL_INVALID_VALUE is generated if n is negative.

GL_INVALID_OPERATION is generated if glDeleteBuffers is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDeleteLists list range

Delete a contiguous group of display lists.

list

Specifies the integer name of the first display list to delete.

range

Specifies the number of display lists to delete.

glDeleteLists causes a contiguous group of display lists to be deleted. list is the name of the first display list to be deleted, and range is the number of display lists to delete. All display lists d with list<=d<=list+range-1 are deleted.

All storage locations allocated to the specified display lists are freed, and the names are available for reuse at a later time. Names within the range that do not have an associated display list are ignored. If range is 0, nothing happens.

GL_INVALID_VALUE is generated if range is negative.

GL_INVALID_OPERATION is generated if glDeleteLists is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDeleteProgram program

Deletes a program object.

program

Specifies the program object to be deleted.

glDeleteProgram frees the memory and invalidates the name associated with the program object specified by program. This command effectively undoes the effects of a call to glCreateProgram.

If a program object is in use as part of current rendering state, it will be flagged for deletion, but it will not be deleted until it is no longer part of current state for any rendering context. If a program object to be deleted has shader objects attached to it, those shader objects will be automatically detached but not deleted unless they have already been flagged for deletion by a previous call to glDeleteShader. A value of 0 for program will be silently ignored.

To determine whether a program object has been flagged for deletion, call glGetProgram with arguments program and GL_DELETE_STATUS.

GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if glDeleteProgram is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDeleteQueries n ids

Delete named query objects.

n

Specifies the number of query objects to be deleted.

ids

Specifies an array of query objects to be deleted.

glDeleteQueries deletes n query objects named by the elements of the array ids. After a query object is deleted, it has no contents, and its name is free for reuse (for example by glGenQueries).

glDeleteQueries silently ignores 0’s and names that do not correspond to existing query objects.

GL_INVALID_VALUE is generated if n is negative.

GL_INVALID_OPERATION is generated if glDeleteQueries is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDeleteShader shader

Deletes a shader object.

shader

Specifies the shader object to be deleted.

glDeleteShader frees the memory and invalidates the name associated with the shader object specified by shader. This command effectively undoes the effects of a call to glCreateShader.

If a shader object to be deleted is attached to a program object, it will be flagged for deletion, but it will not be deleted until it is no longer attached to any program object, for any rendering context (i.e., it must be detached from wherever it was attached before it will be deleted). A value of 0 for shader will be silently ignored.

To determine whether an object has been flagged for deletion, call glGetShader with arguments shader and GL_DELETE_STATUS.

GL_INVALID_VALUE is generated if shader is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if glDeleteShader is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDeleteTextures n textures

Delete named textures.

n

Specifies the number of textures to be deleted.

textures

Specifies an array of textures to be deleted.

glDeleteTextures deletes n textures named by the elements of the array textures. After a texture is deleted, it has no contents or dimensionality, and its name is free for reuse (for example by glGenTextures). If a texture that is currently bound is deleted, the binding reverts to 0 (the default texture).

glDeleteTextures silently ignores 0’s and names that do not correspond to existing textures.

GL_INVALID_VALUE is generated if n is negative.

GL_INVALID_OPERATION is generated if glDeleteTextures is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDepthFunc func

Specify the value used for depth buffer comparisons.

func

Specifies the depth comparison function. Symbolic constants GL_NEVER, GL_LESS, GL_EQUAL, GL_LEQUAL, GL_GREATER, GL_NOTEQUAL, GL_GEQUAL, and GL_ALWAYS are accepted. The initial value is GL_LESS.

glDepthFunc specifies the function used to compare each incoming pixel depth value with the depth value present in the depth buffer. The comparison is performed only if depth testing is enabled. (See glEnable and glDisable of GL_DEPTH_TEST.)

func specifies the conditions under which the pixel will be drawn. The comparison functions are as follows:

GL_NEVER

Never passes.

GL_LESS

Passes if the incoming depth value is less than the stored depth value.

GL_EQUAL

Passes if the incoming depth value is equal to the stored depth value.

GL_LEQUAL

Passes if the incoming depth value is less than or equal to the stored depth value.

GL_GREATER

Passes if the incoming depth value is greater than the stored depth value.

GL_NOTEQUAL

Passes if the incoming depth value is not equal to the stored depth value.

GL_GEQUAL

Passes if the incoming depth value is greater than or equal to the stored depth value.

GL_ALWAYS

Always passes.

The initial value of func is GL_LESS. Initially, depth testing is disabled. If depth testing is disabled or if no depth buffer exists, it is as if the depth test always passes.

GL_INVALID_ENUM is generated if func is not an accepted value.

GL_INVALID_OPERATION is generated if glDepthFunc is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDepthMask flag

Enable or disable writing into the depth buffer.

flag

Specifies whether the depth buffer is enabled for writing. If flag is GL_FALSE, depth buffer writing is disabled. Otherwise, it is enabled. Initially, depth buffer writing is enabled.

glDepthMask specifies whether the depth buffer is enabled for writing. If flag is GL_FALSE, depth buffer writing is disabled. Otherwise, it is enabled. Initially, depth buffer writing is enabled.

GL_INVALID_OPERATION is generated if glDepthMask is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDepthRange nearVal farVal

Specify mapping of depth values from normalized device coordinates to window coordinates.

nearVal

Specifies the mapping of the near clipping plane to window coordinates. The initial value is 0.

farVal

Specifies the mapping of the far clipping plane to window coordinates. The initial value is 1.

After clipping and division by w, depth coordinates range from -1 to 1, corresponding to the near and far clipping planes. glDepthRange specifies a linear mapping of the normalized depth coordinates in this range to window depth coordinates. Regardless of the actual depth buffer implementation, window coordinate depth values are treated as though they range from 0 through 1 (like color components). Thus, the values accepted by glDepthRange are both clamped to this range before they are accepted.

The setting of (0,1) maps the near plane to 0 and the far plane to 1. With this mapping, the depth buffer range is fully utilized.

GL_INVALID_OPERATION is generated if glDepthRange is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDetachShader program shader

Detaches a shader object from a program object to which it is attached.

program

Specifies the program object from which to detach the shader object.

shader

Specifies the shader object to be detached.

glDetachShader detaches the shader object specified by shader from the program object specified by program. This command can be used to undo the effect of the command glAttachShader.

If shader has already been flagged for deletion by a call to glDeleteShader and it is not attached to any other program object, it will be deleted after it has been detached.

GL_INVALID_VALUE is generated if either program or shader is a value that was not generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_OPERATION is generated if shader is not a shader object.

GL_INVALID_OPERATION is generated if shader is not attached to program.

GL_INVALID_OPERATION is generated if glDetachShader is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDrawArrays mode first count

Render primitives from array data.

mode

Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.

first

Specifies the starting index in the enabled arrays.

count

Specifies the number of indices to be rendered.

glDrawArrays specifies multiple geometric primitives with very few subroutine calls. Instead of calling a GL procedure to pass each individual vertex, normal, texture coordinate, edge flag, or color, you can prespecify separate arrays of vertices, normals, and colors and use them to construct a sequence of primitives with a single call to glDrawArrays.

When glDrawArrays is called, it uses count sequential elements from each enabled array to construct a sequence of geometric primitives, beginning with element first. mode specifies what kind of primitives are constructed and how the array elements construct those primitives. If GL_VERTEX_ARRAY is not enabled, no geometric primitives are generated.

Vertex attributes that are modified by glDrawArrays have an unspecified value after glDrawArrays returns. For example, if GL_COLOR_ARRAY is enabled, the value of the current color is undefined after glDrawArrays executes. Attributes that aren’t modified remain well defined.

GL_INVALID_ENUM is generated if mode is not an accepted value.

GL_INVALID_VALUE is generated if count is negative.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an enabled array and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if glDrawArrays is executed between the execution of glBegin and the corresponding glEnd.

Function: void glDrawBuffers n bufs

Specifies a list of color buffers to be drawn into.

n

Specifies the number of buffers in bufs.

bufs

Points to an array of symbolic constants specifying the buffers into which fragment colors or data values will be written.

glDrawBuffers defines an array of buffers into which fragment color values or fragment data will be written. If no fragment shader is active, rendering operations will generate only one fragment color per fragment and it will be written into each of the buffers specified by bufs. If a fragment shader is active and it writes a value to the output variable gl_FragColor, then that value will be written into each of the buffers specified by bufs. If a fragment shader is active and it writes a value to one or more elements of the output array variable gl_FragData[], then the value of gl_FragData[0] will be written into the first buffer specified by bufs, the value of gl_FragData[1] will be written into the second buffer specified by bufs, and so on up to gl_FragData[n-1]. The draw buffer used for gl_FragData[n] and beyond is implicitly set to be GL_NONE.

The symbolic constants contained in bufs may be any of the following:

GL_NONE

The fragment color/data value is not written into any color buffer.

GL_FRONT_LEFT

The fragment color/data value is written into the front left color buffer.

GL_FRONT_RIGHT

The fragment color/data value is written into the front right color buffer.

GL_BACK_LEFT

The fragment color/data value is written into the back left color buffer.

GL_BACK_RIGHT

The fragment color/data value is written into the back right color buffer.

GL_AUXi

The fragment color/data value is written into auxiliary buffer i.

Except for GL_NONE, the preceding symbolic constants may not appear more than once in bufs. The maximum number of draw buffers supported is implementation dependent and can be queried by calling glGet with the argument GL_MAX_DRAW_BUFFERS. The number of auxiliary buffers can be queried by calling glGet with the argument GL_AUX_BUFFERS.

GL_INVALID_ENUM is generated if one of the values in bufs is not an accepted value.

GL_INVALID_ENUM is generated if n is less than 0.

GL_INVALID_OPERATION is generated if a symbolic constant other than GL_NONE appears more than once in bufs.

GL_INVALID_OPERATION is generated if any of the entries in bufs (other than GL_NONE ) indicates a color buffer that does not exist in the current GL context.

GL_INVALID_VALUE is generated if n is greater than GL_MAX_DRAW_BUFFERS.

GL_INVALID_OPERATION is generated if glDrawBuffers is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDrawBuffer mode

Specify which color buffers are to be drawn into.

mode

Specifies up to four color buffers to be drawn into. Symbolic constants GL_NONE, GL_FRONT_LEFT, GL_FRONT_RIGHT, GL_BACK_LEFT, GL_BACK_RIGHT, GL_FRONT, GL_BACK, GL_LEFT, GL_RIGHT, GL_FRONT_AND_BACK, and GL_AUXi, where i is between 0 and the value of GL_AUX_BUFFERS minus 1, are accepted. (GL_AUX_BUFFERS is not the upper limit; use glGet to query the number of available aux buffers.) The initial value is GL_FRONT for single-buffered contexts, and GL_BACK for double-buffered contexts.

When colors are written to the frame buffer, they are written into the color buffers specified by glDrawBuffer. The specifications are as follows:

GL_NONE

No color buffers are written.

GL_FRONT_LEFT

Only the front left color buffer is written.

GL_FRONT_RIGHT

Only the front right color buffer is written.

GL_BACK_LEFT

Only the back left color buffer is written.

GL_BACK_RIGHT

Only the back right color buffer is written.

GL_FRONT

Only the front left and front right color buffers are written. If there is no front right color buffer, only the front left color buffer is written.

GL_BACK

Only the back left and back right color buffers are written. If there is no back right color buffer, only the back left color buffer is written.

GL_LEFT

Only the front left and back left color buffers are written. If there is no back left color buffer, only the front left color buffer is written.

GL_RIGHT

Only the front right and back right color buffers are written. If there is no back right color buffer, only the front right color buffer is written.

GL_FRONT_AND_BACK

All the front and back color buffers (front left, front right, back left, back right) are written. If there are no back color buffers, only the front left and front right color buffers are written. If there are no right color buffers, only the front left and back left color buffers are written. If there are no right or back color buffers, only the front left color buffer is written.

GL_AUXi

Only auxiliary color buffer i is written.

If more than one color buffer is selected for drawing, then blending or logical operations are computed and applied independently for each color buffer and can produce different results in each buffer.

Monoscopic contexts include only left buffers, and stereoscopic contexts include both left and right buffers. Likewise, single-buffered contexts include only front buffers, and double-buffered contexts include both front and back buffers. The context is selected at GL initialization.

GL_INVALID_ENUM is generated if mode is not an accepted value.

GL_INVALID_OPERATION is generated if none of the buffers indicated by mode exists.

GL_INVALID_OPERATION is generated if glDrawBuffer is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDrawElements mode count type indices

Render primitives from array data.

mode

Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.

count

Specifies the number of elements to be rendered.

type

Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.

indices

Specifies a pointer to the location where the indices are stored.

glDrawElements specifies multiple geometric primitives with very few subroutine calls. Instead of calling a GL function to pass each individual vertex, normal, texture coordinate, edge flag, or color, you can prespecify separate arrays of vertices, normals, and so on, and use them to construct a sequence of primitives with a single call to glDrawElements.

When glDrawElements is called, it uses count sequential elements from an enabled array, starting at indices to construct a sequence of geometric primitives. mode specifies what kind of primitives are constructed and how the array elements construct these primitives. If more than one array is enabled, each is used. If GL_VERTEX_ARRAY is not enabled, no geometric primitives are constructed.

Vertex attributes that are modified by glDrawElements have an unspecified value after glDrawElements returns. For example, if GL_COLOR_ARRAY is enabled, the value of the current color is undefined after glDrawElements executes. Attributes that aren’t modified maintain their previous values.

GL_INVALID_ENUM is generated if mode is not an accepted value.

GL_INVALID_VALUE is generated if count is negative.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an enabled array or the element array and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if glDrawElements is executed between the execution of glBegin and the corresponding glEnd.

Function: void glDrawPixels width height format type data

Write a block of pixels to the frame buffer.

width
height

Specify the dimensions of the pixel rectangle to be written into the frame buffer.

format

Specifies the format of the pixel data. Symbolic constants GL_COLOR_INDEX, GL_STENCIL_INDEX, GL_DEPTH_COMPONENT, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA are accepted.

type

Specifies the data type for data. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

data

Specifies a pointer to the pixel data.

glDrawPixels reads pixel data from memory and writes it into the frame buffer relative to the current raster position, provided that the raster position is valid. Use glRasterPos or glWindowPos to set the current raster position; use glGet with argument GL_CURRENT_RASTER_POSITION_VALID to determine if the specified raster position is valid, and glGet with argument GL_CURRENT_RASTER_POSITION to query the raster position.

Several parameters define the encoding of pixel data in memory and control the processing of the pixel data before it is placed in the frame buffer. These parameters are set with four commands: glPixelStore, glPixelTransfer, glPixelMap, and glPixelZoom. This reference page describes the effects on glDrawPixels of many, but not all, of the parameters specified by these four commands.

Data is read from data as a sequence of signed or unsigned bytes, signed or unsigned shorts, signed or unsigned integers, or single-precision floating-point values, depending on type. When type is one of GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, or GL_FLOAT each of these bytes, shorts, integers, or floating-point values is interpreted as one color or depth component, or one index, depending on format. When type is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_INT_8_8_8_8, or GL_UNSIGNED_INT_10_10_10_2, each unsigned value is interpreted as containing all the components for a single pixel, with the color components arranged according to format. When type is one of GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8_REV, or GL_UNSIGNED_INT_2_10_10_10_REV, each unsigned value is interpreted as containing all color components, specified by format, for a single pixel in a reversed order. Indices are always treated individually. Color components are treated as groups of one, two, three, or four values, again based on format. Both individual indices and groups of components are referred to as pixels. If type is GL_BITMAP, the data must be unsigned bytes, and format must be either GL_COLOR_INDEX or GL_STENCIL_INDEX. Each unsigned byte is treated as eight 1-bit pixels, with bit ordering determined by GL_UNPACK_LSB_FIRST (see glPixelStore).

width×height pixels are read from memory, starting at location data. By default, these pixels are taken from adjacent memory locations, except that after all width pixels are read, the read pointer is advanced to the next four-byte boundary. The four-byte row alignment is specified by glPixelStore with argument GL_UNPACK_ALIGNMENT, and it can be set to one, two, four, or eight bytes. Other pixel store parameters specify different read pointer advancements, both before the first pixel is read and after all width pixels are read. See the glPixelStore reference page for details on these options.

If a non-zero named buffer object is bound to the GL_PIXEL_UNPACK_BUFFER target (see glBindBuffer) while a block of pixels is specified, data is treated as a byte offset into the buffer object’s data store.

The width×height pixels that are read from memory are each operated on in the same way, based on the values of several parameters specified by glPixelTransfer and glPixelMap. The details of these operations, as well as the target buffer into which the pixels are drawn, are specific to the format of the pixels, as specified by format. format can assume one of 13 symbolic values:

GL_COLOR_INDEX

Each pixel is a single value, a color index. It is converted to fixed-point format, with an unspecified number of bits to the right of the binary point, regardless of the memory data type. Floating-point values convert to true fixed-point values. Signed and unsigned integer data is converted with all fraction bits set to 0. Bitmap data convert to either 0 or 1.

Each fixed-point index is then shifted left by GL_INDEX_SHIFT bits and added to GL_INDEX_OFFSET. If GL_INDEX_SHIFT is negative, the shift is to the right. In either case, zero bits fill otherwise unspecified bit locations in the result.

If the GL is in RGBA mode, the resulting index is converted to an RGBA pixel with the help of the GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, and GL_PIXEL_MAP_I_TO_A tables. If the GL is in color index mode, and if GL_MAP_COLOR is true, the index is replaced with the value that it references in lookup table GL_PIXEL_MAP_I_TO_I. Whether the lookup replacement of the index is done or not, the integer part of the index is then ANDed with 2^b-1, where b is the number of bits in a color index buffer.

The GL then converts the resulting indices or RGBA colors to fragments by attaching the current raster position z coordinate and texture coordinates to each pixel, then assigning x and y window coordinates to the nth fragment such that x_n=x_r+n%widthy_n=y_r+⌊n/width,⌋

where (x_r,y_r) is the current raster position. These pixel fragments are then treated just like the fragments generated by rasterizing points, lines, or polygons. Texture mapping, fog, and all the fragment operations are applied before the fragments are written to the frame buffer.

GL_STENCIL_INDEX

Each pixel is a single value, a stencil index. It is converted to fixed-point format, with an unspecified number of bits to the right of the binary point, regardless of the memory data type. Floating-point values convert to true fixed-point values. Signed and unsigned integer data is converted with all fraction bits set to 0. Bitmap data convert to either 0 or 1.

Each fixed-point index is then shifted left by GL_INDEX_SHIFT bits, and added to GL_INDEX_OFFSET. If GL_INDEX_SHIFT is negative, the shift is to the right. In either case, zero bits fill otherwise unspecified bit locations in the result. If GL_MAP_STENCIL is true, the index is replaced with the value that it references in lookup table GL_PIXEL_MAP_S_TO_S. Whether the lookup replacement of the index is done or not, the integer part of the index is then ANDed with 2^b-1, where b is the number of bits in the stencil buffer. The resulting stencil indices are then written to the stencil buffer such that the nth index is written to location

x_n=x_r+n%widthy_n=y_r+⌊n/width,⌋

where (x_r,y_r) is the current raster position. Only the pixel ownership test, the scissor test, and the stencil writemask affect these write operations.

GL_DEPTH_COMPONENT

Each pixel is a single-depth component. Floating-point data is converted directly to an internal floating-point format with unspecified precision. Signed integer data is mapped linearly to the internal floating-point format such that the most positive representable integer value maps to 1.0, and the most negative representable value maps to -1.0. Unsigned integer data is mapped similarly: the largest integer value maps to 1.0, and 0 maps to 0.0. The resulting floating-point depth value is then multiplied by GL_DEPTH_SCALE and added to GL_DEPTH_BIAS. The result is clamped to the range [0,1].

The GL then converts the resulting depth components to fragments by attaching the current raster position color or color index and texture coordinates to each pixel, then assigning x and y window coordinates to the nth fragment such that

x_n=x_r+n%widthy_n=y_r+⌊n/width,⌋

where (x_r,y_r) is the current raster position. These pixel fragments are then treated just like the fragments generated by rasterizing points, lines, or polygons. Texture mapping, fog, and all the fragment operations are applied before the fragments are written to the frame buffer.

GL_RGBA
GL_BGRA

Each pixel is a four-component group: For GL_RGBA, the red component is first, followed by green, followed by blue, followed by alpha; for GL_BGRA the order is blue, green, red and then alpha. Floating-point values are converted directly to an internal floating-point format with unspecified precision. Signed integer values are mapped linearly to the internal floating-point format such that the most positive representable integer value maps to 1.0, and the most negative representable value maps to -1.0. (Note that this mapping does not convert 0 precisely to 0.0.) Unsigned integer data is mapped similarly: The largest integer value maps to 1.0, and 0 maps to 0.0. The resulting floating-point color values are then multiplied by GL_c_SCALE and added to GL_c_BIAS, where c is RED, GREEN, BLUE, and ALPHA for the respective color components. The results are clamped to the range [0,1].

If GL_MAP_COLOR is true, each color component is scaled by the size of lookup table GL_PIXEL_MAP_c_TO_c, then replaced by the value that it references in that table. c is R, G, B, or A respectively.

The GL then converts the resulting RGBA colors to fragments by attaching the current raster position z coordinate and texture coordinates to each pixel, then assigning x and y window coordinates to the nth fragment such that

x_n=x_r+n%widthy_n=y_r+⌊n/width,⌋

where (x_r,y_r) is the current raster position. These pixel fragments are then treated just like the fragments generated by rasterizing points, lines, or polygons. Texture mapping, fog, and all the fragment operations are applied before the fragments are written to the frame buffer.

GL_RED

Each pixel is a single red component. This component is converted to the internal floating-point format in the same way the red component of an RGBA pixel is. It is then converted to an RGBA pixel with green and blue set to 0, and alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.

GL_GREEN

Each pixel is a single green component. This component is converted to the internal floating-point format in the same way the green component of an RGBA pixel is. It is then converted to an RGBA pixel with red and blue set to 0, and alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.

GL_BLUE

Each pixel is a single blue component. This component is converted to the internal floating-point format in the same way the blue component of an RGBA pixel is. It is then converted to an RGBA pixel with red and green set to 0, and alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.

GL_ALPHA

Each pixel is a single alpha component. This component is converted to the internal floating-point format in the same way the alpha component of an RGBA pixel is. It is then converted to an RGBA pixel with red, green, and blue set to 0. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.

GL_RGB
GL_BGR

Each pixel is a three-component group: red first, followed by green, followed by blue; for GL_BGR, the first component is blue, followed by green and then red. Each component is converted to the internal floating-point format in the same way the red, green, and blue components of an RGBA pixel are. The color triple is converted to an RGBA pixel with alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.

GL_LUMINANCE

Each pixel is a single luminance component. This component is converted to the internal floating-point format in the same way the red component of an RGBA pixel is. It is then converted to an RGBA pixel with red, green, and blue set to the converted luminance value, and alpha set to 1. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.

GL_LUMINANCE_ALPHA

Each pixel is a two-component group: luminance first, followed by alpha. The two components are converted to the internal floating-point format in the same way the red component of an RGBA pixel is. They are then converted to an RGBA pixel with red, green, and blue set to the converted luminance value, and alpha set to the converted alpha value. After this conversion, the pixel is treated as if it had been read as an RGBA pixel.

The following table summarizes the meaning of the valid constants for the type parameter:

Type

Corresponding Type

GL_UNSIGNED_BYTE

unsigned 8-bit integer

GL_BYTE

signed 8-bit integer

GL_BITMAP

single bits in unsigned 8-bit integers

GL_UNSIGNED_SHORT

unsigned 16-bit integer

GL_SHORT

signed 16-bit integer

GL_UNSIGNED_INT

unsigned 32-bit integer

GL_INT

32-bit integer

GL_FLOAT

single-precision floating-point

GL_UNSIGNED_BYTE_3_3_2

unsigned 8-bit integer

GL_UNSIGNED_BYTE_2_3_3_REV

unsigned 8-bit integer with reversed component ordering

GL_UNSIGNED_SHORT_5_6_5

unsigned 16-bit integer

GL_UNSIGNED_SHORT_5_6_5_REV

unsigned 16-bit integer with reversed component ordering

GL_UNSIGNED_SHORT_4_4_4_4

unsigned 16-bit integer

GL_UNSIGNED_SHORT_4_4_4_4_REV

unsigned 16-bit integer with reversed component ordering

GL_UNSIGNED_SHORT_5_5_5_1

unsigned 16-bit integer

GL_UNSIGNED_SHORT_1_5_5_5_REV

unsigned 16-bit integer with reversed component ordering

GL_UNSIGNED_INT_8_8_8_8

unsigned 32-bit integer

GL_UNSIGNED_INT_8_8_8_8_REV

unsigned 32-bit integer with reversed component ordering

GL_UNSIGNED_INT_10_10_10_2

unsigned 32-bit integer

GL_UNSIGNED_INT_2_10_10_10_REV

unsigned 32-bit integer with reversed component ordering

The rasterization described so far assumes pixel zoom factors of 1. If glPixelZoom is used to change the x and y pixel zoom factors, pixels are converted to fragments as follows. If (x_r,y_r) is the current raster position, and a given pixel is in the nth column and mth row of the pixel rectangle, then fragments are generated for pixels whose centers are in the rectangle with corners at

(x_r+zoom_x,⁢n,y_r+zoom_y,⁢m)(x_r+zoom_x,⁡(n+1,),y_r+zoom_y,⁡(m+1,))

where zoom_x is the value of GL_ZOOM_X and zoom_y is the value of GL_ZOOM_Y.

GL_INVALID_ENUM is generated if format or type is not one of the accepted values.

GL_INVALID_ENUM is generated if type is GL_BITMAP and format is not either GL_COLOR_INDEX or GL_STENCIL_INDEX.

GL_INVALID_VALUE is generated if either width or height is negative.

GL_INVALID_OPERATION is generated if format is GL_STENCIL_INDEX and there is no stencil buffer.

GL_INVALID_OPERATION is generated if format is GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_BGR, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA, and the GL is in color index mode.

GL_INVALID_OPERATION is generated if format is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.

GL_INVALID_OPERATION is generated if format is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and format is neither GL_RGBA nor GL_BGRA.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_UNPACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glDrawPixels is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glDrawRangeElements mode start end count type indices

Render primitives from array data.

mode

Specifies what kind of primitives to render. Symbolic constants GL_POINTS, GL_LINE_STRIP, GL_LINE_LOOP, GL_LINES, GL_TRIANGLE_STRIP, GL_TRIANGLE_FAN, GL_TRIANGLES, GL_QUAD_STRIP, GL_QUADS, and GL_POLYGON are accepted.

start

Specifies the minimum array index contained in indices.

end

Specifies the maximum array index contained in indices.

count

Specifies the number of elements to be rendered.

type

Specifies the type of the values in indices. Must be one of GL_UNSIGNED_BYTE, GL_UNSIGNED_SHORT, or GL_UNSIGNED_INT.

indices

Specifies a pointer to the location where the indices are stored.

glDrawRangeElements is a restricted form of glDrawElements. mode, start, end, and count match the corresponding arguments to glDrawElements, with the additional constraint that all values in the arrays count must lie between start and end, inclusive.

Implementations denote recommended maximum amounts of vertex and index data, which may be queried by calling glGet with argument GL_MAX_ELEMENTS_VERTICES and GL_MAX_ELEMENTS_INDICES. If end-start+1 is greater than the value of GL_MAX_ELEMENTS_VERTICES, or if count is greater than the value of GL_MAX_ELEMENTS_INDICES, then the call may operate at reduced performance. There is no requirement that all vertices in the range [start,end] be referenced. However, the implementation may partially process unused vertices, reducing performance from what could be achieved with an optimal index set.

When glDrawRangeElements is called, it uses count sequential elements from an enabled array, starting at start to construct a sequence of geometric primitives. mode specifies what kind of primitives are constructed, and how the array elements construct these primitives. If more than one array is enabled, each is used. If GL_VERTEX_ARRAY is not enabled, no geometric primitives are constructed.

Vertex attributes that are modified by glDrawRangeElements have an unspecified value after glDrawRangeElements returns. For example, if GL_COLOR_ARRAY is enabled, the value of the current color is undefined after glDrawRangeElements executes. Attributes that aren’t modified maintain their previous values.

It is an error for indices to lie outside the range [start,end], but implementations may not check for this situation. Such indices cause implementation-dependent behavior.

GL_INVALID_ENUM is generated if mode is not an accepted value.

GL_INVALID_VALUE is generated if count is negative.

GL_INVALID_VALUE is generated if end<start.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to an enabled array or the element array and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if glDrawRangeElements is executed between the execution of glBegin and the corresponding glEnd.

Function: void glEdgeFlagPointer stride pointer

Define an array of edge flags.

stride

Specifies the byte offset between consecutive edge flags. If stride is 0, the edge flags are understood to be tightly packed in the array. The initial value is 0.

pointer

Specifies a pointer to the first edge flag in the array. The initial value is 0.

glEdgeFlagPointer specifies the location and data format of an array of boolean edge flags to use when rendering. stride specifies the byte stride from one edge flag to the next, allowing vertices and attributes to be packed into a single array or stored in separate arrays.

If a non-zero named buffer object is bound to the GL_ARRAY_BUFFER target (see glBindBuffer) while an edge flag array is specified, pointer is treated as a byte offset into the buffer object’s data store. Also, the buffer object binding (GL_ARRAY_BUFFER_BINDING) is saved as edge flag vertex array client-side state (GL_EDGE_FLAG_ARRAY_BUFFER_BINDING).

When an edge flag array is specified, stride and pointer are saved as client-side state, in addition to the current vertex array buffer object binding.

To enable and disable the edge flag array, call glEnableClientState and glDisableClientState with the argument GL_EDGE_FLAG_ARRAY. If enabled, the edge flag array is used when glDrawArrays, glMultiDrawArrays, glDrawElements, glMultiDrawElements, glDrawRangeElements, or glArrayElement is called.

GL_INVALID_ENUM is generated if stride is negative.

Function: void glEdgeFlag flag
Function: void glEdgeFlagv flag

Flag edges as either boundary or nonboundary.

flag

Specifies the current edge flag value, either GL_TRUE or GL_FALSE. The initial value is GL_TRUE.

Each vertex of a polygon, separate triangle, or separate quadrilateral specified between a glBegin/glEnd pair is marked as the start of either a boundary or nonboundary edge. If the current edge flag is true when the vertex is specified, the vertex is marked as the start of a boundary edge. Otherwise, the vertex is marked as the start of a nonboundary edge. glEdgeFlag sets the edge flag bit to GL_TRUE if flag is GL_TRUE and to GL_FALSE otherwise.

The vertices of connected triangles and connected quadrilaterals are always marked as boundary, regardless of the value of the edge flag.

Boundary and nonboundary edge flags on vertices are significant only if GL_POLYGON_MODE is set to GL_POINT or GL_LINE. See glPolygonMode.

Function: void glEnableClientState cap
Function: void glDisableClientState cap

Enable or disable client-side capability.

cap

Specifies the capability to enable. Symbolic constants GL_COLOR_ARRAY, GL_EDGE_FLAG_ARRAY, GL_FOG_COORD_ARRAY, GL_INDEX_ARRAY, GL_NORMAL_ARRAY, GL_SECONDARY_COLOR_ARRAY, GL_TEXTURE_COORD_ARRAY, and GL_VERTEX_ARRAY are accepted.

glEnableClientState and glDisableClientState enable or disable individual client-side capabilities. By default, all client-side capabilities are disabled. Both glEnableClientState and glDisableClientState take a single argument, cap, which can assume one of the following values:

GL_COLOR_ARRAY

If enabled, the color array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElementsglMultiDrawArrays, or glMultiDrawElements is called. See glColorPointer.

GL_EDGE_FLAG_ARRAY

If enabled, the edge flag array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElementsglMultiDrawArrays, or glMultiDrawElements is called. See glEdgeFlagPointer.

GL_FOG_COORD_ARRAY

If enabled, the fog coordinate array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElementsglMultiDrawArrays, or glMultiDrawElements is called. See glFogCoordPointer.

GL_INDEX_ARRAY

If enabled, the index array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElementsglMultiDrawArrays, or glMultiDrawElements is called. See glIndexPointer.

GL_NORMAL_ARRAY

If enabled, the normal array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElementsglMultiDrawArrays, or glMultiDrawElements is called. See glNormalPointer.

GL_SECONDARY_COLOR_ARRAY

If enabled, the secondary color array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElementsglMultiDrawArrays, or glMultiDrawElements is called. See glColorPointer.

GL_TEXTURE_COORD_ARRAY

If enabled, the texture coordinate array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElementsglMultiDrawArrays, or glMultiDrawElements is called. See glTexCoordPointer.

GL_VERTEX_ARRAY

If enabled, the vertex array is enabled for writing and used during rendering when glArrayElement, glDrawArrays, glDrawElements, glDrawRangeElementsglMultiDrawArrays, or glMultiDrawElements is called. See glVertexPointer.

GL_INVALID_ENUM is generated if cap is not an accepted value.

glEnableClientState is not allowed between the execution of glBegin and the corresponding glEnd, but an error may or may not be generated. If no error is generated, the behavior is undefined.

Function: void glEnableVertexAttribArray index
Function: void glDisableVertexAttribArray index

Enable or disable a generic vertex attribute array.

index

Specifies the index of the generic vertex attribute to be enabled or disabled.

glEnableVertexAttribArray enables the generic vertex attribute array specified by index. glDisableVertexAttribArray disables the generic vertex attribute array specified by index. By default, all client-side capabilities are disabled, including all generic vertex attribute arrays. If enabled, the values in the generic vertex attribute array will be accessed and used for rendering when calls are made to vertex array commands such as glDrawArrays, glDrawElements, glDrawRangeElements, glArrayElement, glMultiDrawElements, or glMultiDrawArrays.

GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX_ATTRIBS.

GL_INVALID_OPERATION is generated if either glEnableVertexAttribArray or glDisableVertexAttribArray is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glEnable cap
Function: void glDisable cap

Enable or disable server-side GL capabilities.

cap

Specifies a symbolic constant indicating a GL capability.

glEnable and glDisable enable and disable various capabilities. Use glIsEnabled or glGet to determine the current setting of any capability. The initial value for each capability with the exception of GL_DITHER and GL_MULTISAMPLE is GL_FALSE. The initial value for GL_DITHER and GL_MULTISAMPLE is GL_TRUE.

Both glEnable and glDisable take a single argument, cap, which can assume one of the following values:

GL_ALPHA_TEST

If enabled, do alpha testing. See glAlphaFunc.

GL_AUTO_NORMAL

If enabled, generate normal vectors when either GL_MAP2_VERTEX_3 or GL_MAP2_VERTEX_4 is used to generate vertices. See glMap2.

GL_BLEND

If enabled, blend the computed fragment color values with the values in the color buffers. See glBlendFunc.

GL_CLIP_PLANEi

If enabled, clip geometry against user-defined clipping plane i. See glClipPlane.

GL_COLOR_LOGIC_OP

If enabled, apply the currently selected logical operation to the computed fragment color and color buffer values. See glLogicOp.

GL_COLOR_MATERIAL

If enabled, have one or more material parameters track the current color. See glColorMaterial.

GL_COLOR_SUM

If enabled and no fragment shader is active, add the secondary color value to the computed fragment color. See glSecondaryColor.

GL_COLOR_TABLE

If enabled, perform a color table lookup on the incoming RGBA color values. See glColorTable.

GL_CONVOLUTION_1D

If enabled, perform a 1D convolution operation on incoming RGBA color values. See glConvolutionFilter1D.

GL_CONVOLUTION_2D

If enabled, perform a 2D convolution operation on incoming RGBA color values. See glConvolutionFilter2D.

GL_CULL_FACE

If enabled, cull polygons based on their winding in window coordinates. See glCullFace.

GL_DEPTH_TEST

If enabled, do depth comparisons and update the depth buffer. Note that even if the depth buffer exists and the depth mask is non-zero, the depth buffer is not updated if the depth test is disabled. See glDepthFunc and glDepthRange.

GL_DITHER

If enabled, dither color components or indices before they are written to the color buffer.

GL_FOG

If enabled and no fragment shader is active, blend a fog color into the post-texturing color. See glFog.

GL_HISTOGRAM

If enabled, histogram incoming RGBA color values. See glHistogram.

GL_INDEX_LOGIC_OP

If enabled, apply the currently selected logical operation to the incoming index and color buffer indices. See glLogicOp.

GL_LIGHTi

If enabled, include light i in the evaluation of the lighting equation. See glLightModel and glLight.

GL_LIGHTING

If enabled and no vertex shader is active, use the current lighting parameters to compute the vertex color or index. Otherwise, simply associate the current color or index with each vertex. See glMaterial, glLightModel, and glLight.

GL_LINE_SMOOTH

If enabled, draw lines with correct filtering. Otherwise, draw aliased lines. See glLineWidth.

GL_LINE_STIPPLE

If enabled, use the current line stipple pattern when drawing lines. See glLineStipple.

GL_MAP1_COLOR_4

If enabled, calls to glEvalCoord1, glEvalMesh1, and glEvalPoint1 generate RGBA values. See glMap1.

GL_MAP1_INDEX

If enabled, calls to glEvalCoord1, glEvalMesh1, and glEvalPoint1 generate color indices. See glMap1.

GL_MAP1_NORMAL

If enabled, calls to glEvalCoord1, glEvalMesh1, and glEvalPoint1 generate normals. See glMap1.

GL_MAP1_TEXTURE_COORD_1

If enabled, calls to glEvalCoord1, glEvalMesh1, and glEvalPoint1 generate s texture coordinates. See glMap1.

GL_MAP1_TEXTURE_COORD_2

If enabled, calls to glEvalCoord1, glEvalMesh1, and glEvalPoint1 generate s and t texture coordinates. See glMap1.

GL_MAP1_TEXTURE_COORD_3

If enabled, calls to glEvalCoord1, glEvalMesh1, and glEvalPoint1 generate s, t, and r texture coordinates. See glMap1.

GL_MAP1_TEXTURE_COORD_4

If enabled, calls to glEvalCoord1, glEvalMesh1, and glEvalPoint1 generate s, t, r, and q texture coordinates. See glMap1.

GL_MAP1_VERTEX_3

If enabled, calls to glEvalCoord1, glEvalMesh1, and glEvalPoint1 generate x, y, and z vertex coordinates. See glMap1.

GL_MAP1_VERTEX_4

If enabled, calls to glEvalCoord1, glEvalMesh1, and glEvalPoint1 generate homogeneous x, y, z, and w vertex coordinates. See glMap1.

GL_MAP2_COLOR_4

If enabled, calls to glEvalCoord2, glEvalMesh2, and glEvalPoint2 generate RGBA values. See glMap2.

GL_MAP2_INDEX

If enabled, calls to glEvalCoord2, glEvalMesh2, and glEvalPoint2 generate color indices. See glMap2.

GL_MAP2_NORMAL

If enabled, calls to glEvalCoord2, glEvalMesh2, and glEvalPoint2 generate normals. See glMap2.

GL_MAP2_TEXTURE_COORD_1

If enabled, calls to glEvalCoord2, glEvalMesh2, and glEvalPoint2 generate s texture coordinates. See glMap2.

GL_MAP2_TEXTURE_COORD_2

If enabled, calls to glEvalCoord2, glEvalMesh2, and glEvalPoint2 generate s and t texture coordinates. See glMap2.

GL_MAP2_TEXTURE_COORD_3

If enabled, calls to glEvalCoord2, glEvalMesh2, and glEvalPoint2 generate s, t, and r texture coordinates. See glMap2.

GL_MAP2_TEXTURE_COORD_4

If enabled, calls to glEvalCoord2, glEvalMesh2, and glEvalPoint2 generate s, t, r, and q texture coordinates. See glMap2.

GL_MAP2_VERTEX_3

If enabled, calls to glEvalCoord2, glEvalMesh2, and glEvalPoint2 generate x, y, and z vertex coordinates. See glMap2.

GL_MAP2_VERTEX_4

If enabled, calls to glEvalCoord2, glEvalMesh2, and glEvalPoint2 generate homogeneous x, y, z, and w vertex coordinates. See glMap2.

GL_MINMAX

If enabled, compute the minimum and maximum values of incoming RGBA color values. See glMinmax.

GL_MULTISAMPLE

If enabled, use multiple fragment samples in computing the final color of a pixel. See glSampleCoverage.

GL_NORMALIZE

If enabled and no vertex shader is active, normal vectors are normalized to unit length after transformation and before lighting. This method is generally less efficient than GL_RESCALE_NORMAL. See glNormal and glNormalPointer.

GL_POINT_SMOOTH

If enabled, draw points with proper filtering. Otherwise, draw aliased points. See glPointSize.

GL_POINT_SPRITE

If enabled, calculate texture coordinates for points based on texture environment and point parameter settings. Otherwise texture coordinates are constant across points.

GL_POLYGON_OFFSET_FILL

If enabled, and if the polygon is rendered in GL_FILL mode, an offset is added to depth values of a polygon’s fragments before the depth comparison is performed. See glPolygonOffset.

GL_POLYGON_OFFSET_LINE

If enabled, and if the polygon is rendered in GL_LINE mode, an offset is added to depth values of a polygon’s fragments before the depth comparison is performed. See glPolygonOffset.

GL_POLYGON_OFFSET_POINT

If enabled, an offset is added to depth values of a polygon’s fragments before the depth comparison is performed, if the polygon is rendered in GL_POINT mode. See glPolygonOffset.

GL_POLYGON_SMOOTH

If enabled, draw polygons with proper filtering. Otherwise, draw aliased polygons. For correct antialiased polygons, an alpha buffer is needed and the polygons must be sorted front to back.

GL_POLYGON_STIPPLE

If enabled, use the current polygon stipple pattern when rendering polygons. See glPolygonStipple.

GL_POST_COLOR_MATRIX_COLOR_TABLE

If enabled, perform a color table lookup on RGBA color values after color matrix transformation. See glColorTable.

GL_POST_CONVOLUTION_COLOR_TABLE

If enabled, perform a color table lookup on RGBA color values after convolution. See glColorTable.

GL_RESCALE_NORMAL

If enabled and no vertex shader is active, normal vectors are scaled after transformation and before lighting by a factor computed from the modelview matrix. If the modelview matrix scales space uniformly, this has the effect of restoring the transformed normal to unit length. This method is generally more efficient than GL_NORMALIZE. See glNormal and glNormalPointer.

GL_SAMPLE_ALPHA_TO_COVERAGE

If enabled, compute a temporary coverage value where each bit is determined by the alpha value at the corresponding sample location. The temporary coverage value is then ANDed with the fragment coverage value.

GL_SAMPLE_ALPHA_TO_ONE

If enabled, each sample alpha value is replaced by the maximum representable alpha value.

GL_SAMPLE_COVERAGE

If enabled, the fragment’s coverage is ANDed with the temporary coverage value. If GL_SAMPLE_COVERAGE_INVERT is set to GL_TRUE, invert the coverage value. See glSampleCoverage.

GL_SEPARABLE_2D

If enabled, perform a two-dimensional convolution operation using a separable convolution filter on incoming RGBA color values. See glSeparableFilter2D.

GL_SCISSOR_TEST

If enabled, discard fragments that are outside the scissor rectangle. See glScissor.

GL_STENCIL_TEST

If enabled, do stencil testing and update the stencil buffer. See glStencilFunc and glStencilOp.

GL_TEXTURE_1D

If enabled and no fragment shader is active, one-dimensional texturing is performed (unless two- or three-dimensional or cube-mapped texturing is also enabled). See glTexImage1D.

GL_TEXTURE_2D

If enabled and no fragment shader is active, two-dimensional texturing is performed (unless three-dimensional or cube-mapped texturing is also enabled). See glTexImage2D.

GL_TEXTURE_3D

If enabled and no fragment shader is active, three-dimensional texturing is performed (unless cube-mapped texturing is also enabled). See glTexImage3D.

GL_TEXTURE_CUBE_MAP

If enabled and no fragment shader is active, cube-mapped texturing is performed. See glTexImage2D.

GL_TEXTURE_GEN_Q

If enabled and no vertex shader is active, the q texture coordinate is computed using the texture generation function defined with glTexGen. Otherwise, the current q texture coordinate is used. See glTexGen.

GL_TEXTURE_GEN_R

If enabled and no vertex shader is active, the r texture coordinate is computed using the texture generation function defined with glTexGen. Otherwise, the current r texture coordinate is used. See glTexGen.

GL_TEXTURE_GEN_S

If enabled and no vertex shader is active, the s texture coordinate is computed using the texture generation function defined with glTexGen. Otherwise, the current s texture coordinate is used. See glTexGen.

GL_TEXTURE_GEN_T

If enabled and no vertex shader is active, the t texture coordinate is computed using the texture generation function defined with glTexGen. Otherwise, the current t texture coordinate is used. See glTexGen.

GL_VERTEX_PROGRAM_POINT_SIZE

If enabled and a vertex shader is active, then the derived point size is taken from the (potentially clipped) shader builtin gl_PointSize and clamped to the implementation-dependent point size range.

GL_VERTEX_PROGRAM_TWO_SIDE

If enabled and a vertex shader is active, it specifies that the GL will choose between front and back colors based on the polygon’s face direction of which the vertex being shaded is a part. It has no effect on points or lines.

GL_INVALID_ENUM is generated if cap is not one of the values listed previously.

GL_INVALID_OPERATION is generated if glEnable or glDisable is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glEvalCoord1f u
Function: void glEvalCoord1d u
Function: void glEvalCoord2f u v
Function: void glEvalCoord2d u v
Function: void glEvalCoord1fv u
Function: void glEvalCoord1dv u
Function: void glEvalCoord2fv u
Function: void glEvalCoord2dv u

Evaluate enabled one- and two-dimensional maps.

u

Specifies a value that is the domain coordinate u to the basis function defined in a previous glMap1 or glMap2 command.

v

Specifies a value that is the domain coordinate v to the basis function defined in a previous glMap2 command. This argument is not present in a glEvalCoord1 command.

glEvalCoord1 evaluates enabled one-dimensional maps at argument u. glEvalCoord2 does the same for two-dimensional maps using two domain values, u and v. To define a map, call glMap1 and glMap2; to enable and disable it, call glEnable and glDisable.

When one of the glEvalCoord commands is issued, all currently enabled maps of the indicated dimension are evaluated. Then, for each enabled map, it is as if the corresponding GL command had been issued with the computed value. That is, if GL_MAP1_INDEX or GL_MAP2_INDEX is enabled, a glIndex command is simulated. If GL_MAP1_COLOR_4 or GL_MAP2_COLOR_4 is enabled, a glColor command is simulated. If GL_MAP1_NORMAL or GL_MAP2_NORMAL is enabled, a normal vector is produced, and if any of GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, or GL_MAP2_TEXTURE_COORD_4 is enabled, then an appropriate glTexCoord command is simulated.

For color, color index, normal, and texture coordinates the GL uses evaluated values instead of current values for those evaluations that are enabled, and current values otherwise, However, the evaluated values do not update the current values. Thus, if glVertex commands are interspersed with glEvalCoord commands, the color, normal, and texture coordinates associated with the glVertex commands are not affected by the values generated by the glEvalCoord commands, but only by the most recent glColor, glIndex, glNormal, and glTexCoord commands.

No commands are issued for maps that are not enabled. If more than one texture evaluation is enabled for a particular dimension (for example, GL_MAP2_TEXTURE_COORD_1 and GL_MAP2_TEXTURE_COORD_2), then only the evaluation of the map that produces the larger number of coordinates (in this case, GL_MAP2_TEXTURE_COORD_2) is carried out. GL_MAP1_VERTEX_4 overrides GL_MAP1_VERTEX_3, and GL_MAP2_VERTEX_4 overrides GL_MAP2_VERTEX_3, in the same manner. If neither a three- nor a four-component vertex map is enabled for the specified dimension, the glEvalCoord command is ignored.

If you have enabled automatic normal generation, by calling glEnable with argument GL_AUTO_NORMAL, glEvalCoord2 generates surface normals analytically, regardless of the contents or enabling of the GL_MAP2_NORMAL map. Let

m=∂p,/∂u,,×∂p,/∂v,,

Then the generated normal n is n=m/∥m,∥,

If automatic normal generation is disabled, the corresponding normal map GL_MAP2_NORMAL, if enabled, is used to produce a normal. If neither automatic normal generation nor a normal map is enabled, no normal is generated for glEvalCoord2 commands.

Function: void glEvalMesh1 mode i1 i2
Function: void glEvalMesh2 mode i1 i2 j1 j2

Compute a one- or two-dimensional grid of points or lines.

mode

In glEvalMesh1, specifies whether to compute a one-dimensional mesh of points or lines. Symbolic constants GL_POINT and GL_LINE are accepted.

i1
i2

Specify the first and last integer values for grid domain variable i.

glMapGrid and glEvalMesh are used in tandem to efficiently generate and evaluate a series of evenly-spaced map domain values. glEvalMesh steps through the integer domain of a one- or two-dimensional grid, whose range is the domain of the evaluation maps specified by glMap1 and glMap2. mode determines whether the resulting vertices are connected as points, lines, or filled polygons.

In the one-dimensional case, glEvalMesh1, the mesh is generated as if the following code fragment were executed:

where

glBegin( type );
for ( i = i1; i <= i2; i += 1 )
   glEvalCoord1( i·Δu+u_1 );
glEnd(); 

Δu=(u_2-u_1,)/n

and n, u_1, and u_2 are the arguments to the most recent glMapGrid1 command. type is GL_POINTS if mode is GL_POINT, or GL_LINES if mode is GL_LINE.

The one absolute numeric requirement is that if i=n, then the value computed from i·Δu+u_1 is exactly u_2.

In the two-dimensional case, glEvalMesh2, let .cp Δu=(u_2-u_1,)/n

Δv=(v_2-v_1,)/m

where n, u_1, u_2, m, v_1, and v_2 are the arguments to the most recent glMapGrid2 command. Then, if mode is GL_FILL, the glEvalMesh2 command is equivalent to:

for ( j = j1; j < j2; j += 1 ) {
   glBegin( GL_QUAD_STRIP );
   for ( i = i1; i <= i2; i += 1 ) {
      glEvalCoord2( i·Δu+u_1,j·Δv+v_1 );
      glEvalCoord2( i·Δu+u_1,(j+1,)·Δv+v_1 );
   }
   glEnd();
} 

If mode is GL_LINE, then a call to glEvalMesh2 is equivalent to:

for ( j = j1; j <= j2; j += 1 ) {
   glBegin( GL_LINE_STRIP );
   for ( i = i1; i <= i2; i += 1 )
      glEvalCoord2( i·Δu+u_1,j·Δv+v_1 );
   glEnd();
}

for ( i = i1;  i <= i2; i += 1 ) {
   glBegin( GL_LINE_STRIP );
   for ( j = j1; j <= j1; j += 1 )
      glEvalCoord2( i·Δu+u_1,j·Δv+v_1 );
   glEnd();
} 

And finally, if mode is GL_POINT, then a call to glEvalMesh2 is equivalent to:

glBegin( GL_POINTS );
for ( j = j1; j <= j2; j += 1 )
   for ( i = i1; i <= i2; i += 1 )
      glEvalCoord2( i·Δu+u_1,j·Δv+v_1 );
glEnd(); 

In all three cases, the only absolute numeric requirements are that if i=n, then the value computed from i·Δu+u_1 is exactly u_2, and if j=m, then the value computed from j·Δv+v_1 is exactly v_2.

GL_INVALID_ENUM is generated if mode is not an accepted value.

GL_INVALID_OPERATION is generated if glEvalMesh is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glEvalPoint1 i
Function: void glEvalPoint2 i j

Generate and evaluate a single point in a mesh.

i

Specifies the integer value for grid domain variable i.

j

Specifies the integer value for grid domain variable j (glEvalPoint2 only).

glMapGrid and glEvalMesh are used in tandem to efficiently generate and evaluate a series of evenly spaced map domain values. glEvalPoint can be used to evaluate a single grid point in the same gridspace that is traversed by glEvalMesh. Calling glEvalPoint1 is equivalent to calling where Δu=(u_2-u_1,)/n

glEvalCoord1( i·Δu+u_1 ); 

and n, u_1, and u_2 are the arguments to the most recent glMapGrid1 command. The one absolute numeric requirement is that if i=n, then the value computed from i·Δu+u_1 is exactly u_2.

In the two-dimensional case, glEvalPoint2, let

Δu=(u_2-u_1,)/nΔv=(v_2-v_1,)/m

where n, u_1, u_2, m, v_1, and v_2 are the arguments to the most recent glMapGrid2 command. Then the glEvalPoint2 command is equivalent to calling The only absolute numeric requirements are that if i=n, then the value computed from i·Δu+u_1 is exactly u_2, and if j=m, then the value computed from j·Δv+v_1 is exactly v_2.

glEvalCoord2( i·Δu+u_1,j·Δv+v_1 ); 
Function: void glFeedbackBuffer size type buffer

Controls feedback mode.

size

Specifies the maximum number of values that can be written into buffer.

type

Specifies a symbolic constant that describes the information that will be returned for each vertex. GL_2D, GL_3D, GL_3D_COLOR, GL_3D_COLOR_TEXTURE, and GL_4D_COLOR_TEXTURE are accepted.

buffer

Returns the feedback data.

The glFeedbackBuffer function controls feedback. Feedback, like selection, is a GL mode. The mode is selected by calling glRenderMode with GL_FEEDBACK. When the GL is in feedback mode, no pixels are produced by rasterization. Instead, information about primitives that would have been rasterized is fed back to the application using the GL.

glFeedbackBuffer has three arguments: buffer is a pointer to an array of floating-point values into which feedback information is placed. size indicates the size of the array. type is a symbolic constant describing the information that is fed back for each vertex. glFeedbackBuffer must be issued before feedback mode is enabled (by calling glRenderMode with argument GL_FEEDBACK). Setting GL_FEEDBACK without establishing the feedback buffer, or calling glFeedbackBuffer while the GL is in feedback mode, is an error.

When glRenderMode is called while in feedback mode, it returns the number of entries placed in the feedback array and resets the feedback array pointer to the base of the feedback buffer. The returned value never exceeds size. If the feedback data required more room than was available in buffer, glRenderMode returns a negative value. To take the GL out of feedback mode, call glRenderMode with a parameter value other than GL_FEEDBACK.

While in feedback mode, each primitive, bitmap, or pixel rectangle that would be rasterized generates a block of values that are copied into the feedback array. If doing so would cause the number of entries to exceed the maximum, the block is partially written so as to fill the array (if there is any room left at all), and an overflow flag is set. Each block begins with a code indicating the primitive type, followed by values that describe the primitive’s vertices and associated data. Entries are also written for bitmaps and pixel rectangles. Feedback occurs after polygon culling and glPolygonMode interpretation of polygons has taken place, so polygons that are culled are not returned in the feedback buffer. It can also occur after polygons with more than three edges are broken up into triangles, if the GL implementation renders polygons by performing this decomposition.

The glPassThrough command can be used to insert a marker into the feedback buffer. See glPassThrough.

Following is the grammar for the blocks of values written into the feedback buffer. Each primitive is indicated with a unique identifying value followed by some number of vertices. Polygon entries include an integer value indicating how many vertices follow. A vertex is fed back as some number of floating-point values, as determined by type. Colors are fed back as four values in RGBA mode and one value in color index mode.

feedbackList ← feedbackItem feedbackList | feedbackItem feedbackItem ← point | lineSegment | polygon | bitmap | pixelRectangle | passThru point ←GL_POINT_TOKEN vertex lineSegment ←GL_LINE_TOKEN vertex vertex | GL_LINE_RESET_TOKEN vertex vertex polygon ←GL_POLYGON_TOKEN n polySpec polySpec ← polySpec vertex | vertex vertex vertex bitmap ←GL_BITMAP_TOKEN vertex pixelRectangle ←GL_DRAW_PIXEL_TOKEN vertex | GL_COPY_PIXEL_TOKEN vertex passThru ←GL_PASS_THROUGH_TOKEN value vertex ← 2d | 3d | 3dColor | 3dColorTexture | 4dColorTexture 2d ← value value 3d ← value value value 3dColor ← value value value color 3dColorTexture ← value value value color tex 4dColorTexture ← value value value value color tex color ← rgba | index rgba ← value value value value index ← value tex ← value value value value

value is a floating-point number, and n is a floating-point integer giving the number of vertices in the polygon. GL_POINT_TOKEN, GL_LINE_TOKEN, GL_LINE_RESET_TOKEN, GL_POLYGON_TOKEN, GL_BITMAP_TOKEN, GL_DRAW_PIXEL_TOKEN, GL_COPY_PIXEL_TOKEN and GL_PASS_THROUGH_TOKEN are symbolic floating-point constants. GL_LINE_RESET_TOKEN is returned whenever the line stipple pattern is reset. The data returned as a vertex depends on the feedback type.

The following table gives the correspondence between type and the number of values per vertex. k is 1 in color index mode and 4 in RGBA mode.

Type

Coordinates, Color, Texture, Total Number of Values

GL_2D

x, y, , , 2

GL_3D

x, y, z, , , 3

GL_3D_COLOR

x, y, z, k, , 3+k

GL_3D_COLOR_TEXTURE

x, y, z, k, 4 , 7+k

GL_4D_COLOR_TEXTURE

x, y, z, w, k, 4 , 8+k

Feedback vertex coordinates are in window coordinates, except w, which is in clip coordinates. Feedback colors are lighted, if lighting is enabled. Feedback texture coordinates are generated, if texture coordinate generation is enabled. They are always transformed by the texture matrix.

GL_INVALID_ENUM is generated if type is not an accepted value.

GL_INVALID_VALUE is generated if size is negative.

GL_INVALID_OPERATION is generated if glFeedbackBuffer is called while the render mode is GL_FEEDBACK, or if glRenderMode is called with argument GL_FEEDBACK before glFeedbackBuffer is called at least once.

GL_INVALID_OPERATION is generated if glFeedbackBuffer is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glFinish

Block until all GL execution is complete.

glFinish does not return until the effects of all previously called GL commands are complete. Such effects include all changes to GL state, all changes to connection state, and all changes to the frame buffer contents.

GL_INVALID_OPERATION is generated if glFinish is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glFlush

Force execution of GL commands in finite time.

Different GL implementations buffer commands in several different locations, including network buffers and the graphics accelerator itself. glFlush empties all of these buffers, causing all issued commands to be executed as quickly as they are accepted by the actual rendering engine. Though this execution may not be completed in any particular time period, it does complete in finite time.

Because any GL program might be executed over a network, or on an accelerator that buffers commands, all programs should call glFlush whenever they count on having all of their previously issued commands completed. For example, call glFlush before waiting for user input that depends on the generated image.

GL_INVALID_OPERATION is generated if glFlush is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glFogCoordPointer type stride pointer

Define an array of fog coordinates.

type

Specifies the data type of each fog coordinate. Symbolic constants GL_FLOAT, or GL_DOUBLE are accepted. The initial value is GL_FLOAT.

stride

Specifies the byte offset between consecutive fog coordinates. If stride is 0, the array elements are understood to be tightly packed. The initial value is 0.

pointer

Specifies a pointer to the first coordinate of the first fog coordinate in the array. The initial value is 0.

glFogCoordPointer specifies the location and data format of an array of fog coordinates to use when rendering. type specifies the data type of each fog coordinate, and stride specifies the byte stride from one fog coordinate to the next, allowing vertices and attributes to be packed into a single array or stored in separate arrays.

If a non-zero named buffer object is bound to the GL_ARRAY_BUFFER target (see glBindBuffer) while a fog coordinate array is specified, pointer is treated as a byte offset into the buffer object’s data store. Also, the buffer object binding (GL_ARRAY_BUFFER_BINDING) is saved as fog coordinate vertex array client-side state (GL_FOG_COORD_ARRAY_BUFFER_BINDING).

When a fog coordinate array is specified, type, stride, and pointer are saved as client-side state, in addition to the current vertex array buffer object binding.

To enable and disable the fog coordinate array, call glEnableClientState and glDisableClientState with the argument GL_FOG_COORD_ARRAY. If enabled, the fog coordinate array is used when glDrawArrays, glMultiDrawArrays, glDrawElements, glMultiDrawElements, glDrawRangeElements, or glArrayElement is called.

GL_INVALID_ENUM is generated if type is not either GL_FLOAT or GL_DOUBLE.

GL_INVALID_VALUE is generated if stride is negative.

Function: void glFogCoordd coord
Function: void glFogCoordf coord
Function: void glFogCoorddv coord
Function: void glFogCoordfv coord

Set the current fog coordinates.

coord

Specify the fog distance.

glFogCoord specifies the fog coordinate that is associated with each vertex and the current raster position. The value specified is interpolated and used in computing the fog color (see glFog).

Function: void glFogf pname param
Function: void glFogi pname param
Function: void glFogfv pname params
Function: void glFogiv pname params

Specify fog parameters.

pname

Specifies a single-valued fog parameter. GL_FOG_MODE, GL_FOG_DENSITY, GL_FOG_START, GL_FOG_END, GL_FOG_INDEX, and GL_FOG_COORD_SRC are accepted.

param

Specifies the value that pname will be set to.

Fog is initially disabled. While enabled, fog affects rasterized geometry, bitmaps, and pixel blocks, but not buffer clear operations. To enable and disable fog, call glEnable and glDisable with argument GL_FOG.

glFog assigns the value or values in params to the fog parameter specified by pname. The following values are accepted for pname:

GL_FOG_MODE

params is a single integer or floating-point value that specifies the equation to be used to compute the fog blend factor, f. Three symbolic constants are accepted: GL_LINEAR, GL_EXP, and GL_EXP2. The equations corresponding to these symbolic constants are defined below. The initial fog mode is GL_EXP.

GL_FOG_DENSITY

params is a single integer or floating-point value that specifies density, the fog density used in both exponential fog equations. Only nonnegative densities are accepted. The initial fog density is 1.

GL_FOG_START

params is a single integer or floating-point value that specifies start, the near distance used in the linear fog equation. The initial near distance is 0.

GL_FOG_END

params is a single integer or floating-point value that specifies end, the far distance used in the linear fog equation. The initial far distance is 1.

GL_FOG_INDEX

params is a single integer or floating-point value that specifies i_f, the fog color index. The initial fog index is 0.

GL_FOG_COLOR

params contains four integer or floating-point values that specify C_f, the fog color. Integer values are mapped linearly such that the most positive representable value maps to 1.0, and the most negative representable value maps to -1.0. Floating-point values are mapped directly. After conversion, all color components are clamped to the range [0,1]. The initial fog color is (0, 0, 0, 0).

GL_FOG_COORD_SRC

params contains either of the following symbolic constants: GL_FOG_COORD or GL_FRAGMENT_DEPTH. GL_FOG_COORD specifies that the current fog coordinate should be used as distance value in the fog color computation. GL_FRAGMENT_DEPTH specifies that the current fragment depth should be used as distance value in the fog computation.

Fog blends a fog color with each rasterized pixel fragment’s post-texturing color using a blending factor f. Factor f is computed in one of three ways, depending on the fog mode. Let c be either the distance in eye coordinate from the origin (in the case that the GL_FOG_COORD_SRC is GL_FRAGMENT_DEPTH) or the current fog coordinate (in the case that GL_FOG_COORD_SRC is GL_FOG_COORD). The equation for GL_LINEAR fog is f=end-c,/end-start,

The equation for GL_EXP fog is f=e^-(density·c,),

The equation for GL_EXP2 fog is f=e^-(density·c,),^2

Regardless of the fog mode, f is clamped to the range [0,1] after it is computed. Then, if the GL is in RGBA color mode, the fragment’s red, green, and blue colors, represented by C_r, are replaced by

C_r,^″=f×C_r+(1-f,)×C_f

Fog does not affect a fragment’s alpha component.

In color index mode, the fragment’s color index i_r is replaced by

i_r,^″=i_r+(1-f,)×i_f

GL_INVALID_ENUM is generated if pname is not an accepted value, or if pname is GL_FOG_MODE and params is not an accepted value.

GL_INVALID_VALUE is generated if pname is GL_FOG_DENSITY and params is negative.

GL_INVALID_OPERATION is generated if glFog is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glFrontFace mode

Define front- and back-facing polygons.

mode

Specifies the orientation of front-facing polygons. GL_CW and GL_CCW are accepted. The initial value is GL_CCW.

In a scene composed entirely of opaque closed surfaces, back-facing polygons are never visible. Eliminating these invisible polygons has the obvious benefit of speeding up the rendering of the image. To enable and disable elimination of back-facing polygons, call glEnable and glDisable with argument GL_CULL_FACE.

The projection of a polygon to window coordinates is said to have clockwise winding if an imaginary object following the path from its first vertex, its second vertex, and so on, to its last vertex, and finally back to its first vertex, moves in a clockwise direction about the interior of the polygon. The polygon’s winding is said to be counterclockwise if the imaginary object following the same path moves in a counterclockwise direction about the interior of the polygon. glFrontFace specifies whether polygons with clockwise winding in window coordinates, or counterclockwise winding in window coordinates, are taken to be front-facing. Passing GL_CCW to mode selects counterclockwise polygons as front-facing; GL_CW selects clockwise polygons as front-facing. By default, counterclockwise polygons are taken to be front-facing.

GL_INVALID_ENUM is generated if mode is not an accepted value.

GL_INVALID_OPERATION is generated if glFrontFace is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glFrustum left right bottom top nearVal farVal

Multiply the current matrix by a perspective matrix.

left
right

Specify the coordinates for the left and right vertical clipping planes.

bottom
top

Specify the coordinates for the bottom and top horizontal clipping planes.

nearVal
farVal

Specify the distances to the near and far depth clipping planes. Both distances must be positive.

glFrustum describes a perspective matrix that produces a perspective projection. The current matrix (see glMatrixMode) is multiplied by this matrix and the result replaces the current matrix, as if glMultMatrix were called with the following matrix as its argument:

[(2⁢nearVal,/right-left,, 0 A 0), (0 2⁢nearVal,/top-bottom,, B 0), (0 0 C D), (0 0 -1 0),]

A=right+left,/right-left,

B=top+bottom,/top-bottom,

C=-farVal+nearVal,/farVal-nearVal,,

D=-2⁢farVal⁢nearVal,/farVal-nearVal,,

Typically, the matrix mode is GL_PROJECTION, and (left,bottom-nearVal) and (right,top-nearVal) specify the points on the near clipping plane that are mapped to the lower left and upper right corners of the window, assuming that the eye is located at (0, 0, 0). -farVal specifies the location of the far clipping plane. Both nearVal and farVal must be positive.

Use glPushMatrix and glPopMatrix to save and restore the current matrix stack.

GL_INVALID_VALUE is generated if nearVal or farVal is not positive, or if left = right, or bottom = top, or near = far.

GL_INVALID_OPERATION is generated if glFrustum is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGenBuffers n buffers

Generate buffer object names.

n

Specifies the number of buffer object names to be generated.

buffers

Specifies an array in which the generated buffer object names are stored.

glGenBuffers returns n buffer object names in buffers. There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to glGenBuffers.

Buffer object names returned by a call to glGenBuffers are not returned by subsequent calls, unless they are first deleted with glDeleteBuffers.

No buffer objects are associated with the returned buffer object names until they are first bound by calling glBindBuffer.

GL_INVALID_VALUE is generated if n is negative.

GL_INVALID_OPERATION is generated if glGenBuffers is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: GLuint glGenLists range

Generate a contiguous set of empty display lists.

range

Specifies the number of contiguous empty display lists to be generated.

glGenLists has one argument, range. It returns an integer n such that range contiguous empty display lists, named n, n+1, ..., n+range-1, are created. If range is 0, if there is no group of range contiguous names available, or if any error is generated, no display lists are generated, and 0 is returned.

GL_INVALID_VALUE is generated if range is negative.

GL_INVALID_OPERATION is generated if glGenLists is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGenQueries n ids

Generate query object names.

n

Specifies the number of query object names to be generated.

ids

Specifies an array in which the generated query object names are stored.

glGenQueries returns n query object names in ids. There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to glGenQueries.

Query object names returned by a call to glGenQueries are not returned by subsequent calls, unless they are first deleted with glDeleteQueries.

No query objects are associated with the returned query object names until they are first used by calling glBeginQuery.

GL_INVALID_VALUE is generated if n is negative.

GL_INVALID_OPERATION is generated if glGenQueries is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGenTextures n textures

Generate texture names.

n

Specifies the number of texture names to be generated.

textures

Specifies an array in which the generated texture names are stored.

glGenTextures returns n texture names in textures. There is no guarantee that the names form a contiguous set of integers; however, it is guaranteed that none of the returned names was in use immediately before the call to glGenTextures.

The generated textures have no dimensionality; they assume the dimensionality of the texture target to which they are first bound (see glBindTexture).

Texture names returned by a call to glGenTextures are not returned by subsequent calls, unless they are first deleted with glDeleteTextures.

GL_INVALID_VALUE is generated if n is negative.

GL_INVALID_OPERATION is generated if glGenTextures is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetActiveAttrib program index bufSize length size type name

Returns information about an active attribute variable for the specified program object.

program

Specifies the program object to be queried.

index

Specifies the index of the attribute variable to be queried.

bufSize

Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.

length

Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.

size

Returns the size of the attribute variable.

type

Returns the data type of the attribute variable.

name

Returns a null terminated string containing the name of the attribute variable.

glGetActiveAttrib returns information about an active attribute variable in the program object specified by program. The number of active attributes can be obtained by calling glGetProgram with the value GL_ACTIVE_ATTRIBUTES. A value of 0 for index selects the first active attribute variable. Permissible values for index range from 0 to the number of active attribute variables minus 1.

A vertex shader may use either built-in attribute variables, user-defined attribute variables, or both. Built-in attribute variables have a prefix of "gl_" and reference conventional OpenGL vertex attribtes (e.g., gl_Vertex, gl_Normal, etc., see the OpenGL Shading Language specification for a complete list.) User-defined attribute variables have arbitrary names and obtain their values through numbered generic vertex attributes. An attribute variable (either built-in or user-defined) is considered active if it is determined during the link operation that it may be accessed during program execution. Therefore, program should have previously been the target of a call to glLinkProgram, but it is not necessary for it to have been linked successfully.

The size of the character buffer required to store the longest attribute variable name in program can be obtained by calling glGetProgram with the value GL_ACTIVE_ATTRIBUTE_MAX_LENGTH. This value should be used to allocate a buffer of sufficient size to store the returned attribute name. The size of this character buffer is passed in bufSize, and a pointer to this character buffer is passed in name.

glGetActiveAttrib returns the name of the attribute variable indicated by index, storing it in the character buffer specified by name. The string returned will be null terminated. The actual number of characters written into this buffer is returned in length, and this count does not include the null termination character. If the length of the returned string is not required, a value of NULL can be passed in the length argument.

The type argument will return a pointer to the attribute variable’s data type. The symbolic constants GL_FLOAT, GL_FLOAT_VEC2, GL_FLOAT_VEC3, GL_FLOAT_VEC4, GL_FLOAT_MAT2, GL_FLOAT_MAT3, GL_FLOAT_MAT4, GL_FLOAT_MAT2x3, GL_FLOAT_MAT2x4, GL_FLOAT_MAT3x2, GL_FLOAT_MAT3x4, GL_FLOAT_MAT4x2, or GL_FLOAT_MAT4x3 may be returned. The size argument will return the size of the attribute, in units of the type returned in type.

The list of active attribute variables may include both built-in attribute variables (which begin with the prefix "gl_") as well as user-defined attribute variable names.

This function will return as much information as it can about the specified active attribute variable. If no information is available, length will be 0, and name will be an empty string. This situation could occur if this function is called after a link operation that failed. If an error occurs, the return values length, size, type, and name will be unmodified.

GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_VALUE is generated if index is greater than or equal to the number of active attribute variables in program.

GL_INVALID_OPERATION is generated if glGetActiveAttrib is executed between the execution of glBegin and the corresponding execution of glEnd.

GL_INVALID_VALUE is generated if bufSize is less than 0.

Function: void glGetActiveUniform program index bufSize length size type name

Returns information about an active uniform variable for the specified program object.

program

Specifies the program object to be queried.

index

Specifies the index of the uniform variable to be queried.

bufSize

Specifies the maximum number of characters OpenGL is allowed to write in the character buffer indicated by name.

length

Returns the number of characters actually written by OpenGL in the string indicated by name (excluding the null terminator) if a value other than NULL is passed.

size

Returns the size of the uniform variable.

type

Returns the data type of the uniform variable.

name

Returns a null terminated string containing the name of the uniform variable.

glGetActiveUniform returns information about an active uniform variable in the program object specified by program. The number of active uniform variables can be obtained by calling glGetProgram with the value GL_ACTIVE_UNIFORMS. A value of 0 for index selects the first active uniform variable. Permissible values for index range from 0 to the number of active uniform variables minus 1.

Shaders may use either built-in uniform variables, user-defined uniform variables, or both. Built-in uniform variables have a prefix of "gl_" and reference existing OpenGL state or values derived from such state (e.g., gl_Fog, gl_ModelViewMatrix, etc., see the OpenGL Shading Language specification for a complete list.) User-defined uniform variables have arbitrary names and obtain their values from the application through calls to glUniform. A uniform variable (either built-in or user-defined) is considered active if it is determined during the link operation that it may be accessed during program execution. Therefore, program should have previously been the target of a call to glLinkProgram, but it is not necessary for it to have been linked successfully.

The size of the character buffer required to store the longest uniform variable name in program can be obtained by calling glGetProgram with the value GL_ACTIVE_UNIFORM_MAX_LENGTH. This value should be used to allocate a buffer of sufficient size to store the returned uniform variable name. The size of this character buffer is passed in bufSize, and a pointer to this character buffer is passed in name.

glGetActiveUniform returns the name of the uniform variable indicated by index, storing it in the character buffer specified by name. The string returned will be null terminated. The actual number of characters written into this buffer is returned in length, and this count does not include the null termination character. If the length of the returned string is not required, a value of NULL can be passed in the length argument.

The type argument will return a pointer to the uniform variable’s data type. The symbolic constants GL_FLOAT, GL_FLOAT_VEC2, GL_FLOAT_VEC3, GL_FLOAT_VEC4, GL_INT, GL_INT_VEC2, GL_INT_VEC3, GL_INT_VEC4, GL_BOOL, GL_BOOL_VEC2, GL_BOOL_VEC3, GL_BOOL_VEC4, GL_FLOAT_MAT2, GL_FLOAT_MAT3, GL_FLOAT_MAT4, GL_FLOAT_MAT2x3, GL_FLOAT_MAT2x4, GL_FLOAT_MAT3x2, GL_FLOAT_MAT3x4, GL_FLOAT_MAT4x2, GL_FLOAT_MAT4x3, GL_SAMPLER_1D, GL_SAMPLER_2D, GL_SAMPLER_3D, GL_SAMPLER_CUBE, GL_SAMPLER_1D_SHADOW, or GL_SAMPLER_2D_SHADOW may be returned.

If one or more elements of an array are active, the name of the array is returned in name, the type is returned in type, and the size parameter returns the highest array element index used, plus one, as determined by the compiler and/or linker. Only one active uniform variable will be reported for a uniform array.

Uniform variables that are declared as structures or arrays of structures will not be returned directly by this function. Instead, each of these uniform variables will be reduced to its fundamental components containing the "." and "[]" operators such that each of the names is valid as an argument to glGetUniformLocation. Each of these reduced uniform variables is counted as one active uniform variable and is assigned an index. A valid name cannot be a structure, an array of structures, or a subcomponent of a vector or matrix.

The size of the uniform variable will be returned in size. Uniform variables other than arrays will have a size of 1. Structures and arrays of structures will be reduced as described earlier, such that each of the names returned will be a data type in the earlier list. If this reduction results in an array, the size returned will be as described for uniform arrays; otherwise, the size returned will be 1.

The list of active uniform variables may include both built-in uniform variables (which begin with the prefix "gl_") as well as user-defined uniform variable names.

This function will return as much information as it can about the specified active uniform variable. If no information is available, length will be 0, and name will be an empty string. This situation could occur if this function is called after a link operation that failed. If an error occurs, the return values length, size, type, and name will be unmodified.

GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_VALUE is generated if index is greater than or equal to the number of active uniform variables in program.

GL_INVALID_OPERATION is generated if glGetActiveUniform is executed between the execution of glBegin and the corresponding execution of glEnd.

GL_INVALID_VALUE is generated if bufSize is less than 0.

Function: void glGetAttachedShaders program maxCount count shaders

Returns the handles of the shader objects attached to a program object.

program

Specifies the program object to be queried.

maxCount

Specifies the size of the array for storing the returned object names.

count

Returns the number of names actually returned in objects.

shaders

Specifies an array that is used to return the names of attached shader objects.

glGetAttachedShaders returns the names of the shader objects attached to program. The names of shader objects that are attached to program will be returned in shaders. The actual number of shader names written into shaders is returned in count. If no shader objects are attached to program, count is set to 0. The maximum number of shader names that may be returned in shaders is specified by maxCount.

If the number of names actually returned is not required (for instance, if it has just been obtained by calling glGetProgram), a value of NULL may be passed for count. If no shader objects are attached to program, a value of 0 will be returned in count. The actual number of attached shaders can be obtained by calling glGetProgram with the value GL_ATTACHED_SHADERS.

GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_VALUE is generated if maxCount is less than 0.

GL_INVALID_OPERATION is generated if glGetAttachedShaders is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: GLint glGetAttribLocation program name

Returns the location of an attribute variable.

program

Specifies the program object to be queried.

name

Points to a null terminated string containing the name of the attribute variable whose location is to be queried.

glGetAttribLocation queries the previously linked program object specified by program for the attribute variable specified by name and returns the index of the generic vertex attribute that is bound to that attribute variable. If name is a matrix attribute variable, the index of the first column of the matrix is returned. If the named attribute variable is not an active attribute in the specified program object or if name starts with the reserved prefix "gl_", a value of -1 is returned.

The association between an attribute variable name and a generic attribute index can be specified at any time by calling glBindAttribLocation. Attribute bindings do not go into effect until glLinkProgram is called. After a program object has been linked successfully, the index values for attribute variables remain fixed until the next link command occurs. The attribute values can only be queried after a link if the link was successful. glGetAttribLocation returns the binding that actually went into effect the last time glLinkProgram was called for the specified program object. Attribute bindings that have been specified since the last link operation are not returned by glGetAttribLocation.

GL_INVALID_OPERATION is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_OPERATION is generated if program has not been successfully linked.

GL_INVALID_OPERATION is generated if glGetAttribLocation is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetBufferParameteriv target value data

Return parameters of a buffer object.

target

Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.

value

Specifies the symbolic name of a buffer object parameter. Accepted values are GL_BUFFER_ACCESS, GL_BUFFER_MAPPED, GL_BUFFER_SIZE, or GL_BUFFER_USAGE.

data

Returns the requested parameter.

glGetBufferParameteriv returns in data a selected parameter of the buffer object specified by target.

value names a specific buffer object parameter, as follows:

GL_BUFFER_ACCESS

params returns the access policy set while mapping the buffer object. The initial value is GL_READ_WRITE.

GL_BUFFER_MAPPED

params returns a flag indicating whether the buffer object is currently mapped. The initial value is GL_FALSE.

GL_BUFFER_SIZE

params returns the size of the buffer object, measured in bytes. The initial value is 0.

GL_BUFFER_USAGE

params returns the buffer object’s usage pattern. The initial value is GL_STATIC_DRAW.

GL_INVALID_ENUM is generated if target or value is not an accepted value.

GL_INVALID_OPERATION is generated if the reserved buffer object name 0 is bound to target.

GL_INVALID_OPERATION is generated if glGetBufferParameteriv is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetBufferPointerv target pname params

Return the pointer to a mapped buffer object’s data store.

target

Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.

pname

Specifies the pointer to be returned. The symbolic constant must be GL_BUFFER_MAP_POINTER.

params

Returns the pointer value specified by pname.

glGetBufferPointerv returns pointer information. pname is a symbolic constant indicating the pointer to be returned, which must be GL_BUFFER_MAP_POINTER, the pointer to which the buffer object’s data store is mapped. If the data store is not currently mapped, NULL is returned. params is a pointer to a location in which to place the returned pointer value.

GL_INVALID_ENUM is generated if target or pname is not an accepted value.

GL_INVALID_OPERATION is generated if the reserved buffer object name 0 is bound to target.

GL_INVALID_OPERATION is generated if glGetBufferPointerv is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetBufferSubData target offset size data

Returns a subset of a buffer object’s data store.

target

Specifies the target buffer object. The symbolic constant must be GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.

offset

Specifies the offset into the buffer object’s data store from which data will be returned, measured in bytes.

size

Specifies the size in bytes of the data store region being returned.

data

Specifies a pointer to the location where buffer object data is returned.

glGetBufferSubData returns some or all of the data from the buffer object currently bound to target. Data starting at byte offset offset and extending for size bytes is copied from the data store to the memory pointed to by data. An error is thrown if the buffer object is currently mapped, or if offset and size together define a range beyond the bounds of the buffer object’s data store.

GL_INVALID_ENUM is generated if target is not GL_ARRAY_BUFFER, GL_ELEMENT_ARRAY_BUFFER, GL_PIXEL_PACK_BUFFER, or GL_PIXEL_UNPACK_BUFFER.

GL_INVALID_VALUE is generated if offset or size is negative, or if together they define a region of memory that extends beyond the buffer object’s allocated data store.

GL_INVALID_OPERATION is generated if the reserved buffer object name 0 is bound to target.

GL_INVALID_OPERATION is generated if the buffer object being queried is mapped.

GL_INVALID_OPERATION is generated if glGetBufferSubData is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetClipPlane plane equation

Return the coefficients of the specified clipping plane.

plane

Specifies a clipping plane. The number of clipping planes depends on the implementation, but at least six clipping planes are supported. They are identified by symbolic names of the form GL_CLIP_PLANEi where i ranges from 0 to the value of GL_MAX_CLIP_PLANES - 1.

equation

Returns four double-precision values that are the coefficients of the plane equation of plane in eye coordinates. The initial value is (0, 0, 0, 0).

glGetClipPlane returns in equation the four coefficients of the plane equation for plane.

GL_INVALID_ENUM is generated if plane is not an accepted value.

GL_INVALID_OPERATION is generated if glGetClipPlane is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetColorTableParameterfv target pname params
Function: void glGetColorTableParameteriv target pname params

Get color lookup table parameters.

target

The target color table. Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, GL_POST_COLOR_MATRIX_COLOR_TABLE, GL_PROXY_COLOR_TABLE, GL_PROXY_POST_CONVOLUTION_COLOR_TABLE, or GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE.

pname

The symbolic name of a color lookup table parameter. Must be one of GL_COLOR_TABLE_BIAS, GL_COLOR_TABLE_SCALE, GL_COLOR_TABLE_FORMAT, GL_COLOR_TABLE_WIDTH, GL_COLOR_TABLE_RED_SIZE, GL_COLOR_TABLE_GREEN_SIZE, GL_COLOR_TABLE_BLUE_SIZE, GL_COLOR_TABLE_ALPHA_SIZE, GL_COLOR_TABLE_LUMINANCE_SIZE, or GL_COLOR_TABLE_INTENSITY_SIZE.

params

A pointer to an array where the values of the parameter will be stored.

Returns parameters specific to color table target.

When pname is set to GL_COLOR_TABLE_SCALE or GL_COLOR_TABLE_BIAS, glGetColorTableParameter returns the color table scale or bias parameters for the table specified by target. For these queries, target must be set to GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE and params points to an array of four elements, which receive the scale or bias factors for red, green, blue, and alpha, in that order.

glGetColorTableParameter can also be used to retrieve the format and size parameters for a color table. For these queries, set target to either the color table target or the proxy color table target. The format and size parameters are set by glColorTable.

The following table lists the format and size parameters that may be queried. For each symbolic constant listed below for pname, params must point to an array of the given length and receive the values indicated.

Parameter

N, Meaning

GL_COLOR_TABLE_FORMAT

1 , Internal format (e.g., GL_RGBA)

GL_COLOR_TABLE_WIDTH

1 , Number of elements in table

GL_COLOR_TABLE_RED_SIZE

1 , Size of red component, in bits

GL_COLOR_TABLE_GREEN_SIZE

1 , Size of green component

GL_COLOR_TABLE_BLUE_SIZE

1 , Size of blue component

GL_COLOR_TABLE_ALPHA_SIZE

1 , Size of alpha component

GL_COLOR_TABLE_LUMINANCE_SIZE

1 , Size of luminance component

GL_COLOR_TABLE_INTENSITY_SIZE

1 , Size of intensity component

GL_INVALID_ENUM is generated if target or pname is not an acceptable value.

GL_INVALID_OPERATION is generated if glGetColorTableParameter is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetColorTable target format type table

Retrieve contents of a color lookup table.

target

Must be GL_COLOR_TABLE, GL_POST_CONVOLUTION_COLOR_TABLE, or GL_POST_COLOR_MATRIX_COLOR_TABLE.

format

The format of the pixel data in table. The possible values are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA, GL_RGB, GL_BGR, GL_RGBA, and GL_BGRA.

type

The type of the pixel data in table. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

table

Pointer to a one-dimensional array of pixel data containing the contents of the color table.

glGetColorTable returns in table the contents of the color table specified by target. No pixel transfer operations are performed, but pixel storage modes that are applicable to glReadPixels are performed.

If a non-zero named buffer object is bound to the GL_PIXEL_PACK_BUFFER target (see glBindBuffer) while a histogram table is requested, table is treated as a byte offset into the buffer object’s data store.

Color components that are requested in the specified format, but which are not included in the internal format of the color lookup table, are returned as zero. The assignments of internal color components to the components requested by format are

Internal Component

Resulting Component

Red

Red

Green

Green

Blue

Blue

Alpha

Alpha

Luminance

Red

Intensity

Red

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_ENUM is generated if format is not one of the allowable values.

GL_INVALID_ENUM is generated if type is not one of the allowable values.

GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.

GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and format is neither GL_RGBA nor GL_BGRA.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and table is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glGetColorTable is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetCompressedTexImage target lod img

Return a compressed texture image.

target

Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, and GL_TEXTURE_3DGL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.

lod

Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level n is the nth mipmap reduction image.

img

Returns the compressed texture image.

glGetCompressedTexImage returns the compressed texture image associated with target and lod into img. img should be an array of GL_TEXTURE_COMPRESSED_IMAGE_SIZE bytes. target specifies whether the desired texture image was one specified by glTexImage1D (GL_TEXTURE_1D), glTexImage2D (GL_TEXTURE_2D or any of GL_TEXTURE_CUBE_MAP_*), or glTexImage3D (GL_TEXTURE_3D). lod specifies the level-of-detail number of the desired image.

If a non-zero named buffer object is bound to the GL_PIXEL_PACK_BUFFER target (see glBindBuffer) while a texture image is requested, img is treated as a byte offset into the buffer object’s data store.

To minimize errors, first verify that the texture is compressed by calling glGetTexLevelParameter with argument GL_TEXTURE_COMPRESSED. If the texture is compressed, then determine the amount of memory required to store the compressed texture by calling glGetTexLevelParameter with argument GL_TEXTURE_COMPRESSED_IMAGE_SIZE. Finally, retrieve the internal format of the texture by calling glGetTexLevelParameter with argument GL_TEXTURE_INTERNAL_FORMAT. To store the texture for later use, associate the internal format and size with the retrieved texture image. These data can be used by the respective texture or subtexture loading routine used for loading target textures.

GL_INVALID_VALUE is generated if lod is less than zero or greater than the maximum number of LODs permitted by the implementation.

GL_INVALID_OPERATION is generated if glGetCompressedTexImage is used to retrieve a texture that is in an uncompressed internal format.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

GL_INVALID_OPERATION is generated if glGetCompressedTexImage is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetConvolutionFilter target format type image

Get current 1D or 2D convolution filter kernel.

target

The filter to be retrieved. Must be one of GL_CONVOLUTION_1D or GL_CONVOLUTION_2D.

format

Format of the output image. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.

type

Data type of components in the output image. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

image

Pointer to storage for the output image.

glGetConvolutionFilter returns the current 1D or 2D convolution filter kernel as an image. The one- or two-dimensional image is placed in image according to the specifications in format and type. No pixel transfer operations are performed on this image, but the relevant pixel storage modes are applied.

If a non-zero named buffer object is bound to the GL_PIXEL_PACK_BUFFER target (see glBindBuffer) while a convolution filter is requested, image is treated as a byte offset into the buffer object’s data store.

Color components that are present in format but not included in the internal format of the filter are returned as zero. The assignments of internal color components to the components of format are as follows.

Internal Component

Resulting Component

Red

Red

Green

Green

Blue

Blue

Alpha

Alpha

Luminance

Red

Intensity

Red

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_ENUM is generated if format is not one of the allowable values.

GL_INVALID_ENUM is generated if type is not one of the allowable values.

GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.

GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and format is neither GL_RGBA nor GL_BGRA.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and image is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glGetConvolutionFilter is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetConvolutionParameterfv target pname params
Function: void glGetConvolutionParameteriv target pname params

Get convolution parameters.

target

The filter whose parameters are to be retrieved. Must be one of GL_CONVOLUTION_1D, GL_CONVOLUTION_2D, or GL_SEPARABLE_2D.

pname

The parameter to be retrieved. Must be one of GL_CONVOLUTION_BORDER_MODE, GL_CONVOLUTION_BORDER_COLOR, GL_CONVOLUTION_FILTER_SCALE, GL_CONVOLUTION_FILTER_BIAS, GL_CONVOLUTION_FORMAT, GL_CONVOLUTION_WIDTH, GL_CONVOLUTION_HEIGHT, GL_MAX_CONVOLUTION_WIDTH, or GL_MAX_CONVOLUTION_HEIGHT.

params

Pointer to storage for the parameters to be retrieved.

glGetConvolutionParameter retrieves convolution parameters. target determines which convolution filter is queried. pname determines which parameter is returned:

GL_CONVOLUTION_BORDER_MODE

The convolution border mode. See glConvolutionParameter for a list of border modes.

GL_CONVOLUTION_BORDER_COLOR

The current convolution border color. params must be a pointer to an array of four elements, which will receive the red, green, blue, and alpha border colors.

GL_CONVOLUTION_FILTER_SCALE

The current filter scale factors. params must be a pointer to an array of four elements, which will receive the red, green, blue, and alpha filter scale factors in that order.

GL_CONVOLUTION_FILTER_BIAS

The current filter bias factors. params must be a pointer to an array of four elements, which will receive the red, green, blue, and alpha filter bias terms in that order.

GL_CONVOLUTION_FORMAT

The current internal format. See glConvolutionFilter1D, glConvolutionFilter2D, and glSeparableFilter2D for lists of allowable formats.

GL_CONVOLUTION_WIDTH

The current filter image width.

GL_CONVOLUTION_HEIGHT

The current filter image height.

GL_MAX_CONVOLUTION_WIDTH

The maximum acceptable filter image width.

GL_MAX_CONVOLUTION_HEIGHT

The maximum acceptable filter image height.

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_ENUM is generated if pname is not one of the allowable values.

GL_INVALID_ENUM is generated if target is GL_CONVOLUTION_1D and pname is GL_CONVOLUTION_HEIGHT or GL_MAX_CONVOLUTION_HEIGHT.

GL_INVALID_OPERATION is generated if glGetConvolutionParameter is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: GLenum glGetError

Return error information.

glGetError returns the value of the error flag. Each detectable error is assigned a numeric code and symbolic name. When an error occurs, the error flag is set to the appropriate error code value. No other errors are recorded until glGetError is called, the error code is returned, and the flag is reset to GL_NO_ERROR. If a call to glGetError returns GL_NO_ERROR, there has been no detectable error since the last call to glGetError, or since the GL was initialized.

To allow for distributed implementations, there may be several error flags. If any single error flag has recorded an error, the value of that flag is returned and that flag is reset to GL_NO_ERROR when glGetError is called. If more than one flag has recorded an error, glGetError returns and clears an arbitrary error flag value. Thus, glGetError should always be called in a loop, until it returns GL_NO_ERROR, if all error flags are to be reset.

Initially, all error flags are set to GL_NO_ERROR.

The following errors are currently defined:

GL_NO_ERROR

No error has been recorded. The value of this symbolic constant is guaranteed to be 0.

GL_INVALID_ENUM

An unacceptable value is specified for an enumerated argument. The offending command is ignored and has no other side effect than to set the error flag.

GL_INVALID_VALUE

A numeric argument is out of range. The offending command is ignored and has no other side effect than to set the error flag.

GL_INVALID_OPERATION

The specified operation is not allowed in the current state. The offending command is ignored and has no other side effect than to set the error flag.

GL_STACK_OVERFLOW

This command would cause a stack overflow. The offending command is ignored and has no other side effect than to set the error flag.

GL_STACK_UNDERFLOW

This command would cause a stack underflow. The offending command is ignored and has no other side effect than to set the error flag.

GL_OUT_OF_MEMORY

There is not enough memory left to execute the command. The state of the GL is undefined, except for the state of the error flags, after this error is recorded.

GL_TABLE_TOO_LARGE

The specified table exceeds the implementation’s maximum supported table size. The offending command is ignored and has no other side effect than to set the error flag.

When an error flag is set, results of a GL operation are undefined only if GL_OUT_OF_MEMORY has occurred. In all other cases, the command generating the error is ignored and has no effect on the GL state or frame buffer contents. If the generating command returns a value, it returns 0. If glGetError itself generates an error, it returns 0.

GL_INVALID_OPERATION is generated if glGetError is executed between the execution of glBegin and the corresponding execution of glEnd. In this case, glGetError returns 0.

Function: void glGetHistogramParameterfv target pname params
Function: void glGetHistogramParameteriv target pname params

Get histogram parameters.

target

Must be one of GL_HISTOGRAM or GL_PROXY_HISTOGRAM.

pname

The name of the parameter to be retrieved. Must be one of GL_HISTOGRAM_WIDTH, GL_HISTOGRAM_FORMAT, GL_HISTOGRAM_RED_SIZE, GL_HISTOGRAM_GREEN_SIZE, GL_HISTOGRAM_BLUE_SIZE, GL_HISTOGRAM_ALPHA_SIZE, GL_HISTOGRAM_LUMINANCE_SIZE, or GL_HISTOGRAM_SINK.

params

Pointer to storage for the returned values.

glGetHistogramParameter is used to query parameter values for the current histogram or for a proxy. The histogram state information may be queried by calling glGetHistogramParameter with a target of GL_HISTOGRAM (to obtain information for the current histogram table) or GL_PROXY_HISTOGRAM (to obtain information from the most recent proxy request) and one of the following values for the pname argument:

Parameter

Description

GL_HISTOGRAM_WIDTH

Histogram table width

GL_HISTOGRAM_FORMAT

Internal format

GL_HISTOGRAM_RED_SIZE

Red component counter size, in bits

GL_HISTOGRAM_GREEN_SIZE

Green component counter size, in bits

GL_HISTOGRAM_BLUE_SIZE

Blue component counter size, in bits

GL_HISTOGRAM_ALPHA_SIZE

Alpha component counter size, in bits

GL_HISTOGRAM_LUMINANCE_SIZE

Luminance component counter size, in bits

GL_HISTOGRAM_SINK

Value of the sink parameter

GL_INVALID_ENUM is generated if target is not one of the allowable values.

GL_INVALID_ENUM is generated if pname is not one of the allowable values.

GL_INVALID_OPERATION is generated if glGetHistogramParameter is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetHistogram target reset format type values

Get histogram table.

target

Must be GL_HISTOGRAM.

reset

If GL_TRUE, each component counter that is actually returned is reset to zero. (Other counters are unaffected.) If GL_FALSE, none of the counters in the histogram table is modified.

format

The format of values to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.

type

The type of values to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

values

A pointer to storage for the returned histogram table.

glGetHistogram returns the current histogram table as a one-dimensional image with the same width as the histogram. No pixel transfer operations are performed on this image, but pixel storage modes that are applicable to 1D images are honored.

If a non-zero named buffer object is bound to the GL_PIXEL_PACK_BUFFER target (see glBindBuffer) while a histogram table is requested, values is treated as a byte offset into the buffer object’s data store.

Color components that are requested in the specified format, but which are not included in the internal format of the histogram, are returned as zero. The assignments of internal color components to the components requested by format are:

Internal Component

Resulting Component

Red

Red

Green

Green

Blue

Blue

Alpha

Alpha

Luminance

Red

GL_INVALID_ENUM is generated if target is not GL_HISTOGRAM.

GL_INVALID_ENUM is generated if format is not one of the allowable values.

GL_INVALID_ENUM is generated if type is not one of the allowable values.

GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.

GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and format is neither GL_RGBA nor GL_BGRA.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and values is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glGetHistogram is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetLightfv light pname params
Function: void glGetLightiv light pname params

Return light source parameter values.

light

Specifies a light source. The number of possible lights depends on the implementation, but at least eight lights are supported. They are identified by symbolic names of the form GL_LIGHTi where i ranges from 0 to the value of GL_MAX_LIGHTS - 1.

pname

Specifies a light source parameter for light. Accepted symbolic names are GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_POSITION, GL_SPOT_DIRECTION, GL_SPOT_EXPONENT, GL_SPOT_CUTOFF, GL_CONSTANT_ATTENUATION, GL_LINEAR_ATTENUATION, and GL_QUADRATIC_ATTENUATION.

params

Returns the requested data.

glGetLight returns in params the value or values of a light source parameter. light names the light and is a symbolic name of the form GL_LIGHTi where i ranges from 0 to the value of GL_MAX_LIGHTS - 1. GL_MAX_LIGHTS is an implementation dependent constant that is greater than or equal to eight. pname specifies one of ten light source parameters, again by symbolic name.

The following parameters are defined:

GL_AMBIENT

params returns four integer or floating-point values representing the ambient intensity of the light source. Integer values, when requested, are linearly mapped from the internal floating-point representation such that 1.0 maps to the most positive representable integer value, and -1.0 maps to the most negative representable integer value. If the internal value is outside the range [-1,1], the corresponding integer return value is undefined. The initial value is (0, 0, 0, 1).

GL_DIFFUSE

params returns four integer or floating-point values representing the diffuse intensity of the light source. Integer values, when requested, are linearly mapped from the internal floating-point representation such that 1.0 maps to the most positive representable integer value, and -1.0 maps to the most negative representable integer value. If the internal value is outside the range [-1,1], the corresponding integer return value is undefined. The initial value for GL_LIGHT0 is (1, 1, 1, 1); for other lights, the initial value is (0, 0, 0, 0).

GL_SPECULAR

params returns four integer or floating-point values representing the specular intensity of the light source. Integer values, when requested, are linearly mapped from the internal floating-point representation such that 1.0 maps to the most positive representable integer value, and -1.0 maps to the most negative representable integer value. If the internal value is outside the range [-1,1], the corresponding integer return value is undefined. The initial value for GL_LIGHT0 is (1, 1, 1, 1); for other lights, the initial value is (0, 0, 0, 0).

GL_POSITION

params returns four integer or floating-point values representing the position of the light source. Integer values, when requested, are computed by rounding the internal floating-point values to the nearest integer value. The returned values are those maintained in eye coordinates. They will not be equal to the values specified using glLight, unless the modelview matrix was identity at the time glLight was called. The initial value is (0, 0, 1, 0).

GL_SPOT_DIRECTION

params returns three integer or floating-point values representing the direction of the light source. Integer values, when requested, are computed by rounding the internal floating-point values to the nearest integer value. The returned values are those maintained in eye coordinates. They will not be equal to the values specified using glLight, unless the modelview matrix was identity at the time glLight was called. Although spot direction is normalized before being used in the lighting equation, the returned values are the transformed versions of the specified values prior to normalization. The initial value is (0,0-1).

GL_SPOT_EXPONENT

params returns a single integer or floating-point value representing the spot exponent of the light. An integer value, when requested, is computed by rounding the internal floating-point representation to the nearest integer. The initial value is 0.

GL_SPOT_CUTOFF

params returns a single integer or floating-point value representing the spot cutoff angle of the light. An integer value, when requested, is computed by rounding the internal floating-point representation to the nearest integer. The initial value is 180.

GL_CONSTANT_ATTENUATION

params returns a single integer or floating-point value representing the constant (not distance-related) attenuation of the light. An integer value, when requested, is computed by rounding the internal floating-point representation to the nearest integer. The initial value is 1.

GL_LINEAR_ATTENUATION

params returns a single integer or floating-point value representing the linear attenuation of the light. An integer value, when requested, is computed by rounding the internal floating-point representation to the nearest integer. The initial value is 0.

GL_QUADRATIC_ATTENUATION

params returns a single integer or floating-point value representing the quadratic attenuation of the light. An integer value, when requested, is computed by rounding the internal floating-point representation to the nearest integer. The initial value is 0.

GL_INVALID_ENUM is generated if light or pname is not an accepted value.

GL_INVALID_OPERATION is generated if glGetLight is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetMapdv target query v
Function: void glGetMapfv target query v
Function: void glGetMapiv target query v

Return evaluator parameters.

target

Specifies the symbolic name of a map. Accepted values are GL_MAP1_COLOR_4, GL_MAP1_INDEX, GL_MAP1_NORMAL, GL_MAP1_TEXTURE_COORD_1, GL_MAP1_TEXTURE_COORD_2, GL_MAP1_TEXTURE_COORD_3, GL_MAP1_TEXTURE_COORD_4, GL_MAP1_VERTEX_3, GL_MAP1_VERTEX_4, GL_MAP2_COLOR_4, GL_MAP2_INDEX, GL_MAP2_NORMAL, GL_MAP2_TEXTURE_COORD_1, GL_MAP2_TEXTURE_COORD_2, GL_MAP2_TEXTURE_COORD_3, GL_MAP2_TEXTURE_COORD_4, GL_MAP2_VERTEX_3, and GL_MAP2_VERTEX_4.

query

Specifies which parameter to return. Symbolic names GL_COEFF, GL_ORDER, and GL_DOMAIN are accepted.

v

Returns the requested data.

glMap1 and glMap2 define evaluators. glGetMap returns evaluator parameters. target chooses a map, query selects a specific parameter, and v points to storage where the values will be returned.

The acceptable values for the target parameter are described in the glMap1 and glMap2 reference pages.

query can assume the following values:

GL_COEFF

v returns the control points for the evaluator function. One-dimensional evaluators return order control points, and two-dimensional evaluators return uorder×vorder control points. Each control point consists of one, two, three, or four integer, single-precision floating-point, or double-precision floating-point values, depending on the type of the evaluator. The GL returns two-dimensional control points in row-major order, incrementing the uorder index quickly and the vorder index after each row. Integer values, when requested, are computed by rounding the internal floating-point values to the nearest integer values.

GL_ORDER

v returns the order of the evaluator function. One-dimensional evaluators return a single value, order. The initial value is 1. Two-dimensional evaluators return two values, uorder and vorder. The initial value is 1,1.

GL_DOMAIN

v returns the linear u and v mapping parameters. One-dimensional evaluators return two values, u1 and u2, as specified by glMap1. Two-dimensional evaluators return four values (u1, u2, v1, and v2) as specified by glMap2. Integer values, when requested, are computed by rounding the internal floating-point values to the nearest integer values.

GL_INVALID_ENUM is generated if either target or query is not an accepted value.

GL_INVALID_OPERATION is generated if glGetMap is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetMaterialfv face pname params
Function: void glGetMaterialiv face pname params

Return material parameters.

face

Specifies which of the two materials is being queried. GL_FRONT or GL_BACK are accepted, representing the front and back materials, respectively.

pname

Specifies the material parameter to return. GL_AMBIENT, GL_DIFFUSE, GL_SPECULAR, GL_EMISSION, GL_SHININESS, and GL_COLOR_INDEXES are accepted.

params

Returns the requested data.

glGetMaterial returns in params the value or values of parameter pname of material face. Six parameters are defined:

GL_AMBIENT

params returns four integer or floating-point values representing the ambient reflectance of the material. Integer values, when requested, are linearly mapped from the internal floating-point representation such that 1.0 maps to the most positive representable integer value, and -1.0 maps to the most negative representable integer value. If the internal value is outside the range [-1,1], the corresponding integer return value is undefined. The initial value is (0.2, 0.2, 0.2, 1.0)

GL_DIFFUSE

params returns four integer or floating-point values representing the diffuse reflectance of the material. Integer values, when requested, are linearly mapped from the internal floating-point representation such that 1.0 maps to the most positive representable integer value, and -1.0 maps to the most negative representable integer value. If the internal value is outside the range [-1,1], the corresponding integer return value is undefined. The initial value is (0.8, 0.8, 0.8, 1.0).

GL_SPECULAR

params returns four integer or floating-point values representing the specular reflectance of the material. Integer values, when requested, are linearly mapped from the internal floating-point representation such that 1.0 maps to the most positive representable integer value, and -1.0 maps to the most negative representable integer value. If the internal value is outside the range [-1,1], the corresponding integer return value is undefined. The initial value is (0, 0, 0, 1).

GL_EMISSION

params returns four integer or floating-point values representing the emitted light intensity of the material. Integer values, when requested, are linearly mapped from the internal floating-point representation such that 1.0 maps to the most positive representable integer value, and -1.0 maps to the most negative representable integer value. If the internal value is outside the range [-1,1], the corresponding integer return value is undefined. The initial value is (0, 0, 0, 1).

GL_SHININESS

params returns one integer or floating-point value representing the specular exponent of the material. Integer values, when requested, are computed by rounding the internal floating-point value to the nearest integer value. The initial value is 0.

GL_COLOR_INDEXES

params returns three integer or floating-point values representing the ambient, diffuse, and specular indices of the material. These indices are used only for color index lighting. (All the other parameters are used only for RGBA lighting.) Integer values, when requested, are computed by rounding the internal floating-point values to the nearest integer values.

GL_INVALID_ENUM is generated if face or pname is not an accepted value.

GL_INVALID_OPERATION is generated if glGetMaterial is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetMinmaxParameterfv target pname params
Function: void glGetMinmaxParameteriv target pname params

Get minmax parameters.

target

Must be GL_MINMAX.

pname

The parameter to be retrieved. Must be one of GL_MINMAX_FORMAT or GL_MINMAX_SINK.

params

A pointer to storage for the retrieved parameters.

glGetMinmaxParameter retrieves parameters for the current minmax table by setting pname to one of the following values:

Parameter

Description

GL_MINMAX_FORMAT

Internal format of minmax table

GL_MINMAX_SINK

Value of the sink parameter

GL_INVALID_ENUM is generated if target is not GL_MINMAX.

GL_INVALID_ENUM is generated if pname is not one of the allowable values.

GL_INVALID_OPERATION is generated if glGetMinmaxParameter is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetMinmax target reset format types values

Get minimum and maximum pixel values.

target

Must be GL_MINMAX.

reset

If GL_TRUE, all entries in the minmax table that are actually returned are reset to their initial values. (Other entries are unaltered.) If GL_FALSE, the minmax table is unaltered.

format

The format of the data to be returned in values. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.

types

The type of the data to be returned in values. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

values

A pointer to storage for the returned values.

glGetMinmax returns the accumulated minimum and maximum pixel values (computed on a per-component basis) in a one-dimensional image of width 2. The first set of return values are the minima, and the second set of return values are the maxima. The format of the return values is determined by format, and their type is determined by types.

If a non-zero named buffer object is bound to the GL_PIXEL_PACK_BUFFER target (see glBindBuffer) while minimum and maximum pixel values are requested, values is treated as a byte offset into the buffer object’s data store.

No pixel transfer operations are performed on the return values, but pixel storage modes that are applicable to one-dimensional images are performed. Color components that are requested in the specified format, but that are not included in the internal format of the minmax table, are returned as zero. The assignment of internal color components to the components requested by format are as follows:

Internal Component

Resulting Component

Red

Red

Green

Green

Blue

Blue

Alpha

Alpha

Luminance

Red

If reset is GL_TRUE, the minmax table entries corresponding to the return values are reset to their initial values. Minimum and maximum values that are not returned are not modified, even if reset is GL_TRUE.

GL_INVALID_ENUM is generated if target is not GL_MINMAX.

GL_INVALID_ENUM is generated if format is not one of the allowable values.

GL_INVALID_ENUM is generated if types is not one of the allowable values.

GL_INVALID_OPERATION is generated if types is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.

GL_INVALID_OPERATION is generated if types is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and format is neither GL_RGBA nor GL_BGRA.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and values is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glGetMinmax is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetPixelMapfv map data
Function: void glGetPixelMapuiv map data
Function: void glGetPixelMapusv map data

Return the specified pixel map.

map

Specifies the name of the pixel map to return. Accepted values are GL_PIXEL_MAP_I_TO_I, GL_PIXEL_MAP_S_TO_S, GL_PIXEL_MAP_I_TO_R, GL_PIXEL_MAP_I_TO_G, GL_PIXEL_MAP_I_TO_B, GL_PIXEL_MAP_I_TO_A, GL_PIXEL_MAP_R_TO_R, GL_PIXEL_MAP_G_TO_G, GL_PIXEL_MAP_B_TO_B, and GL_PIXEL_MAP_A_TO_A.

data

Returns the pixel map contents.

See the glPixelMap reference page for a description of the acceptable values for the map parameter. glGetPixelMap returns in data the contents of the pixel map specified in map. Pixel maps are used during the execution of glReadPixels, glDrawPixels, glCopyPixels, glTexImage1D, glTexImage2D, glTexImage3D, glTexSubImage1D, glTexSubImage2D, glTexSubImage3D, glCopyTexImage1D, glCopyTexImage2D, glCopyTexSubImage1D, glCopyTexSubImage2D, and glCopyTexSubImage3D. to map color indices, stencil indices, color components, and depth components to other values.

If a non-zero named buffer object is bound to the GL_PIXEL_PACK_BUFFER target (see glBindBuffer) while a pixel map is requested, data is treated as a byte offset into the buffer object’s data store.

Unsigned integer values, if requested, are linearly mapped from the internal fixed or floating-point representation such that 1.0 maps to the largest representable integer value, and 0.0 maps to 0. Return unsigned integer values are undefined if the map value was not in the range [0,1].

To determine the required size of map, call glGet with the appropriate symbolic constant.

GL_INVALID_ENUM is generated if map is not an accepted value.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

GL_INVALID_OPERATION is generated by glGetPixelMapfv if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a GLfloat datum.

GL_INVALID_OPERATION is generated by glGetPixelMapuiv if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a GLuint datum.

GL_INVALID_OPERATION is generated by glGetPixelMapusv if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and data is not evenly divisible into the number of bytes needed to store in memory a GLushort datum.

GL_INVALID_OPERATION is generated if glGetPixelMap is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetPointerv pname params

Return the address of the specified pointer.

pname

Specifies the array or buffer pointer to be returned. Symbolic constants GL_COLOR_ARRAY_POINTER, GL_EDGE_FLAG_ARRAY_POINTER, GL_FOG_COORD_ARRAY_POINTER, GL_FEEDBACK_BUFFER_POINTER, GL_INDEX_ARRAY_POINTER, GL_NORMAL_ARRAY_POINTER, GL_SECONDARY_COLOR_ARRAY_POINTER, GL_SELECTION_BUFFER_POINTER, GL_TEXTURE_COORD_ARRAY_POINTER, or GL_VERTEX_ARRAY_POINTER are accepted.

params

Returns the pointer value specified by pname.

glGetPointerv returns pointer information. pname is a symbolic constant indicating the pointer to be returned, and params is a pointer to a location in which to place the returned data.

For all pname arguments except GL_FEEDBACK_BUFFER_POINTER and GL_SELECTION_BUFFER_POINTER, if a non-zero named buffer object was bound to the GL_ARRAY_BUFFER target (see glBindBuffer) when the desired pointer was previously specified, the pointer returned is a byte offset into the buffer object’s data store. Buffer objects are only available in OpenGL versions 1.5 and greater.

GL_INVALID_ENUM is generated if pname is not an accepted value.

Function: void glGetPolygonStipple pattern

Return the polygon stipple pattern.

pattern

Returns the stipple pattern. The initial value is all 1’s.

glGetPolygonStipple returns to pattern a 32×32 polygon stipple pattern. The pattern is packed into memory as if glReadPixels with both height and width of 32, type of GL_BITMAP, and format of GL_COLOR_INDEX were called, and the stipple pattern were stored in an internal 32×32 color index buffer. Unlike glReadPixels, however, pixel transfer operations (shift, offset, pixel map) are not applied to the returned stipple image.

If a non-zero named buffer object is bound to the GL_PIXEL_PACK_BUFFER target (see glBindBuffer) while a polygon stipple pattern is requested, pattern is treated as a byte offset into the buffer object’s data store.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

GL_INVALID_OPERATION is generated if glGetPolygonStipple is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetProgramInfoLog program maxLength length infoLog

Returns the information log for a program object.

program

Specifies the program object whose information log is to be queried.

maxLength

Specifies the size of the character buffer for storing the returned information log.

length

Returns the length of the string returned in infoLog (excluding the null terminator).

infoLog

Specifies an array of characters that is used to return the information log.

glGetProgramInfoLog returns the information log for the specified program object. The information log for a program object is modified when the program object is linked or validated. The string that is returned will be null terminated.

glGetProgramInfoLog returns in infoLog as much of the information log as it can, up to a maximum of maxLength characters. The number of characters actually returned, excluding the null termination character, is specified by length. If the length of the returned string is not required, a value of NULL can be passed in the length argument. The size of the buffer required to store the returned information log can be obtained by calling glGetProgram with the value GL_INFO_LOG_LENGTH.

The information log for a program object is either an empty string, or a string containing information about the last link operation, or a string containing information about the last validation operation. It may contain diagnostic messages, warning messages, and other information. When a program object is created, its information log will be a string of length 0.

GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_VALUE is generated if maxLength is less than 0.

GL_INVALID_OPERATION is generated if glGetProgramInfoLog is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetProgramiv program pname params

Returns a parameter from a program object.

program

Specifies the program object to be queried.

pname

Specifies the object parameter. Accepted symbolic names are GL_DELETE_STATUS, GL_LINK_STATUS, GL_VALIDATE_STATUS, GL_INFO_LOG_LENGTH, GL_ATTACHED_SHADERS, GL_ACTIVE_ATTRIBUTES, GL_ACTIVE_ATTRIBUTE_MAX_LENGTH, GL_ACTIVE_UNIFORMS, GL_ACTIVE_UNIFORM_MAX_LENGTH.

params

Returns the requested object parameter.

glGetProgram returns in params the value of a parameter for a specific program object. The following parameters are defined:

GL_DELETE_STATUS

params returns GL_TRUE if program is currently flagged for deletion, and GL_FALSE otherwise.

GL_LINK_STATUS

params returns GL_TRUE if the last link operation on program was successful, and GL_FALSE otherwise.

GL_VALIDATE_STATUS

params returns GL_TRUE or if the last validation operation on program was successful, and GL_FALSE otherwise.

GL_INFO_LOG_LENGTH

params returns the number of characters in the information log for program including the null termination character (i.e., the size of the character buffer required to store the information log). If program has no information log, a value of 0 is returned.

GL_ATTACHED_SHADERS

params returns the number of shader objects attached to program.

GL_ACTIVE_ATTRIBUTES

params returns the number of active attribute variables for program.

GL_ACTIVE_ATTRIBUTE_MAX_LENGTH

params returns the length of the longest active attribute name for program, including the null termination character (i.e., the size of the character buffer required to store the longest attribute name). If no active attributes exist, 0 is returned.

GL_ACTIVE_UNIFORMS

params returns the number of active uniform variables for program.

GL_ACTIVE_UNIFORM_MAX_LENGTH

params returns the length of the longest active uniform variable name for program, including the null termination character (i.e., the size of the character buffer required to store the longest uniform variable name). If no active uniform variables exist, 0 is returned.

GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program does not refer to a program object.

GL_INVALID_ENUM is generated if pname is not an accepted value.

GL_INVALID_OPERATION is generated if glGetProgram is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetQueryiv target pname params

Return parameters of a query object target.

target

Specifies a query object target. Must be GL_SAMPLES_PASSED.

pname

Specifies the symbolic name of a query object target parameter. Accepted values are GL_CURRENT_QUERY or GL_QUERY_COUNTER_BITS.

params

Returns the requested data.

glGetQueryiv returns in params a selected parameter of the query object target specified by target.

pname names a specific query object target parameter. When target is GL_SAMPLES_PASSED, pname can be as follows:

GL_CURRENT_QUERY

params returns the name of the currently active occlusion query object. If no occlusion query is active, 0 is returned. The initial value is 0.

GL_QUERY_COUNTER_BITS

params returns the number of bits in the query counter used to accumulate passing samples. If the number of bits returned is 0, the implementation does not support a query counter, and the results obtained from glGetQueryObject are useless.

GL_INVALID_ENUM is generated if target or pname is not an accepted value.

GL_INVALID_OPERATION is generated if glGetQueryiv is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetQueryObjectiv id pname params
Function: void glGetQueryObjectuiv id pname params

Return parameters of a query object.

id

Specifies the name of a query object.

pname

Specifies the symbolic name of a query object parameter. Accepted values are GL_QUERY_RESULT or GL_QUERY_RESULT_AVAILABLE.

params

Returns the requested data.

glGetQueryObject returns in params a selected parameter of the query object specified by id.

pname names a specific query object parameter. pname can be as follows:

GL_QUERY_RESULT

params returns the value of the query object’s passed samples counter. The initial value is 0.

GL_QUERY_RESULT_AVAILABLE

params returns whether the passed samples counter is immediately available. If a delay would occur waiting for the query result, GL_FALSE is returned. Otherwise, GL_TRUE is returned, which also indicates that the results of all previous queries are available as well.

GL_INVALID_ENUM is generated if pname is not an accepted value.

GL_INVALID_OPERATION is generated if id is not the name of a query object.

GL_INVALID_OPERATION is generated if id is the name of a currently active query object.

GL_INVALID_OPERATION is generated if glGetQueryObject is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetSeparableFilter target format type row column span

Get separable convolution filter kernel images.

target

The separable filter to be retrieved. Must be GL_SEPARABLE_2D.

format

Format of the output images. Must be one of GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGRGL_RGBA, GL_BGRA, GL_LUMINANCE, or GL_LUMINANCE_ALPHA.

type

Data type of components in the output images. Symbolic constants GL_UNSIGNED_BYTE, GL_BYTE, GL_BITMAP, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV are accepted.

row

Pointer to storage for the row filter image.

column

Pointer to storage for the column filter image.

span

Pointer to storage for the span filter image (currently unused).

glGetSeparableFilter returns the two one-dimensional filter kernel images for the current separable 2D convolution filter. The row image is placed in row and the column image is placed in column according to the specifications in format and type. (In the current implementation, span is not affected in any way.) No pixel transfer operations are performed on the images, but the relevant pixel storage modes are applied.

If a non-zero named buffer object is bound to the GL_PIXEL_PACK_BUFFER target (see glBindBuffer) while a separable convolution filter is requested, row, column, and span are treated as a byte offset into the buffer object’s data store.

Color components that are present in format but not included in the internal format of the filters are returned as zero. The assignments of internal color components to the components of format are as follows:

Internal Component

Resulting Component

Red

Red

Green

Green

Blue

Blue

Alpha

Alpha

Luminance

Red

Intensity

Red

GL_INVALID_ENUM is generated if target is not GL_SEPARABLE_2D.

GL_INVALID_ENUM is generated if format is not one of the allowable values.

GL_INVALID_ENUM is generated if type is not one of the allowable values.

GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.

GL_INVALID_OPERATION is generated if type is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV and format is neither GL_RGBA nor GL_BGRA.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and row or column is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glGetSeparableFilter is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetShaderInfoLog shader maxLength length infoLog

Returns the information log for a shader object.

shader

Specifies the shader object whose information log is to be queried.

maxLength

Specifies the size of the character buffer for storing the returned information log.

length

Returns the length of the string returned in infoLog (excluding the null terminator).

infoLog

Specifies an array of characters that is used to return the information log.

glGetShaderInfoLog returns the information log for the specified shader object. The information log for a shader object is modified when the shader is compiled. The string that is returned will be null terminated.

glGetShaderInfoLog returns in infoLog as much of the information log as it can, up to a maximum of maxLength characters. The number of characters actually returned, excluding the null termination character, is specified by length. If the length of the returned string is not required, a value of NULL can be passed in the length argument. The size of the buffer required to store the returned information log can be obtained by calling glGetShader with the value GL_INFO_LOG_LENGTH.

The information log for a shader object is a string that may contain diagnostic messages, warning messages, and other information about the last compile operation. When a shader object is created, its information log will be a string of length 0.

GL_INVALID_VALUE is generated if shader is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if shader is not a shader object.

GL_INVALID_VALUE is generated if maxLength is less than 0.

GL_INVALID_OPERATION is generated if glGetShaderInfoLog is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetShaderSource shader bufSize length source

Returns the source code string from a shader object.

shader

Specifies the shader object to be queried.

bufSize

Specifies the size of the character buffer for storing the returned source code string.

length

Returns the length of the string returned in source (excluding the null terminator).

source

Specifies an array of characters that is used to return the source code string.

glGetShaderSource returns the concatenation of the source code strings from the shader object specified by shader. The source code strings for a shader object are the result of a previous call to glShaderSource. The string returned by the function will be null terminated.

glGetShaderSource returns in source as much of the source code string as it can, up to a maximum of bufSize characters. The number of characters actually returned, excluding the null termination character, is specified by length. If the length of the returned string is not required, a value of NULL can be passed in the length argument. The size of the buffer required to store the returned source code string can be obtained by calling glGetShader with the value GL_SHADER_SOURCE_LENGTH.

GL_INVALID_VALUE is generated if shader is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if shader is not a shader object.

GL_INVALID_VALUE is generated if bufSize is less than 0.

GL_INVALID_OPERATION is generated if glGetShaderSource is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetShaderiv shader pname params

Returns a parameter from a shader object.

shader

Specifies the shader object to be queried.

pname

Specifies the object parameter. Accepted symbolic names are GL_SHADER_TYPE, GL_DELETE_STATUS, GL_COMPILE_STATUS, GL_INFO_LOG_LENGTH, GL_SHADER_SOURCE_LENGTH.

params

Returns the requested object parameter.

glGetShader returns in params the value of a parameter for a specific shader object. The following parameters are defined:

GL_SHADER_TYPE

params returns GL_VERTEX_SHADER if shader is a vertex shader object, and GL_FRAGMENT_SHADER if shader is a fragment shader object.

GL_DELETE_STATUS

params returns GL_TRUE if shader is currently flagged for deletion, and GL_FALSE otherwise.

GL_COMPILE_STATUS

params returns GL_TRUE if the last compile operation on shader was successful, and GL_FALSE otherwise.

GL_INFO_LOG_LENGTH

params returns the number of characters in the information log for shader including the null termination character (i.e., the size of the character buffer required to store the information log). If shader has no information log, a value of 0 is returned.

GL_SHADER_SOURCE_LENGTH

params returns the length of the concatenation of the source strings that make up the shader source for the shader, including the null termination character. (i.e., the size of the character buffer required to store the shader source). If no source code exists, 0 is returned.

GL_INVALID_VALUE is generated if shader is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if shader does not refer to a shader object.

GL_INVALID_ENUM is generated if pname is not an accepted value.

GL_INVALID_OPERATION is generated if glGetShader is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: const-GLubyte* glGetString name

Return a string describing the current GL connection.

name

Specifies a symbolic constant, one of GL_VENDOR, GL_RENDERER, GL_VERSION, GL_SHADING_LANGUAGE_VERSION, or GL_EXTENSIONS.

glGetString returns a pointer to a static string describing some aspect of the current GL connection. name can be one of the following:

GL_VENDOR

Returns the company responsible for this GL implementation. This name does not change from release to release.

GL_RENDERER

Returns the name of the renderer. This name is typically specific to a particular configuration of a hardware platform. It does not change from release to release.

GL_VERSION

Returns a version or release number.

GL_SHADING_LANGUAGE_VERSION

Returns a version or release number for the shading language.

GL_EXTENSIONS

Returns a space-separated list of supported extensions to GL.

Because the GL does not include queries for the performance characteristics of an implementation, some applications are written to recognize known platforms and modify their GL usage based on known performance characteristics of these platforms. Strings GL_VENDOR and GL_RENDERER together uniquely specify a platform. They do not change from release to release and should be used by platform-recognition algorithms.

Some applications want to make use of features that are not part of the standard GL. These features may be implemented as extensions to the standard GL. The GL_EXTENSIONS string is a space-separated list of supported GL extensions. (Extension names never contain a space character.)

The GL_VERSION and GL_SHADING_LANGUAGE_VERSION strings begin with a version number. The version number uses one of these forms:

major_number.minor_numbermajor_number.minor_number.release_number

Vendor-specific information may follow the version number. Its format depends on the implementation, but a space always separates the version number and the vendor-specific information.

All strings are null-terminated.

GL_INVALID_ENUM is generated if name is not an accepted value.

GL_INVALID_OPERATION is generated if glGetString is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetTexEnvfv target pname params
Function: void glGetTexEnviv target pname params

Return texture environment parameters.

target

Specifies a texture environment. May be GL_TEXTURE_ENV, GL_TEXTURE_FILTER_CONTROL, or GL_POINT_SPRITE.

pname

Specifies the symbolic name of a texture environment parameter. Accepted values are GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, GL_TEXTURE_LOD_BIAS, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, GL_SRC2_ALPHA, GL_OPERAND0_RGB, GL_OPERAND1_RGB, GL_OPERAND2_RGB, GL_OPERAND0_ALPHA, GL_OPERAND1_ALPHA, GL_OPERAND2_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, or GL_COORD_REPLACE.

params

Returns the requested data.

glGetTexEnv returns in params selected values of a texture environment that was specified with glTexEnv. target specifies a texture environment.

When target is GL_TEXTURE_FILTER_CONTROL, pname must be GL_TEXTURE_LOD_BIAS. When target is GL_POINT_SPRITE, pname must be GL_COORD_REPLACE. When target is GL_TEXTURE_ENV, pname can be GL_TEXTURE_ENV_MODE, GL_TEXTURE_ENV_COLOR, GL_COMBINE_RGB, GL_COMBINE_ALPHA, GL_RGB_SCALE, GL_ALPHA_SCALE, GL_SRC0_RGB, GL_SRC1_RGB, GL_SRC2_RGB, GL_SRC0_ALPHA, GL_SRC1_ALPHA, or GL_SRC2_ALPHA.

pname names a specific texture environment parameter, as follows:

GL_TEXTURE_ENV_MODE

params returns the single-valued texture environment mode, a symbolic constant. The initial value is GL_MODULATE.

GL_TEXTURE_ENV_COLOR

params returns four integer or floating-point values that are the texture environment color. Integer values, when requested, are linearly mapped from the internal floating-point representation such that 1.0 maps to the most positive representable integer, and -1.0 maps to the most negative representable integer. The initial value is (0, 0, 0, 0).

GL_TEXTURE_LOD_BIAS

params returns a single floating-point value that is the texture level-of-detail bias. The initial value is 0.

GL_COMBINE_RGB

params returns a single symbolic constant value representing the current RGB combine mode. The initial value is GL_MODULATE.

GL_COMBINE_ALPHA

params returns a single symbolic constant value representing the current alpha combine mode. The initial value is GL_MODULATE.

GL_SRC0_RGB

params returns a single symbolic constant value representing the texture combiner zero’s RGB source. The initial value is GL_TEXTURE.

GL_SRC1_RGB

params returns a single symbolic constant value representing the texture combiner one’s RGB source. The initial value is GL_PREVIOUS.

GL_SRC2_RGB

params returns a single symbolic constant value representing the texture combiner two’s RGB source. The initial value is GL_CONSTANT.

GL_SRC0_ALPHA

params returns a single symbolic constant value representing the texture combiner zero’s alpha source. The initial value is GL_TEXTURE.

GL_SRC1_ALPHA

params returns a single symbolic constant value representing the texture combiner one’s alpha source. The initial value is GL_PREVIOUS.

GL_SRC2_ALPHA

params returns a single symbolic constant value representing the texture combiner two’s alpha source. The initial value is GL_CONSTANT.

GL_OPERAND0_RGB

params returns a single symbolic constant value representing the texture combiner zero’s RGB operand. The initial value is GL_SRC_COLOR.

GL_OPERAND1_RGB

params returns a single symbolic constant value representing the texture combiner one’s RGB operand. The initial value is GL_SRC_COLOR.

GL_OPERAND2_RGB

params returns a single symbolic constant value representing the texture combiner two’s RGB operand. The initial value is GL_SRC_ALPHA.

GL_OPERAND0_ALPHA

params returns a single symbolic constant value representing the texture combiner zero’s alpha operand. The initial value is GL_SRC_ALPHA.

GL_OPERAND1_ALPHA

params returns a single symbolic constant value representing the texture combiner one’s alpha operand. The initial value is GL_SRC_ALPHA.

GL_OPERAND2_ALPHA

params returns a single symbolic constant value representing the texture combiner two’s alpha operand. The initial value is GL_SRC_ALPHA.

GL_RGB_SCALE

params returns a single floating-point value representing the current RGB texture combiner scaling factor. The initial value is 1.0.

GL_ALPHA_SCALE

params returns a single floating-point value representing the current alpha texture combiner scaling factor. The initial value is 1.0.

GL_COORD_REPLACE

params returns a single boolean value representing the current point sprite texture coordinate replacement enable state. The initial value is GL_FALSE.

GL_INVALID_ENUM is generated if target or pname is not an accepted value.

GL_INVALID_OPERATION is generated if glGetTexEnv is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetTexGendv coord pname params
Function: void glGetTexGenfv coord pname params
Function: void glGetTexGeniv coord pname params

Return texture coordinate generation parameters.

coord

Specifies a texture coordinate. Must be GL_S, GL_T, GL_R, or GL_Q.

pname

Specifies the symbolic name of the value(s) to be returned. Must be either GL_TEXTURE_GEN_MODE or the name of one of the texture generation plane equations: GL_OBJECT_PLANE or GL_EYE_PLANE.

params

Returns the requested data.

glGetTexGen returns in params selected parameters of a texture coordinate generation function that was specified using glTexGen. coord names one of the (s, t, r, q) texture coordinates, using the symbolic constant GL_S, GL_T, GL_R, or GL_Q.

pname specifies one of three symbolic names:

GL_TEXTURE_GEN_MODE

params returns the single-valued texture generation function, a symbolic constant. The initial value is GL_EYE_LINEAR.

GL_OBJECT_PLANE

params returns the four plane equation coefficients that specify object linear-coordinate generation. Integer values, when requested, are mapped directly from the internal floating-point representation.

GL_EYE_PLANE

params returns the four plane equation coefficients that specify eye linear-coordinate generation. Integer values, when requested, are mapped directly from the internal floating-point representation. The returned values are those maintained in eye coordinates. They are not equal to the values specified using glTexGen, unless the modelview matrix was identity when glTexGen was called.

GL_INVALID_ENUM is generated if coord or pname is not an accepted value.

GL_INVALID_OPERATION is generated if glGetTexGen is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetTexImage target level format type img

Return a texture image.

target

Specifies which texture is to be obtained. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, and GL_TEXTURE_CUBE_MAP_NEGATIVE_Z are accepted.

level

Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level n is the nth mipmap reduction image.

format

Specifies a pixel format for the returned data. The supported formats are GL_RED, GL_GREEN, GL_BLUE, GL_ALPHA, GL_RGB, GL_BGR, GL_RGBA, GL_BGRA, GL_LUMINANCE, and GL_LUMINANCE_ALPHA.

type

Specifies a pixel type for the returned data. The supported types are GL_UNSIGNED_BYTE, GL_BYTE, GL_UNSIGNED_SHORT, GL_SHORT, GL_UNSIGNED_INT, GL_INT, GL_FLOAT, GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, GL_UNSIGNED_SHORT_5_6_5_REV, GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, and GL_UNSIGNED_INT_2_10_10_10_REV.

img

Returns the texture image. Should be a pointer to an array of the type specified by type.

glGetTexImage returns a texture image into img. target specifies whether the desired texture image is one specified by glTexImage1D (GL_TEXTURE_1D), glTexImage2D (GL_TEXTURE_2D or any of GL_TEXTURE_CUBE_MAP_*), or glTexImage3D (GL_TEXTURE_3D). level specifies the level-of-detail number of the desired image. format and type specify the format and type of the desired image array. See the reference pages glTexImage1D and glDrawPixels for a description of the acceptable values for the format and type parameters, respectively.

If a non-zero named buffer object is bound to the GL_PIXEL_PACK_BUFFER target (see glBindBuffer) while a texture image is requested, img is treated as a byte offset into the buffer object’s data store.

To understand the operation of glGetTexImage, consider the selected internal four-component texture image to be an RGBA color buffer the size of the image. The semantics of glGetTexImage are then identical to those of glReadPixels, with the exception that no pixel transfer operations are performed, when called with the same format and type, with x and y set to 0, width set to the width of the texture image (including border if one was specified), and height set to 1 for 1D images, or to the height of the texture image (including border if one was specified) for 2D images. Because the internal texture image is an RGBA image, pixel formats GL_COLOR_INDEX, GL_STENCIL_INDEX, and GL_DEPTH_COMPONENT are not accepted, and pixel type GL_BITMAP is not accepted.

If the selected texture image does not contain four components, the following mappings are applied. Single-component textures are treated as RGBA buffers with red set to the single-component value, green set to 0, blue set to 0, and alpha set to 1. Two-component textures are treated as RGBA buffers with red set to the value of component zero, alpha set to the value of component one, and green and blue set to 0. Finally, three-component textures are treated as RGBA buffers with red set to component zero, green set to component one, blue set to component two, and alpha set to 1.

To determine the required size of img, use glGetTexLevelParameter to determine the dimensions of the internal texture image, then scale the required number of pixels by the storage required for each pixel, based on format and type. Be sure to take the pixel storage parameters into account, especially GL_PACK_ALIGNMENT.

GL_INVALID_ENUM is generated if target, format, or type is not an accepted value.

GL_INVALID_VALUE is generated if level is less than 0.

GL_INVALID_VALUE may be generated if level is greater than log_2⁡(max,), where max is the returned value of GL_MAX_TEXTURE_SIZE.

GL_INVALID_OPERATION is returned if type is one of GL_UNSIGNED_BYTE_3_3_2, GL_UNSIGNED_BYTE_2_3_3_REV, GL_UNSIGNED_SHORT_5_6_5, or GL_UNSIGNED_SHORT_5_6_5_REV and format is not GL_RGB.

GL_INVALID_OPERATION is returned if type is one of GL_UNSIGNED_SHORT_4_4_4_4, GL_UNSIGNED_SHORT_4_4_4_4_REV, GL_UNSIGNED_SHORT_5_5_5_1, GL_UNSIGNED_SHORT_1_5_5_5_REV, GL_UNSIGNED_INT_8_8_8_8, GL_UNSIGNED_INT_8_8_8_8_REV, GL_UNSIGNED_INT_10_10_10_2, or GL_UNSIGNED_INT_2_10_10_10_REV, and format is neither GL_RGBA or GL_BGRA.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the buffer object’s data store is currently mapped.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and the data would be packed to the buffer object such that the memory writes required would exceed the data store size.

GL_INVALID_OPERATION is generated if a non-zero buffer object name is bound to the GL_PIXEL_PACK_BUFFER target and img is not evenly divisible into the number of bytes needed to store in memory a datum indicated by type.

GL_INVALID_OPERATION is generated if glGetTexImage is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetTexLevelParameterfv target level pname params
Function: void glGetTexLevelParameteriv target level pname params

Return texture parameter values for a specific level of detail.

target

Specifies the symbolic name of the target texture, either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.

level

Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level n is the nth mipmap reduction image.

pname

Specifies the symbolic name of a texture parameter. GL_TEXTURE_WIDTH, GL_TEXTURE_HEIGHT, GL_TEXTURE_DEPTH, GL_TEXTURE_INTERNAL_FORMAT, GL_TEXTURE_BORDER, GL_TEXTURE_RED_SIZE, GL_TEXTURE_GREEN_SIZE, GL_TEXTURE_BLUE_SIZE, GL_TEXTURE_ALPHA_SIZE, GL_TEXTURE_LUMINANCE_SIZE, GL_TEXTURE_INTENSITY_SIZE, GL_TEXTURE_DEPTH_SIZE, GL_TEXTURE_COMPRESSED, and GL_TEXTURE_COMPRESSED_IMAGE_SIZE are accepted.

params

Returns the requested data.

glGetTexLevelParameter returns in params texture parameter values for a specific level-of-detail value, specified as level. target defines the target texture, either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, GL_PROXY_TEXTURE_1D, GL_PROXY_TEXTURE_2D, GL_PROXY_TEXTURE_3D, GL_TEXTURE_CUBE_MAP_POSITIVE_X, GL_TEXTURE_CUBE_MAP_NEGATIVE_X, GL_TEXTURE_CUBE_MAP_POSITIVE_Y, GL_TEXTURE_CUBE_MAP_NEGATIVE_Y, GL_TEXTURE_CUBE_MAP_POSITIVE_Z, GL_TEXTURE_CUBE_MAP_NEGATIVE_Z, or GL_PROXY_TEXTURE_CUBE_MAP.

GL_MAX_TEXTURE_SIZE, and GL_MAX_3D_TEXTURE_SIZE are not really descriptive enough. It has to report the largest square texture image that can be accommodated with mipmaps and borders, but a long skinny texture, or a texture without mipmaps and borders, may easily fit in texture memory. The proxy targets allow the user to more accurately query whether the GL can accommodate a texture of a given configuration. If the texture cannot be accommodated, the texture state variables, which may be queried with glGetTexLevelParameter, are set to 0. If the texture can be accommodated, the texture state values will be set as they would be set for a non-proxy target.

pname specifies the texture parameter whose value or values will be returned.

The accepted parameter names are as follows:

GL_TEXTURE_WIDTH

params returns a single value, the width of the texture image. This value includes the border of the texture image. The initial value is 0.

GL_TEXTURE_HEIGHT

params returns a single value, the height of the texture image. This value includes the border of the texture image. The initial value is 0.

GL_TEXTURE_DEPTH

params returns a single value, the depth of the texture image. This value includes the border of the texture image. The initial value is 0.

GL_TEXTURE_INTERNAL_FORMAT

params returns a single value, the internal format of the texture image.

GL_TEXTURE_BORDER

params returns a single value, the width in pixels of the border of the texture image. The initial value is 0.

GL_TEXTURE_RED_SIZE,
GL_TEXTURE_GREEN_SIZE,
GL_TEXTURE_BLUE_SIZE,
GL_TEXTURE_ALPHA_SIZE,
GL_TEXTURE_LUMINANCE_SIZE,
GL_TEXTURE_INTENSITY_SIZE,
GL_TEXTURE_DEPTH_SIZE

The internal storage resolution of an individual component. The resolution chosen by the GL will be a close match for the resolution requested by the user with the component argument of glTexImage1D, glTexImage2D, glTexImage3D, glCopyTexImage1D, and glCopyTexImage2D. The initial value is 0.

GL_TEXTURE_COMPRESSED

params returns a single boolean value indicating if the texture image is stored in a compressed internal format. The initiali value is GL_FALSE.

GL_TEXTURE_COMPRESSED_IMAGE_SIZE

params returns a single integer value, the number of unsigned bytes of the compressed texture image that would be returned from glGetCompressedTexImage.

GL_INVALID_ENUM is generated if target or pname is not an accepted value.

GL_INVALID_VALUE is generated if level is less than 0.

GL_INVALID_VALUE may be generated if level is greater than log_2max, where max is the returned value of GL_MAX_TEXTURE_SIZE.

GL_INVALID_OPERATION is generated if glGetTexLevelParameter is executed between the execution of glBegin and the corresponding execution of glEnd.

GL_INVALID_OPERATION is generated if GL_TEXTURE_COMPRESSED_IMAGE_SIZE is queried on texture images with an uncompressed internal format or on proxy targets.

Function: void glGetTexParameterfv target pname params
Function: void glGetTexParameteriv target pname params

Return texture parameter values.

target

Specifies the symbolic name of the target texture. GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, and GL_TEXTURE_CUBE_MAP are accepted.

pname

Specifies the symbolic name of a texture parameter. GL_TEXTURE_MAG_FILTER, GL_TEXTURE_MIN_FILTER, GL_TEXTURE_MIN_LOD, GL_TEXTURE_MAX_LOD, GL_TEXTURE_BASE_LEVEL, GL_TEXTURE_MAX_LEVEL, GL_TEXTURE_WRAP_S, GL_TEXTURE_WRAP_T, GL_TEXTURE_WRAP_R, GL_TEXTURE_BORDER_COLOR, GL_TEXTURE_PRIORITY, GL_TEXTURE_RESIDENT, GL_TEXTURE_COMPARE_MODE, GL_TEXTURE_COMPARE_FUNC, GL_DEPTH_TEXTURE_MODE, and GL_GENERATE_MIPMAP are accepted.

params

Returns the texture parameters.

glGetTexParameter returns in params the value or values of the texture parameter specified as pname. target defines the target texture, either GL_TEXTURE_1D, GL_TEXTURE_2D, GL_TEXTURE_3D, or GL_TEXTURE_CUBE_MAP, to specify one-, two-, or three-dimensional or cube-mapped texturing. pname accepts the same symbols as glTexParameter, with the same interpretations:

GL_TEXTURE_MAG_FILTER

Returns the single-valued texture magnification filter, a symbolic constant. The initial value is GL_LINEAR.

GL_TEXTURE_MIN_FILTER

Returns the single-valued texture minification filter, a symbolic constant. The initial value is GL_NEAREST_MIPMAP_LINEAR.

GL_TEXTURE_MIN_LOD

Returns the single-valued texture minimum level-of-detail value. The initial value is -1000.

GL_TEXTURE_MAX_LOD

Returns the single-valued texture maximum level-of-detail value. The initial value is 1000.

GL_TEXTURE_BASE_LEVEL

Returns the single-valued base texture mipmap level. The initial value is 0.

GL_TEXTURE_MAX_LEVEL

Returns the single-valued maximum texture mipmap array level. The initial value is 1000.

GL_TEXTURE_WRAP_S

Returns the single-valued wrapping function for texture coordinate s, a symbolic constant. The initial value is GL_REPEAT.

GL_TEXTURE_WRAP_T

Returns the single-valued wrapping function for texture coordinate t, a symbolic constant. The initial value is GL_REPEAT.

GL_TEXTURE_WRAP_R

Returns the single-valued wrapping function for texture coordinate r, a symbolic constant. The initial value is GL_REPEAT.

GL_TEXTURE_BORDER_COLOR

Returns four integer or floating-point numbers that comprise the RGBA color of the texture border. Floating-point values are returned in the range [0,1]. Integer values are returned as a linear mapping of the internal floating-point representation such that 1.0 maps to the most positive representable integer and -1.0 maps to the most negative representable integer. The initial value is (0, 0, 0, 0).

GL_TEXTURE_PRIORITY

Returns the residence priority of the target texture (or the named texture bound to it). The initial value is 1. See glPrioritizeTextures.

GL_TEXTURE_RESIDENT

Returns the residence status of the target texture. If the value returned in params is GL_TRUE, the texture is resident in texture memory. See glAreTexturesResident.

GL_TEXTURE_COMPARE_MODE

Returns a single-valued texture comparison mode, a symbolic constant. The initial value is GL_NONE. See glTexParameter.

GL_TEXTURE_COMPARE_FUNC

Returns a single-valued texture comparison function, a symbolic constant. The initial value is GL_LEQUAL. See glTexParameter.

GL_DEPTH_TEXTURE_MODE

Returns a single-valued texture format indicating how the depth values should be converted into color components. The initial value is GL_LUMINANCE. See glTexParameter.

GL_GENERATE_MIPMAP

Returns a single boolean value indicating if automatic mipmap level updates are enabled. See glTexParameter.

GL_INVALID_ENUM is generated if target or pname is not an accepted value.

GL_INVALID_OPERATION is generated if glGetTexParameter is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: GLint glGetUniformLocation program name

Returns the location of a uniform variable.

program

Specifies the program object to be queried.

name

Points to a null terminated string containing the name of the uniform variable whose location is to be queried.

glGetUniformLocation returns an integer that represents the location of a specific uniform variable within a program object. name must be a null terminated string that contains no white space. name must be an active uniform variable name in program that is not a structure, an array of structures, or a subcomponent of a vector or a matrix. This function returns -1 if name does not correspond to an active uniform variable in program or if name starts with the reserved prefix "gl_".

Uniform variables that are structures or arrays of structures may be queried by calling glGetUniformLocation for each field within the structure. The array element operator "[]" and the structure field operator "." may be used in name in order to select elements within an array or fields within a structure. The result of using these operators is not allowed to be another structure, an array of structures, or a subcomponent of a vector or a matrix. Except if the last part of name indicates a uniform variable array, the location of the first element of an array can be retrieved by using the name of the array, or by using the name appended by "[0]".

The actual locations assigned to uniform variables are not known until the program object is linked successfully. After linking has occurred, the command glGetUniformLocation can be used to obtain the location of a uniform variable. This location value can then be passed to glUniform to set the value of the uniform variable or to glGetUniform in order to query the current value of the uniform variable. After a program object has been linked successfully, the index values for uniform variables remain fixed until the next link command occurs. Uniform variable locations and values can only be queried after a link if the link was successful.

GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_OPERATION is generated if program has not been successfully linked.

GL_INVALID_OPERATION is generated if glGetUniformLocation is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetUniformfv program location params
Function: void glGetUniformiv program location params

Returns the value of a uniform variable.

program

Specifies the program object to be queried.

location

Specifies the location of the uniform variable to be queried.

params

Returns the value of the specified uniform variable.

glGetUniform returns in params the value(s) of the specified uniform variable. The type of the uniform variable specified by location determines the number of values returned. If the uniform variable is defined in the shader as a boolean, int, or float, a single value will be returned. If it is defined as a vec2, ivec2, or bvec2, two values will be returned. If it is defined as a vec3, ivec3, or bvec3, three values will be returned, and so on. To query values stored in uniform variables declared as arrays, call glGetUniform for each element of the array. To query values stored in uniform variables declared as structures, call glGetUniform for each field in the structure. The values for uniform variables declared as a matrix will be returned in column major order.

The locations assigned to uniform variables are not known until the program object is linked. After linking has occurred, the command glGetUniformLocation can be used to obtain the location of a uniform variable. This location value can then be passed to glGetUniform in order to query the current value of the uniform variable. After a program object has been linked successfully, the index values for uniform variables remain fixed until the next link command occurs. The uniform variable values can only be queried after a link if the link was successful.

GL_INVALID_VALUE is generated if program is not a value generated by OpenGL.

GL_INVALID_OPERATION is generated if program is not a program object.

GL_INVALID_OPERATION is generated if program has not been successfully linked.

GL_INVALID_OPERATION is generated if location does not correspond to a valid uniform variable location for the specified program object.

GL_INVALID_OPERATION is generated if glGetUniform is executed between the execution of glBegin and the corresponding execution of glEnd.

Function: void glGetVertexAttribPointerv index pname pointer

Return the address of the specified generic vertex attribute pointer.

index

Specifies the generic vertex attribute parameter to be returned.

pname

Specifies the symbolic name of the generic vertex attribute parameter to be returned. Must be GL_VERTEX_ATTRIB_ARRAY_POINTER.

pointer

Returns the pointer value.

glGetVertexAttribPointerv returns pointer information. index is the generic vertex attribute to be queried, pname is a symbolic constant indicating the pointer to be returned, and params is a pointer to a location in which to place the returned data.

If a non-zero named buffer object was bound to the GL_ARRAY_BUFFER target (see glBindBuffer) when the desired pointer was previously specified, the pointer returned is a byte offset into the buffer object’s data store.

GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX_ATTRIBS.

GL_INVALID_ENUM is generated if pname is not an accepted value.

Function: void glGetVertexAttribdv index pname params
Function: void glGetVertexAttribfv index pname params
Function: void glGetVertexAttribiv index pname params

Return a generic vertex attribute parameter.

index

Specifies the generic vertex attribute parameter to be queried.

pname

Specifies the symbolic name of the vertex attribute parameter to be queried. Accepted values are GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING, GL_VERTEX_ATTRIB_ARRAY_ENABLED, GL_VERTEX_ATTRIB_ARRAY_SIZE, GL_VERTEX_ATTRIB_ARRAY_STRIDE, GL_VERTEX_ATTRIB_ARRAY_TYPE, GL_VERTEX_ATTRIB_ARRAY_NORMALIZED, or GL_CURRENT_VERTEX_ATTRIB.

params

Returns the requested data.

glGetVertexAttrib returns in params the value of a generic vertex attribute parameter. The generic vertex attribute to be queried is specified by index, and the parameter to be queried is specified by pname.

The accepted parameter names are as follows:

GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING

params returns a single value, the name of the buffer object currently bound to the binding point corresponding to generic vertex attribute array index. If no buffer object is bound, 0 is returned. The initial value is 0.

GL_VERTEX_ATTRIB_ARRAY_ENABLED

params returns a single value that is non-zero (true) if the vertex attribute array for index is enabled and 0 (false) if it is disabled. The initial value is GL_FALSE.

GL_VERTEX_ATTRIB_ARRAY_SIZE

params returns a single value, the size of the vertex attribute array for index. The size is the number of values for each element of the vertex attribute array, and it will be 1, 2, 3, or 4. The initial value is 4.

GL_VERTEX_ATTRIB_ARRAY_STRIDE

params returns a single value, the array stride for (number of bytes between successive elements in) the vertex attribute array for index. A value of 0 indicates that the array elements are stored sequentially in memory. The initial value is 0.

GL_VERTEX_ATTRIB_ARRAY_TYPE

params returns a single value, a symbolic constant indicating the array type for the vertex attribute array for index. Possible values are GL_BYTE, GL_UNSIGNED_BYTE, GL_SHORT, GL_UNSIGNED_SHORT, GL_INT, GL_UNSIGNED_INT, GL_FLOAT, and GL_DOUBLE. The initial value is GL_FLOAT.

GL_VERTEX_ATTRIB_ARRAY_NORMALIZED

params returns a single value that is non-zero (true) if fixed-point data types for the vertex attribute array indicated by index are normalized when they are converted to floating point, and 0 (false) otherwise. The initial value is GL_FALSE.

GL_CURRENT_VERTEX_ATTRIB

params returns four values that represent the current value for the generic vertex attribute specified by index. Generic vertex attribute 0 is unique in that it has no current state, so an error will be generated if index is 0. The initial value for all other generic vertex attributes is (0,0,0,1).

All of the parameters except GL_CURRENT_VERTEX_ATTRIB represent client-side state.

GL_INVALID_VALUE is generated if index is greater than or equal to GL_MAX_VERTEX_ATTRIBS.

GL_INVALID_ENUM is generated if pname is not an accepted value.

GL_INVALID_OPERATION is generated if index is 0 and pname is GL_CURRENT_VERTEX_ATTRIB.

Function: void glGetBooleanv pname params
Function: void glGetDoublev pname params
Function: void glGetFloatv pname params
Function: void glGetIntegerv pname params

Return the value or values of a selected parameter.

pname

Specifies the parameter value to be returned. The symbolic constants in the list below are accepted.

params

Returns the value or values of the specified parameter.

These four commands return values for simple state variables in GL. pname is a symbolic constant indicating the state variable to be returned, and params is a pointer to an array of the indicated type in which to place the returned data.

Type conversion is performed if params has a different type than the state variable value being requested. If glGetBooleanv is called, a floating-point (or integer) value is converted to GL_FALSE if and only if it is 0.0 (or 0). Otherwise, it is converted to GL_TRUE. If glGetIntegerv is called, boolean values are returned as GL_TRUE or GL_FALSE, and most floating-point values are rounded to the nearest integer value. Floating-point colors and normals, however, are returned with a linear mapping that maps 1.0 to the most positive representable integer value and -1.0 to the most negative representable integer value. If glGetFloatv or glGetDoublev is called, boolean values are returned as GL_TRUE or GL_FALSE, and integer values are converted to floating-point values.

The following symbolic constants are accepted by pname:

GL_ACCUM_ALPHA_BITS

params returns one value, the number of alpha bitplanes in the accumulation buffer.

GL_ACCUM_BLUE_BITS

params returns one value, the number of blue bitplanes in the accumulation buffer.

GL_ACCUM_CLEAR_VALUE

params returns four values: the red, green, blue, and alpha values used to clear the accumulation buffer. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (0, 0, 0, 0). See glClearAccum.

GL_ACCUM_GREEN_BITS

params returns one value, the number of green bitplanes in the accumulation buffer.

GL_ACCUM_RED_BITS

params returns one value, the number of red bitplanes in the accumulation buffer.

GL_ACTIVE_TEXTURE

params returns a single value indicating the active multitexture unit. The initial value is GL_TEXTURE0. See glActiveTexture.

GL_ALIASED_POINT_SIZE_RANGE

params returns two values, the smallest and largest supported sizes for aliased points.

GL_ALIASED_LINE_WIDTH_RANGE

params returns two values, the smallest and largest supported widths for aliased lines.

GL_ALPHA_BIAS

params returns one value, the alpha bias factor used during pixel transfers. The initial value is 0. See glPixelTransfer.

GL_ALPHA_BITS

params returns one value, the number of alpha bitplanes in each color buffer.

GL_ALPHA_SCALE

params returns one value, the alpha scale factor used during pixel transfers. The initial value is 1. See glPixelTransfer.

GL_ALPHA_TEST

params returns a single boolean value indicating whether alpha testing of fragments is enabled. The initial value is GL_FALSE. See glAlphaFunc.

GL_ALPHA_TEST_FUNCparams returns one value,

the symbolic name of the alpha test function. The initial value is GL_ALWAYS. See glAlphaFunc.

GL_ALPHA_TEST_REF

params returns one value, the reference value for the alpha test. The initial value is 0. See glAlphaFunc. An integer value, if requested, is linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value.

GL_ARRAY_BUFFER_BINDING

params returns a single value, the name of the buffer object currently bound to the target GL_ARRAY_BUFFER. If no buffer object is bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.

GL_ATTRIB_STACK_DEPTH

params returns one value, the depth of the attribute stack. If the stack is empty, 0 is returned. The initial value is 0. See glPushAttrib.

GL_AUTO_NORMAL

params returns a single boolean value indicating whether 2D map evaluation automatically generates surface normals. The initial value is GL_FALSE. See glMap2.

GL_AUX_BUFFERS

params returns one value, the number of auxiliary color buffers available.

GL_BLEND

params returns a single boolean value indicating whether blending is enabled. The initial value is GL_FALSE. See glBlendFunc.

GL_BLEND_COLOR

params returns four values, the red, green, blue, and alpha values which are the components of the blend color. See glBlendColor.

GL_BLEND_DST_ALPHA

params returns one value, the symbolic constant identifying the alpha destination blend function. The initial value is GL_ZERO. See glBlendFunc and glBlendFuncSeparate.

GL_BLEND_DST_RGB

params returns one value, the symbolic constant identifying the RGB destination blend function. The initial value is GL_ZERO. See glBlendFunc and glBlendFuncSeparate.

GL_BLEND_EQUATION_RGB

params returns one value, a symbolic constant indicating whether the RGB blend equation is GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN or GL_MAX. See glBlendEquationSeparate.

GL_BLEND_EQUATION_ALPHA

params returns one value, a symbolic constant indicating whether the Alpha blend equation is GL_FUNC_ADD, GL_FUNC_SUBTRACT, GL_FUNC_REVERSE_SUBTRACT, GL_MIN or GL_MAX. See glBlendEquationSeparate.

GL_BLEND_SRC_ALPHA

params returns one value, the symbolic constant identifying the alpha source blend function. The initial value is GL_ONE. See glBlendFunc and glBlendFuncSeparate.

GL_BLEND_SRC_RGB

params returns one value, the symbolic constant identifying the RGB source blend function. The initial value is GL_ONE. See glBlendFunc and glBlendFuncSeparate.

GL_BLUE_BIAS

params returns one value, the blue bias factor used during pixel transfers. The initial value is 0. See glPixelTransfer.

GL_BLUE_BITS

params returns one value, the number of blue bitplanes in each color buffer.

GL_BLUE_SCALE

params returns one value, the blue scale factor used during pixel transfers. The initial value is 1. See glPixelTransfer.

GL_CLIENT_ACTIVE_TEXTURE

params returns a single integer value indicating the current client active multitexture unit. The initial value is GL_TEXTURE0. See glClientActiveTexture.

GL_CLIENT_ATTRIB_STACK_DEPTH

params returns one value indicating the depth of the attribute stack. The initial value is 0. See glPushClientAttrib.

GL_CLIP_PLANEi

params returns a single boolean value indicating whether the specified clipping plane is enabled. The initial value is GL_FALSE. See glClipPlane.

GL_COLOR_ARRAY

params returns a single boolean value indicating whether the color array is enabled. The initial value is GL_FALSE. See glColorPointer.

GL_COLOR_ARRAY_BUFFER_BINDING

params returns a single value, the name of the buffer object associated with the color array. This buffer object would have been bound to the target GL_ARRAY_BUFFER at the time of the most recent call to glColorPointer. If no buffer object was bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.

GL_COLOR_ARRAY_SIZE

params returns one value, the number of components per color in the color array. The initial value is 4. See glColorPointer.

GL_COLOR_ARRAY_STRIDE

params returns one value, the byte offset between consecutive colors in the color array. The initial value is 0. See glColorPointer.

GL_COLOR_ARRAY_TYPE

params returns one value, the data type of each component in the color array. The initial value is GL_FLOAT. See glColorPointer.

GL_COLOR_CLEAR_VALUE

params returns four values: the red, green, blue, and alpha values used to clear the color buffers. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (0, 0, 0, 0). See glClearColor.

GL_COLOR_LOGIC_OP

params returns a single boolean value indicating whether a fragment’s RGBA color values are merged into the framebuffer using a logical operation. The initial value is GL_FALSE. See glLogicOp.

GL_COLOR_MATERIAL

params returns a single boolean value indicating whether one or more material parameters are tracking the current color. The initial value is GL_FALSE. See glColorMaterial.

GL_COLOR_MATERIAL_FACE

params returns one value, a symbolic constant indicating which materials have a parameter that is tracking the current color. The initial value is GL_FRONT_AND_BACK. See glColorMaterial.

GL_COLOR_MATERIAL_PARAMETER

params returns one value, a symbolic constant indicating which material parameters are tracking the current color. The initial value is GL_AMBIENT_AND_DIFFUSE. See glColorMaterial.

GL_COLOR_MATRIX

params returns sixteen values: the color matrix on the top of the color matrix stack. Initially this matrix is the identity matrix. See glPushMatrix.

GL_COLOR_MATRIX_STACK_DEPTH

params returns one value, the maximum supported depth of the projection matrix stack. The value must be at least 2. See glPushMatrix.

GL_COLOR_SUM

params returns a single boolean value indicating whether primary and secondary color sum is enabled. See glSecondaryColor.

GL_COLOR_TABLE

params returns a single boolean value indicating whether the color table lookup is enabled. See glColorTable.

GL_COLOR_WRITEMASK

params returns four boolean values: the red, green, blue, and alpha write enables for the color buffers. The initial value is (GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE). See glColorMask.

GL_COMPRESSED_TEXTURE_FORMATS

params returns a list of symbolic constants of length GL_NUM_COMPRESSED_TEXTURE_FORMATS indicating which compressed texture formats are available. See glCompressedTexImage2D.

GL_CONVOLUTION_1D

params returns a single boolean value indicating whether 1D convolution is enabled. The initial value is GL_FALSE. See glConvolutionFilter1D.

GL_CONVOLUTION_2D

params returns a single boolean value indicating whether 2D convolution is enabled. The initial value is GL_FALSE. See glConvolutionFilter2D.

GL_CULL_FACE

params returns a single boolean value indicating whether polygon culling is enabled. The initial value is GL_FALSE. See glCullFace.

GL_CULL_FACE_MODE

params returns one value, a symbolic constant indicating which polygon faces are to be culled. The initial value is GL_BACK. See glCullFace.

GL_CURRENT_COLOR

params returns four values: the red, green, blue, and alpha values of the current color. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (1, 1, 1, 1). See glColor.

GL_CURRENT_FOG_COORD

params returns one value, the current fog coordinate. The initial value is 0. See glFogCoord.

GL_CURRENT_INDEX

params returns one value, the current color index. The initial value is 1. See glIndex.

GL_CURRENT_NORMAL

params returns three values: the x, y, and z values of the current normal. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (0, 0, 1). See glNormal.

GL_CURRENT_PROGRAM

params returns one value, the name of the program object that is currently active, or 0 if no program object is active. See glUseProgram.

GL_CURRENT_RASTER_COLOR

params returns four values: the red, green, blue, and alpha color values of the current raster position. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (1, 1, 1, 1). See glRasterPos.

GL_CURRENT_RASTER_DISTANCE

params returns one value, the distance from the eye to the current raster position. The initial value is 0. See glRasterPos.

GL_CURRENT_RASTER_INDEX

params returns one value, the color index of the current raster position. The initial value is 1. See glRasterPos.

GL_CURRENT_RASTER_POSITION

params returns four values: the x, y, z, and w components of the current raster position. x, y, and z are in window coordinates, and w is in clip coordinates. The initial value is (0, 0, 0, 1). See glRasterPos.

GL_CURRENT_RASTER_POSITION_VALID

params returns a single boolean value indicating whether the current raster position is valid. The initial value is GL_TRUE. See glRasterPos.

GL_CURRENT_RASTER_SECONDARY_COLOR

params returns four values: the red, green, blue, and alpha secondary color values of the current raster position. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (1, 1, 1, 1). See glRasterPos.

GL_CURRENT_RASTER_TEXTURE_COORDS

params returns four values: the s, t, r, and q texture coordinates of the current raster position. The initial value is (0, 0, 0, 1). See glRasterPos and glMultiTexCoord.

GL_CURRENT_SECONDARY_COLOR

params returns four values: the red, green, blue, and alpha values of the current secondary color. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (0, 0, 0, 0). See glSecondaryColor.

GL_CURRENT_TEXTURE_COORDS

params returns four values: the s, t, r, and q current texture coordinates. The initial value is (0, 0, 0, 1). See glMultiTexCoord.

GL_DEPTH_BIAS

params returns one value, the depth bias factor used during pixel transfers. The initial value is 0. See glPixelTransfer.

GL_DEPTH_BITS

params returns one value, the number of bitplanes in the depth buffer.

GL_DEPTH_CLEAR_VALUE

params returns one value, the value that is used to clear the depth buffer. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is 1. See glClearDepth.

GL_DEPTH_FUNC

params returns one value, the symbolic constant that indicates the depth comparison function. The initial value is GL_LESS. See glDepthFunc.

GL_DEPTH_RANGE

params returns two values: the near and far mapping limits for the depth buffer. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (0, 1). See glDepthRange.

GL_DEPTH_SCALE

params returns one value, the depth scale factor used during pixel transfers. The initial value is 1. See glPixelTransfer.

GL_DEPTH_TEST

params returns a single boolean value indicating whether depth testing of fragments is enabled. The initial value is GL_FALSE. See glDepthFunc and glDepthRange.

GL_DEPTH_WRITEMASK

params returns a single boolean value indicating if the depth buffer is enabled for writing. The initial value is GL_TRUE. See glDepthMask.

GL_DITHER

params returns a single boolean value indicating whether dithering of fragment colors and indices is enabled. The initial value is GL_TRUE.

GL_DOUBLEBUFFER

params returns a single boolean value indicating whether double buffering is supported.

GL_DRAW_BUFFER

params returns one value, a symbolic constant indicating which buffers are being drawn to. See glDrawBuffer. The initial value is GL_BACK if there are back buffers, otherwise it is GL_FRONT.

GL_DRAW_BUFFERi

params returns one value, a symbolic constant indicating which buffers are being drawn to by the corresponding output color. See glDrawBuffers. The initial value of GL_DRAW_BUFFER0 is GL_BACK if there are back buffers, otherwise it is GL_FRONT. The initial values of draw buffers for all other output colors is GL_NONE.

GL_EDGE_FLAG

params returns a single boolean value indicating whether the current edge flag is GL_TRUE or GL_FALSE. The initial value is GL_TRUE. See glEdgeFlag.

GL_EDGE_FLAG_ARRAY

params returns a single boolean value indicating whether the edge flag array is enabled. The initial value is GL_FALSE. See glEdgeFlagPointer.

GL_EDGE_FLAG_ARRAY_BUFFER_BINDING

params returns a single value, the name of the buffer object associated with the edge flag array. This buffer object would have been bound to the target GL_ARRAY_BUFFER at the time of the most recent call to glEdgeFlagPointer. If no buffer object was bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.

GL_EDGE_FLAG_ARRAY_STRIDE

params returns one value, the byte offset between consecutive edge flags in the edge flag array. The initial value is 0. See glEdgeFlagPointer.

GL_ELEMENT_ARRAY_BUFFER_BINDING

params returns a single value, the name of the buffer object currently bound to the target GL_ELEMENT_ARRAY_BUFFER. If no buffer object is bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.

GL_FEEDBACK_BUFFER_SIZE

params returns one value, the size of the feedback buffer. See glFeedbackBuffer.

GL_FEEDBACK_BUFFER_TYPE

params returns one value, the type of the feedback buffer. See glFeedbackBuffer.

GL_FOG

params returns a single boolean value indicating whether fogging is enabled. The initial value is GL_FALSE. See glFog.

GL_FOG_COORD_ARRAY

params returns a single boolean value indicating whether the fog coordinate array is enabled. The initial value is GL_FALSE. See glFogCoordPointer.

GL_FOG_COORD_ARRAY_BUFFER_BINDING

params returns a single value, the name of the buffer object associated with the fog coordinate array. This buffer object would have been bound to the target GL_ARRAY_BUFFER at the time of the most recent call to glFogCoordPointer. If no buffer object was bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.

GL_FOG_COORD_ARRAY_STRIDE

params returns one value, the byte offset between consecutive fog coordinates in the fog coordinate array. The initial value is 0. See glFogCoordPointer.

GL_FOG_COORD_ARRAY_TYPE

params returns one value, the type of the fog coordinate array. The initial value is GL_FLOAT. See glFogCoordPointer.

GL_FOG_COORD_SRC

params returns one value, a symbolic constant indicating the source of the fog coordinate. The initial value is GL_FRAGMENT_DEPTH. See glFog.

GL_FOG_COLOR

params returns four values: the red, green, blue, and alpha components of the fog color. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (0, 0, 0, 0). See glFog.

GL_FOG_DENSITY

params returns one value, the fog density parameter. The initial value is 1. See glFog.

GL_FOG_END

params returns one value, the end factor for the linear fog equation. The initial value is 1. See glFog.

GL_FOG_HINT

params returns one value, a symbolic constant indicating the mode of the fog hint. The initial value is GL_DONT_CARE. See glHint.

GL_FOG_INDEX

params returns one value, the fog color index. The initial value is 0. See glFog.

GL_FOG_MODE

params returns one value, a symbolic constant indicating which fog equation is selected. The initial value is GL_EXP. See glFog.

GL_FOG_START

params returns one value, the start factor for the linear fog equation. The initial value is 0. See glFog.

GL_FRAGMENT_SHADER_DERIVATIVE_HINT

params returns one value, a symbolic constant indicating the mode of the derivative accuracy hint for fragment shaders. The initial value is GL_DONT_CARE. See glHint.

GL_FRONT_FACE

params returns one value, a symbolic constant indicating whether clockwise or counterclockwise polygon winding is treated as front-facing. The initial value is GL_CCW. See glFrontFace.

GL_GENERATE_MIPMAP_HINT

params returns one value, a symbolic constant indicating the mode of the mipmap generation filtering hint. The initial value is GL_DONT_CARE. See glHint.

GL_GREEN_BIAS

params returns one value, the green bias factor used during pixel transfers. The initial value is 0.

GL_GREEN_BITS

params returns one value, the number of green bitplanes in each color buffer.

GL_GREEN_SCALE

params returns one value, the green scale factor used during pixel transfers. The initial value is 1. See glPixelTransfer.

GL_HISTOGRAM

params returns a single boolean value indicating whether histogram is enabled. The initial value is GL_FALSE. See glHistogram.

GL_INDEX_ARRAY

params returns a single boolean value indicating whether the color index array is enabled. The initial value is GL_FALSE. See glIndexPointer.

GL_INDEX_ARRAY_BUFFER_BINDING

params returns a single value, the name of the buffer object associated with the color index array. This buffer object would have been bound to the target GL_ARRAY_BUFFER at the time of the most recent call to glIndexPointer. If no buffer object was bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.

GL_INDEX_ARRAY_STRIDE

params returns one value, the byte offset between consecutive color indexes in the color index array. The initial value is 0. See glIndexPointer.

GL_INDEX_ARRAY_TYPE

params returns one value, the data type of indexes in the color index array. The initial value is GL_FLOAT. See glIndexPointer.

GL_INDEX_BITS

params returns one value, the number of bitplanes in each color index buffer.

GL_INDEX_CLEAR_VALUE

params returns one value, the color index used to clear the color index buffers. The initial value is 0. See glClearIndex.

GL_INDEX_LOGIC_OP

params returns a single boolean value indicating whether a fragment’s index values are merged into the framebuffer using a logical operation. The initial value is GL_FALSE. See glLogicOp.

GL_INDEX_MODE

params returns a single boolean value indicating whether the GL is in color index mode (GL_TRUE) or RGBA mode (GL_FALSE).

GL_INDEX_OFFSET

params returns one value, the offset added to color and stencil indices during pixel transfers. The initial value is 0. See glPixelTransfer.

GL_INDEX_SHIFT

params returns one value, the amount that color and stencil indices are shifted during pixel transfers. The initial value is 0. See glPixelTransfer.

GL_INDEX_WRITEMASK

params returns one value, a mask indicating which bitplanes of each color index buffer can be written. The initial value is all 1’s. See glIndexMask.

GL_LIGHTi

params returns a single boolean value indicating whether the specified light is enabled. The initial value is GL_FALSE. See glLight and glLightModel.

GL_LIGHTING

params returns a single boolean value indicating whether lighting is enabled. The initial value is GL_FALSE. See glLightModel.

GL_LIGHT_MODEL_AMBIENT

params returns four values: the red, green, blue, and alpha components of the ambient intensity of the entire scene. Integer values, if requested, are linearly mapped from the internal floating-point representation such that 1.0 returns the most positive representable integer value, and -1.0 returns the most negative representable integer value. The initial value is (0.2, 0.2, 0.2, 1.0). See glLightModel.

GL_LIGHT_MODEL_COLOR_CONTROL

params returns single enumerated value indicating whether specular reflection calculations are separated from normal lighting computations. The initial value is GL_SINGLE_COLOR.

GL_LIGHT_MODEL_LOCAL_VIEWER

params returns a single boolean value indicating whether specular reflection calculations treat the viewer as being local to the scene. The initial value is GL_FALSE. See glLightModel.

GL_LIGHT_MODEL_TWO_SIDE

params returns a single boolean value indicating whether separate materials are used to compute lighting for front- and back-facing polygons. The initial value is GL_FALSE. See glLightModel.

GL_LINE_SMOOTH

params returns a single boolean value indicating whether antialiasing of lines is enabled. The initial value is GL_FALSE. See glLineWidth.

GL_LINE_SMOOTH_HINT

params returns one value, a symbolic constant indicating the mode of the line antialiasing hint. The initial value is GL_DONT_CARE. See glHint.

GL_LINE_STIPPLE

params returns a single boolean value indicating whether stippling of lines is enabled. The initial value is GL_FALSE. See glLineStipple.

GL_LINE_STIPPLE_PATTERN

params returns one value, the 16-bit line stipple pattern. The initial value is all 1’s. See glLineStipple.

GL_LINE_STIPPLE_REPEAT

params returns one value, the line stipple repeat factor. The initial value is 1. See glLineStipple.

GL_LINE_WIDTH

params returns one value, the line width as specified with glLineWidth. The initial value is 1.

GL_LINE_WIDTH_GRANULARITY

params returns one value, the width difference between adjacent supported widths for antialiased lines. See glLineWidth.

GL_LINE_WIDTH_RANGE

params returns two values: the smallest and largest supported widths for antialiased lines. See glLineWidth.

GL_LIST_BASE

params returns one value, the base offset added to all names in arrays presented to glCallLists. The initial value is 0. See glListBase.

GL_LIST_INDEX

params returns one value, the name of the display list currently under construction. 0 is returned if no display list is currently under construction. The initial value is 0. See glNewList.

GL_LIST_MODE

params returns one value, a symbolic constant indicating the construction mode of the display list currently under construction. The initial value is 0. See glNewList.

GL_LOGIC_OP_MODE

params returns one value, a symbolic constant indicating the selected logic operation mode. The initial value is GL_COPY. See glLogicOp.

GL_MAP1_COLOR_4

params returns a single boolean value indicating whether 1D evaluation generates colors. The initial value is GL_FALSE. See glMap1.

GL_MAP1_GRID_DOMAIN

params returns two values: the endpoints of the 1D map’s grid domain. The initial value is (0, 1). See glMapGrid.

GL_MAP1_GRID_SEGMENTS

params returns one value, the number of partitions in the 1D map’s grid domain. The initial value is 1. See glMapGrid.

GL_MAP1_INDEX

params returns a single boolean value indicating whether 1D evaluation generates color indices. The initial value is GL_FALSE. See glMap1.

GL_MAP1_NORMAL

params returns a single boolean value indicating whether 1D evaluation generates normals. The initial value is GL_FALSE. See glMap1.

GL_MAP1_TEXTURE_COORD_1

params returns a single boolean value indicating whether 1D evaluation generates 1D texture coordinates. The initial value is GL_FALSE. See glMap1.

GL_MAP1_TEXTURE_COORD_2

params returns a single boolean value indicating whether 1D evaluation generates 2D texture coordinates. The initial value is GL_FALSE. See glMap1.

GL_MAP1_TEXTURE_COORD_3

params returns a single boolean value indicating whether 1D evaluation generates 3D texture coordinates. The initial value is GL_FALSE. See glMap1.

GL_MAP1_TEXTURE_COORD_4

params returns a single boolean value indicating whether 1D evaluation generates 4D texture coordinates. The initial value is GL_FALSE. See glMap1.

GL_MAP1_VERTEX_3

params returns a single boolean value indicating whether 1D evaluation generates 3D vertex coordinates. The initial value is GL_FALSE. See glMap1.

GL_MAP1_VERTEX_4

params returns a single boolean value indicating whether 1D evaluation generates 4D vertex coordinates. The initial value is GL_FALSE. See glMap1.

GL_MAP2_COLOR_4

params returns a single boolean value indicating whether 2D evaluation generates colors. The initial value is GL_FALSE. See glMap2.

GL_MAP2_GRID_DOMAIN

params returns four values: the endpoints of the 2D map’s i and j grid domains. The initial value is (0,1; 0,1). See glMapGrid.

GL_MAP2_GRID_SEGMENTS

params returns two values: the number of partitions in the 2D map’s i and j grid domains. The initial value is (1,1). See glMapGrid.

GL_MAP2_INDEX

params returns a single boolean value indicating whether 2D evaluation generates color indices. The initial value is GL_FALSE. See glMap2.

GL_MAP2_NORMAL

params returns a single boolean value indicating whether 2D evaluation generates normals. The initial value is GL_FALSE. See glMap2.

GL_MAP2_TEXTURE_COORD_1

params returns a single boolean value indicating whether 2D evaluation generates 1D texture coordinates. The initial value is GL_FALSE. See glMap2.

GL_MAP2_TEXTURE_COORD_2

params returns a single boolean value indicating whether 2D evaluation generates 2D texture coordinates. The initial value is GL_FALSE. See glMap2.

GL_MAP2_TEXTURE_COORD_3

params returns a single boolean value indicating whether 2D evaluation generates 3D texture coordinates. The initial value is GL_FALSE. See glMap2.

GL_MAP2_TEXTURE_COORD_4

params returns a single boolean value indicating whether 2D evaluation generates 4D texture coordinates. The initial value is GL_FALSE. See glMap2.

GL_MAP2_VERTEX_3

params returns a single boolean value indicating whether 2D evaluation generates 3D vertex coordinates. The initial value is GL_FALSE. See glMap2.

GL_MAP2_VERTEX_4

params returns a single boolean value indicating whether 2D evaluation generates 4D vertex coordinates. The initial value is GL_FALSE. See glMap2.

GL_MAP_COLOR

params returns a single boolean value indicating if colors and color indices are to be replaced by table lookup during pixel transfers. The initial value is GL_FALSE. See glPixelTransfer.

GL_MAP_STENCIL

params returns a single boolean value indicating if stencil indices are to be replaced by table lookup during pixel transfers. The initial value is GL_FALSE. See glPixelTransfer.

GL_MATRIX_MODE

params returns one value, a symbolic constant indicating which matrix stack is currently the target of all matrix operations. The initial value is GL_MODELVIEW. See glMatrixMode.

GL_MAX_3D_TEXTURE_SIZE

params returns one value, a rough estimate of the largest 3D texture that the GL can handle. The value must be at least 16. If the GL version is 1.2 or greater, use GL_PROXY_TEXTURE_3D to determine if a texture is too large. See glTexImage3D.

GL_MAX_CLIENT_ATTRIB_STACK_DEPTH

params returns one value indicating the maximum supported depth of the client attribute stack. See glPushClientAttrib.

GL_MAX_ATTRIB_STACK_DEPTH

params returns one value, the maximum supported depth of the attribute stack. The value must be at least 16. See glPushAttrib.

GL_MAX_CLIP_PLANES

params returns one value, the maximum number of application-defined clipping planes. The value must be at least 6. See glClipPlane.

GL_MAX_COLOR_MATRIX_STACK_DEPTH

params returns one value, the maximum supported depth of the color matrix stack. The value must be at least 2. See glPushMatrix.

GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS

params returns one value, the maximum supported texture image units that can be used to access texture maps from the vertex shader and the fragment processor combined. If both the vertex shader and the fragment processing stage access the same texture image unit, then that counts as using two texture image units against this limit. The value must be at least 2. See glActiveTexture.

GL_MAX_CUBE_MAP_TEXTURE_SIZE

params returns one value. The value gives a rough estimate of the largest cube-map texture that the GL can handle. The value must be at least 16. If the GL version is 1.3 or greater, use GL_PROXY_TEXTURE_CUBE_MAP to determine if a texture is too large. See glTexImage2D.

GL_MAX_DRAW_BUFFERS

params returns one value, the maximum number of simultaneous output colors allowed from a fragment shader using the gl_FragData built-in array. The value must be at least 1. See glDrawBuffers.

GL_MAX_ELEMENTS_INDICES

params returns one value, the recommended maximum number of vertex array indices. See glDrawRangeElements.

GL_MAX_ELEMENTS_VERTICES

params returns one value, the recommended maximum number of vertex array vertices. See glDrawRangeElements.

GL_MAX_EVAL_ORDER

params returns one value, the maximum equation order supported by 1D and 2D evaluators. The value must be at least 8. See glMap1 and glMap2.

GL_MAX_FRAGMENT_UNIFORM_COMPONENTS

params returns one value, the maximum number of individual floating-point, integer, or boolean values that can be held in uniform variable storage for a fragment shader. The value must be at least 64. See glUniform.

GL_MAX_LIGHTS

params returns one value, the maximum number of lights. The value must be at least 8. See glLight.

GL_MAX_LIST_NESTING

params returns one value, the maximum recursion depth allowed during display-list traversal. The value must be at least 64. See glCallList.

GL_MAX_MODELVIEW_STACK_DEPTH

params returns one value, the maximum supported depth of the modelview matrix stack. The value must be at least 32. See glPushMatrix.

GL_MAX_NAME_STACK_DEPTH

params returns one value, the maximum supported depth of the selection name stack. The value must be at least 64. See glPushName.

GL_MAX_PIXEL_MAP_TABLE

params returns one value, the maximum supported size of a glPixelMap lookup table. The value must be at least 32. See glPixelMap.

GL_MAX_PROJECTION_STACK_DEPTH

params returns one value, the maximum supported depth of the projection matrix stack. The value must be at least 2. See glPushMatrix.

GL_MAX_TEXTURE_COORDS

params returns one value, the maximum number of texture coordinate sets available to vertex and fragment shaders. The value must be at least 2. See glActiveTexture and glClientActiveTexture.

GL_MAX_TEXTURE_IMAGE_UNITS

params returns one value, the maximum supported texture image units that can be used to access texture maps from the fragment shader. The value must be at least 2. See glActiveTexture.

GL_MAX_TEXTURE_LOD_BIAS

params returns one value, the maximum, absolute value of the texture level-of-detail bias. The value must be at least 4.

GL_MAX_TEXTURE_SIZE

params returns one value. The value gives a rough estimate of the largest texture that the GL can handle. The value must be at least 64. If the GL version is 1.1 or greater, use GL_PROXY_TEXTURE_1D or GL_PROXY_TEXTURE_2D to determine if a texture is too large. See glTexImage1D and glTexImage2D.

GL_MAX_TEXTURE_STACK_DEPTH

params returns one value, the maximum supported depth of the texture matrix stack. The value must be at least 2. See glPushMatrix.

GL_MAX_TEXTURE_UNITS

params returns a single value indicating the number of conventional texture units supported. Each conventional texture unit includes both a texture coordinate set and a texture image unit. Conventional texture units may be used for fixed-function (non-shader) rendering. The value must be at least 2. Additional texture coordinate sets and texture image units may be accessed from vertex and fragment shaders. See glActiveTexture and glClientActiveTexture.

GL_MAX_VARYING_FLOATS

params returns one value, the maximum number of interpolators available for processing varying variables used by vertex and fragment shaders. This value represents the number of individual floating-point values that can be interpolated; varying variables declared as vectors, matrices, and arrays will all consume multiple interpolators. The value must be at least 32.

GL_MAX_VERTEX_ATTRIBS

params returns one value, the maximum number of 4-component generic vertex attributes accessible to a vertex shader. The value must be at least 16. See glVertexAttrib.

GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS

params returns one value, the maximum supported texture image units that can be used to access texture maps from the vertex shader. The value may be 0. See glActiveTexture.

GL_MAX_VERTEX_UNIFORM_COMPONENTS

params returns one value, the maximum number of individual floating-point, integer, or boolean values that can be held in uniform variable storage for a vertex shader. The value must be at least 512. See glUniform.

GL_MAX_VIEWPORT_DIMS

params returns two values: the maximum supported width and height of the viewport. These must be at least as large as the visible dimensions of the display being rendered to. See glViewport.

GL_MINMAX

params returns a single boolean value indicating whether pixel minmax values are computed. The initial value is GL_FALSE. See glMinmax.

GL_MODELVIEW_MATRIX

params returns sixteen values: the modelview matrix on the top of the modelview matrix stack. Initially this matrix is the identity matrix. See glPushMatrix.

GL_MODELVIEW_STACK_DEPTH

params returns one value, the number of matrices on the modelview matrix stack. The initial value is 1. See glPushMatrix.

GL_NAME_STACK_DEPTH

params returns one value, the number of names on the selection name stack. The initial value is 0. See glPushName.

GL_NORMAL_ARRAY

params returns a single boolean value, indicating whether the normal array is enabled. The initial value is GL_FALSE. See glNormalPointer.

GL_NORMAL_ARRAY_BUFFER_BINDING

params returns a single value, the name of the buffer object associated with the normal array. This buffer object would have been bound to the target GL_ARRAY_BUFFER at the time of the most recent call to glNormalPointer. If no buffer object was bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.

GL_NORMAL_ARRAY_STRIDE

params returns one value, the byte offset between consecutive normals in the normal array. The initial value is 0. See glNormalPointer.

GL_NORMAL_ARRAY_TYPE

params returns one value, the data type of each coordinate in the normal array. The initial value is GL_FLOAT. See glNormalPointer.

GL_NORMALIZE

params returns a single boolean value indicating whether normals are automatically scaled to unit length after they have been transformed to eye coordinates. The initial value is GL_FALSE. See glNormal.

GL_NUM_COMPRESSED_TEXTURE_FORMATS

params returns a single integer value indicating the number of available compressed texture formats. The minimum value is 0. See glCompressedTexImage2D.

GL_PACK_ALIGNMENT

params returns one value, the byte alignment used for writing pixel data to memory. The initial value is 4. See glPixelStore.

GL_PACK_IMAGE_HEIGHT

params returns one value, the image height used for writing pixel data to memory. The initial value is 0. See glPixelStore.

GL_PACK_LSB_FIRST

params returns a single boolean value indicating whether single-bit pixels being written to memory are written first to the least significant bit of each unsigned byte. The initial value is GL_FALSE. See glPixelStore.

GL_PACK_ROW_LENGTH

params returns one value, the row length used for writing pixel data to memory. The initial value is 0. See glPixelStore.

GL_PACK_SKIP_IMAGES

params returns one value, the number of pixel images skipped before the first pixel is written into memory. The initial value is 0. See glPixelStore.

GL_PACK_SKIP_PIXELS

params returns one value, the number of pixel locations skipped before the first pixel is written into memory. The initial value is 0. See glPixelStore.

GL_PACK_SKIP_ROWS

params returns one value, the number of rows of pixel locations skipped before the first pixel is written into memory. The initial value is 0. See glPixelStore.

GL_PACK_SWAP_BYTES

params returns a single boolean value indicating whether the bytes of two-byte and four-byte pixel indices and components are swapped before being written to memory. The initial value is GL_FALSE. See glPixelStore.

GL_PERSPECTIVE_CORRECTION_HINT

params returns one value, a symbolic constant indicating the mode of the perspective correction hint. The initial value is GL_DONT_CARE. See glHint.

GL_PIXEL_MAP_A_TO_A_SIZE

params returns one value, the size of the alpha-to-alpha pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_MAP_B_TO_B_SIZE

params returns one value, the size of the blue-to-blue pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_MAP_G_TO_G_SIZE

params returns one value, the size of the green-to-green pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_MAP_I_TO_A_SIZE

params returns one value, the size of the index-to-alpha pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_MAP_I_TO_B_SIZE

params returns one value, the size of the index-to-blue pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_MAP_I_TO_G_SIZE

params returns one value, the size of the index-to-green pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_MAP_I_TO_I_SIZE

params returns one value, the size of the index-to-index pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_MAP_I_TO_R_SIZE

params returns one value, the size of the index-to-red pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_MAP_R_TO_R_SIZE

params returns one value, the size of the red-to-red pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_MAP_S_TO_S_SIZE

params returns one value, the size of the stencil-to-stencil pixel translation table. The initial value is 1. See glPixelMap.

GL_PIXEL_PACK_BUFFER_BINDING

params returns a single value, the name of the buffer object currently bound to the target GL_PIXEL_PACK_BUFFER. If no buffer object is bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.

GL_PIXEL_UNPACK_BUFFER_BINDING

params returns a single value, the name of the buffer object currently bound to the target GL_PIXEL_UNPACK_BUFFER. If no buffer object is bound to this target, 0 is returned. The initial value is 0. See glBindBuffer.

GL_POINT_DISTANCE_ATTENUATION

params returns three values, the coefficients for computing the attenuation value for points. See glPointParameter.

GL_POINT_FADE_THRESHOLD_SIZE

params returns one value, the point size threshold for determining the point size. See glPointParameter.

GL_POINT_SIZE

params returns one value, the point size as specified by glPointSize. The initial value is 1.

GL_POINT_SIZE_GRANULARITY

params returns one value, the size difference between adjacent supported sizes for antialiased points. See glPointSize.

GL_POINT_SIZE_MAX

params returns one value, the upper bound for the attenuated point s