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

945 B

OpenGLDepthStencilView::Bind()

void Bind();

作用

把当前对象持有的 framebuffer 绑定到 GL_FRAMEBUFFER

当前实现行为

实现只有一行:

glBindFramebuffer(GL_FRAMEBUFFER, m_framebuffer);

需要注意

  • 不会检查 m_framebuffer 是否为 0
  • 不会验证这个 FBO 是否来自一次成功的初始化。
  • 绑定的是 GL_FRAMEBUFFER,因此会同时影响读写 framebuffer 绑定点。
  • 不会保存或恢复之前的 framebuffer 状态。

设计解读

对 OpenGL 后端工具类来说,Bind() 越薄,调试时越容易映射回真实驱动调用;但上层系统必须自行承担状态管理责任。这也是为什么商业级渲染框架通常会在更高层额外做 render context、command encoder 或 framebuffer cache 的原因。

相关文档