Files
XCEngine/docs/api/XCEngine/Rendering/Pipelines/BuiltinForwardPipeline/Initialize.md

1.4 KiB
Raw Blame History

BuiltinForwardPipeline::Initialize

bool Initialize(const RenderContext& context) override;

行为说明

当前实现不再直接调用管线自身的 EnsureInitialized(),而是把生命周期交给内部的 m_passSequence

return m_passSequence.Initialize(context);

由于构造函数只注册了一个 BuiltinForwardOpaquePass,这里的真实初始化工作会进入该 pass 的 Initialize(),再由它调用 BuiltinForwardPipeline::EnsureInitialized(context)

参数

  • context - 当前渲染上下文,必须提供有效的 device、command list 与 backend。

返回值

  • 成功返回 true
  • context 无效,或共享 GPU 资源准备失败时返回 false

当前初始化内容

  • 复用同一个 device/backend 时,EnsureInitialized() 会直接返回,不重复构建共享资源。
  • device 或 backend 变化时,会先销毁旧资源,再重新创建 builtin forward shader、线性 clamp sampler、1x1 白色 fallback 纹理和对应 SRV。
  • PassResourceLayoutRHIPipelineState 与动态 descriptor set 不会在这里一次性全部建立,而是在后续真正渲染某个 shader pass / 材质时按需创建。

相关文档