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

#include <FXSystemPrivate.h>

+ Inheritance diagram for FGPUSpriteVertexFactory:

Public Member Functions

 FGPUSpriteVertexFactory (ERHIFeatureLevel::Type InFeatureLevel)
 
 FGPUSpriteVertexFactory ()
 
virtual void InitRHI (FRHICommandListBase &RHICmdList) override
 
virtual bool RendersPrimitivesAsCameraFacingSprites () const override
 
void SetUnsortedParticleIndicesSRV (FRHIShaderResourceView *VertexBuffer)
 
- Public Member Functions inherited from FParticleVertexFactoryBase
 FParticleVertexFactoryBase (ERHIFeatureLevel::Type InFeatureLevel)
 
 FParticleVertexFactoryBase (EParticleVertexFactoryType Type, ERHIFeatureLevel::Type InFeatureLevel)
 
EParticleVertexFactoryType GetParticleFactoryType () const
 
void SetParticleFactoryType (EParticleVertexFactoryType InType)
 
ERHIFeatureLevel::Type GetFeatureLevel () const
 
- Public Member Functions inherited from FVertexFactory
 FVertexFactory (ERHIFeatureLevel::Type InFeatureLevel)
 
virtual RENDERCORE_API ~FVertexFactory ()
 
virtual FVertexFactoryTypeGetType () const
 
RENDERCORE_API void GetStreams (ERHIFeatureLevel::Type InFeatureLevel, EVertexInputStreamType VertexStreamType, FVertexInputStreamArray &OutVertexStreams) const
 
RENDERCORE_API void OffsetInstanceStreams (uint32 InstanceOffset, EVertexInputStreamType VertexStreamType, FVertexInputStreamArray &VertexStreams) const
 
virtual RENDERCORE_API void ReleaseRHI ()
 
FVertexDeclarationRHIRefGetDeclaration ()
 
void SetDeclaration (FVertexDeclarationRHIRef &NewDeclaration)
 
const FVertexDeclarationRHIRefGetDeclaration (EVertexInputStreamType InputStreamType) const
 
virtual bool SupportsPositionOnlyStream () const
 
virtual bool SupportsPositionAndNormalOnlyStream () const
 
bool SupportsNullPixelShader () const
 
bool SupportsTriangleSorting () const
 
virtual FShaderResourceViewRHIRef GetTriangleSortingPositionSRV () const
 
bool NeedsDeclaration () const
 
bool SupportsManualVertexFetch (const FStaticFeatureLevel InFeatureLevel) const
 
int32 GetPrimitiveIdStreamIndex (const FStaticFeatureLevel InFeatureLevel, EVertexInputStreamType InputStreamType) const
 
bool SupportsGPUScene (const FStaticFeatureLevel InFeatureLevel) const
 
- 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)
 
virtual FString GetFriendlyName () const
 
bool IsInitialized () const
 
int32 GetListIndex () const
 
EInitPhase GetInitPhase () const
 
void SetOwnerName (FName InOwnerName)
 
FName GetOwnerName () const
 
void SetResourceName (FName InResourceName)
 
FName GetResourceName () const
 

Static Public Member Functions

static bool ShouldCompilePermutation (const FVertexFactoryShaderPermutationParameters &Parameters)
 
