UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRHIUniformBufferLayoutInitializer Struct Reference

#include <RHIUniformBufferLayoutInitializer.h>

Public Member Functions

 DECLARE_EXPORTED_TYPE_LAYOUT (FRHIUniformBufferLayoutInitializer, RHI_API, NonVirtual)
 
 FRHIUniformBufferLayoutInitializer ()=default
 
 FRHIUniformBufferLayoutInitializer (const TCHAR *InName)
 
 FRHIUniformBufferLayoutInitializer (const TCHAR *InName, uint32 InConstantBufferSize)
 
uint32 GetHash () const
 
void ComputeHash ()
 
void CopyFrom (const FRHIUniformBufferLayoutInitializer &Source)
 
const FMemoryImageStringGetDebugName () const
 
bool HasRenderTargets () const
 
bool HasStaticSlot () const
 
 LAYOUT_FIELD (TMemoryImageArray< FRHIUniformBufferResourceInitializer >, Resources)
 
 LAYOUT_FIELD (TMemoryImageArray< FRHIUniformBufferResourceInitializer >, GraphResources)
 
 LAYOUT_FIELD (TMemoryImageArray< FRHIUniformBufferResourceInitializer >, GraphTextures)
 
 LAYOUT_FIELD (TMemoryImageArray< FRHIUniformBufferResourceInitializer >, GraphBuffers)
 
 LAYOUT_FIELD (TMemoryImageArray< FRHIUniformBufferResourceInitializer >, GraphUniformBuffers)
 
 LAYOUT_FIELD (TMemoryImageArray< FRHIUniformBufferResourceInitializer >, UniformBuffers)
 
 LAYOUT_FIELD_INITIALIZED (uint32, ConstantBufferSize, 0)
 
 LAYOUT_FIELD_INITIALIZED (uint16, RenderTargetsOffset, kUniformBufferInvalidOffset)
 
 LAYOUT_FIELD_INITIALIZED (FUniformBufferStaticSlot, StaticSlot, MAX_UNIFORM_BUFFER_STATIC_SLOTS)
 
 LAYOUT_FIELD_INITIALIZED (EUniformBufferBindingFlags, BindingFlags, EUniformBufferBindingFlags::Shader)
 
 LAYOUT_FIELD_INITIALIZED (ERHIUniformBufferFlags, Flags, ERHIUniformBufferFlags::None)
 

Friends

FArchiveoperator<< (FArchive &Ar, FRHIUniformBufferLayoutInitializer &Ref)
 
bool operator== (const FRHIUniformBufferLayoutInitializer &A, const FRHIUniformBufferLayoutInitializer &B)
 

Detailed Description

Initializer for the layout of a uniform buffer in memory.

Constructor & Destructor Documentation

◆ FRHIUniformBufferLayoutInitializer() [1/3]

FRHIUniformBufferLayoutInitializer::FRHIUniformBufferLayoutInitializer ( )
default

◆ FRHIUniformBufferLayoutInitializer() [2/3]

FRHIUniformBufferLayoutInitializer::FRHIUniformBufferLayoutInitializer ( const TCHAR InName)
inlineexplicit

◆ FRHIUniformBufferLayoutInitializer() [3/3]

FRHIUniformBufferLayoutInitializer::FRHIUniformBufferLayoutInitializer ( const TCHAR InName,
uint32  InConstantBufferSize 
)
inlineexplicit

Member Function Documentation

◆ ComputeHash()

void FRHIUniformBufferLayoutInitializer::ComputeHash ( )
inline

This hash is stored with compiled shaders and is used for two things.

  1. Validation that the data layout did not change between compilation and runtime.
  2. Passing to FindUniformBufferStructByLayoutHash() to find the associated uniform buffer layouts (and specifically the runtime slot mappings) for the shader. Possibly it would be better to separate those concerns, but that would require more data stored per shader.

◆ CopyFrom()

