UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Scalability.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*===================================================================================
4 Scalability.h: Manager class for handling scalability settings
5=====================================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
10
12
13namespace Scalability
14{
16 {
19 };
20
21 inline const int32 DefaultQualityLevel = 3;
22
28 {
41
46
47 // Allows us to avoid SetDefaults for static init variables, as SetDefaults is not defined to call during static int
49 : CPUBenchmarkResults(-1.0f)
50 , GPUBenchmarkResults(-1.0f)
51 {
52 if (bSetDefaults)
53 {
55 }
56 }
57
58 bool operator==(const FQualityLevels& Other ) const
59 {
60 return ResolutionQuality == Other.ResolutionQuality &&
61 ViewDistanceQuality == Other.ViewDistanceQuality &&
62 AntiAliasingQuality == Other.AntiAliasingQuality &&
63 ShadowQuality == Other.ShadowQuality &&
64 GlobalIlluminationQuality == Other.GlobalIlluminationQuality &&
65 ReflectionQuality == Other.ReflectionQuality &&
66 PostProcessQuality == Other.PostProcessQuality &&
67 TextureQuality == Other.TextureQuality &&
68 EffectsQuality == Other.EffectsQuality &&
69 FoliageQuality == Other.FoliageQuality &&
70 ShadingQuality == Other.ShadingQuality &&
71 LandscapeQuality == Other.LandscapeQuality;
72 }
73
74 bool operator!=(const FQualityLevels& Other ) const
75 {
76 return !(*this == Other);
77 }
78
81 {
82 return FCrc::TypeCrc32<float>(ResolutionQuality) ^
83 FCrc::TypeCrc32<int32>(ViewDistanceQuality) ^
84 FCrc::TypeCrc32<int32>(AntiAliasingQuality) ^
85 FCrc::TypeCrc32<int32>(ShadowQuality) ^
86 FCrc::TypeCrc32<int32>(GlobalIlluminationQuality) ^
87 FCrc::TypeCrc32<int32>(ReflectionQuality) ^
88 FCrc::TypeCrc32<int32>(PostProcessQuality) ^
89 FCrc::TypeCrc32<int32>(TextureQuality) ^
90 FCrc::TypeCrc32<int32>(EffectsQuality) ^
91 FCrc::TypeCrc32<int32>(FoliageQuality) ^
92 FCrc::TypeCrc32<int32>(ShadingQuality) ^
93 FCrc::TypeCrc32<int32>(LandscapeQuality);
94 }
95
96 // Sets all other settings based on an overall value
97 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
99
100 // Sets all other settings based on an overall value, but relative to the maximum.
101 // @param Value 0: maximum level, 1: maximumlevel -1, etc
103
104 // Returns the overall value if all settings are set to the same thing
105 // @param Value -1:custom, 0:low, 1:medium, 2:high, 3:epic, 4:cinematic
107
108 // Returns the minimum set quality level from all settings
109 // @param Value -1:custom, 0:low, 1:medium, 2:high, 3:epic, 4:cinematic
111
112 // Sets view distance quality
113 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
115
116 // Sets anti-aliasing quality
117 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
119
120 // Sets shadow quality
121 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
123
124 // Sets shadow quality
125 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
127
128 // Sets shadow quality
129 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
131
132 // Sets the post-processing quality
133 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
135
136 // Sets the texture quality
137 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
139
140 // Sets the visual effects quality
141 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
143
144 // Sets the foliage quality
145 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
147
148 // Sets the shading quality
149 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
151
152 // Sets the landscape quality
153 // @param Value 0:low, 1:medium, 2:high, 3:epic, 4:cinematic (gets clamped if needed)
155
157
158 ENGINE_API void SetDefaults();
159 };
160
163
166 {
167 FString Name;
169 float ResolutionQuality = 100.0f;
170 };
171
173
175 ENGINE_API void SetQualityLevels(const FQualityLevels& QualityLevels, bool bForce = false);
176
177#if WITH_EDITOR
183#endif
184
187
191
194
200
203
205 ENGINE_API void LoadState(const FString& IniName);
206
211 ENGINE_API void LoadState(const FString& IniName, const TCHAR* Section);
212
214 ENGINE_API void SaveState(const FString& IniName);
215
220 ENGINE_API void SaveState(const FString& IniName, const TCHAR* Section);
221
228
231
234
236 ENGINE_API void ProcessCommand(const TCHAR* Cmd, FOutputDevice& Ar);
237
240
242 inline constexpr float MinResolutionScale = 0.0f;
243
245 inline constexpr float MaxResolutionScale = 100.0f;
246
247 UE_DEPRECATED(5.3, "Uses FLegacyScreenPercentageDriver::GetCVarResolutionFraction() instead")
249
252
253#if WITH_EDITOR
256#endif
257
259
261}
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
EShaderPlatform
Definition RHIShaderPlatform.h:11
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition NameTypes.h:617
Definition OutputDevice.h:133
Definition Text.h:385
Definition Array.h:670
Definition Scalability.cpp:198
bool IsTemporaryQualityLevelActive()
Definition Scalability.cpp:1016
void LoadState(const FString &IniName)
Definition Scalability.cpp:1172
float GetResolutionScreenPercentage()
Definition Scalability.cpp:497
TArray< FResolutionPreset > GetResolutionPresets()
Definition Scalability.cpp:673
FQualityLevels GetQualityLevelCounts()
Definition Scalability.cpp:1267
const int32 DefaultQualityLevel
Definition Scalability.h:21
void RecordQualityLevelsAnalytics(bool bAutoApplied)
Definition Scalability.cpp:1240
FQualityLevels BenchmarkQualityLevels(uint32 WorkScale, float CPUMultiplier, float GPUMultiplier)
Definition Scalability.cpp:733
void ToggleTemporaryQualityLevels(bool bEnable, const FQualityLevels &QualityLevelsOverride)
Definition Scalability.cpp:997
FString GetScalabilitySectionString(const TCHAR *InGroupName, int32 InQualityLevel, int32 InNumLevels)
Definition Scalability.cpp:340
FText GetQualityLevelText(int32 QualityLevel, int32 NumLevels)
Definition Scalability.cpp:1291
ENGINE_API FQualityLevels ComputeQualityLevelsFromPerfIndex(float CPUPerfIndex, float GPUPerfIndex)
Definition Scalability.cpp:713
FText GetScalabilityNameFromQualityLevel(int32 QualityLevel)
Definition Scalability.cpp:503
constexpr float MaxResolutionScale
Definition Scalability.h:245
FQualityLevels GetQualityLevels()
Definition Scalability.cpp:969
int32 GetEffectsQualityDirect(bool bGameThread)
Definition Scalability.cpp:1021
void InitScalabilitySystem()
Definition Scalability.cpp:614
constexpr float MinResolutionScale
Definition Scalability.h:242
ENGINE_API FOnScalabilitySettingsChanged OnScalabilitySettingsChanged
Definition Scalability.cpp:20
void SetQualityLevels(const FQualityLevels &QualityLevels, bool bForce)
Definition Scalability.cpp:912
void ProcessCommand(const TCHAR *Cmd, FOutputDevice &Ar)
Definition Scalability.cpp:789
void SaveState(const FString &IniName)
Definition Scalability.cpp:1212
EQualityLevelBehavior
Definition Scalability.h:16
Definition Scalability.h:28
int32 FoliageQuality
Definition Scalability.h:38
int32 TextureQuality
Definition Scalability.h:36
FQualityLevels(bool bSetDefaults=true)
Definition Scalability.h:48
ENGINE_API int32 GetMinQualityLevel() const
Definition Scalability.cpp:1099
ENGINE_API void SetViewDistanceQuality(int32 Value)
Definition Scalability.cpp:1117
ENGINE_API void SetEffectsQuality(int32 Value)
Definition Scalability.cpp:1152
ENGINE_API void SetAntiAliasingQuality(int32 Value)
Definition Scalability.cpp:1122
ENGINE_API int32 GetSingleQualityLevel() const
Definition Scalability.cpp:1083
TArray< float > GPUBenchmarkSteps
Definition Scalability.h:45
int32 AntiAliasingQuality
Definition Scalability.h:31
int32 LandscapeQuality
Definition Scalability.h:40
uint32 GetHash() const
Definition Scalability.h:80
int32 ShadingQuality
Definition Scalability.h:39
ENGINE_API void SetFoliageQuality(int32 Value)
Definition Scalability.cpp:1157
int32 EffectsQuality
Definition Scalability.h:37
ENGINE_API void SetTextureQuality(int32 Value)
Definition Scalability.cpp:1147
ENGINE_API void SetShadingQuality(int32 Value)
Definition Scalability.cpp:1162
float GPUBenchmarkResults
Definition Scalability.h:43
ENGINE_API void SetPostProcessQuality(int32 Value)
Definition Scalability.cpp:1142
ENGINE_API void SetBenchmarkFallback()
Definition Scalability.cpp:1033
bool operator!=(const FQualityLevels &Other) const
Definition Scalability.h:74
ENGINE_API void SetDefaults()
Definition Scalability.cpp:1038
int32 PostProcessQuality
Definition Scalability.h:35
ENGINE_API void SetReflectionQuality(int32 Value)
Definition Scalability.cpp:1137
TArray< float > CPUBenchmarkSteps
Definition Scalability.h:44
int32 ViewDistanceQuality
Definition Scalability.h:30
int32 GlobalIlluminationQuality
Definition Scalability.h:33
ENGINE_API void SetShadowQuality(int32 Value)
Definition Scalability.cpp:1127
ENGINE_API void SetFromSingleQualityLevel(int32 Value)
Definition Scalability.cpp:1045
int32 ShadowQuality
Definition Scalability.h:32
bool operator==(const FQualityLevels &Other) const
Definition Scalability.h:58
int32 ReflectionQuality
Definition Scalability.h:34
float ResolutionQuality
Definition Scalability.h:29
ENGINE_API void SetFromSingleQualityLevelRelativeToMax(int32 Value)
Definition Scalability.cpp:1061
ENGINE_API void SetLandscapeQuality(int32 Value)
Definition Scalability.cpp:1167
ENGINE_API void SetGlobalIlluminationQuality(int32 Value)
Definition Scalability.cpp:1132
float CPUBenchmarkResults
Definition Scalability.h:42
Definition Scalability.h:166
float ResolutionQuality
Definition Scalability.h:169
int32 Id
Definition Scalability.h:168
FString Name
Definition Scalability.h:167