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

#include <VertexFactory.h>

Public Types

typedef FVertexFactoryShaderParameters *(* ConstructParametersType) (EShaderFrequency ShaderFrequency, const class FShaderParameterMap &ParameterMap)
 
typedef const FTypeLayoutDesc *(* GetParameterTypeLayoutType) (EShaderFrequency ShaderFrequency)
 
typedef void(* GetParameterTypeElementShaderBindingsType) (EShaderFrequency ShaderFrequency, const FVertexFactoryShaderParameters *Parameters, const class FSceneInterface *Scene, const class FSceneView *View, const class FMeshMaterialShader *Shader, const EVertexInputStreamType InputStreamType, ERHIFeatureLevel::Type FeatureLevel, const class FVertexFactory *VertexFactory, const struct FMeshBatchElement &BatchElement, class FMeshDrawSingleShaderBindings &ShaderBindings, FVertexInputStreamArray &VertexStreams)
 
typedef void(* GetPSOPrecacheVertexFetchElementsType) (EVertexInputStreamType VertexInputStreamType, FVertexDeclarationElementList &Elements)
 
typedef bool(* ShouldCacheType) (const FVertexFactoryShaderPermutationParameters &)
 

Public Member Functions

RENDERCORE_API FVertexFactoryType (const TCHAR *InName, const TCHAR *InShaderFilename, EVertexFactoryFlags InFlags, ConstructParametersType InConstructParameters, GetParameterTypeLayoutType InGetParameterTypeLayout, GetParameterTypeElementShaderBindingsType InGetParameterTypeElementShaderBindings, GetPSOPrecacheVertexFetchElementsType InGetPSOPrecacheVertexFetchElements, ShouldCacheType InShouldCache)
 
virtual RENDERCORE_API ~FVertexFactoryType ()
 
const TCHARGetName () const
 
FName GetFName () const
 
const FHashedNameGetHashedName () const
 
const TCHARGetShaderFilename () const
 
const TCHARGetShaderFwdFilename () const
 
FVertexFactoryShaderParametersCreateShaderParameters (EShaderFrequency ShaderFrequency, const class FShaderParameterMap &ParameterMap) const
 
const FTypeLayoutDescGetShaderParameterLayout (EShaderFrequency ShaderFrequency) const
 
void GetShaderParameterElementShaderBindings (EShaderFrequency ShaderFrequency, const FVertexFactoryShaderParameters *Parameters, const class FSceneInterface *Scene, const class FSceneView *View, const class FMeshMaterialShader *Shader, const EVertexInputStreamType InputStreamType, ERHIFeatureLevel::Type FeatureLevel, const class FVertexFactory *VertexFactory, const struct FMeshBatchElement &BatchElement, class FMeshDrawSingleShaderBindings &ShaderBindings, FVertexInputStreamArray &VertexStreams) const
 
void GetShaderPSOPrecacheVertexFetchElements (EVertexInputStreamType VertexInputStreamType, FVertexDeclarationElementList &Elements) const
 
EVertexFactoryFlags GetFlags () const
 
bool HasFlags (EVertexFactoryFlags FlagsToCheck) const
 
bool IsUsedWithMaterials () const
 
bool SupportsStaticLighting () const
 
bool SupportsDynamicLighting () const
 
bool SupportsPrecisePrevWorldPos () const
 
bool SupportsPositionOnly () const
 
bool SupportsCachingMeshDrawCommands () const
 
bool SupportsPrimitiveIdStream () const
 
bool SupportsNaniteRendering () const
 
bool SupportsRayTracing () const
 
bool SupportsRayTracingDynamicGeometry () const
 
bool SupportsRayTracingProceduralPrimitive () const
 
bool SupportsLightmapBaking () const
 
bool SupportsPSOPrecaching () const
 
bool SupportsNullPixelShader () const
 
bool SupportsGPUSkinPassThrough () const
 
bool SupportsComputeShading () const
 
bool SupportsLumenMeshCards () const
 
bool SupportsLandscape () const
 
bool IncludesFwdShaderFile () const
 
bool SupportsTriangleSorting () const
 
bool SupportsManualVertexFetch (ERHIFeatureLevel::Type InFeatureLevel) const
 
RENDERCORE_API const FSHAHashGetSourceHash (EShaderPlatform ShaderPlatform) const
 
bool ShouldCache (const FVertexFactoryShaderPermutationParameters &Parameters) const
 

Static Public Member Functions

static int32 GetNumVertexFactoryTypes ()
 
static RENDERCORE_API TLinkedList< FVertexFactoryType * > *& GetTypeList ()
 
static RENDERCORE_API const TArray< FVertexFactoryType * > & GetSortedMaterialTypes ()
 