void FRHIUniformBufferLayoutInitializer::CopyFrom ( const FRHIUniformBufferLayoutInitializer Source)
inline

◆ DECLARE_EXPORTED_TYPE_LAYOUT()

FRHIUniformBufferLayoutInitializer::DECLARE_EXPORTED_TYPE_LAYOUT ( FRHIUniformBufferLayoutInitializer  ,
RHI_API  ,
NonVirtual   
)

◆ GetDebugName()

const FMemoryImageString & FRHIUniformBufferLayoutInitializer::GetDebugName ( ) const
inline

◆ GetHash()

uint32 FRHIUniformBufferLayoutInitializer::GetHash ( ) const
inline

◆ HasRenderTargets()

bool FRHIUniformBufferLayoutInitializer::HasRenderTargets ( ) const
inline

◆ HasStaticSlot()

bool FRHIUniformBufferLayoutInitializer::HasStaticSlot ( ) const
inline

◆ LAYOUT_FIELD() [1/6]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD ( TMemoryImageArray< FRHIUniformBufferResourceInitializer ,
GraphBuffers   
)

The list of all RDG buffer references inlined into the shader parameter structure.

◆ LAYOUT_FIELD() [2/6]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD ( TMemoryImageArray< FRHIUniformBufferResourceInitializer ,
GraphResources   
)

The list of all RDG resource references inlined into the shader parameter structure.

◆ LAYOUT_FIELD() [3/6]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD ( TMemoryImageArray< FRHIUniformBufferResourceInitializer ,
GraphTextures   
)

The list of all RDG texture references inlined into the shader parameter structure.

◆ LAYOUT_FIELD() [4/6]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD ( TMemoryImageArray< FRHIUniformBufferResourceInitializer ,
GraphUniformBuffers   
)

The list of all RDG uniform buffer references inlined into the shader parameter structure.

◆ LAYOUT_FIELD() [5/6]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD ( TMemoryImageArray< FRHIUniformBufferResourceInitializer ,
Resources   
)

The list of all resource inlined into the shader parameter structure.

◆ LAYOUT_FIELD() [6/6]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD ( TMemoryImageArray< FRHIUniformBufferResourceInitializer ,
UniformBuffers   
)

The list of all non-RDG uniform buffer references inlined into the shader parameter structure.

◆ LAYOUT_FIELD_INITIALIZED() [1/5]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD_INITIALIZED ( ERHIUniformBufferFlags  ,
Flags  ,
ERHIUniformBufferFlags::None   
)

Flags for the uniform buffer

◆ LAYOUT_FIELD_INITIALIZED() [2/5]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD_INITIALIZED ( EUniformBufferBindingFlags  ,
BindingFlags  ,
EUniformBufferBindingFlags::Shader   
)

The binding flags describing how this resource can be bound to the RHI.

◆ LAYOUT_FIELD_INITIALIZED() [3/5]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD_INITIALIZED ( FUniformBufferStaticSlot  ,
StaticSlot  ,
MAX_UNIFORM_BUFFER_STATIC_SLOTS   
)

The static slot (if applicable).

◆ LAYOUT_FIELD_INITIALIZED() [4/5]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD_INITIALIZED ( uint16  ,
RenderTargetsOffset  ,
kUniformBufferInvalidOffset   
)

The render target binding slots offset, if it exists.

◆ LAYOUT_FIELD_INITIALIZED() [5/5]

FRHIUniformBufferLayoutInitializer::LAYOUT_FIELD_INITIALIZED ( uint32  ,
ConstantBufferSize  ,
 
)

The size of the constant buffer in bytes.

Friends And Related Symbol Documentation

◆ operator<<

FArchive & operator<< ( FArchive Ar,
FRHIUniformBufferLayoutInitializer Ref 
)
friend

◆ operator==

bool operator== ( const FRHIUniformBufferLayoutInitializer A,
const FRHIUniformBufferLayoutInitializer B 
)
friend

Compare two uniform buffer layout initializers.


The documentation for this struct was generated from the following file: