From OpenGL Reference
Jump to navigation Jump to search

Specify a two-dimensional texture subimage in a compressed format.

C Specification[edit]

void glCompressedTexSubImage2D( GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data );
void glCompressedTextureSubImage2D( GLuint texture, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const void * data );


texture - Specifies the texture object name for glCompressedTextureSubImage2D function.
level - Specifies the level-of-detail number. Level 0 is the base image level. Levelnis thenth 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 allows elements of an image array to be read by shaders.

 glCompressedTexSubImage2D and glCompressedTextureSubImage2D redefine 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 [math]xoffset+width-1[/math] , and the y indices yoffset and [math]yoffset+height-1[/math] , 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.

 internalformat must be a known compressed image format (such as GL_RGTC ) or 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 internalformat is of the generic compressed internal formats: GL_COMPRESSED_RED , GL_COMPRESSED_RG , GL_COMPRESSED_RGB , GL_COMPRESSED_RGBA . GL_COMPRESSED_SRGB , or GL_COMPRESSED_SRGB_ALPHA .

 GL_INVALID_ENUM is generated by glCompressedTexSubImage2D if target is GL_TEXTURE_RECTANGLE or GL_PROXY_TEXTURE_RECTANGLE .

 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 by glCompressedTextureSubImage2D if texture is not the name of an existing texture object.

 GL_INVALID_OPERATION is generated by glCompressedTextureSubImage2D if the effective target is GL_TEXTURE_RECTANGLE .

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.

Associated Gets[edit]


 glGet with argument GL_TEXTURE_COMPRESSED 



Version Support[edit]

 glCompressedTexSubImage2D  2.0+
 glCompressedTextureSubImage2D  4.5+

See Also[edit]

 glActiveTexture , glCompressedTexImage1D , glCompressedTexImage2D , glCompressedTexImage3D , glCompressedTexSubImage1D , glCompressedTexSubImage3D , glCopyTexImage1D , glCopyTexImage2D , glCopyTexSubImage1D , glCopyTexSubImage2D , glCopyTexSubImage3D , glPixelStore , glTexImage2D , glTexImage3D , glTexSubImage1D , glTexSubImage2D , glTexSubImage3D , glTexParameter 


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