static RENDERCORE_API FVertexFactoryTypeGetVFByName (const FHashedName &VFName)
 
static void Initialize (const TMap< FString, TArray< const TCHAR * > > &ShaderFileToUniformBufferVariables)
 
static RENDERCORE_API bool CheckManualVertexFetchSupport (ERHIFeatureLevel::Type InFeatureLevel)
 

Friends

uint32 GetTypeHash (const FVertexFactoryType *Type)
 

Detailed Description

An object used to represent the type of a vertex factory.

Member Typedef Documentation

◆ ConstructParametersType

typedef FVertexFactoryShaderParameters *(* FVertexFactoryType::ConstructParametersType) (EShaderFrequency ShaderFrequency, const class FShaderParameterMap &ParameterMap)

◆ GetParameterTypeElementShaderBindingsType

typedef void(* FVertexFactoryType::GetParameterTypeElementShaderBindingsType) (EShaderFrequency ShaderFrequency, const FVertexFactoryShaderParameters *Parameters, const class FSceneInterface *Scene, const class FSceneView *View, const class FMeshMaterialShader *Shader, const EVertexInputStreamType InputStreamType, ERHIFeatureLevel::Type FeatureLevel, const class FVertexFactory *VertexFactory, const struct FMeshBatchElement &BatchElement, class FMeshDrawSingleShaderBindings &ShaderBindings, FVertexInputStreamArray &VertexStreams)

◆ GetParameterTypeLayoutType

typedef const FTypeLayoutDesc *(* FVertexFactoryType::GetParameterTypeLayoutType) (EShaderFrequency ShaderFrequency)

◆ GetPSOPrecacheVertexFetchElementsType

typedef void(* FVertexFactoryType::GetPSOPrecacheVertexFetchElementsType) (EVertexInputStreamType VertexInputStreamType, FVertexDeclarationElementList &Elements)

◆ ShouldCacheType

typedef bool(* FVertexFactoryType::ShouldCacheType) (const FVertexFactoryShaderPermutationParameters &)

Constructor & Destructor Documentation

◆ FVertexFactoryType()

FVertexFactoryType::FVertexFactoryType ( const TCHAR InName,
const TCHAR InShaderFilename,
EVertexFactoryFlags  InFlags,
ConstructParametersType  InConstructParameters,
GetParameterTypeLayoutType  InGetParameterTypeLayout,
GetParameterTypeElementShaderBindingsType  InGetParameterTypeElementShaderBindings,
GetPSOPrecacheVertexFetchElementsType  InGetPSOPrecacheVertexFetchElements,
ShouldCacheType  InShouldCache 
)

◆ ~FVertexFactoryType()

FVertexFactoryType::~FVertexFactoryType ( )
virtual

Member Function Documentation

◆ CheckManualVertexFetchSupport()

bool FVertexFactoryType::CheckManualVertexFetchSupport ( ERHIFeatureLevel::Type  InFeatureLevel)
static

◆ CreateShaderParameters()

FVertexFactoryShaderParameters * FVertexFactoryType::CreateShaderParameters ( EShaderFrequency  ShaderFrequency,
const class FShaderParameterMap ParameterMap 
) const
inline

◆ GetFlags()

EVertexFactoryFlags FVertexFactoryType::GetFlags ( ) const
inline

◆ GetFName()

FName FVertexFactoryType::GetFName ( ) const
inline

◆ GetHashedName()

const FHashedName & FVertexFactoryType::GetHashedName ( ) const
inline

◆ GetName()

const TCHAR * FVertexFactoryType::GetName ( ) const
inline

◆ GetNumVertexFactoryTypes()

static int32 FVertexFactoryType::GetNumVertexFactoryTypes ( )
inlinestatic

◆ GetShaderFilename()

const TCHAR * FVertexFactoryType::GetShaderFilename ( ) const
inline

◆ GetShaderFwdFilename()

const TCHAR * FVertexFactoryType::GetShaderFwdFilename ( ) const
inline

◆ GetShaderParameterElementShaderBindings()

void FVertexFactoryType::GetShaderParameterElementShaderBindings ( EShaderFrequency  ShaderFrequency,
const FVertexFactoryShaderParameters Parameters,
const class FSceneInterface Scene,
const class FSceneView View,
const class FMeshMaterialShader Shader,
const EVertexInputStreamType  InputStreamType,
ERHIFeatureLevel::Type  FeatureLevel,
const class FVertexFactory VertexFactory,
const struct FMeshBatchElement BatchElement,
class FMeshDrawSingleShaderBindings ShaderBindings,
FVertexInputStreamArray VertexStreams 
) const
inline

