UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ViewportClient.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
7#include "InputCoreTypes.h"
8#include "Misc/DateTime.h"
9
10class FCanvas;
11class FCursorReply;
12class FViewport;
15class SWidget;
16enum class EFocusCause : uint8;
17enum class EGestureEvent : uint8;
19struct FKey;
20struct FStatHitchesData;
21struct FStatUnitData;
22
28{
29public:
30 virtual ~FViewportClient(){}
31 virtual void Precache() {}
32 ENGINE_API virtual void RedrawRequested(FViewport* Viewport);
33 ENGINE_API virtual void RequestInvalidateHitProxy(FViewport* Viewport);
34 virtual void Draw(FViewport* Viewport,FCanvas* Canvas) {}
35 virtual bool ProcessScreenShots(FViewport* Viewport) { return false; }
36 virtual UWorld* GetWorld() const { return NULL; }
37 virtual struct FEngineShowFlags* GetEngineShowFlags() { return NULL; }
38
46 virtual bool InputKey(const FInputKeyEventArgs& EventArgs) { return false; }
47
60 UE_DEPRECATED(5.6, "Use the version of InputAxis which takes in a FInputKeyEventArgs instead.")
62 FViewport* Viewport,
64 FKey Key,
65 float Delta,
66 float DeltaTime,
67 int32 NumSamples = 1,
68 bool bGamepad = false) final;
69
78 virtual bool InputAxis(const FInputKeyEventArgs& Args) { return false; }
79
88 virtual bool InputChar(FViewport* Viewport,int32 ControllerId,TCHAR Character) { return false; }
89
103 UE_DEPRECATED(5.6, "Use the version which takes a uint64 timestamp instead")
104 ENGINE_API virtual bool InputTouch(FViewport* Viewport, int32 ControllerId, uint32 Handle, ETouchType::Type Type, const FVector2D& TouchLocation, float Force, FDateTime DeviceTimestamp, uint32 TouchpadIndex) final;
105
120 FViewport* Viewport,
121 const FInputDeviceId DeviceId,
123 ETouchType::Type Type,
124 const FVector2D& TouchLocation,
125 float Force,
126 uint32 TouchpadIndex,
127 const uint64 Timestamp)
128 {
129 return false;
130 }
131
140 UE_DEPRECATED(5.6, "Use the version which takes in a FInputDeviceId and uint64 Timestamp instead.")
141 ENGINE_API virtual bool InputGesture(FViewport* Viewport, EGestureEvent GestureType, const FVector2D& GestureDelta, bool bIsDirectionInvertedFromDevice) final;
142
156 FViewport* Viewport,
157 const FInputDeviceId DeviceId,
158 EGestureEvent GestureType,
159 const FVector2D& GestureDelta,
160 bool bIsDirectionInvertedFromDevice,
161 const uint64 Timestamp)
162 {
163 return false;
164 }
165
177 UE_DEPRECATED(5.6, "Use the version which takes in a FInputDeviceId and a timestamp instead")
178 ENGINE_API virtual bool InputMotion(FViewport* Viewport, int32 ControllerId, const FVector& Tilt, const FVector& RotationRate, const FVector& Gravity, const FVector& Acceleration) final;
179
193 FViewport* Viewport,
194 const FInputDeviceId DeviceId,
195 const FVector& Tilt,
196 const FVector& RotationRate,
197 const FVector& Gravity,
198 const FVector& Acceleration,
199 const uint64 Timestamp)
200 {
201 return false;
202 }
203
205
206 UE_DEPRECATED(5.6, "This function will be removed in a future release.")
207 virtual bool WantsPollingMouseMovement(void) const { return true; }
208
209 virtual void MouseEnter( FViewport* Viewport,int32 x, int32 y ) {}
210
211 virtual void MouseLeave( FViewport* Viewport ) {}
212
213 virtual void MouseMove(FViewport* Viewport,int32 X,int32 Y) {}
214
223
228
239
246
253
254 virtual void LostFocus(FViewport* Viewport) {}
255 virtual void ReceivedFocus(FViewport* Viewport) {}
256 virtual bool IsFocused(FViewport* Viewport) { return true; }
257
258 virtual void Activated(FViewport* Viewport, const FWindowActivateEvent& InActivateEvent) {}
260
266
276 virtual bool WindowCloseRequested() { return true; }
277
278 virtual void CloseRequested(FViewport* Viewport) {}
279
280 virtual bool RequiresHitProxyStorage() { return true; }
281
286 virtual bool RequiresUncapturedAxisInput() const { return false; }
287
292 virtual bool RequiresKeyboardInput() const { return true; }
293
299 virtual bool IsOrtho() const { return false; }
300
304 virtual bool IsInGameView() const { return false; }
305
311 virtual class UWorld* ConditionalSetWorld() { return NULL; }
312
318 virtual void ConditionalRestoreWorld( class UWorld* InWorld ) {}
319
327
331 virtual FStatUnitData* GetStatUnitData() const { return NULL; }
332
336 virtual FStatHitchesData* GetStatHitchesData() const { return NULL; }
337
341 virtual const TArray<FString>* GetEnabledStats() const { return NULL; }
342
347
351 virtual bool IsStatEnabled(const FString& InName) const { return false; }
352
356 virtual void SetShowStats(bool bWantStats) { }
357
361 virtual bool IgnoreInput() { return false; }
362
367
374 virtual bool CaptureMouseOnLaunch() { return true; }
375
379 virtual bool LockDuringCapture() { return true; }
380
384 virtual bool ShouldAlwaysLockMouse() { return false; }
385
389 virtual bool HideCursorDuringCapture() const { return false; }
390
395
400
404 virtual bool ShouldDPIScaleSceneCanvas() const { return true; }
405
409 virtual float GetDPIScale() const { return 1.0f; }
410};
411
417{
418public:
420 : CachedDPIScale(1.0f)
421 , bShouldUpdateDPIScale(true)
422 {}
423
424 ENGINE_API virtual ~FCommonViewportClient() override;
425
428
431
435 ENGINE_API virtual float GetDPIScale() const override;
436
438
439protected:
441 virtual float UpdateViewportClientWindowDPIScale() const { return 1.0; }
442
443private:
444 mutable float CachedDPIScale;
445 mutable bool bShouldUpdateDPIScale;
446};
447
#define NULL
Definition oodle2base.h:134
#define GIsEditor
Definition CoreGlobals.h:233
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
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
EMouseCaptureMode
Definition EngineBaseTypes.h:42
@ CapturePermanently_IncludingInitialMouseDown
EFocusCause
Definition Events.h:25
return true
Definition ExternalRpcRegistry.cpp:601
#define X(Name, Desc)
Definition FormatStringSan.h:47
EGestureEvent
Definition GenericApplicationMessageHandler.h:138
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition CanvasTypes.h:211
Definition ViewportClient.h:417
ENGINE_API void RequestUpdateDPIScale()
Definition UnrealClient.cpp:2633
FCommonViewportClient()
Definition ViewportClient.h:419
ENGINE_API float GetDPIDerivedResolutionFraction() const
Definition UnrealClient.cpp:2638
virtual ENGINE_API float GetDPIScale() const override
Definition UnrealClient.cpp:2496
ENGINE_API void DrawHighResScreenshotCaptureRegion(FCanvas &Canvas)
Definition UnrealClient.cpp:2508
virtual float UpdateViewportClientWindowDPIScale() const
Definition ViewportClient.h:441
virtual ENGINE_API ~FCommonViewportClient() override
Definition UnrealClient.cpp:2624
Definition CursorReply.h:16
Definition PopupMethodReply.h:24
Definition ViewportClient.h:28
virtual EMouseCursor::Type GetCursor(FViewport *Viewport, int32 X, int32 Y)
Definition ViewportClient.h:238
virtual void MouseEnter(FViewport *Viewport, int32 x, int32 y)
Definition ViewportClient.h:209
virtual FStatHitchesData * GetStatHitchesData() const
Definition ViewportClient.h:336
virtual ENGINE_API bool InputMotion(FViewport *Viewport, int32 ControllerId, const FVector &Tilt, const FVector &RotationRate, const FVector &Gravity, const FVector &Acceleration) final
Definition UnrealClient.cpp:2593
virtual bool WantsPollingMouseMovement(void) const
Definition ViewportClient.h:207
virtual bool IsOrtho() const
Definition ViewportClient.h:299
virtual EMouseCaptureMode GetMouseCaptureMode() const
Definition ViewportClient.h:366
virtual ENGINE_API FPopupMethodReply OnQueryPopupMethod() const
Definition UnrealClient.cpp:2619
virtual void LostFocus(FViewport *Viewport)
Definition ViewportClient.h:254
virtual void ConditionalRestoreWorld(class UWorld *InWorld)
Definition ViewportClient.h:318
virtual ~FViewportClient()
Definition ViewportClient.h:30
virtual bool ShouldAlwaysLockMouse()
Definition ViewportClient.h:384
virtual bool IgnoreInput()
Definition ViewportClient.h:361
virtual struct FEngineShowFlags * GetEngineShowFlags()
Definition ViewportClient.h:37
virtual class UWorld * ConditionalSetWorld()
Definition ViewportClient.h:311
virtual bool LockDuringCapture()
Definition ViewportClient.h:379
virtual bool IsInPermanentCapture()
Definition ViewportClient.h:261
virtual bool ShouldDPIScaleSceneCanvas() const
Definition ViewportClient.h:404
virtual bool IsFocused(FViewport *Viewport)
Definition ViewportClient.h:256
virtual bool IsStatEnabled(const FString &InName) const
Definition ViewportClient.h:351
virtual bool ProcessScreenShots(FViewport *Viewport)
Definition ViewportClient.h:35
virtual bool CaptureMouseOnLaunch()
Definition ViewportClient.h:374
virtual bool HandleNavigation(const uint32 InUserIndex, TSharedPtr< SWidget > InDestination)
Definition ViewportClient.h:399
virtual ENGINE_API TOptional< TSharedRef< SWidget > > MapCursor(FViewport *Viewport, const FCursorReply &CursorReply)
Definition UnrealClient.cpp:2614
virtual void ReceivedFocus(FViewport *Viewport)
Definition ViewportClient.h:255
virtual bool InputKey(const FInputKeyEventArgs &EventArgs)
Definition ViewportClient.h:46
virtual bool IsInGameView() const
Definition ViewportClient.h:304
virtual void Precache()
Definition ViewportClient.h:31
virtual bool WindowCloseRequested()
Definition ViewportClient.h:276
virtual const TArray< FString > * GetEnabledStats() const
Definition ViewportClient.h:341
virtual TOptional< bool > QueryShowFocus(const EFocusCause InFocusCause) const
Definition ViewportClient.h:252
virtual void CapturedMouseMove(FViewport *InViewport, int32 InMouseX, int32 InMouseY)
Definition ViewportClient.h:222
virtual ENGINE_API void RedrawRequested(FViewport *Viewport)
Definition UnrealClient.cpp:2523
virtual bool OverrideHighResScreenshotCaptureRegion(FIntRect &OutCaptureRegion)
Definition ViewportClient.h:326
virtual void SetIsSimulateInEditorViewport(bool bInIsSimulateInEditorViewport)
Definition ViewportClient.h:204
virtual void ProcessAccumulatedPointerInput(FViewport *InViewport)
Definition ViewportClient.h:227
virtual float GetDPIScale() const
Definition ViewportClient.h:409
virtual bool InputChar(FViewport *Viewport, int32 ControllerId, TCHAR Character)
Definition ViewportClient.h:88
virtual UWorld * GetWorld() const
Definition ViewportClient.h:36
virtual void MouseLeave(FViewport *Viewport)
Definition ViewportClient.h:211
virtual void Activated(FViewport *Viewport, const FWindowActivateEvent &InActivateEvent)
Definition ViewportClient.h:258
virtual ENGINE_API bool InputAxis(FViewport *Viewport, FInputDeviceId InputDevice, FKey Key, float Delta, float DeltaTime, int32 NumSamples=1, bool bGamepad=false) final
Definition UnrealClient.cpp:2534
virtual void SetEnabledStats(const TArray< FString > &InEnabledStats)
Definition ViewportClient.h:346
virtual bool HideCursorDuringCapture() const
Definition ViewportClient.h:389
virtual void SetShowStats(bool bWantStats)
Definition ViewportClient.h:356
virtual ENGINE_API bool InputTouch(FViewport *Viewport, int32 ControllerId, uint32 Handle, ETouchType::Type Type, const FVector2D &TouchLocation, float Force, FDateTime DeviceTimestamp, uint32 TouchpadIndex) final
Definition UnrealClient.cpp:2552
virtual bool RequiresHitProxyStorage()
Definition ViewportClient.h:280
virtual void MouseMove(FViewport *Viewport, int32 X, int32 Y)
Definition ViewportClient.h:213
virtual void CloseRequested(FViewport *Viewport)
Definition ViewportClient.h:278
virtual ENGINE_API bool InputGesture(FViewport *Viewport, EGestureEvent GestureType, const FVector2D &GestureDelta, bool bIsDirectionInvertedFromDevice) final
Definition UnrealClient.cpp:2573
virtual void Draw(FViewport *Viewport, FCanvas *Canvas)
Definition ViewportClient.h:34
virtual FStatUnitData * GetStatUnitData() const
Definition ViewportClient.h:331
virtual bool RequiresKeyboardInput() const
Definition ViewportClient.h:292
virtual ENGINE_API void RequestInvalidateHitProxy(FViewport *Viewport)
Definition UnrealClient.cpp:2528
virtual bool RequiresUncapturedAxisInput() const
Definition ViewportClient.h:286
virtual void Deactivated(FViewport *Viewport, const FWindowActivateEvent &InActivateEvent)
Definition ViewportClient.h:259
Definition UnrealClient.h:412
Definition Events.h:1206
Definition InputDevice.Build.cs:6
Definition SWidget.h:165
Definition Array.h:670
Definition SharedPointer.h:692
Definition World.h:918
Type
Definition ICursor.h:18
@ Default
Definition ICursor.h:23
Definition InputCoreTypes.h:773
@ false
Definition radaudio_common.h:23
Definition DateTime.h:76
Definition ShowFlags.h:56
Definition CoreMiscDefines.h:524
Definition InputKeyEventArgs.h:26
Definition InputCoreTypes.h:50
Definition UnrealClient.h:385
Definition UnrealClient.h:284
Definition Optional.h:131