#include "Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h" #include namespace XCEngine { namespace Rendering { namespace Pipelines { namespace { ManagedRenderPipelineAssetDescriptor& GetManagedRenderPipelineAssetDescriptorStorage() { static ManagedRenderPipelineAssetDescriptor s_descriptor = {}; return s_descriptor; } } // namespace ManagedScriptableRenderPipelineAsset::ManagedScriptableRenderPipelineAsset( ManagedRenderPipelineAssetDescriptor descriptor) : m_descriptor(std::move(descriptor)) { } std::unique_ptr ManagedScriptableRenderPipelineAsset::CreatePipeline() const { return m_fallbackAsset.CreatePipeline(); } FinalColorSettings ManagedScriptableRenderPipelineAsset::GetDefaultFinalColorSettings() const { return m_fallbackAsset.GetDefaultFinalColorSettings(); } void SetManagedRenderPipelineAssetDescriptor( const ManagedRenderPipelineAssetDescriptor& descriptor) { GetManagedRenderPipelineAssetDescriptorStorage() = descriptor; } void ClearManagedRenderPipelineAssetDescriptor() { GetManagedRenderPipelineAssetDescriptorStorage() = {}; } ManagedRenderPipelineAssetDescriptor GetManagedRenderPipelineAssetDescriptor() { return GetManagedRenderPipelineAssetDescriptorStorage(); } std::shared_ptr CreateManagedOrDefaultScriptableRenderPipelineAsset() { const ManagedRenderPipelineAssetDescriptor descriptor = GetManagedRenderPipelineAssetDescriptor(); if (descriptor.IsValid()) { return std::make_shared(descriptor); } return std::make_shared(); } } // namespace Pipelines } // namespace Rendering } // namespace XCEngine