UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RHITypes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 RHITypes.h: Render Hardware Interface types
5 (that require linking or heavier includes).
6=============================================================================*/
7
8#pragma once
9
10#include "RHIDefinitions.h"
12#include "Math/IntVector.h"
13
16{
17public:
18 // @param InCompressionMode defines the value input range that is mapped to output range
19 // The default CompressionMode of RCM_UNorm will modify values to fit in [0,1]
20 // it is recommended to always use RCM_MinMax instead, which leaves values unchanged
21 // if you do want scaling into [0,1] do it after the fact using ScaleChannelsSoMinMaxIsInZeroToOne
22 // @param InCubeFace defined which cubemap side is used, only required for cubemap content, then it needs to be a valid side
27
29 {
30 return CubeFace;
31 }
33 {
34 CubeFace = InCubeFace;
35 }
36
38 {
39 return CompressionMode;
40 }
41
43 {
44 bLinearToGamma = Value;
45 }
46
47 bool GetLinearToGamma() const
48 {
49 return bLinearToGamma;
50 }
51
53 {
54 bOutputStencil = Value;
55 }
56
57 bool GetOutputStencil() const
58 {
59 return bOutputStencil;
60 }
61
63 {
64 MipLevel = InMipLevel;
65 }
66
67 uint8 GetMip() const
68 {
69 return MipLevel;
70 }
71
73 {
74 MaxDepthRange = Value;
75 }
76
78 {
79 return FMath::Abs(ConvertFromDeviceZ(DeviceZ) / MaxDepthRange);
80 }
81
83 {
84 GPUIndex = InGPUIndex;
85 }
86
88 {
89 return GPUIndex;
90 }
91
93 {
94 ArrayIndex = InArrayIndex;
95 }
96
98 {
99 return ArrayIndex;
100 }
101
102private:
103
104 // @return SceneDepth
105 float ConvertFromDeviceZ(float DeviceZ) const
106 {
107 DeviceZ = FMath::Min(DeviceZ, 1 - Z_PRECISION);
108
109 // for depth to linear conversion
110 const FVector2f InvDeviceZToWorldZ(0.1f, 0.1f);
111
112 return 1.0f / (DeviceZ * InvDeviceZToWorldZ.X - InvDeviceZToWorldZ.Y);
113 }
114
115 ECubeFace CubeFace = CubeFace_MAX;
116 ERangeCompressionMode CompressionMode = RCM_UNorm;
117 bool bLinearToGamma = true;
118 float MaxDepthRange = 16000.0f;
119 bool bOutputStencil = false;
120 uint8 MipLevel = 0;
121 int32 ArrayIndex = 0;
122 uint32 GPUIndex = 0;
123};
124
152
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
#define Z_PRECISION
Definition PerspectiveMatrix.h:20
ERangeCompressionMode
Definition RHIDefinitions.h:797
@ RCM_UNorm
Definition RHIDefinitions.h:799
ECubeFace
Definition RHIDefinitions.h:525
@ CubeFace_MAX
Definition RHIDefinitions.h:532
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RHITypes.h:16
void SetLinearToGamma(bool Value)
Definition RHITypes.h:42
bool GetLinearToGamma() const
Definition RHITypes.h:47
void SetOutputStencil(bool Value)
Definition RHITypes.h:52
void SetCubeFace(ECubeFace InCubeFace)
Definition RHITypes.h:32
void SetMip(uint8 InMipLevel)
Definition RHITypes.h:62
void SetArrayIndex(int32 InArrayIndex)
Definition RHITypes.h:92
void SetMaxDepthRange(float Value)
Definition RHITypes.h:72
void SetGPUIndex(uint32 InGPUIndex)
Definition RHITypes.h:82
bool GetOutputStencil() const
Definition RHITypes.h:57
ECubeFace GetCubeFace() const
Definition RHITypes.h:28
uint8 GetMip() const
Definition RHITypes.h:67
int32 GetArrayIndex() const
Definition RHITypes.h:97
ERangeCompressionMode GetCompressionMode() const
Definition RHITypes.h:37
uint32 GetGPUIndex() const
Definition RHITypes.h:87
float ComputeNormalizedDepth(float DeviceZ) const
Definition RHITypes.h:77
FReadSurfaceDataFlags(ERangeCompressionMode InCompressionMode=RCM_UNorm, ECubeFace InCubeFace=CubeFace_MAX)
Definition RHITypes.h:23
Definition RHITypes.h:127
uint32 DestY
Definition RHITypes.h:130
uint32 Height
Definition RHITypes.h:138
int32 SrcX
Definition RHITypes.h:133
FUpdateTextureRegion2D()
Definition RHITypes.h:140
uint32 DestX
Definition RHITypes.h:129
int32 SrcY
Definition RHITypes.h:134
FUpdateTextureRegion2D(uint32 InDestX, uint32 InDestY, int32 InSrcX, int32 InSrcY, uint32 InWidth, uint32 InHeight)
Definition RHITypes.h:143
uint32 Width
Definition RHITypes.h:137
Definition RHITypes.h:155
FUpdateTextureRegion3D(uint32 InDestX, uint32 InDestY, uint32 InDestZ, int32 InSrcX, int32 InSrcY, int32 InSrcZ, uint32 InWidth, uint32 InHeight, uint32 InDepth)
Definition RHITypes.h:174
uint32 Width
Definition RHITypes.h:167
uint32 DestZ
Definition RHITypes.h:159
uint32 Depth
Definition RHITypes.h:169
int32 SrcX
Definition RHITypes.h:162
uint32 DestX
Definition RHITypes.h:157
FUpdateTextureRegion3D()
Definition RHITypes.h:171
uint32 DestY
Definition RHITypes.h:158
int32 SrcY
Definition RHITypes.h:163
FUpdateTextureRegion3D(FIntVector InDest, FIntVector InSource, FIntVector InSourceSize)
Definition RHITypes.h:186
uint32 Height
Definition RHITypes.h:168
int32 SrcZ
Definition RHITypes.h:164