glPixelMapusv 函数

glPixelMapusv 函数设置像素传输映射。

语法

void WINAPI glPixelMapusv(
         GLenum   map,
         GLsizei  mapsize,
   const GLushort *values
);

参数

map

符号映射名称。 十个地图如下所示。

含义
GL_PIXEL_MAP_I_TO_I
将颜色索引映射到颜色索引。
GL_PIXEL_MAP_S_TO_S
将模具索引映射到模具索引。
GL_PIXEL_MAP_I_TO_R
将颜色索引映射到红色分量。
GL_PIXEL_MAP_I_TO_G
将颜色索引映射到绿色分量。
GL_PIXEL_MAP_I_TO_B
将颜色索引映射到蓝色分量。
GL_PIXEL_MAP_I_TO_A
将颜色索引映射到 alpha 分量。
GL_PIXEL_MAP_R_TO_R
将红色组件映射到红色组件。
GL_PIXEL_MAP_G_TO_G
将绿色组件映射到绿色组件。
GL_PIXEL_MAP_B_TO_B
将蓝色组件映射到蓝色组件。
GL_PIXEL_MAP_A_TO_A
将 alpha 分量映射到 alpha 分量。

mapsize

要定义的映射的大小。

映射值的数组。

返回值

此函数不返回值。

错误代码

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

名称 含义
GL_INVALID_ENUM
map 不是接受的值。
GL_INVALID_VALUE
mapsize 为负或大于 GL_PIXEL_MAP_TABLE。
GL_INVALID_VALUE
map 为 GL_PIXEL_MAP_I_TO_I、GL_PIXEL_MAP_S_TO_S、GL_PIXEL_MAP_I_TO_R、GL_PIXEL_MAP_I_TO_G、GL_PIXEL_MAP_I_TO_B 或 GL_PIXEL_MAP_I_TO_A, 并且 mapsize 不是 2 的幂。
GL_INVALID_OPERATION
函数是在 对 glBegin 的调用和对 glEnd 的相应调用之间调用的。

备注

glPixelMap 函数设置转换表, 或映射,由 glCopyPixelsglCopyTexImage1DglCopyTexImage2DglCopyTexSubImage1DglCopyTexSubImage2DglDrawPixelsglReadPixelsglTexImage1DglTexImage2DglTexSubImage1DglTexSubImage2D 使用。 glPixelTransfer 主题中完整地介绍了这些映射的用法,部分在像素和纹理图像命令的主题中介绍。 本主题仅介绍地图的规范。

map 参数是符号映射名称,指示要设置的十个映射之一。 mapsize 参数指定映射中的条目数,是指向 mapize 地图值数组的指针。

映射中的条目可以指定为单精度浮点数、无符号短整数或无符号长整数。 存储颜色分量值的映射 (除GL_PIXEL_MAP_I_TO_I和GL_PIXEL_MAP_S_TO_S) 以浮点格式保留其值,并具有未指定的尾数和指数大小。 glPixelMapfv 指定的浮点值将直接转换为这些映射的内部浮点格式,然后固定到范围 [0,1]。 glPixelMapusvglPixelMapuiv 指定的无符号整数值以线性方式转换,使最大的可表示整数映射到 1.0,零映射到 0.0。

存储索引GL_PIXEL_MAP_I_TO_I和GL_PIXEL_MAP_S_TO_S的映射以定点格式保留其值,二进制点右侧有未指定的位数。 glPixelMapfv 指定的浮点值将直接转换为这些映射的内部定点格式。 glPixelMapusvglPixelMapuiv 指定的无符号整数值指定整数值,二进制点右侧为所有零。

下表显示了每个映射的初始大小和值。 对于某些 n,由颜色索引或模具索引编制索引的映射必须具有地图大小 = 2 ^ n,否则结果未定义。 每个映射允许的最大大小取决于实现,可以通过使用参数GL_MAX_PIXEL_MAP_TABLE调用 glGet 来确定。 单个最大值适用于所有映射,并且至少为 32。

映射 查找索引 查找值 初始大小 初始值
GL_PIXEL_MAP_I_TO_I 颜色索引 颜色索引 1 0.0
GL_PIXEL_MAP_S_TO_S 模具索引 模具索引 1 0.0
GL_PIXEL_MAP_I_TO_R 颜色索引 R 1 0.0
GL_PIXEL_MAP_I_TO_G 颜色索引 G 1 0.0
GL_PIXEL_MAP_I_TO_B 颜色索引 B 1 0.0
GL_PIXEL_MAP_I_TO_A 颜色索引 A 1 0.0
GL_PIXEL_MAP_R_TO_R R R 1 0.0
GL_PIXEL_MAP_G_TO_G G G 1 0.0
GL_PIXEL_MAP_B_TO_B B B 1 0.0
GL_PIXEL_MAP_A_TO_A A A 1 0.0

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

带参数GL_PIXEL_MAP_I_TO_I_SIZE的 glGet

带参数GL_PIXEL_MAP_S_TO_S_SIZE的 glGet

带参数GL_PIXEL_MAP_I_TO_R_SIZE的 glGet

带参数GL_PIXEL_MAP_I_TO_G_SIZE的 glGet

带参数GL_PIXEL_MAP_I_TO_B_SIZE的 glGet

带参数GL_PIXEL_MAP_I_TO_A_SIZE的 glGet

带参数GL_PIXEL_MAP_R_TO_R_SIZE的 glGet

带参数GL_PIXEL_MAP_G_TO_G_SIZE的 glGet

带参数GL_PIXEL_MAP_B_TO_B_SIZE的 glGet

带参数GL_PIXEL_MAP_A_TO_A_SIZE的 glGet

带参数GL_MAX_PIXEL_MAP_TABLE的 glGet

要求

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

Opengl32.lib
DLL
Opengl32.dll

另请参阅

glBegin

glCopyPixels

glDrawPixels

glEnd

glPixelStore

glPixelTransfer

glReadPixels

glTexImage1D

glTexImage2D