UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FScatterUploadBuffer Class Reference

#include <UnifiedBuffer.h>

Public Member Functions

 ~FScatterUploadBuffer ()
 
RENDERCORE_API void Init (uint32 NumElements, uint32 InNumBytesPerElement, bool bInFloat4Buffer, const TCHAR *DebugName)
 
template<typename ResourceType >
void ResourceUploadTo (FRHICommandList &RHICmdList, const ResourceType &DstBuffer, bool bFlush=false)
 
void Add (uint32 Index, const void *Data, uint32 Num=1)
 
voidAdd_GetRef (uint32 Index, uint32 Num=1)
 
voidSet_GetRef (uint32 ElementIndex, uint32 ElementScatterOffset, uint32 Num=1)
 
void Release ()
 
uint32 GetNumBytes () const
 
RENDERCORE_API void InitPreSized (uint32 NumElements, uint32 InNumBytesPerElement, bool bInFloat4Buffer, const TCHAR *DebugName)
 
RENDERCORE_API void Init (TArrayView< const uint32 > ElementScatterOffsets, uint32 InNumBytesPerElement, bool bInFloat4Buffer, const TCHAR *DebugName)
 
voidGetRef (uint32 ElementIndex)
 
void SetUploadViaCreate (bool bInUploadViaCreate)
 

Public Attributes

FByteAddressBuffer ScatterBuffer
 
FByteAddressBuffer UploadBuffer
 
uint32ScatterData = nullptr
 
uint8UploadData = nullptr
 
uint32 ScatterDataSize = 0
 
uint32 UploadDataSize = 0
 
uint32 NumScatters = 0
 
uint32 MaxScatters = 0
 
uint32 NumBytesPerElement = 0
 
bool bFloat4Buffer = false
 
bool bUploadViaCreate = false
 

Constructor & Destructor Documentation

◆ ~FScatterUploadBuffer()

FScatterUploadBuffer::~FScatterUploadBuffer ( )
inline

Member Function Documentation

◆ Add()

void FScatterUploadBuffer::Add ( uint32  Index,
const void Data,
uint32  Num = 1 
)
inline

◆ Add_GetRef()

void * FScatterUploadBuffer::Add_GetRef ( uint32  Index,
uint32  Num = 1 
)
inline

◆ GetNumBytes()

uint32 FScatterUploadBuffer::GetNumBytes ( ) const
inline

◆ GetRef()

void * FScatterUploadBuffer::GetRef ( uint32  ElementIndex)
inline

Get pointer to an element data area, given the index of the element (not the destination scatter offset).

◆ Init() [1/2]

void FScatterUploadBuffer::Init ( TArrayView< const uint32 ElementScatterOffsets,
uint32  InNumBytesPerElement,
bool  bInFloat4Buffer,
const TCHAR DebugName 
)

Init with pre-existing destination index data, performs a bulk-copy.

◆ Init() [2/2]

void FScatterUploadBuffer::Init ( uint32  NumElements,
uint32  InNumBytesPerElement,
bool  bInFloat4Buffer,
const TCHAR DebugName 
)

◆ InitPreSized()

void FScatterUploadBuffer::InitPreSized ( uint32  NumElements,
uint32  InNumBytesPerElement,
bool  bInFloat4Buffer,
const TCHAR DebugName 
)

Init with presized num scatters, expecting each to be set at a later point. Requires the user to keep track of the offsets to use.

◆ Release()

void FScatterUploadBuffer::Release ( )
inline

◆ ResourceUploadTo()

template<typename ResourceType >
template RENDERCORE_API void FScatterUploadBuffer::ResourceUploadTo< FRWByteAddressBuffer > ( FRHICommandList RHICmdList,
const ResourceType &  DstBuffer,
bool  bFlush = false 
)

◆ Set_GetRef()

void * FScatterUploadBuffer::Set_GetRef ( uint32  ElementIndex,
uint32  ElementScatterOffset,
uint32  Num = 1 
)
inline

◆ SetUploadViaCreate()

void FScatterUploadBuffer::SetUploadViaCreate ( bool  bInUploadViaCreate)
inline

Member Data Documentation

◆ bFloat4Buffer

bool FScatterUploadBuffer::bFloat4Buffer = false

◆ bUploadViaCreate

bool FScatterUploadBuffer::bUploadViaCreate = false

◆ MaxScatters

uint32 FScatterUploadBuffer::MaxScatters = 0

◆ NumBytesPerElement

uint32 FScatterUploadBuffer::NumBytesPerElement = 0

◆ NumScatters

uint32 FScatterUploadBuffer::NumScatters = 0

◆ ScatterBuffer

FByteAddressBuffer FScatterUploadBuffer::ScatterBuffer

◆ ScatterData

uint32* FScatterUploadBuffer::ScatterData = nullptr

◆ ScatterDataSize

uint32 FScatterUploadBuffer::ScatterDataSize = 0

◆ UploadBuffer

FByteAddressBuffer FScatterUploadBuffer::UploadBuffer

◆ UploadData

uint8* FScatterUploadBuffer::UploadData = nullptr

◆ UploadDataSize

uint32 FScatterUploadBuffer::UploadDataSize = 0

The documentation for this class was generated from the following files: