Files
XCEngine/docs/api/XCEngine/RHI/OpenGL/OpenGLDevice/CreatePipelineState.md

957 B
Raw Blame History

OpenGLDevice::CreatePipelineState

RHIPipelineState* CreatePipelineState(const GraphicsPipelineDesc& desc) override;

作用

创建一份 OpenGL 管线状态对象,并在需要时同时构建 graphics program。

当前实现行为

  • 总是先创建 OpenGLPipelineState
  • 把输入布局、光栅化、混合、深度模板、拓扑、RT format、sample count 写入该对象
  • 若没有任何 graphics shader payload直接返回仅含状态的 PSO
  • 若有 shader payload则要求至少同时存在 vertex 和 fragment shader
  • MakeContextCurrent()
  • 根据源码或文件路径构建 OpenGLShader
  • 成功后把该 shader 作为 owned graphics shader 挂到 PSO 上

返回值

  • 成功返回 OpenGLPipelineState*
  • shader 不完整、上下文不可用或编译失败时返回 nullptr

相关文档