UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ScreenRendering.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 ScreenRendering.h: Screen rendering definitions.
5=============================================================================*/
6
7#pragma once
8
9#include "CoreMinimal.h"
10#include "RHI.h"
11#include "RenderResource.h"
12#include "ShaderParameters.h"
13#include "Shader.h"
14#include "GlobalShader.h"
16#include "SceneView.h"
17#include "StereoRenderUtils.h"
18
24
25inline bool operator== (const FScreenVertex &a, const FScreenVertex &b)
26{
27 return a.Position == b.Position && a.UV == b.UV;
28}
29
30inline bool operator!= (const FScreenVertex &a, const FScreenVertex &b)
31{
32 return !(a == b);
33}
34
37{
38public:
40
41 // Destructor.
43
44 virtual void InitRHI(FRHICommandListBase& RHICmdList) override
45 {
47 uint16 Stride = sizeof(FScreenVertex);
51 }
52
53 virtual void ReleaseRHI() override
54 {
56 }
57};
58
60
93
124
129{
131public:
132
134 {
135#if PLATFORM_DESKTOP
136 // this is a desktop-only shader so far (really only needed in the editor)
138 {
140 return Aspects.IsMobileMultiViewEnabled();
141 }
142#endif
143 return false;
144 }
145
147 {
149 OutEnvironment.SetDefine(TEXT("SCREEN_PS_UNWRAP_SLICES"), 1);
150 }
151
157};
158
191
224
229{
231public:
232
233 static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) { return true; }
235 {
236 OutEnvironment.SetDefine(TEXT("SCREEN_PS_SINGLE_SLICE"), 1);
237 }
238
241 {
242 InTexture.Bind(Initializer.ParameterMap, TEXT("InTexture"), SPF_Mandatory);
243 InTextureSampler.Bind(Initializer.ParameterMap, TEXT("InTextureSampler"));
244 InArraySliceParameter.Bind(Initializer.ParameterMap, TEXT("ArraySlice"));
245 }
247
253
259
260private:
264};
265
302
307{
309public:
310
311 static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) { return true; }
312
315 {
316 InTexture.Bind(Initializer.ParameterMap, TEXT("InTexture"), SPF_Mandatory);
317 InTextureSampler.Bind(Initializer.ParameterMap, TEXT("InTextureSampler"));
318 InMipLevelParameter.Bind(Initializer.ParameterMap, TEXT("MipLevel"));
319 }
321
327
328 void SetParameters(FRHIBatchedShaderParameters& BatchedParameters, FRHISamplerState* SamplerStateRHI, FRHITexture* TextureRHI, int MipLevel = 0)
329 {
330 SetTextureParameter(BatchedParameters, InTexture, InTextureSampler, SamplerStateRHI, TextureRHI);
332 }
333
334private:
338};
339
370
375{
377public:
378
379 static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) { return true; }
380
386
388 {
389 FGlobalShader::SetParameters<FViewUniformShaderParameters>(BatchedParameters, ViewUniformBuffer);
390 }
391};
392
393
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
FVertexDeclarationRHIRef RHICreateVertexDeclaration(const FVertexDeclarationElementList &Elements)
Definition DynamicRHI.h:1191
#define LAYOUT_FIELD(T, Name,...)
Definition MemoryLayout.h:471
@ VET_Float2
Definition RHIDefinitions.h:499
ENGINE_API TGlobalResource< FScreenVertexDeclaration > GScreenVertexDeclaration
Definition ScreenRendering.cpp:10
bool operator!=(const FScreenVertex &a, const FScreenVertex &b)
Definition ScreenRendering.h:30
bool operator==(const FScreenVertex &a, const FScreenVertex &b)
Definition ScreenRendering.h:25
void SetTextureParameter(FRHIBatchedShaderParameters &BatchedParameters, const FShaderResourceParameter &Parameter, FRHITexture *TextureRHI)
Definition ShaderParameterUtils.h:77
void SetShaderValue(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameter &Parameter, const ParameterType &Value, uint32 ElementIndex=0)
Definition ShaderParameterUtils.h:24
@ SPF_Mandatory
Definition ShaderParameters.h:51
#define DECLARE_EXPORTED_SHADER_TYPE(ShaderClass, ShaderMetaTypeShortcut, RequiredAPI,...)
Definition Shader.h:1683
#define STRUCT_OFFSET(struc, member)
Definition UnrealTemplate.h:218
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GlobalShader.h:269
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &Environment)
Definition GlobalShader.h:289
Definition RHICommandList.h:455
Definition RHIResources.h:671
Definition RHIResources.h:2153
Definition RHIResources.h:1232
Definition RenderResource.h:37
Definition ScreenRendering.h:98
FScreenFromSlice0PS()
Definition ScreenRendering.h:122
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:102
FScreenFromSlice0PS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:118
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition ScreenRendering.h:112
Definition ScreenRendering.h:229
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHISamplerState *SamplerStateRHI, FRHITexture *TextureRHI, uint32 ArraySlice=0)
Definition ScreenRendering.h:254
FScreenPSArraySlice(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:239
FScreenPSArraySlice()
Definition ScreenRendering.h:246
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition ScreenRendering.h:234
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, const FTexture *Texture, uint32 ArraySlice=0)
Definition ScreenRendering.h:248
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:233
Definition ScreenRendering.h:163
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHISamplerState *SamplerStateRHI, FRHITexture *TextureRHI)
Definition ScreenRendering.h:182
FScreenPSInvertAlpha()
Definition ScreenRendering.h:175
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:167
FScreenPSInvertAlpha(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:169
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, const FTexture *Texture)
Definition ScreenRendering.h:177
Definition ScreenRendering.h:270
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHISamplerState *SamplerStateRHI, FRHITexture *TextureRHI, int MipLevel=0)
Definition ScreenRendering.h:291
FScreenPSMipLevel()
Definition ScreenRendering.h:283
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:274
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, const FTexture *Texture, int MipLevel=0)
Definition ScreenRendering.h:285
FScreenPSMipLevel(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:276
Definition ScreenRendering.h:341
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHISamplerState *SamplerStateRHI, FRHITexture *TextureRHI)
Definition ScreenRendering.h:361
FScreenPS_OSE()
Definition ScreenRendering.h:354
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:345
FScreenPS_OSE(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:347
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, const FTexture *Texture)
Definition ScreenRendering.h:356
Definition ScreenRendering.h:65
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHISamplerState *SamplerStateRHI, FRHITexture *TextureRHI)
Definition ScreenRendering.h:84
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:69
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, const FTexture *Texture)
Definition ScreenRendering.h:79
FScreenPS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:71
FScreenPS()
Definition ScreenRendering.h:77
Definition ScreenRendering.h:307
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, const FTexture *Texture, int MipLevel=0)
Definition ScreenRendering.h:322
FScreenPSsRGBSourceMipLevel(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:313
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHISamplerState *SamplerStateRHI, FRHITexture *TextureRHI, int MipLevel=0)
Definition ScreenRendering.h:328
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:311
FScreenPSsRGBSourceMipLevel()
Definition ScreenRendering.h:320
Definition ScreenRendering.h:196
FScreenPSsRGBSource(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:202
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHISamplerState *SamplerStateRHI, FRHITexture *TextureRHI)
Definition ScreenRendering.h:215
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:200
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, const FTexture *Texture)
Definition ScreenRendering.h:210
FScreenPSsRGBSource()
Definition ScreenRendering.h:208
Definition ScreenRendering.h:129
FScreenUnwrapSlicesPS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:152
FScreenUnwrapSlicesPS()
Definition ScreenRendering.h:156
static void ModifyCompilationEnvironment(const FGlobalShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition ScreenRendering.h:146
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:133
Definition ScreenRendering.h:375
FScreenVS()
Definition ScreenRendering.h:385
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHIUniformBuffer *ViewUniformBuffer)
Definition ScreenRendering.h:387
FScreenVS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenRendering.h:381
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition ScreenRendering.h:379
Definition ScreenRendering.h:37
virtual void ReleaseRHI() override
Definition ScreenRendering.h:53
FVertexDeclarationRHIRef VertexDeclarationRHI
Definition ScreenRendering.h:39
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition ScreenRendering.h:44
virtual ~FScreenVertexDeclaration()
Definition ScreenRendering.h:42
Definition ShaderParameters.h:56
Definition ShaderParameters.h:87
Definition RenderResource.h:354
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition RenderResource.h:543
UE_FORCEINLINE_HINT void SafeRelease()
Definition RefCounting.h:599
Definition StereoRenderUtils.h:16
bool IsMobileMultiViewEnabled() const
Definition StereoRenderUtils.h:40
Definition GlobalShader.h:73
Definition RHIShaderParameters.h:241
Definition ScreenRendering.h:20
FVector2f Position
Definition ScreenRendering.h:21
FVector2f UV
Definition ScreenRendering.h:22
Definition Shader.h:1610
Definition ShaderCore.h:544
const EShaderPlatform Platform
Definition ShaderPermutation.h:29
Definition RHI.h:182