UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BasePassRendering.inl
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3/*=============================================================================
4 BasePassRendering.inl: Base pass rendering implementations.
5 (Due to forward declaration issues)
6=============================================================================*/
7
8#pragma once
9
10#include "CoreFwd.h"
11#include "BasePassRendering.h"
12
15class FRHICommandList;
16class FSceneView;
17class FVertexFactory;
18class FViewInfo;
19struct FMeshBatch;
22
23template<typename LightMapPolicyType>
25 const FScene* Scene,
26 ERHIFeatureLevel::Type FeatureLevel,
27 const FPrimitiveSceneProxy* PrimitiveSceneProxy,
28 const FMaterialRenderProxy& MaterialRenderProxy,
29 const FMaterial& Material,
31 FMeshDrawSingleShaderBindings& ShaderBindings) const
32{
33 FMeshMaterialShader::GetShaderBindings(Scene, FeatureLevel, PrimitiveSceneProxy, MaterialRenderProxy, Material, ShaderElementData, ShaderBindings);
34
35 LightMapPolicyType::GetVertexShaderBindings(
36 PrimitiveSceneProxy,
37 ShaderElementData.LightMapPolicyElementData,
38 this,
39 ShaderBindings);
40}
41
42template<typename LightMapPolicyType>
44 const FShaderMapPointerTable& PointerTable,
45 const FScene* Scene,
46 const FSceneView* ViewIfDynamicMeshCommand,
47 const FVertexFactory* VertexFactory,
49 ERHIFeatureLevel::Type FeatureLevel,
50 const FPrimitiveSceneProxy* PrimitiveSceneProxy,
51 const FMeshBatch& MeshBatch,
54 FMeshDrawSingleShaderBindings& ShaderBindings,
55 FVertexInputStreamArray& VertexStreams) const
56{
57 FMeshMaterialShader::GetElementShaderBindings(PointerTable, Scene, ViewIfDynamicMeshCommand, VertexFactory, InputStreamType, FeatureLevel, PrimitiveSceneProxy, MeshBatch, BatchElement, ShaderElementData, ShaderBindings, VertexStreams);
58}
59
60template<typename LightMapPolicyType>
62 const FScene* Scene,
63 ERHIFeatureLevel::Type FeatureLevel,
64 const FPrimitiveSceneProxy* PrimitiveSceneProxy,
65 const FMaterialRenderProxy& MaterialRenderProxy,
66 const FMaterial& Material,
68 FMeshDrawSingleShaderBindings& ShaderBindings) const
69{
70 FMeshMaterialShader::GetShaderBindings(Scene, FeatureLevel, PrimitiveSceneProxy, MaterialRenderProxy, Material, ShaderElementData, ShaderBindings);
71
72 LightMapPolicyType::GetPixelShaderBindings(
73 PrimitiveSceneProxy,
74 ShaderElementData.LightMapPolicyElementData,
75 this,
76 ShaderBindings);
77}
78
79template<typename LightMapPolicyType>
81 const FScene* Scene,
82 ERHIFeatureLevel::Type FeatureLevel,
83 const FPrimitiveSceneProxy* PrimitiveSceneProxy,
84 const FMaterialRenderProxy& MaterialRenderProxy,
85 const FMaterial& Material,
87 FMeshDrawSingleShaderBindings& ShaderBindings) const
88{
89 FMeshMaterialShader::GetShaderBindings(Scene, FeatureLevel, PrimitiveSceneProxy, MaterialRenderProxy, Material, ShaderElementData, ShaderBindings);
90
91 LightMapPolicyType::GetComputeShaderBindings(
92 PrimitiveSceneProxy,
93 ShaderElementData.LightMapPolicyElementData,
94 this,
95 ShaderBindings);
96}
97
98template<typename LightMapPolicyType>
110
111template<typename LightMapPolicyType>
113{
114 uint32 TargetMask = 0u;
115 TargetMask |= Target0.IsBound() ? (1u << 0u) : 0u;
116 TargetMask |= Target1.IsBound() ? (1u << 1u) : 0u;
117 TargetMask |= Target2.IsBound() ? (1u << 2u) : 0u;
118 TargetMask |= Target3.IsBound() ? (1u << 3u) : 0u;
119 TargetMask |= Target4.IsBound() ? (1u << 4u) : 0u;
120 TargetMask |= Target5.IsBound() ? (1u << 5u) : 0u;
121 TargetMask |= Target6.IsBound() ? (1u << 6u) : 0u;
122 TargetMask |= Target7.IsBound() ? (1u << 7u) : 0u;
123 TargetMask |= Targets.IsBound() ? (1u << 8u) : 0u;
124 return TargetMask;
125}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
void SetUniformBufferParameter(FRHIBatchedShaderParameters &BatchedParameters, const FShaderUniformBufferParameter &Parameter, FRHIUniformBuffer *UniformBufferRHI)
Definition ShaderParameterUtils.h:207
void SetShaderValue(FRHIBatchedShaderParameters &BatchedParameters, const FShaderParameter &Parameter, const ParameterType &Value, uint32 ElementIndex=0)
Definition ShaderParameterUtils.h:24
EVertexInputStreamType
Definition VertexFactory.h:128
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition MaterialRenderProxy.h:102
Definition MaterialShared.h:2058
Definition MeshDrawShaderBindings.h:104
Definition MeshMaterialShader.h:68
RENDERER_API void GetShaderBindings(const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, const FMeshMaterialShaderElementData &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings) const
Definition ShaderBaseClasses.cpp:457
RENDERER_API void GetElementShaderBindings(const FShaderMapPointerTable &PointerTable, const FScene *Scene, const FSceneView *ViewIfDynamicMeshCommand, const FVertexFactory *VertexFactory, const EVertexInputStreamType InputStreamType, const FStaticFeatureLevel FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMeshBatch &MeshBatch, const FMeshBatchElement &BatchElement, const FMeshMaterialShaderElementData &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings, FVertexInputStreamArray &VertexStreams) const
Definition ShaderBaseClasses.cpp:471
Definition PrimitiveSceneProxy.h:296
Definition RHICommandList.h:3819
Definition RHIResources.h:1232
Definition SceneView.h:1425
Definition ScenePrivate.h:2875
Definition Shader.h:637
Definition VertexFactory.h:661
Definition SceneRendering.h:1132
void GetShaderBindings(const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, const TBasePassShaderElementData< LightMapPolicyType > &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings) const
Definition BasePassRendering.inl:80
uint32 GetBoundTargetMask() const
Definition BasePassRendering.inl:112
void SetPassParameters(FRHIBatchedShaderParameters &BatchedParameters, const FUintVector4 &ViewRect, const FUintVector4 &PassData, FRHIUniformBuffer *ShadingOutputs)
Definition BasePassRendering.inl:99
void GetShaderBindings(const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, const TBasePassShaderElementData< LightMapPolicyType > &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings) const
Definition BasePassRendering.inl:61
Definition BasePassRendering.h:196
void GetShaderBindings(const FScene *Scene, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMaterialRenderProxy &MaterialRenderProxy, const FMaterial &Material, const TBasePassShaderElementData< LightMapPolicyType > &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings) const
Definition BasePassRendering.inl:24
void GetElementShaderBindings(const FShaderMapPointerTable &PointerTable, const FScene *Scene, const FSceneView *ViewIfDynamicMeshCommand, const FVertexFactory *VertexFactory, const EVertexInputStreamType InputStreamType, ERHIFeatureLevel::Type FeatureLevel, const FPrimitiveSceneProxy *PrimitiveSceneProxy, const FMeshBatch &MeshBatch, const FMeshBatchElement &BatchElement, const TBasePassShaderElementData< LightMapPolicyType > &ShaderElementData, FMeshDrawSingleShaderBindings &ShaderBindings, FVertexInputStreamArray &VertexStreams) const
Definition BasePassRendering.inl:43
Type
Definition RHIFeatureLevel.h:20
Definition MeshBatch.h:232
Definition MeshBatch.h:371
Definition RHIShaderParameters.h:241