remove VABView
This commit is contained in:
parent
14fbbd6fa6
commit
f31437bf67
@ -73,8 +73,6 @@ public:
|
|||||||
|
|
||||||
using VABAccessMap=Map<AnsiString,VABAccess>;
|
using VABAccessMap=Map<AnsiString,VABAccess>;
|
||||||
|
|
||||||
class VABView;
|
|
||||||
|
|
||||||
class IndexBuffer;
|
class IndexBuffer;
|
||||||
|
|
||||||
struct IndexBufferAccess
|
struct IndexBufferAccess
|
||||||
|
@ -8,7 +8,12 @@
|
|||||||
VK_NAMESPACE_BEGIN
|
VK_NAMESPACE_BEGIN
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 单一图元数据
|
* 单一图元数据访问接口<br>
|
||||||
|
*
|
||||||
|
* 这个只是单纯的提供原始VAB/IB数据,派生为两类
|
||||||
|
*
|
||||||
|
* 一类是传统的,使用独统的独立VAB的
|
||||||
|
* 一类是使用VDM的
|
||||||
*/
|
*/
|
||||||
class Primitive
|
class Primitive
|
||||||
{
|
{
|
||||||
|
@ -1,101 +1,106 @@
|
|||||||
#pragma once
|
#pragma once
|
||||||
//
|
|
||||||
//#include<hgl/graph/VKVertexAttribBuffer.h>
|
#include<hgl/graph/VKVertexInputLayout.h>
|
||||||
//#include<hgl/graph/VKIndexBuffer.h>
|
#include<hgl/graph/VKVertexAttribBuffer.h>
|
||||||
//#include<hgl/graph/AABB.h>
|
#include<hgl/graph/VKIndexBuffer.h>
|
||||||
//
|
#include<hgl/graph/AABB.h>
|
||||||
//VK_NAMESPACE_BEGIN
|
|
||||||
//
|
VK_NAMESPACE_BEGIN
|
||||||
///*
|
|
||||||
// 1.截止2024.4.27,根据vulkan.gpuinfo.org统计,只有9%的设备maxVertexInputAttributes为16,不存在低于16的设备。
|
/*
|
||||||
// 9.0%的设备为28 - 31
|
1.截止2024.4.27,根据vulkan.gpuinfo.org统计,只有9%的设备maxVertexInputAttributes为16,不存在低于16的设备。
|
||||||
// 70.7%的设备为32
|
9.0%的设备为28 - 31
|
||||||
// 9.6%的设备为64
|
70.7%的设备为32
|
||||||
//
|
9.6%的设备为64
|
||||||
// 由于我们暂时没有发现需要使用16个以上属性的情况,所以这里暂定使用16。
|
|
||||||
// (如果时间过去久远,可再次查询此值是否可改成更高的值,以及是否需要)
|
由于我们暂时没有发现需要使用16个以上属性的情况,所以这里暂定使用16。
|
||||||
//
|
(如果时间过去久远,可再次查询此值是否可改成更高的值,以及是否需要)
|
||||||
// 2.为何va_name使用char[][]而不是String以及动态分配内存?
|
|
||||||
//
|
2.为何va_name使用char[][]而不是String以及动态分配内存?
|
||||||
// 就是为了必避动态分配内存,以及可以直接memcpy处理,所以此处这样定义。
|
|
||||||
//*/
|
就是为了必避动态分配内存,以及可以直接memcpy处理,所以此处这样定义。
|
||||||
//
|
*/
|
||||||
//struct VABAccessInfo
|
|
||||||
//{
|
constexpr const uint HGL_MAX_VERTEX_ATTRIB_COUNT=16; ///<最大顶点属性数量
|
||||||
// char va_name[VERTEX_ATTRIB_NAME_MAX_LENGTH+1];
|
|
||||||
// VABAccess vab_access;
|
struct PrimitiveData
|
||||||
//};
|
{
|
||||||
//
|
const VIL * vil;
|
||||||
//constexpr const uint HGL_MAX_VERTEX_ATTRIB_COUNT=16; ///<最大顶点属性数量
|
|
||||||
//
|
VkDeviceSize vertex_count;
|
||||||
//struct PrimitiveData
|
|
||||||
//{
|
VABAccess vab_access[HGL_MAX_VERTEX_ATTRIB_COUNT];
|
||||||
// VkDeviceSize vertex_count;
|
IBAccess ib_access;
|
||||||
//
|
|
||||||
// uint32_t va_count;
|
AABB BoundingBox;
|
||||||
//
|
|
||||||
// VABAccessInfo vab_list[HGL_MAX_VERTEX_ATTRIB_COUNT];
|
public:
|
||||||
//
|
|
||||||
// IBAccess ib_access;
|
PrimitiveData(const VIL *_vil,const VkDeviceSize vc,const VkDeviceSize ic=0,const IndexType &it=IndexType::AUTO)
|
||||||
//
|
{
|
||||||
// AABB BoundingBox;
|
Clear();
|
||||||
//
|
|
||||||
//public:
|
vil=_vil;
|
||||||
//
|
|
||||||
// void Clear()
|
vertex_count=vc;
|
||||||
// {
|
|
||||||
// hgl_zero(*this);
|
ib_access.count=ic;
|
||||||
// }
|
}
|
||||||
//
|
|
||||||
// const int GetVABIndex(const char *name)const
|
void Clear()
|
||||||
// {
|
{
|
||||||
// for(int i=0;i<va_count;i++)
|
hgl_zero(*this);
|
||||||
// {
|
}
|
||||||
// if(hgl::strcmp(vab_list[i].va_name,name)==0)
|
|
||||||
// return(i);
|
const int GetVABIndex(const char *name)const
|
||||||
// }
|
{
|
||||||
//
|
for(int i=0;i<va_count;i++)
|
||||||
// return(-1);
|
{
|
||||||
// }
|
if(hgl::strcmp(vab_list[i].va_name,name)==0)
|
||||||
//
|
return(i);
|
||||||
// VABAccess *GetVAB(const char *name)
|
}
|
||||||
// {
|
|
||||||
// if(!name||!*name)
|
return(-1);
|
||||||
// return(nullptr);
|
}
|
||||||
//
|
|
||||||
// const int index=GetVABIndex(name);
|
VABAccess *GetVAB(const char *name)
|
||||||
//
|
{
|
||||||
// if(index==-1)
|
if(!name||!*name)
|
||||||
// return(nullptr);
|
return(nullptr);
|
||||||
//
|
|
||||||
// return &(vab_list[index].vab_access);
|
const int index=GetVABIndex(name);
|
||||||
// }
|
|
||||||
//
|
if(index==-1)
|
||||||
// const int AddVAB(const char *name,VAB *vab,VkDeviceSize start=0)
|
return(nullptr);
|
||||||
// {
|
|
||||||
// if(va_count>=HGL_MAX_VERTEX_ATTRIB_COUNT)
|
return &(vab_list[index].vab_access);
|
||||||
// return(-1);
|
}
|
||||||
//
|
|
||||||
// VABAccessInfo *vai=vab_list+va_count;
|
const int AddVAB(const char *name,VAB *vab,VkDeviceSize start=0)
|
||||||
//
|
{
|
||||||
// hgl::strcpy(vai->va_name,VERTEX_ATTRIB_NAME_MAX_LENGTH,name);
|
if(va_count>=HGL_MAX_VERTEX_ATTRIB_COUNT)
|
||||||
// vai->vab_access.vab=vab;
|
return(-1);
|
||||||
// vai->vab_access.start=start;
|
|
||||||
//
|
VABAccessInfo *vai=vab_list+va_count;
|
||||||
// #ifdef _DEBUG
|
|
||||||
// DebugUtils *du=device->GetDebugUtils();
|
hgl::strcpy(vai->va_name,VERTEX_ATTRIB_NAME_MAX_LENGTH,name);
|
||||||
//
|
vai->vab_access.vab=vab;
|
||||||
// if(du)
|
vai->vab_access.start=start;
|
||||||
// {
|
|
||||||
// du->SetBuffer(vab->GetBuffer(),prim_name+":VAB:Buffer:"+name);
|
#ifdef _DEBUG
|
||||||
// du->SetDeviceMemory(vab->GetVkMemory(),prim_name+":VAB:Memory:"+name);
|
DebugUtils *du=device->GetDebugUtils();
|
||||||
// }
|
|
||||||
// #endif//_DEBUG
|
if(du)
|
||||||
//
|
{
|
||||||
// return(va_count++);
|
du->SetBuffer(vab->GetBuffer(),prim_name+":VAB:Buffer:"+name);
|
||||||
// }
|
du->SetDeviceMemory(vab->GetVkMemory(),prim_name+":VAB:Memory:"+name);
|
||||||
//};//struct PrimitiveData
|
}
|
||||||
//
|
#endif//_DEBUG
|
||||||
//constexpr const uint PRIMITIVE_DATA_SIZE=sizeof(PrimitiveData);
|
|
||||||
|
return(va_count++);
|
||||||
|
}
|
||||||
|
};//struct PrimitiveData
|
||||||
|
|
||||||
|
constexpr const uint PRIMITIVE_DATA_SIZE=sizeof(PrimitiveData);
|
||||||
|
|
||||||
VK_NAMESPACE_END
|
VK_NAMESPACE_END
|
||||||
|
@ -36,21 +36,6 @@ namespace hgl
|
|||||||
};//class VertexAttribBuffer:public DeviceBuffer
|
};//class VertexAttribBuffer:public DeviceBuffer
|
||||||
|
|
||||||
using VAB=VertexAttribBuffer;
|
using VAB=VertexAttribBuffer;
|
||||||
|
|
||||||
class VABView
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
VABView()=default;
|
|
||||||
virtual ~VABView()=default;
|
|
||||||
|
|
||||||
virtual VAB *GetVAB()=0;
|
|
||||||
virtual VkDeviceSize GetStart()const=0;
|
|
||||||
virtual VkDeviceSize GetSize()const=0;
|
|
||||||
|
|
||||||
virtual void *Map()=0;
|
|
||||||
virtual void Unmap()=0;
|
|
||||||
};//class VABView
|
|
||||||
}//namespace graph
|
}//namespace graph
|
||||||
}//namespace hgl
|
}//namespace hgl
|
||||||
#endif//HGL_GRAPH_VULKAN_VERTEX_ATTRIB_BUFFER_INCLUDE
|
#endif//HGL_GRAPH_VULKAN_VERTEX_ATTRIB_BUFFER_INCLUDE
|
||||||
|
Loading…
x
Reference in New Issue
Block a user