UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ScreenPass.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CanvasTypes.h"
7#include "GlobalShader.h"
10#include "RenderGraphUtils.h"
11#include "RHIStaticStates.h"
12#include "SceneView.h"
13
16
17// Returns whether a HMD hidden area mask is being used for VR.
19
20// Returns the global engine mini font texture.
22
23// Creates and returns an RDG texture for the view family output. Returns null if no RHI texture exists.
26
27// The vertex shader used by DrawScreenPass to draw a rectangle.
38
39// Describes a texture with a paired viewport rect.
41{
43
46
48
49 // Returns a 2D texture from the input slice. A copy is used if the input is a slice of a 2D texture array, or the override output is active.
51
52 bool IsValid() const;
53
56
58
61};
62
63// Describes a Texture2D or a slice within a texture array with a paired viewport rect.
80
81// Describes a texture with a load action for usage as a render target.
83{
85 FRDGBuilder& GraphBuilder,
87 ERenderTargetLoadAction OutputLoadAction,
88 const TCHAR* OutputName);
89
91 FRDGBuilder& GraphBuilder,
92 FRDGTexture* InputTexture,
93 FIntPoint Extent,
94 ERenderTargetLoadAction OutputLoadAction,
95 const TCHAR* OutputName);
96
97 static FScreenPassRenderTarget CreateViewFamilyOutput(FRDGTextureRef ViewFamilyTexture, const FViewInfo& View);
98
100
103 {
104 // Derive the load action based on whether we are rendering to the entire texture or not.
106 {
108 }
109 }
110
115
120
125
128
130
132};
133
134// Describes a view rect contained within the extent of a texture. Used to derive texture coordinate transformations.
136{
137public:
139
144
147
151
156
161
165
168
169 // Returns whether the viewport contains an empty viewport or extent.
170 bool IsEmpty() const;
171
172 // Returns whether the viewport covers the full extent of the texture.
173 bool IsFullscreen() const;
174
175 // Returns the ratio of rect size to extent along each axis.
177
178 // The texture extent, in pixels; defines a super-set [0, 0]x(Extent, Extent).
180
181 // The viewport rect, in pixels; defines a sub-set within [0, 0]x(Extent, Extent).
183};
184
185// Returns an extent downscaled by a multiple of the integer divisor (and clamped to 1).
187
188// Returns an extent scaled by the floating point scale factor.
191
192// Returns a rect downscaled by a multiple of the integer divisor.
194
195// Returns a rect scaled by the floating point scale factor.
198
199// Returns the texture viewport downscaled by an integer divisor.
201
202// Returns the texture viewport scaled by a float multiplier.
204
205// Returns a rect with the min point at the origin and the max point at Extent.
207
208// Describes the set of shader parameters for a screen pass texture viewport.
210 // Texture extent in pixels.
213
214 // Scale / Bias factor to convert from [-1, 1] to [ViewportMin, ViewportMax]
217
218 // Texture viewport min / max in pixels.
221
222 // Texture viewport size in pixels.
223 SHADER_PARAMETER(FVector2f, ViewportSize)
225
226 // Texture viewport min / max in normalized UV coordinates, with respect to the texture extent.
229
230 // Texture viewport size in normalized UV coordinates, with respect to the texture extent.
233
234 // Texture viewport min / max in normalized UV coordinates, with respect to the texture extent,
235 // adjusted by a half pixel offset for bilinear filtering. Useful for clamping to avoid sampling
236 // pixels on viewport edges; e.g. clamp(UV, UVViewportBilinearMin, UVViewportBilinearMax);
240
242
281{
284
286 { }
287
289 : Scale(InScale)
290 , Bias(InBias)
291 { }
292
293
294 // A * FScreenTransform::Identity = A
296
297 // Transforms ScreenPos to/from ViewportUV
300
301
303 static inline FScreenTransform Invert(const FScreenTransform& AToB);
304
306 static FScreenTransform ChangeRectFromTo(
307 FVector2f SourceOffset, FVector2f SourceExtent,
308 FVector2f DestinationOffset, FVector2f DestinationExtent);
309 static FScreenTransform ChangeRectFromTo(const FIntRect& SrcViewport, const FIntRect& DestViewport);
310
312 enum class ETextureBasis
313 {
314 // Viewport maps [-1.0,1.0] on X, ]1.0, -1.0[ on Y.
316
317 // Viewport maps [0.0,1.0]
318 ViewportUV,
319
320 // Viewport maps [Viewport.Min,Viewport.Max] in pixel coordinate in the texture
321 // Used for instance for MyTexture[uint(TexelPosition)];
322 TexelPosition,
323
324 // Viewport maps [Viewport.Min / TextureExtent,Viewport.Max / TextureExtent]
325 // Used for MyTexture.SampleLevel(MySampler, TextureUV, 0);
326 TextureUV,
327 };
328
330 static inline FScreenTransform ChangeTextureBasisFromTo(
331 const FIntPoint& TextureExtent, const FIntRect& TextureViewport,
332 ETextureBasis SrcBasis, ETextureBasis DestBasis);
333
340
344 {
345 return ChangeTextureBasisFromTo(FScreenPassTextureViewport(Texture.Texture, Texture.ViewRect), SrcBasis, DestBasis);
346 }
347
349 static FScreenTransform ChangeTextureUVCoordinateFromTo(
352
353 static FScreenTransform SvPositionToViewportUV(const FIntRect& SrcViewport);
354 static FScreenTransform DispatchThreadIdToViewportUV(const FIntRect& SrcViewport);
355}; // FScreenTransform
356
357// A utility shader parameter struct containing the viewport, texture, and sampler for a unique texture input to a shader.
363
369
372
377{
380
382
386 FRHIBlendState* InBlendState = FDefaultBlendState::GetRHI(),
387 FRHIDepthStencilState* InDepthStencilState = FDefaultDepthStencilState::GetRHI(),
392 , BlendState(InBlendState)
393 , DepthStencilState(InDepthStencilState)
394 , VertexDeclaration(InVertexDeclaration)
396 {}
397
398 void Validate() const
399 {
400 check(VertexShader.IsValid());
401 check(PixelShader.IsValid());
402 check(BlendState);
403 check(DepthStencilState);
404 check(VertexDeclaration);
405 }
406
409 FRHIBlendState* BlendState = nullptr;
410 FRHIDepthStencilState* DepthStencilState = nullptr;
411 FRHIVertexDeclaration* VertexDeclaration = nullptr;
413};
414
415// Helper function which sets the pipeline state object on the command list prior to invoking a screen pass.
417
419{
420 None,
421
422 // Allows the screen pass to use a HMD hidden area mask if one is available. Used for VR.
424};
426
464
466 FRHICommandList& RHICmdList,
467 const FScreenPassViewInfo& ViewInfo,
468 const FScreenPassTextureViewport& OutputViewport,
470 const FScreenPassPipelineState& PipelineState,
472
478template<typename TSetupFunction>
480 FRHICommandList& RHICmdList,
481 FScreenPassViewInfo ViewInfo,
482 const FScreenPassTextureViewport& OutputViewport,
484 const FScreenPassPipelineState& PipelineState,
487{
488 PipelineState.Validate();
489
490 const FIntRect OutputRect = OutputViewport.Rect;
491
492 RHICmdList.SetViewport(OutputRect.Min.X, OutputRect.Min.Y, 0.0f, OutputRect.Max.X, OutputRect.Max.Y, 1.0f);
493
494 SetScreenPassPipelineState(RHICmdList, PipelineState);
495
496 SetupFunction(RHICmdList);
497
498 DrawScreenPass_PostSetup(RHICmdList, ViewInfo, OutputViewport, InputViewport, PipelineState, Flags);
499}
500
504template <typename PixelShaderType>
506 FRDGBuilder& GraphBuilder,
507 FRDGEventName&& PassName,
508 FScreenPassViewInfo ViewInfo,
509 const FScreenPassTextureViewport& OutputViewport,
513 FRHIBlendState* BlendState,
514 FRHIDepthStencilState* DepthStencilState,
515 typename PixelShaderType::FParameters* PixelShaderParameters,
517{
518 check(VertexShader.IsValid());
519 check(PixelShader.IsValid());
521
523
524 const FScreenPassPipelineState PipelineState(VertexShader, PixelShader, BlendState, DepthStencilState);
525
526 GraphBuilder.AddPass(
527 Forward<FRDGEventName&&>(PassName),
530 [ViewInfo, OutputViewport, InputViewport, PipelineState, PixelShader, PixelShaderParameters, Flags](FRDGAsyncTask, FRHICommandList& RHICmdList)
531 {
532 DrawScreenPass(RHICmdList, ViewInfo, OutputViewport, InputViewport, PipelineState, Flags, [&](FRHICommandList&)
533 {
534 SetShaderParameters(RHICmdList, PixelShader, PixelShader.GetPixelShader(), *PixelShaderParameters);
535 });
536 });
537}
538
539template <typename PixelShaderType>
541 FRDGBuilder& GraphBuilder,
542 FRDGEventName&& PassName,
543 FScreenPassViewInfo ViewInfo,
544 const FScreenPassTextureViewport& OutputViewport,
548 typename PixelShaderType::FParameters* PixelShaderParameters,
550{
553 AddDrawScreenPass(GraphBuilder, Forward<FRDGEventName&&>(PassName), ViewInfo, OutputViewport, InputViewport, VertexShader, PixelShader, BlendState, DepthStencilState, PixelShaderParameters, Flags);
554}
555
556template <typename PixelShaderType>
558 FRDGBuilder& GraphBuilder,
559 FRDGEventName&& PassName,
560 FScreenPassViewInfo ViewInfo,
561 const FScreenPassTextureViewport& OutputViewport,
565 FRHIBlendState* BlendState,
566 typename PixelShaderType::FParameters* PixelShaderParameters,
568{
570 AddDrawScreenPass(GraphBuilder, Forward<FRDGEventName&&>(PassName), ViewInfo, OutputViewport, InputViewport, VertexShader, PixelShader, BlendState, DepthStencilState, PixelShaderParameters, Flags);
571}
572
573template <typename PixelShaderType>
575 FRDGBuilder& GraphBuilder,
576 FRDGEventName&& PassName,
577 FScreenPassViewInfo ViewInfo,
578 const FScreenPassTextureViewport& OutputViewport,
582 FRHIDepthStencilState* DepthStencilState,
583 typename PixelShaderType::FParameters* PixelShaderParameters,
585{
587 AddDrawScreenPass(GraphBuilder, Forward<FRDGEventName&&>(PassName), ViewInfo, OutputViewport, InputViewport, VertexShader, PixelShader, BlendState, DepthStencilState, PixelShaderParameters, Flags);
588}
589
590template <typename PixelShaderType>
592 FRDGBuilder& GraphBuilder,
593 FRDGEventName&& PassName,
594 FScreenPassViewInfo ViewInfo,
595 const FScreenPassTextureViewport& OutputViewport,
598 typename PixelShaderType::FParameters* PixelShaderParameters,
600{
601 FGlobalShaderMap* ShaderMap = GetGlobalShaderMap(ViewInfo.FeatureLevel);
605 AddDrawScreenPass(GraphBuilder, Forward<FRDGEventName&&>(PassName), ViewInfo, OutputViewport, InputViewport, VertexShader, PixelShader, BlendState, DepthStencilState, PixelShaderParameters, Flags);
606}
607
611template <typename TSetupFunction, typename TPassParameterStruct>
613 FRDGBuilder& GraphBuilder,
614 FRDGEventName&& PassName,
615 FScreenPassViewInfo ViewInfo,
616 const FScreenPassTextureViewport& OutputViewport,
618 const FScreenPassPipelineState& PipelineState,
622{
623 PipelineState.Validate();
625
626 GraphBuilder.AddPass(
627 Forward<FRDGEventName&&>(PassName),
630 [ViewInfo, OutputViewport, InputViewport, PipelineState, SetupFunction, Flags] (FRDGAsyncTask, FRHICommandList& RHICmdList)
631 {
632 DrawScreenPass(RHICmdList, ViewInfo, OutputViewport, InputViewport, PipelineState, Flags, SetupFunction);
633 });
634}
635
636template <typename TSetupFunction, typename TPassParameterStruct>
638 FRDGBuilder& GraphBuilder,
639 FRDGEventName&& PassName,
640 FScreenPassViewInfo ViewInfo,
641 const FScreenPassTextureViewport& OutputViewport,
643 const FScreenPassPipelineState& PipelineState,
646{
647 AddDrawScreenPass(GraphBuilder, Forward<FRDGEventName&&>(PassName), ViewInfo, OutputViewport, InputViewport, PipelineState, PassParameterStruct, EScreenPassDrawFlags::None, SetupFunction);
648}
649
656 FRDGBuilder& GraphBuilder,
657 FScreenPassViewInfo ViewInfo,
658 FRDGTextureRef InputTexture,
659 FRDGTextureRef OutputTexture,
663
665 FRDGBuilder& GraphBuilder,
666 FScreenPassViewInfo ViewInfo,
667 FRDGTextureRef InputTexture,
668 FRDGTextureRef OutputTexture,
673
676 FRDGBuilder& GraphBuilder,
677 FScreenPassViewInfo ViewInfo,
678 FRDGTextureRef InputTexture,
679 FRDGTextureRef OutputTexture,
680 FIntRect ViewportRect)
681{
682 AddDrawTexturePass(GraphBuilder, ViewInfo, InputTexture, OutputTexture, ViewportRect.Min, ViewportRect.Min, ViewportRect.Size());
683}
684
686 FRDGBuilder& GraphBuilder,
687 FScreenPassViewInfo ViewInfo,
691
693 FRDGBuilder& GraphBuilder,
694 FScreenPassViewInfo ViewInfo,
697{
699 if (Input.Texture->Desc.Extent == Output.Texture->Desc.Extent && Input.ViewRect == Output.ViewRect)
700 {
702 }
703 AddDrawTexturePass(GraphBuilder, ViewInfo, Input, FScreenPassRenderTarget(Output, LoadAction));
704}
705
708 FRDGBuilder& GraphBuilder,
709 FScreenPassViewInfo ViewInfo,
712
713template <typename TFunction>
715 FRDGBuilder& GraphBuilder,
716 FRDGEventName&& PassName,
719{
721 PassParameters->RenderTargets[0] = Output.GetRenderTargetBinding();
723}
724
725template <typename TFunction>
727 FRDGBuilder& GraphBuilder,
728 FRDGEventName&& PassName,
729 const FSceneView& View,
732{
733 check(Output.IsValid());
734
735 const FSceneViewFamily& ViewFamily = *View.Family;
736 FCanvas& Canvas = *FCanvas::Create(GraphBuilder, Output.Texture, nullptr, ViewFamily.Time, View.GetFeatureLevel(), ViewFamily.DebugDPIScale);
737 Canvas.SetRenderTargetRect(Output.ViewRect);
738
739 Function(Canvas);
740
741 const bool bFlush = false;
742 Canvas.Flush_RenderThread(GraphBuilder, bFlush);
743}
744
746{
747 // Produces a depth value that is not conservative but has consistent error (i.e. picks the sample).
748 Point,
749
750 // Produces a conservative max depth value.
751 Max,
752
753 // Produces a checkerboarded selection of min and max depth values
755
756 // Produces a color texture where R=min and G=max DeviceZ
758
759 // Produces a color texture where R=min and G=max DeviceZ from a color texture containing R=min and G=max DeviceZ
761};
762
764 FRDGBuilder& GraphBuilder,
765 const FViewInfo& View,
769
770#include "ScreenPass.inl" // IWYU pragma: export
#define check(expr)
Definition AssertionMacros.h:314
TGlobalResource< FFilterVertexDeclaration, FRenderResource::EInitPhase::Pre > GFilterVertexDeclaration
Definition CommonRenderResources.cpp:13
@ INDEX_NONE
Definition CoreMiscDefines.h:150
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 ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
FGlobalShaderMap * GetGlobalShaderMap(EShaderPlatform Platform)
Definition GlobalShader.cpp:539
ERenderTargetLoadAction
Definition RHIDefinitions.h:1253
ERHIFeatureLevel::Type GMaxRHIFeatureLevel
Definition RHI.cpp:1338
void ClearUnusedGraphResources(const TShaderRef< TShaderClass > &Shader, const FShaderParametersMetadata *ParametersMetadata, typename TShaderClass::FParameters *InoutParameters, std::initializer_list< FRDGResourceRef > ExcludeList={})
Definition RenderGraphUtils.h:195
FScreenPassTextureViewportParameters RENDERER_API GetScreenPassTextureViewportParameters(const FScreenPassTextureViewport &InViewport)
Definition ScreenPass.cpp:185
FIntRect GetDownscaledRect(FIntRect Rect, FIntPoint Divisor)
Definition ScreenPass.inl:27
FIntPoint GetDownscaledExtent(FIntPoint Extent, FIntPoint Divisor)
Definition ScreenPass.inl:5
FRDGTextureRef RENDERER_API TryCreateViewFamilyDepthTexture(FRDGBuilder &GraphBuilder, const FSceneViewFamily &ViewFamily)
Definition ScreenPass.cpp:45
FScreenPassTextureViewport GetDownscaledViewport(FScreenPassTextureViewport Viewport, FIntPoint Divisor)
Definition ScreenPass.inl:58
FIntPoint GetScaledExtent(FIntPoint Extent, FVector2D Multiplier)
Definition ScreenPass.inl:13
RENDERER_API bool IsHMDHiddenAreaMaskActive()
Definition SceneRendering.cpp:859
RENDERER_API void AddDownsampleDepthPass(FRDGBuilder &GraphBuilder, const FViewInfo &View, FScreenPassTexture Input, FScreenPassRenderTarget Output, EDownsampleDepthFilter DownsampleDepthFilter)
Definition ScreenPass.cpp:430
RENDERER_API void DrawScreenPass_PostSetup(FRHICommandList &RHICmdList, const FScreenPassViewInfo &ViewInfo, const FScreenPassTextureViewport &OutputViewport, const FScreenPassTextureViewport &InputViewport, const FScreenPassPipelineState &PipelineState, EScreenPassDrawFlags Flags)
Definition ScreenPass.cpp:258
FRDGTextureRef RENDERER_API TryCreateViewFamilyTexture(FRDGBuilder &GraphBuilder, const FSceneViewFamily &ViewFamily)
Definition ScreenPass.cpp:33
FIntRect GetScaledRect(FIntRect Rect, FVector2D Multiplier)
Definition ScreenPass.inl:45
void RENDERER_API SetScreenPassPipelineState(FRHICommandList &RHICmdList, const FScreenPassPipelineState &ScreenPassDraw)
Definition ScreenPass.cpp:243
void RENDERER_API AddDrawTexturePass(FRDGBuilder &GraphBuilder, FScreenPassViewInfo ViewInfo, FRDGTextureRef InputTexture, FRDGTextureRef OutputTexture, FIntPoint InputPosition=FIntPoint::ZeroValue, FIntPoint OutputPosition=FIntPoint::ZeroValue, FIntPoint Size=FIntPoint::ZeroValue)
Definition ScreenPass.cpp:333
FRHITexture * GetMiniFontTexture()
Definition ScreenPass.cpp:21
EDownsampleDepthFilter
Definition ScreenPass.h:746
FIntRect GetRectFromExtent(FIntPoint Extent)
Definition ScreenPass.inl:72
void DrawScreenPass(FRHICommandList &RHICmdList, FScreenPassViewInfo ViewInfo, const FScreenPassTextureViewport &OutputViewport, const FScreenPassTextureViewport &InputViewport, const FScreenPassPipelineState &PipelineState, EScreenPassDrawFlags Flags, TSetupFunction SetupFunction)
Definition ScreenPass.h:479
FScreenPassTextureInput GetScreenPassTextureInput(FScreenPassTexture Input, FRHISamplerState *Sampler)
Definition ScreenPass.inl:409
void AddDrawScreenPass(FRDGBuilder &GraphBuilder, FRDGEventName &&PassName, FScreenPassViewInfo ViewInfo, const FScreenPassTextureViewport &OutputViewport, const FScreenPassTextureViewport &InputViewport, const TShaderRef< FShader > &VertexShader, const TShaderRef< PixelShaderType > &PixelShader, FRHIBlendState *BlendState, FRHIDepthStencilState *DepthStencilState, typename PixelShaderType::FParameters *PixelShaderParameters, EScreenPassDrawFlags Flags=EScreenPassDrawFlags::None)
Definition ScreenPass.h:505
EScreenPassDrawFlags
Definition ScreenPass.h:419
void AddRenderTargetPass(FRDGBuilder &GraphBuilder, FRDGEventName &&PassName, FScreenPassRenderTarget Output, TFunction &&Function)
Definition ScreenPass.h:714
void AddDrawCanvasPass(FRDGBuilder &GraphBuilder, FRDGEventName &&PassName, const FSceneView &View, FScreenPassRenderTarget Output, TFunction Function)
Definition ScreenPass.h:726
FScreenPassTextureViewport GetScaledViewport(FScreenPassTextureViewport Viewport, FVector2D Multiplier)
Definition ScreenPass.inl:65
#define SHADER_PARAMETER_RDG_TEXTURE(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1752
#define SHADER_PARAMETER_SAMPLER(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1740
#define BEGIN_SHADER_PARAMETER_STRUCT(StructTypeName, DllStorage)
Definition ShaderParameterMacros.h:1482
#define SHADER_PARAMETER_STRUCT_INCLUDE(StructType, MemberName)
Definition ShaderParameterMacros.h:1895
#define END_SHADER_PARAMETER_STRUCT()
Definition ShaderParameterMacros.h:1485
#define SHADER_PARAMETER_RDG_TEXTURE_SRV(ShaderType, MemberName)
Definition ShaderParameterMacros.h:1764
#define SHADER_PARAMETER(MemberType, MemberName)
Definition ShaderParameterMacros.h:1684
void SetShaderParameters(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameterBindings &Bindings, const FShaderParametersMetadata *ParametersMetadata, const void *InParametersData)
Definition ShaderParameterStruct.cpp:883
@ Multiplier
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32 Size
Definition VulkanMemory.cpp:4034
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition CanvasTypes.h:211
ENGINE_API void SetRenderTargetRect(const FIntRect &ViewRect)
Definition Canvas.cpp:1056
ENGINE_API void Flush_RenderThread(FRHICommandListImmediate &RHICmdList, bool bForce=false)
Definition Canvas.cpp:768
static ENGINE_API FCanvas * Create(FRDGBuilder &GraphBuilder, FRDGTextureRef InRenderTarget, FHitProxyConsumer *InHitProxyConsumer, const FGameTime &Time, ERHIFeatureLevel::Type InFeatureLevel, float InDPIScale=1.0f)
Definition Canvas.cpp:310
Definition GlobalShader.h:173
Definition GlobalShader.h:269
Definition RenderGraphBuilder.h:49
ParameterStructType * AllocParameters()
Definition RenderGraphBuilder.inl:170
FRDGPassRef AddPass(FRDGEventName &&Name, const ParameterStructType *ParameterStruct, ERDGPassFlags Flags, ExecuteLambdaType &&ExecuteLambda)
Definition RenderGraphEvent.h:38
Definition RenderGraphResources.h:839
Definition RenderGraphResources.h:571
const FRDGTextureDesc Desc
Definition RenderGraphResources.h:575
Definition RHIResources.h:696
Definition RHICommandList.h:3819
void SetViewport(float MinX, float MinY, float MinZ, float MaxX, float MaxY, float MaxZ)
Definition RHICommandList.h:4015
Definition RHIResources.h:686
Definition RHIResources.h:671
Definition RHIResources.h:2153
Definition RHIResources.h:725
Definition SceneView.h:2212
FGameTime Time
Definition SceneView.h:2327
float DebugDPIScale
Definition SceneView.h:2402
Definition SceneView.h:1425
const FSceneViewFamily * Family
Definition SceneView.h:1427
ERHIFeatureLevel::Type GetFeatureLevel() const
Definition SceneView.h:2004
Definition ScreenPass.h:136
bool operator!=(const FScreenPassTextureViewport &Other) const
Definition ScreenPass.inl:188
FScreenPassTextureViewport()=default
FIntPoint Extent
Definition ScreenPass.h:179
FScreenPassTextureViewport(FRDGTextureRef InTexture, FIntRect InRect)
Definition ScreenPass.h:162
FScreenPassTextureViewport(FRDGTextureRef InTexture)
Definition ScreenPass.h:148
FScreenPassTextureViewport(FIntPoint InExtent, FIntRect InRect)
Definition ScreenPass.h:157
FScreenPassTextureViewport(FIntRect InRect)
Definition ScreenPass.h:140
bool operator==(const FScreenPassTextureViewport &Other) const
Definition ScreenPass.inl:183
FIntRect Rect
Definition ScreenPass.h:182
FScreenPassTextureViewport(FIntPoint InExtent)
Definition ScreenPass.h:152
FVector2D GetRectToExtentRatio() const
Definition ScreenPass.inl:203
bool IsEmpty() const
Definition ScreenPass.inl:193
bool IsFullscreen() const
Definition ScreenPass.inl:198
Definition ScreenPass.h:29
FScreenPassVS()=default
FScreenPassVS(const ShaderMetaType::CompiledShaderInitializerType &Initializer)
Definition ScreenPass.h:34
DECLARE_EXPORTED_GLOBAL_SHADER(FScreenPassVS, RENDERER_API)
Definition SceneRendering.h:1132
Definition AndroidPlatformMisc.h:14
Definition Shader.h:2629
Definition Shader.h:1021
Definition RHIStaticStates.h:349
Definition RHIStaticStates.h:233
static RHIParamRefType GetRHI()
Definition RHIStaticStates.h:57
Type
Definition RHIFeatureLevel.h:20
Definition RenderGraphDefinitions.h:103
FIntPoint Extent
Definition RHIResources.h:1856
Definition ShaderParameterMacros.h:525
Definition ScreenPass.h:377
TShaderRef< FShader > PixelShader
Definition ScreenPass.h:408
FScreenPassPipelineState(const TShaderRef< FShader > &InVertexShader, const TShaderRef< FShader > &InPixelShader, FRHIBlendState *InBlendState=FDefaultBlendState::GetRHI(), FRHIDepthStencilState *InDepthStencilState=FDefaultDepthStencilState::GetRHI(), uint8 InStencilRef=0, FRHIVertexDeclaration *InVertexDeclaration=GFilterVertexDeclaration.VertexDeclarationRHI)
Definition ScreenPass.h:383
FScreenPassPipelineState()=default
TShaderRef< FShader > VertexShader
Definition ScreenPass.h:407
void Validate() const
Definition ScreenPass.h:398
Definition ScreenPass.h:83
FScreenPassRenderTarget(FRDGTextureRef InTexture, FIntRect InViewRect, ERenderTargetLoadAction InLoadAction)
Definition ScreenPass.h:121
bool operator!=(FScreenPassRenderTarget Other) const
Definition ScreenPass.inl:159
FScreenPassRenderTarget()=default
static FScreenPassRenderTarget CreateViewFamilyOutput(FRDGTextureRef ViewFamilyTexture, const FViewInfo &View)
Definition ScreenPass.cpp:157
ERenderTargetLoadAction LoadAction
Definition ScreenPass.h:131
FScreenPassRenderTarget(FRDGTextureRef InTexture, ERenderTargetLoadAction InLoadAction)
Definition ScreenPass.h:116
bool operator==(FScreenPassRenderTarget Other) const
Definition ScreenPass.inl:154
FScreenPassRenderTarget(FScreenPassTexture InTexture, ERenderTargetLoadAction InLoadAction)
Definition ScreenPass.h:111
static RENDERER_API FScreenPassRenderTarget CreateFromInput(FRDGBuilder &GraphBuilder, FScreenPassTexture Input, ERenderTargetLoadAction OutputLoadAction, const TCHAR *OutputName)
Definition ScreenPass.cpp:125
FScreenPassRenderTarget(FScreenPassTexture InTexture)
Definition ScreenPass.h:101
FRenderTargetBinding GetRenderTargetBinding() const
Definition ScreenPass.inl:164
Definition ScreenPass.h:65
static RENDERER_API FScreenPassTextureSlice CreateFromScreenPassTexture(FRDGBuilder &GraphBuilder, const FScreenPassTexture &ScreenTexture)
Definition ScreenPass.cpp:115
FRDGTextureSRVRef TextureSRV
Definition ScreenPass.h:77
bool IsValid() const
Definition ScreenPass.inl:139
bool operator!=(FScreenPassTextureSlice Other) const
Definition ScreenPass.inl:149
FScreenPassTextureSlice()=default
bool operator==(FScreenPassTextureSlice Other) const
Definition ScreenPass.inl:144
FIntRect ViewRect
Definition ScreenPass.h:78
Definition ScreenPass.h:41
FRDGTextureRef Texture
Definition ScreenPass.h:59
bool operator==(FScreenPassTexture Other) const
Definition ScreenPass.inl:119
static RENDERER_API FScreenPassTexture CopyFromSlice(FRDGBuilder &GraphBuilder, const FScreenPassTextureSlice &ScreenTextureSlice, FScreenPassTexture OverrideOutput=FScreenPassTexture())
Definition ScreenPass.cpp:62
FIntRect ViewRect
Definition ScreenPass.h:60
bool operator!=(FScreenPassTexture Other) const
Definition ScreenPass.inl:124
FScreenPassTexture()
Definition ScreenPass.h:42
bool IsValid() const
Definition ScreenPass.inl:114
void UpdateVisualizeTextureExtent()
Definition ScreenPass.inl:86
Definition ScreenPass.h:429
FScreenPassViewInfo(ERHIFeatureLevel::Type InFeatureLevel)
Definition ScreenPass.h:440
FScreenPassViewInfo()
Definition ScreenPass.h:435
FScreenPassViewInfo(const FSceneView &View)
Definition ScreenPass.h:448
const int32 StereoViewIndex
Definition ScreenPass.h:431
const bool bHMDHiddenAreaMaskActive
Definition ScreenPass.h:433
const int32 InstanceCount
Definition ScreenPass.h:432
FScreenPassViewInfo(const FSceneView &View, const uint32 OverrideInstanceCount)
Definition ScreenPass.h:456
const ERHIFeatureLevel::Type FeatureLevel
Definition ScreenPass.h:430
Definition ScreenPass.h:281
static RENDERER_API const FScreenTransform ViewportUVToScreenPos
Definition ScreenPass.h:299
FScreenTransform(const FVector2f &InScale, const FVector2f &InBias)
Definition ScreenPass.h:288
static FScreenTransform ChangeTextureBasisFromTo(const FScreenPassTexture &Texture, ETextureBasis SrcBasis, ETextureBasis DestBasis)
Definition ScreenPass.h:341
static RENDERER_API const FScreenTransform Identity
Definition ScreenPass.h:295
static FScreenTransform ChangeTextureBasisFromTo(const FScreenPassTextureViewport &TextureViewport, ETextureBasis SrcBasis, ETextureBasis DestBasis)
Definition ScreenPass.h:334
FScreenTransform()
Definition ScreenPass.h:285
ETextureBasis
Definition ScreenPass.h:313
FVector2f Bias
Definition ScreenPass.h:283
static RENDERER_API const FScreenTransform ScreenPosToViewportUV
Definition ScreenPass.h:298
FVector2f Scale
Definition ScreenPass.h:282
Definition Shader.h:1610
Definition LinuxPlatformSplash.cpp:43
Definition IntPoint.h:25
IntType Y
Definition IntPoint.h:37
static const TIntPoint ZeroValue
Definition IntPoint.h:45
IntType X
Definition IntPoint.h:34
IntPointType Max
Definition IntRect.h:37
IntPointType Min
Definition IntRect.h:34
IntPointType Size() const
Definition IntRect.h:449