Created VertexInputData at VKRenderable.h

This commit is contained in:
2023-04-28 11:09:22 +08:00
parent b26e25df61
commit db0a8ee256
3 changed files with 64 additions and 42 deletions

View File

@@ -8,9 +8,25 @@
#include<hgl/graph/VKMaterialParameters.h>
#include<hgl/graph/VKMaterialInstance.h>
VK_NAMESPACE_BEGIN
struct VertexInputData
{
uint32_t count;
const char **name_list;
const VkVertexInputBindingDescription *bind_list;
const VkVertexInputAttributeDescription *attr_list;
VkBuffer *buffer_list;
VkDeviceSize *buffer_offset;
public:
VertexInputData(const VIL *vil);
~VertexInputData();
};
/**
* 可渲染对象<br>
* RenderList会统一管理Shader中的LocalToWorld数据使用DynamicUBO/DynamicSSBO实现。
*/
class Renderable ///可渲染对象实例
{
@@ -18,9 +34,7 @@ class Renderable
MaterialInstance * mat_inst;
Primitive * primitive;
uint32_t buffer_count;
VkBuffer * buffer_list;
VkDeviceSize * buffer_size;
VertexInputData * vertex_input_data;
uint32_t buffer_hash;
@@ -28,7 +42,7 @@ private:
friend Renderable *CreateRenderable(Primitive *,MaterialInstance *,Pipeline *);
Renderable(Primitive *,MaterialInstance *,Pipeline *,const uint32_t,VkBuffer *,VkDeviceSize *);
Renderable(Primitive *,MaterialInstance *,Pipeline *,VertexInputData *);
public:
@@ -43,9 +57,8 @@ public:
Primitive * GetPrimitive (){return primitive;}
const AABB & GetBoundingBox ()const{return primitive->GetBoundingBox();}
const uint32_t GetBufferCount ()const{return buffer_count;}
VkBuffer * GetBuffer ()const{return buffer_list;}
VkDeviceSize * GetBufferSize ()const{return buffer_size;}
const VertexInputData * GetVertexInputData ()const{return vertex_input_data;}
IndexBuffer * GetIndexBuffer ()const{return primitive->GetIndexBuffer();}
const uint32_t GetIndexBufferOffset()const{return primitive->GetIndexBufferOffset();}
const uint32_t GetDrawCount ()const{return primitive->GetDrawCount();}