Files
UnrealEngineUWP/Engine/Source/Developer/TargetPlatform/Private/TargetPlatformSettingsBase.cpp
florin pascu 367836ea48 First part of TargetPlatform(TP) refactor into TargetPlatformSettings(TPS) and TargetPlatformControls(TPC)
TPS doesn't need SDK and will be used to get info about the platform
TPC requires SDK
AndroidTP has been converted to the new system
#jira UE-200883
#rb Jack.Porter

[CL 30963885 by florin pascu in ue5-main branch]
2024-01-29 04:50:19 -05:00

104 lines
3.3 KiB
C++

// Copyright Epic Games, Inc. All Rights Reserved.
#include "Common/TargetPlatformSettingsBase.h"
#include "AnalyticsEventAttribute.h"
#include "HAL/IConsoleManager.h"
bool FTargetPlatformSettingsBase::UsesForwardShading() const
{
static IConsoleVariable* CVarForwardShading = IConsoleManager::Get().FindConsoleVariable(TEXT("r.ForwardShading"));
return CVarForwardShading ? (CVarForwardShading->GetInt() != 0) : false;
}
bool FTargetPlatformSettingsBase::UsesDBuffer() const
{
static IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.DBuffer"));
return CVar ? (CVar->GetInt() != 0) : false;
}
bool FTargetPlatformSettingsBase::UsesBasePassVelocity() const
{
static IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.VelocityOutputPass"));
return CVar ? (CVar->GetInt() == 1) : false;
}
bool FTargetPlatformSettingsBase::VelocityEncodeDepth() const
{
return true;
}
bool FTargetPlatformSettingsBase::UsesSelectiveBasePassOutputs() const
{
static IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.SelectiveBasePassOutputs"));
return CVar ? (CVar->GetInt() != 0) : false;
}
bool FTargetPlatformSettingsBase::UsesDistanceFields() const
{
static IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.DistanceFields"));
return CVar ? (CVar->GetInt() != 0) : false;
}
bool FTargetPlatformSettingsBase::UsesRayTracing() const
{
static IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.RayTracing"));
return CVar ? (CVar->GetInt() != 0) : false;
}
EOfflineBVHMode FTargetPlatformSettingsBase::GetStaticMeshOfflineBVHMode() const
{
return EOfflineBVHMode::Disabled;
}
bool FTargetPlatformSettingsBase::GetStaticMeshOfflineBVHCompression() const
{
return false;
}
bool FTargetPlatformSettingsBase::ForcesSimpleSkyDiffuse() const
{
return false;
}
float FTargetPlatformSettingsBase::GetDownSampleMeshDistanceFieldDivider() const
{
return 1.0f;
}
int32 FTargetPlatformSettingsBase::GetHeightFogModeForOpaque() const
{
// Don't override the project setting by default
// Platforms wish to support override need to implement the logic in their own target platform classes
return 0;
}
bool FTargetPlatformSettingsBase::UsesMobileAmbientOcclusion() const
{
static IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.Mobile.AmbientOcclusion"));
return CVar ? (CVar->GetInt() != 0) : false;
}
bool FTargetPlatformSettingsBase::UsesMobileDBuffer() const
{
static IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("r.Mobile.DBuffer"));
return CVar ? (CVar->GetInt() != 0) : false;
}
bool FTargetPlatformSettingsBase::UsesASTCHDR() const
{
static IConsoleVariable* CVar = IConsoleManager::Get().FindConsoleVariable(TEXT("cook.ASTCTextureCompressor"));
const bool bUsesARMCompressor = (CVar ? (CVar->GetInt() != 0) : false);
static IConsoleVariable* CVarASTCHDR = IConsoleManager::Get().FindConsoleVariable(TEXT("cook.AllowASTCHDRProfile"));
const bool bUsesASTCHDR = (CVarASTCHDR ? (CVarASTCHDR->GetInt() != 0) : false);
return (bUsesARMCompressor && bUsesASTCHDR);
}
void FTargetPlatformSettingsBase::GetRayTracingShaderFormats(TArray<FName>& OutFormats) const
{
if (UsesRayTracing())
{
GetAllTargetedShaderFormats(OutFormats);
}
}