UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FRawStaticIndexBuffer16or32< INDEX_TYPE > Class Template Reference

#include <RawIndexBuffer.h>

+ Inheritance diagram for FRawStaticIndexBuffer16or32< INDEX_TYPE >:

Public Member Functions

 FRawStaticIndexBuffer16or32 (bool InNeedsCPUAccess=false)
 
virtual void InitRHI (FRHICommandListBase &RHICmdList) override
 
virtual void ReleaseRHI () override
 
virtual FShaderResourceViewRHIRef GetOrCreateSRV (FRHICommandListBase &RHICmdList) const override
 
virtual void Serialize (FArchive &Ar) override
 
virtual void SerializeMetaData (FArchive &Ar) override
 
virtual void SetMetaData (int32 InCachedNumIndices) override
 
void CacheOptimize ()
 
virtual bool GetNeedsCPUAccess () const override
 
virtual int32 Num () const override
 
virtual int32 AddItem (uint32 Val) override
 
virtual uint32 Get (uint32 Idx) const override
 
virtual voidGetPointerTo (uint32 Idx) override
 
virtual void Insert (int32 Idx, int32 Num) override
 
virtual void Remove (int32 Idx, int32 Num) override
 
virtual void Empty (int32 Slack) override
 
virtual int32 GetResourceDataSize () const override
 
virtual void AssignNewBuffer (const TArray< INDEX_TYPE > &Buffer)
 
FBufferRHIRef CreateRHIBuffer (FRHICommandListBase &RHICmdList)
 
void InitRHIForStreaming (FRHIBuffer *IntermediateBuffer, FRHIResourceReplaceBatcher &Batcher)
 
void ReleaseRHIForStreaming (FRHIResourceReplaceBatcher &Batcher)
 
- Public Member Functions inherited from FRawStaticIndexBuffer16or32Interface
FRHIShaderResourceViewGetSRV () const
 
- Public Member Functions inherited from FIndexBuffer
RENDERCORE_API FIndexBuffer ()
 
RENDERCORE_API FIndexBuffer (const FIndexBuffer &)
 
RENDERCORE_API FIndexBufferoperator= (const FIndexBuffer &Other)
 
virtual RENDERCORE_API ~FIndexBuffer ()
 
virtual RENDERCORE_API FString GetFriendlyName () const override
 
const FBufferRHIRefGetRHI () const
 
RENDERCORE_API void SetRHI (const FBufferRHIRef &BufferRHI)
 
- Public Member Functions inherited from FRenderResource
RENDERCORE_API FRenderResource ()
 
RENDERCORE_API FRenderResource (ERHIFeatureLevel::Type InFeatureLevel)
 
RENDERCORE_API FRenderResource (const FRenderResource &)
 
RENDERCORE_API FRenderResource (FRenderResource &&)
 
RENDERCORE_API FRenderResourceoperator= (const FRenderResource &Other)
 
RENDERCORE_API FRenderResourceoperator= (FRenderResource &&Other)
 
virtual RENDERCORE_API ~FRenderResource ()
 
virtual RENDERCORE_API void InitResource (FRHICommandListBase &RHICmdList)
 
virtual RENDERCORE_API void ReleaseResource ()
 
RENDERCORE_API void UpdateRHI (FRHICommandListBase &RHICmdList)
 
bool IsInitialized () const
 
int32 GetListIndex () const
 
EInitPhase GetInitPhase () const
 
void SetOwnerName (FName InOwnerName)
 
FName GetOwnerName () const
 
void SetResourceName (FName InResourceName)
 
FName GetResourceName () const
 

Additional Inherited Members

- Public Types inherited from FRenderResource
enum class  EInitPhase : uint8 { Pre , Default , MAX }
 
- Static Public Member Functions inherited from FRenderResource
static RENDERCORE_API void ReleaseRHIForAllResources ()
 
static RENDERCORE_API void InitPreRHIResources ()
 
static RENDERCORE_API void ChangeFeatureLevel (ERHIFeatureLevel::Type NewFeatureLevel)
 
static RENDERCORE_API FName SetScopeName (FName Name)
 
- Public Attributes inherited from FIndexBuffer
FBufferRHIRef IndexBufferRHI
 
- Public Attributes inherited from FRenderResource
ERenderResourceState ResourceState = ERenderResourceState::Default
 
- Protected Member Functions inherited from FRawStaticIndexBuffer16or32Interface
ENGINE_API bool IsSRVCreatedByDefault (bool bAllowCPUAccess) const
 
ENGINE_API bool IsShaderResource (bool bAllowCPUAccess) const
 
ENGINE_API bool IsSRVNeeded (bool bAllowCPUAccess) const
 
void InitRHIForStreaming (FRHIBuffer *IntermediateBuffer, size_t IndexSize, FRHIResourceReplaceBatcher &Batcher)
 
void ReleaseRHIForStreaming (FRHIResourceReplaceBatcher &Batcher)
 
- Protected Member Functions inherited from FRenderResource
void SetFeatureLevel (const FStaticFeatureLevel InFeatureLevel)
 
const FStaticFeatureLevel GetFeatureLevel () const
 
bool HasValidFeatureLevel () const
 
template<typename T >
FBufferRHIRef CreateRHIBuffer (FRHICommandListBase &RHICmdList, T &InOutResourceObject, uint32 ResourceCount, EBufferUsageFlags InBufferUsageFlags, const TCHAR *InDebugName)
 
void SetInitPhase (EInitPhase InInitPhase)
 
- Static Protected Member Functions inherited from FRawStaticIndexBuffer16or32Interface
static ENGINE_API FBufferRHIRef CreateRHIIndexBufferInternal (FRHICommandListBase &RHICmdList, const TCHAR *InDebugName, const FName &InOwnerName, int32 IndexCount, size_t IndexSize, FResourceArrayInterface *ResourceArray, bool bIsShaderResource)
 
