60 lines
2.0 KiB
C++
60 lines
2.0 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#pragma once
|
|
|
|
#include "Misc/DisplayClusterHelpers.h"
|
|
#include "DisplayClusterProjectionStrings.h"
|
|
#include "Containers/DisplayClusterWarpEnums.h"
|
|
|
|
namespace UE::DisplayClusterProjectionHelpers
|
|
{
|
|
namespace MPCDI
|
|
{
|
|
/** Convert the mpcdi profile type from a string to an enum value. */
|
|
static EDisplayClusterWarpProfileType ProfileTypeFromString(const FString& InProfileTypeName)
|
|
{
|
|
if (!InProfileTypeName.Compare(DisplayClusterProjectionStrings::cfg::mpcdi::Profiles::mpcdi_2d, ESearchCase::IgnoreCase))
|
|
{
|
|
return EDisplayClusterWarpProfileType::warp_2D;
|
|
}
|
|
else if (!InProfileTypeName.Compare(DisplayClusterProjectionStrings::cfg::mpcdi::Profiles::mpcdi_3d, ESearchCase::IgnoreCase))
|
|
{
|
|
return EDisplayClusterWarpProfileType::warp_3D;
|
|
}
|
|
else if (!InProfileTypeName.Compare(DisplayClusterProjectionStrings::cfg::mpcdi::Profiles::mpcdi_a3d, ESearchCase::IgnoreCase))
|
|
{
|
|
return EDisplayClusterWarpProfileType::warp_A3D;
|
|
}
|
|
else if (!InProfileTypeName.Compare(DisplayClusterProjectionStrings::cfg::mpcdi::Profiles::mpcdi_sl, ESearchCase::IgnoreCase))
|
|
{
|
|
return EDisplayClusterWarpProfileType::warp_SL;
|
|
}
|
|
|
|
return EDisplayClusterWarpProfileType::Invalid;
|
|
}
|
|
|
|
/** Convert the mpcdi profile type from an enum value to a string. */
|
|
static FString ProfileTypeToString(const EDisplayClusterWarpProfileType InProfileType)
|
|
{
|
|
switch (InProfileType)
|
|
{
|
|
case EDisplayClusterWarpProfileType::warp_2D:
|
|
return DisplayClusterProjectionStrings::cfg::mpcdi::Profiles::mpcdi_2d;
|
|
case EDisplayClusterWarpProfileType::warp_3D:
|
|
return DisplayClusterProjectionStrings::cfg::mpcdi::Profiles::mpcdi_3d;
|
|
case EDisplayClusterWarpProfileType::warp_A3D:
|
|
return DisplayClusterProjectionStrings::cfg::mpcdi::Profiles::mpcdi_a3d;
|
|
case EDisplayClusterWarpProfileType::warp_SL:
|
|
return DisplayClusterProjectionStrings::cfg::mpcdi::Profiles::mpcdi_sl;
|
|
|
|
default:
|
|
break;
|
|
}
|
|
|
|
// Returns an empty string if an invalid profile type is used.
|
|
return FString();
|
|
}
|
|
}
|
|
};
|
|
|