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

#include <InstancedStaticMesh.h>

+ Inheritance diagram for FStaticMeshInstanceBuffer:

Public Member Functions

ENGINE_API FStaticMeshInstanceBuffer (ERHIFeatureLevel::Type InFeatureLevel, bool InRequireCPUAccess)
 
ENGINE_API ~FStaticMeshInstanceBuffer ()
 
ENGINE_API void InitFromPreallocatedData (FStaticMeshInstanceData &Other)
 
ENGINE_API void operator= (const FStaticMeshInstanceBuffer &Other)
 
uint32 GetNumInstances () const
 
void GetInstanceTransform (int32 InstanceIndex, FRenderTransform &Transform) const
 
void GetInstanceRandomID (int32 InstanceIndex, float &RandomInstanceID) const
 
void GetInstanceLightMapData (int32 InstanceIndex, FVector4f &InstanceLightmapAndShadowMapUVBias) const
 
void GetInstanceCustomDataValues (int32 InstanceIndex, TArray< float > &InstanceCustomData) const
 
FStaticMeshInstanceDataGetInstanceData () const
 
virtual ENGINE_API void InitRHI (FRHICommandListBase &RHICmdList) override
 
virtual ENGINE_API void ReleaseRHI () override
 
virtual ENGINE_API void InitResource (FRHICommandListBase &RHICmdList) override
 
virtual ENGINE_API void ReleaseResource () override
 
virtual FString GetFriendlyName () const override
 
SIZE_T GetResourceSize () const
 
ENGINE_API void BindInstanceVertexBuffer (const class FVertexFactory *VertexFactory, struct FInstancedStaticMeshDataType &InstancedStaticMeshData) const
 
void FlushGPUUpload (FRHICommandListBase &RHICmdList)
 
FBufferRHIRef GetInstanceOriginBuffer ()
 
FBufferRHIRef GetInstanceTransformBuffer ()
 
FBufferRHIRef GetInstanceLightmapBuffer ()
 
void SetFlushToGPUPending ()
 
- 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 ()
 
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
 

Public Attributes

TSharedPtr< FStaticMeshInstanceData, ESPMode::ThreadSafeInstanceData
 
bool RequireCPUAccess
 
- Public Attributes inherited from FRenderResource
ERenderResourceState ResourceState = ERenderResourceState::Default
 

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)
 
- 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 FRenderResource
static RENDERCORE_API FRHICommandListBaseGetImmediateCommandList ()
 

Constructor & Destructor Documentation

◆ FStaticMeshInstanceBuffer()

FStaticMeshInstanceBuffer::FStaticMeshInstanceBuffer ( ERHIFeatureLevel::Type  InFeatureLevel,
bool  InRequireCPUAccess 
)

Default constructor.

◆ ~FStaticMeshInstanceBuffer()

FStaticMeshInstanceBuffer::~FStaticMeshInstanceBuffer ( )

Destructor.

Member Function Documentation

◆ BindInstanceVertexBuffer()

void FStaticMeshInstanceBuffer::BindInstanceVertexBuffer ( const class FVertexFactory VertexFactory,
struct FInstancedStaticMeshDataType InstancedStaticMeshData 
) const

◆ FlushGPUUpload()

void FStaticMeshInstanceBuffer::FlushGPUUpload ( FRHICommandListBase RHICmdList)

Call to flush any pending GPU data copies, if bFlushToGPUPending is false it does nothing. Should be called by the Proxy on the render thread for example in CreateRenderThreadResources().

◆ GetFriendlyName()

virtual FString FStaticMeshInstanceBuffer::GetFriendlyName ( ) const
inlineoverridevirtual
Returns
The resource's friendly name. Typically a UObject name.

Reimplemented from FRenderResource.

◆ GetInstanceCustomDataValues()

void FStaticMeshInstanceBuffer::GetInstanceCustomDataValues ( int32  InstanceIndex,
TArray< float > &  InstanceCustomData 
) const
inline

◆ GetInstanceData()

FStaticMeshInstanceData * FStaticMeshInstanceBuffer::GetInstanceData ( ) const
inline

◆ GetInstanceLightmapBuffer()

FBufferRHIRef FStaticMeshInstanceBuffer::GetInstanceLightmapBuffer ( )
inline

◆ GetInstanceLightMapData()

void FStaticMeshInstanceBuffer::GetInstanceLightMapData ( int32  InstanceIndex,
FVector4f InstanceLightmapAndShadowMapUVBias 
) const
inline

◆ GetInstanceOriginBuffer()

FBufferRHIRef FStaticMeshInstanceBuffer::GetInstanceOriginBuffer ( )
inline

◆ GetInstanceRandomID()

void FStaticMeshInstanceBuffer::GetInstanceRandomID ( int32  InstanceIndex,
float RandomInstanceID 
) const
inline

◆ GetInstanceTransform()

void FStaticMeshInstanceBuffer::GetInstanceTransform ( int32  InstanceIndex,
FRenderTransform Transform 
) const
inline

◆ GetInstanceTransformBuffer()

FBufferRHIRef FStaticMeshInstanceBuffer::GetInstanceTransformBuffer ( )
inline

◆ GetNumInstances()

uint32 FStaticMeshInstanceBuffer::GetNumInstances ( ) const
inline

◆ GetResourceSize()

SIZE_T FStaticMeshInstanceBuffer::GetResourceSize ( ) const

◆ InitFromPreallocatedData()

void FStaticMeshInstanceBuffer::InitFromPreallocatedData ( FStaticMeshInstanceData Other)

Initializes the buffer with the component's data.

Parameters
Other- instance data, this call assumes the memory, so this will be empty after the call

◆ InitResource()

void FStaticMeshInstanceBuffer::InitResource ( FRHICommandListBase RHICmdList)
overridevirtual

Initializes the resource. This is only called by the rendering thread.

Reimplemented from FRenderResource.

◆ InitRHI()

void FStaticMeshInstanceBuffer::InitRHI ( FRHICommandListBase RHICmdList)
overridevirtual

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

Reimplemented from FRenderResource.

◆ operator=()

void FStaticMeshInstanceBuffer::operator= ( const FStaticMeshInstanceBuffer Other)

Specialized assignment operator, only used when importing LOD's.

Specialized assignment operator, only used when importing LOD's.

◆ ReleaseResource()

void FStaticMeshInstanceBuffer::ReleaseResource ( )
overridevirtual

Prepares the resource for deletion. This is only called by the rendering thread.

Reimplemented from FRenderResource.

◆ ReleaseRHI()

void FStaticMeshInstanceBuffer::ReleaseRHI ( )
overridevirtual

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 FRenderResource.

◆ SetFlushToGPUPending()

void FStaticMeshInstanceBuffer::SetFlushToGPUPending ( )
inline

Set flush to GPU as pending.

Member Data Documentation

◆ InstanceData

TSharedPtr<FStaticMeshInstanceData, ESPMode::ThreadSafe> FStaticMeshInstanceBuffer::InstanceData

The vertex data storage type

◆ RequireCPUAccess

bool FStaticMeshInstanceBuffer::RequireCPUAccess

Keep CPU copy of instance data


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