Files
XCEngine/docs/api/XCEngine/RHI/OpenGL/OpenGLPipelineState/SetOwnedGraphicsShader.md

742 B

OpenGLPipelineState::SetOwnedGraphicsShader()

void SetOwnedGraphicsShader(std::unique_ptr<OpenGLShader> shader);

作用

把一个 graphics shader program 的所有权交给当前对象。

当前实现行为

  • shader 移入 m_graphicsShader
  • 若非空,调用 SetProgram 使用其 program ID
  • 若为空,调用 DetachShader

设计说明

OpenGLDevice::CreatePipelineState(...) 走的就是这条路径。也就是说,设备创建 graphics pipeline 时,真正被拥有和释放的是 OpenGLShader,而不是单独的 raw program ID。

相关文档