名称
glTexSubImage2D - 指定二维纹理子图像
C规范
void glTexSubImage2D(GLenum target,
GLint level,
GLint xoffset,
GLint yoffset,
GLsizei width,
GLsizei height,
GLenum format,
GLenum type,
const GLvoid * data);
参数
target
指定活动纹理单元的目标纹理。 必须是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或GL_TEXTURE_CUBE_MAP_NEGATIVE_Z。
level
指定详细级别编号。 0级是基本图像级别。 级别n是第n个mipmap缩小图像。
xoffset
指定纹理数组中x方向的纹素偏移。
yoffset
指定纹理数组中y方向的纹素偏移。
width
指定纹理子图像的宽度。
height
指定纹理子图像的高度。
format
指定像素数据的格式。 接受以下符号值:GL_ALPHA,GL_RGB,GL_RGBA,GL_LUMINANCE和GL_LUMINANCE_ALPHA。
type
指定像素数据的数据类型。 接受以下符号值:GL_UNSIGNED_BYTE,GL_UNSIGNED_SHORT_5_6_5,GL_UNSIGNED_SHORT_4_4_4_4和GL_UNSIGNED_SHORT_5_5_5_1。
data
指定指向内存中图像数据的指针。
描述
纹理将指定纹理图像的一部分映射到纹理处于活动状态的每个图形基元上。 当前片段着色器或顶点着色器使用内置纹理查找功能时,纹理处于活动状态。
glTexSubImage2D重新定义了现有二维纹理图像的连续子区域。data引用的纹素将现有纹理数组的部分替换为x索引xoffset和xoffset + width - 1(含),y索引yoffset和yoffset + height - 1(含)。该区域可能不包括纹理数组范围之外的任何最初指定的那样的纹素。指定宽度或高度为零的子纹理不是错误的,但这样的规范是没有效果的。
注意
由glPixelStorei设置的存储参数GL_UNPACK_ALIGNMENT会影响从客户端内存中读取数据的方式。 有关说明,请参阅glPixelStorei。
glTexSubImage2D为当前纹理单元指定二维或立方体贴图子纹理,由glActiveTexture指定。
错误
GL_INVALID_ENUM
:如果target不是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或GL_TEXTURE_CUBE_MAP_NEGATIVE_Z。
GL_INVALID_ENUM
:如果format或type不是可接受的值。
GL_INVALID_VALUE
:level<0
GL_INVALID_VALUE
:level>log以2为底,max的对数,其中max为GL_MAX_TEXTURE_SIZE返回的值
GL_INVALID_VALUE
:xoffset < 0 , xoffset + width > w , yoffset < 0 , or yoffset + height > h,其中w是宽度,h是要修改的纹理图像的高度。
GL_INVALID_VALUE
:如果width或height小于0。
GL_INVALID_OPERATION
:如果纹理数组尚未由之前的glTexImage2D或glCopyTexImage2D操作定义(其内部格式与glTexSubImage2D的格式匹配)。
GL_INVALID_OPERATION:如果type为GL_UNSIGNED_SHORT_5_6_5且格式不是GL_RGB。
GL_INVALID_OPERATION
:如果type为GL_UNSIGNED_SHORT_4_4_4_4或GL_UNSIGNED_SHORT_5_5_5_1且格式不是GL_RGBA。
相关Gets
glGet 参数GL_MAX_TEXTURE_SIZE
或GL_MAX_CUBE_MAP_TEXTURE_SIZE
另见
glActiveTexture,glCompressedTexImage2D,glCompressedTexSubImage2D,glCopyTexImage2D,glCopyTexSubImage2D,glPixelStorei,glTexImage2D,glTexParameter
版权
https://www.khronos.org/registry/OpenGL-Refpages/es2.0/xhtml/glTexSubImage2D.xml
https://blog.csdn.net/flycatdeng
Copyright © 1991-2006 Silicon Graphics, Inc.本文档的许可是根据SGI Free Software B License.详见http://oss.sgi.com/projects/FreeB/.
