https://www.khronos.org/registry/OpenGL-Refpages/gl4/html/glClear.xhtml
名稱
glClear ---- 清理指定的緩存。
原型
void glClear(GLbitfield mask);
參數
mask
按位的“或”(OR) 的掩碼來代表要清理的緩存。有三個掩碼 GL_COLOR_BUFFER_BIT
, GL_DEPTH_BUFFER_BIT
, 和 GL_STENCIL_BUFFER_BIT
。
描述
glClear 設置window 窗口的 bitplane 區域值,根據 mask 來用 glClearColor,glClearDepth 和 glClearStencil 函數設置的值來設置緩存。要同時清理多個緩存通過 glDrawBuffer 來選擇多個緩存。
像素的 ownership 測試,scissor 測試,dithering(抖動),與寫緩存掩碼都影響 glClear 操作。scissor 框的綁定可以設置清理的區域。
glClear 通過單個參數的 bit 位的“或”(OR)位運算來取掩碼,取到的掩碼值代表要清理的緩存:
掩碼值有如下:
- GL_COLOR_BUFFER_BIT
代表當前啓用的寫入顏色緩存。 - GL_DEPTH_BUFFER_BIT
代表深度緩存。 - GL_STENCIL_BUFFER_BIT
代表模板緩存。
注意
如果某個緩存沒有內容,那麼 glClear
清理這個緩存是沒有效果的。
錯誤
如果如果 bit 都是不前面說的三個定義的 mask 掩碼 bits 定義,那麼生成 GL_INVALID_VALUE
錯誤。