#include <ShaderParameterMetadata.h>
|
| RENDERCORE_API | FShaderParametersMetadata (EUseCase UseCase, EUniformBufferBindingFlags InBindingFlags, const TCHAR *InLayoutName, const TCHAR *InStructTypeName, const TCHAR *InShaderVariableName, const TCHAR *InStaticSlotName, const ANSICHAR *InFileName, const int32 InFileLine, uint32 InSize, const TArray< FMember > &InMembers, bool bForceCompleteInitialization=false, FRHIUniformBufferLayoutInitializer *OutLayoutInitializer=nullptr, EUsageFlags InUsageFlags=EUsageFlags::None) |
| |
| virtual RENDERCORE_API | ~FShaderParametersMetadata () |
| |
| RENDERCORE_API void | GetNestedStructs (TArray< const FShaderParametersMetadata * > &OutNestedStructs) const |
| |
| const TCHAR * | GetStructTypeName () const |
| |
| const TCHAR * | GetShaderVariableName () const |
| |
| const FHashedName & | GetShaderVariableHashedName () const |
| |
| const TCHAR * | GetStaticSlotName () const |
| |
| bool | HasStaticSlot () const |
| |
| EUniformBufferBindingFlags | GetBindingFlags () const |
| |
| EUniformBufferBindingFlags | GetPreferredBindingFlag () const |
| |
| const ANSICHAR * | GetFileName () const |
| |
| const int32 | GetFileLine () const |
| |
| uint32 | GetSize () const |
| |
| EUseCase | GetUseCase () const |
| |
| bool | IsLayoutInitialized () const |
| |
| EUsageFlags | GetUsageFlags () const |
| |
| const FRHIUniformBufferLayout & | GetLayout () const |
| |
| const FRHIUniformBufferLayout * | GetLayoutPtr () const |
| |
| const TArray< FMember > & | GetMembers () const |
| |
| RENDERCORE_API void | FindMemberFromOffset (uint16 MemberOffset, const FShaderParametersMetadata **OutContainingStruct, const FShaderParametersMetadata::FMember **OutMember, int32 *ArrayElementId, FString *NamePrefix) const |
| |
| RENDERCORE_API FString | GetFullMemberCodeName (uint16 MemberOffset) const |
| |
| uint32 | GetLayoutHash () const |
| |
| const FBlake3Hash & | GetLayoutSignature () const |
| |
| template<typename TParameterFunction > |
| void | IterateStructureMetadataDependencies (TParameterFunction Lambda) const |
| |
◆ EUsageFlags
Additional flags that can be used to determine usage
| Enumerator |
|---|
| None | |
| NoEmulatedUniformBuffer | On platforms that support emulated uniform buffers, disable them for this uniform buffer
|
| UniformView | This struct is a view into uniform buffer object, on platforms that support UBO
|
| NeedsReflectedMembers | This struct needs its members reflected for binding information.
|
| ManuallyBoundByPass | Signals that the uniform buffer is manually bound by the pass and should be ignored by the mesh pass processor.
|
◆ EUseCase
The use case of the uniform buffer structures.
| Enumerator |
|---|
| ShaderParameterStruct | Stand alone shader parameter struct used for render passes and shader parameters.
|
| UniformBuffer | Uniform buffer definition authored at compile-time.
|
| DataDrivenUniformBuffer | Uniform buffer generated from assets, such as material parameter collection or Niagara.
|
◆ FShaderParametersMetadata()
| FShaderParametersMetadata::FShaderParametersMetadata |
( |
EUseCase |
UseCase, |
|
|
EUniformBufferBindingFlags |
InBindingFlags, |
|
|
const TCHAR * |
InLayoutName, |
|
|
const TCHAR * |
InStructTypeName, |
|
|
const TCHAR * |
InShaderVariableName, |
|
|
const TCHAR * |
InStaticSlotName, |
|
|
const ANSICHAR * |
InFileName, |
|
|
const int32 |
InFileLine, |
|
|
uint32 |
InSize, |
|
|
const TArray< FMember > & |
InMembers, |
|
|
bool |
bForceCompleteInitialization = false, |
|
|
FRHIUniformBufferLayoutInitializer * |
OutLayoutInitializer = nullptr, |
|
|
EUsageFlags |
InUsageFlags = EUsageFlags::None |
|
) |
| |
Initialization constructor.
EUseCase::UniformBuffer are listed in the global GetStructList() that will be visited at engine startup to know all the global uniform buffer that can generate code in /Engine/Generated/GeneratedUniformBuffers.ush. Their initialization will be finished during the this list traversal. bForceCompleteInitialization force to ignore the list for EUseCase::UniformBuffer and instead handle it like a standalone non globally listed EUseCase::ShaderParameterStruct. This is required for the ShaderCompileWorker to deserialize them without side global effects.
◆ ~FShaderParametersMetadata()
| FShaderParametersMetadata::~FShaderParametersMetadata |
( |
| ) |
|
|
virtual |
◆ FindMemberFromOffset()
Find a member for a given offset.
◆ GetBindingFlags()
◆ GetFileLine()
| const int32 FShaderParametersMetadata::GetFileLine |
( |
| ) |
const |
|
inline |
Returns the C++ line number where the parameter structure is declared.
◆ GetFileName()
| const ANSICHAR * FShaderParametersMetadata::GetFileName |
( |
| ) |
const |
|
inline |
Returns the C++ file name where the parameter structure is declared.
◆ GetFullMemberCodeName()
| FString FShaderParametersMetadata::GetFullMemberCodeName |
( |
uint16 |
MemberOffset | ) |
const |
Returns the full C++ member name from it's byte offset in the structure.
◆ GetLayout()
◆ GetLayoutHash()
| uint32 FShaderParametersMetadata::GetLayoutHash |
( |
| ) |
const |
|
inline |
Returns a hash about the entire layout of the structure.
◆ GetLayoutPtr()
◆ GetLayoutSignature()
| const FBlake3Hash & FShaderParametersMetadata::GetLayoutSignature |
( |
| ) |
const |
|
inline |
◆ GetMembers()
| const TArray< FMember > & FShaderParametersMetadata::GetMembers |
( |
| ) |
const |
|
inline |
◆ GetNameStructMap()
Speed up finding the uniform buffer by its name
◆ GetNestedStructs()
◆ GetPreferredBindingFlag()
◆ GetShaderVariableHashedName()
| const FHashedName & FShaderParametersMetadata::GetShaderVariableHashedName |
( |
| ) |
const |
|
inline |
◆ GetShaderVariableName()
| const TCHAR * FShaderParametersMetadata::GetShaderVariableName |
( |
| ) |
const |
|
inline |
◆ GetSize()
| uint32 FShaderParametersMetadata::GetSize |
( |
| ) |
const |
|
inline |
◆ GetStaticSlotName()
| const TCHAR * FShaderParametersMetadata::GetStaticSlotName |
( |
| ) |
const |
|
inline |
◆ GetStructList()
◆ GetStructTypeName()
| const TCHAR * FShaderParametersMetadata::GetStructTypeName |
( |
| ) |
const |
|
inline |
◆ GetUsageFlags()
| EUsageFlags FShaderParametersMetadata::GetUsageFlags |
( |
| ) |
const |
|
inline |
◆ GetUseCase()
| EUseCase FShaderParametersMetadata::GetUseCase |
( |
| ) |
const |
|
inline |
◆ HasStaticSlot()
| bool FShaderParametersMetadata::HasStaticSlot |
( |
| ) |
const |
|
inline |
◆ InitializeAllUniformBufferStructs()
| void FShaderParametersMetadata::InitializeAllUniformBufferStructs |
( |
| ) |
|
|
static |
Initialize all the global shader parameter structs.
◆ IsLayoutInitialized()
| bool FShaderParametersMetadata::IsLayoutInitialized |
( |
| ) |
const |
|
inline |
◆ IterateStructureMetadataDependencies()
◆ kRootCBufferBindingIndex
| constexpr int32 FShaderParametersMetadata::kRootCBufferBindingIndex = 0 |
|
staticconstexpr |
Shader binding name of the uniform buffer that contains the root shader parameters.
◆ kRootUniformBufferBindingName
| constexpr const TCHAR* FShaderParametersMetadata::kRootUniformBufferBindingName = TEXT("_RootShaderParameters") |
|
staticconstexpr |
Shader binding name of the uniform buffer that contains the root shader parameters.
The documentation for this class was generated from the following files: