42#if (UE_BUILD_SHIPPING && !WITH_EDITOR)
43 #define UE_BUILD_OPTIMIZED_SHOWFLAGS 1
45 #define UE_BUILD_OPTIMIZED_SHOWFLAGS 0
61#if PLATFORM_USE_SHOWFLAGS_ALWAYS_BITFIELD
62 #define SHOWFLAG_ALWAYS_ACCESSIBLE(a,...) uint32 a : 1; void Set##a(bool bVal){ a = bVal ? 1:0; }
65 #define SHOWFLAG_ALWAYS_ACCESSIBLE(a,...) bool a; void Set##a(bool bVal){ a = bVal; }
68 #if UE_BUILD_OPTIMIZED_SHOWFLAGS
69 #if PLATFORM_USE_SHOWFLAGS_ALWAYS_BITFIELD
70 #define SHOWFLAG_FIXED_IN_SHIPPING(v,a,...) uint32 _padding_##a : 1; static const bool a = v; void Set##a(bool bVal){}
72 #define SHOWFLAG_FIXED_IN_SHIPPING(v,a,...) bool _padding_##a; static const bool a = v; void Set##a(bool bVal){}
75 #define SHOWFLAG_FIXED_IN_SHIPPING(v,a,b,c) SHOWFLAG_ALWAYS_ACCESSIBLE(a,b,c)
83 #define SHOWFLAG_ALWAYS_ACCESSIBLE(a,...) SF_##a,
112 #define SHOWFLAG_ALWAYS_ACCESSIBLE(a,b,c) LocNames.Add( TEXT(PREPROCESSOR_TO_STRING(a)), c);
113 #define SHOWFLAG_FIXED_IN_SHIPPING(v,a,b,c) LocNames.Add( TEXT(PREPROCESSOR_TO_STRING(a)), c);
118 LocNames.Add(
TEXT(
"CullDistanceVolume"),
NSLOCTEXT(
"UnrealEd",
"CullDistanceVolumeSF",
"Cull Distance"));
119 LocNames.Add(
TEXT(
"LevelStreamingVolume"),
NSLOCTEXT(
"UnrealEd",
"LevelStreamingVolumeSF",
"Level Streaming"));
120 LocNames.Add(
TEXT(
"LightmassCharacterIndirectDetailVolume"),
NSLOCTEXT(
"UnrealEd",
"LightmassCharacterIndirectDetailVolumeSF",
"Lightmass Character Indirect Detail"));
121 LocNames.Add(
TEXT(
"LightmassImportanceVolume"),
NSLOCTEXT(
"UnrealEd",
"LightmassImportanceVolumeSF",
"Lightmass Importance"));
122 LocNames.Add(
TEXT(
"MassiveLODOverrideVolume"),
NSLOCTEXT(
"UnrealEd",
"MassiveLODOverrideVolumeSF",
"Massive LOD Override"));
123 LocNames.Add(
TEXT(
"NavMeshBoundsVolume"),
NSLOCTEXT(
"UnrealEd",
"NavMeshBoundsVolumeSF",
"NavMesh Bounds"));
124 LocNames.Add(
TEXT(
"NavModifierVolume"),
NSLOCTEXT(
"UnrealEd",
"NavModifierVolumeSF",
"Nav Modifier"));
125 LocNames.Add(
TEXT(
"PainCausingVolume"),
NSLOCTEXT(
"UnrealEd",
"PainCausingVolumeSF",
"Pain Causing"));
127 LocNames.Add(
TEXT(
"PostProcessVolume"),
NSLOCTEXT(
"UnrealEd",
"PostProcessVolumeSF",
"Post Process"));
128 LocNames.Add(
TEXT(
"PrecomputedVisibilityOverrideVolume"),
NSLOCTEXT(
"UnrealEd",
"PrecomputedVisibilityOverrideVolumeSF",
"Precomputed Visibility Override"));
129 LocNames.Add(
TEXT(
"PrecomputedVisibilityVolume"),
NSLOCTEXT(
"UnrealEd",
"PrecomputedVisibilityVolumeSF",
"Precomputed Visibility"));
132 LocNames.Add(
TEXT(
"CameraBlockingVolume"),
NSLOCTEXT(
"UnrealEd",
"CameraBlockingVolumeSF",
"Camera Blocking"));
133 LocNames.Add(
TEXT(
"HierarchicalLODVolume"),
NSLOCTEXT(
"UnrealEd",
"HierarchicalLODVolumeSF",
"Hierarchical LOD"));
135 LocNames.Add(
TEXT(
"MeshMergeCullingVolume"),
NSLOCTEXT(
"UnrealEd",
"MeshMergeCullingVolumeSF",
"Mesh Merge Culling"));
136 LocNames.Add(
TEXT(
"VolumetricLightmapDensityVolume"),
NSLOCTEXT(
"UnrealEd",
"VolumetricLightmapDensityVolumeSF",
"Volumetric Lightmap Density"));
140 check(InName.Len() > 0);
147 if (FindCustomShowFlagDisplayName(InName, OutText))
168 #define SHOWFLAG_ALWAYS_ACCESSIBLE(a,b,c) case SF_##a: return b;
169 #define SHOWFLAG_FIXED_IN_SHIPPING(v,a,b,c) case SF_##a: return b;
196 TEXT(
"Editor,LargeVertices,Selection,HitProxies,PropertyColoration,LightInfluences,LightRadius,Game"));
226 SetStereoRendering(
false);
366 #define SHOWFLAG_ALWAYS_ACCESSIBLE(a,...) if( !Sink.OnEngineShowFlag((uint32)SF_##a, TEXT(PREPROCESSOR_TO_STRING(a))) ) { return; }
390#if PLATFORM_USE_SHOWFLAGS_ALWAYS_BITFIELD
418#if UE_ENABLE_DEBUG_DRAWING
436 SetNavigation(
false);
486 SetStereoRendering(
false);
498 SetPhysicsField(
false);
555 check( p !=
nullptr );
562 while(*p && *p != (
TCHAR)
',')
593 void UpdateNewCustomShowFlags();
596 static ENGINE_API bool FindCustomShowFlagDisplayName(
const FString& InName,
FText& OutText);
628template<EShowFlagShippingValue ShippingValue = EShowFlagShippingValue::Dynamic>
#define check(expr)
Definition AssertionMacros.h:314
#define checkNoEntry()
Definition AssertionMacros.h:316
void EnsureRetrievingVTablePtrDuringCtor(const TCHAR *CtorSignature)
Definition CoreMisc.cpp:436
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EViewModeIndex
Definition EngineBaseTypes.h:962
#define NSLOCTEXT(InNamespace, InKey, InTextLiteral)
Definition Internationalization.h:300
void Init()
Definition LockFreeList.h:4
ENGINE_API void ApplyViewMode(EViewModeIndex ViewModeIndex, bool bPerspective, FEngineShowFlags &EngineShowFlags)
Definition ShowFlags.cpp:292
ENGINE_API void EngineShowFlagOrthographicOverride(bool bIsPerspective, FEngineShowFlags &EngineShowFlags)
Definition ShowFlags.cpp:770
EShowFlagShippingValue
Definition ShowFlags.h:621
const TCHAR * GetViewModeName(EViewModeIndex ViewModeIndex)
Definition ShowFlags.cpp:947
EShowFlagInitMode
Definition ShowFlags.h:35
@ ESFIM_VREditing
Definition ShowFlags.h:38
@ ESFIM_Game
Definition ShowFlags.h:36
@ ESFIM_Editor
Definition ShowFlags.h:37
@ ESFIM_All0
Definition ShowFlags.h:39
EShowFlagGroup
Definition ShowFlags.h:15
@ SFG_Lumen
Definition ShowFlags.h:25
@ SFG_PostProcess
Definition ShowFlags.h:18
@ SFG_Transient
Definition ShowFlags.h:28
@ SFG_Max
Definition ShowFlags.h:30
@ SFG_Normal
Definition ShowFlags.h:16
@ SFG_Hidden
Definition ShowFlags.h:27
@ SFG_LightTypes
Definition ShowFlags.h:22
@ SFG_LightingComponents
Definition ShowFlags.h:23
@ SFG_CollisionModes
Definition ShowFlags.h:19
@ SFG_Visualize
Definition ShowFlags.h:21
@ SFG_Nanite
Definition ShowFlags.h:26
@ SFG_LightingFeatures
Definition ShowFlags.h:24
@ SFG_Developer
Definition ShowFlags.h:20
@ SFG_Advanced
Definition ShowFlags.h:17
@ SFG_Custom
Definition ShowFlags.h:29
ENGINE_API EViewModeIndex FindViewMode(const FEngineShowFlags &EngineShowFlags)
Definition ShowFlags.cpp:782
ENGINE_API void EngineShowFlagOverride(EShowFlagInitMode ShowFlagInitMode, EViewModeIndex ViewModeIndex, FEngineShowFlags &EngineShowFlags, bool bCanDisableTonemapper)
Definition ShowFlags.cpp:435
#define STRUCT_OFFSET(struc, member)
Definition UnrealTemplate.h:218
static CORE_API FText FromString(const ANSICHAR *String)
Definition Text.cpp:1081
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
U16 Index
Definition radfft.cpp:71
Definition ShowFlags.h:56
void EngineOverrideCustomShowFlagsFromCVars()
Definition ShowFlags.cpp:1189
static bool CanBeToggledInEditor(const TCHAR *Name)
Definition ShowFlags.h:192
ENGINE_API void SetSingleFlag(uint32 Index, bool bSet)
Definition ShowFlags.cpp:179
TBitArray CustomShowFlags
Definition ShowFlags.h:100
static void IterateAllFlags(T &Sink)
Definition ShowFlags.h:364
EShowFlag
Definition ShowFlags.h:85
@ SF_FirstCustom
Definition ShowFlags.h:87
static ENGINE_API bool IsForceFlagSet(uint32 Index)
Definition ShowFlags.cpp:168
ENGINE_API bool SetFromString(const TCHAR *In)
Definition ShowFlags.cpp:85
void DisableAdvancedFeatures()
Definition ShowFlags.h:201
bool IsVisualizeCalibrationEnabled() const
Definition ShowFlags.h:289
static ENGINE_API FString FindNameByIndex(uint32 InIndex)
Definition ShowFlags.cpp:258
ECustomShowFlag
Definition ShowFlags.h:93
static ENGINE_API FSimpleMulticastDelegate OnCustomShowFlagRegistered
Definition ShowFlags.h:103
static ENGINE_API void IterateCustomFlags(TFunctionRef< bool(uint32, const FString &)> Functor)
Definition ShowFlags.cpp:1093
FEngineShowFlags()
Definition ShowFlags.h:186
ENGINE_API bool GetSingleFlag(uint32 Index) const
Definition ShowFlags.cpp:142
static ENGINE_API int32 FindIndexByName(const TCHAR *Name, const TCHAR *CommaSeparatedNames=0)
Definition ShowFlags.cpp:201
ENGINE_API FString ToString() const
Definition ShowFlags.cpp:38
static ENGINE_API ECustomShowFlag RegisterCustomShowFlag(const TCHAR *Name, bool DefaultEnabled, EShowFlagGroup Group, FText DisplayName)
Definition ShowFlags.cpp:1032
void DisableFeaturesForUnlit(bool bAllowAtmosphere=false)
Definition ShowFlags.h:272
static bool IsNameThere(const TCHAR *Name, const TCHAR *CommaSeparatedNames)
Definition ShowFlags.h:345
void EnableAdvancedFeatures()
Definition ShowFlags.h:240
FEngineShowFlags(EShowFlagInitMode InitMode)
Definition ShowFlags.h:180
static EShowFlagGroup FindShowFlagGroup(const TCHAR *Name)
Definition ShowFlags.h:157
static bool FindShowFlagDisplayName(const FString &InName, FText &OutText)
Definition ShowFlags.h:106
static UE_FORCEINLINE_HINT void * Memset(void *Dest, uint8 Char, SIZE_T Count)
Definition UnrealMemory.h:119
Definition ShowFlags.h:630
bool IsEnabled(const FEngineShowFlags &ShowFlags)
Definition ShowFlags.h:641
TCustomShowFlag(const TCHAR *Name, bool DefaultEnabled, EShowFlagGroup Group=SFG_Custom, FText DisplayName={})
Definition ShowFlags.h:631
bool SetEnabled(FEngineShowFlags &ShowFlags, bool bSet)
Definition ShowFlags.h:666