9#include "Containers/Array.h"
13#include "Containers/Map.h"
44#if PLATFORM_SUPPORTS_PRAGMA_PACK
110 return !(*
this ==
rhs);
114#if PLATFORM_SUPPORTS_PRAGMA_PACK
165#define STRUCTMEMBER_VERTEXSTREAMCOMPONENT(VertexBuffer,VertexType,Member,MemberType) \
166 FVertexStreamComponent(VertexBuffer,STRUCT_OFFSET(VertexType,Member),sizeof(VertexType),MemberType)
197template<EShaderFrequency ShaderFrequency,
typename VertexFactoryType>
216#define IMPLEMENT_VERTEX_FACTORY_PARAMETER_TYPE(FactoryClass, ShaderFrequency, ParameterClass) \
217 template<> struct TVertexFactoryParameterTraits<ShaderFrequency, FactoryClass> \
219 static const FTypeLayoutDesc* GetLayout() { return &StaticGetTypeLayoutDesc<ParameterClass>(); } \
220 static FVertexFactoryShaderParameters* Create(const class FShaderParameterMap& ParameterMap) { ParameterClass* Result = new ParameterClass(); Result->Bind(ParameterMap); return Result; } \
221 static void GetElementShaderBindings( \
222 const FVertexFactoryShaderParameters* Parameters, \
223 const class FSceneInterface* Scene, \
224 const class FSceneView* View, \
225 const class FMeshMaterialShader* Shader, \
226 const EVertexInputStreamType InputStreamType, \
227 ERHIFeatureLevel::Type FeatureLevel, \
228 const class FVertexFactory* VertexFactory, \
229 const struct FMeshBatchElement& BatchElement, \
230 class FMeshDrawSingleShaderBindings& ShaderBindings, \
231 FVertexInputStreamArray& VertexStreams) \
233 static_cast<const ParameterClass*>(Parameters)->GetElementShaderBindings(Scene, View, Shader, InputStreamType, FeatureLevel, VertexFactory, BatchElement, ShaderBindings, VertexStreams); \
237template<
typename VertexFactoryType>
240 switch (ShaderFrequency)
258template<
typename VertexFactoryType>
261 switch (ShaderFrequency)
280template<
typename VertexFactoryType>
292 switch (ShaderFrequency)
294 case SF_Vertex:
TVertexFactoryParameterTraits<SF_Vertex, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
295 case SF_Mesh:
TVertexFactoryParameterTraits<SF_Mesh, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
296 case SF_Amplification:
TVertexFactoryParameterTraits<SF_Amplification, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
297 case SF_Pixel:
TVertexFactoryParameterTraits<SF_Pixel, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
298 case SF_Geometry:
TVertexFactoryParameterTraits<SF_Geometry, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
299 case SF_Compute:
TVertexFactoryParameterTraits<SF_Compute, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
300 case SF_RayGen:
TVertexFactoryParameterTraits<SF_RayGen, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
301 case SF_RayMiss:
TVertexFactoryParameterTraits<SF_RayMiss, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
302 case SF_RayHitGroup:
TVertexFactoryParameterTraits<SF_RayHitGroup, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
303 case SF_RayCallable:
TVertexFactoryParameterTraits<SF_RayCallable, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
304 case SF_WorkGraphRoot:
TVertexFactoryParameterTraits<SF_WorkGraphRoot, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
305 case SF_WorkGraphComputeNode:
TVertexFactoryParameterTraits<SF_WorkGraphComputeNode, VertexFactoryType>::GetElementShaderBindings(Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams);
break;
391 FVertexInputStreamArray& VertexStreams)
const { (*GetParameterTypeElementShaderBindings)(ShaderFrequency, Parameters,
Scene, View,
Shader,
InputStreamType, FeatureLevel, VertexFactory,
BatchElement, ShaderBindings, VertexStreams); }
447 return (*ShouldCacheRef)(Parameters);
469 OutEnvironment.IncludeVirtualPathToContentsMap.Add(
TEXT(
"/Engine/Generated/VertexFactoryFwd.ush"),
TEXT(
"#include \"/Engine/Private/VertexFactoryDefaultFwd.ush\""));
479 (*ValidateCompiledResultRef)(
this,
Platform, ParameterMap, OutErrors);
485 UE_DEPRECATED(5.5,
"GetReferencedUniformBufferNames is deprecated; call GetReferencedUniformBuffers instead.")
494 return ReferencedUniformBuffers;
504 static bool bVertexFactoriesInitialized;
507 const TCHAR* ShaderFilename;
508 FString ShaderFwdFilename;
548#define DECLARE_VERTEX_FACTORY_TYPE(FactoryClass) \
550 static FVertexFactoryType StaticType; \
551 virtual FVertexFactoryType* GetType() const override;
553#define DECLARE_VERTEX_FACTORY_TYPE_API(FactoryClass, ModuleApi) \
555 ModuleApi static FVertexFactoryType StaticType; \
556 ModuleApi virtual FVertexFactoryType* GetType() const override;
559 #define IMPLEMENT_VERTEX_FACTORY_EDITOR_VTABLE(FactoryClass) \
560 , FactoryClass::ModifyCompilationEnvironment \
561 , FactoryClass::ValidateCompiledResult
563 #define IMPLEMENT_VERTEX_FACTORY_EDITOR_VTABLE(FactoryClass)
566#define IMPLEMENT_VERTEX_FACTORY_VTABLE(FactoryClass) \
567 &ConstructVertexFactoryParameters<FactoryClass>, \
568 &GetVertexFactoryParametersLayout<FactoryClass>, \
569 &GetVertexFactoryParametersElementShaderBindings<FactoryClass>, \
570 FactoryClass::GetPSOPrecacheVertexFetchElements, \
571 FactoryClass::ShouldCompilePermutation \
572 IMPLEMENT_VERTEX_FACTORY_EDITOR_VTABLE(FactoryClass)
577#define IMPLEMENT_VERTEX_FACTORY_TYPE(FactoryClass, ShaderFilename, Flags) \
578 FVertexFactoryType FactoryClass::StaticType( \
579 TEXT(#FactoryClass), \
580 TEXT(ShaderFilename), \
582 IMPLEMENT_VERTEX_FACTORY_VTABLE(FactoryClass) \
584 FVertexFactoryType* FactoryClass::GetType() const { return &StaticType; }
588#define IMPLEMENT_TEMPLATE_VERTEX_FACTORY_TYPE(TemplatePrefix, FactoryClass, ShaderFilename, Flags) \
589 PREPROCESSOR_REMOVE_OPTIONAL_PARENS(TemplatePrefix) FVertexFactoryType FactoryClass::StaticType( \
590 TEXT(#FactoryClass), \
591 TEXT(ShaderFilename), \
593 IMPLEMENT_VERTEX_FACTORY_VTABLE(FactoryClass) \
595 PREPROCESSOR_REMOVE_OPTIONAL_PARENS(TemplatePrefix) FVertexFactoryType* FactoryClass::GetType() const { return &StaticType; }
610 Ar << Ref.VertexFactoryTypeName << Ref.VFSourceHash;
621 return !(*
this == Reference);
736#if WITH_EDITORONLY_DATA
795 template<
typename VertexStreamListType>
826 return A.VertexBuffer ==
B.VertexBuffer &&
A.Stride ==
B.Stride &&
A.Offset ==
B.Offset &&
A.VertexStreamUsage ==
B.VertexStreamUsage;
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define check(expr)
Definition AssertionMacros.h:314
#define checkNoEntry()
Definition AssertionMacros.h:316
bool LoadFromCompactBinary(FCbFieldView Field, FAssetDependency &Dependency)
Definition AssetRegistry.cpp:10420
#define WITH_EDITOR
Definition Build.h:67
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
constexpr bool EnumHasAnyFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:35
constexpr bool EnumHasAllFlags(Enum Flags, Enum Contains)
Definition EnumClassFlags.h:28
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
#define DECLARE_EXPORTED_TYPE_LAYOUT(T, RequiredAPI, Interface)
Definition MemoryLayout.h:559
#define LAYOUT_FIELD_INITIALIZED(T, Name, Value,...)
Definition MemoryLayout.h:473
const bool
Definition NetworkReplayStreaming.h:178
EShaderFrequency
Definition RHIDefinitions.h:202
@ SF_Compute
Definition RHIDefinitions.h:208
@ SF_Amplification
Definition RHIDefinitions.h:205
@ SF_Vertex
Definition RHIDefinitions.h:203
@ SF_Mesh
Definition RHIDefinitions.h:204
@ SF_Geometry
Definition RHIDefinitions.h:207
@ SF_RayGen
Definition RHIDefinitions.h:209
@ SF_RayCallable
Definition RHIDefinitions.h:212
@ SF_RayMiss
Definition RHIDefinitions.h:210
@ SF_RayHitGroup
Definition RHIDefinitions.h:211
@ SF_WorkGraphRoot
Definition RHIDefinitions.h:213
@ SF_WorkGraphComputeNode
Definition RHIDefinitions.h:214
@ SF_Pixel
Definition RHIDefinitions.h:206
#define UE_ARRAY_COUNT(array)
Definition UnrealTemplate.h:212
TArray< FVertexInputStream, TInlineAllocator< 7 > > FVertexInputStreamArray
Definition VertexFactory.h:123
EVertexInputStreamType
Definition VertexFactory.h:128
RENDERCORE_API FVertexFactoryType * FindVertexFactoryType(const FHashedName &TypeName)
Definition VertexFactory.cpp:208
EVertexFactoryFlags
Definition VertexFactory.h:136
@ DoesNotSupportNullPixelShader
@ SupportsGPUSkinPassThrough
@ SupportsRayTracingProceduralPrimitive
@ SupportsDynamicLighting
@ SupportsCachingMeshDrawCommands
@ SupportsPrecisePrevWorldPos
@ SupportsRayTracingDynamicGeometry
@ SupportsNaniteRendering
@ SupportsManualVertexFetch
@ SupportsTriangleSorting
@ SupportsPrimitiveIdStream
RENDERCORE_API FArchive & operator<<(FArchive &Ar, FVertexFactoryType *&TypeRef)
Definition VertexFactory.cpp:192
RENDERCORE_API TGlobalResource< FPrimitiveIdDummyBuffer > GPrimitiveIdDummy
Definition VertexFactory.cpp:432
EVertexStreamUsage
Definition VertexStreamComponent.h:11
Definition Archive.h:1208
Definition CompactBinary.h:610
Definition CompactBinaryWriter.h:68
Definition VertexFactory.h:643
bool operator()(const FVertexFactoryType &A, const FVertexFactoryType &B) const
Definition VertexFactory.h:645
Definition MemoryImage.h:858
Definition MaterialShared.h:2058
Definition MeshDrawShaderBindings.h:104
Definition MeshMaterialShader.h:68
Definition NameTypes.h:617
Definition VertexFactory.h:879
virtual void ReleaseRHI() override
Definition VertexFactory.h:884
FShaderResourceViewRHIRef VertexBufferSRV
Definition VertexFactory.h:890
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition VertexFactory.cpp:416
Definition PrimitiveSceneProxy.h:296
Definition RHIResources.h:1581
Definition RHICommandList.h:455
Definition RHICommandList.h:3819
Definition RHIResources.h:1643
Definition RenderResource.h:37
Definition SecureHash.h:226
Definition SceneInterface.h:106
Definition SceneView.h:1425
Definition ShaderCore.h:323
Definition RenderResource.h:474
virtual RENDERCORE_API void ReleaseRHI() override
Definition RenderResource.cpp:556
Definition VertexFactory.h:172
void GetElementShaderBindings(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
Definition VertexFactory.h:181
void Bind(const class FShaderParameterMap &ParameterMap)
Definition VertexFactory.h:175
Definition VertexFactory.h:599
bool operator!=(const FVertexFactoryTypeDependency &Reference) const
Definition VertexFactory.h:619
FVertexFactoryTypeDependency()
Definition VertexFactory.h:601
bool operator==(const FVertexFactoryTypeDependency &Reference) const
Definition VertexFactory.h:614
FHashedName VertexFactoryTypeName
Definition VertexFactory.h:603
RENDERCORE_API void RefreshCachedSourceHash(EShaderPlatform ShaderPlatform)
Definition VertexFactory.cpp:213
friend FArchive & operator<<(FArchive &Ar, class FVertexFactoryTypeDependency &Ref)
Definition VertexFactory.h:608
FSHAHash VFSourceHash
Definition VertexFactory.h:606
Definition VertexFactory.h:314
bool SupportsRayTracingProceduralPrimitive() const
Definition VertexFactory.h:415
const TCHAR * GetShaderFwdFilename() const
Definition VertexFactory.h:377
virtual RENDERCORE_API ~FVertexFactoryType()
Definition VertexFactory.cpp:163
bool SupportsLumenMeshCards() const
Definition VertexFactory.h:421
static RENDERCORE_API FVertexFactoryType * GetVFByName(const FHashedName &VFName)
Definition VertexFactory.cpp:66
FName GetFName() const
Definition VertexFactory.h:374
bool SupportsPositionOnly() const
Definition VertexFactory.h:409
bool SupportsLightmapBaking() const
Definition VertexFactory.h:416
bool SupportsPrimitiveIdStream() const
Definition VertexFactory.h:411
friend uint32 GetTypeHash(const FVertexFactoryType *Type)
Definition VertexFactory.h:434
bool IsUsedWithMaterials() const
Definition VertexFactory.h:405
static RENDERCORE_API TLinkedList< FVertexFactoryType * > *& GetTypeList()
Definition VertexFactory.cpp:53
const TCHAR * GetName() const
Definition VertexFactory.h:373
bool SupportsManualVertexFetch(ERHIFeatureLevel::Type InFeatureLevel) const
Definition VertexFactory.h:426
bool SupportsRayTracing() const
Definition VertexFactory.h:413
void(* GetPSOPrecacheVertexFetchElementsType)(EVertexInputStreamType VertexInputStreamType, FVertexDeclarationElementList &Elements)
Definition VertexFactory.h:330
bool(* ShouldCacheType)(const FVertexFactoryShaderPermutationParameters &)
Definition VertexFactory.h:331
bool SupportsGPUSkinPassThrough() const
Definition VertexFactory.h:419
bool SupportsRayTracingDynamicGeometry() const
Definition VertexFactory.h:414
const TCHAR * GetShaderFilename() const
Definition VertexFactory.h:376
bool SupportsNaniteRendering() const
Definition VertexFactory.h:412
const FHashedName & GetHashedName() const
Definition VertexFactory.h:375
bool SupportsLandscape() const
Definition VertexFactory.h:422
RENDERCORE_API const FSHAHash & GetSourceHash(EShaderPlatform ShaderPlatform) const
Definition VertexFactory.cpp:187
FVertexFactoryShaderParameters *(* ConstructParametersType)(EShaderFrequency ShaderFrequency, const class FShaderParameterMap &ParameterMap)
Definition VertexFactory.h:317
bool SupportsPSOPrecaching() const
Definition VertexFactory.h:417
bool SupportsCachingMeshDrawCommands() const
Definition VertexFactory.h:410
bool HasFlags(EVertexFactoryFlags FlagsToCheck) const
Definition VertexFactory.h:400
FVertexFactoryShaderParameters * CreateShaderParameters(EShaderFrequency ShaderFrequency, const class FShaderParameterMap &ParameterMap) const
Definition VertexFactory.h:379
bool IncludesFwdShaderFile() const
Definition VertexFactory.h:423
void GetShaderPSOPrecacheVertexFetchElements(EVertexInputStreamType VertexInputStreamType, FVertexDeclarationElementList &Elements) const
Definition VertexFactory.h:392
const FTypeLayoutDesc * GetShaderParameterLayout(EShaderFrequency ShaderFrequency) const
Definition VertexFactory.h:380
static RENDERCORE_API bool CheckManualVertexFetchSupport(ERHIFeatureLevel::Type InFeatureLevel)
Definition VertexFactory.cpp:180
static int32 GetNumVertexFactoryTypes()
Definition VertexFactory.h:338
static RENDERCORE_API const TArray< FVertexFactoryType * > & GetSortedMaterialTypes()
Definition VertexFactory.cpp:58
bool SupportsDynamicLighting() const
Definition VertexFactory.h:407
bool ShouldCache(const FVertexFactoryShaderPermutationParameters &Parameters) const
Definition VertexFactory.h:445
const FTypeLayoutDesc *(* GetParameterTypeLayoutType)(EShaderFrequency ShaderFrequency)
Definition VertexFactory.h:318
bool SupportsPrecisePrevWorldPos() const
Definition VertexFactory.h:408
bool SupportsStaticLighting() const
Definition VertexFactory.h:406
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)
Definition VertexFactory.h:319
bool SupportsTriangleSorting() const
Definition VertexFactory.h:424
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
Definition VertexFactory.h:381
EVertexFactoryFlags GetFlags() const
Definition VertexFactory.h:394
bool SupportsNullPixelShader() const
Definition VertexFactory.h:418
bool SupportsComputeShading() const
Definition VertexFactory.h:420
Definition VertexFactory.h:661
static void ModifyCompilationEnvironment(const FVertexFactoryShaderPermutationParameters &Parameters, FShaderCompilerEnvironment &OutEnvironment)
Definition VertexFactory.h:683
TArray< FVertexStream, TInlineAllocator< 8 > > FVertexStreamList
Definition VertexFactory.h:834
virtual bool RendersPrimitivesAsCameraFacingSprites() const
Definition VertexFactory.h:740
bool SupportsManualVertexFetch(const FStaticFeatureLevel InFeatureLevel) const
Definition VertexFactory.h:744
static void GetPSOPrecacheVertexFetchElements(EVertexInputStreamType VertexInputStreamType, FVertexDeclarationElementList &Elements)
Definition VertexFactory.h:693
bool NeedsDeclaration() const
Definition VertexFactory.h:742
static FVertexElement AccessStreamComponent(const FVertexStreamComponent &Component, uint8 AttributeIndex, VertexStreamListType &InOutStreams)
Definition VertexFactory.h:796
bool bNeedsDeclaration
Definition VertexFactory.h:861
FVertexFactory(ERHIFeatureLevel::Type InFeatureLevel)
Definition VertexFactory.h:663
virtual bool SupportsPositionAndNormalOnlyStream() const
Definition VertexFactory.h:718
virtual FVertexFactoryType * GetType() const
Definition VertexFactory.h:674
virtual RENDERCORE_API ~FVertexFactory()
void SetDeclaration(FVertexDeclarationRHIRef &NewDeclaration)
Definition VertexFactory.h:700
static void ValidateCompiledResult(const FVertexFactoryType *Type, EShaderPlatform Platform, const FShaderParameterMap &ParameterMap, TArray< FString > &OutErrors)
Definition VertexFactory.h:688
FVertexElement AccessStreamComponent(const FVertexStreamComponent &Component, uint8 AttributeIndex)
Definition VertexFactory.h:774
virtual RENDERCORE_API void ReleaseRHI()
Definition VertexFactory.cpp:340
RENDERCORE_API void InitDeclaration(const FVertexDeclarationElementList &Elements, EVertexInputStreamType StreamType=EVertexInputStreamType::Default)
Definition VertexFactory.cpp:398
const FVertexDeclarationRHIRef & GetDeclaration(EVertexInputStreamType InputStreamType) const
Definition VertexFactory.h:702
bool SupportsGPUScene(const FStaticFeatureLevel InFeatureLevel) const
Definition VertexFactory.h:754
virtual FShaderResourceViewRHIRef GetTriangleSortingPositionSRV() const
Definition VertexFactory.h:731
RENDERCORE_API bool AddPrimitiveIdStreamElement(EVertexInputStreamType InputStreamType, FVertexDeclarationElementList &Elements, uint8 AttributeIndex, uint8 AttributeIndex_Mobile)
Definition VertexFactory.cpp:350
FVertexDeclarationRHIRef & GetDeclaration()
Definition VertexFactory.h:699
RENDERCORE_API void GetStreams(ERHIFeatureLevel::Type InFeatureLevel, EVertexInputStreamType VertexStreamType, FVertexInputStreamArray &OutVertexStreams) const
Definition VertexFactory.cpp:256
bool SupportsTriangleSorting() const
Definition VertexFactory.h:726
virtual bool SupportsPositionOnlyStream() const
Definition VertexFactory.h:715
bool SupportsNullPixelShader() const
Definition VertexFactory.h:721
FVertexStreamList Streams
Definition VertexFactory.h:837
int32 GetPrimitiveIdStreamIndex(const FStaticFeatureLevel InFeatureLevel, EVertexInputStreamType InputStreamType) const
Definition VertexFactory.h:749
void SetPrimitiveIdStreamIndex(const FStaticFeatureLevel InFeatureLevel, EVertexInputStreamType InputStreamType, int32 StreamIndex)
Definition VertexFactory.h:760
RENDERCORE_API void OffsetInstanceStreams(uint32 InstanceOffset, EVertexInputStreamType VertexStreamType, FVertexInputStreamArray &VertexStreams) const
Definition VertexFactory.cpp:316
Definition RenderResource.h:543
Definition UnrealString.h.inl:34
UE_FORCEINLINE_HINT void SafeRelease()
Definition RefCounting.h:599
Type
Definition RHIFeatureLevel.h:20
@ ES3_1
Definition RHIFeatureLevel.h:25
Definition FieldSystemNoiseAlgo.cpp:6
Definition MeshBatch.h:232
Definition ShaderCore.h:544
Definition AndroidStaticFeatureLevel.inl:12
Definition MemoryLayout.h:108
Definition MeshMaterialShader.h:44
Definition VertexFactory.h:817
friend bool operator==(const FVertexStream &A, const FVertexStream &B)
Definition VertexFactory.h:824
EVertexStreamUsage VertexStreamUsage
Definition VertexFactory.h:821
uint8 Padding
Definition VertexFactory.h:822
FVertexStream()
Definition VertexFactory.h:829
uint16 Stride
Definition VertexFactory.h:820
uint32 Offset
Definition VertexFactory.h:819
const FVertexBuffer * VertexBuffer
Definition VertexFactory.h:818
Definition VertexStreamComponent.h:22
static int32 Strlen(const CharType *String)
Definition CString.h:1047
static UE_FORCEINLINE_HINT int32 Strncmp(const CharType *String1, const CharType *String2, SIZE_T Count)
Definition CString.h:1024
Definition NumericLimits.h:41
Definition VertexFactory.h:199
static const FTypeLayoutDesc * GetLayout()
Definition VertexFactory.h:200
static void GetElementShaderBindings(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)
Definition VertexFactory.h:203
static FVertexFactoryShaderParameters * Create(const class FShaderParameterMap &ParameterMap)
Definition VertexFactory.h:201