glGetTexImage
[New
- Windows 95, OEM Service Release 2]
The glGetTexImage
function returns a texture image.
void glGetTexImage(
GLenum target, |
|
GLint level, |
|
GLenum format, |
|
GLenum type, |
|
GLvoid * pixels |
|
); |
|
Parameters
target
Specifies
which texture is to be obtained. GL_TEXTURE_1D and GL_TEXTURE_2D are accepted.
level
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
A pixel
format for the returned data. The supported formats are GL_RED, GL_GREEN,
GL_BLUE, GL_ALPHA, GL_RGB, GL_RGBA, GL_LUMINANCE, GL_BGR_EXT, GL_BGRA_EXT, and
GL_LUMINANCE_ALPHA.
type
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, and GL_FLOAT.
pixels
Returns the
texture image. Should be a pointer to an array of the type specified by type.
Remarks
The glGetTexImage
function returns a texture image into pixels. The target
parameter specifies whether the desired texture image is one specified by glTexImage1D(GL_TEXTURE_1D)
or by glTexImage2D
Operation of glGetTexImage
is best understood by considering 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
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, and green, blue, and alpha set to zero.
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 zero.
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 zero.
To determine
the required size of pixels, use glGetTexLevelParameter
If an error
is generated, no change is made to the contents of pixels.
The following
functions retrieve information related to glGetTexImage:
glGetTexLevelParameter with argument GL_TEXTURE_WIDTH
glGetTexLevelParameter with argument GL_TEXTURE_HEIGHT
glGetTexLevelParameter with argument GL_TEXTURE_BORDER
glGetTexLevelParameter with argument GL_TEXTURE_COMPONENTS
glGet
with argument GL_PACK_ALIGNMENT and others
Error Codes
The following
are the error codes generated and their conditions.
Error
Code |
Condition |
GL_INVALID_ENUM
|
target, format, or type was not an accepted
value. |
GL_INVALID_VALUE
|
level is less than zero or greater than log (2) max, where max is the returned
value of GL_MAX_TEXTURE_SIZE. |
GL_INVALID_OPERATION
|
glGetTexImage was called between a call to glBegin and the
corresponding call to glEnd. |
See Also