UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
Engine.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
9#include "UObject/Object.h"
10#include "Misc/Guid.h"
12#include "Engine/EngineTypes.h"
15#include "Engine/World.h"
16#include "Misc/FrameRate.h"
19#include "RHIDefinitions.h"
20#include "Templates/PimplPtr.h"
21#include "Templates/UniqueObj.h"
22#include "Containers/Ticker.h"
24#include "Misc/StatusLog.h"
25#include "Engine.generated.h"
26
27#define WITH_DYNAMIC_RESOLUTION (!UE_SERVER)
28
30class Error;
32class FCanvas;
37class FTypeContainer;
38class FViewport;
39class IEngineLoop;
47class SViewport;
48class UEditorEngine;
52class ULocalPlayer;
53class UNetDriver;
55class UActorFolder;
56
57#if ALLOW_DEBUG_FILES
59#endif
60
61// The kind of failure handling that GetWorldFromContextObject uses
63{
64 // Silently returns nullptr, the calling code is expected to handle this gracefully
66
67 // Raises a runtime error but still returns nullptr, the calling code is expected to handle this gracefully
69
70 // Asserts, the calling code is not expecting to handle a failure gracefully
71 Assert
72};
73
77UENUM()
92
93
97UENUM()
99{
100 None,
101 Paused,
102 Loading,
103 Saving,
107 MAX
108};
109
112{
113 // Dynamic resolution is not supported by this platform.
115
116 // Dynamic resolution is disabled by project setting cvar r.DynamicRes.OperationMode=0 or disabled by game user
117 // settings with r.DynamicRes.OperationMode=1.
118 Disabled,
119
120 // Dynamic resolution has been paused by game thread.
121 Paused,
122
123 // Dynamic resolution is currently enabled.
124 Enabled,
125
126 // Forced enabled at static resolution fraction for profiling purpose with r.DynamicRes.TestScreenPercentage.
128};
129
132{
133 // Status of dynamic resolution.
135
136 // Approximation of the resolution fraction being applied. This is only an approximation because
137 // of non (and unecessary) thread safety of this value between game thread, and render thread.
139
140 // Maximum resolution fraction set, always MaxResolutionFraction >= ResolutionFractionApproximation.
142};
143
144
146USTRUCT()
148{
150
151
152 UPROPERTY()
154
156 UPROPERTY()
157 FString Tag;
158
160 UPROPERTY()
161 TArray<FName> PackagesToLoad;
162
164 UPROPERTY()
165 TArray<TObjectPtr<class UObject>> LoadedObjects;
166
167
169 : FullyLoadType(0)
170 {
171 }
172
173};
174
175
177USTRUCT()
179{
181
182 UPROPERTY()
183 FName PackageName;
184
185 UPROPERTY()
186 uint32 bShouldBeLoaded:1;
187
188 UPROPERTY()
189 uint32 bShouldBeVisible:1;
190
191 UPROPERTY()
192 uint32 LODIndex;
193
194
200 {
202 LODIndex = INDEX_NONE;
203 }
204
205};
206
207
213USTRUCT()
215{
217
218
219 UPROPERTY()
220 FName DefName;
221
223 UPROPERTY()
224 FName DriverClassName;
225
227 UPROPERTY()
228 FName DriverClassNameFallback;
229
230 UPROPERTY()
231 int32 MaxChannelsOverride;
232
234 DefName(NAME_None),
235 DriverClassName(NAME_None),
236 DriverClassNameFallback(NAME_None),
237 MaxChannelsOverride(INDEX_NONE)
238 {
239 }
240};
241
246USTRUCT()
248{
250
251
255 UPROPERTY()
256 FName NetDriverDefinition;
257
262 UPROPERTY()
263 FName NetDriverName;
264
269 UPROPERTY()
270 FString NetDriverWildcardName;
271
275 UPROPERTY()
276 bool bCanUseIris = false;
277};
278
279
284USTRUCT()
286{
288
289
291 TObjectPtr<class UNetDriver> NetDriver;
292
294 FNetDriverDefinition* NetDriverDef;
295
297 NetDriver(nullptr),
298 NetDriverDef(nullptr)
299 {}
300
305
307};
308
309
332USTRUCT()
334{
336
337 /**************************************************************/
338
339 TEnumAsByte<EWorldType::Type> WorldType;
340
341 FSeamlessTravelHandler SeamlessTravelHandler;
342
343 FName ContextHandle;
344
346 FString TravelURL;
347
349 uint8 TravelType;
350
352 UPROPERTY()
353 struct FURL LastURL;
354
356 UPROPERTY()
357 struct FURL LastRemoteURL;
358
359 UPROPERTY()
361
363 UPROPERTY()
365
370 TArray<FName> LevelsToLoadForPendingMapChange;
371
373 UPROPERTY()
374 TArray<TObjectPtr<class ULevel>> LoadedLevelsForPendingMapChange;
375
377 FString PendingMapChangeFailureDescription;
378
380 uint32 bShouldCommitPendingMapChange:1;
381
383 UPROPERTY()
384 TArray<TObjectPtr<class UObjectReferencer>> ObjectReferencers;
385
386 UPROPERTY()
387 TArray<struct FLevelStreamingStatus> PendingLevelStreamingStatusUpdates;
388
389 UPROPERTY()
390 TObjectPtr<class UGameViewportClient> GameViewport;
391
392 UPROPERTY()
393 TObjectPtr<class UGameInstance> OwningGameInstance;
394
397 TArray<FNamedNetDriver> ActiveNetDrivers;
398
400 int32 PIEInstance;
401
403 FString PIEPrefix;
404
406 ERHIFeatureLevel::Type PIEWorldFeatureLevel;
407
409 bool RunAsDedicated;
410
412 bool bWaitingOnOnlineSubsystem;
413
415 bool bIsPrimaryPIEInstance;
416
418 uint32 AudioDeviceID;
419
421 FString CustomDescription;
422
423 // If > 0, tick this world at a fixed rate in PIE
424 float PIEFixedTickSeconds = 0.f;
425 float PIEAccumulatedTickSeconds = 0.f;
426
428 TSet<FObjectKey> GarbageObjectsToVerify;
429
430 /**************************************************************/
431
433 TArray<TObjectPtr<UWorld>*> ExternalReferences;
434
436 void AddRef(UWorld*& WorldPtr)
437 {
438 AddRef(ObjectPtrWrap(WorldPtr));
439 }
440
442 {
443 WorldPtr = ThisCurrentWorld;
444 ExternalReferences.AddUnique(&WorldPtr);
445 }
446
448 void RemoveRef(UWorld*& WorldPtr)
449 {
450 ExternalReferences.Remove(&ObjectPtrWrap(WorldPtr));
451 WorldPtr = nullptr;
452 }
453
455 ENGINE_API void SetCurrentWorld(UWorld *World);
456
458 void AddReferencedObjects(FReferenceCollector& Collector, const UObject* ReferencingObject);
459
460 inline UWorld* World() const
461 {
462 return ThisCurrentWorld;
463 }
464
466 : WorldType(EWorldType::None)
467 , ContextHandle(NAME_None)
468 , TravelURL()
469 , TravelType(0)
470 , PendingNetGame(nullptr)
471 , bShouldCommitPendingMapChange(0)
472 , GameViewport(nullptr)
473 , OwningGameInstance(nullptr)
474 , PIEInstance(INDEX_NONE)
475 , PIEWorldFeatureLevel(ERHIFeatureLevel::Num)
476 , RunAsDedicated(false)
477 , bWaitingOnOnlineSubsystem(false)
478 , bIsPrimaryPIEInstance(false)
479 , AudioDeviceID(INDEX_NONE)
480 , ThisCurrentWorld(nullptr)
481 { }
482
483private:
484
485 TObjectPtr<UWorld> ThisCurrentWorld;
486};
487
488
489USTRUCT()
491{
493
496
499
500
502 : In(0)
503 , Out(ForceInit)
504 {
505 }
506
507};
508
509
510USTRUCT()
512{
514
516 FString StatName;
517
520
522 uint32 DisableBlend:1;
523
524
526 : DisableBlend(false)
527 {
528 }
529
530};
531
532
534USTRUCT()
536{
538
539
540 UPROPERTY()
541 FVector Location;
542
544 UPROPERTY()
546
548 UPROPERTY()
549 FString Comment;
550
551
553 : Location(ForceInit)
555 {
556 }
557
558};
559
560
563USTRUCT()
565{
567
568
571
574 FString ScreenMessage;
575
578 FColor DisplayColor;
579
582 float TimeToDisplay;
583
586 float CurrentTimeDisplayed;
587
590 FVector2D TextScale;
591
593 : Key(0)
594 , DisplayColor(ForceInit)
595 , TimeToDisplay(0)
596 , CurrentTimeDisplayed(0)
597 , TextScale(ForceInit)
598 {
599 }
600};
601
602
603USTRUCT()
605{
607
608 UPROPERTY()
609 FName OldGameName;
610
611 UPROPERTY()
612 FName NewGameName;
613};
614
615
616USTRUCT()
618{
620
621 UPROPERTY()
623
624 UPROPERTY()
625 FName OldClassName;
626
627 UPROPERTY()
628 FName NewClassName;
629
630 UPROPERTY()
631 FName OldSubobjName;
632
633 UPROPERTY()
634 FName NewSubobjName;
635
636 UPROPERTY()
637 FName NewClassClass;
638
639 UPROPERTY()
640 FName NewClassPackage;
641
642 UPROPERTY()
643 bool InstanceOnly = false;
644};
645
646
647USTRUCT()
649{
651
652 UPROPERTY()
653 FName OldStructName;
654
655 UPROPERTY()
656 FName NewStructName;
657};
658
659
660USTRUCT()
662{
664
665 UPROPERTY()
666 FString OldPluginName;
667
668 UPROPERTY()
669 FString NewPluginName;
670};
671
674
675
677
680
682
684
689
692
697{
698 None,
700 Full
701};
702
707UCLASS(abstract, config=Engine, defaultconfig, transient, MinimalAPI)
710 , public FExec
711{
713
714private:
715 UPROPERTY()
717
718public:
720 UPROPERTY(globalconfig, EditAnywhere, Category=Fonts, meta=(AllowedClasses="/Script/Engine.Font", DisplayName="Tiny Font", ConfigRestartRequired=true))
721 FSoftObjectPath TinyFontName;
722
723private:
724 UPROPERTY()
725 TObjectPtr<class UFont> SmallFont;
726
727public:
729 UPROPERTY(globalconfig, EditAnywhere, Category=Fonts, meta=(AllowedClasses="/Script/Engine.Font", DisplayName="Small Font", ConfigRestartRequired=true))
730 FSoftObjectPath SmallFontName;
731
732private:
733 UPROPERTY()
734 TObjectPtr<class UFont> MediumFont;
735
736public:
738 UPROPERTY(globalconfig, EditAnywhere, Category=Fonts, meta=(AllowedClasses="/Script/Engine.Font", DisplayName="Medium Font", ConfigRestartRequired=true))
739 FSoftObjectPath MediumFontName;
740
741private:
742 UPROPERTY()
743 TObjectPtr<class UFont> LargeFont;
744
745public:
747 UPROPERTY(globalconfig, EditAnywhere, Category=Fonts, meta=(AllowedClasses="/Script/Engine.Font", DisplayName="Large Font", ConfigRestartRequired=true))
748 FSoftObjectPath LargeFontName;
749
750private:
751 UPROPERTY()
752 TObjectPtr<class UFont> SubtitleFont;
753
754public:
756 UPROPERTY(globalconfig, EditAnywhere, Category=Fonts, meta=(AllowedClasses="/Script/Engine.Font", DisplayName="Subtitle Font", ConfigRestartRequired=true), AdvancedDisplay)
757 FSoftObjectPath SubtitleFontName;
758
759private:
760 UPROPERTY()
761 TObjectPtr<class UFont> MonospaceFont;
762
763public:
765 UPROPERTY(globalconfig, EditAnywhere, Category=Fonts, meta=(AllowedClasses="/Script/Engine.Font", DisplayName="Monospace Font", ConfigRestartRequired=true), AdvancedDisplay)
766 FSoftObjectPath MonospaceFontName;
767
768private:
769 UPROPERTY()
770 TArray<TObjectPtr<class UFont>> AdditionalFonts;
771
772public:
774 UPROPERTY(globalconfig, EditAnywhere, Category=Fonts, AdvancedDisplay)
775 TArray<FString> AdditionalFontNames;
776
777 UPROPERTY()
778 TSubclassOf<class UConsole> ConsoleClass;
779
781 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/Engine.Console", DisplayName="Console Class", ConfigRestartRequired=true))
782 FSoftClassPath ConsoleClassName;
783
784 UPROPERTY()
785 TSubclassOf<class UGameViewportClient> GameViewportClientClass;
786
788 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/Engine.GameViewportClient", DisplayName="Game Viewport Client Class", ConfigRestartRequired=true))
789 FSoftClassPath GameViewportClientClassName;
790
791 UPROPERTY()
792 TSubclassOf<class ULocalPlayer> LocalPlayerClass;
793
795 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/Engine.LocalPlayer", DisplayName="Local Player Class", ConfigRestartRequired=true))
796 FSoftClassPath LocalPlayerClassName;
797
798 UPROPERTY()
799 TSubclassOf<class AWorldSettings> WorldSettingsClass;
800
802 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/Engine.WorldSettings", DisplayName="World Settings Class", ConfigRestartRequired=true))
803 FSoftClassPath WorldSettingsClassName;
804
805 UPROPERTY(globalconfig, noclear, meta=(MetaClass="/Script/NavigationSystem.NavigationSystem", DisplayName="Navigation System Class"))
806 FSoftClassPath NavigationSystemClassName;
807
809 UPROPERTY()
810 TSubclassOf<class UNavigationSystemBase> NavigationSystemClass;
811
813 UPROPERTY(globalconfig, noclear, meta = (MetaClass = "/Script/NavigationSystem.NavigationSystem", DisplayName = "Navigation System Config Class"))
814 FSoftClassPath NavigationSystemConfigClassName;
815
816 UPROPERTY()
817 TSubclassOf<class UNavigationSystemConfig> NavigationSystemConfigClass;
818
820 UPROPERTY(globalconfig, noclear, meta=(MetaClass="/Script/Engine.AvoidanceManager", DisplayName="Avoidance Manager Class"))
821 FSoftClassPath AvoidanceManagerClassName;
822
823 UPROPERTY()
824 TSubclassOf<class UAvoidanceManager> AvoidanceManagerClass;
825
827 UPROPERTY(globalconfig, noclear, meta = (MetaClass = "/Script/AIModule.AIController", DisplayName = "Default AIController class for all Pawns"))
828 FSoftClassPath AIControllerClassName;
829
830 UPROPERTY()
831 TSubclassOf<class UPhysicsCollisionHandler> PhysicsCollisionHandlerClass;
832
834 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/Engine.PhysicsCollisionHandler", DisplayName="Physics Collision Handler Class", ConfigRestartRequired=true), AdvancedDisplay)
835 FSoftClassPath PhysicsCollisionHandlerClassName;
836
838 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/Engine.GameUserSettings", DisplayName="Game User Settings Class", ConfigRestartRequired=true), AdvancedDisplay)
839 FSoftClassPath GameUserSettingsClassName;
840
841 UPROPERTY()
842 TSubclassOf<class UGameUserSettings> GameUserSettingsClass;
843
845 UPROPERTY()
847
848 UPROPERTY()
849 TSubclassOf<class ALevelScriptActor> LevelScriptActorClass;
850
852 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/Engine.LevelScriptActor", DisplayName="Level Script Actor Class", ConfigRestartRequired=true))
853 FSoftClassPath LevelScriptActorClassName;
854
856 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/CoreUObject.Object", DisplayName="Default Blueprint Base Class", AllowAbstract, BlueprintBaseOnly), AdvancedDisplay)
857 FSoftClassPath DefaultBlueprintBaseClassName;
858
860 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/CoreUObject.Object", DisplayName="Game Singleton Class", ConfigRestartRequired=true), AdvancedDisplay)
861 FSoftClassPath GameSingletonClassName;
862
864 UPROPERTY()
865 TObjectPtr<UObject> GameSingleton;
866
868 UPROPERTY(globalconfig, noclear, EditAnywhere, Category=DefaultClasses, meta=(MetaClass="/Script/CoreUObject.Object", DisplayName="Asset Manager Class", ConfigRestartRequired=true), AdvancedDisplay)
869 FSoftClassPath AssetManagerClassName;
870
872 UPROPERTY()
873 TObjectPtr<class UAssetManager> AssetManager;
874
876 UPROPERTY()
877 TObjectPtr<class UTexture2D> DefaultTexture;
878
881 FSoftObjectPath DefaultTextureName;
882
884 UPROPERTY()
885 TObjectPtr<class UTexture> DefaultDiffuseTexture;
886
889 FSoftObjectPath DefaultDiffuseTextureName;
890
892 UPROPERTY()
893 TObjectPtr<class UTexture2D> DefaultBSPVertexTexture;
894
897 FSoftObjectPath DefaultBSPVertexTextureName;
898
900 UPROPERTY()
901 TObjectPtr<class UTexture2D> HighFrequencyNoiseTexture;
902
905 FSoftObjectPath HighFrequencyNoiseTextureName;
906
908 UPROPERTY()
909 TObjectPtr<class UTexture2D> DefaultBokehTexture;
910
913 FSoftObjectPath DefaultBokehTextureName;
914
916 UPROPERTY()
917 TObjectPtr<class UTexture2D> DefaultBloomKernelTexture;
918
921 FSoftObjectPath DefaultBloomKernelTextureName;
922
924 UPROPERTY()
925 TObjectPtr<class UTexture2D> DefaultFilmGrainTexture;
926
929 FSoftObjectPath DefaultFilmGrainTextureName;
930
932 UPROPERTY()
933 TObjectPtr<class UMaterial> WireframeMaterial;
934
937 FString WireframeMaterialName;
938
939#if WITH_EDITORONLY_DATA
941 UPROPERTY()
943
947#endif
948
950 UPROPERTY()
951 TObjectPtr<class UMaterial> DebugMeshMaterial;
952
955 FSoftObjectPath DebugMeshMaterialName;
956
958 UPROPERTY()
959 TObjectPtr<class UMaterial> NaniteHiddenSectionMaterial;
960
963 FString NaniteHiddenSectionMaterialName;
964
966 UPROPERTY()
967 TObjectPtr<class UMaterial> EmissiveMeshMaterial;
968
971 FSoftObjectPath EmissiveMeshMaterialName;
972
974 UPROPERTY()
975 TObjectPtr<class UMaterial> LevelColorationLitMaterial;
976
979 FString LevelColorationLitMaterialName;
980
982 UPROPERTY()
983 TObjectPtr<class UMaterial> LevelColorationUnlitMaterial;
984
987 FString LevelColorationUnlitMaterialName;
988
990 UPROPERTY()
991 TObjectPtr<class UMaterial> LightingTexelDensityMaterial;
992
995 FString LightingTexelDensityName;
996
998 UPROPERTY()
999 TObjectPtr<class UMaterial> ShadedLevelColorationLitMaterial;
1000
1003 FString ShadedLevelColorationLitMaterialName;
1004
1006 UPROPERTY()
1007 TObjectPtr<class UMaterial> ShadedLevelColorationUnlitMaterial;
1008
1011 FString ShadedLevelColorationUnlitMaterialName;
1012
1014 UPROPERTY()
1015 TObjectPtr<class UMaterial> RemoveSurfaceMaterial;
1016
1019 FSoftObjectPath RemoveSurfaceMaterialName;
1020
1022 UPROPERTY()
1024
1027 FString VertexColorMaterialName;
1028
1030 UPROPERTY()
1031 TObjectPtr<class UMaterial> VertexColorViewModeMaterial_ColorOnly;
1032
1035 FString VertexColorViewModeMaterialName_ColorOnly;
1036
1038 UPROPERTY()
1039 TObjectPtr<class UMaterial> VertexColorViewModeMaterial_AlphaAsColor;
1040
1043 FString VertexColorViewModeMaterialName_AlphaAsColor;
1044
1046 UPROPERTY()
1047 TObjectPtr<class UMaterial> VertexColorViewModeMaterial_RedOnly;
1048
1051 FString VertexColorViewModeMaterialName_RedOnly;
1052
1054 UPROPERTY()
1055 TObjectPtr<class UMaterial> VertexColorViewModeMaterial_GreenOnly;
1056
1059 FString VertexColorViewModeMaterialName_GreenOnly;
1060
1062 UPROPERTY()
1063 TObjectPtr<class UMaterial> VertexColorViewModeMaterial_BlueOnly;
1064
1067 FString VertexColorViewModeMaterialName_BlueOnly;
1068
1070 UPROPERTY()
1071 TObjectPtr<class UMaterial> TextureColorViewModeMaterial;
1072
1075 FString TextureColorViewModeMaterialName;
1076
1079 FSoftObjectPath DefaultZenStreamingTextureName;
1080
1081#if WITH_EDITORONLY_DATA
1083 UPROPERTY()
1085
1089
1091 UPROPERTY()
1093 UPROPERTY()
1095 UPROPERTY()
1097 UPROPERTY()
1099 UPROPERTY()
1101 UPROPERTY()
1103 UPROPERTY()
1105 UPROPERTY()
1107
1111
1115
1119
1123
1125 UPROPERTY()
1127
1131
1133 UPROPERTY()
1135
1139
1143
1147
1149 UPROPERTY()
1151 UPROPERTY()
1153 UPROPERTY()
1156 UPROPERTY()
1158
1162
1163 UPROPERTY()
1165
1169
1170 UPROPERTY()
1172
1173 UPROPERTY()
1175
1179
1180 UPROPERTY()
1182
1186
1187 UPROPERTY()
1189
1193
1194#endif
1195
1198 FSoftObjectPath DebugEditorMaterialName;
1199
1201 UPROPERTY()
1202 TObjectPtr<class UMaterial> ConstraintLimitMaterial;
1203
1204 UPROPERTY()
1205 TObjectPtr<class UMaterialInstanceDynamic> ConstraintLimitMaterialX;
1206
1207 UPROPERTY()
1208 TObjectPtr<class UMaterialInstanceDynamic> ConstraintLimitMaterialXAxis;
1209
1210 UPROPERTY()
1211 TObjectPtr<class UMaterialInstanceDynamic> ConstraintLimitMaterialY;
1212 UPROPERTY()
1213 TObjectPtr<class UMaterialInstanceDynamic> ConstraintLimitMaterialYAxis;
1214
1215 UPROPERTY()
1216 TObjectPtr<class UMaterialInstanceDynamic> ConstraintLimitMaterialZ;
1217 UPROPERTY()
1218 TObjectPtr<class UMaterialInstanceDynamic> ConstraintLimitMaterialZAxis;
1219
1220 UPROPERTY()
1221 TObjectPtr<class UMaterialInstanceDynamic> ConstraintLimitMaterialPrismatic;
1222
1224 UPROPERTY()
1225 TObjectPtr<class UMaterial> InvalidLightmapSettingsMaterial;
1226
1229 FSoftObjectPath InvalidLightmapSettingsMaterialName;
1230
1232 UPROPERTY()
1233 TObjectPtr<class UMaterial> PreviewShadowsIndicatorMaterial;
1234
1236 UPROPERTY(globalconfig, EditAnywhere, Category=DefaultMaterials, meta=(AllowedClasses="/Script/Engine.Material", DisplayName="Preview Shadows Indicator Material"))
1237 FSoftObjectPath PreviewShadowsIndicatorMaterialName;
1238
1240 UPROPERTY()
1241 TObjectPtr<class UMaterial> ArrowMaterial;
1242
1244 UPROPERTY()
1245 TObjectPtr<class UMaterialInstanceDynamic> ArrowMaterialYellow;
1246
1249 FSoftObjectPath ArrowMaterialName;
1250
1253 FLinearColor LightingOnlyBrightness;
1254
1257 TArray<FLinearColor> ShaderComplexityColors;
1258
1261 TArray<FLinearColor> QuadComplexityColors;
1262
1265 TArray<FLinearColor> LightComplexityColors;
1266
1269 TArray<FLinearColor> StationaryLightOverlapColors;
1270
1273 TArray<FLinearColor> LODColorationColors;
1274
1277 TArray<FLinearColor> HLODColorationColors;
1278
1281 TArray<FLinearColor> StreamingAccuracyColors;
1282
1285 FLinearColor GPUSkinCacheVisualizationExcludedColor;
1286
1289 FLinearColor GPUSkinCacheVisualizationIncludedColor;
1290
1293 FLinearColor GPUSkinCacheVisualizationRecomputeTangentsColor;
1294
1297 float GPUSkinCacheVisualizationLowMemoryThresholdInMB;
1299 float GPUSkinCacheVisualizationHighMemoryThresholdInMB;
1300
1303 FLinearColor GPUSkinCacheVisualizationLowMemoryColor;
1305 FLinearColor GPUSkinCacheVisualizationMidMemoryColor;
1307 FLinearColor GPUSkinCacheVisualizationHighMemoryColor;
1308
1311 TArray<FLinearColor> GPUSkinCacheVisualizationRayTracingLODOffsetColors;
1312
1318 float MaxPixelShaderAdditiveComplexityCount;
1319
1321 float MaxES3PixelShaderAdditiveComplexityCount;
1322
1325 float MinLightMapDensity;
1326
1329 float IdealLightMapDensity;
1330
1333 float MaxLightMapDensity;
1334
1337 uint32 bRenderLightMapDensityGrayscale:1;
1338
1341 float RenderLightMapDensityGrayscaleScale;
1342
1345 float RenderLightMapDensityColorScale;
1346
1349 FLinearColor LightMapDensityVertexMappedColor;
1350
1353 FLinearColor LightMapDensitySelectedColor;
1354
1357 TArray<struct FStatColorMapping> StatColorMappings;
1358
1359#if WITH_EDITORONLY_DATA
1361 UPROPERTY()
1363
1367#endif
1368
1370 UPROPERTY()
1371 TObjectPtr<class UPhysicalMaterial> DefaultPhysMaterial;
1372
1375 FSoftObjectPath DefaultPhysMaterialName;
1376
1378 UPROPERTY()
1379 TObjectPtr<class UPhysicalMaterial> DefaultDestructiblePhysMaterial;
1380
1382 UPROPERTY(globalconfig, EditAnywhere, Category = DefaultMaterials, meta = (AllowedClasses = "/Script/PhysicsCore.PhysicalMaterial", DisplayName = "Destructible Physics Material"))
1383 FSoftObjectPath DefaultDestructiblePhysMaterialName;
1384
1386 UPROPERTY(config)
1387 TArray<FGameNameRedirect> ActiveGameNameRedirects;
1388
1389 UPROPERTY(config)
1390 TArray<FClassRedirect> ActiveClassRedirects;
1391
1392 UPROPERTY(config)
1393 TArray<FPluginRedirect> ActivePluginRedirects;
1394
1395 UPROPERTY(config)
1396 TArray<FStructRedirect> ActiveStructRedirects;
1397
1399 UPROPERTY()
1400 TObjectPtr<class UTexture2D> PreIntegratedSkinBRDFTexture;
1401
1404 FSoftObjectPath PreIntegratedSkinBRDFTextureName;
1405
1407 UPROPERTY()
1408 TObjectPtr<class UTexture2D> BlueNoiseScalarTexture;
1409
1411 UPROPERTY()
1412 TObjectPtr<class UTexture2D> BlueNoiseVec2Texture;
1413
1416 FSoftObjectPath BlueNoiseScalarTextureName;
1417
1420 FSoftObjectPath BlueNoiseScalarMobileTextureName;
1421
1424 FSoftObjectPath BlueNoiseVec2TextureName;
1425
1427 UPROPERTY()
1428 TObjectPtr<class UTexture2D> GGXLTCAmpTexture;
1431 FSoftObjectPath GGXLTCAmpTextureName;
1432
1434 UPROPERTY()
1435 TObjectPtr<class UTexture2D> GGXLTCMatTexture;
1438 FSoftObjectPath GGXLTCMatTextureName;
1439
1441 UPROPERTY()
1442 TObjectPtr<class UTexture2D> SheenLTCTexture;
1445 FSoftObjectPath SheenLTCTextureName;
1446
1448 UPROPERTY()
1449 TObjectPtr<class UTexture2D> GGXReflectionEnergyTexture;
1452 FSoftObjectPath GGXReflectionEnergyTextureName;
1453
1455 UPROPERTY()
1456 TObjectPtr<class UTexture2D> GGXTransmissionEnergyTexture;
1459 FSoftObjectPath GGXTransmissionEnergyTextureName;
1460
1462 UPROPERTY()
1463 TObjectPtr<class UTexture2D> SheenEnergyTexture;
1466 FSoftObjectPath SheenLegacyEnergyTextureName;
1469 FSoftObjectPath SheenEnergyTextureName;
1470
1472 UPROPERTY()
1473 TObjectPtr<class UTexture2D> DiffuseEnergyTexture;
1476 FSoftObjectPath DiffuseEnergyTextureName;
1477
1479 UPROPERTY()
1480 TObjectPtr<class UTexture2DArray> GlintTexture;
1482 UPROPERTY()
1483 TObjectPtr<class UTexture2DArray> GlintTexture2;
1484
1487 FSoftObjectPath GlintTextureName;
1488
1491 FSoftObjectPath GlintTexture2Name;
1492
1494 UPROPERTY()
1495 TObjectPtr<class UVolumeTexture> SimpleVolumeTexture;
1496
1499 FSoftObjectPath SimpleVolumeTextureName;
1500
1502 UPROPERTY()
1503 TObjectPtr<class UVolumeTexture> SimpleVolumeEnvTexture;
1504
1507 FSoftObjectPath SimpleVolumeEnvTextureName;
1508
1510 UPROPERTY()
1511 TObjectPtr<class UTexture2D> MiniFontTexture;
1512
1515 FSoftObjectPath MiniFontTextureName;
1516
1518 UPROPERTY()
1519 TObjectPtr<class UTexture> WeightMapPlaceholderTexture;
1520
1521 UPROPERTY()
1522 TObjectPtr<class UTexture> WeightMapArrayPlaceholderTexture;
1523
1526 FSoftObjectPath WeightMapPlaceholderTextureName;
1527
1529 FSoftObjectPath WeightMapArrayPlaceholderTextureName;
1530
1532 UPROPERTY()
1533 TObjectPtr<class UTexture2D> LightMapDensityTexture;
1534
1537 FSoftObjectPath LightMapDensityTextureName;
1538
1540 UPROPERTY()
1541 TObjectPtr<class UTexture2D> SMAAAreaTexture;
1542
1545 FSoftObjectPath SMAAAreaTextureName;
1546
1548 UPROPERTY()
1549 TObjectPtr<class UTexture2D> SMAASearchTexture;
1550
1553 FSoftObjectPath SMAASearchTextureName;
1554
1555 // Variables.
1556
1558 class IEngineLoop* EngineLoop;
1559
1561 UPROPERTY()
1562 TObjectPtr<class UGameViewportClient> GameViewport;
1563
1565 UPROPERTY()
1566 TArray<FString> DeferredCommands;
1567
1569 UPROPERTY(EditAnywhere, config, Category=Settings)
1570 float NearClipPlane;
1571
1573 UPROPERTY(EditAnywhere, config, Category=Subtitles)
1574 uint32 bSubtitlesEnabled:1;
1575
1577 UPROPERTY(EditAnywhere, config, Category=Subtitles)
1578 uint32 bSubtitlesForcedOff:1;
1579
1581 UPROPERTY(EditAnywhere, config, Category=Blueprints)
1582 int32 MaximumLoopIterationCount;
1583
1584 // Controls whether Blueprint subclasses of actors or components can tick by default.
1585 //
1586 // Blueprints that derive from native C++ classes that have bCanEverTick=true will always be able to tick
1587 // Blueprints that derive from exactly AActor or UActorComponent will always be able to tick
1588 // Otherwise, they can tick as long as the parent doesn't have meta=(ChildCannotTick) and either bCanBlueprintsTickByDefault is true or the parent has meta=(ChildCanTick)
1589 UPROPERTY(EditAnywhere, config, Category=Blueprints)
1590 uint32 bCanBlueprintsTickByDefault:1;
1591
1593 UPROPERTY(EditAnywhere, config, Category="Anim Blueprints")
1594 uint32 bOptimizeAnimBlueprintMemberVariableAccess:1;
1595
1597 UPROPERTY(EditAnywhere, config, Category="Anim Blueprints")
1598 uint32 bAllowMultiThreadedAnimationUpdate:1;
1599
1601 UPROPERTY(config)
1602 uint32 bEnableEditorPSysRealtimeLOD:1;
1603
1605 uint32 bForceDisableFrameRateSmoothing : 1;
1606
1608 UPROPERTY(config, EditAnywhere, Category=Framerate, meta=(EditCondition="!bUseFixedFrameRate"))
1609 uint32 bSmoothFrameRate:1;
1610
1612 UPROPERTY(config, EditAnywhere, Category=Framerate)
1613 uint32 bUseFixedFrameRate : 1;
1614
1616 UPROPERTY(config, EditAnywhere, Category=Framerate, meta=(EditCondition="bUseFixedFrameRate", ClampMin = "15.0"))
1617 float FixedFrameRate;
1618
1620 UPROPERTY(config, EditAnywhere, Category=Framerate, meta=(UIMin=0, UIMax=200, EditCondition="!bUseFixedFrameRate"))
1621 FFloatRange SmoothedFrameRateRange;
1622
1623private:
1626 TObjectPtr<UEngineCustomTimeStep> CustomTimeStep;
1627
1629 FSimpleMulticastDelegate CustomTimeStepChangedEvent;
1630
1632 bool bIsCurrentCustomTimeStepInitialized;
1633
1634public:
1640 UPROPERTY(AdvancedDisplay, config, EditAnywhere, Category=Framerate, meta=(MetaClass="/Script/Engine.EngineCustomTimeStep", DisplayName="Custom TimeStep"))
1641 FSoftClassPath CustomTimeStepClassName;
1642
1643private:
1646 TObjectPtr<UTimecodeProvider> TimecodeProvider;
1647
1649 FSimpleMulticastDelegate TimecodeProviderChangedEvent;
1650
1652 bool bIsCurrentTimecodeProviderInitialized;
1653
1654public:
1656 UPROPERTY(config, EditAnywhere, Category=Timecode, meta=(MetaClass="/Script/Engine.TimecodeProvider", DisplayName="Timecode Provider"))
1657 FSoftClassPath TimecodeProviderClassName;
1658
1665 UPROPERTY(config, EditAnywhere, Category=Timecode)
1666 bool bGenerateDefaultTimecode;
1667
1669 UPROPERTY(config, EditAnywhere, Category=Timecode, meta=(EditCondition="bGenerateDefaultTimecode"))
1670 FFrameRate GenerateDefaultTimecodeFrameRate;
1671
1673 UPROPERTY(AdvancedDisplay, config, EditAnywhere, Category=Timecode, meta=(EditCondition="bGenerateDefaultTimecode"))
1674 float GenerateDefaultTimecodeFrameDelay;
1675
1676public:
1682 UPROPERTY(config)
1683 uint32 bCheckForMultiplePawnsSpawnedInAFrame:1;
1684
1686 UPROPERTY(config)
1687 int32 NumPawnsAllowedToBeSpawnedInAFrame;
1688
1693 uint32 bShouldGenerateLowQualityLightmaps_DEPRECATED :1;
1694
1695 // Various Colors used for editor and debug rendering
1696
1697 UPROPERTY()
1698 FColor C_WorldBox;
1699
1700 UPROPERTY()
1701 FColor C_BrushWire;
1702
1703 UPROPERTY()
1704 FColor C_AddWire;
1705
1706 UPROPERTY()
1707 FColor C_SubtractWire;
1708
1709 UPROPERTY()
1710 FColor C_SemiSolidWire;
1711
1712 UPROPERTY()
1713 FColor C_NonSolidWire;
1714
1715 UPROPERTY()
1716 FColor C_WireBackground;
1717
1718 UPROPERTY()
1719 FColor C_ScaleBoxHi;
1720
1721 UPROPERTY()
1722 FColor C_VolumeCollision;
1723
1724 UPROPERTY()
1725 FColor C_BSPCollision;
1726
1727 UPROPERTY()
1728 FColor C_OrthoBackground;
1729
1730 UPROPERTY()
1731 FColor C_Volume;
1732
1733 UPROPERTY()
1734 FColor C_BrushShape;
1735
1737 UPROPERTY(config, EditAnywhere, Category = Screenshots)
1738 FDirectoryPath GameScreenshotSaveDirectory;
1739
1740 UPROPERTY(config, EditAnywhere, Category = PerQualityLevelProperty, AdvancedDisplay)
1741 bool UseStaticMeshMinLODPerQualityLevels;
1742
1743 UPROPERTY(config, EditAnywhere, Category = PerQualityLevelProperty, AdvancedDisplay)
1744 bool UseSkeletalMeshMinLODPerQualityLevels;
1745
1746 UPROPERTY(config, EditAnywhere, Category = PerQualityLevelProperty, AdvancedDisplay)
1747 bool UseClothAssetMinLODPerQualityLevels;
1748
1749 UPROPERTY(config, EditAnywhere, Category = PerQualityLevelProperty, AdvancedDisplay)
1750 bool UseGrassVarityPerQualityLevels;
1751
1753 UPROPERTY()
1754 ETransitionType TransitionType;
1755
1757 UPROPERTY()
1758 FString TransitionDescription;
1759
1761 UPROPERTY()
1762 FString TransitionGameMode;
1763
1765 UPROPERTY(config)
1766 uint32 bAllowMatureLanguage:1;
1767
1769 UPROPERTY(config)
1770 float CameraRotationThreshold;
1771
1773 UPROPERTY(config)
1774 float CameraTranslationThreshold;
1775
1777 UPROPERTY(config)
1778 float PrimitiveProbablyVisibleTime;
1779
1781 UPROPERTY(config)
1782 float MaxOcclusionPixelsFraction;
1783
1785 UPROPERTY(config)
1786 uint32 bPauseOnLossOfFocus:1;
1787
1792 UPROPERTY(config)
1793 int32 MaxParticleResize;
1794
1796 UPROPERTY(config)
1797 int32 MaxParticleResizeWarn;
1798
1801 TArray<struct FDropNoteInfo> PendingDroppedNotes;
1802
1805 float NetClientTicksPerSecond;
1806
1808 UPROPERTY(config)
1809 float DisplayGamma;
1810
1812 UPROPERTY(config, EditAnywhere, Category=Framerate, meta=(UIMin=0, ClampMin=0, EditCondition="!bUseFixedFrameRate"))
1813 float MinDesiredFrameRate;
1814
1815private:
1818 FLinearColor DefaultSelectedMaterialColor;
1819
1822 FLinearColor SelectedMaterialColor;
1823
1826 FLinearColor SelectionOutlineColor;
1827
1830 FLinearColor SubduedSelectionOutlineColor;
1831
1834 FLinearColor SelectedMaterialColorOverride;
1835
1838 bool bIsOverridingSelectedColor;
1839public:
1840
1843 uint32 bEnableOnScreenDebugMessages:1;
1844
1847 uint32 bEnableOnScreenDebugMessagesDisplay:1;
1848
1851 uint32 bSuppressMapWarnings:1;
1852
1855 uint32 bDisableAILogging:1;
1856
1859 uint32 bEnableVisualLogRecordingOnStart;
1860
1861private:
1862
1865 int32 ScreenSaverInhibitorSemaphore;
1866
1867public:
1868
1871 uint32 bLockReadOnlyLevels:1;
1872
1875 FString ParticleEventManagerClassPath;
1876
1879 float SelectionHighlightIntensity;
1880
1883 float BSPSelectionHighlightIntensity;
1884
1887 float SelectionHighlightIntensityBillboards;
1888
1890 ENGINE_API void RegisterBeginStreamingPauseRenderingDelegate( FBeginStreamingPauseDelegate* InDelegate );
1891 FBeginStreamingPauseDelegate* BeginStreamingPauseDelegate;
1892
1894 ENGINE_API void RegisterEndStreamingPauseRenderingDelegate( FEndStreamingPauseDelegate* InDelegate );
1895 FEndStreamingPauseDelegate* EndStreamingPauseDelegate;
1896
1897private:
1899 FPreRenderDelegate PreRenderDelegate;
1900 FPreRenderDelegateEx PreRenderDelegateEx;
1902 FPostRenderDelegate PostRenderDelegate;
1903 FPostRenderDelegateEx PostRenderDelegateEx;
1904
1905public:
1906 UE_DEPRECATED(5.0, "Please use GetPreRenderDelegateEx().")
1907 FPreRenderDelegate& GetPreRenderDelegate() { return PreRenderDelegate; }
1908 FPreRenderDelegateEx& GetPreRenderDelegateEx() { return PreRenderDelegateEx; }
1909 UE_DEPRECATED(5.0, "Please use GetPostRenderDelegateEx().")
1910 FPostRenderDelegate& GetPostRenderDelegate() { return PostRenderDelegate; }
1911 FPostRenderDelegateEx& GetPostRenderDelegateEx() { return PostRenderDelegateEx; }
1912
1921
1931
1937
1945
1946 // for IsInitialized()
1948
1949private:
1950
1952 uint64 LastGCFrame;
1953
1955 float TimeSinceLastPendingKillPurge;
1956
1958 bool bFullPurgeTriggered;
1959
1961 bool bGCPerformingFullPurge = false;
1962
1964 bool bShouldDelayGarbageCollect;
1965
1966public:
1967
1971 const FLinearColor& GetSelectedMaterialColor() const { return bIsOverridingSelectedColor ? SelectedMaterialColorOverride : SelectedMaterialColor; }
1972
1973 const FLinearColor& GetSelectionOutlineColor() const { return SelectionOutlineColor; }
1974
1975 const FLinearColor& GetSubduedSelectionOutlineColor() const { return SubduedSelectionOutlineColor; }
1976
1977 const FLinearColor& GetHoveredMaterialColor() const { return GetSelectedMaterialColor(); }
1978
1987
1989
1996 ENGINE_API void OverrideSelectedMaterialColor( const FLinearColor& OverrideColor );
1997
2001 ENGINE_API void RestoreSelectedMaterialColor();
2002
2004 ENGINE_API void GetDynamicResolutionCurrentStateInfos(FDynamicResolutionStateInfos& OutInfos) const;
2005
2007 ENGINE_API void PauseDynamicResolution();
2008
2011 {
2012 #if WITH_DYNAMIC_RESOLUTION
2013 bIsDynamicResolutionPaused = false;
2014 UpdateDynamicResolutionStatus();
2015 #endif // !UE_SERVER
2016 }
2017
2019 ENGINE_API void EmitDynamicResolutionEvent(EDynamicResolutionStateEvent Event);
2020
2023 {
2024 #if !WITH_DYNAMIC_RESOLUTION
2025 return nullptr;
2026 #else
2027 // Returns next's frame dynamic resolution state to keep game thread consistency after a ChangeDynamicResolutionStateAtNextFrame().
2028 check(NextDynamicResolutionState.IsValid() || IsRunningCommandlet() || IsRunningDedicatedServer());
2029 return NextDynamicResolutionState.Get();
2030 #endif
2031 }
2032
2036 ENGINE_API void ChangeDynamicResolutionStateAtNextFrame(TSharedPtr< class IDynamicResolutionState > NewState);
2037
2040 {
2041 #if !WITH_DYNAMIC_RESOLUTION
2042 return false;
2043 #else
2044 return bDynamicResolutionEnableUserSetting;
2045 #endif
2046 }
2047
2050 {
2051 #if WITH_DYNAMIC_RESOLUTION
2052 bDynamicResolutionEnableUserSetting = Enable;
2053 UpdateDynamicResolutionStatus();
2054 #endif
2055 }
2056
2060 ENGINE_API void LoadDefaultBloomTexture();
2061
2065 ENGINE_API void LoadBlueNoiseTexture(bool LoadVector2BlueNoiseTexture);
2066
2068 ENGINE_API void LoadDefaultFilmGrainTexture();
2069
2071 ENGINE_API void ConditionallyLoadPreIntegratedSkinBRDFTexture();
2072
2074 ENGINE_API void LoadLTCTextures();
2075
2077 ENGINE_API void LoadEnergyTextures();
2078
2082 ENGINE_API void LoadGlintTextures();
2083
2084
2088 ENGINE_API void LoadSimpleVolumeTextures();
2089
2093 ENGINE_API void LoadSMAATextures();
2094
2095private:
2096 #if WITH_DYNAMIC_RESOLUTION
2098 EDynamicResolutionStateEvent LastDynamicResolutionEvent;
2099
2101 TSharedPtr< class IDynamicResolutionState > DynamicResolutionState;
2102
2104 TSharedPtr< class IDynamicResolutionState > NextDynamicResolutionState;
2105
2107 bool bIsDynamicResolutionPaused;
2108
2110 bool bDynamicResolutionEnableUserSetting;
2111
2113 ENGINE_API bool ShouldEnableDynamicResolutionState() const;
2114
2116 ENGINE_API void UpdateDynamicResolutionStatus();
2117 #endif
2118
2119protected:
2120
2122 FAudioDeviceManager* AudioDeviceManager = nullptr;
2123
2126
2127private:
2129 TArray<struct FScreenMessageString> PriorityScreenMessages;
2130
2132 TMap<int32, FScreenMessageString> ScreenMessages;
2133
2134public:
2135 ENGINE_API float DrawOnscreenDebugMessages(UWorld* World, FViewport* Viewport, FCanvas* Canvas, UCanvas* CanvasObject, float MessageX, float MessageY);
2136
2138 ENGINE_API void AddOnScreenDebugMessage(uint64 Key, float TimeToDisplay, FColor DisplayColor, const FString& DebugMessage, bool bNewerOnTop = true, const FVector2D& TextScale = FVector2D::UnitVector);
2139
2141 ENGINE_API void AddOnScreenDebugMessage(int32 Key, float TimeToDisplay, FColor DisplayColor, const FString& DebugMessage, bool bNewerOnTop = true, const FVector2D& TextScale = FVector2D::UnitVector);
2142
2144 ENGINE_API bool OnScreenDebugMessageExists(uint64 Key);
2145
2147 ENGINE_API void ClearOnScreenDebugMessages();
2148
2149 //Remove the message for the given key
2150 ENGINE_API void RemoveOnScreenDebugMessage(uint64 Key);
2151
2154
2157
2160
2163
2166
2168 FWorldAddedEvent& OnWorldAdded() { return WorldAddedEvent; }
2169
2172
2174 FWorldDestroyedEvent& OnWorldDestroyed() { return WorldDestroyedEvent; }
2175
2177 ENGINE_API virtual void WorldAdded( UWorld* World );
2178
2180 ENGINE_API virtual void WorldDestroyed( UWorld* InWorld );
2181
2182 virtual bool IsInitialized() const { return bIsInitialized; }
2183
2185 ENGINE_API virtual ERHIFeatureLevel::Type GetDefaultWorldFeatureLevel() const;
2186
2187#if WITH_EDITOR
2189 ENGINE_API virtual bool GetPreviewPlatformName(FName& PlatformName) const;
2190
2194
2197
2201
2204
2208
2211
2215
2218
2222
2225
2229
2232
2236
2239
2243
2246
2250
2253
2257
2260
2263 FOnActorMovingEvent& OnActorMoving() { return OnActorMovingEvent; }
2264
2267
2271
2276
2280
2282 void BroadcastOnActorMoved( AActor* Actor ) { OnActorMovedEvent.Broadcast( Actor ); }
2283
2286 FOnComponentTransformChangedEvent& OnComponentTransformChanged() { return OnComponentTransformChangedEvent; }
2287
2290
2294
2297
2301
2304
2306 DECLARE_EVENT_OneParam(UEditorEngine, FPostEditorTick, float /* DeltaTime */);
2308
2310 void BroadcastPostEditorTick(float DeltaSeconds) { PostEditorTickEvent.Broadcast(DeltaSeconds); }
2311
2315
2317 void BroadcastEditorClose() { EditorCloseEvent.Broadcast(); }
2318
2319#endif // #if WITH_EDITOR
2320
2322 FOnTravelFailure& OnTravelFailure() { return TravelFailureEvent; }
2324 void BroadcastTravelFailure(UWorld* InWorld, ETravelFailure::Type FailureType, const FString& ErrorString = TEXT(""))
2325 {
2326 UE_LOGSTATUS(Warning, TEXT("Travel failed, type: %s, reason: \"%s\""), *UEnum::GetValueAsString(FailureType), *ErrorString);
2327 TravelFailureEvent.Broadcast(InWorld, FailureType, ErrorString);
2328 }
2329
2331 FOnNetworkFailure& OnNetworkFailure() { return NetworkFailureEvent; }
2333 ENGINE_API void BroadcastNetworkFailure(UWorld * World, UNetDriver *NetDriver, ENetworkFailure::Type FailureType, const FString& ErrorString = TEXT(""));
2334
2336 FOnNetworkLagStateChanged& OnNetworkLagStateChanged() { return NetworkLagStateChangedEvent; }
2339 {
2340 NetworkLagStateChangedEvent.Broadcast(World, NetDriver, LagType);
2341 }
2342
2344 FOnNetworkDDoSEscalation& OnNetworkDDoSEscalation() { return NetworkDDoSEscalationEvent; }
2346 void BroadcastNetworkDDosSEscalation(UWorld* World, UNetDriver* NetDriver, FString SeverityCategory)
2347 {
2348 NetworkDDoSEscalationEvent.Broadcast(World, NetDriver, SeverityCategory);
2349 }
2350
2351 //~ Begin UObject Interface.
2352 ENGINE_API virtual void FinishDestroy() override;
2353 ENGINE_API virtual void Serialize(FArchive& Ar) override;
2354 static ENGINE_API void AddReferencedObjects(UObject* InThis, FReferenceCollector& Collector);
2355#if WITH_EDITOR
2356 ENGINE_API virtual void PostEditChangeProperty(struct FPropertyChangedEvent& PropertyChangedEvent) override;
2357#endif
2358 //~ End UObject Interface.
2359
2361 ENGINE_API virtual void Init(IEngineLoop* InEngineLoop);
2362
2364 ENGINE_API virtual void Start();
2365
2367 ENGINE_API virtual void PreExit();
2368 ENGINE_API virtual void ReleaseAudioDeviceManager();
2369
2370 ENGINE_API void ShutdownHMD();
2371
2373 ENGINE_API void ParseCommandline();
2374
2375 //~ Begin FExec Interface
2376public:
2377#if UE_ALLOW_EXEC_COMMANDS
2378 ENGINE_API virtual bool Exec( UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Out=*GLog ) override;
2379#endif
2380
2381protected:
2382 ENGINE_API virtual bool Exec_Dev( UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Out=*GLog ) override;
2383 ENGINE_API virtual bool Exec_Editor(UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Out = *GLog) override;
2384 //~ End FExec Interface
2385
2386public:
2390 ENGINE_API bool HandleFlushLogCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2391 ENGINE_API bool HandleGameVerCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2392 ENGINE_API bool HandleStatCommand( UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Cmd, FOutputDevice& Ar );
2393 ENGINE_API bool HandleStopMovieCaptureCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2394 ENGINE_API bool HandleCrackURLCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2395 ENGINE_API bool HandleDeferCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2396
2397 ENGINE_API bool HandleCeCommand( UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar );
2398 ENGINE_API bool HandleDumpTicksCommand( UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar );
2399 ENGINE_API bool HandleGammaCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2400
2401 ENGINE_API bool HandleShowLogCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2402
2403 // Only compile in when STATS is set
2404#if STATS
2406#endif
2407
2408#if WITH_PROFILEGPU && (RHI_NEW_GPU_PROFILER == 0)
2409 ENGINE_API bool HandleProfileGPUCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2410#endif
2411
2412#if WITH_DUMPGPU
2413 ENGINE_API bool HandleDumpGPUCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2414#endif
2415
2416#if WITH_GPUDEBUGCRASH
2418#endif
2419
2420 // Compile in Debug or Development
2421#if !(UE_BUILD_SHIPPING || UE_BUILD_TEST) && WITH_HOT_RELOAD
2422 ENGINE_API bool HandleHotReloadCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2423#endif // !(UE_BUILD_SHIPPING || UE_BUILD_TEST) && WITH_HOT_RELOAD
2424
2425 // Compile in Debug, Development, and Test
2426#if !UE_BUILD_SHIPPING
2427 ENGINE_API bool HandleDumpConsoleCommandsCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
2428 ENGINE_API bool HandleDumpAvailableResolutionsCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2429 ENGINE_API bool HandleAnimSeqStatsCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2430 ENGINE_API bool HandleCountDisabledParticleItemsCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2431 ENGINE_API bool HandleViewnamesCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2432 ENGINE_API bool HandleFreezeStreamingCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld ); // Smedis
2433 ENGINE_API bool HandleFreezeAllCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld ); // Smedis
2434
2435 ENGINE_API bool HandleToggleRenderingThreadCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2436 ENGINE_API bool HandleRecompileShadersCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2437 ENGINE_API bool HandleRecompileGlobalShadersCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2438 ENGINE_API bool HandleDumpShaderStatsCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2439 ENGINE_API bool HandleDumpMaterialStatsCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2440#if WITH_EDITOR
2442#endif
2443 ENGINE_API bool HandleProfileCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2444 ENGINE_API bool HandleProfileGPUHitchesCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2445 ENGINE_API bool HandleShaderComplexityCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2446 ENGINE_API bool HandleFreezeRenderingCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
2447 ENGINE_API bool HandleStartFPSChartCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2448 ENGINE_API bool HandleStopFPSChartCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
2449 ENGINE_API bool HandleDumpLevelScriptActorsCommand( UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar );
2450 ENGINE_API bool HandleKismetEventCommand( UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar );
2451 ENGINE_API bool HandleListTexturesCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2452 ENGINE_API bool HandleListStaticMeshesCommand(const TCHAR* Cmd, FOutputDevice& Ar);
2453 ENGINE_API bool HandleListSkeletalMeshesCommand(const TCHAR* Cmd, FOutputDevice& Ar);
2454 ENGINE_API bool HandleListAnimsCommand(const TCHAR* Cmd, FOutputDevice& Ar);
2455 ENGINE_API bool HandleRemoteTextureStatsCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2456 ENGINE_API bool HandleListParticleSystemsCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2457 ENGINE_API bool HandleListSpawnedActorsCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
2458 ENGINE_API bool HandleLogoutStatLevelsCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
2459 ENGINE_API virtual void WriteMemReportMetadata( FOutputDevice& Ar, UWorld* InWorld );
2460 ENGINE_API bool HandleMemReportCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
2461 ENGINE_API bool HandleMemReportDeferredCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
2462 ENGINE_API bool HandleSkeletalMeshReportCommand(const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld);
2463 ENGINE_API bool HandleParticleMeshUsageCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2464 ENGINE_API bool HandleDumpParticleCountsCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2465 ENGINE_API bool HandleListLoadedPackagesCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2466 ENGINE_API bool HandleMemCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2467 ENGINE_API bool HandleDebugCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2468 ENGINE_API bool HandleMergeMeshCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
2469 ENGINE_API bool HandleContentComparisonCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2470 ENGINE_API bool HandleTogglegtPsysLODCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2471 ENGINE_API bool HandleObjCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2472 ENGINE_API bool HandleTestslateGameUICommand( const TCHAR* Cmd, FOutputDevice& Ar );
2473 ENGINE_API bool HandleDirCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2474 ENGINE_API bool HandleTrackParticleRenderingStatsCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2475 ENGINE_API bool HandleDumpAllocatorStats( const TCHAR* Cmd, FOutputDevice& Ar );
2476 ENGINE_API bool HandleHeapCheckCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2477 ENGINE_API bool HandleToggleOnscreenDebugMessageDisplayCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2478 ENGINE_API bool HandleToggleOnscreenDebugMessageSystemCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2479 ENGINE_API bool HandleDisableAllScreenMessagesCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2480 ENGINE_API bool HandleEnableAllScreenMessagesCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2481 ENGINE_API bool HandleToggleAllScreenMessagesCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2482 ENGINE_API bool HandleConfigHashCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2483 ENGINE_API bool HandleConfigMemCommand( const TCHAR* Cmd, FOutputDevice& Ar );
2484 ENGINE_API bool HandleGetIniCommand(const TCHAR* Cmd, FOutputDevice& Ar);
2485 ENGINE_API bool HandleRedirectOutputCommand(const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld);
2486#endif // !UE_BUILD_SHIPPING
2487
2489 virtual void Tick( float DeltaSeconds, bool bIdleMode ) PURE_VIRTUAL(UEngine::Tick,);
2490
2494 ENGINE_API virtual void UpdateTimeAndHandleMaxTickRate();
2495
2496 static ENGINE_API void SetInputSampleLatencyMarker(uint64 FrameNumber);
2497
2498 static ENGINE_API void SetSimulationLatencyMarkerStart(uint64 FrameNumber);
2499 static ENGINE_API void SetSimulationLatencyMarkerEnd(uint64 FrameNumber);
2500
2501 static ENGINE_API void SetPresentLatencyMarkerStart(uint64 FrameNumber);
2502 static ENGINE_API void SetPresentLatencyMarkerEnd(uint64 FrameNumber);
2503
2504 static ENGINE_API void SetRenderSubmitLatencyMarkerStart(uint64 FrameNumber);
2505 static ENGINE_API void SetRenderSubmitLatencyMarkerEnd(uint64 FrameNumber);
2506
2507 static ENGINE_API void SetFlashIndicatorLatencyMarker(uint64 FrameNumber);
2508
2514 ENGINE_API virtual double CorrectNegativeTimeDelta(double DeltaRealTime);
2515
2517 ENGINE_API void ReinitializeCustomTimeStep();
2518
2526 ENGINE_API bool SetCustomTimeStep(UEngineCustomTimeStep* InCustomTimeStep);
2527
2529 UEngineCustomTimeStep* GetCustomTimeStep() const { return CustomTimeStep; };
2530
2532 FSimpleMulticastDelegate& OnCustomTimeStepChanged() { return CustomTimeStepChangedEvent; }
2533
2535 ENGINE_API void TickDeferredCommands();
2536
2538 ENGINE_API virtual float GetMaxTickRate(float DeltaTime, bool bAllowFrameRateSmoothing = true) const;
2539
2541 ENGINE_API virtual float GetMaxFPS() const;
2542
2544 ENGINE_API virtual void SetMaxFPS(const float MaxFPS);
2545
2547 ENGINE_API virtual void UpdateRunningAverageDeltaTime(float DeltaTime, bool bAllowFrameRateSmoothing = true);
2548
2550 ENGINE_API virtual bool IsAllowedFramerateSmoothing() const;
2551
2553 virtual bool IsRenderingSuspended() const { return false; }
2554
2556 ENGINE_API void UpdateTimecode();
2557
2559 ENGINE_API void ReinitializeTimecodeProvider();
2560
2568 ENGINE_API bool SetTimecodeProvider(UTimecodeProvider* InTimecodeProvider);
2569
2571 UTimecodeProvider* GetTimecodeProvider() const { return TimecodeProvider; };
2572
2574 FSimpleMulticastDelegate& OnTimecodeProviderChanged() { return TimecodeProviderChangedEvent; }
2575
2576public:
2577
2582 ENGINE_API virtual void OnLostFocusPause( bool EnablePause );
2583
2587 ENGINE_API void GetAverageUnitTimes( TArray<float>& AverageTimes );
2588
2592 ENGINE_API void SetAverageUnitTimes(float FrameTime, float RenderThreadTime, float GameThreadTime, float GPUFrameTime, float RHITFrameTime);
2593
2597 ENGINE_API FColor GetFrameTimeDisplayColor(float FrameTimeMS) const;
2598
2602 ENGINE_API virtual bool ShouldThrottleCPUUsage() const;
2603
2607 ENGINE_API bool AreAllWindowsHidden() const;
2608
2609public:
2615 ENGINE_API TArray<class ULocalPlayer*>::TConstIterator GetLocalPlayerIterator(const UGameViewportClient *Viewport);
2616
2617 ENGINE_API const TArray<class ULocalPlayer*>& GetGamePlayers(UWorld *World) const;
2618 ENGINE_API const TArray<class ULocalPlayer*>& GetGamePlayers(const UGameViewportClient *Viewport) const;
2619
2624 ENGINE_API ULocalPlayer* FindFirstLocalPlayerFromControllerId(int32 ControllerId) const;
2625
2630 virtual bool IsControllerIdUsingPlatformUserId() const { return true; }
2631
2636 ENGINE_API ULocalPlayer* FindFirstLocalPlayerFromPlatformUserId(FPlatformUserId PlatformUserId) const;
2637
2644 ENGINE_API ULocalPlayer* GetLocalPlayerFromPlatformUserId(UWorld* InWorld, const FPlatformUserId PlatformUserId) const;
2645
2649 ENGINE_API int32 GetNumGamePlayers(UWorld *InWorld);
2650 ENGINE_API int32 GetNumGamePlayers(const UGameViewportClient *InViewport);
2651
2659 ENGINE_API ULocalPlayer* GetGamePlayer( UWorld * InWorld, int32 InPlayer );
2661
2667 ENGINE_API ULocalPlayer* GetFirstGamePlayer( UWorld *InWorld );
2668 ENGINE_API ULocalPlayer* GetFirstGamePlayer(const UGameViewportClient *InViewport );
2669 ENGINE_API ULocalPlayer* GetFirstGamePlayer( UPendingNetGame *PendingNetGame );
2670
2679 ENGINE_API ULocalPlayer* GetDebugLocalPlayer();
2680
2682 ENGINE_API void CleanupGameViewport();
2683
2685 virtual bool ShouldDrawBrushWireframe( class AActor* InActor ) { return true; }
2686
2688 virtual bool GetMapBuildCancelled() const
2689 {
2690 return false;
2691 }
2692
2699 {
2700 // Intentionally empty.
2701 }
2702
2704 ENGINE_API bool GetStatValueColoration(const FString& StatName, float Value, FColor& OutColor);
2705
2707 virtual bool AllowSelectTranslucent() const
2708 {
2709 // The editor may override this to disallow translucent selection based on user preferences
2710 return true;
2711 }
2712
2715 {
2716 // The editor may override this to apply the user's preference state
2717 return true;
2718 }
2719
2726 ENGINE_API virtual double GetUnifiedTimeBudgetForStreaming(float DeltaSeconds, bool bHighPriority);
2727
2732 ENGINE_API virtual void HandleUnifiedStreaming(float DeltaSeconds);
2733
2737 virtual bool PreferToStreamLevelsInPIE() const
2738 {
2739 return false;
2740 }
2741
2747 ENGINE_API void EnableScreenSaver( bool bEnable );
2748
2757 {
2758 // The editor may override this to handle sprite categories as necessary
2759 return INDEX_NONE;
2760 }
2761
2762 static ENGINE_API void PreGarbageCollect();
2763
2767 ENGINE_API void ConditionalCollectGarbage();
2768
2772 ENGINE_API void PerformGarbageCollectionAndCleanupActors();
2773
2775 ENGINE_API void ForceGarbageCollection(bool bFullPurge = false);
2776
2780 ENGINE_API void DelayGarbageCollection();
2781
2788 ENGINE_API void SetTimeUntilNextGarbageCollection(float MinTimeUntilNextPass);
2789
2793 ENGINE_API float GetTimeBetweenGarbageCollectionPasses() const;
2794
2795#if !UE_BUILD_SHIPPING
2800 ENGINE_API void PerformanceCapture(UWorld* World, const FString& MapName, const FString& SequenceName, float EventTime);
2801
2806 ENGINE_API void LogPerformanceCapture(UWorld* World, const FString& MapName, const FString& SequenceName, float EventTime);
2807#endif // UE_BUILD_SHIPPING
2808
2815 ENGINE_API virtual void StartFPSChart(const FString& Label, bool bRecordPerFrameTimes);
2816
2820 ENGINE_API virtual void StopFPSChart(const FString& MapName);
2821
2826 static ENGINE_API void TrimMemory();
2827
2833 ENGINE_API void TickPerformanceMonitoring(float DeltaSeconds);
2834
2836 ENGINE_API void AddPerformanceDataConsumer(TSharedPtr<IPerformanceDataConsumer> Consumer);
2837
2839 ENGINE_API void RemovePerformanceDataConsumer(TSharedPtr<IPerformanceDataConsumer> Consumer);
2840
2841public:
2844
2845private:
2846
2852 ENGINE_API void OnExternalUIChange(bool bInIsOpening);
2853
2854protected:
2855
2857 ENGINE_API virtual float GetTimeBetweenGarbageCollectionPasses(bool bHasPlayersConnected) const;
2858
2865 {
2866 // Intentionally empty.
2867 }
2868
2871 {
2872 // Intentionally empty.
2873 }
2874
2881 ENGINE_API bool PerformError(const TCHAR* Cmd, FOutputDevice& Out = *GLog);
2882
2886 static ENGINE_API void SendWorldEndOfFrameUpdates();
2887
2891 ENGINE_API virtual EGarbageCollectionType ShouldForceGarbageCollection();
2892
2898 ENGINE_API virtual float GetIncrementalGCTimePerFrame();
2899
2900public:
2902 ENGINE_API bool IsEditor();
2903
2905 ENGINE_API FAudioDeviceManager* GetAudioDeviceManager();
2906
2908 ENGINE_API uint32 GetMainAudioDeviceID() const;
2909
2911 ENGINE_API FAudioDeviceHandle GetMainAudioDevice();
2912 ENGINE_API class FAudioDevice* GetMainAudioDeviceRaw();
2913
2915 ENGINE_API FAudioDeviceHandle GetActiveAudioDevice();
2916
2918 ENGINE_API virtual bool HasMultipleLocalPlayers(UWorld* InWorld);
2919
2921 ENGINE_API bool IsStereoscopic3D(const FViewport* InViewport = nullptr) const;
2922
2932 ENGINE_API void AddTextureStreamingLoc(FVector InLoc, float BoostFactor, bool bOverrideLocation, float OverrideDuration);
2933
2941 ENGINE_API UWorld* GetWorldFromContextObject(const UObject* Object, EGetWorldErrorMode ErrorMode) const;
2942
2950 {
2951 return GetWorldFromContextObject(Object, EGetWorldErrorMode::Assert);
2952 }
2953
2958 virtual bool IsSettingUpPlayWorld() const { return false; }
2959
2966 ENGINE_API ULocalPlayer* GetLocalPlayerFromControllerId( const UGameViewportClient* InViewport, const int32 ControllerId ) const;
2967 ENGINE_API ULocalPlayer* GetLocalPlayerFromControllerId( UWorld * InWorld, const int32 ControllerId ) const;
2968
2969 ENGINE_API ULocalPlayer* GetLocalPlayerFromInputDevice(const UGameViewportClient* InViewport, const FInputDeviceId InputDevice) const;
2970 ENGINE_API ULocalPlayer* GetLocalPlayerFromInputDevice(UWorld * InWorld, const FInputDeviceId InputDevice) const;
2971
2972 ENGINE_API void SwapControllerId(ULocalPlayer *NewPlayer, const int32 CurrentControllerId, const int32 NewControllerID) const;
2973
2974 ENGINE_API void SwapPlatformUserId(ULocalPlayer *NewPlayer, const FPlatformUserId CurrentUserId, const FPlatformUserId NewUserID) const;
2975
2980 ENGINE_API class APlayerController* GetFirstLocalPlayerController(const UWorld* InWorld);
2981
2986 ENGINE_API void GetAllLocalPlayerControllers(TArray<APlayerController*>& PlayerList);
2987
2990 {
2991 return nullptr;
2992 }
2993
2995 float GetDisplayGamma() const { return DisplayGamma; }
2996
2997 virtual void FocusNextPIEWorld(UWorld *CurrentPieWorld, bool previous=false) { }
2998
3000
3001 virtual class UGameViewportClient* GetNextPIEViewport(UGameViewportClient * CurrentViewport) { return nullptr; }
3002
3004
3011 {
3012 return ServiceLocator.ToSharedRef();
3013 }
3014
3015protected:
3016
3019
3022
3025
3028
3031
3032#if ALLOW_DEBUG_FILES
3035#endif
3036
3039
3040public:
3041
3047 static ENGINE_API class UFont* GetTinyFont();
3048
3054 static ENGINE_API class UFont* GetSmallFont();
3055
3061 static ENGINE_API class UFont* GetMediumFont();
3062
3068 static ENGINE_API class UFont* GetLargeFont();
3069
3075 static ENGINE_API class UFont* GetSubtitleFont();
3076
3082 static ENGINE_API class UFont* GetMonospaceFont();
3083
3089 static ENGINE_API class UFont* GetAdditionalFont(int32 AdditionalFontIndex);
3090
3093 {
3094 UE_DEPRECATED(5.1, "Aggressive Default Subobject Replacement is no longer being done. An ensure has been left in place to catch any cases that was making use of this feature.")
3095 bool bAggressiveDefaultSubobjectReplacement;
3096 bool bDoDelta;
3097 bool bReplaceObjectClassReferences;
3098 bool bCopyDeprecatedProperties;
3099 bool bPreserveRootComponent;
3100 bool bPerformDuplication;
3101 bool bOnlyHandleDirectSubObjects;
3102
3104 bool bSkipCompilerGeneratedDefaults;
3105 bool bNotifyObjectReplacement;
3106 bool bClearReferences;
3107 UE_DEPRECATED(5.4, "This isn't used anymore by the code.")
3108 bool bDontClearReferenceIfNewerClassExists;
3109 bool bReplaceInternalReferenceUponRead; // While reading back object ptr, immediately replace them if they are in the replacement map.
3110
3111 // In cases where the SourceObject will no longer be able to look up its correct Archetype, it can be supplied
3112 UObject* SourceObjectArchetype;
3113 TMap<UObject*, UObject*>* OptionalReplacementMappings;
3114 const TMap<UClass*, UClass*>* OptionalOldToNewClassMappings; // Will be used along with the bReplaceInternalReferenceUponRead;
3115
3118 };
3120 virtual void NotifyToolsOfObjectReplacement(const TMap<UObject*, UObject*>& OldToNewInstanceMap) { }
3121
3122 ENGINE_API virtual bool UseSound() const;
3123
3124 // This should only ever be called for a EditorEngine
3126 virtual void PostCreatePIEWorld(UWorld* InWorld) { check(false); }
3127
3134 virtual bool Experimental_ShouldPreDuplicateMap(const FName MapName) const { return false; }
3135
3136protected:
3137
3141 ENGINE_API virtual void InitializeAudioDeviceManager();
3142
3148 ENGINE_API virtual bool InitializeHMDDevice();
3149
3155 ENGINE_API virtual bool InitializeEyeTrackingDevice();
3156
3158 ENGINE_API virtual void RecordHMDAnalytics();
3159
3161 ENGINE_API virtual void InitializeObjectReferences();
3162
3164 ENGINE_API virtual void InitializePortalServices();
3165
3167 ENGINE_API virtual void InitializeRunningAverageDeltaTime();
3168
3170
3173
3176private:
3177
3178#if WITH_EDITOR
3179
3182
3185
3188
3191
3194
3197
3200
3203
3206
3209
3212
3215
3218
3221
3224
3227
3230
3233
3234#endif // #if WITH_EDITOR
3235
3237 FRunnableThread* ScreenSaverInhibitor;
3238 FScreenSaverInhibitor* ScreenSaverInhibitorRunnable;
3239
3240
3242 UPROPERTY(Config)
3243 uint32 GlobalNetTravelCount = 0;
3244
3245public:
3247 {
3248 GlobalNetTravelCount++;
3249 }
3250
3252 {
3253 return GlobalNetTravelCount;
3254 }
3255public:
3256
3258 UPROPERTY(Config, transient)
3259 TArray<FNetDriverDefinition> NetDriverDefinitions;
3260
3262 UPROPERTY(Config, transient)
3263 TArray<FIrisNetDriverConfig> IrisNetDriverConfigs;
3264
3273
3275 ENGINE_API bool WillNetDriverUseIris(const FWorldContext& Context, FName InNetDriverDefinition, FName InNetDriverName) const;
3276
3278 UPROPERTY(config)
3279 TArray<FString> ServerActors;
3280
3282 UPROPERTY()
3283 TArray<FString> RuntimeServerActors;
3284
3287 float NetErrorLogInterval;
3288
3290 ENGINE_API virtual void SpawnServerActors(UWorld *World);
3291
3300 ENGINE_API virtual void HandleNetworkFailure(UWorld *World, UNetDriver *NetDriver, ENetworkFailure::Type FailureType, const FString& ErrorString);
3301
3310 ENGINE_API virtual void HandleTravelFailure(UWorld* InWorld, ETravelFailure::Type FailureType, const FString& ErrorString);
3311
3312
3320 ENGINE_API virtual void HandleNetworkLagStateChanged(UWorld* World, UNetDriver* NetDriver, ENetworkLagState::Type LagType);
3321
3325 ENGINE_API void ShutdownWorldNetDriver(UWorld*);
3326
3327 ENGINE_API void ShutdownAllNetDrivers();
3328
3336 ENGINE_API UNetDriver* FindNamedNetDriver(const UWorld* InWorld, FName NetDriverName);
3337 ENGINE_API UNetDriver* FindNamedNetDriver(const UPendingNetGame* InPendingNetGame, FName NetDriverName);
3338
3346 //virtual ENetMode GetNetMode(FName NetDriverName = NAME_GameNetDriver) const;
3347 ENGINE_API ENetMode GetNetMode(const UWorld *World) const;
3348
3357 ENGINE_API UNetDriver* CreateNetDriver(UWorld *InWorld, FName NetDriverDefinition);
3358
3368 ENGINE_API bool CreateNamedNetDriver(UWorld *InWorld, FName NetDriverName, FName NetDriverDefinition);
3369
3379 ENGINE_API bool CreateNamedNetDriver(UPendingNetGame *PendingNetGame, FName NetDriverName, FName NetDriverDefinition);
3380
3386 ENGINE_API void DestroyNamedNetDriver(UWorld *InWorld, FName NetDriverName);
3387 ENGINE_API void DestroyNamedNetDriver(UPendingNetGame *PendingNetGame, FName NetDriverName);
3388
3389 virtual bool NetworkRemapPath(UNetConnection* Connection, FString& Str, bool bReading=true) { return false; }
3390 virtual bool NetworkRemapPath(UPendingNetGame *PendingNetGame, FString &Str, bool bReading=true) { return false; }
3391
3392 ENGINE_API virtual bool HandleOpenCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld * InWorld );
3393
3394 ENGINE_API virtual bool HandleTravelCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
3395
3396 ENGINE_API virtual bool HandleStreamMapCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld *InWorld );
3397
3398#if WITH_SERVER_CODE
3399 ENGINE_API virtual bool HandleServerTravelCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld* InWorld );
3400#endif
3401
3402 ENGINE_API virtual bool HandleDisconnectCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld *InWorld );
3403
3404 ENGINE_API virtual bool HandleReconnectCommand( const TCHAR* Cmd, FOutputDevice& Ar, UWorld *InWorld );
3405
3406
3414 ENGINE_API void HandleDisconnect( UWorld *InWorld, UNetDriver *NetDriver );
3415
3422 ENGINE_API bool MakeSureMapNameIsValid(FString& InOutMapName);
3423
3424 ENGINE_API void SetClientTravel( UWorld *InWorld, const TCHAR* NextURL, ETravelType InTravelType );
3425
3426 ENGINE_API void SetClientTravel( UPendingNetGame *PendingNetGame, const TCHAR* NextURL, ETravelType InTravelType );
3427
3428 ENGINE_API void SetClientTravelFromPendingGameNetDriver( UNetDriver *PendingGameNetDriverGame, const TCHAR* NextURL, ETravelType InTravelType );
3429
3431 ENGINE_API virtual EBrowseReturnVal::Type Browse( FWorldContext& WorldContext, FURL URL, FString& Error );
3432
3433 ENGINE_API virtual void TickWorldTravel(FWorldContext& WorldContext, float DeltaSeconds);
3434
3435 ENGINE_API void BrowseToDefaultMap( FWorldContext& WorldContext );
3436
3437 ENGINE_API virtual bool LoadMap( FWorldContext& WorldContext, FURL URL, class UPendingNetGame* Pending, FString& Error );
3438
3439 virtual void RedrawViewports( bool bShouldPresent = true ) { }
3440
3442
3449 ENGINE_API void BlockTillLevelStreamingCompleted(UWorld* InWorld);
3450
3455 uint32 bStartedLoadMapMovie:1;
3456
3463 ENGINE_API void CleanupPackagesToFullyLoad(FWorldContext &Context, EFullyLoadPackageType FullyLoadType, const FString& Tag);
3464
3468 virtual void LoadMapRedrawViewports(void)
3469 {
3470 RedrawViewports(false);
3471 }
3472
3473 ENGINE_API void ClearDebugDisplayProperties();
3474
3481 ENGINE_API void LoadPackagesFully(UWorld * InWorld, EFullyLoadPackageType FullyLoadType, const FString& Tag);
3482
3483 ENGINE_API void UpdateTransitionType(UWorld *CurrentWorld);
3484
3485 ENGINE_API UPendingNetGame* PendingNetGameFromWorld( UWorld* InWorld );
3486
3488 ENGINE_API virtual void CancelAllPending();
3489
3490 ENGINE_API virtual void CancelPending(UWorld *InWorld, UPendingNetGame *NewPendingNetGame=nullptr );
3491
3492 ENGINE_API virtual bool WorldIsPIEInNewViewport(UWorld *InWorld);
3493
3494 ENGINE_API FWorldContext* GetWorldContextFromWorld(const UWorld* InWorld);
3495 ENGINE_API FWorldContext* GetWorldContextFromGameViewport(const UGameViewportClient *InViewport);
3496 ENGINE_API FWorldContext* GetWorldContextFromPendingNetGame(const UPendingNetGame *InPendingNetGame);
3497 ENGINE_API FWorldContext* GetWorldContextFromPendingNetGameNetDriver(const UNetDriver *InPendingNetGame);
3498 ENGINE_API FWorldContext* GetWorldContextFromHandle(const FName WorldContextHandle);
3499 ENGINE_API FWorldContext* GetWorldContextFromPIEInstance(const int32 PIEInstance);
3500
3501 ENGINE_API const FWorldContext* GetWorldContextFromWorld(const UWorld* InWorld) const;
3502 ENGINE_API const FWorldContext* GetWorldContextFromGameViewport(const UGameViewportClient *InViewport) const;
3503 ENGINE_API const FWorldContext* GetWorldContextFromPendingNetGame(const UPendingNetGame *InPendingNetGame) const;
3504 ENGINE_API const FWorldContext* GetWorldContextFromPendingNetGameNetDriver(const UNetDriver *InPendingNetGame) const;
3505 ENGINE_API const FWorldContext* GetWorldContextFromHandle(const FName WorldContextHandle) const;
3506 ENGINE_API const FWorldContext* GetWorldContextFromPIEInstance(const int32 PIEInstance) const;
3507
3508 ENGINE_API FWorldContext& GetWorldContextFromWorldChecked(const UWorld * InWorld);
3509 ENGINE_API FWorldContext& GetWorldContextFromGameViewportChecked(const UGameViewportClient *InViewport);
3510 ENGINE_API FWorldContext& GetWorldContextFromPendingNetGameChecked(const UPendingNetGame *InPendingNetGame);
3511 ENGINE_API FWorldContext& GetWorldContextFromPendingNetGameNetDriverChecked(const UNetDriver *InPendingNetGame);
3512 ENGINE_API FWorldContext& GetWorldContextFromHandleChecked(const FName WorldContextHandle);
3513 ENGINE_API FWorldContext& GetWorldContextFromPIEInstanceChecked(const int32 PIEInstance);
3514
3515 ENGINE_API const FWorldContext& GetWorldContextFromWorldChecked(const UWorld * InWorld) const;
3516 ENGINE_API const FWorldContext& GetWorldContextFromGameViewportChecked(const UGameViewportClient *InViewport) const;
3517 ENGINE_API const FWorldContext& GetWorldContextFromPendingNetGameChecked(const UPendingNetGame *InPendingNetGame) const;
3518 ENGINE_API const FWorldContext& GetWorldContextFromPendingNetGameNetDriverChecked(const UNetDriver *InPendingNetGame) const;
3519 ENGINE_API const FWorldContext& GetWorldContextFromHandleChecked(const FName WorldContextHandle) const;
3520 ENGINE_API const FWorldContext& GetWorldContextFromPIEInstanceChecked(const int32 PIEInstance) const;
3521
3522 const TIndirectArray<FWorldContext>& GetWorldContexts() const { return WorldList; }
3523
3531 ENGINE_API UWorld* GetCurrentPlayWorld(UWorld* PossiblePlayWorld = nullptr) const;
3532
3538 ENGINE_API virtual void CheckAndHandleStaleWorldObjectReferences(FWorldContext* InWorldContext = nullptr);
3539
3545 UE_DEPRECATED(5.1, "Please use FReferenceChainSearch::FindAndPrintStaleReferencesToObject")
3546 static ENGINE_API void FindAndPrintStaleReferencesToObject(UObject* ObjectToFindReferencesTo, ELogVerbosity::Type Verbosity);
3547
3553 UE_DEPRECATED(5.3, "Please use FReferenceChainSearch::FindAndPrintStaleReferencesToObject")
3554 static ENGINE_API FString FindAndPrintStaleReferencesToObject(UObject* ObjectToFindReferencesTo, EPrintStaleReferencesOptions Options);
3555 UE_DEPRECATED(5.3, "Please use FReferenceChainSearch::FindAndPrintStaleReferencesToObjects")
3556 static ENGINE_API TArray<FString> FindAndPrintStaleReferencesToObjects(TConstArrayView<UObject*> ObjectsToFindReferencesTo, EPrintStaleReferencesOptions Options);
3557
3558 ENGINE_API FWorldContext& CreateNewWorldContext(EWorldType::Type WorldType);
3559
3560 ENGINE_API virtual void DestroyWorldContext(UWorld * InWorld);
3561
3564
3566 FWorldContextDestroyedEvent& OnWorldContextDestroyed() { return WorldContextDestroyedEvent; }
3567
3568private:
3570 FWorldContextDestroyedEvent WorldContextDestroyedEvent;
3571
3572public:
3580 ENGINE_API int32 GetGlobalFunctionCallspace(UFunction* Function, UObject* FunctionTarget, FFrame* Stack);
3581
3586 ENGINE_API bool ShouldAbsorbAuthorityOnlyEvent();
3587
3592 ENGINE_API bool ShouldAbsorbCosmeticOnlyEvent();
3593
3594 ENGINE_API UGameViewportClient* GameViewportForWorld(const UWorld *InWorld) const;
3595
3597 virtual bool AreEditorAnalyticsEnabled() const { return false; }
3599
3602
3603 virtual bool ShouldDoAsyncEndOfFrameTasks() const { return false; }
3604
3605 bool IsVanillaProduct() const { return bIsVanillaProduct; }
3606
3607protected:
3608 ENGINE_API void SetIsVanillaProduct(bool bInIsVanillaProduct);
3609
3610private:
3611 bool bIsVanillaProduct;
3612
3613protected:
3620
3627
3629
3630 UPROPERTY()
3631 int32 NextWorldContextHandle;
3632
3633
3634 ENGINE_API virtual void CancelPending(FWorldContext& WorldContext);
3635
3637
3638 ENGINE_API virtual void MovePendingLevel(FWorldContext &Context);
3639
3643 virtual bool ShouldShutdownWorldNetDriver()
3644 {
3645 return true;
3646 }
3647
3648 ENGINE_API bool WorldHasValidContext(UWorld *InWorld);
3649
3655 ENGINE_API virtual void HandleBrowseToDefaultMapFailure(FWorldContext& Context, const FString& TextURL, const FString& Error);
3656
3661 ENGINE_API bool IsWorldDuplicate(const UWorld* const InWorld);
3662
3663protected:
3664
3665 // Async map change/ persistent level transition code.
3666
3674 ENGINE_API bool CommitMapChange( FWorldContext &Context);
3675
3681 ENGINE_API bool IsReadyForMapChange(FWorldContext &Context);
3682
3688 ENGINE_API bool IsPreparingMapChange(FWorldContext &Context);
3689
3700 ENGINE_API bool PrepareMapChange(FWorldContext &WorldContext, const TArray<FName>& LevelNames);
3701
3707 ENGINE_API FString GetMapChangeFailureDescription(FWorldContext &Context);
3708
3710 ENGINE_API void ConditionalCommitMapChange(FWorldContext &WorldContext);
3711
3713 ENGINE_API void CancelPendingMapChange(FWorldContext &Context);
3714
3715public:
3716
3717 //~ Begin Public Interface for async map change functions
3718
3719 bool CommitMapChange(UWorld* InWorld) { return CommitMapChange(GetWorldContextFromWorldChecked(InWorld)); }
3720 bool IsReadyForMapChange(UWorld* InWorld) { return IsReadyForMapChange(GetWorldContextFromWorldChecked(InWorld)); }
3721 bool IsPreparingMapChange(UWorld* InWorld) { return IsPreparingMapChange(GetWorldContextFromWorldChecked(InWorld)); }
3722 bool PrepareMapChange(UWorld* InWorld, const TArray<FName>& LevelNames) { return PrepareMapChange(GetWorldContextFromWorldChecked(InWorld), LevelNames); }
3723 void ConditionalCommitMapChange(UWorld* InWorld) { return ConditionalCommitMapChange(GetWorldContextFromWorldChecked(InWorld)); }
3724
3725 FString GetMapChangeFailureDescription(UWorld *InWorld) { return GetMapChangeFailureDescription(GetWorldContextFromWorldChecked(InWorld)); }
3726
3728 void CancelPendingMapChange(UWorld *InWorld) { return CancelPendingMapChange(GetWorldContextFromWorldChecked(InWorld)); }
3729
3730 ENGINE_API void AddNewPendingStreamingLevel(UWorld *InWorld, FName PackageName, bool bNewShouldBeLoaded, bool bNewShouldBeVisible, int32 LODIndex);
3731
3732 ENGINE_API bool ShouldCommitPendingMapChange(const UWorld *InWorld) const;
3733 ENGINE_API void SetShouldCommitPendingMapChange(UWorld *InWorld, bool NewShouldCommitPendingMapChange);
3734
3735 ENGINE_API FSeamlessTravelHandler& SeamlessTravelHandlerForWorld(UWorld *World);
3736
3737 ENGINE_API FURL & LastURLFromWorld(UWorld *World);
3738
3742 ENGINE_API const UGameUserSettings* GetGameUserSettings() const;
3743 ENGINE_API UGameUserSettings* GetGameUserSettings();
3744
3745private:
3746 ENGINE_API void CreateGameUserSettings();
3747
3749 ENGINE_API virtual void HandleNetworkFailure_NotifyGameInstance(UWorld* World, UNetDriver* NetDriver, ENetworkFailure::Type FailureType);
3750
3752 ENGINE_API virtual void HandleTravelFailure_NotifyGameInstance(UWorld* World, ETravelFailure::Type FailureType);
3753
3754public:
3755#if WITH_EDITOR
3756 //~ Begin Transaction Interfaces.
3757 virtual int32 BeginTransaction(const TCHAR* TransactionContext, const FText& Description, UObject* PrimaryObject) { return INDEX_NONE; }
3758 virtual int32 EndTransaction() { return INDEX_NONE; }
3759 virtual bool CanTransact() { return false; }
3760 virtual void CancelTransaction(int32 Index) { }
3761#endif
3762
3763public:
3768 {
3770 checkSlow(IsThisNotNull(this, "UEngine::GetEditorSubsystemBase"));
3772 return EngineSubsystemCollection.GetSubsystem<UEngineSubsystem>(SubsystemClass);
3773 }
3774
3778 template <typename TSubsystemClass>
3780 {
3782 checkSlow(IsThisNotNull(this, "UEngine::GetEditorSubsystem"));
3784 return EngineSubsystemCollection.GetSubsystem<TSubsystemClass>(TSubsystemClass::StaticClass());
3785 }
3786
3790 template <typename TSubsystemClass>
3792 {
3793 return EngineSubsystemCollection.GetSubsystemArrayCopy<TSubsystemClass>(TSubsystemClass::StaticClass());
3794 }
3795
3799 template <typename TSubsystemClass>
3801 {
3802 static_assert(TIsDerivedFrom<TSubsystemClass, UEngineSubsystem>::IsDerived, "TSubsystemClass must be derived from UEngineSubsystem");
3803 return EngineSubsystemCollection.ForEachSubsystem([Operation=MoveTemp(Operation)](UEngineSubsystem* Subsystem){
3804 Operation(CastChecked<TSubsystemClass>(Subsystem));
3805 }, TSubsystemClass::StaticClass());
3806 }
3807
3808protected:
3810
3811public:
3821
3829 ENGINE_API void ExecEngineStat(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* InName);
3830
3837 ENGINE_API bool IsEngineStat(const FString& InName);
3838
3847 ENGINE_API void SetEngineStat(UWorld* World, FCommonViewportClient* ViewportClient, const FString& InName, const bool bShow);
3848
3857 ENGINE_API void SetEngineStats(UWorld* World, FCommonViewportClient* ViewportClient, const TArray<FString>& InNames, const bool bShow);
3858
3872 ENGINE_API void RenderEngineStats(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 LHSX, int32& InOutLHSY, int32 RHSX, int32& InOutRHSY, const FVector* ViewLocation, const FRotator* ViewRotation);
3873
3882 ENGINE_API int32 RenderNamedEventsEnabled(FCanvas* Canvas, int32 X, int32 Y);
3883
3891 //typedef bool (UEngine::* EngineStatToggle)(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream);
3892 DECLARE_DELEGATE_RetVal_ThreeParams(bool, FEngineStatToggle, UWorld* /*World*/, FCommonViewportClient* /*ViewportClient*/, const TCHAR* /*Stream*/)
3893
3894
3905 //typedef int32(UEngine::* EngineStatRender)(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation, const FRotator* ViewRotation);
3906 DECLARE_DELEGATE_RetVal_SevenParams(int32, FEngineStatRender, UWorld* /*World*/, FViewport* /*Viewport*/, FCanvas* /*Canvas*/, int32 /*X*/, int32 /*Y*/, const FVector* /*ViewLocation*/, const FRotator* /*ViewRotation*/)
3907
3910 ENGINE_API void AddEngineStat(const FName& InCommandName, const FName& InCategoryName, const FText& InDescriptionString, FEngineStatRender InRenderFunc = nullptr, FEngineStatToggle InToggleFunc = nullptr, const bool bInIsRHS = false);
3911
3912 ENGINE_API void RemoveEngineStat(const FName& InCommandName);
3913private:
3914
3916 struct FEngineStatFuncs
3917 {
3919 FName CommandName;
3920
3922 FString CommandNameString;
3923
3925 FName CategoryName;
3926
3928 FText DescriptionString;
3929
3932 FEngineStatRender RenderFunc;
3933
3936 FEngineStatToggle ToggleFunc;
3937
3939 bool bIsRHS;
3940
3942 FEngineStatFuncs(const FName& InCommandName, const FName& InCategoryName, const FText& InDescriptionString, FEngineStatRender InRenderFunc, FEngineStatToggle InToggleFunc, const bool bInIsRHS = false)
3943 : CommandName(InCommandName)
3944 , CommandNameString(InCommandName.ToString())
3945 , CategoryName(InCategoryName)
3946 , DescriptionString(InDescriptionString)
3947 , RenderFunc(InRenderFunc)
3948 , ToggleFunc(InToggleFunc)
3949 , bIsRHS(bInIsRHS)
3950 {
3951 CommandNameString.RemoveFromStart(TEXT("STAT_"));
3952 }
3953 };
3954
3956 TArray<FEngineStatFuncs> EngineStats;
3957
3958 // Helper struct that registers itself with the output redirector and copies off warnings
3959 // and errors that we'll overlay on the client viewport
3960 struct FErrorsAndWarningsCollector;
3961 TPimplPtr<FErrorsAndWarningsCollector> ErrorsAndWarningsCollector;
3962
3963private:
3964
3972 ENGINE_API bool ToggleStatFPS(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3973 ENGINE_API bool ToggleStatDetailed(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3974 ENGINE_API bool ToggleStatHitches(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3975 ENGINE_API bool ToggleStatNamedEvents(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3976 ENGINE_API bool ToggleStatVerboseNamedEvents(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3977 ENGINE_API bool ToggleStatUnit(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3978#if !UE_BUILD_SHIPPING
3979 ENGINE_API bool PostStatSoundModulatorHelp(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3980 ENGINE_API bool ToggleStatUnitCriticalPath(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3981 ENGINE_API bool ToggleStatUnitMax(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3982 ENGINE_API bool ToggleStatUnitGraph(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3983 ENGINE_API bool ToggleStatUnitTime(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3984 ENGINE_API bool ToggleStatRaw(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3985 ENGINE_API bool ToggleStatParticlePerf(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3986 ENGINE_API bool ToggleStatTSR(UWorld* World, FCommonViewportClient* ViewportClient, const TCHAR* Stream = nullptr);
3987#endif
3988
4000#if !UE_BUILD_SHIPPING
4001 ENGINE_API int32 RenderStatVersion(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4002#endif // !UE_BUILD_SHIPPING
4003 ENGINE_API int32 RenderStatFPS(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4004 ENGINE_API int32 RenderStatHitches(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4005 ENGINE_API int32 RenderStatSummary(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4006 ENGINE_API int32 RenderStatColorList(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4007 ENGINE_API int32 RenderStatLevels(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4008 ENGINE_API int32 RenderStatLevelMap(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4009 ENGINE_API int32 RenderStatUnit(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4010 ENGINE_API int32 RenderStatDrawCount(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4011#if !UE_BUILD_SHIPPING
4012 ENGINE_API int32 RenderStatSoundReverb(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4013 ENGINE_API int32 RenderStatSoundMixes(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4014 ENGINE_API int32 RenderStatSoundModulators(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4015 ENGINE_API int32 RenderStatSoundWaves(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4016 ENGINE_API int32 RenderStatAudioStreaming(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4017 ENGINE_API int32 RenderStatSoundCues(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4018 ENGINE_API int32 RenderStatSounds(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4019 ENGINE_API int32 RenderStatParticlePerf(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4020#endif // !UE_BUILD_SHIPPING
4021 ENGINE_API int32 RenderStatAI(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4022 ENGINE_API int32 RenderStatTimecode(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4023 ENGINE_API int32 RenderStatFrameCounter(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4024#if STATS
4025 ENGINE_API int32 RenderStatSlateBatches(UWorld* World, FViewport* Viewport, FCanvas* Canvas, int32 X, int32 Y, const FVector* ViewLocation = nullptr, const FRotator* ViewRotation = nullptr);
4026#endif
4027
4028 FDelegateHandle HandleScreenshotCapturedDelegateHandle;
4029
4030public:
4033};
4034
4036extern ENGINE_API class UEngine* GEngine;
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
EFrameHitchType
Definition ChartCreation.h:19
EDynamicResolutionStatus
Definition Engine.h:112
ENGINE_API class UEngine * GEngine
Definition UnrealEngine.cpp:427
EGetWorldErrorMode
Definition Engine.h:63
EFullyLoadPackageType
Definition Engine.h:79
@ FULLYLOAD_Always
Definition Engine.h:87
@ FULLYLOAD_Game_PreLoadClass
Definition Engine.h:83
@ FULLYLOAD_Mutator
Definition Engine.h:89
@ FULLYLOAD_MAX
Definition Engine.h:90
@ FULLYLOAD_Map
Definition Engine.h:81
@ FULLYLOAD_Game_PostLoadClass
Definition Engine.h:85
ETransitionType
Definition Engine.h:99
EGarbageCollectionType
Definition Engine.h:697
bool IsThisNotNull(const void *This, const ANSICHAR *Function)
Definition CoreGlobals.cpp:999
FORCEINLINE bool IsRunningCommandlet()
Definition CoreGlobals.h:247
#define GLog
Definition CoreGlobals.h:95
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
@ ForceInit
Definition CoreMiscDefines.h:155
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
bool IsRunningDedicatedServer()
Definition CoreMisc.h:152
#define TEXT(x)
Definition Platform.h:1272
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
FPlatformTypes::uint64 uint64
A 64-bit unsigned integer.
Definition Platform.h:1117
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:58
#define DECLARE_DELEGATE(DelegateName)
Definition DelegateCombinations.h:20
#define DECLARE_DELEGATE_TwoParams(DelegateName, Param1Type, Param2Type)
Definition DelegateCombinations.h:57
#define DECLARE_EVENT(OwningType, EventName)
Definition DelegateCombinations.h:32
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
#define DECLARE_EVENT_OneParam(OwningType, EventName, Param1Type)
Definition DelegateCombinations.h:51
#define DECLARE_MULTICAST_DELEGATE(DelegateName)
Definition DelegateCombinations.h:23
#define DECLARE_DELEGATE_RetVal_SevenParams(ReturnValueType, DelegateName, Param1Type, Param2Type, Param3Type, Param4Type, Param5Type, Param6Type, Param7Type)
Definition DelegateCombinations.h:108
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
#define DECLARE_DELEGATE_RetVal_ThreeParams(ReturnValueType, DelegateName, Param1Type, Param2Type, Param3Type)
Definition DelegateCombinations.h:72
#define DECLARE_EVENT_TwoParams(OwningType, EventName, Param1Type, Param2Type)
Definition DelegateCombinations.h:60
EDynamicResolutionStateEvent
Definition DynamicResolutionState.h:21
ENetMode
Definition EngineBaseTypes.h:937
ETravelType
Definition EngineBaseTypes.h:726
ETeleportType
Definition EngineTypes.h:2401
EPackageAutoSaveType
Definition EngineTypes.h:4266
return true
Definition ExternalRpcRegistry.cpp:601
#define X(Name, Desc)
Definition FormatStringSan.h:47
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
void Init()
Definition LockFreeList.h:4
@ Num
Definition MetalRHIPrivate.h:234
const bool
Definition NetworkReplayStreaming.h:178
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define GENERATED_BODY(...)
Definition ObjectMacros.h:765
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
U & ObjectPtrWrap(T &Value)
Definition ObjectPtr.h:1755
EPrintStaleReferencesOptions
Definition PrintStaleReferencesOptions.h:10
USkinnedMeshComponent float
Definition SkinnedMeshComponent.h:60
#define UE_LOGSTATUS(Verbosity, STRING,...)
Definition StatusLog.h:16
void SetPriorityAndAffinityOnGameThread()
Definition UnrealEngine.cpp:19609
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Actor.h:257
Definition PlayerController.h:261
Definition CoreUObject.Build.cs:7
Definition DynamicRenderScaling.h:172
Definition Engine.Build.cs:7
Definition Archive.h:1208
Definition AudioDeviceHandle.h:28
Definition AudioDeviceManager.h:87
Definition AudioDevice.h:417
Definition CanvasTypes.h:211
Definition ViewportClient.h:417
Definition IDelegateInstance.h:14
Definition Exec.h:29
Definition NameTypes.h:617
Definition SubsystemCollection.h:180
Definition OutputDevice.h:133
Definition ChartCreation.h:141
Definition RenderGraphBuilder.h:49
Definition ReferenceChainSearch.h:64
Definition UObjectGlobals.h:2492
Definition RunnableThread.h:20
Definition SceneViewExtension.h:316
Definition UnrealEngine.cpp:1508
Definition World.h:194
Definition Text.h:385
Definition TypeContainer.h:426
Definition UnrealClient.h:412
Definition IAnalyticsProvider.h:52
Definition DynamicResolutionState.h:32
Definition UnrealEngine.h:384
Definition IHeadMountedDisplay.h:38
Definition IMessageRpcClient.h:19
Definition ChartCreation.h:47
Definition IPortalRpcLocator.h:13
Definition IPortalServiceLocator.h:11
Definition StereoRendering.h:40
Definition InputDevice.Build.cs:6
Definition PhysicsCore.Build.cs:6
Definition SViewport.h:31
Definition Array.h:670
Definition EnumAsByte.h:22
Definition AssetRegistryState.h:50
Definition Array.h:64
Definition IndirectArray.h:20
Definition UnrealString.h.inl:34
Definition SharedPointer.h:153
Definition SubclassOf.h:30
Definition ActorComponent.h:152
Definition ActorFolder.h:17
Definition AssetManager.h:84
Definition AvoidanceManager.h:91
Definition Canvas.h:159
Definition Class.h:3793
Definition Console.h:69
Definition EngineCustomTimeStep.h:36
Definition EngineSubsystem.h:22
Definition Engine.h:711
TSharedRef< IPortalServiceLocator > GetServiceLocator()
Definition Engine.h:3010
virtual void ProcessToggleFreezeCommand(UWorld *InWorld)
Definition Engine.h:2864
virtual void CreateStartupAnalyticsAttributes(TArray< struct FAnalyticsEventAttribute > &StartSessionAttributes) const
Definition Engine.h:3598
TArray< TSharedPtr< IPerformanceDataConsumer > > ActivePerformanceDataConsumers
Definition Engine.h:3038
FOnNetworkFailure & OnNetworkFailure()
Definition Engine.h:2331
bool PrepareMapChange(UWorld *InWorld, const TArray< FName > &LevelNames)
Definition Engine.h:3722
virtual void RemapGamepadControllerIdForPIE(class UGameViewportClient *InGameViewport, int32 &ControllerId)
Definition Engine.h:3003
DECLARE_EVENT_ThreeParams(UEngine, FOnNetworkDDoSEscalation, UWorld *, UNetDriver *, FString)
FOnNetworkFailure NetworkFailureEvent
Definition Engine.h:1930
void ForEachEngineSubsystem(TFunctionRef< void(TSubsystemClass *)> Operation) const
Definition Engine.h:3800
void ConditionalCommitMapChange(UWorld *InWorld)
Definition Engine.h:3723
virtual void SetMapBuildCancelled(bool InCancelled)
Definition Engine.h:2698
DECLARE_EVENT_ThreeParams(UEngine, FOnNewStatRegistered, const FName &, const FName &, const FText &)
FPostRenderDelegateEx & GetPostRenderDelegateEx()
Definition Engine.h:1911
void IncrementGlobalNetTravelCount()
Definition Engine.h:3246
void SetSelectedMaterialColor(const FLinearColor &InSelectedMaterialColor)
Definition Engine.h:1986
bool IsVanillaProduct() const
Definition Engine.h:3605
FOnTravelFailure TravelFailureEvent
Definition Engine.h:1920
FObjectSubsystemCollection< UEngineSubsystem > EngineSubsystemCollection
Definition Engine.h:3809
virtual int32 GetSpriteCategoryIndex(const FName &InSpriteCategory)
Definition Engine.h:2756
void SetSubduedSelectionOutlineColor(const FLinearColor &InSubduedSelectionOutlineColor)
Definition Engine.h:1990
void BroadcastNetworkDDosSEscalation(UWorld *World, UNetDriver *NetDriver, FString SeverityCategory)
Definition Engine.h:2346
virtual bool ShouldDrawBrushWireframe(class AActor *InActor)
Definition Engine.h:2685
TSharedPtr< class IEyeTracker, ESPMode::ThreadSafe > EyeTrackingDevice
Definition Engine.h:2162
virtual bool Experimental_ShouldPreDuplicateMap(const FName MapName) const
Definition Engine.h:3134
void ResumeDynamicResolution()
Definition Engine.h:2010
virtual bool IsAutosaving(const EPackageAutoSaveType AutoSaveType=EPackageAutoSaveType::Transient) const
Definition Engine.h:3601
FPendingLevelUpdate OnOverridePendingNetGameUpdate
Definition Engine.h:3626
UEngineCustomTimeStep * GetCustomTimeStep() const
Definition Engine.h:2529
bool bIsInitialized
Definition Engine.h:1947
TSharedPtr< class IStereoRendering, ESPMode::ThreadSafe > StereoRenderingDevice
Definition Engine.h:2153
FString GetMapChangeFailureDescription(UWorld *InWorld)
Definition Engine.h:3725
DECLARE_EVENT_OneParam(UEngine, FWorldAddedEvent, UWorld *)
TSharedPtr< FPerformanceTrackingChart > ActivePerformanceChart
Definition Engine.h:3030
class IDynamicResolutionState * GetDynamicResolutionState()
Definition Engine.h:2022
virtual void RedrawViewports(bool bShouldPresent=true)
Definition Engine.h:3439
uint32 GetGlobalNetTravelCount() const
Definition Engine.h:3251
float GetDisplayGamma() const
Definition Engine.h:2995
FWorldDestroyedEvent & OnWorldDestroyed()
Definition Engine.h:2174
TSharedPtr< FTypeContainer > ServiceDependencies
Definition Engine.h:3024
FBrowseURL OnOverrideBrowseURL
Definition Engine.h:3619
TArray< TSubsystemClass * > GetEngineSubsystemArrayCopy() const
Definition Engine.h:3791
TIndirectArray< FWorldContext > WorldList
Definition Engine.h:3628
DECLARE_EVENT_ThreeParams(UEngine, FOnNetworkLagStateChanged, UWorld *, UNetDriver *, ENetworkLagState::Type)
TSharedPtr< FSceneViewExtensions > ViewExtensions
Definition Engine.h:2159
virtual void ResetPIEAudioSetting(UWorld *CurrentPieWorld)
Definition Engine.h:2999
virtual bool ShouldDoAsyncEndOfFrameTasks() const
Definition Engine.h:3603
const FLinearColor & GetSelectionOutlineColor() const
Definition Engine.h:1973
FOnTravelFailure & OnTravelFailure()
Definition Engine.h:2322
DECLARE_EVENT_OneParam(UEngine, FWorldDestroyedEvent, UWorld *)
virtual void TriggerStreamingDataRebuild()
Definition Engine.h:3441
virtual UWorld * CreatePIEWorldByDuplication(FWorldContext &Context, UWorld *InWorld, FString &PlayWorldMapName)
Definition Engine.h:3125
virtual bool OnlyLoadEditorVisibleLevelsInPIE() const
Definition Engine.h:2714
bool CommitMapChange(UWorld *InWorld)
Definition Engine.h:3719
bool IsPreparingMapChange(UWorld *InWorld)
Definition Engine.h:3721
virtual bool IsRenderingSuspended() const
Definition Engine.h:2553
virtual bool IsSettingUpPlayWorld() const
Definition Engine.h:2958
FWorldAddedEvent & OnWorldAdded()
Definition Engine.h:2168
float RunningAverageDeltaTime
Definition Engine.h:3169
DECLARE_EVENT_FourParams(UEngine, FOnNetworkFailure, UWorld *, UNetDriver *, ENetworkFailure::Type, const FString &)
virtual bool IsControllerIdUsingPlatformUserId() const
Definition Engine.h:2630
TSharedPtr< IMessageRpcClient > PortalRpcClient
Definition Engine.h:3018
virtual bool AllowSelectTranslucent() const
Definition Engine.h:2707
FEngineHitchDetectedDelegate OnHitchDetectedDelegate
Definition Engine.h:2843
virtual bool IsInitialized() const
Definition Engine.h:2182
virtual void FocusNextPIEWorld(UWorld *CurrentPieWorld, bool previous=false)
Definition Engine.h:2997
UWorld * GetWorldFromContextObjectChecked(const UObject *Object) const
Definition Engine.h:2949
static ENGINE_API FOnNewStatRegistered NewStatDelegate
Definition Engine.h:3820
DECLARE_EVENT_ThreeParams(UEngine, FOnTravelFailure, UWorld *, ETravelFailure::Type, const FString &)
TSharedPtr< class IXRTrackingSystem, ESPMode::ThreadSafe > XRSystem
Definition Engine.h:2156
TSubsystemClass * GetEngineSubsystem() const
Definition Engine.h:3779
virtual bool GetMapBuildCancelled() const
Definition Engine.h:2688
UEngineSubsystem * GetEngineSubsystemBase(TSubclassOf< UEngineSubsystem > SubsystemClass) const
Definition Engine.h:3767
const FLinearColor & GetHoveredMaterialColor() const
Definition Engine.h:1977
virtual bool AreEditorAnalyticsEnabled() const
Definition Engine.h:3597
FOnNetworkDDoSEscalation & OnNetworkDDoSEscalation()
Definition Engine.h:2344
void BroadcastNetworkLagStateChanged(UWorld *World, UNetDriver *NetDriver, ENetworkLagState::Type LagType)
Definition Engine.h:2338
const TIndirectArray< FWorldContext > & GetWorldContexts() const
Definition Engine.h:3522
FSimpleMulticastDelegate & OnTimecodeProviderChanged()
Definition Engine.h:2574
FWorldDestroyedEvent WorldDestroyedEvent
Definition Engine.h:3175
void SetDynamicResolutionUserSetting(bool Enable)
Definition Engine.h:2049
virtual class UGameViewportClient * GetNextPIEViewport(UGameViewportClient *CurrentViewport)
Definition Engine.h:3001
virtual bool PreferToStreamLevelsInPIE() const
Definition Engine.h:2737
FWorldAddedEvent WorldAddedEvent
Definition Engine.h:3172
FOnNetworkLagStateChanged & OnNetworkLagStateChanged()
Definition Engine.h:2336
DECLARE_DELEGATE_RetVal_ThreeParams(bool, FEngineStatToggle, UWorld *, FCommonViewportClient *, const TCHAR *) DECLARE_DELEGATE_RetVal_SevenParams(int32
FOnNetworkLagStateChanged NetworkLagStateChangedEvent
Definition Engine.h:1936
bool IsReadyForMapChange(UWorld *InWorld)
Definition Engine.h:3720
bool GetDynamicResolutionUserSetting() const
Definition Engine.h:2039
void BroadcastTravelFailure(UWorld *InWorld, ETravelFailure::Type FailureType, const FString &ErrorString=TEXT(""))
Definition Engine.h:2324
TSharedPtr< IPortalServiceLocator > ServiceLocator
Definition Engine.h:3027
virtual TSharedPtr< class SViewport > GetGameViewportWidget() const
Definition Engine.h:2989
virtual bool NetworkRemapPath(UPendingNetGame *PendingNetGame, FString &Str, bool bReading=true)
Definition Engine.h:3390
const FLinearColor & GetSelectedMaterialColor() const
Definition Engine.h:1971
void CancelPendingMapChange(UWorld *InWorld)
Definition Engine.h:3728
virtual void PostCreatePIEWorld(UWorld *InWorld)
Definition Engine.h:3126
FPreRenderDelegateEx & GetPreRenderDelegateEx()
Definition Engine.h:1908
void SetSelectionOutlineColor(const FLinearColor &InSelectionOutlineColor)
Definition Engine.h:1988
FSimpleMulticastDelegate & OnCustomTimeStepChanged()
Definition Engine.h:2532
FAudioDeviceHandle MainAudioDeviceHandle
Definition Engine.h:2125
FOnNetworkDDoSEscalation NetworkDDoSEscalationEvent
Definition Engine.h:1944
const FLinearColor & GetSubduedSelectionOutlineColor() const
Definition Engine.h:1975
virtual void ProcessToggleFreezeStreamingCommand(UWorld *InWorld)
Definition Engine.h:2870
UTimecodeProvider * GetTimecodeProvider() const
Definition Engine.h:2571
TSharedPtr< IPortalRpcLocator > PortalRpcLocator
Definition Engine.h:3021
static FString GetValueAsString(const TCHAR *EnumPath, const T EnumeratorValue)
Definition Class.h:3161
Definition Font.h:111
Definition Class.h:2476
Definition GameInstance.h:152
Definition GameUserSettings.h:39
Definition GameViewportClient.h:71
Definition Level.h:423
Definition LocalPlayer.h:169
Definition MaterialInstanceDynamic.h:15
Definition MaterialInterface.h:296
Definition Material.h:432
Definition NavigationSystemBase.h:245
Definition NavigationSystemConfig.h:15
Definition NetConnection.h:284
Definition NetDriver.h:799
Definition ObjectReferencer.h:17
Definition Object.h:95
Definition PendingNetGame.h:24
Definition PhysicalMaterial.h:104
Definition PhysicsCollisionHandler.h:16
Definition Texture2DArray.h:16
Definition Texture2D.h:26
Definition Texture.h:1219
Definition TimecodeProvider.h:41
Definition VolumeTexture.h:17
Definition World.h:918
Definition EngineTypes.h:47
Type
Definition EngineTypes.h:49
Definition GenericPlatformFile.h:25
Definition NetEnums.h:22
Type
Definition NetEnums.h:24
Definition EngineBaseTypes.h:629
Type
Definition EngineBaseTypes.h:631
Definition SceneComponent.h:24
Type
Definition RHIFeatureLevel.h:20
Definition EngineBaseTypes.h:658
Type
Definition EngineBaseTypes.h:660
Definition EngineTypes.h:1262
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition Engine.h:618
Definition Color.h:486
Definition SoftObjectPath.h:767
Definition Engine.h:536
Definition Engine.h:132
DynamicRenderScaling::TMap< float > ResolutionFractionApproximations
Definition Engine.h:138
DynamicRenderScaling::TMap< float > ResolutionFractionUpperBounds
Definition Engine.h:141
EDynamicResolutionStatus Status
Definition Engine.h:134
Definition FrameRate.h:21
Definition Stack.h:114
Definition Engine.h:148
Definition Engine.h:605
Definition CoreMiscDefines.h:524
Definition Engine.h:248
Definition Engine.h:179
FLevelStreamingStatus()
Definition Engine.h:199
Definition Color.h:48
static UE_FORCEINLINE_HINT void * Memzero(void *Dest, SIZE_T Count)
Definition UnrealMemory.h:131
Definition Engine.h:286
~FNamedNetDriver()
Definition Engine.h:306
FNamedNetDriver(class UNetDriver *InNetDriver, FNetDriverDefinition *InNetDriverDef)
Definition Engine.h:301
Definition Engine.h:215
Definition ObjectKey.h:19
Definition CoreMiscDefines.h:470
Definition Engine.h:662
Definition UnrealType.h:6865
Definition Engine.h:565
Definition SoftObjectPath.h:539
Definition SoftObjectPath.h:56
Definition Engine.h:491
Definition Engine.h:512
Definition Engine.h:649
Definition EngineBaseTypes.h:799
Definition Engine.h:334
void AddRef(TObjectPtr< UWorld > &WorldPtr)
Definition Engine.h:441
FWorldContext()
Definition Engine.h:465
UWorld * World() const
Definition Engine.h:460
void RemoveRef(UWorld *&WorldPtr)
Definition Engine.h:448
Definition UnrealTypeTraits.h:40
Definition ObjectPtr.h:488
Definition PimplPtr.h:50
static CORE_API const TVector2< double > UnitVector
Definition Vector2D.h:70