◆ GetShaderParameterLayout()

const FTypeLayoutDesc * FVertexFactoryType::GetShaderParameterLayout ( EShaderFrequency  ShaderFrequency) const
inline

◆ GetShaderPSOPrecacheVertexFetchElements()

void FVertexFactoryType::GetShaderPSOPrecacheVertexFetchElements ( EVertexInputStreamType  VertexInputStreamType,
FVertexDeclarationElementList Elements 
) const
inline

◆ GetSortedMaterialTypes()

const TArray< FVertexFactoryType * > & FVertexFactoryType::GetSortedMaterialTypes ( )
static

◆ GetSourceHash()

const FSHAHash & FVertexFactoryType::GetSourceHash ( EShaderPlatform  ShaderPlatform) const

Calculates a Hash based on this vertex factory type's source code and includes

◆ GetTypeList()

TLinkedList< FVertexFactoryType * > *& FVertexFactoryType::GetTypeList ( )
static
Returns
The global shader factory list.

◆ GetVFByName()

FVertexFactoryType * FVertexFactoryType::GetVFByName ( const FHashedName VFName)
static

Finds a FVertexFactoryType by name.

◆ HasFlags()

bool FVertexFactoryType::HasFlags ( EVertexFactoryFlags  FlagsToCheck) const
inline

Returns true if this vertex factory supports ALL feature flags in FlagsToCheck

◆ IncludesFwdShaderFile()

bool FVertexFactoryType::IncludesFwdShaderFile ( ) const
inline

◆ Initialize()

void FVertexFactoryType::Initialize ( const TMap< FString, TArray< const TCHAR * > > &  ShaderFileToUniformBufferVariables)
static

Initialize FVertexFactoryType static members, this must be called before any VF types are created.

◆ IsUsedWithMaterials()

bool FVertexFactoryType::IsUsedWithMaterials ( ) const
inline

◆ ShouldCache()

bool FVertexFactoryType::ShouldCache ( const FVertexFactoryShaderPermutationParameters Parameters) const
inline

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

◆ SupportsCachingMeshDrawCommands()

bool FVertexFactoryType::SupportsCachingMeshDrawCommands ( ) const
inline

◆ SupportsComputeShading()

bool FVertexFactoryType::SupportsComputeShading ( ) const
inline

◆ SupportsDynamicLighting()

bool FVertexFactoryType::SupportsDynamicLighting ( ) const
inline

◆ SupportsGPUSkinPassThrough()

bool FVertexFactoryType::SupportsGPUSkinPassThrough ( ) const
inline

◆ SupportsLandscape()

bool FVertexFactoryType::SupportsLandscape ( ) const
inline

◆ SupportsLightmapBaking()

bool FVertexFactoryType::SupportsLightmapBaking ( ) const
inline

◆ SupportsLumenMeshCards()

bool FVertexFactoryType::SupportsLumenMeshCards ( ) const
inline

◆ SupportsManualVertexFetch()

bool FVertexFactoryType::SupportsManualVertexFetch ( ERHIFeatureLevel::Type  InFeatureLevel) const
inline

◆ SupportsNaniteRendering()

bool FVertexFactoryType::SupportsNaniteRendering ( ) const
inline

◆ SupportsNullPixelShader()

bool FVertexFactoryType::SupportsNullPixelShader ( ) const
inline

◆ SupportsPositionOnly()

bool FVertexFactoryType::SupportsPositionOnly ( ) const
inline

◆ SupportsPrecisePrevWorldPos()

bool FVertexFactoryType::SupportsPrecisePrevWorldPos ( ) const
inline

◆ SupportsPrimitiveIdStream()

bool FVertexFactoryType::SupportsPrimitiveIdStream ( ) const
inline

◆ SupportsPSOPrecaching()

bool FVertexFactoryType::SupportsPSOPrecaching ( ) const
inline

◆ SupportsRayTracing()

bool FVertexFactoryType::SupportsRayTracing ( ) const
inline

◆ SupportsRayTracingDynamicGeometry()

bool FVertexFactoryType::SupportsRayTracingDynamicGeometry ( ) const
inline

◆ SupportsRayTracingProceduralPrimitive()

bool FVertexFactoryType::SupportsRayTracingProceduralPrimitive ( ) const
inline

◆ SupportsStaticLighting()

bool FVertexFactoryType::SupportsStaticLighting ( ) const
inline

◆ SupportsTriangleSorting()

bool FVertexFactoryType::SupportsTriangleSorting ( ) const
inline

Friends And Related Symbol Documentation

◆ GetTypeHash

uint32 GetTypeHash ( const FVertexFactoryType Type)
friend

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