static void ModifyCompilationEnvironment (const FVertexFactoryShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
 
static void GetPSOPrecacheVertexFetchElements (EVertexInputStreamType VertexInputStreamType, FVertexDeclarationElementList &Elements)
 
- Static Public Member Functions inherited from FParticleVertexFactoryBase
static void ModifyCompilationEnvironment (const FVertexFactoryShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
 
- Static Public Member Functions inherited from FVertexFactory
static void ModifyCompilationEnvironment (const FVertexFactoryShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
 
static void ValidateCompiledResult (const FVertexFactoryType *Type, EShaderPlatform Platform, const FShaderParameterMap &ParameterMap, TArray< FString > &OutErrors)
 
static void GetPSOPrecacheVertexFetchElements (EVertexInputStreamType VertexInputStreamType, FVertexDeclarationElementList &Elements)
 
- 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

FRHIUniformBufferEmitterUniformBuffer
 
FUniformBufferRHIRef EmitterDynamicUniformBuffer
 
FRHIShaderResourceViewUnsortedParticleIndicesSRV
 
FRHITexturePositionTextureRHI
 
FRHITextureVelocityTextureRHI
 
FRHITextureAttributesTextureRHI
 
FVector3f LWCTile
 
FVector3f TilePageScale
 
- Public Attributes inherited from FRenderResource
ERenderResourceState ResourceState = ERenderResourceState::Default
 

Additional Inherited Members

- Public Types inherited from FRenderResource
enum class  EInitPhase : uint8 { Pre , Default , MAX }
 
- Protected Types inherited from FVertexFactory
typedef TArray< FVertexStream, TInlineAllocator< 8 > > FVertexStreamList
 
- Protected Member Functions inherited from FVertexFactory
void SetPrimitiveIdStreamIndex (const FStaticFeatureLevel InFeatureLevel, EVertexInputStreamType InputStreamType, int32 StreamIndex)
 
RENDERCORE_API bool AddPrimitiveIdStreamElement (EVertexInputStreamType InputStreamType, FVertexDeclarationElementList &Elements, uint8 AttributeIndex, uint8 AttributeIndex_Mobile)
 
FVertexElement AccessStreamComponent (const FVertexStreamComponent &Component, uint8 AttributeIndex)
 
RENDERCORE_API FVertexElement AccessStreamComponent (const FVertexStreamComponent &Component, uint8 AttributeIndex, EVertexInputStreamType InputStreamType)
 
RENDERCORE_API void InitDeclaration (const FVertexDeclarationElementList &Elements, EVertexInputStreamType StreamType=EVertexInputStreamType::Default)
 
- 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 FVertexFactory
template<typename VertexStreamListType >
static FVertexElement AccessStreamComponent (const FVertexStreamComponent &Component, uint8 AttributeIndex, VertexStreamListType &InOutStreams)
 
- Static Protected Member Functions inherited from FRenderResource
static RENDERCORE_API FRHICommandListBaseGetImmediateCommandList ()
 
- Protected Attributes inherited from FVertexFactory
FVertexStreamList Streams
 
bool bNeedsDeclaration = true
 

Detailed Description

Vertex factory for render sprites from GPU simulated particles.

Constructor & Destructor Documentation

◆ FGPUSpriteVertexFactory() [1/2]

FGPUSpriteVertexFactory::FGPUSpriteVertexFactory ( ERHIFeatureLevel::Type  InFeatureLevel)
inline

◆ FGPUSpriteVertexFactory() [2/2]

FGPUSpriteVertexFactory::FGPUSpriteVertexFactory ( )
inline

Member Function Documentation

◆ GetPSOPrecacheVertexFetchElements()

void FGPUSpriteVertexFactory::GetPSOPrecacheVertexFetchElements ( EVertexInputStreamType  VertexInputStreamType,
FVertexDeclarationElementList Elements 
)
static

Get vertex elements used when during PSO precaching materials using this vertex factory type

Return the vertex elements from the fixed GGPUSpriteVertexDeclaration used by this factory

◆ InitRHI()

void FGPUSpriteVertexFactory::InitRHI ( FRHICommandListBase RHICmdList)
overridevirtual

Constructs render resources for this vertex factory.

Reimplemented from FRenderResource.

◆ ModifyCompilationEnvironment()

void FGPUSpriteVertexFactory::ModifyCompilationEnvironment ( const FVertexFactoryShaderPermutationParameters Parameters,
FShaderCompilerEnvironment OutEnvironment 
)
static

Can be overridden by FVertexFactory subclasses to modify their compile environment just before compilation occurs.

◆ RendersPrimitivesAsCameraFacingSprites()

virtual bool FGPUSpriteVertexFactory::RendersPrimitivesAsCameraFacingSprites ( ) const
inlineoverridevirtual

Reimplemented from FVertexFactory.

◆ SetUnsortedParticleIndicesSRV()

void FGPUSpriteVertexFactory::SetUnsortedParticleIndicesSRV ( FRHIShaderResourceView VertexBuffer)
inline

Set the source vertex buffer that contains particle indices.

◆ ShouldCompilePermutation()

bool FGPUSpriteVertexFactory::ShouldCompilePermutation ( const FVertexFactoryShaderPermutationParameters Parameters)
static

Should we cache the material's shadertype on this platform with this vertex factory?

Member Data Documentation

◆ AttributesTextureRHI

FRHITexture* FGPUSpriteVertexFactory::AttributesTextureRHI

Texture containint attributes for all particles.

◆ EmitterDynamicUniformBuffer

FUniformBufferRHIRef FGPUSpriteVertexFactory::EmitterDynamicUniformBuffer

Emitter uniform buffer for dynamic parameters.

◆ EmitterUniformBuffer

FRHIUniformBuffer* FGPUSpriteVertexFactory::EmitterUniformBuffer

Emitter uniform buffer.

◆ LWCTile

FVector3f FGPUSpriteVertexFactory::LWCTile

LWC tile offset, will be 0,0,0 for localspace emitters.

◆ PositionTextureRHI

FRHITexture* FGPUSpriteVertexFactory::PositionTextureRHI

Texture containing positions for all particles.

◆ TilePageScale

FVector3f FGPUSpriteVertexFactory::TilePageScale

Tile page offset factors associated with the GPU particle simulation resources.

◆ UnsortedParticleIndicesSRV

FRHIShaderResourceView* FGPUSpriteVertexFactory::UnsortedParticleIndicesSRV

Buffer containing unsorted particle indices.

◆ VelocityTextureRHI

FRHITexture* FGPUSpriteVertexFactory::VelocityTextureRHI

Texture containing velocities for all particles.


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