ULRE/src/SceneGraph/Vulkan/VKPrimitiveData.h

50 lines
1.7 KiB
C
Raw Normal View History

#include<hgl/graph/VK.h>
VK_NAMESPACE_BEGIN
/*
1.2024.4.27vulkan.gpuinfo.org统计9%maxVertexInputAttributes为1616
9.0%28 - 31
70.7%32
9.6%64
使16使16
()
2.va_name使用char[][]String以及动态分配内存
memcpy处理
*/
class PrimitiveData
{
protected:
const VIL * vil;
VkDeviceSize vertex_count;
VABAccess *vab_access;
IBAccess ib_access;
public:
PrimitiveData(const VIL *_vil,const VkDeviceSize vc);
virtual ~PrimitiveData();
public:
const VkDeviceSize GetVertexCount ()const{return vertex_count;}
const int GetVABCount ()const;
const int GetVABIndex (const AnsiString &name)const;
VABAccess * GetVABAccess (const int index);
VABAccess * GetVABAccess (const AnsiString &name);
IBAccess * GetIBAccess (){return &ib_access;}
public:
virtual IBAccess * InitIBO(const VkDeviceSize index_count,IndexType it)=0;
virtual VABAccess *InitVAB(const AnsiString &name,const VkFormat &format,const void *data,const VkDeviceSize bytes)=0;
};//class PrimitiveData
PrimitiveData *CreatePrimitiveData(GPUDevice *dev,const VIL *_vil,const VkDeviceSize vc);
VK_NAMESPACE_END