From f2806b0136ad8739d1660129c5e4244fac695db3 Mon Sep 17 00:00:00 2001 From: ssdfasd <2156608475@qq.com> Date: Tue, 21 Apr 2026 19:19:27 +0800 Subject: [PATCH] refactor(srp): rename native pipeline backend terminology --- ...minologyCleanupPlan_2026-04-21_完成归档.md | 57 +++++++ .../ManagedScriptableRenderPipelineAsset.h | 8 +- .../Pipelines/ScriptableRenderPipelineHost.h | 36 ++-- .../XCEngine/Rendering/RenderPipeline.h | 12 +- .../CameraFrameGraph/StageContract.cpp | 4 +- .../Internal/CameraFrameGraph/StageContract.h | 2 +- .../Internal/RenderPipelineFactory.cpp | 58 +++---- .../Internal/RenderPipelineFactory.h | 12 +- .../ManagedScriptableRenderPipelineAsset.cpp | 12 +- .../ScriptableRenderPipelineHost.cpp | 156 +++++++++--------- .../src/Scripting/Mono/MonoScriptRuntime.cpp | 68 ++++---- 11 files changed, 241 insertions(+), 184 deletions(-) create mode 100644 docs/used/SRP_NativeBackendTerminologyCleanupPlan_2026-04-21_完成归档.md diff --git a/docs/used/SRP_NativeBackendTerminologyCleanupPlan_2026-04-21_完成归档.md b/docs/used/SRP_NativeBackendTerminologyCleanupPlan_2026-04-21_完成归档.md new file mode 100644 index 00000000..44a69f24 --- /dev/null +++ b/docs/used/SRP_NativeBackendTerminologyCleanupPlan_2026-04-21_完成归档.md @@ -0,0 +1,57 @@ +# SRP Native Backend Terminology Cleanup Plan + +日期:2026-04-21 + +## 背景 + +上一阶段已经把 native scene draw substrate 从 `NativeSceneRenderer` 收口为 `SceneDrawBackend`,并把默认场景顺序从 builtin forward 私有实现中拆了出来。 + +但在 `ScriptableRenderPipelineHost`、`RenderPipeline`、`ManagedRenderPipelineAssetRuntime`、`MonoScriptRuntime` 这条链上,仍然大量使用: + +- `RenderPipelineRenderer` +- `pipelineRenderer` +- `pipelineRendererAsset` +- `GetPipelineRendererAsset` + +这和 Unity/URP 语境里的 `ScriptableRenderer` / `ScriptableRendererData` 高度冲突。 + +## 本阶段目标 + +把 C++ host/runtime bridge 里当前表示“native pipeline backend”的命名统一改成 backend 语义,避免再和 Unity 的 renderer 概念撞名: + +- `RenderPipelineRenderer` -> `RenderPipelineBackend` +- `pipelineRenderer` -> `pipelineBackend` +- `pipelineRendererAsset` -> `pipelineBackendAsset` +- `GetPipelineRendererAsset` -> `GetPipelineBackendAsset` + +## 范围 + +仅做 native backend terminology cleanup,不改渲染行为,不加新功能,不动 managed C# 的 `ScriptableRenderer` / `ScriptableRendererData` 设计。 + +主要涉及: + +- `engine/include/XCEngine/Rendering/RenderPipeline.h` +- `engine/include/XCEngine/Rendering/Pipelines/ScriptableRenderPipelineHost.h` +- `engine/include/XCEngine/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h` +- `engine/src/Rendering/Pipelines/ScriptableRenderPipelineHost.cpp` +- `engine/src/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.cpp` +- `engine/src/Scripting/Mono/MonoScriptRuntime.cpp` +- `engine/src/Rendering/Execution/Internal/CameraFrameGraph/StageContract.*` + +## 为什么现在做 + +如果这里不先收口,后面继续按 Unity 的 SRP + URP 路线推进时会持续出现两层 `renderer`: + +1. C# `ScriptableRenderer` +2. C++ native backend + +这会让接口、文档、调试日志和后续 plan 全部变得容易误读。 + +## 验证标准 + +- `cmake --build . --config Debug --target XCEditor` 成功 +- 运行 `editor/bin/Debug/XCEngine.exe` +- 冒烟至少 10 秒 +- `editor/bin/Debug/editor.log` 出现新的 `SceneReady` +- 仅提交 SRP/rendering 主线相关文件与本计划文档 + diff --git a/engine/include/XCEngine/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h b/engine/include/XCEngine/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h index 14932cbf..df6ae627 100644 --- a/engine/include/XCEngine/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h +++ b/engine/include/XCEngine/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h @@ -62,7 +62,7 @@ private: std::shared_ptr ResolveManagedAssetRuntime() const; std::shared_ptr - ResolvePipelineRendererAsset() const; + ResolvePipelineBackendAsset() const; ScriptableRenderPipelineHostAsset CreateExecutionHostAsset() const; @@ -101,13 +101,13 @@ public: } virtual std::shared_ptr - GetPipelineRendererAsset() const { + GetPipelineBackendAsset() const { return nullptr; } virtual std::shared_ptr - GetPipelineRendererAsset(int32_t rendererIndex) const { + GetPipelineBackendAsset(int32_t rendererIndex) const { (void)rendererIndex; - return GetPipelineRendererAsset(); + return GetPipelineBackendAsset(); } virtual bool UsesNativeCameraFramePlanBaseline() const { return false; diff --git a/engine/include/XCEngine/Rendering/Pipelines/ScriptableRenderPipelineHost.h b/engine/include/XCEngine/Rendering/Pipelines/ScriptableRenderPipelineHost.h index 662265ac..dbc98f19 100644 --- a/engine/include/XCEngine/Rendering/Pipelines/ScriptableRenderPipelineHost.h +++ b/engine/include/XCEngine/Rendering/Pipelines/ScriptableRenderPipelineHost.h @@ -16,11 +16,11 @@ class ScriptableRenderPipelineHost final : public RenderPipeline { public: ScriptableRenderPipelineHost(); explicit ScriptableRenderPipelineHost( - std::unique_ptr pipelineRenderer); + std::unique_ptr pipelineBackend); explicit ScriptableRenderPipelineHost( - std::shared_ptr pipelineRendererAsset); + std::shared_ptr pipelineBackendAsset); ScriptableRenderPipelineHost( - std::shared_ptr pipelineRendererAsset, + std::shared_ptr pipelineBackendAsset, std::shared_ptr managedAssetRuntime); ~ScriptableRenderPipelineHost() override; @@ -28,20 +28,20 @@ public: using RenderPipeline::Render; void SetStageRecorder(std::unique_ptr stageRecorder); - void SetPipelineRenderer(std::unique_ptr pipelineRenderer); - void SetPipelineRendererAsset( - std::shared_ptr pipelineRendererAsset); + void SetPipelineBackend(std::unique_ptr pipelineBackend); + void SetPipelineBackendAsset( + std::shared_ptr pipelineBackendAsset); void SetManagedAssetRuntime( std::shared_ptr managedAssetRuntime); RenderPipelineStageRecorder* GetStageRecorder() const { return m_stageRecorder.get(); } - RenderPipelineRenderer* GetPipelineRenderer() const { - return m_pipelineRenderer.get(); + RenderPipelineBackend* GetPipelineBackend() const { + return m_pipelineBackend.get(); } - const RenderPipelineAsset* GetPipelineRendererAsset() const { - return m_pipelineRendererAsset.get(); + const RenderPipelineAsset* GetPipelineBackendAsset() const { + return m_pipelineBackendAsset.get(); } bool Initialize(const RenderContext& context) override; @@ -69,21 +69,21 @@ public: private: bool EnsureInitialized(const RenderContext& context); - void BindStageRecorderPipelineRenderer(); + void BindStageRecorderPipelineBackend(); void ShutdownInitializedComponents(); void ResetInitializationState(); void ClearInitializationContextIfNoComponentsAreInitialized(); void ResetStageRecorder(std::unique_ptr stageRecorder); - void ResetPipelineRenderer(std::unique_ptr pipelineRenderer); + void ResetPipelineBackend(std::unique_ptr pipelineBackend); std::unique_ptr m_stageRecorder; - std::shared_ptr m_pipelineRendererAsset; + std::shared_ptr m_pipelineBackendAsset; std::shared_ptr m_managedAssetRuntime; - std::unique_ptr m_pipelineRenderer; + std::unique_ptr m_pipelineBackend; RHI::RHIDevice* m_initializedDevice = nullptr; RHI::RHIType m_initializedBackendType = RHI::RHIType::D3D12; - bool m_pipelineRendererInitialized = false; + bool m_pipelineBackendInitialized = false; bool m_stageRecorderInitialized = false; }; @@ -91,9 +91,9 @@ class ScriptableRenderPipelineHostAsset final : public RenderPipelineAsset { public: ScriptableRenderPipelineHostAsset(); explicit ScriptableRenderPipelineHostAsset( - std::shared_ptr pipelineRendererAsset); + std::shared_ptr pipelineBackendAsset); ScriptableRenderPipelineHostAsset( - std::shared_ptr pipelineRendererAsset, + std::shared_ptr pipelineBackendAsset, std::shared_ptr managedAssetRuntime); @@ -102,7 +102,7 @@ public: FinalColorSettings GetDefaultFinalColorSettings() const override; private: - std::shared_ptr m_pipelineRendererAsset; + std::shared_ptr m_pipelineBackendAsset; std::shared_ptr m_managedAssetRuntime; }; diff --git a/engine/include/XCEngine/Rendering/RenderPipeline.h b/engine/include/XCEngine/Rendering/RenderPipeline.h index 93ff3431..8912624b 100644 --- a/engine/include/XCEngine/Rendering/RenderPipeline.h +++ b/engine/include/XCEngine/Rendering/RenderPipeline.h @@ -66,7 +66,7 @@ struct RenderPipelineStageSupportContext { int32_t rendererIndex = -1; }; -class RenderPipelineRenderer; +class RenderPipelineBackend; class RenderPipelineStageRecorder { public: @@ -76,7 +76,7 @@ public: return true; } virtual void Shutdown() {} - virtual void SetPipelineRenderer(RenderPipelineRenderer*) {} + virtual void SetPipelineBackend(RenderPipelineBackend*) {} virtual bool SupportsStageRenderGraph(CameraFrameStage) const { return false; } @@ -90,9 +90,9 @@ public: } }; -class RenderPipelineRenderer { +class RenderPipelineBackend { public: - virtual ~RenderPipelineRenderer() = default; + virtual ~RenderPipelineBackend() = default; virtual bool Initialize(const RenderContext& context) = 0; virtual void Shutdown() = 0; @@ -119,9 +119,9 @@ public: const RenderSceneData& sceneData) = 0; }; -class RenderPipeline : public RenderPipelineRenderer { +class RenderPipeline : public RenderPipelineBackend { public: - using RenderPipelineRenderer::Render; + using RenderPipelineBackend::Render; ~RenderPipeline() override = default; diff --git a/engine/src/Rendering/Execution/Internal/CameraFrameGraph/StageContract.cpp b/engine/src/Rendering/Execution/Internal/CameraFrameGraph/StageContract.cpp index b6bb72df..8cabcc5d 100644 --- a/engine/src/Rendering/Execution/Internal/CameraFrameGraph/StageContract.cpp +++ b/engine/src/Rendering/Execution/Internal/CameraFrameGraph/StageContract.cpp @@ -609,8 +609,8 @@ RenderPipelineStageRenderGraphContext BuildCameraFramePipelineStageRenderGraphCo bool RecordCameraFramePipelineStageGraphPass( const CameraFrameRenderGraphStageContext& context, const CameraFrameStageGraphBuildState& stageState, - RenderPipelineRenderer& pipeline) { - return pipeline.RecordStageRenderGraph( + RenderPipelineBackend& pipelineBackend) { + return pipelineBackend.RecordStageRenderGraph( BuildCameraFramePipelineStageRenderGraphContext( context, stageState)); diff --git a/engine/src/Rendering/Execution/Internal/CameraFrameGraph/StageContract.h b/engine/src/Rendering/Execution/Internal/CameraFrameGraph/StageContract.h index b2b19a9c..535ea9cc 100644 --- a/engine/src/Rendering/Execution/Internal/CameraFrameGraph/StageContract.h +++ b/engine/src/Rendering/Execution/Internal/CameraFrameGraph/StageContract.h @@ -154,7 +154,7 @@ RenderPipelineStageRenderGraphContext BuildCameraFramePipelineStageRenderGraphCo bool RecordCameraFramePipelineStageGraphPass( const CameraFrameRenderGraphStageContext& context, const CameraFrameStageGraphBuildState& stageState, - RenderPipelineRenderer& pipeline); + RenderPipelineBackend& pipelineBackend); void RecordCameraFrameStageFallbackPassIO( const CameraFrameStageGraphBuildState& stageState, diff --git a/engine/src/Rendering/Internal/RenderPipelineFactory.cpp b/engine/src/Rendering/Internal/RenderPipelineFactory.cpp index 3c51b0b1..ae8dfeab 100644 --- a/engine/src/Rendering/Internal/RenderPipelineFactory.cpp +++ b/engine/src/Rendering/Internal/RenderPipelineFactory.cpp @@ -41,8 +41,8 @@ std::unique_ptr CreateBuiltinShadowCasterStandalonePass() { return std::make_unique(); } -using PipelineRendererAssetRegistry = - std::unordered_map; +using PipelineBackendAssetRegistry = + std::unordered_map; using CameraFrameStandalonePassRegistry = std::unordered_map; using CameraFramePlanPolicyRegistry = @@ -50,8 +50,8 @@ using CameraFramePlanPolicyRegistry = using DirectionalShadowExecutionPolicyRegistry = std::unordered_map; -PipelineRendererAssetRegistry& GetPipelineRendererAssetRegistry() { - static PipelineRendererAssetRegistry registry = {}; +PipelineBackendAssetRegistry& GetPipelineBackendAssetRegistry() { + static PipelineBackendAssetRegistry registry = {}; return registry; } @@ -71,7 +71,7 @@ GetDirectionalShadowExecutionPolicyRegistry() { return registry; } -std::unordered_set& GetBuiltinPipelineRendererAssetKeys() { +std::unordered_set& GetBuiltinPipelineBackendAssetKeys() { static std::unordered_set builtinKeys = {}; return builtinKeys; } @@ -92,7 +92,7 @@ GetBuiltinDirectionalShadowExecutionPolicyKeys() { return builtinKeys; } -std::mutex& GetPipelineRendererAssetRegistryMutex() { +std::mutex& GetPipelineBackendAssetRegistryMutex() { static std::mutex mutex; return mutex; } @@ -112,14 +112,14 @@ std::mutex& GetDirectionalShadowExecutionPolicyRegistryMutex() { return mutex; } -void EnsureBuiltinPipelineRendererAssetRegistryInitialized() { +void EnsureBuiltinPipelineBackendAssetRegistryInitialized() { static const bool initialized = []() { - PipelineRendererAssetRegistry& registry = - GetPipelineRendererAssetRegistry(); + PipelineBackendAssetRegistry& registry = + GetPipelineBackendAssetRegistry(); registry.emplace( "BuiltinForward", &CreateBuiltinForwardPipelineRendererAsset); - GetBuiltinPipelineRendererAssetKeys().insert("BuiltinForward"); + GetBuiltinPipelineBackendAssetKeys().insert("BuiltinForward"); return true; }(); (void)initialized; @@ -221,19 +221,19 @@ std::shared_ptr CreateFallbackRenderPipelineAsset() { return std::make_shared(); } -bool RegisterPipelineRendererAssetFactory( +bool RegisterPipelineBackendAssetFactory( const std::string& key, - PipelineRendererAssetFactory factory) { + PipelineBackendAssetFactory factory) { if (key.empty() || !factory) { return false; } - EnsureBuiltinPipelineRendererAssetRegistryInitialized(); + EnsureBuiltinPipelineBackendAssetRegistryInitialized(); std::lock_guard lock( - GetPipelineRendererAssetRegistryMutex()); - PipelineRendererAssetRegistry& registry = - GetPipelineRendererAssetRegistry(); + GetPipelineBackendAssetRegistryMutex()); + PipelineBackendAssetRegistry& registry = + GetPipelineBackendAssetRegistry(); if (registry.find(key) != registry.end()) { return false; } @@ -242,43 +242,43 @@ bool RegisterPipelineRendererAssetFactory( return true; } -bool UnregisterPipelineRendererAssetFactory(const std::string& key) { +bool UnregisterPipelineBackendAssetFactory(const std::string& key) { if (key.empty()) { return false; } - EnsureBuiltinPipelineRendererAssetRegistryInitialized(); + EnsureBuiltinPipelineBackendAssetRegistryInitialized(); std::lock_guard lock( - GetPipelineRendererAssetRegistryMutex()); - if (GetBuiltinPipelineRendererAssetKeys().find(key) != - GetBuiltinPipelineRendererAssetKeys().end()) { + GetPipelineBackendAssetRegistryMutex()); + if (GetBuiltinPipelineBackendAssetKeys().find(key) != + GetBuiltinPipelineBackendAssetKeys().end()) { return false; } - PipelineRendererAssetRegistry& registry = - GetPipelineRendererAssetRegistry(); + PipelineBackendAssetRegistry& registry = + GetPipelineBackendAssetRegistry(); return registry.erase(key) != 0u; } -std::shared_ptr CreateDefaultPipelineRendererAsset() { +std::shared_ptr CreateDefaultPipelineBackendAsset() { static const std::shared_ptr s_defaultAsset = CreateBuiltinForwardPipelineRendererAsset(); return s_defaultAsset; } -std::shared_ptr CreatePipelineRendererAssetByKey( +std::shared_ptr CreatePipelineBackendAssetByKey( const std::string& key) { if (key.empty()) { return nullptr; } - EnsureBuiltinPipelineRendererAssetRegistryInitialized(); + EnsureBuiltinPipelineBackendAssetRegistryInitialized(); std::lock_guard lock( - GetPipelineRendererAssetRegistryMutex()); - const PipelineRendererAssetRegistry& registry = - GetPipelineRendererAssetRegistry(); + GetPipelineBackendAssetRegistryMutex()); + const PipelineBackendAssetRegistry& registry = + GetPipelineBackendAssetRegistry(); const auto it = registry.find(key); if (it == registry.end() || !it->second) { return nullptr; diff --git a/engine/src/Rendering/Internal/RenderPipelineFactory.h b/engine/src/Rendering/Internal/RenderPipelineFactory.h index 4ca21ab6..41afdf06 100644 --- a/engine/src/Rendering/Internal/RenderPipelineFactory.h +++ b/engine/src/Rendering/Internal/RenderPipelineFactory.h @@ -18,7 +18,7 @@ struct DirectionalShadowSurfaceAllocation; namespace Internal { -using PipelineRendererAssetFactory = +using PipelineBackendAssetFactory = std::function()>; using CameraFrameStandalonePassFactory = std::function()>; @@ -34,12 +34,12 @@ using DirectionalShadowExecutionPolicy = std::shared_ptr CreateConfiguredRenderPipelineAsset(); std::shared_ptr CreateFallbackRenderPipelineAsset(); -bool RegisterPipelineRendererAssetFactory( +bool RegisterPipelineBackendAssetFactory( const std::string& key, - PipelineRendererAssetFactory factory); -bool UnregisterPipelineRendererAssetFactory(const std::string& key); -std::shared_ptr CreateDefaultPipelineRendererAsset(); -std::shared_ptr CreatePipelineRendererAssetByKey( + PipelineBackendAssetFactory factory); +bool UnregisterPipelineBackendAssetFactory(const std::string& key); +std::shared_ptr CreateDefaultPipelineBackendAsset(); +std::shared_ptr CreatePipelineBackendAssetByKey( const std::string& key); bool RegisterCameraFrameStandalonePassFactory( const std::string& key, diff --git a/engine/src/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.cpp b/engine/src/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.cpp index a816c7c9..5d57c5ba 100644 --- a/engine/src/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.cpp +++ b/engine/src/Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.cpp @@ -38,11 +38,11 @@ ManagedScriptableRenderPipelineAsset::ResolveManagedAssetRuntime() const { } std::shared_ptr -ManagedScriptableRenderPipelineAsset::ResolvePipelineRendererAsset() const { +ManagedScriptableRenderPipelineAsset::ResolvePipelineBackendAsset() const { if (const std::shared_ptr runtime = ResolveManagedAssetRuntime(); runtime != nullptr) { - return runtime->GetPipelineRendererAsset(); + return runtime->GetPipelineBackendAsset(); } return nullptr; @@ -52,11 +52,11 @@ ScriptableRenderPipelineHostAsset ManagedScriptableRenderPipelineAsset::CreateExecutionHostAsset() const { const std::shared_ptr runtime = ResolveManagedAssetRuntime(); - if (const std::shared_ptr pipelineRendererAsset = - ResolvePipelineRendererAsset(); - pipelineRendererAsset != nullptr) { + if (const std::shared_ptr pipelineBackendAsset = + ResolvePipelineBackendAsset(); + pipelineBackendAsset != nullptr) { return ScriptableRenderPipelineHostAsset( - pipelineRendererAsset, + pipelineBackendAsset, runtime); } diff --git a/engine/src/Rendering/Pipelines/ScriptableRenderPipelineHost.cpp b/engine/src/Rendering/Pipelines/ScriptableRenderPipelineHost.cpp index eff1863f..63af7735 100644 --- a/engine/src/Rendering/Pipelines/ScriptableRenderPipelineHost.cpp +++ b/engine/src/Rendering/Pipelines/ScriptableRenderPipelineHost.cpp @@ -14,16 +14,16 @@ namespace Pipelines { namespace { -std::shared_ptr CreateDefaultPipelineRendererAsset() { - return Rendering::Internal::CreateDefaultPipelineRendererAsset(); +std::shared_ptr CreateDefaultPipelineBackendAsset() { + return Rendering::Internal::CreateDefaultPipelineBackendAsset(); } -std::unique_ptr CreatePipelineRendererFromAsset( - const std::shared_ptr& pipelineRendererAsset) { +std::unique_ptr CreatePipelineBackendFromAsset( + const std::shared_ptr& pipelineBackendAsset) { const std::shared_ptr resolvedAsset = - pipelineRendererAsset != nullptr - ? pipelineRendererAsset - : CreateDefaultPipelineRendererAsset(); + pipelineBackendAsset != nullptr + ? pipelineBackendAsset + : CreateDefaultPipelineBackendAsset(); if (resolvedAsset != nullptr) { if (std::unique_ptr pipeline = resolvedAsset->CreatePipeline()) { return pipeline; @@ -36,32 +36,32 @@ std::unique_ptr CreatePipelineRendererFromAsset( } // namespace ScriptableRenderPipelineHost::ScriptableRenderPipelineHost() - : ScriptableRenderPipelineHost(CreateDefaultPipelineRendererAsset()) { + : ScriptableRenderPipelineHost(CreateDefaultPipelineBackendAsset()) { } ScriptableRenderPipelineHost::ScriptableRenderPipelineHost( - std::unique_ptr pipelineRenderer) { - ResetPipelineRenderer(std::move(pipelineRenderer)); + std::unique_ptr pipelineBackend) { + ResetPipelineBackend(std::move(pipelineBackend)); } ScriptableRenderPipelineHost::ScriptableRenderPipelineHost( - std::shared_ptr pipelineRendererAsset) + std::shared_ptr pipelineBackendAsset) : ScriptableRenderPipelineHost( - std::move(pipelineRendererAsset), + std::move(pipelineBackendAsset), nullptr) { } ScriptableRenderPipelineHost::ScriptableRenderPipelineHost( - std::shared_ptr pipelineRendererAsset, + std::shared_ptr pipelineBackendAsset, std::shared_ptr managedAssetRuntime) - : m_pipelineRendererAsset( - pipelineRendererAsset != nullptr - ? std::move(pipelineRendererAsset) - : CreateDefaultPipelineRendererAsset()) + : m_pipelineBackendAsset( + pipelineBackendAsset != nullptr + ? std::move(pipelineBackendAsset) + : CreateDefaultPipelineBackendAsset()) , m_managedAssetRuntime(std::move(managedAssetRuntime)) { - ResetPipelineRenderer( - CreatePipelineRendererFromAsset(m_pipelineRendererAsset)); + ResetPipelineBackend( + CreatePipelineBackendFromAsset(m_pipelineBackendAsset)); } ScriptableRenderPipelineHost::~ScriptableRenderPipelineHost() { @@ -73,20 +73,20 @@ void ScriptableRenderPipelineHost::SetStageRecorder( ResetStageRecorder(std::move(stageRecorder)); } -void ScriptableRenderPipelineHost::SetPipelineRenderer( - std::unique_ptr pipelineRenderer) { - m_pipelineRendererAsset.reset(); - ResetPipelineRenderer(std::move(pipelineRenderer)); +void ScriptableRenderPipelineHost::SetPipelineBackend( + std::unique_ptr pipelineBackend) { + m_pipelineBackendAsset.reset(); + ResetPipelineBackend(std::move(pipelineBackend)); } -void ScriptableRenderPipelineHost::SetPipelineRendererAsset( - std::shared_ptr pipelineRendererAsset) { - m_pipelineRendererAsset = - pipelineRendererAsset != nullptr - ? std::move(pipelineRendererAsset) - : CreateDefaultPipelineRendererAsset(); - ResetPipelineRenderer( - CreatePipelineRendererFromAsset(m_pipelineRendererAsset)); +void ScriptableRenderPipelineHost::SetPipelineBackendAsset( + std::shared_ptr pipelineBackendAsset) { + m_pipelineBackendAsset = + pipelineBackendAsset != nullptr + ? std::move(pipelineBackendAsset) + : CreateDefaultPipelineBackendAsset(); + ResetPipelineBackend( + CreatePipelineBackendFromAsset(m_pipelineBackendAsset)); } void ScriptableRenderPipelineHost::SetManagedAssetRuntime( @@ -103,8 +103,8 @@ void ScriptableRenderPipelineHost::Shutdown() { if (m_stageRecorder != nullptr) { m_stageRecorder->Shutdown(); } - if (m_pipelineRenderer != nullptr) { - m_pipelineRenderer->Shutdown(); + if (m_pipelineBackend != nullptr) { + m_pipelineBackend->Shutdown(); } ShutdownCameraFrameStandalonePasses(); ResetInitializationState(); @@ -122,8 +122,8 @@ bool ScriptableRenderPipelineHost::SupportsStageRenderGraph( return m_stageRecorder->SupportsStageRenderGraph(context); } - return m_pipelineRenderer != nullptr && - m_pipelineRenderer->SupportsStageRenderGraph(context); + return m_pipelineBackend != nullptr && + m_pipelineBackend->SupportsStageRenderGraph(context); } bool ScriptableRenderPipelineHost::RecordStageRenderGraph( @@ -141,8 +141,8 @@ bool ScriptableRenderPipelineHost::RecordStageRenderGraph( } } - return m_pipelineRenderer != nullptr && - m_pipelineRenderer->RecordStageRenderGraph(context); + return m_pipelineBackend != nullptr && + m_pipelineBackend->RecordStageRenderGraph(context); } bool ScriptableRenderPipelineHost::Render( @@ -151,8 +151,8 @@ bool ScriptableRenderPipelineHost::Render( return false; } - return m_pipelineRenderer != nullptr && - m_pipelineRenderer->Render(executionContext); + return m_pipelineBackend != nullptr && + m_pipelineBackend->Render(executionContext); } bool ScriptableRenderPipelineHost::Render( @@ -163,8 +163,8 @@ bool ScriptableRenderPipelineHost::Render( return false; } - return m_pipelineRenderer != nullptr && - m_pipelineRenderer->Render(context, surface, sceneData); + return m_pipelineBackend != nullptr && + m_pipelineBackend->Render(context, surface, sceneData); } void ScriptableRenderPipelineHost::ConfigureRenderSceneData( @@ -218,13 +218,13 @@ RenderPass* ScriptableRenderPipelineHost::GetCameraFrameStandalonePass( } bool ScriptableRenderPipelineHost::EnsureInitialized(const RenderContext& context) { - if (!context.IsValid() || m_pipelineRenderer == nullptr) { + if (!context.IsValid() || m_pipelineBackend == nullptr) { return false; } const bool hasInitializationContext = m_initializedDevice != nullptr || - m_pipelineRendererInitialized || + m_pipelineBackendInitialized || m_stageRecorderInitialized; if (hasInitializationContext && (m_initializedDevice != context.device || @@ -232,14 +232,14 @@ bool ScriptableRenderPipelineHost::EnsureInitialized(const RenderContext& contex ShutdownInitializedComponents(); } - if (!m_pipelineRendererInitialized) { - if (!m_pipelineRenderer->Initialize(context)) { - m_pipelineRenderer->Shutdown(); + if (!m_pipelineBackendInitialized) { + if (!m_pipelineBackend->Initialize(context)) { + m_pipelineBackend->Shutdown(); ClearInitializationContextIfNoComponentsAreInitialized(); return false; } - m_pipelineRendererInitialized = true; + m_pipelineBackendInitialized = true; m_initializedDevice = context.device; m_initializedBackendType = context.backendType; } @@ -260,9 +260,9 @@ bool ScriptableRenderPipelineHost::EnsureInitialized(const RenderContext& contex return true; } -void ScriptableRenderPipelineHost::BindStageRecorderPipelineRenderer() { +void ScriptableRenderPipelineHost::BindStageRecorderPipelineBackend() { if (m_stageRecorder != nullptr) { - m_stageRecorder->SetPipelineRenderer(m_pipelineRenderer.get()); + m_stageRecorder->SetPipelineBackend(m_pipelineBackend.get()); } } @@ -272,9 +272,9 @@ void ScriptableRenderPipelineHost::ShutdownInitializedComponents() { m_stageRecorder->Shutdown(); } - if (m_pipelineRendererInitialized && - m_pipelineRenderer != nullptr) { - m_pipelineRenderer->Shutdown(); + if (m_pipelineBackendInitialized && + m_pipelineBackend != nullptr) { + m_pipelineBackend->Shutdown(); } ResetInitializationState(); @@ -283,12 +283,12 @@ void ScriptableRenderPipelineHost::ShutdownInitializedComponents() { void ScriptableRenderPipelineHost::ResetInitializationState() { m_initializedDevice = nullptr; m_initializedBackendType = RHI::RHIType::D3D12; - m_pipelineRendererInitialized = false; + m_pipelineBackendInitialized = false; m_stageRecorderInitialized = false; } void ScriptableRenderPipelineHost::ClearInitializationContextIfNoComponentsAreInitialized() { - if (!m_pipelineRendererInitialized && + if (!m_pipelineBackendInitialized && !m_stageRecorderInitialized) { m_initializedDevice = nullptr; m_initializedBackendType = RHI::RHIType::D3D12; @@ -302,59 +302,59 @@ void ScriptableRenderPipelineHost::ResetStageRecorder( } m_stageRecorder = std::move(stageRecorder); - BindStageRecorderPipelineRenderer(); + BindStageRecorderPipelineBackend(); m_stageRecorderInitialized = false; ClearInitializationContextIfNoComponentsAreInitialized(); } -void ScriptableRenderPipelineHost::ResetPipelineRenderer( - std::unique_ptr pipelineRenderer) { - if (m_pipelineRenderer != nullptr) { - m_pipelineRenderer->Shutdown(); +void ScriptableRenderPipelineHost::ResetPipelineBackend( + std::unique_ptr pipelineBackend) { + if (m_pipelineBackend != nullptr) { + m_pipelineBackend->Shutdown(); } - m_pipelineRenderer = std::move(pipelineRenderer); - if (m_pipelineRenderer == nullptr) { - if (m_pipelineRendererAsset == nullptr) { - m_pipelineRendererAsset = CreateDefaultPipelineRendererAsset(); + m_pipelineBackend = std::move(pipelineBackend); + if (m_pipelineBackend == nullptr) { + if (m_pipelineBackendAsset == nullptr) { + m_pipelineBackendAsset = CreateDefaultPipelineBackendAsset(); } - m_pipelineRenderer = - CreatePipelineRendererFromAsset(m_pipelineRendererAsset); + m_pipelineBackend = + CreatePipelineBackendFromAsset(m_pipelineBackendAsset); } - m_pipelineRendererInitialized = false; - BindStageRecorderPipelineRenderer(); + m_pipelineBackendInitialized = false; + BindStageRecorderPipelineBackend(); ClearInitializationContextIfNoComponentsAreInitialized(); } ScriptableRenderPipelineHostAsset::ScriptableRenderPipelineHostAsset() : ScriptableRenderPipelineHostAsset( - CreateDefaultPipelineRendererAsset(), + CreateDefaultPipelineBackendAsset(), nullptr) { } ScriptableRenderPipelineHostAsset::ScriptableRenderPipelineHostAsset( - std::shared_ptr pipelineRendererAsset) + std::shared_ptr pipelineBackendAsset) : ScriptableRenderPipelineHostAsset( - std::move(pipelineRendererAsset), + std::move(pipelineBackendAsset), nullptr) { } ScriptableRenderPipelineHostAsset::ScriptableRenderPipelineHostAsset( - std::shared_ptr pipelineRendererAsset, + std::shared_ptr pipelineBackendAsset, std::shared_ptr managedAssetRuntime) - : m_pipelineRendererAsset( - pipelineRendererAsset != nullptr - ? std::move(pipelineRendererAsset) - : CreateDefaultPipelineRendererAsset()) + : m_pipelineBackendAsset( + pipelineBackendAsset != nullptr + ? std::move(pipelineBackendAsset) + : CreateDefaultPipelineBackendAsset()) , m_managedAssetRuntime(std::move(managedAssetRuntime)) { } std::unique_ptr ScriptableRenderPipelineHostAsset::CreatePipeline() const { std::unique_ptr pipeline = std::make_unique( - m_pipelineRendererAsset, + m_pipelineBackendAsset, m_managedAssetRuntime); if (pipeline != nullptr) { ConfigurePipeline(*pipeline); @@ -377,8 +377,8 @@ void ScriptableRenderPipelineHostAsset::ConfigurePipeline( } FinalColorSettings ScriptableRenderPipelineHostAsset::GetDefaultFinalColorSettings() const { - return m_pipelineRendererAsset != nullptr - ? m_pipelineRendererAsset->GetDefaultFinalColorSettings() + return m_pipelineBackendAsset != nullptr + ? m_pipelineBackendAsset->GetDefaultFinalColorSettings() : FinalColorSettings{}; } diff --git a/engine/src/Scripting/Mono/MonoScriptRuntime.cpp b/engine/src/Scripting/Mono/MonoScriptRuntime.cpp index 04435265..894e6429 100644 --- a/engine/src/Scripting/Mono/MonoScriptRuntime.cpp +++ b/engine/src/Scripting/Mono/MonoScriptRuntime.cpp @@ -1498,9 +1498,9 @@ public: bool TryGetDefaultFinalColorSettings( Rendering::FinalColorSettings& settings) const override; std::shared_ptr - GetPipelineRendererAsset() const override; + GetPipelineBackendAsset() const override; std::shared_ptr - GetPipelineRendererAsset(int32_t rendererIndex) const override; + GetPipelineBackendAsset(int32_t rendererIndex) const override; bool UsesNativeCameraFramePlanBaseline() const override; bool UsesNativeCameraFramePlanBaseline( int32_t rendererIndex) const override; @@ -1571,9 +1571,9 @@ private: mutable int32_t m_runtimeResourceVersion = 0; mutable uint32_t m_pipelineHandle = 0; mutable bool m_pipelineCreationAttempted = false; - mutable bool m_pipelineRendererAssetResolved = false; + mutable bool m_pipelineBackendAssetResolved = false; mutable std::shared_ptr - m_pipelineRendererAsset = nullptr; + m_pipelineBackendAsset = nullptr; }; class MonoManagedRenderPipelineStageRecorder final @@ -1607,7 +1607,7 @@ public: if (m_ownedSceneDrawBackend != nullptr) { m_ownedSceneDrawBackend->Shutdown(); } - m_ownedPipelineRendererAsset.reset(); + m_ownedPipelineBackendAsset.reset(); m_supportsStageContextualMethod = nullptr; m_supportsStageMethod = nullptr; m_recordStageMethod = nullptr; @@ -1615,10 +1615,10 @@ public: m_boundSceneDrawBackend = nullptr; } - void SetPipelineRenderer( - Rendering::RenderPipelineRenderer* pipelineRenderer) override { + void SetPipelineBackend( + Rendering::RenderPipelineBackend* pipelineBackend) override { m_boundSceneDrawBackend = - dynamic_cast(pipelineRenderer); + dynamic_cast(pipelineBackend); } bool SupportsStageRenderGraph(Rendering::CameraFrameStage stage) const override { @@ -1907,37 +1907,37 @@ private: Rendering::SceneDrawBackend* ResolveSceneDrawBackend( int32_t rendererIndex) { const std::shared_ptr - contextualPipelineRendererAsset = + contextualPipelineBackendAsset = m_assetRuntime != nullptr - ? m_assetRuntime->GetPipelineRendererAsset( + ? m_assetRuntime->GetPipelineBackendAsset( rendererIndex) : nullptr; const std::shared_ptr - defaultPipelineRendererAsset = + defaultPipelineBackendAsset = m_assetRuntime != nullptr - ? m_assetRuntime->GetPipelineRendererAsset() + ? m_assetRuntime->GetPipelineBackendAsset() : nullptr; if (m_boundSceneDrawBackend != nullptr && - contextualPipelineRendererAsset != nullptr && - contextualPipelineRendererAsset == - defaultPipelineRendererAsset) { + contextualPipelineBackendAsset != nullptr && + contextualPipelineBackendAsset == + defaultPipelineBackendAsset) { return m_boundSceneDrawBackend; } - if (contextualPipelineRendererAsset == nullptr) { + if (contextualPipelineBackendAsset == nullptr) { return nullptr; } if (m_ownedSceneDrawBackend == nullptr || - contextualPipelineRendererAsset != m_ownedPipelineRendererAsset) { + contextualPipelineBackendAsset != m_ownedPipelineBackendAsset) { if (m_ownedSceneDrawBackend != nullptr) { m_ownedSceneDrawBackend->Shutdown(); } m_ownedSceneDrawBackend = Rendering::Internal::CreateSceneDrawBackendFromAsset( - contextualPipelineRendererAsset); - m_ownedPipelineRendererAsset = - contextualPipelineRendererAsset; + contextualPipelineBackendAsset); + m_ownedPipelineBackendAsset = + contextualPipelineBackendAsset; } return m_ownedSceneDrawBackend.get(); @@ -1952,7 +1952,7 @@ private: std::vector> m_fullscreenPassPool = {}; Rendering::SceneDrawBackend* m_boundSceneDrawBackend = nullptr; std::shared_ptr - m_ownedPipelineRendererAsset = nullptr; + m_ownedPipelineBackendAsset = nullptr; std::unique_ptr m_ownedSceneDrawBackend = nullptr; }; @@ -2195,29 +2195,29 @@ bool MonoManagedRenderPipelineAssetRuntime::TryGetDefaultFinalColorSettings( } std::shared_ptr -MonoManagedRenderPipelineAssetRuntime::GetPipelineRendererAsset() const { - return GetPipelineRendererAsset(-1); +MonoManagedRenderPipelineAssetRuntime::GetPipelineBackendAsset() const { + return GetPipelineBackendAsset(-1); } std::shared_ptr -MonoManagedRenderPipelineAssetRuntime::GetPipelineRendererAsset( +MonoManagedRenderPipelineAssetRuntime::GetPipelineBackendAsset( int32_t rendererIndex) const { if (!SyncManagedAssetRuntimeState()) { return nullptr; } - if (m_pipelineRendererAssetResolved) { - return m_pipelineRendererAsset; + if (m_pipelineBackendAssetResolved) { + return m_pipelineBackendAsset; } if (GetManagedAssetObject() == nullptr) { return nullptr; } - m_pipelineRendererAssetResolved = true; - m_pipelineRendererAsset = - Rendering::Internal::CreateDefaultPipelineRendererAsset(); - return m_pipelineRendererAsset; + m_pipelineBackendAssetResolved = true; + m_pipelineBackendAsset = + Rendering::Internal::CreateDefaultPipelineBackendAsset(); + return m_pipelineBackendAsset; } bool MonoManagedRenderPipelineAssetRuntime::UsesNativeCameraFramePlanBaseline() @@ -2417,8 +2417,8 @@ bool MonoManagedRenderPipelineAssetRuntime::SyncManagedAssetRuntimeState() const } ReleaseManagedPipeline(); - m_pipelineRendererAsset.reset(); - m_pipelineRendererAssetResolved = false; + m_pipelineBackendAsset.reset(); + m_pipelineBackendAssetResolved = false; m_runtimeResourceVersion = runtimeResourceVersion; return true; } @@ -2488,8 +2488,8 @@ void MonoManagedRenderPipelineAssetRuntime::ReleaseManagedAsset() const { m_usesNativeCameraFramePlanBaselineContextualMethod = nullptr; m_configureRenderSceneSetupMethod = nullptr; m_configureDirectionalShadowExecutionStateMethod = nullptr; - m_pipelineRendererAsset.reset(); - m_pipelineRendererAssetResolved = false; + m_pipelineBackendAsset.reset(); + m_pipelineBackendAssetResolved = false; m_runtimeResourceVersionResolved = false; m_runtimeResourceVersion = 0; const bool ownsManagedAssetHandle = m_ownsManagedAssetHandle;