glGetTexImage是基于计算机语言的返回一个纹理图像的函数。
简介
glGetTexImage 函数返回一个纹理图像。
语法
void WINAPI glGetTexImage
GLenum target,
GLint level,
GLenum format,
GLenum type,
GLvoid *pixels
参数
目标
指定要获取的纹理。 接受了 GL_TEXTURE_1D 和 GL_TEXTURE_2D。
级别
所需的图像的级别的详细信息数量。 级别 0 是基础映像级别。 级别 n 是 n 次 mipmap 减少图像。
格式
返回的数据的
像素格式。 受支持的格式是 GL_RED、 GL_GREEN、 GL_BLUE、 GL_ALPHA、 GL_RGB、 GL_RGBA、 GL_LUMINANCE、 GL_BGR_EXT、 GL_BGRA_EXT 和 GL_LUMINANCE_ALPHA。
类型
一种像素为返回的数据的类型。 GL_UNSIGNED_BYTE、 GL_BYTE、 GL_UNSIGNED_SHORT、 GL_SHORT、 GL_UNSIGNED_INT、 GL_INT 和 GL_FLOAT 的受支持的类型。
像素
返回纹理图像。 应由 类型 指定的类型的
数组的
指针。
返回值
返回代码
说明
GL_INVALID_ENUM
目标、 格式 或 类型 不被接受的值。
GL_INVALID_VALUE
级别 小于零或大于
日志 2 (最大),其中 最大值 是 GL_MAX_TEXTURE_SIZE 返回的值。
GL_INVALID_OPERATION
调用 glBegin 和 glEnd 的相应调用之间被调用该函数。
其他信息
glGetTexImage 函数返回纹理图像的像素值。 target参数用来指定所需的纹理图像是一个指定过的 glTexImage1D (GL_TEXTURE_1D) 或 glTexImage2D (GL_TEXTURE_2D)。 level 参数指定所需的图像的级别的详细信息数量。 format 和 type参数指定的格式和所需的图像
数组的类型。format 和 type 参数的可接受的值的说明请分别看 glTexImage1D 和 glDrawPixels的函数描述。
glGetTexImage 操作表明所获取的矩形纹理图像是一个 RGBA 颜色缓冲区。 和glGetTexImage 的参数相同的
glReadPixels 调用具有相同的 format和 type,用 x 和 y 设置为零 宽度 设置为 (包括边框,如果已指定) 的纹理图像的宽度和 高度 设置为一个一维图像或纹理图像的高度 (包括边框如果已指定) 的二维图像。
内部的纹理图像是 RGBA 的图像
像素格式,像素类型GL_COLOR_INDEX、 GL_STENCIL_INDEX 和 GL_DEPTH_COMPONENT , GL_BITMAP 不被接受。
如果所选的纹理图像并没有第四个参数将应用以下映射。 单组分纹理是被视为红色 RGBA 缓冲区设置为单组件值和绿色,蓝白 alpha 设置为零。
两个组件纹理被视为 RGBA 缓冲区设置为零,alpha 设置为组件之一,值组件值的红色和绿色和蓝色将设置为零。 最后,三分量纹理是被视为红色设置为组件为零绿色 RGBA 缓冲区设置为一个蓝色设置为两个,组件的组件和 alpha 设置为零。
要确定所需的 像素 大小,使用 glGetTexLevelParameter 确定了内部的纹理的图像的尺寸,然后通过所需的 格式 和 类型 的基础的每个像素的存储扩展所需的像素数。 一定要考虑到帐户特别是 GL_PACK_ALIGNMENT 的像素存储参数。
如果生成了一个错误,则是对(像素为单位)的内容不进行任何更改。