glCopyTexSubImage1D 函数
glCopyTexSubImage1D 函数从 framebuffer 复制一维纹理图像的子图像。
语法
void WINAPI glCopyTexSubImage1D(
GLenum target,
GLint level,
GLint xoffset,
GLint x,
GLint y,
GLsizei width
);
参数
-
目标
-
图像数据将更改为的目标。 必须具有值GL_TEXTURE_1D。
-
level
-
详细信息级别编号。 级别 0 是基础映像。 级别 n 是 第 n个 mipmap 缩减图像。
-
xoffset
-
纹理数组中的纹素偏移量。
-
x
-
要复制的像素行左下角的窗口 x 平面坐标。
-
y
-
要复制的像素行左下角的窗口 y 平面坐标。
-
width
-
纹理图像的子图像的宽度。 指定宽度为零的纹理子图像不起作用。
返回值
此函数不返回值。
错误代码
glGetError 函数可以检索以下错误代码。
名称 | 含义 |
---|---|
|
target 不是接受的值。 |
|
level 小于零或 level 大于 log2 (max) ,其中 max 是GL_MAX_TEXTURE_SIZE返回的值。 |
|
xoffset 小于 边框 或 (xoffset + 宽度) 大于 (w + 边框) ,其中 w 为GL_TEXTURE_WIDTH, 边框 GL_TEXTURE_BORDER。 请注意, w 包含两倍的 边框 宽度。 |
|
width 小于 边框 或 y 小于 边框,其中 边框 是纹理数组的边框宽度。 |
|
纹理数组不是由以前的 glTexImage1D 操作定义的。 |
|
在对 glBegin 的调用和对 glEnd 的相应调用之间调用了函数。 |
备注
glCopyTexSubImage1D 函数使用当前帧缓冲区中的像素替换一维纹理图像的一部分,而不是像 glTexSubImage1D 那样从main内存替换部分。
以 x 和 y 指定的窗口坐标开头且长度 宽度 为开头的像素行将纹理数组的一部分替换为索引 xoffset 到 xoffset + (宽度 - 1) 。 纹理数组中的目标不能包括最初指定的纹理数组之外的任何纹素。
glCopyTexSubImage1D 函数处理行中的像素的方式与 glCopyPixels 相同,不同之处在于,在像素的最终转换之前,所有像素分量值都固定到 [0,1] 范围,并转换为纹理的内部格式以存储在纹理数组中。 像素顺序由与较低纹理坐标对应的较低 x 坐标确定。 如果当前 framebuffer 的指定行中的任何像素位于与当前呈现上下文关联的窗口之外,则其值未定义。
不会对指定纹理数组的 internalFormat、 width 或 border 参数或指定纹理子图像之外的纹素值进行更改。
不能在显示列表中包括对 glCopyTexSubImage1D 的 调用。
注意
glCopyTexSubImage1D 函数仅在 OpenGL 版本 1.1 或更高版本中可用。
纹理在颜色索引模式下不起作用。 glPixelStore 和 glPixelTransfer 函数对纹理图像的影响方式与使用 glDrawPixels 绘制像素的方式完全一样。
以下函数检索与 glCopyTexSubImage1D 相关的信息:
glIsEnabled with argument GL_TEXTURE_1D
要求
要求 | 值 |
---|---|
最低受支持的客户端 |
Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 |
Windows 2000 Server [仅限桌面应用] |
标头 |
|
库 |
|
DLL |
|