From 82b9563d9750b3a5288a002b3bcdf0c0dcdf85ac Mon Sep 17 00:00:00 2001 From: hyzboy Date: Mon, 27 May 2019 22:44:34 +0800 Subject: [PATCH] =?UTF-8?q?SceneDB=E5=A2=9E=E5=8A=A0CreateIBO=E7=B3=BB?= =?UTF-8?q?=E5=88=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- inc/hgl/graph/SceneDB.h | 9 +++++++++ src/SceneGraph/SceneDB.cpp | 9 +++++++++ 2 files changed, 18 insertions(+) diff --git a/inc/hgl/graph/SceneDB.h b/inc/hgl/graph/SceneDB.h index d4dba686..a6d624db 100644 --- a/inc/hgl/graph/SceneDB.h +++ b/inc/hgl/graph/SceneDB.h @@ -61,6 +61,15 @@ namespace hgl #undef SCENE_DB_CREATE_FUNC + + vulkan::IndexBuffer *CreateIBO(VkIndexType index_type,uint32_t count,const void *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE); + vulkan::IndexBuffer *CreateIBO16(uint32_t count,const uint16 *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT16,count,(void *)data,sharing_mode);} + vulkan::IndexBuffer *CreateIBO32(uint32_t count,const uint32 *data,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT32,count,(void *)data,sharing_mode);} + + vulkan::IndexBuffer *CreateIBO(VkIndexType index_type,uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(index_type,count,nullptr,sharing_mode);} + vulkan::IndexBuffer *CreateIBO16(uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT16,count,nullptr,sharing_mode);} + vulkan::IndexBuffer *CreateIBO32(uint32_t count,VkSharingMode sharing_mode=VK_SHARING_MODE_EXCLUSIVE){return CreateIBO(VK_INDEX_TYPE_UINT32,count,nullptr,sharing_mode);} + RenderableInstance * CreateRenderableInstance(vulkan::Pipeline *p,vulkan::DescriptorSets *ds,vulkan::Renderable *r); vulkan::Material * GetMaterial (const MaterialID &id){return rm_material.Get(id);} diff --git a/src/SceneGraph/SceneDB.cpp b/src/SceneGraph/SceneDB.cpp index b84f8017..17b43aa3 100644 --- a/src/SceneGraph/SceneDB.cpp +++ b/src/SceneGraph/SceneDB.cpp @@ -42,6 +42,15 @@ namespace hgl #undef SCENE_DB_CREATE_BUFFER + vulkan::IndexBuffer *SceneDB::CreateIBO(VkIndexType index_type,uint32_t count,const void *data,VkSharingMode sharing_mode) + { + vulkan::IndexBuffer *buf=device->CreateIBO(index_type,count,data,sharing_mode); + + if(!buf)return(nullptr); + rm_buffers.Add(buf); + return(buf); + } + RenderableInstance *SceneDB::CreateRenderableInstance(vulkan::Pipeline *p,vulkan::DescriptorSets *ds,vulkan::Renderable *r) { if(!p||!ds||!r)