glGetTexImage 函数

glGetTexImage 函数返回纹理图像。

语法

void WINAPI glGetTexImage(
   GLenum target,
   GLint  level,
   GLenum format,
   GLenum type,
   GLvoid *pixels
);

参数

目标

指定要获取的纹理。 接受 _ GL 纹理 _ 1D 和 GL _ 纹理 _ 2D。

level

所需图像的详细信息级别编号。 级别 0 是基础映像级别。 级别 n第 n 个 mipmap 缩减图像。

format

返回数据的像素格式。 支持的格式包括 GL _ RED、GL _ GREEN、GL _ BLUE、GL _ ALPHA、GL _ RGB、GL _ RGBA、GL _ LUMINANCE、GL _ BGR _ EXT、GL _ BGRA _ EXT 和 GL _ LUMINANCE _ ALPHA。

type

返回数据的像素类型。 支持的类型包括 GL _ UNSIGNED _ BYTE、GL _ BYTE、GL _ UNSIGNED _ SHORT、GL _ SHORT、GL _ UNSIGNED _ INT、GL _ INT 和 GL _ FLOAT。

像素

返回纹理图像。 应为指向类型 所指定类型的数组的 指针

返回值

此函数不返回值。

错误代码

glGetError函数可以检索以下错误代码。

名称 含义
GL _ 无效 _ 枚举
target 、formattype 不是接受的值。
GL _ 无效 _ 值
level 小于零或大于日志 2 (最大) ,其中 max 是 GL MAX TEXTURE _ SIZE _ 的返回 _ 值。
GL _ 无效 _ 操作
函数是在对 glBegin 的调用与对 glEnd 的相应调用 之间调用的

备注

glGetTexImage 函数将纹理图像返回为 像素目标参数 指定所需的纹理图像是由 glTexImage1D ( GL _ TEXTURE 1D) 还是 _ glTexImage2D **** (GL **** _ TEXTURE _ 2D ) 指定的。 level 参数指定所需图像的详细级别编号。 格式类型 参数指定所需图像数组的格式和类型。 有关格式参数和类型参数可接受的值的说明,请参阅 glTexImage1DglDrawPixels

最好将所选的内部四组件纹理图像作为图像大小的 RGBA 颜色缓冲区来理解 glGetTexImage 的操作。 然后 ,glGetTexImage 的语义与使用相同格式和类型 调用的 glReadPixels的语义相同,x 和 y 设置为零,宽度设置为纹理图像的宽度 (包括边框(如果指定了) ,高度设置为 1-D图像时为 1,或设置为纹理图像 (的高度(包括边框)(如果为 2-D 图像指定了) )。

由于内部纹理图像是 RGBA 图像,因此不接受像素格式 GL _ COLOR _ INDEX、GL _ STENCIL INDEX 和 GL DEPTH COMPONENT,并且不接受像素 _ 类型 GL _ _ _ BITMAP。

如果所选纹理图像不包含四个组件,则应用以下映射。 单组件纹理被视为 RGBA 缓冲区,红色设置为单组件值,绿色、蓝色和 alpha 设置为零。

双分量纹理被视为 RGBA 缓冲区,红色设置为组件零的值,alpha 设置为组件 1 的值,绿色和蓝色设置为零。 最后,三分量纹理被视为 RGBA 缓冲区,红色设置为组件零,绿色设置为组件 1,蓝色设置为组件 2,alpha 设置为零。

若要确定所需的像素大小,请使用 glGetTexLevelParameter来确定内部纹理图像的尺寸,然后根据格式和类型按每个像素所需的存储来缩放所需的像素 。 请务必考虑像素存储参数,尤其是 GL _ PACK _ ALIGNMENT。

如果生成错误,则不更改像素 的内容

以下函数检索与 glGetTexImage 有关的信息

glGet 和参数 GL _ PACK _ ALIGNMENT 等

具有参数 GL TEXTURE WIDTH 的 glGetTexLevelParameter _ _

glGetTexLevelParameter,具有 参数 GL _ TEXTURE _ HEIGHT

具有参数 GL TEXTURE BORDER 的 glGetTexLevelParameter _ _

glGetTexLevelParameter, 具有参数 GL _ TEXTURE _ COMPONENTS

要求

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

Opengl32.lib
DLL
Opengl32.dll

请参阅

glBegin

glDrawPixels

glEnd

glGetTexLevelParameter

glReadPixels

glTexImage1D

glTexImage2D