From b5a5cb16c026f7d922e3ac478eb595f0d31fd0d7 Mon Sep 17 00:00:00 2001 From: hyzboy Date: Mon, 9 Jun 2025 22:47:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=8E=92=E7=89=88=E4=B8=8E?= =?UTF-8?q?=E8=A1=A5=E9=BD=90=E6=9C=AA=E5=88=9D=E5=A7=8B=E5=8C=96=E5=8F=98?= =?UTF-8?q?=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/SceneGraph/Vulkan/VKPrimitiveData.cpp | 23 ++++++++++++----------- src/SceneGraph/Vulkan/VKPrimitiveData.h | 2 +- 2 files changed, 13 insertions(+), 12 deletions(-) diff --git a/src/SceneGraph/Vulkan/VKPrimitiveData.cpp b/src/SceneGraph/Vulkan/VKPrimitiveData.cpp index 72c2cbd8..9ede45b9 100644 --- a/src/SceneGraph/Vulkan/VKPrimitiveData.cpp +++ b/src/SceneGraph/Vulkan/VKPrimitiveData.cpp @@ -12,6 +12,7 @@ PrimitiveData::PrimitiveData(const VIL *_vil,const uint32_t vc) vil=_vil; vertex_count=vc; + index_count=0; vab_list=hgl_zero_new(_vil->GetVertexAttribCount()); vab_map_list=new VABMap[_vil->GetVertexAttribCount()]; @@ -60,7 +61,7 @@ VAB *PrimitiveData::InitVAB(const int vab_index,const void *data) vab_list[vab_index]=CreateVAB(vab_index,vif->format,data); if(!vab_list[vab_index]) - return(nullptr); + return(nullptr); } else { @@ -73,7 +74,7 @@ VAB *PrimitiveData::InitVAB(const int vab_index,const void *data) VABMap *PrimitiveData::GetVABMap(const int vab_index) { if(vab_index<0||vab_index>=vil->GetVertexAttribCount())return nullptr; - + VABMap *vab_map=vab_map_list+vab_index; if(!vab_map->IsValid()) @@ -86,8 +87,8 @@ VABMap *PrimitiveData::GetVABMap(const int vab_index) return vab_map; } - -IndexBuffer *PrimitiveData::InitIBO(const uint32_t ic,IndexType it) + +IndexBuffer *PrimitiveData::InitIBO(const int ic,IndexType it) { if(ibo)delete ibo; @@ -105,7 +106,7 @@ IndexBuffer *PrimitiveData::InitIBO(const uint32_t ic,IndexType it) void PrimitiveData::UnmapAll() { - for(int i=0;iGetVertexAttribCount();i++) + for(uint32_t i=0;iGetVertexAttribCount();i++) vab_map_list[i].Unmap(); ibo_map.Unmap(); @@ -151,12 +152,12 @@ namespace } IndexBuffer *CreateIBO(const uint32_t ic,const IndexType &it) override - { + { if(!device)return(nullptr); return device->CreateIBO(it,ic); } - + VAB *CreateVAB(const int vab_index,const VkFormat format,const void *data) override { if(!device)return(nullptr); @@ -177,9 +178,9 @@ namespace public: - int32_t GetVertexOffset()const override { return vab_node->GetStart(); } - uint32_t GetFirstIndex ()const override { return ib_node->GetStart(); } - VertexDataManager * GetVDM()const override{return vdm;} ///<取得顶点数据管理器 + int32_t GetVertexOffset ()const override{return vab_node->GetStart();} + uint32_t GetFirstIndex ()const override{return ib_node->GetStart();} + VertexDataManager * GetVDM ()const override{return vdm;} ///<取得顶点数据管理器 public: @@ -199,7 +200,7 @@ namespace if(vab_node) vdm->ReleaseVAB(vab_node); } - + IndexBuffer *CreateIBO(const uint32_t ic,const IndexType &it) override { if(!vdm) diff --git a/src/SceneGraph/Vulkan/VKPrimitiveData.h b/src/SceneGraph/Vulkan/VKPrimitiveData.h index c82d1995..79d335ad 100644 --- a/src/SceneGraph/Vulkan/VKPrimitiveData.h +++ b/src/SceneGraph/Vulkan/VKPrimitiveData.h @@ -54,7 +54,7 @@ public: VAB * InitVAB (const int vab_index,const void *data); VABMap * GetVABMap (const int vab_index); - IndexBuffer * InitIBO(const uint32_t index_count,IndexType it); + IndexBuffer * InitIBO (const int index_count,IndexType it); IndexBuffer * GetIBO (){return ibo;} IBMap * GetIBMap (){return &ibo_map;} uint32_t GetIndexCount ()const{return index_count;}