Files
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

42 lines
1.7 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#pragma once
#include "IDisplayClusterProjection.h"
#include "Render/Projection/IDisplayClusterProjectionPolicyFactory.h"
class IDisplayClusterProjectionPolicyFactory;
class USceneComponent;
class UStaticMeshComponent;
class FDisplayClusterProjectionModule
: public IDisplayClusterProjection
{
public:
FDisplayClusterProjectionModule();
virtual ~FDisplayClusterProjectionModule();
public:
//////////////////////////////////////////////////////////////////////////////////////////////
// IModuleInterface
//////////////////////////////////////////////////////////////////////////////////////////////
virtual void StartupModule() override;
virtual void ShutdownModule() override;
public:
//////////////////////////////////////////////////////////////////////////////////////////////
// IDisplayClusterProjection
//////////////////////////////////////////////////////////////////////////////////////////////
virtual void GetSupportedProjectionTypes(TArray<FString>& OutProjectionTypes) override;
virtual TSharedPtr<IDisplayClusterProjectionPolicyFactory> GetProjectionFactory(const FString& InProjectionType) override;
virtual bool CameraPolicySetCamera(const TSharedPtr<IDisplayClusterProjectionPolicy, ESPMode::ThreadSafe>& InPolicy, UCameraComponent* const NewCamera, const FDisplayClusterProjectionCameraPolicySettings& CameraSettings) override;
virtual UCameraComponent* CameraPolicyGetCameraComponent(const TSharedPtr<IDisplayClusterProjectionPolicy, ESPMode::ThreadSafe>& InPolicy) override;
private:
// Available factories
TMap<FString, TSharedPtr<IDisplayClusterProjectionPolicyFactory>> ProjectionPolicyFactories;
};