1.4 KiB
1.4 KiB
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。
PassResourceLayout、RHIPipelineState与动态 descriptor set 不会在这里一次性全部建立,而是在后续真正渲染某个 shader pass / 材质时按需创建。