UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
StereoLayerRendering.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 "ShaderParameters.h"
11#include "Shader.h"
12#include "GlobalShader.h"
14
19{
21public:
22
23 static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) { return true; }
24
27 {
28 InQuadAdjust.Bind(Initializer.ParameterMap, TEXT("InQuadAdjust"));
29 InUVAdjust.Bind(Initializer.ParameterMap, TEXT("InUVAdjust"));
30 InViewProjection.Bind(Initializer.ParameterMap, TEXT("InViewProjection"));
31 InWorld.Bind(Initializer.ParameterMap, TEXT("InWorld"));
32 }
34
36 {
37 if (InQuadAdjust.IsBound())
38 {
40 }
41
42 if (InUVAdjust.IsBound())
43 {
45 UVAdjust.X = static_cast<float>(UVRect.Min.X);
46 UVAdjust.Y = static_cast<float>(UVRect.Min.Y);
47 UVAdjust.Z = static_cast<float>(UVRect.Max.X - UVRect.Min.X);
48 UVAdjust.W = static_cast<float>(UVRect.Max.Y - UVRect.Min.Y);
50 }
51
52 if (InViewProjection.IsBound())
53 {
55 }
56
57 if (InWorld.IsBound())
58 {
60 }
61 }
62
63private:
68};
69
71{
73public:
74
75 static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters& Parameters) { return true; }
76
78 {
80
81 if (InIsOpaque.IsBound())
82 {
83 const float OpaqueVal = bIsOpaque ? 1.0 : 0.0;
85 }
86 }
87
88protected:
91 {
92 InTexture.Bind(Initializer.ParameterMap, TextureParamName, SPF_Mandatory);
93 InTextureSampler.Bind(Initializer.ParameterMap, TEXT("InTextureSampler"));
94 InIsOpaque.Bind(Initializer.ParameterMap, TEXT("InIsOpaque"));
95 }
97
101};
102
117
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::Math::TVector2< float > FVector2f
Definition MathFwd.h:74
#define LAYOUT_FIELD(T, Name,...)
Definition MemoryLayout.h:471
#define DECLARE_TYPE_LAYOUT(T, Interface)
Definition MemoryLayout.h:557
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
Definition GlobalShader.h:269
Definition RHIResources.h:671
Definition RHIResources.h:2153
Definition ShaderParameters.h:56
Definition ShaderParameters.h:87
Definition StereoLayerRendering.h:71
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FRHISamplerState *SamplerStateRHI, FRHITexture *TextureRHI, bool bIsOpaque)
Definition StereoLayerRendering.h:77
LAYOUT_FIELD(FShaderResourceParameter, InTextureSampler)
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition StereoLayerRendering.h:75
FStereoLayerPS_Base()
Definition StereoLayerRendering.h:96
LAYOUT_FIELD(FShaderParameter, InIsOpaque)
LAYOUT_FIELD(FShaderResourceParameter, InTexture)
FStereoLayerPS_Base(const ShaderMetaType::CompiledShaderInitializerType &Initializer, const TCHAR *TextureParamName)
Definition StereoLayerRendering.h:89
Definition StereoLayerRendering.h:122
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition StereoLayerRendering.h:126
FStereoLayerPS_External()
Definition StereoLayerRendering.h:130
FStereoLayerPS_External(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition StereoLayerRendering.h:128
Definition StereoLayerRendering.h:107
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition StereoLayerRendering.h:111
FStereoLayerPS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition StereoLayerRendering.h:113
FStereoLayerPS()
Definition StereoLayerRendering.h:115
Definition StereoLayerRendering.h:19
FStereoLayerVS()
Definition StereoLayerRendering.h:33
FStereoLayerVS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition StereoLayerRendering.h:25
void SetParameters(FRHIBatchedShaderParameters &BatchedParameters, FVector2D QuadSize, FBox2D UVRect, const FMatrix &ViewProjection, const FMatrix &World)
Definition StereoLayerRendering.h:35
static bool ShouldCompilePermutation(const FGlobalShaderPermutationParameters &Parameters)
Definition StereoLayerRendering.h:23
Definition GlobalShader.h:73
Definition RHIShaderParameters.h:241
Definition Shader.h:1610
TVector2< T > Max
Definition Box2D.h:39
TVector2< T > Min
Definition Box2D.h:36
T Y
Definition Vector2D.h:52
T X
Definition Vector2D.h:49
T X
Definition Vector4.h:43