improved PrimitiveData
This commit is contained in:
parent
11ebb841be
commit
21a63f4a9b
@ -1 +1 @@
|
||||
Subproject commit 509273e44937426ecc51116f5094564b96ea8b87
|
||||
Subproject commit c330c635b226079f29664541b6c766959c244769
|
@ -50,9 +50,10 @@ public:
|
||||
|
||||
const VkDeviceSize GetVertexCount ()const {return vertex_count;}
|
||||
|
||||
bool GetVABAccess (const AnsiString &,VABAccess *);
|
||||
const int GetBufferCount ()const {return buffer_list.GetCount();}
|
||||
|
||||
bool GetVABAccess (const AnsiString &,VABAccess *);
|
||||
|
||||
const IBAccess * GetIBAccess ()const {return ib_access.buffer?&ib_access:nullptr;}
|
||||
};//class Primitive
|
||||
VK_NAMESPACE_END
|
||||
|
@ -6,17 +6,41 @@
|
||||
|
||||
VK_NAMESPACE_BEGIN
|
||||
|
||||
/*
|
||||
1.截止2024.4.27,根据vulkan.gpuinfo.org统计,只有9%的设备maxVertexInputAttributes为16,不存在低于16的设备。
|
||||
9.0%的设备为28 - 31
|
||||
70.7%的设备为32
|
||||
9.6%的设备为64
|
||||
|
||||
由于我们暂时没有发现需要使用16个以上属性的情况,所以这里暂定使用16。
|
||||
(如果时间过去久远,可再次查询此值是否可改成更高的值,以及是否需要)
|
||||
|
||||
2.为何va_name使用char[][]而不是String以及动态分配内存?
|
||||
|
||||
就是为了必避动态分配内存,以及可以直接memcpy处理,所以此处这样定义。
|
||||
*/
|
||||
|
||||
struct VABAccessInfo
|
||||
{
|
||||
char va_name[VERTEX_ATTRIB_NAME_MAX_LENGTH+1];
|
||||
VABAccess vab_access;
|
||||
};
|
||||
|
||||
constexpr const uint HGL_MAX_VERTEX_ATTRIB_COUNT=16; ///<最大顶点属性数量
|
||||
|
||||
struct PrimitiveData
|
||||
{
|
||||
VkDeviceSize vertex_count;
|
||||
VkDeviceSize vertex_count;
|
||||
|
||||
uint32_t va_count;
|
||||
uint32_t va_count;
|
||||
|
||||
VABAccess *vab_list;
|
||||
VABAccessInfo vab_list[HGL_MAX_VERTEX_ATTRIB_COUNT];
|
||||
|
||||
IBAccess ib_access;
|
||||
IBAccess ib_access;
|
||||
|
||||
AABB BoundingBox;
|
||||
AABB BoundingBox;
|
||||
};//struct PrimitiveData
|
||||
|
||||
constexpr const uint PRIMITIVE_DATA_SIZE=sizeof(PrimitiveData);
|
||||
|
||||
VK_NAMESPACE_END
|
||||
|
@ -12,11 +12,13 @@ namespace material_file
|
||||
using namespace hgl;
|
||||
using namespace hgl::graph;
|
||||
|
||||
constexpr size_t SHADER_RESOURCE_NAME_MAX_LENGTH=VERTEX_ATTRIB_NAME_MAX_LENGTH;
|
||||
|
||||
struct ShaderIOAttrib
|
||||
{
|
||||
VAT vat;
|
||||
|
||||
char name[SHADER_RESOURCE_NAME_MAX_LENGTH];
|
||||
char name[VERTEX_ATTRIB_NAME_MAX_LENGTH];
|
||||
};
|
||||
|
||||
struct MaterialInstanceData
|
||||
|
Loading…
x
Reference in New Issue
Block a user