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 函数可以检索以下错误代码。

名称 含义
GL_INVALID_ENUM
target 不是接受的值。
GL_INVALID_VALUE
level 小于零或 level 大于 log2 (max) ,其中 max 是GL_MAX_TEXTURE_SIZE返回的值。
GL_INVALID_VALUE
xoffset 小于 边框 或 (xoffset + 宽度) 大于 (w + 边框) ,其中 w 为GL_TEXTURE_WIDTH, 边框 GL_TEXTURE_BORDER。 请注意, w 包含两倍的 边框 宽度。
GL_INVALID_VALUE
width 小于 边框y 小于 边框,其中 边框 是纹理数组的边框宽度。
GL_INVALID_OPERATION
纹理数组不是由以前的 glTexImage1D 操作定义的。
GL_INVALID_OPERATION
在对 glBegin 的调用和对 glEnd 的相应调用之间调用了函数。

备注

glCopyTexSubImage1D 函数使用当前帧缓冲区中的像素替换一维纹理图像的一部分,而不是像 glTexSubImage1D 那样从main内存替换部分。

xy 指定的窗口坐标开头且长度 宽度 为开头的像素行将纹理数组的一部分替换为索引 xoffsetxoffset + (宽度 - 1) 。 纹理数组中的目标不能包括最初指定的纹理数组之外的任何纹素。

glCopyTexSubImage1D 函数处理行中的像素的方式与 glCopyPixels 相同,不同之处在于,在像素的最终转换之前,所有像素分量值都固定到 [0,1] 范围,并转换为纹理的内部格式以存储在纹理数组中。 像素顺序由与较低纹理坐标对应的较低 x 坐标确定。 如果当前 framebuffer 的指定行中的任何像素位于与当前呈现上下文关联的窗口之外,则其值未定义。

不会对指定纹理数组的 internalFormatwidthborder 参数或指定纹理子图像之外的纹素值进行更改。

不能在显示列表中包括对 glCopyTexSubImage1D 的 调用。

注意

glCopyTexSubImage1D 函数仅在 OpenGL 版本 1.1 或更高版本中可用。

纹理在颜色索引模式下不起作用。 glPixelStoreglPixelTransfer 函数对纹理图像的影响方式与使用 glDrawPixels 绘制像素的方式完全一样。

以下函数检索与 glCopyTexSubImage1D 相关的信息:

glGetTexImage

glIsEnabled with argument GL_TEXTURE_1D

要求

要求
最低受支持的客户端
Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器
Windows 2000 Server [仅限桌面应用]
标头
Gl.h

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glCopyTexSubImage2D

glDrawPixels

glEnd

glFog

glPixelStore

glPixelTransfer

glTexEnv

glTexGen

glTexImage1D

glTexImage2D

glTexSubImage1D

glTexSubImage2D

glTexParameter