2013 Khronos Group
glGetTexLevelParameter 3G
glGetTexLevelParameter return texture parameter values for a specific level of detail

## C Specification

void `glGetTexLevelParameterfv` GLenum target GLint level GLenum pname GLfloat * params void `glGetTexLevelParameteriv` GLenum target GLint level GLenum pname GLint * params

## Parameters

target

  Specifies the symbolic name of the target texture, one of `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`.

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_RED_SIZE`, `GL_TEXTURE_GREEN_SIZE`, `GL_TEXTURE_BLUE_SIZE`, `GL_TEXTURE_ALPHA_SIZE`, `GL_TEXTURE_DEPTH_SIZE`, `GL_TEXTURE_COMPRESSED`, and `GL_TEXTURE_COMPRESSED_IMAGE_SIZE` are accepted.

params

  Returns the requested data.

## Description

`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 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`, 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.

## Notes

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.

## Errors

`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 2 max, where max is 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.

## See Also

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

## Copyright

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