glAccum 函数

GlAccum 函数对累积缓冲区进行操作。

语法

void WINAPI glAccum(
   GLenum  op,
   GLfloat value
);

参数

op

累积缓冲操作。 接受的符号常量如下所示。

含义
总帐 _ ACCUM
获取 R、G、B 和当前选择 (的缓冲区中的值,请参阅 glReadBuffer) 。 每个分量值除以 2 n 1,其中 n 是分配给当前选定缓冲区中的每个颜色组件的位数。 结果是介于0,1之间的浮点值, [ ] 它将乘以 并添加到累积缓冲区中的相应像素部分,从而更新累积缓冲区。
总帐 _ 负载
与 GL _ ACCUM 相似,不同之处在于,累积缓冲区中的当前值不会用于新值的计算。 也就是说,R、G、B 和当前所选缓冲区中的值除以 2 n 1,乘以 ,然后存储在相应的累积缓冲区单元中,这将覆盖当前值。
总帐 _ 添加
添加到累积缓冲区中的每个 R、G、B 和 A。
总帐 _ MULT
将累积缓冲区中的每个 R、G、B 和 A 乘以 ,并将缩放的组件返回到其对应的累积缓冲位置。
总帐 _ 返回
将累积缓冲区值传输到当前选择进行写入的颜色缓冲区。 每个 R、G、B 和一个组件都乘以 ,然后再乘以 2 n 1,限制到 [ 0,2 n 1 ] ,并存储在相应的显示缓冲区单元中。 应用于此传输的唯一片段操作是像素所有权、剪、抖动和颜色 writemasks。

value

在累积缓冲区操作中使用的浮点值。 Op 参数确定如何使用

返回值

此函数不返回值。

错误代码

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

名称 含义
总帐 _ 无效 _ 枚举
op 不是接受的值。
总帐 _ 无效 _ 操作
在对 glBegin的调用和对 glEnd的对应调用之间,没有累积缓冲区或调用了函数 glAccum

备注

累积缓冲区是扩展范围的颜色缓冲区。 不会在图像中呈现图像。 相反,呈现到其中一个颜色缓冲区的图像会在呈现后添加到累积缓冲区的内容中。 您可以通过使用不同的变换矩阵生成的映像来创建点、线条和多边形的抗锯齿功能,如 (点、线条和) 多边形的抗锯齿功能。

累积缓冲区中的每个像素都包含红色、绿色、蓝色和 alpha 值。 累积缓冲区中每个组件的位数取决于实现。 您可以通过调用 glGetIntegerv 四次来检查此数字,参数 GL _ 分别为 ACCUM _ RED _ 位,GL _ ACCUM _ 绿 _ 位,gl _ ACCUM _ 蓝比, _ gl _ ACCUM _ ALPHA _ 位。 但无论每个组件的位数如何,每个组件存储的值的范围是 [ 1,? 1 ] 。 累积缓冲区像素以帧缓冲区像素为一对一映射。

GlAccum 函数对累积缓冲区进行操作。 第一个参数 op 是选择累积缓冲区操作的符号常数。 第二个参数 是要在该操作中使用的浮点值。 指定了五个操作:总帐 _ ACCUM、总帐 _ 负载、gl _ ADD、GL _ MULT 和 gl _ RETURN。

所有累积的缓冲操作都限制为当前剪盒的区域,并且应用于每个像素的红色、绿色、蓝色和 alpha 分量。 如果 glAccum 操作导致的值超出范围 [ 1、1,则不确定累积缓冲区像素组件的内容 ] 。

若要清除累积缓冲,请使用 glClearAccum 函数指定 R、G、B 和值,以将其设置为,并在启用了累积缓冲的情况下发出 glClear 函数。

任何 glAccum 操作都仅更新当前剪刀框中的这些像素。

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

glGet ,参数 GL _ ACCUM _ RED _ 位

glGet ,参数 GL _ ACCUM _ 绿 _ 位

glGet ,参数 GL _ ACCUM _ 蓝色 _ 位

glGet 参数总帐 _ ACCUM _ ALPHA _ 位

要求

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

Opengl32
DLL
Opengl32.dll

请参阅

glBegin

glBlendFunc

glClear

glClearAccum

glCopyPixels

glEnd

glGet

glLogicOp

glPixelStore

glPixelTransfer

glReadBuffer

glReadPixels

glScissor

glStencilOp