UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
NullApplication.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
6#include "HAL/UnrealMemory.h"
7#include "Containers/Array.h"
9#include "Containers/Map.h"
10#include "Math/Vector2D.h"
12#include "Misc/CoreMisc.h"
13#include "Misc/CoreDelegates.h"
19#include "Null/NullWindow.h"
20#include "Null/NullCursor.h"
21
22class IInputDevice;
23class IModularFeature;
24
29
35{
36public:
38
40
41 static APPLICATIONCORE_API void OnSizeChanged(FGenericWindow* Window, const int32 Width, const int32 Height);
42
43 static APPLICATIONCORE_API void GetFullscreenInfo(int32& X, int32& Y, int32& Width, int32& Height);
44
46
48
50
51public:
53
54 APPLICATIONCORE_API virtual void DestroyApplication() override;
55
56 // FSelfRegisteringExec
57 APPLICATIONCORE_API virtual bool Exec_Dev(UWorld* InWorld, const TCHAR* Cmd, FOutputDevice& Ar) override;
58
60
62
63public:
65
66 APPLICATIONCORE_API virtual void PollGameDeviceState(const float TimeDelta) override;
67
68 APPLICATIONCORE_API virtual void PumpMessages(const float TimeDelta) override;
69
70 APPLICATIONCORE_API virtual void ProcessDeferredEvents(const float TimeDelta) override;
71
73
75
77
79
80 APPLICATIONCORE_API virtual void* GetCapture(void) const override;
81
83
84 virtual bool IsUsingHighPrecisionMouseMode() const override { return bUsingHighPrecisionMouseInput; }
85
86 APPLICATIONCORE_API virtual bool IsGamepadAttached() const override;
87
89
91
93
98
99 APPLICATIONCORE_API virtual bool IsCursorDirectlyOverSlateWindow() const override;
100
102
103 virtual bool IsMouseAttached() const override { return true; }
104
105private:
107
109 APPLICATIONCORE_API bool HandleCursorCommand(const TCHAR* Cmd, FOutputDevice& Ar);
110
112 APPLICATIONCORE_API bool HandleWindowCommand(const TCHAR* Cmd, FOutputDevice& Ar);
113
115 APPLICATIONCORE_API bool ParseResolution(const TCHAR* InResolution, uint32& OutX, uint32& OutY);
116
117 void OnInputDeviceModuleRegistered(const FName& Type, IModularFeature* ModularFeature);
118
119public:
121 {
122 return this;
123 }
124
125 // IInputInterface overrides
126 APPLICATIONCORE_API virtual void SetForceFeedbackChannelValue(int32 ControllerId, FForceFeedbackChannelType ChannelType, float Value) override;
127 APPLICATIONCORE_API virtual void SetForceFeedbackChannelValues(int32 ControllerId, const FForceFeedbackValues& Values) override;
128 APPLICATIONCORE_API virtual void SetHapticFeedbackValues(int32 ControllerId, int32 Hand, const FHapticFeedbackValues& Values) override;
129 virtual void SetLightColor(int32 ControllerId, FColor Color) override {}
130 virtual void ResetLightColor(int32 ControllerId) override {}
131
132private:
134
136 TArray<TSharedPtr<class IInputDevice>> ExternalInputDevices;
137 bool bHasLoadedInputPlugins;
138
140 bool bUsingHighPrecisionMouseInput;
141
143 TSharedPtr<FNullWindow> CurrentlyActiveWindow;
144
146 TSharedPtr<FNullWindow> PreviousActiveWindow;
147
149 FPlatformRect WorkArea;
150};
151
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
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define X(Name, Desc)
Definition FormatStringSan.h:47
EWindowTransparency
Definition GenericWindowDefinition.h:35
FForceFeedbackChannelType
Definition IInputInterface.h:17
FNullApplication * NullApplication
Definition NullApplication.cpp:15
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GenericWindow.h:94
Definition GenericApplication.h:75
Definition NameTypes.h:617
Definition NullApplication.h:35
virtual APPLICATIONCORE_API void * GetCapture(void) const override
Definition NullApplication.cpp:258
static APPLICATIONCORE_API void GetFullscreenInfo(int32 &X, int32 &Y, int32 &Width, int32 &Height)
Definition NullApplication.cpp:45
virtual APPLICATIONCORE_API TSharedRef< FGenericWindow > MakeWindow() override
Definition NullApplication.cpp:134
static APPLICATIONCORE_API void ShowWindow(FGenericWindow *Window)
Definition NullApplication.cpp:59
virtual IInputInterface * GetInputInterface() override
Definition NullApplication.h:120
virtual void SetLightColor(int32 ControllerId, FColor Color) override
Definition NullApplication.h:129
virtual bool IsUsingHighPrecisionMouseMode() const override
Definition NullApplication.h:84
static APPLICATIONCORE_API void HideWindow(FGenericWindow *Window)
Definition NullApplication.cpp:68
virtual APPLICATIONCORE_API ~FNullApplication()
Definition NullApplication.cpp:125
virtual APPLICATIONCORE_API bool IsGamepadAttached() const override
Definition NullApplication.cpp:263
virtual APPLICATIONCORE_API void SetCapture(const TSharedPtr< FGenericWindow > &InWindow) override
Definition NullApplication.cpp:254
virtual APPLICATIONCORE_API TSharedPtr< FGenericWindow > GetWindowUnderCursor() override
Definition NullApplication.cpp:209
virtual APPLICATIONCORE_API void SetForceFeedbackChannelValues(int32 ControllerId, const FForceFeedbackValues &Values) override
Definition NullApplication.cpp:347
virtual APPLICATIONCORE_API void SetHapticFeedbackValues(int32 ControllerId, int32 Hand, const FHapticFeedbackValues &Values) override
Definition NullApplication.cpp:366
virtual APPLICATIONCORE_API bool Exec_Dev(UWorld *InWorld, const TCHAR *Cmd, FOutputDevice &Ar) override
Definition NullApplication.cpp:284
virtual APPLICATIONCORE_API void DestroyApplication() override
Definition NullApplication.cpp:130
virtual APPLICATIONCORE_API bool IsCursorDirectlyOverSlateWindow() const override
Definition NullApplication.cpp:204
virtual APPLICATIONCORE_API FPlatformRect GetWorkArea(const FPlatformRect &CurrentWindow) const override
Definition NullApplication.cpp:274
virtual void ResetLightColor(int32 ControllerId) override
Definition NullApplication.h:130
APPLICATIONCORE_API void SetWorkArea(const FPlatformRect &NewWorkArea)
Definition NullApplication.cpp:279
virtual APPLICATIONCORE_API void InitializeWindow(const TSharedRef< FGenericWindow > &Window, const TSharedRef< FGenericWindowDefinition > &InDefinition, const TSharedPtr< FGenericWindow > &InParent, const bool bShowImmediately) override
Definition NullApplication.cpp:139
virtual APPLICATIONCORE_API void SetHighPrecisionMouseMode(const bool Enable, const TSharedPtr< FGenericWindow > &InWindow) override
Definition NullApplication.cpp:268
static APPLICATIONCORE_API void OnSizeChanged(FGenericWindow *Window, const int32 Width, const int32 Height)
Definition NullApplication.cpp:36
virtual APPLICATIONCORE_API void PumpMessages(const float TimeDelta) override
Definition NullApplication.cpp:200
virtual EWindowTransparency GetWindowTransparencySupport() const override
Definition NullApplication.h:94
static APPLICATIONCORE_API void DestroyWindow(FGenericWindow *Window)
Definition NullApplication.cpp:78
virtual APPLICATIONCORE_API FModifierKeysState GetModifierKeys() const override
Definition NullApplication.cpp:249
static APPLICATIONCORE_API FNullApplication * CreateNullApplication()
Definition NullApplication.cpp:17
APPLICATIONCORE_API void ActivateWindow(const TSharedPtr< FNullWindow > &Window)
Definition NullApplication.cpp:170
virtual APPLICATIONCORE_API void SetForceFeedbackChannelValue(int32 ControllerId, FForceFeedbackChannelType ChannelType, float Value) override
Definition NullApplication.cpp:335
virtual APPLICATIONCORE_API void ProcessDeferredEvents(const float TimeDelta) override
Definition NullApplication.cpp:214
APPLICATIONCORE_API TSharedPtr< FNullWindow > FindWindowByPtr(FGenericWindow *WindowToFind)
Definition NullApplication.cpp:156
virtual APPLICATIONCORE_API void SetMessageHandler(const TSharedRef< class FGenericApplicationMessageHandler > &InMessageHandler) override
Definition NullApplication.cpp:195
virtual bool IsMouseAttached() const override
Definition NullApplication.h:103
virtual APPLICATIONCORE_API void PollGameDeviceState(const float TimeDelta) override
Definition NullApplication.cpp:218
static APPLICATIONCORE_API void MoveWindowTo(FGenericWindow *Window, const int32 X, const int32 Y)
Definition NullApplication.cpp:27
Definition OutputDevice.h:133
Definition CoreMisc.h:28
Definition GenericApplication.h:437
Definition IInputDevice.h:17
Definition IInputInterface.h:309
Definition IModularFeature.h:12
Definition Array.h:670
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition World.h:918
Definition MinimalWindowsApi.h:62
Definition Color.h:486
Definition GenericApplication.h:357
Definition IInputInterface.h:26
Definition IInputInterface.h:70
Definition NullApplication.h:26
static APPLICATIONCORE_API void RebuildDisplayMetrics(struct FDisplayMetrics &OutDisplayMetrics)
Definition NullApplication.cpp:437
Definition GenericApplication.h:320