Refactor editor window synchronization flow
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
#include "Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h"
|
||||
|
||||
#include "Rendering/GraphicsSettingsState.h"
|
||||
#include "Rendering/Internal/RenderPipelineFactory.h"
|
||||
|
||||
#include <utility>
|
||||
|
||||
@@ -42,7 +43,21 @@ ManagedScriptableRenderPipelineAsset::ResolveSharedPipelineBackendAsset() const
|
||||
if (const std::shared_ptr<const ManagedRenderPipelineAssetRuntime> runtime =
|
||||
ResolveManagedAssetRuntime();
|
||||
runtime != nullptr) {
|
||||
return runtime->GetSharedPipelineBackendAsset();
|
||||
if (const std::shared_ptr<const RenderPipelineAsset> rendererAsset =
|
||||
runtime->GetPipelineRendererAsset();
|
||||
rendererAsset != nullptr) {
|
||||
return rendererAsset;
|
||||
}
|
||||
|
||||
switch (runtime->GetPipelineRendererAssetPolicy()) {
|
||||
case ManagedPipelineRendererAssetPolicy::ExplicitAsset:
|
||||
return runtime->GetSharedPipelineBackendAsset();
|
||||
case ManagedPipelineRendererAssetPolicy::DefaultNativeBackend:
|
||||
return Internal::CreateDefaultPipelineBackendAsset();
|
||||
case ManagedPipelineRendererAssetPolicy::Unspecified:
|
||||
default:
|
||||
return nullptr;
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
|
||||
@@ -1641,7 +1641,9 @@ public:
|
||||
bool TryGetDefaultFinalColorSettings(
|
||||
Rendering::FinalColorSettings& settings) const override;
|
||||
std::shared_ptr<const Rendering::RenderPipelineAsset>
|
||||
GetSharedPipelineBackendAsset() const override;
|
||||
GetPipelineRendererAsset() const override;
|
||||
Rendering::Pipelines::ManagedPipelineRendererAssetPolicy
|
||||
GetPipelineRendererAssetPolicy() const override;
|
||||
|
||||
MonoScriptRuntime* GetRuntime() const {
|
||||
return m_runtime;
|
||||
@@ -2044,7 +2046,7 @@ private:
|
||||
const std::shared_ptr<const Rendering::RenderPipelineAsset>
|
||||
sharedPipelineBackendAsset =
|
||||
m_assetRuntime != nullptr
|
||||
? m_assetRuntime->GetSharedPipelineBackendAsset()
|
||||
? m_assetRuntime->GetPipelineRendererAsset()
|
||||
: nullptr;
|
||||
if (sharedPipelineBackendAsset == nullptr) {
|
||||
return nullptr;
|
||||
@@ -2318,7 +2320,7 @@ bool MonoManagedRenderPipelineAssetRuntime::TryGetDefaultFinalColorSettings(
|
||||
}
|
||||
|
||||
std::shared_ptr<const Rendering::RenderPipelineAsset>
|
||||
MonoManagedRenderPipelineAssetRuntime::GetSharedPipelineBackendAsset() const {
|
||||
MonoManagedRenderPipelineAssetRuntime::GetPipelineRendererAsset() const {
|
||||
if (!SyncManagedAssetRuntimeState()) {
|
||||
return nullptr;
|
||||
}
|
||||
@@ -2332,11 +2334,16 @@ MonoManagedRenderPipelineAssetRuntime::GetSharedPipelineBackendAsset() const {
|
||||
}
|
||||
|
||||
m_sharedPipelineBackendAssetResolved = true;
|
||||
m_sharedPipelineBackendAsset =
|
||||
Rendering::Internal::CreateDefaultPipelineBackendAsset();
|
||||
return m_sharedPipelineBackendAsset;
|
||||
}
|
||||
|
||||
Rendering::Pipelines::ManagedPipelineRendererAssetPolicy
|
||||
MonoManagedRenderPipelineAssetRuntime::GetPipelineRendererAssetPolicy() const {
|
||||
return EnsureManagedAsset()
|
||||
? Rendering::Pipelines::ManagedPipelineRendererAssetPolicy::DefaultNativeBackend
|
||||
: Rendering::Pipelines::ManagedPipelineRendererAssetPolicy::Unspecified;
|
||||
}
|
||||
|
||||
bool MonoManagedRenderPipelineAssetRuntime::AcquireManagedPipelineHandle(
|
||||
uint32_t& outPipelineHandle) const {
|
||||
if (!SyncManagedAssetRuntimeState()) {
|
||||
|
||||
Reference in New Issue
Block a user