UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
IHeadMountedDisplay.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"
8#include "StereoRendering.h"
9#include "LateUpdateManager.h"
10#include "SceneInterface.h"
11
12class FSceneInterface;
13class UCanvas;
15struct FWorldContext;
16class UTexture;
18class FSceneView;
20class FTexture;
21
32
38{
39
40public:
42
46 virtual bool IsHMDConnected() = 0;
47
51 virtual bool IsHMDEnabled() const = 0;
52
56 virtual EHMDWornState::Type GetHMDWornState() { return EHMDWornState::Unknown; };
57
61 virtual void EnableHMD(bool bEnable = true) = 0;
62
66 virtual FName GetHMDName() const = 0;
67
89
93 virtual bool GetHMDMonitorInfo(MonitorInfo&) = 0;
94
98 virtual void GetFieldOfView(float& InOutHFOVInDegrees, float& InOutVFOVInDegrees) const = 0;
99
106 virtual void SetClippingPlanes(float NCP, float FCP) {}
107
112
117 virtual float GetInterpupillaryDistance() const = 0;
118
122 virtual bool GetHMDDistortionEnabled(EShadingPath ShadingPath) const = 0;
123
124 // Are we outputting so a Spectator Screen now.
125 virtual bool IsSpectatorScreenActive() const { return false; }
126
131 virtual class ISpectatorScreenController* GetSpectatorScreenController() { return nullptr; }
132 virtual class ISpectatorScreenController const* GetSpectatorScreenController() const { return nullptr; }
133
137 virtual void CreateHMDPostProcessPass_RenderThread(FRDGBuilder& GraphBuilder, const FSceneView& View, const struct FHMDDistortionInputs& Inputs, struct FScreenPassTexture& OutPass) const {}
138
139public:
140
144 virtual float GetPixelDenity() const { check(IsInGameThread() || IsInRenderingThread()); return 1.0f; }
145
149 virtual void SetPixelDensity(const float NewDensity) { };
150
155
159 virtual FIntPoint GetIdealDebugCanvasRenderTargetSize() const { return FIntPoint(1024, 1024); }
160
164 virtual float GetDistortionScalingFactor() const { return 0; }
165
169 virtual float GetLensCenterOffset() const { return 0; }
170
174 virtual void GetDistortionWarpValues(FVector4& K) const { }
175
179 virtual bool IsChromaAbCorrectionEnabled() const = 0;
180
185 virtual bool GetChromaAbCorrectionValues(FVector4& K) const { return false; }
186
190 virtual bool HasHiddenAreaMesh() const { return false; }
191
195 virtual bool HasVisibleAreaMesh() const { return false; }
196
201 virtual void DrawHiddenAreaMesh(class FRHICommandList& RHICmdList, int32 ViewIndex) const {};
202
208 virtual void DrawHiddenAreaMesh(class FRHICommandList& RHICmdList, int32 ViewIndex, int32 InstanceCount) const {};
209
214 virtual void DrawVisibleAreaMesh(class FRHICommandList& RHICmdList, int32 ViewIndex) const {};
215
221 virtual void DrawVisibleAreaMesh(class FRHICommandList& RHICmdList, int32 ViewIndex, int32 InstanceCount) const {};
222
224
230 virtual void UpdateScreenSettings(const class FViewport* InViewport) {}
231
236 virtual FTexture* GetDistortionTextureLeft() const {return NULL;}
237 virtual FTexture* GetDistortionTextureRight() const {return NULL;}
242 virtual const float* GetRedDistortionParameters() const { return nullptr; }
243 virtual const float* GetGreenDistortionParameters() const { return nullptr; }
244 virtual const float* GetBlueDistortionParameters() const { return nullptr; }
245
246 virtual bool NeedsUpscalePostProcessPass() { return false; }
247
251 virtual void RecordAnalytics() {}
252
258 HEADMOUNTEDDISPLAY_API virtual bool DoesAppUseVRFocus() const;
259
263 HEADMOUNTEDDISPLAY_API virtual bool DoesAppHaveVRFocus() const;
264
268 virtual bool IsRenderingPaused() const { return false; }
269
273 virtual bool SetColorScaleAndBias(FLinearColor ColorScale, FLinearColor ColorBias) { return false; };
274};
#define NULL
Definition oodle2base.h:134
#define check(expr)
Definition AssertionMacros.h:314
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
FInt32Point FIntPoint
Definition MathFwd.h:124
EShadingPath
Definition SceneUtils.h:24
CORE_API bool IsInGameThread()
Definition ThreadingBase.cpp:185
CORE_API bool IsInRenderingThread()
Definition ThreadingBase.cpp:273
Definition NameTypes.h:617
Definition RenderGraphBuilder.h:49
Definition RHICommandList.h:4626
Definition RHICommandList.h:3819
Definition SceneInterface.h:106
Definition SceneView.h:2212
Definition SceneView.h:1425
Definition RenderResource.h:354
Definition UnrealClient.h:412
Definition IHeadMountedDisplay.h:38
virtual class ISpectatorScreenController * GetSpectatorScreenController()
Definition IHeadMountedDisplay.h:131
virtual const float * GetRedDistortionParameters() const
Definition IHeadMountedDisplay.h:242
virtual FVector2D GetTextureScaleLeft() const
Definition IHeadMountedDisplay.h:240
virtual class ISpectatorScreenController const * GetSpectatorScreenController() const
Definition IHeadMountedDisplay.h:132
virtual void GetEyeRenderParams_RenderThread(const struct FHeadMountedDisplayPassContext &Context, FVector2D &EyeToSrcUVScaleValue, FVector2D &EyeToSrcUVOffsetValue) const
Definition IHeadMountedDisplay.h:111
virtual bool IsHMDEnabled() const =0
virtual FIntPoint GetIdealDebugCanvasRenderTargetSize() const
Definition IHeadMountedDisplay.h:159
virtual void SetPixelDensity(const float NewDensity)
Definition IHeadMountedDisplay.h:149
virtual void RecordAnalytics()
Definition IHeadMountedDisplay.h:251
virtual void DrawHiddenAreaMesh(class FRHICommandList &RHICmdList, int32 ViewIndex, int32 InstanceCount) const
Definition IHeadMountedDisplay.h:208
virtual const float * GetBlueDistortionParameters() const
Definition IHeadMountedDisplay.h:244
virtual FTexture * GetDistortionTextureLeft() const
Definition IHeadMountedDisplay.h:236
virtual bool NeedsUpscalePostProcessPass()
Definition IHeadMountedDisplay.h:246
virtual void DrawDistortionMesh_RenderThread(struct FHeadMountedDisplayPassContext &Context, const FIntPoint &TextureSize)
Definition IHeadMountedDisplay.h:223
virtual FIntPoint GetIdealRenderTargetSize() const
Definition IHeadMountedDisplay.h:154
virtual bool IsRenderingPaused() const
Definition IHeadMountedDisplay.h:268
virtual float GetPixelDenity() const
Definition IHeadMountedDisplay.h:144
virtual FVector2D GetTextureScaleRight() const
Definition IHeadMountedDisplay.h:241
virtual EHMDWornState::Type GetHMDWornState()
Definition IHeadMountedDisplay.h:56
virtual float GetInterpupillaryDistance() const =0
virtual void GetFieldOfView(float &InOutHFOVInDegrees, float &InOutVFOVInDegrees) const =0
virtual void DrawVisibleAreaMesh(class FRHICommandList &RHICmdList, int32 ViewIndex, int32 InstanceCount) const
Definition IHeadMountedDisplay.h:221
virtual FVector2D GetTextureOffsetRight() const
Definition IHeadMountedDisplay.h:239
virtual bool HasVisibleAreaMesh() const
Definition IHeadMountedDisplay.h:195
virtual float GetDistortionScalingFactor() const
Definition IHeadMountedDisplay.h:164
virtual bool GetChromaAbCorrectionValues(FVector4 &K) const
Definition IHeadMountedDisplay.h:185
virtual bool IsChromaAbCorrectionEnabled() const =0
virtual FName GetHMDName() const =0
HEADMOUNTEDDISPLAY_API IHeadMountedDisplay()
Definition HeadMountedDisplayModule.cpp:34
virtual float GetLensCenterOffset() const
Definition IHeadMountedDisplay.h:169
virtual void SetClippingPlanes(float NCP, float FCP)
Definition IHeadMountedDisplay.h:106
virtual void DrawVisibleAreaMesh(class FRHICommandList &RHICmdList, int32 ViewIndex) const
Definition IHeadMountedDisplay.h:214
virtual void SetInterpupillaryDistance(float NewInterpupillaryDistance)=0
virtual bool GetHMDDistortionEnabled(EShadingPath ShadingPath) const =0
virtual void EnableHMD(bool bEnable=true)=0
virtual void GetDistortionWarpValues(FVector4 &K) const
Definition IHeadMountedDisplay.h:174
virtual void DrawHiddenAreaMesh(class FRHICommandList &RHICmdList, int32 ViewIndex) const
Definition IHeadMountedDisplay.h:201
virtual void UpdateScreenSettings(const class FViewport *InViewport)
Definition IHeadMountedDisplay.h:230
virtual bool IsSpectatorScreenActive() const
Definition IHeadMountedDisplay.h:125
virtual bool GetHMDMonitorInfo(MonitorInfo &)=0
virtual FVector2D GetTextureOffsetLeft() const
Definition IHeadMountedDisplay.h:238
virtual HEADMOUNTEDDISPLAY_API bool DoesAppHaveVRFocus() const
Definition HeadMountedDisplayModule.cpp:43
virtual HEADMOUNTEDDISPLAY_API bool DoesAppUseVRFocus() const
Definition HeadMountedDisplayModule.cpp:38
virtual const float * GetGreenDistortionParameters() const
Definition IHeadMountedDisplay.h:243
virtual bool IsHMDConnected()=0
virtual bool HasHiddenAreaMesh() const
Definition IHeadMountedDisplay.h:190
virtual void CreateHMDPostProcessPass_RenderThread(FRDGBuilder &GraphBuilder, const FSceneView &View, const struct FHMDDistortionInputs &Inputs, struct FScreenPassTexture &OutPass) const
Definition IHeadMountedDisplay.h:137
virtual bool SetColorScaleAndBias(FLinearColor ColorScale, FLinearColor ColorBias)
Definition IHeadMountedDisplay.h:273
virtual FTexture * GetDistortionTextureRight() const
Definition IHeadMountedDisplay.h:237
Definition ModuleInterface.h:14
Definition ISpectatorScreenController.h:20
Definition Canvas.h:159
Definition Texture.h:1219
Type
Definition HeadMountedDisplayTypes.h:98
@ false
Definition radaudio_common.h:23
Definition PostProcessHMD.h:19
Definition IHeadMountedDisplay.h:23
FRHICommandListImmediate & RHICmdList
Definition IHeadMountedDisplay.h:29
const FSceneView & View
Definition IHeadMountedDisplay.h:30
FHeadMountedDisplayPassContext(FRHICommandListImmediate &InRHICmdList, const FSceneView &InView)
Definition IHeadMountedDisplay.h:24
Definition Color.h:48
Definition Scene.h:693
Definition ScreenPass.h:41
Definition Engine.h:334
Definition IHeadMountedDisplay.h:69
bool bShouldTestResolution
Definition IHeadMountedDisplay.h:75
int WindowSizeY
Definition IHeadMountedDisplay.h:74
int ResolutionX
Definition IHeadMountedDisplay.h:73
MonitorInfo()
Definition IHeadMountedDisplay.h:77
int DesktopX
Definition IHeadMountedDisplay.h:72
int WindowSizeX
Definition IHeadMountedDisplay.h:74
int ResolutionY
Definition IHeadMountedDisplay.h:73
int DesktopY
Definition IHeadMountedDisplay.h:72
size_t MonitorId
Definition IHeadMountedDisplay.h:71
FString MonitorName
Definition IHeadMountedDisplay.h:70
Definition IntPoint.h:25
static CORE_API const TVector2< double > ZeroVector
Definition Vector2D.h:63