Files
UnrealEngine/Engine/Plugins/Runtime/nDisplay/Source/DisplayClusterWarp/Private/DisplayClusterWarpModule.h
2025-05-18 13:04:45 +08:00

62 lines
2.4 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IDisplayClusterWarp.h"
#include "Render/Warp/IDisplayClusterWarpPolicyFactory.h"
#include "WarpBlend/Loader/DisplayClusterWarpBlendLoader_MPCDI.h"
#include "WarpBlend/Loader/DisplayClusterWarpBlendLoader_MeshComponent.h"
/**
* Implement DisplayClusterWarp module
*/
class FDisplayClusterWarpModule
: public IDisplayClusterWarp
{
public:
FDisplayClusterWarpModule();
virtual ~FDisplayClusterWarpModule();
public:
//////////////////////////////////////////////////////////////////////////////////////////////
// IModuleInterface
//////////////////////////////////////////////////////////////////////////////////////////////
virtual void StartupModule() override;
virtual void ShutdownModule() override;
public:
virtual TSharedPtr<IDisplayClusterWarpBlend, ESPMode::ThreadSafe> Create(const FDisplayClusterWarpInitializer_MPCDIFile& InConstructParameters) const override
{
return FDisplayClusterWarpBlendLoader_MPCDI::Create(InConstructParameters);
}
virtual TSharedPtr<IDisplayClusterWarpBlend, ESPMode::ThreadSafe> Create(const FDisplayClusterWarpInitializer_MPCDIFile_Profile2DScreen& InConstructParameters) const override
{
return FDisplayClusterWarpBlendLoader_MPCDI::Create(InConstructParameters);
}
virtual TSharedPtr<IDisplayClusterWarpBlend, ESPMode::ThreadSafe> Create(const FDisplayClusterWarpInitializer_PFMFile& InConstructParameters) const override
{
return FDisplayClusterWarpBlendLoader_MPCDI::Create(InConstructParameters);
}
virtual TSharedPtr<IDisplayClusterWarpBlend, ESPMode::ThreadSafe> Create(const FDisplayClusterWarpInitializer_StaticMesh& InConstructParameters) const override
{
return FDisplayClusterWarpBlendLoader_MeshComponent::Create(InConstructParameters);
}
virtual TSharedPtr<IDisplayClusterWarpBlend, ESPMode::ThreadSafe> Create(const FDisplayClusterWarpInitializer_ProceduralMesh& InConstructParameters) const override
{
return FDisplayClusterWarpBlendLoader_MeshComponent::Create(InConstructParameters);
}
virtual bool ReadMPCDFileStructure(const FString& InMPCDIFileName, TMap<FString, TMap<FString, FDisplayClusterWarpMPCDIAttributes>>& OutMPCDIFileStructure) const override
{
return FDisplayClusterWarpBlendLoader_MPCDI::ReadMPCDFileStructure(InMPCDIFileName, OutMPCDIFileStructure);
}
private:
// Available factories
TMap<FString, TSharedPtr<IDisplayClusterWarpPolicyFactory>> WarpPolicyFactories;
};