Add managed render pipeline selection bridge
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
#pragma once
|
||||
|
||||
#include <XCEngine/Rendering/Pipelines/ScriptableRenderPipelineHost.h>
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
|
||||
namespace XCEngine {
|
||||
namespace Rendering {
|
||||
namespace Pipelines {
|
||||
|
||||
struct ManagedRenderPipelineAssetDescriptor {
|
||||
std::string assemblyName;
|
||||
std::string namespaceName;
|
||||
std::string className;
|
||||
|
||||
bool IsValid() const {
|
||||
return !assemblyName.empty() && !className.empty();
|
||||
}
|
||||
|
||||
std::string GetFullName() const {
|
||||
return namespaceName.empty()
|
||||
? className
|
||||
: namespaceName + "." + className;
|
||||
}
|
||||
};
|
||||
|
||||
class ManagedScriptableRenderPipelineAsset final : public RenderPipelineAsset {
|
||||
public:
|
||||
explicit ManagedScriptableRenderPipelineAsset(
|
||||
ManagedRenderPipelineAssetDescriptor descriptor);
|
||||
|
||||
const ManagedRenderPipelineAssetDescriptor& GetDescriptor() const {
|
||||
return m_descriptor;
|
||||
}
|
||||
|
||||
std::unique_ptr<RenderPipeline> CreatePipeline() const override;
|
||||
FinalColorSettings GetDefaultFinalColorSettings() const override;
|
||||
|
||||
private:
|
||||
ManagedRenderPipelineAssetDescriptor m_descriptor;
|
||||
ScriptableRenderPipelineHostAsset m_fallbackAsset;
|
||||
};
|
||||
|
||||
void SetManagedRenderPipelineAssetDescriptor(
|
||||
const ManagedRenderPipelineAssetDescriptor& descriptor);
|
||||
void ClearManagedRenderPipelineAssetDescriptor();
|
||||
ManagedRenderPipelineAssetDescriptor GetManagedRenderPipelineAssetDescriptor();
|
||||
std::shared_ptr<const RenderPipelineAsset>
|
||||
CreateManagedOrDefaultScriptableRenderPipelineAsset();
|
||||
|
||||
} // namespace Pipelines
|
||||
} // namespace Rendering
|
||||
} // namespace XCEngine
|
||||
Reference in New Issue
Block a user