UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SInvalidationPanel.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"
6#include "UObject/GCObject.h"
7#include "Layout/Visibility.h"
8#include "Layout/Geometry.h"
9#include "Widgets/SWidget.h"
10#include "Layout/Children.h"
14#include "Input/HittestGrid.h"
15
16class FPaintArgs;
17class FSlateRenderDataHandle;
19class SWindow;
20
21
22template <>
24{
25 static constexpr bool SupportsInvalidation() { return true; }
26};
27
29{
31public:
33#if UE_SLATE_WITH_DYNAMIC_INVALIDATION
35#endif
36 {
38 }
39 SLATE_DEFAULT_SLOT(FArguments, Content)
40#if UE_SLATE_WITH_DYNAMIC_INVALIDATION
42#endif
43#if !UE_BUILD_SHIPPING
44 SLATE_ARGUMENT(FString, DebugName)
45#endif
47
50
51#if WITH_SLATE_DEBUGGING
53 static SLATE_API void EnableInvalidationPanels(bool bEnable);
54#endif
55 SLATE_API void Construct( const FArguments& InArgs );
56
57 SLATE_API virtual FChildren* GetAllChildren() override;
58
60 SLATE_API bool GetCanCache() const;
61
63
64#if UE_SLATE_WITH_DYNAMIC_INVALIDATION
69 SLATE_API virtual bool GetUseDynamicInvalidation() const;
70
72
73 SLATE_API virtual bool SupportsInvalidationRecursive(bool bUseCachedValue = true) const override;
74#endif
75
76 //~ SWidget overrides
77 SLATE_API virtual int32 OnPaint( const FPaintArgs& Args, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, FSlateWindowElementList& OutDrawElements, int32 LayerId, const FWidgetStyle& InWidgetStyle, bool bParentEnabled ) const override;
78 SLATE_API virtual FChildren* GetChildren() override;
79#if WITH_SLATE_DEBUGGING
81#endif
82 //~ End SWidget
83
85
86protected:
87 SLATE_API virtual bool CustomPrepass(float LayoutScaleMultiplier) override;
88 SLATE_API virtual bool Advanced_IsInvalidationRoot() const override;
89 SLATE_API virtual const FSlateInvalidationRoot* Advanced_AsInvalidationRoot() const override;
92
93private:
94 void OnGlobalInvalidationToggled(bool bGlobalInvalidationEnabled);
95 bool UpdateCachePrequisites(FSlateWindowElementList& OutDrawElements, const FGeometry& AllottedGeometry, const FSlateRect& MyCullingRect, int32 LayerId, const FWidgetStyle& InWidgetStyle) const;
96
97private:
98 mutable TSharedRef<FHittestGrid> HittestGrid;
99
100 mutable TOptional<FSlateClippingState> LastClippingState;
101 mutable FGeometry LastAllottedGeometry;
102 mutable FVector2D LastClipRectSize;
103 mutable int32 LastIncomingLayerId;
104 mutable FLinearColor LastIncomingColorAndOpacity;
105
106 bool bCanCache;
107#if UE_SLATE_WITH_DYNAMIC_INVALIDATION
109#endif
110
111 mutable bool bPaintedSinceLastPrepass;
112#if SLATE_VERBOSE_NAMED_EVENTS
113 FString DebugName;
114 FString DebugTickName;
115 FString DebugPaintName;
116#endif
117 mutable bool bWasCachable;
118};
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define SLATE_BEGIN_ARGS(InWidgetType)
Definition DeclarativeSyntaxSupport.h:63
#define SLATE_END_ARGS()
Definition DeclarativeSyntaxSupport.h:116
#define SLATE_DEFAULT_SLOT(DeclarationType, SlotName)
Definition DeclarativeSyntaxSupport.h:444
#define SLATE_ARGUMENT(ArgType, ArgName)
Definition DeclarativeSyntaxSupport.h:208
#define SLATE_DECLARE_WIDGET_API(WidgetType, ParentType, ModuleApiDefine)
Definition SlateControlledConstruction.h:22
Definition ChildrenBase.h:27
Definition PaintArgs.h:23
Definition SlateInvalidationRoot.h:77
Definition SlateRect.h:26
Definition DrawElements.h:220
Definition WidgetStyle.h:15
Definition SCompoundWidget.h:22
Definition SInvalidationPanel.h:29
SLATE_API bool GetCanCache() const
Definition SInvalidationPanel.cpp:161
SLATE_API SInvalidationPanel()
Definition SInvalidationPanel.cpp:75
virtual SLATE_API bool Advanced_IsInvalidationRoot() const override
Definition SInvalidationPanel.cpp:393
virtual SLATE_API int32 PaintSlowPath(const FSlateInvalidationContext &Context) override
Definition SInvalidationPanel.cpp:408
SLATE_API ~SInvalidationPanel()
Definition SInvalidationPanel.cpp:119
virtual SLATE_API FChildren * GetAllChildren() override
Definition SInvalidationPanel.cpp:113
SLATE_API void Construct(const FArguments &InArgs)
Definition SInvalidationPanel.cpp:95
virtual SLATE_API TSharedRef< SWidget > GetRootWidget() override
Definition SInvalidationPanel.cpp:403
virtual SLATE_API const FSlateInvalidationRoot * Advanced_AsInvalidationRoot() const override
Definition SInvalidationPanel.cpp:398
SLATE_API void SetCanCache(bool InCanCache)
Definition SInvalidationPanel.cpp:233
SLATE_API void SetContent(const TSharedRef< SWidget > &InContent)
Definition SInvalidationPanel.cpp:359
virtual SLATE_API bool CustomPrepass(float LayoutScaleMultiplier) override
Definition SInvalidationPanel.cpp:369
virtual SLATE_API int32 OnPaint(const FPaintArgs &Args, const FGeometry &AllottedGeometry, const FSlateRect &MyCullingRect, FSlateWindowElementList &OutDrawElements, int32 LayerId, const FWidgetStyle &InWidgetStyle, bool bParentEnabled) const override
Definition SInvalidationPanel.cpp:288
virtual SLATE_API FChildren * GetChildren() override
Definition SInvalidationPanel.cpp:259
Definition SWindow.h:243
static SLATECORE_API const EVisibility SelfHitTestInvisible
Definition Visibility.h:26
Definition Geometry.h:40
Definition Color.h:48
Definition SlateInvalidationRoot.h:29
Definition Optional.h:131
static constexpr bool SupportsInvalidation()
Definition SInvalidationPanel.h:25
Definition SWidget.h:69