58 lines
1.7 KiB
C++
58 lines
1.7 KiB
C++
|
|
#include "Rendering/Pipelines/ManagedScriptableRenderPipelineAsset.h"
|
||
|
|
|
||
|
|
#include <utility>
|
||
|
|
|
||
|
|
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<RenderPipeline> 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<const RenderPipelineAsset>
|
||
|
|
CreateManagedOrDefaultScriptableRenderPipelineAsset() {
|
||
|
|
const ManagedRenderPipelineAssetDescriptor descriptor =
|
||
|
|
GetManagedRenderPipelineAssetDescriptor();
|
||
|
|
if (descriptor.IsValid()) {
|
||
|
|
return std::make_shared<ManagedScriptableRenderPipelineAsset>(descriptor);
|
||
|
|
}
|
||
|
|
|
||
|
|
return std::make_shared<ScriptableRenderPipelineHostAsset>();
|
||
|
|
}
|
||
|
|
|
||
|
|
} // namespace Pipelines
|
||
|
|
} // namespace Rendering
|
||
|
|
} // namespace XCEngine
|