- Static Protected Member Functions inherited from FRenderResource
static RENDERCORE_API FRHICommandListBaseGetImmediateCommandList ()
 
- Protected Attributes inherited from FRawStaticIndexBuffer16or32Interface
FShaderResourceViewRHIRef SRVValue
 

Constructor & Destructor Documentation

◆ FRawStaticIndexBuffer16or32()

Constructor

Parameters
InNeedsCPUAccess- true if resource array data should be CPU accessible

Member Function Documentation

◆ AddItem()

template<typename INDEX_TYPE >
virtual int32 FRawStaticIndexBuffer16or32< INDEX_TYPE >::AddItem ( uint32  Val)
inlineoverridevirtual

◆ AssignNewBuffer()

template<typename INDEX_TYPE >
virtual void FRawStaticIndexBuffer16or32< INDEX_TYPE >::AssignNewBuffer ( const TArray< INDEX_TYPE > &  Buffer)
inlinevirtual

◆ CacheOptimize()

Orders a triangle list for better vertex cache coherency.

◆ CreateRHIBuffer()

template<typename INDEX_TYPE >
FBufferRHIRef FRawStaticIndexBuffer16or32< INDEX_TYPE >::CreateRHIBuffer ( FRHICommandListBase RHICmdList)
inline

Create an RHI index buffer with CPU data. CPU data may be discarded after creation (see TResourceArray::Discard)

◆ Empty()

template<typename INDEX_TYPE >
virtual void FRawStaticIndexBuffer16or32< INDEX_TYPE >::Empty ( int32  Slack)
inlineoverridevirtual

◆ Get()

template<typename INDEX_TYPE >
virtual uint32 FRawStaticIndexBuffer16or32< INDEX_TYPE >::Get ( uint32  Idx) const
inlineoverridevirtual

◆ GetNeedsCPUAccess()

template<typename INDEX_TYPE >
virtual bool FRawStaticIndexBuffer16or32< INDEX_TYPE >::GetNeedsCPUAccess ( ) const
inlineoverridevirtual

The following methods are basically just accessors that allow us to hide the implementation by making the index array a private member

Implements FRawStaticIndexBuffer16or32Interface.

◆ GetOrCreateSRV()

template<typename INDEX_TYPE >
virtual FShaderResourceViewRHIRef FRawStaticIndexBuffer16or32< INDEX_TYPE >::GetOrCreateSRV ( FRHICommandListBase RHICmdList) const
inlineoverridevirtual

◆ GetPointerTo()

template<typename INDEX_TYPE >
virtual void * FRawStaticIndexBuffer16or32< INDEX_TYPE >::GetPointerTo ( uint32  Idx)
inlineoverridevirtual

◆ GetResourceDataSize()

template<typename INDEX_TYPE >
virtual int32 FRawStaticIndexBuffer16or32< INDEX_TYPE >::GetResourceDataSize ( ) const
inlineoverridevirtual

◆ InitRHI()

template<typename INDEX_TYPE >
virtual void FRawStaticIndexBuffer16or32< INDEX_TYPE >::InitRHI ( FRHICommandListBase RHICmdList)
inlineoverridevirtual

Create the index buffer RHI resource and initialize its data

Reimplemented from FRenderResource.

◆ InitRHIForStreaming()

template<typename INDEX_TYPE >
void FRawStaticIndexBuffer16or32< INDEX_TYPE >::InitRHIForStreaming ( FRHIBuffer IntermediateBuffer,
FRHIResourceReplaceBatcher Batcher 
)
inline

Similar to Init/ReleaseRHI but only update existing SRV so references to the SRV stays valid

◆ Insert()

template<typename INDEX_TYPE >
virtual void FRawStaticIndexBuffer16or32< INDEX_TYPE >::Insert ( int32  Idx,
int32  Num 
)
inlineoverridevirtual

◆ Num()

template<typename INDEX_TYPE >
virtual int32 FRawStaticIndexBuffer16or32< INDEX_TYPE >::Num ( ) const
inlineoverridevirtual

◆ ReleaseRHI()

template<typename INDEX_TYPE >
virtual void FRawStaticIndexBuffer16or32< INDEX_TYPE >::ReleaseRHI ( )
inlineoverridevirtual

Releases the RHI resources used by this resource. Called when leaving the state where both the resource and the RHI have been initialized. This is only called by the rendering thread.

Reimplemented from FIndexBuffer.

◆ ReleaseRHIForStreaming()

template<typename INDEX_TYPE >
void FRawStaticIndexBuffer16or32< INDEX_TYPE >::ReleaseRHIForStreaming ( FRHIResourceReplaceBatcher Batcher)
inline

◆ Remove()

template<typename INDEX_TYPE >
virtual void FRawStaticIndexBuffer16or32< INDEX_TYPE >::Remove ( int32  Idx,
int32  Num 
)
inlineoverridevirtual

◆ Serialize()

template<typename INDEX_TYPE >
virtual void FRawStaticIndexBuffer16or32< INDEX_TYPE >::Serialize ( FArchive Ar)
inlineoverridevirtual

Serializer for this class

Parameters
Ar- archive to serialize to
I- data to serialize

Implements FRawStaticIndexBuffer16or32Interface.

◆ SerializeMetaData()

template<typename INDEX_TYPE >
virtual void FRawStaticIndexBuffer16or32< INDEX_TYPE >::SerializeMetaData ( FArchive Ar)
inlineoverridevirtual

◆ SetMetaData()

template<typename INDEX_TYPE >
virtual void FRawStaticIndexBuffer16or32< INDEX_TYPE >::SetMetaData ( int32  InCachedNumIndices)
inlineoverridevirtual

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