glGetTexLevelParameter

From OpenGL Reference
Jump to navigation Jump to search

Return texture parameter values for a specific level of

   detail.

C Specification[edit]

void glGetTexLevelParameterfv( GLenum target, GLint level, GLenum pname, GLfloat * params );
void glGetTexLevelParameteriv( GLenum target, GLint level, GLenum pname, GLint * params );
void glGetTextureLevelParameterfv( GLuint texture, GLint level, GLenum pname, GLfloat * params );
void glGetTextureLevelParameteriv( GLuint texture, GLint level, GLenum pname, GLint * params );


Parameters[edit]

target - Specifies the target to which the texture is bound for glGetTexLevelParameterfv and glGetTexLevelParameteriv functions. Must be one of the following values: GL_TEXTURE_1D , GL_TEXTURE_2D , GL_TEXTURE_3D , GL_TEXTURE_1D_ARRAY , GL_TEXTURE_2D_ARRAY , GL_TEXTURE_RECTANGLE , GL_TEXTURE_2D_MULTISAMPLE , GL_TEXTURE_2D_MULTISAMPLE_ARRAY , 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 , GL_PROXY_TEXTURE_1D , GL_PROXY_TEXTURE_2D , GL_PROXY_TEXTURE_3D , GL_PROXY_TEXTURE_1D_ARRAY , GL_PROXY_TEXTURE_2D_ARRAY , GL_PROXY_TEXTURE_RECTANGLE , GL_PROXY_TEXTURE_2D_MULTISAMPLE , GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY , GL_PROXY_TEXTURE_CUBE_MAP , or GL_TEXTURE_BUFFER .
texture - Specifies the texture object name for glGetTextureLevelParameterfv and glGetTextureLevelParameteriv functions.
level - Specifies the level-of-detail number of the desired image. Level 0 is the base image level. Level [math][/math] is the [math][/math] th 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_RED_SIZE , GL_TEXTURE_GREEN_SIZE , GL_TEXTURE_BLUE_SIZE , GL_TEXTURE_ALPHA_SIZE , GL_TEXTURE_DEPTH_SIZE , GL_TEXTURE_COMPRESSED , GL_TEXTURE_COMPRESSED_IMAGE_SIZE , and GL_TEXTURE_BUFFER_OFFSET are accepted.
params - Returns the requested data.


Description[edit]

 glGetTexLevelParameterfv , glGetTexLevelParameteriv , glGetTextureLevelParameterfv and glGetTextureLevelParameteriv return in params texture parameter values for a specific level-of-detail value, specified as level . For the first two functions, 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 . The remaining two take a texture argument which specifies the name of the texture object.

 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 but a long skinny texture, or a texture without mipmaps 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 and glGetTextureLevelParameter , 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. The initial value is 0.
GL_TEXTURE_HEIGHT  -  params returns a single value, the height of the texture image. The initial value is 0.
GL_TEXTURE_DEPTH  -  params returns a single value, the depth 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_RED_TYPE ,GL_TEXTURE_GREEN_TYPE ,GL_TEXTURE_BLUE_TYPE ,GL_TEXTURE_ALPHA_TYPE ,GL_TEXTURE_DEPTH_TYPE  - The data type used to store the component. The types GL_NONE , GL_SIGNED_NORMALIZED , GL_UNSIGNED_NORMALIZED , GL_FLOAT , GL_INT , and GL_UNSIGNED_INT may be returned to indicate signed normalized fixed-point, unsigned normalized fixed-point, floating-point, integer unnormalized, and unsigned integer unnormalized components, respectively.
GL_TEXTURE_RED_SIZE ,GL_TEXTURE_GREEN_SIZE ,GL_TEXTURE_BLUE_SIZE ,GL_TEXTURE_ALPHA_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_TEXTURE_BUFFER_OFFSET  -  params returns a single integer value, the offset into the data store of the buffer bound to a buffer texture. glTexBufferRange .
GL_TEXTURE_BUFFER_SIZE  -  params returns a single integer value, the size of the range of a data store of the buffer bound to a buffer texture. glTexBufferRange .


Notes[edit]

If an error is generated, no change is made to the contents of params .

 glGetTexLevelParameter returns the texture level parameters for the active texture unit.

 GL_TEXTURE_BUFFER_OFFSET and GL_TEXTURE_BUFFER_SIZE are available only if the GL version is 4.3 or greater.


Errors[edit]

 GL_INVALID_OPERATION is generated by glGetTextureLevelParameterfv and glGetTextureLevelParameteriv functions if texture is not the name of an existing texture object.

 GL_INVALID_ENUM is generated by glGetTexLevelParameterfv and glGetTexLevelParameteriv functions 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 [math][/math] max, wheremaxis the returned value of GL_MAX_TEXTURE_SIZE .

 GL_INVALID_VALUE is generated if target is GL_TEXTURE_BUFFER and level is not zero.

 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.


Version Support[edit]

 glGetTexLevelParameterfv  2.0+
 glGetTexLevelParameteriv  2.0+
 glGetTextureLevelParameterfv  4.5+
 glGetTextureLevelParameteriv  4.5+

See Also[edit]

 glActiveTexture , glGetTexParameter , glCopyTexImage1D , glCopyTexImage2D , glCopyTexSubImage1D , glCopyTexSubImage2D , glCopyTexSubImage3D , glTexImage1D , glTexImage2D , glTexImage3D , glTexSubImage1D , glTexSubImage2D , glTexSubImage3D , glTexParameter 


Copyright[edit]

Copyright© 1991-2006 Silicon Graphics, Inc. Copyright© 2010-2014 Khronos Group. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/.