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 | 
 |