移植屏幕和缓冲区清除命令

OpenGL 将各种 IRIS GL 清除 函数 (如 zclearaclearsclear 等) 替换为单个函数 glClear。 通过将掩码传递给 glClear 来指定要清除的内容。

移植屏幕和缓冲区命令时,请记住以下几点:

  • OpenGL 使用 glClearColorglClearIndex 等调用将颜色与绘制颜色分开保留清除。 清除前,请务必为每个缓冲区设置清除颜色。

  • 现在,你无需使用多个不同名称的清除调用中的一个,而是通过一个调用 glClear 清除多个缓冲区,方法是将缓冲区掩码 组合 在一起。 例如, czclear 替换为:

    glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT )
    
  • IRIS GL 引用多边形 stipple 和颜色写掩码。 OpenGL 忽略多边形 stipple,但引用颜色写掩码。 (czclear 函数同时忽略多边形 stipple 和 color writemask.)

下表列出了具有等效 OpenGL 函数的各种 IRIS GL 清除函数。

IRIS GL 调用 OpenGL 调用 含义
acbuf (AC_CLEAR) glClear ( GL_ACCUM_BUFFER_BIT ) 清除累积缓冲区。
glClearColor 设置 RGBA 清除颜色。
glClearIndex 设置明色索引。
clear glClear ( GL_COLOR_BUFFER_BIT ) 清除颜色缓冲区。
glClearDepth 指定深度缓冲区的清除值。
zclear glClear ( GL_DEPTH_BUFFER_BIT ) 清除深度缓冲区。
czclear glClear ( GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT )
清除颜色缓冲区和深度缓冲区。
glClearAccum 为累积缓冲区指定清除值。
glClearStencil 指定模具缓冲区的清除值。
sclear glClear ( GL_STENCIL_BUFFER_BIT ) 清除模具缓冲区。

当 IRIS GL 代码同时使用 gclearsclear 时,你可以将它们合并到单个 glClear 调用中 ;可以提高程序的性能。