You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
#rb luc.eygasier #jira UE-154106 #preflight 629516933f058e13b5ef0f4f #ROBOMERGE-AUTHOR: jonathan.bard #ROBOMERGE-SOURCE: CL 20432616 via CL 20432663 via CL 20432668 #ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246) [CL 20434170 by jonathan bard in ue5-main branch]
68 lines
1.9 KiB
C++
68 lines
1.9 KiB
C++
// Copyright Epic Games, Inc. All Rights Reserved.
|
|
|
|
#include "LandscapeUtils.h"
|
|
|
|
#include "Engine/Level.h"
|
|
|
|
#if WITH_EDITOR
|
|
#include "EditorDirectories.h"
|
|
#include "ObjectTools.h"
|
|
#endif
|
|
|
|
namespace UE::Landscape
|
|
{
|
|
|
|
bool DoesPlatformSupportEditLayers(EShaderPlatform InShaderPlatform)
|
|
{
|
|
// Edit layers work on the GPU and are only available on SM5+ and in the editor :
|
|
return IsFeatureLevelSupported(InShaderPlatform, ERHIFeatureLevel::SM5)
|
|
&& !IsConsolePlatform(InShaderPlatform)
|
|
&& !IsMobilePlatform(InShaderPlatform);
|
|
}
|
|
|
|
#if WITH_EDITOR
|
|
|
|
FString GetSharedAssetsPath(const FString& InPath)
|
|
{
|
|
FString Path = InPath + TEXT("_sharedassets/");
|
|
|
|
if (Path.StartsWith("/Temp/"))
|
|
{
|
|
Path = FEditorDirectories::Get().GetLastDirectory(ELastDirectory::LEVEL) / Path.RightChop(FString("/Temp/").Len());
|
|
}
|
|
|
|
return Path;
|
|
}
|
|
|
|
FString GetSharedAssetsPath(const ULevel* InLevel)
|
|
{
|
|
return GetSharedAssetsPath(InLevel->GetOutermost()->GetName());
|
|
}
|
|
|
|
FString GetLayerInfoObjectPackageName(const ULevel* InLevel, const FName& InLayerName, FName& OutLayerObjectName)
|
|
{
|
|
FString PackageName;
|
|
FString PackageFilename;
|
|
FString SharedAssetsPath = GetSharedAssetsPath(InLevel);
|
|
int32 Suffix = 1;
|
|
|
|
OutLayerObjectName = FName(*FString::Printf(TEXT("%s_LayerInfo"), *ObjectTools::SanitizeInvalidChars(*InLayerName.ToString(), INVALID_LONGPACKAGE_CHARACTERS)));
|
|
FPackageName::TryConvertFilenameToLongPackageName(SharedAssetsPath / OutLayerObjectName.ToString(), PackageName);
|
|
|
|
while (FPackageName::DoesPackageExist(PackageName, &PackageFilename))
|
|
{
|
|
OutLayerObjectName = FName(*FString::Printf(TEXT("%s_LayerInfo_%d"), *ObjectTools::SanitizeInvalidChars(*InLayerName.ToString(), INVALID_LONGPACKAGE_CHARACTERS), Suffix));
|
|
if (!FPackageName::TryConvertFilenameToLongPackageName(SharedAssetsPath / OutLayerObjectName.ToString(), PackageName))
|
|
{
|
|
break;
|
|
}
|
|
|
|
Suffix++;
|
|
}
|
|
|
|
return PackageName;
|
|
}
|
|
|
|
#endif //!WITH_EDITOR
|
|
|
|
} // end namespace UE::Landscape
|