refactor(rendering): auto-initialize scriptable render pipeline host

This commit is contained in:
2026-04-15 21:15:39 +08:00
parent 966106e0c0
commit 02aa9a8ea5
3 changed files with 114 additions and 13 deletions

View File

@@ -46,12 +46,20 @@ public:
const RenderSceneData& sceneData) override;
private:
bool EnsureInitialized(const RenderContext& context);
void ShutdownInitializedComponents();
void ResetInitializationState();
void ClearInitializationContextIfNoComponentsAreInitialized();
void ResetStageRecorder(std::unique_ptr<RenderPipelineStageRecorder> stageRecorder);
void ResetPipelineRenderer(std::unique_ptr<RenderPipelineRenderer> pipelineRenderer);
std::unique_ptr<RenderPipelineStageRecorder> m_stageRecorder;
std::shared_ptr<const RenderPipelineAsset> m_pipelineRendererAsset;
std::unique_ptr<RenderPipelineRenderer> m_pipelineRenderer;
RHI::RHIDevice* m_initializedDevice = nullptr;
RHI::RHIType m_initializedBackendType = RHI::RHIType::D3D12;
bool m_pipelineRendererInitialized = false;
bool m_stageRecorderInitialized = false;
};
class ScriptableRenderPipelineHostAsset final : public RenderPipelineAsset {