UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LegacyScreenPercentageDriver.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "SceneView.h"
6
7#include "LegacyScreenPercentageDriver.generated.h"
8
13{
14public:
18
23
26
27private:
28 // View family to take care of.
29 const FSceneViewFamily& ViewFamily;
30
31 // ViewRect fraction to apply to all view of the view family.
32 const float GlobalResolutionFraction;
33
34 // ViewRect fraction to apply to all view of the view family.
35 const float GlobalResolutionFractionUpperBound;
36
37
38 // Implements ISceneViewFamilyScreenPercentage
39 ENGINE_API virtual DynamicRenderScaling::TMap<float> GetResolutionFractionsUpperBound() const override;
40 ENGINE_API virtual DynamicRenderScaling::TMap<float> GetResolutionFractions_RenderThread() const override;
41 ENGINE_API virtual ISceneViewFamilyScreenPercentage* Fork_GameThread(const class FSceneViewFamily& ForkedViewFamily) const override;
42};
43
44// Status of view being rendered to select the corresponding screen percentage setting
45UENUM()
47{
48 // For editor viewports not refreshing every frames.
49 NonRealtime UMETA(DisplayName = "Non-Realtime"),
50
51 // For desktop renderer
52 Desktop UMETA(DisplayName = "Desktop Rendered"),
53
54 // For mobile renderer
55 Mobile UMETA(DisplayName = "Mobile Rendered"),
56
57 // For VR rendering
58 VR UMETA(DisplayName = "VR Rendered"),
59
60 // For path tracer
61 PathTracer UMETA(DisplayName = "Path Traced"),
62};
63
64// Mode for the computation of the screen percentage.
65UENUM()
67{
68 // Directly controls the screen percentage manually
69 Manual UMETA(DisplayName="Manual"),
70
71 // Automatic control the screen percentage based on the display resolution
72 BasedOnDisplayResolution UMETA(DisplayName="Based on display resolution"),
73
74 // Based on DPI scale
75 BasedOnDPIScale UMETA(DisplayName="Based on operating system's DPI scale"),
76};
77
82{
84
85 UE_DEPRECATED(5.3, "Uses PullRunTimeRenderingSettings(EViewStatusForScreenPercentage) instead")
87
88 // User configurable settings
90 {
91 EScreenPercentageMode Mode = EScreenPercentageMode::Manual;
92
93 // r.ScreenPercentage when Mode = EMode::Manual.
94 float GlobalResolutionFraction = 1.0f;
95
96 // r.ScreenPercentage.{Min,Max}Resolution
97 float MinRenderingResolution = 0.0f;
98 float MaxRenderingResolution = 0.0f;
99
100 // r.ScreenPercentage.Auto.* Mode = EMode::BasedOnDisplayResolution.
101 float AutoPixelCountMultiplier = 1.0f;
102
103 // stereo HMDs cannot use percentage modes based on 2D monitor
104 bool bAllowDisplayBasedScreenPercentageMode = true;
105
107#if WITH_EDITOR
108 static ENGINE_API bool EditorOverridePIESettings();
109#else
110 static inline bool EditorOverridePIESettings()
111 {
112 return false;
113 }
114#endif
115
117 ENGINE_API void PullRunTimeRenderingSettings(EViewStatusForScreenPercentage ViewStatus);
118
120 ENGINE_API void PullEditorRenderingSettings(EViewStatusForScreenPercentage ViewStatus);
121
122 UE_DEPRECATED(5.3, "Uses PullRunTimeRenderingSettings(EViewStatusForScreenPercentage) instead")
123 ENGINE_API void PullRunTimeRenderingSettings();
124
125 UE_DEPRECATED(5.3, "Uses PullEditorRenderingSettings(EViewStatusForScreenPercentage) instead")
126 ENGINE_API void PullEditorRenderingSettings(bool bIsRealTime, bool bIsPathTraced);
127 };
128
130
131 // [Required] total number of pixel being display into viewport.
133
134 // [Required] secondary resolution fraction.
136
137 // [Required] DPI scale
138 float DPIScale = 1.0f;
139
140 // Fetches rendering information from the ViewFamily.
142
144};
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
EViewStatusForScreenPercentage
Definition LegacyScreenPercentageDriver.h:47
EScreenPercentageMode
Definition LegacyScreenPercentageDriver.h:67
#define UENUM(...)
Definition ObjectMacros.h:749
Definition DynamicRenderScaling.h:172
Definition LegacyScreenPercentageDriver.h:13
static ENGINE_API float GetCVarResolutionFraction()
Definition LegacyScreenPercentageDriver.cpp:177
Definition UnrealType.h:3087
Definition SceneView.h:2212
Definition SceneView.h:2164
Definition ShowFlags.h:56
Definition LegacyScreenPercentageDriver.h:90
static bool EditorOverridePIESettings()
Definition LegacyScreenPercentageDriver.h:110
Definition LegacyScreenPercentageDriver.h:82
float DPIScale
Definition LegacyScreenPercentageDriver.h:138
FUserSettings Settings
Definition LegacyScreenPercentageDriver.h:129
ENGINE_API float ResolveResolutionFraction() const
Definition LegacyScreenPercentageDriver.cpp:353
int32 TotalDisplayedPixelCount
Definition LegacyScreenPercentageDriver.h:132
float SecondaryViewFraction
Definition LegacyScreenPercentageDriver.h:135
ENGINE_API void PullViewFamilyRenderingSettings(const FSceneViewFamily &ViewFamily)
Definition LegacyScreenPercentageDriver.cpp:337