900 B
900 B
OpenGLDepthStencilView::ClearStencil()
void ClearStencil(uint8_t stencil);
作用
清除当前视图对应 framebuffer 的模板缓冲。
参数
stencil: 要写入模板缓冲的清除值。
当前实现行为
函数会:
- 绑定
m_framebuffer - 调用
glClearStencil(stencil) - 调用
glClear(GL_STENCIL_BUFFER_BIT)
关键限制
- 当前初始化路径只会把纹理附着到
GL_DEPTH_ATTACHMENT,不会显式附着到GL_STENCIL_ATTACHMENT或GL_DEPTH_STENCIL_ATTACHMENT。 - 因此,这个函数虽然发出了 stencil clear 指令,但实际是否对期望的模板数据生效,取决于底层纹理格式、驱动行为以及 OpenGL 对该 attachment 组合的接受方式。
- 单元测试并没有覆盖 stencil 有效性的严格验证。