Files
XCEngine/docs/api/XCEngine/RHI/OpenGL/OpenGLDepthStencilView/ClearStencil.md

900 B

OpenGLDepthStencilView::ClearStencil()

void ClearStencil(uint8_t stencil);

作用

清除当前视图对应 framebuffer 的模板缓冲。

参数

  • stencil: 要写入模板缓冲的清除值。

当前实现行为

函数会:

  1. 绑定 m_framebuffer
  2. 调用 glClearStencil(stencil)
  3. 调用 glClear(GL_STENCIL_BUFFER_BIT)

关键限制

  • 当前初始化路径只会把纹理附着到 GL_DEPTH_ATTACHMENT,不会显式附着到 GL_STENCIL_ATTACHMENTGL_DEPTH_STENCIL_ATTACHMENT
  • 因此,这个函数虽然发出了 stencil clear 指令,但实际是否对期望的模板数据生效,取决于底层纹理格式、驱动行为以及 OpenGL 对该 attachment 组合的接受方式。
  • 单元测试并没有覆盖 stencil 有效性的严格验证。

相关文档