UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SViewport.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 "Misc/Attribute.h"
8#include "Input/CursorReply.h"
9#include "Input/Reply.h"
12#include "Widgets/SWidget.h"
15#include "Widgets/SWindow.h"
16
18class FPaintArgs;
21
22
23template <>
25{
26 static constexpr bool SupportsInvalidation() { return true; }
27};
28
30 : public SCompoundWidget
31{
32public:
33
48
49 SLATE_DEFAULT_SLOT( FArguments, Content )
50
51
53
54
60
61
63
64
66
67
69
70
72
73
75
76
81
82
84
85
86 SLATE_ATTRIBUTE(FVector2D, ViewportSize);
87
88 SLATE_API static UE::Slate::FDeprecateVector2DResult GetDefaultViewportSize();
89
91
95
101 SLATE_API void Construct(const FArguments& InArgs);
102
103public:
104
106 virtual bool SupportsKeyboardFocus() const override { return true; }
107
113 virtual FVector2D ComputeDesiredSize(float) const override
114 {
115 return ViewportSize.Get();
116 }
117
124
134
141
143
145
147
154
159
164
166 bool ShouldRenderDirectly() const { return bRenderDirectlyToWindow; }
167
169 bool IsStereoRenderingAllowed() const { return bEnableStereoRendering; }
170
177
185
187 bool GetIgnoreTextureAlpha(void) const
188 {
189 return bIgnoreTextureAlpha;
190 }
191
198 {
199 bEnableStereoRendering = bInEnableStereoRendering;
200 }
201
207 SLATE_API void SetActive(bool bActive);
208
209public:
210
211 // SWidget interface
212
213 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;
214 SLATE_API virtual void Tick( const FGeometry& AllottedGeometry, const double InCurrentTime, const float InDeltaTime ) override;
221 SLATE_API virtual FCursorReply OnCursorQuery( const FGeometry& MyGeometry, const FPointerEvent& CursorEvent ) const override;
225 SLATE_API virtual void OnMouseEnter( const FGeometry& MyGeometry, const FPointerEvent& MouseEvent ) override;
226 SLATE_API virtual void OnMouseLeave( const FPointerEvent& MouseEvent ) override;
227 SLATE_API virtual FReply OnMouseMove( const FGeometry& MyGeometry, const FPointerEvent& MouseEvent ) override;
228 SLATE_API virtual FReply OnMouseWheel( const FGeometry& MyGeometry, const FPointerEvent& MouseEvent ) override;
230 SLATE_API virtual FReply OnKeyDown( const FGeometry& MyGeometry, const FKeyEvent& KeyEvent ) override;
231 SLATE_API virtual FReply OnKeyUp( const FGeometry& MyGeometry, const FKeyEvent& KeyEvent ) override;
235 SLATE_API virtual void OnFocusLost( const FFocusEvent& InFocusEvent ) override;
237 SLATE_API virtual TOptional<bool> OnQueryShowFocus( const EFocusCause InFocusCause ) const override;
238 SLATE_API virtual FPopupMethodReply OnQueryPopupMethod() const override;
239 SLATE_API virtual void OnFinishedPointerInput() override;
240 SLATE_API virtual void OnArrangeChildren( const FGeometry& AllottedGeometry, FArrangedChildren& ArrangedChildren ) const override;
243
244private:
245 // Viewports shouldn't show focus
246 virtual const FSlateBrush* GetFocusBrush() const override
247 {
248 return nullptr;
249 }
250
251protected:
254
257
258private:
259
261 TWeakPtr<SWindow> CachedParentWindow;
262
264 TWeakPtr<FActiveTimerHandle> ActiveTimerHandle;
265
268
271
272 TSharedPtr<ICustomHitTestPath> CustomHitTestPath;
273
275 bool bRenderDirectlyToWindow;
276
278 bool bEnableGammaCorrection;
279
281 bool bReverseGammaCorrection;
282
284 bool bEnableBlending;
285
287 bool bEnableStereoRendering;
288
290 bool bIgnoreTextureAlpha;
291
293 bool bPreMultipliedAlpha;
294};
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_ATTRIBUTE(AttrType, AttrName)
Definition DeclarativeSyntaxSupport.h:192
#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
EFocusCause
Definition Events.h:25
return true
Definition ExternalRpcRegistry.cpp:601
EActiveTimerReturnType
Definition SlateEnums.h:329
Definition ActiveTimerHandle.h:12
Definition ArrangedChildren.h:15
Definition CursorReply.h:16
Definition NavigationReply.h:43
Definition PaintArgs.h:23
Definition PopupMethodReply.h:24
Definition Reply.h:24
Definition SlateRect.h:26
Definition DrawElements.h:220
const TSharedRef< SWidget > & GetWidget() const
Definition SlotBase.h:65
Definition WidgetStyle.h:15
Definition Events.h:1206
Definition HittestGrid.h:18
Definition SCompoundWidget.h:22
FCompoundWidgetOneChildSlot ChildSlot
Definition SCompoundWidget.h:113
Definition SViewport.h:31
virtual SLATE_API FNavigationReply OnNavigation(const FGeometry &MyGeometry, const FNavigationEvent &InNavigationEvent) override
Definition SViewport.cpp:444
virtual SLATE_API FCursorReply OnCursorQuery(const FGeometry &MyGeometry, const FPointerEvent &CursorEvent) const override
Definition SViewport.cpp:231
virtual SLATE_API TOptional< FVirtualPointerPosition > TranslateMouseCoordinateForCustomHitTestChild(const SWidget &ChildWidget, const FGeometry &MyGeometry, const FVector2D ScreenSpaceMouseCoordinate, const FVector2D LastScreenSpaceMouseCoordinate) const override
Definition SViewport.cpp:434
virtual SLATE_API FReply OnTouchStarted(const FGeometry &MyGeometry, const FPointerEvent &InTouchEvent) override
Definition SViewport.cpp:363
virtual SLATE_API TOptional< bool > OnQueryShowFocus(const EFocusCause InFocusCause) const override
Definition SViewport.cpp:398
virtual bool SupportsKeyboardFocus() const override
Definition SViewport.h:106
static SLATE_API UE::Slate::FDeprecateVector2DResult GetDefaultViewportSize()
bool GetIgnoreTextureAlpha(void) const
Definition SViewport.h:187
virtual SLATE_API FReply OnMouseButtonDown(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
Definition SViewport.cpp:241
virtual SLATE_API FReply OnMouseMove(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
Definition SViewport.cpp:271
SLATE_API void SetRenderDirectlyToWindow(const bool bInRenderDirectlyToWindow)
Definition SViewport.cpp:72
virtual SLATE_API FReply OnKeyUp(const FGeometry &MyGeometry, const FKeyEvent &KeyEvent) override
Definition SViewport.cpp:291
virtual SLATE_API FReply OnMouseWheel(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
Definition SViewport.cpp:276
SLATE_API void OnWindowClosed(const TSharedRef< SWindow > &InWindowBeingClosed)
Definition SViewport.cpp:341
SLATE_API EActiveTimerReturnType EnsureTick(double InCurrentTime, float InDeltaTime)
Definition SViewport.cpp:106
virtual SLATE_API FReply OnMouseButtonUp(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
Definition SViewport.cpp:246
SLATE_API TSharedPtr< ICustomHitTestPath > GetCustomHitTestPath()
Definition SViewport.cpp:336
virtual SLATE_API FReply OnMotionDetected(const FGeometry &MyGeometry, const FMotionEvent &InMotionEvent) override
Definition SViewport.cpp:393
virtual SLATE_API void OnFocusLost(const FFocusEvent &InFocusEvent) override
Definition SViewport.cpp:311
virtual FVector2D ComputeDesiredSize(float) const override
Definition SViewport.h:113
virtual SLATE_API FReply OnTouchFirstMove(const FGeometry &MyGeometry, const FPointerEvent &TouchEvent) override
Definition SViewport.cpp:383
SLATE_API void SetCustomHitTestPath(TSharedPtr< ICustomHitTestPath > CustomHitTestPath)
Definition SViewport.cpp:327
virtual SLATE_API FReply OnAnalogValueChanged(const FGeometry &MyGeometry, const FAnalogInputEvent &InAnalogInputEvent) override
Definition SViewport.cpp:296
virtual SLATE_API FReply OnTouchForceChanged(const FGeometry &MyGeometry, const FPointerEvent &TouchEvent) override
Definition SViewport.cpp:378
void EnableStereoRendering(const bool bInEnableStereoRendering)
Definition SViewport.h:197
const TSharedPtr< SWidget > GetContent() const
Definition SViewport.h:146
virtual SLATE_API FReply OnTouchGesture(const FGeometry &MyGeometry, const FPointerEvent &GestureEvent) override
Definition SViewport.cpp:388
TWeakPtr< ISlateViewport > GetViewportInterface()
Definition SViewport.h:130
virtual SLATE_API FReply OnTouchEnded(const FGeometry &MyGeometry, const FPointerEvent &InTouchEvent) override
Definition SViewport.cpp:373
virtual SLATE_API FReply OnKeyChar(const FGeometry &MyGeometry, const FCharacterEvent &CharacterEvent) override
Definition SViewport.cpp:301
virtual SLATE_API void OnFinishedPointerInput() override
Definition SViewport.cpp:416
SLATE_API void Construct(const FArguments &InArgs)
Definition SViewport.cpp:40
virtual SLATE_API FReply OnKeyDown(const FGeometry &MyGeometry, const FKeyEvent &KeyEvent) override
Definition SViewport.cpp:286
TWeakPtr< ISlateViewport > ViewportInterface
Definition SViewport.h:256
bool ShouldRenderDirectly() const
Definition SViewport.h:166
SLATE_API void SetContent(TSharedPtr< SWidget > InContent)
Definition SViewport.cpp:319
virtual SLATE_API void OnMouseLeave(const FPointerEvent &MouseEvent) override
Definition SViewport.cpp:261
SLATE_API void SetActive(bool bActive)
Definition SViewport.cpp:90
virtual SLATE_API FPopupMethodReply OnQueryPopupMethod() const override
Definition SViewport.cpp:403
SLATE_API void SetIgnoreTextureAlpha(const bool bInIgnoreTextureAlpha)
Definition SViewport.cpp:81
SLATE_API FReply OnViewportActivated(const FWindowActivateEvent &InActivateEvent)
Definition SViewport.cpp:349
SLATE_API void SetViewportInterface(TSharedRef< ISlateViewport > InViewportInterface)
Definition SViewport.cpp:63
virtual SLATE_API TOptional< TSharedRef< SWidget > > OnMapCursor(const FCursorReply &CursorReply) const override
Definition SViewport.cpp:236
SLATE_API void OnViewportDeactivated(const FWindowActivateEvent &InActivateEvent)
Definition SViewport.cpp:355
virtual SLATE_API void OnMouseEnter(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
Definition SViewport.cpp:251
virtual SLATE_API FReply OnTouchMoved(const FGeometry &MyGeometry, const FPointerEvent &InTouchEvent) override
Definition SViewport.cpp:368
virtual SLATE_API FReply OnMouseButtonDoubleClick(const FGeometry &MyGeometry, const FPointerEvent &MouseEvent) override
Definition SViewport.cpp:281
bool IsStereoRenderingAllowed() const
Definition SViewport.h:169
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 SViewport.cpp:111
virtual SLATE_API void OnArrangeChildren(const FGeometry &AllottedGeometry, FArrangedChildren &ArrangedChildren) const override
Definition SViewport.cpp:425
virtual SLATE_API FReply OnFocusReceived(const FGeometry &MyGeometry, const FFocusEvent &InFocusEvent) override
Definition SViewport.cpp:306
SLATE_BEGIN_ARGS(SViewport)
Definition SViewport.h:34
Definition SWidget.h:165
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SharedPointer.h:1295
Definition SScissorRectBox.cpp:10
Definition AdvancedWidgetsModule.cpp:13
@ false
Definition radaudio_common.h:23
Definition Events.h:528
Definition Events.h:606
Definition Events.h:51
Definition Geometry.h:40
Definition Events.h:431
Definition Events.h:1060
Definition Events.h:1148
Definition Events.h:695
Definition SlateBrush.h:239
Definition SWidget.h:189
Definition Optional.h:131
static constexpr bool SupportsInvalidation()
Definition SViewport.h:26
Definition SWidget.h:69