diff --git a/CMSceneGraph b/CMSceneGraph index dbc1852e..b5b673f8 160000 --- a/CMSceneGraph +++ b/CMSceneGraph @@ -1 +1 @@ -Subproject commit dbc1852e400fda52b358d72e5e7d4464f0e01ae0 +Subproject commit b5b673f8a65a0c1a8b4972f81e45122bad5155a5 diff --git a/example/2dVector/line.cpp b/example/2dVector/line.cpp index d3f6db1f..efa35a77 100644 --- a/example/2dVector/line.cpp +++ b/example/2dVector/line.cpp @@ -101,7 +101,7 @@ private: Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT); if(!render_obj)return(false); - if(!render_obj->Set(VAN::Position, db->CreateVAB(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); + if(!render_obj->Set(VAN::Position, db->CreateVBO(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); render_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline); return(true); diff --git a/example/Vulkan/DrawTile.cpp b/example/Vulkan/DrawTile.cpp index afe572ec..e4f07936 100644 --- a/example/Vulkan/DrawTile.cpp +++ b/example/Vulkan/DrawTile.cpp @@ -215,8 +215,8 @@ private: render_obj=db->CreateRenderable(tile_count); if(!render_obj)return(false); - render_obj->Set(VAN::Position,db->CreateVAB(VF_VEC4,tile_count,vertex_data)); - render_obj->Set(VAN::TexCoord,db->CreateVAB(VF_VEC4,tile_count,tex_coord_data)); + render_obj->Set(VAN::Position,db->CreateVBO(VF_VEC4,tile_count,vertex_data)); + render_obj->Set(VAN::TexCoord,db->CreateVBO(VF_VEC4,tile_count,tex_coord_data)); render_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline); diff --git a/example/Vulkan/FragCoordTest.cpp b/example/Vulkan/FragCoordTest.cpp index 9007db41..9a497218 100644 --- a/example/Vulkan/FragCoordTest.cpp +++ b/example/Vulkan/FragCoordTest.cpp @@ -78,7 +78,7 @@ private: auto render_obj=db->CreateRenderable(VERTEX_COUNT); if(!render_obj)return(false); - if(!render_obj->Set(VAN::Position,db->CreateVAB(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); + if(!render_obj->Set(VAN::Position,db->CreateVBO(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); renderable_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline); return(true); diff --git a/example/Vulkan/RectanglePrimitive.cpp b/example/Vulkan/RectanglePrimitive.cpp index bf91be72..245b79e3 100644 --- a/example/Vulkan/RectanglePrimitive.cpp +++ b/example/Vulkan/RectanglePrimitive.cpp @@ -109,8 +109,8 @@ private: if(!render_obj)return(false); - render_obj->Set(VAN::Position,db->CreateVAB(VF_VEC4,VERTEX_COUNT,vertex_data)); - render_obj->Set(VAN::TexCoord,db->CreateVAB(VF_VEC4,VERTEX_COUNT,tex_coord_data)); + render_obj->Set(VAN::Position,db->CreateVBO(VF_VEC4,VERTEX_COUNT,vertex_data)); + render_obj->Set(VAN::TexCoord,db->CreateVBO(VF_VEC4,VERTEX_COUNT,tex_coord_data)); render_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline); diff --git a/example/Vulkan/first_triangle.cpp b/example/Vulkan/first_triangle.cpp index b8f4d742..935b24b6 100644 --- a/example/Vulkan/first_triangle.cpp +++ b/example/Vulkan/first_triangle.cpp @@ -87,8 +87,8 @@ private: Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT); if(!render_obj)return(false); - if(!render_obj->Set(VAN::Position, db->CreateVAB(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); - if(!render_obj->Set(VAN::Color, db->CreateVAB(VF_VEC4,VERTEX_COUNT,color_data)))return(false); + if(!render_obj->Set(VAN::Position, db->CreateVBO(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); + if(!render_obj->Set(VAN::Color, db->CreateVBO(VF_VEC4,VERTEX_COUNT,color_data)))return(false); render_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline); return(true); diff --git a/example/Vulkan/indices_rect.cpp b/example/Vulkan/indices_rect.cpp index 6b1570ca..ed0e94ef 100644 --- a/example/Vulkan/indices_rect.cpp +++ b/example/Vulkan/indices_rect.cpp @@ -87,7 +87,7 @@ private: auto render_obj=db->CreateRenderable(VERTEX_COUNT); if(!render_obj)return(false); - if(!render_obj->Set(VAN::Position,db->CreateVAB(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); + if(!render_obj->Set(VAN::Position,db->CreateVBO(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); if(!render_obj->Set(db->CreateIBO16(INDEX_COUNT,index_data)))return(false); renderable_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline); diff --git a/example/Vulkan/texture_rect.cpp b/example/Vulkan/texture_rect.cpp index fa6739cf..85b1f61f 100644 --- a/example/Vulkan/texture_rect.cpp +++ b/example/Vulkan/texture_rect.cpp @@ -121,8 +121,8 @@ private: auto render_obj=db->CreateRenderable(VERTEX_COUNT); if(!render_obj)return(false); - if(!render_obj->Set(VAN::Position,db->CreateVAB(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); - if(!render_obj->Set(VAN::TexCoord,db->CreateVAB(VF_VEC2,VERTEX_COUNT,tex_coord_data)))return(false); + if(!render_obj->Set(VAN::Position,db->CreateVBO(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); + if(!render_obj->Set(VAN::TexCoord,db->CreateVBO(VF_VEC2,VERTEX_COUNT,tex_coord_data)))return(false); if(!render_obj->Set(db->CreateIBO16(INDEX_COUNT,index_data)))return(false); renderable_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline); diff --git a/example/Vulkan/two_triangle.cpp b/example/Vulkan/two_triangle.cpp index cfd7040a..1a680f5f 100644 --- a/example/Vulkan/two_triangle.cpp +++ b/example/Vulkan/two_triangle.cpp @@ -87,8 +87,8 @@ private: Renderable *render_obj=db->CreateRenderable(VERTEX_COUNT); if(!render_obj)return(false); - if(!render_obj->Set(VAN::Position, db->CreateVAB(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); - if(!render_obj->Set(VAN::Color, db->CreateVAB(VF_VEC4,VERTEX_COUNT,color_data)))return(false); + if(!render_obj->Set(VAN::Position, db->CreateVBO(VF_VEC2,VERTEX_COUNT,vertex_data)))return(false); + if(!render_obj->Set(VAN::Color, db->CreateVBO(VF_VEC4,VERTEX_COUNT,color_data)))return(false); render_instance=db->CreateRenderableInstance(render_obj,material_instance,pipeline); diff --git a/example/common/VulkanAppFramework.h b/example/common/VulkanAppFramework.h index 900a9c78..c30416d1 100644 --- a/example/common/VulkanAppFramework.h +++ b/example/common/VulkanAppFramework.h @@ -106,7 +106,7 @@ public: cili.lunarg.standard_validation = true; cili.khronos.validation = true; - //cili.RenderDoc.Capture = true; + cili.RenderDoc.Capture = true; inst=CreateInstance("VulkanTest",nullptr,&cili); diff --git a/inc/hgl/graph/RenderableCreater.h b/inc/hgl/graph/RenderableCreater.h index 7208803f..5e9be924 100644 --- a/inc/hgl/graph/RenderableCreater.h +++ b/inc/hgl/graph/RenderableCreater.h @@ -13,7 +13,7 @@ namespace hgl AnsiString name; uint binding; VAD * data =nullptr; - VAB * vab =nullptr; + VBO * vbo =nullptr; public: diff --git a/inc/hgl/graph/VK.h b/inc/hgl/graph/VK.h index 1be821da..c5497279 100644 --- a/inc/hgl/graph/VK.h +++ b/inc/hgl/graph/VK.h @@ -55,7 +55,7 @@ class GPUBuffer; struct GPUBufferData; class VertexAttribBuffer; -using VAB=VertexAttribBuffer; +using VBO=VertexAttribBuffer; class IndexBuffer; diff --git a/inc/hgl/graph/VKDevice.h b/inc/hgl/graph/VKDevice.h index c7f7d0d4..6844af09 100644 --- a/inc/hgl/graph/VKDevice.h +++ b/inc/hgl/graph/VKDevice.h @@ -113,9 +113,9 @@ public: //Buffer相关 GPUBuffer * CreateBuffer(VkBufferUsageFlags buf_usage, VkDeviceSize size,const void *data, SharingMode sm=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,size,data,sm);} GPUBuffer * CreateBuffer(VkBufferUsageFlags buf_usage, VkDeviceSize size, SharingMode sm=SharingMode::Exclusive){return CreateBuffer(buf_usage,size,size,nullptr,sm);} - VAB * CreateVAB (VkFormat format, uint32_t count,const void *data, SharingMode sm=SharingMode::Exclusive); - VAB * CreateVAB (VkFormat format, uint32_t count, SharingMode sm=SharingMode::Exclusive){return CreateVAB(format,count,nullptr,sm);} - VAB * CreateVAB (const VAD *vad, SharingMode sm=SharingMode::Exclusive){return CreateVAB(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),sm);} + VBO * CreateVBO (VkFormat format, uint32_t count,const void *data, SharingMode sm=SharingMode::Exclusive); + VBO * CreateVBO (VkFormat format, uint32_t count, SharingMode sm=SharingMode::Exclusive){return CreateVBO(format,count,nullptr,sm);} + VBO * CreateVBO (const VAD *vad, SharingMode sm=SharingMode::Exclusive){return CreateVBO(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),sm);} IndexBuffer * CreateIBO (IndexType type, uint32_t count,const void * data, SharingMode sm=SharingMode::Exclusive); IndexBuffer * CreateIBO16 ( uint32_t count,const uint16 *data, SharingMode sm=SharingMode::Exclusive){return CreateIBO(IndexType::U16, count,(void *)data,sm);} diff --git a/inc/hgl/graph/VKMaterial.h b/inc/hgl/graph/VKMaterial.h index 990135c0..59d9e523 100644 --- a/inc/hgl/graph/VKMaterial.h +++ b/inc/hgl/graph/VKMaterial.h @@ -15,7 +15,7 @@ struct MaterialData MaterialDescriptorSets *mds; VertexShaderModule *vertex_sm; - VertexAttributeBinding *vab; + VertexAttributeBinding *vbo; List shader_stage_list; @@ -63,7 +63,7 @@ public: const VkPipelineLayout GetPipelineLayout ()const; const PipelineLayoutData * GetPipelineLayoutData ()const{return data->pipeline_layout_data;} - const VertexAttributeBinding * GetVAB ()const{return data->vab;} + const VertexAttributeBinding * GetVBO ()const{return data->vbo;} public: diff --git a/inc/hgl/graph/VKRenderResource.h b/inc/hgl/graph/VKRenderResource.h index 863e9292..69ad166d 100644 --- a/inc/hgl/graph/VKRenderResource.h +++ b/inc/hgl/graph/VKRenderResource.h @@ -64,9 +64,9 @@ public: //Add public: // VBO/VAO - VAB *CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sm=SharingMode::Exclusive); - VAB *CreateVAB(VkFormat format,uint32_t count,SharingMode sm=SharingMode::Exclusive){return CreateVAB(format,count,nullptr,sm);} - VAB *CreateVAB(const VAD *vad,SharingMode sm=SharingMode::Exclusive){return CreateVAB(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),sm);} + VBO *CreateVBO(VkFormat format,uint32_t count,const void *data,SharingMode sm=SharingMode::Exclusive); + VBO *CreateVBO(VkFormat format,uint32_t count,SharingMode sm=SharingMode::Exclusive){return CreateVBO(format,count,nullptr,sm);} + VBO *CreateVBO(const VAD *vad,SharingMode sm=SharingMode::Exclusive){return CreateVBO(vad->GetVulkanFormat(),vad->GetCount(),vad->GetData(),sm);} #define SCENE_DB_CREATE_FUNC(name) GPUBuffer *Create##name(VkDeviceSize size,void *data,SharingMode sm=SharingMode::Exclusive); \ GPUBuffer *Create##name(VkDeviceSize size,SharingMode sm=SharingMode::Exclusive); diff --git a/inc/hgl/graph/VKRenderable.h b/inc/hgl/graph/VKRenderable.h index e651791f..94d3f032 100644 --- a/inc/hgl/graph/VKRenderable.h +++ b/inc/hgl/graph/VKRenderable.h @@ -16,7 +16,7 @@ class Renderable { struct VABData { - VAB *buf; + VBO *buf; VkDeviceSize offset; public: @@ -56,7 +56,7 @@ public: void SetBoundingBox(const AABB &aabb){BoundingBox=aabb;} const AABB &GetBoundingBox()const {return BoundingBox;} - bool Set(const UTF8String &name,VAB *vb,VkDeviceSize offset=0); + bool Set(const UTF8String &name,VBO *vb,VkDeviceSize offset=0); bool Set(IndexBuffer *ib,VkDeviceSize offset=0) { @@ -78,7 +78,7 @@ public: return draw_count; } - VAB * GetVAB (const UTF8String &,VkDeviceSize *); + VBO * GetVBO (const UTF8String &,VkDeviceSize *); VkBuffer GetBuffer (const UTF8String &,VkDeviceSize *); const int GetBufferCount ()const {return buffer_list.GetCount();} diff --git a/inc/hgl/graph/VKVertexAttribBuffer.h b/inc/hgl/graph/VKVertexAttribBuffer.h index 7c497051..59f4ced6 100644 --- a/inc/hgl/graph/VKVertexAttribBuffer.h +++ b/inc/hgl/graph/VKVertexAttribBuffer.h @@ -38,7 +38,7 @@ namespace hgl } };//class VertexAttribBuffer:public GPUBuffer - using VAB=VertexAttribBuffer; + using VBO=VertexAttribBuffer; }//namespace graph }//namespace hgl #endif//HGL_GRAPH_VULKAN_VERTEX_ATTRIB_BUFFER_INCLUDE diff --git a/inc/hgl/graph/font/TextLayout.h b/inc/hgl/graph/font/TextLayout.h index 3bb4bba0..6e1aabaa 100644 --- a/inc/hgl/graph/font/TextLayout.h +++ b/inc/hgl/graph/font/TextLayout.h @@ -141,7 +141,7 @@ namespace hgl protected: TextRenderable *text_render_obj; - MemBlock vertex; + MemBlock vertex; MemBlock tex_coord; public: diff --git a/inc/hgl/graph/font/TextRenderable.h b/inc/hgl/graph/font/TextRenderable.h index cddad0de..68aa9410 100644 --- a/inc/hgl/graph/font/TextRenderable.h +++ b/inc/hgl/graph/font/TextRenderable.h @@ -11,13 +11,13 @@ namespace hgl */ class TextRenderable:public Renderable { - GPUDevice * device; + GPUDevice * device; Material * mtl; uint max_count; ///<缓冲区最大容量 - VAB * vab_position; - VAB * vab_tex_coord; + VBO * vbo_position; + VBO * vbo_tex_coord; public: @@ -28,7 +28,7 @@ namespace hgl void SetCharCount (const uint); - bool WriteVertex (const float *fp); + bool WriteVertex (const int16 *fp); bool WriteTexCoord (const float *fp); };//class TextRenderable:public Renderable }//namespace graph diff --git a/res b/res index c2797623..10431c5b 160000 --- a/res +++ b/res @@ -1 +1 @@ -Subproject commit c279762326b8ca91368cb4a607230de5d9d3ff79 +Subproject commit 10431c5bb52464f73911c503e236baa3d0663037 diff --git a/src/SceneGraph/RenderableCreater.cpp b/src/SceneGraph/RenderableCreater.cpp index 51d2ab88..a691e1a1 100644 --- a/src/SceneGraph/RenderableCreater.cpp +++ b/src/SceneGraph/RenderableCreater.cpp @@ -39,7 +39,7 @@ namespace hgl ssb->name =name; ssb->binding=ss->binding; - ssb->vab =nullptr; + ssb->vbo =nullptr; vab_maps.Add(name,ssb); @@ -85,7 +85,7 @@ namespace hgl ssb->name =name; ssb->binding=ss->binding; - ssb->vab =db->CreateVAB(ss->format,vertices_number,data); + ssb->vbo =db->CreateVBO(ss->format,vertices_number,data); vab_maps.Add(name,ssb); @@ -120,10 +120,10 @@ namespace hgl const auto *sp=vab_maps.GetDataList(); for(uint i=0;iright->vab) - render_obj->Set((*sp)->left,(*sp)->right->vab); + if((*sp)->right->vbo) + render_obj->Set((*sp)->left,(*sp)->right->vbo); else - render_obj->Set((*sp)->left,db->CreateVAB((*sp)->right->data)); + render_obj->Set((*sp)->left,db->CreateVBO((*sp)->right->data)); ++sp; } diff --git a/src/SceneGraph/Vulkan/VKDeviceBuffer.cpp b/src/SceneGraph/Vulkan/VKDeviceBuffer.cpp index e0307d70..aa90ee62 100644 --- a/src/SceneGraph/Vulkan/VKDeviceBuffer.cpp +++ b/src/SceneGraph/Vulkan/VKDeviceBuffer.cpp @@ -49,7 +49,7 @@ bool GPUDevice::CreateBuffer(GPUBufferData *buf,VkBufferUsageFlags buf_usage,VkD return(false); } -VAB *GPUDevice::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode) +VBO *GPUDevice::CreateVBO(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode) { const uint32_t stride=GetStrideByFormat(format); diff --git a/src/SceneGraph/Vulkan/VKDeviceCreater.cpp b/src/SceneGraph/Vulkan/VKDeviceCreater.cpp index bd23c965..eddada29 100644 --- a/src/SceneGraph/Vulkan/VKDeviceCreater.cpp +++ b/src/SceneGraph/Vulkan/VKDeviceCreater.cpp @@ -378,9 +378,16 @@ namespace std::cout<<" deviceType: "<(pdp.pipelineCacheUUID); + if(memcmp(pdp.pipelineCacheUUID,"rdoc",4)==0) + { + std::cout<<"pipelineCahceUUID: "<<(char *)pdp.pipelineCacheUUID<(pdp.pipelineCacheUUID); - std::cout<<"pipelineCahceUUID: "<shader_maps =shader_maps; data->mds =mds; data->vertex_sm =(VertexShaderModule *)vsm; - data->vab =data->vertex_sm->CreateVertexAttributeBinding(); + data->vbo =data->vertex_sm->CreateVertexAttributeBinding(); CreateShaderStageList(data->shader_stage_list,shader_maps); diff --git a/src/SceneGraph/Vulkan/VKMaterial.cpp b/src/SceneGraph/Vulkan/VKMaterial.cpp index db6ba3d3..32e97431 100644 --- a/src/SceneGraph/Vulkan/VKMaterial.cpp +++ b/src/SceneGraph/Vulkan/VKMaterial.cpp @@ -9,10 +9,10 @@ MaterialData::~MaterialData() SAFE_CLEAR(mp.r); SAFE_CLEAR(mp.g); - if(vab) + if(vbo) { - vertex_sm->Release(vab); - delete vab; + vertex_sm->Release(vbo); + delete vbo; } delete shader_maps; diff --git a/src/SceneGraph/Vulkan/VKRenderPass.cpp b/src/SceneGraph/Vulkan/VKRenderPass.cpp index 0db129f1..34dd50d8 100644 --- a/src/SceneGraph/Vulkan/VKRenderPass.cpp +++ b/src/SceneGraph/Vulkan/VKRenderPass.cpp @@ -27,13 +27,13 @@ Pipeline *RenderPass::CreatePipeline(const Material *material,PipelineData *data { VkPipeline graphicsPipeline; - const VertexAttributeBinding *vab=material->GetVAB(); + const VertexAttributeBinding *vbo=material->GetVBO(); data->InitVertexInputState( material->GetStageCount(), material->GetStages(), - vab->GetVertexAttrCount(), - vab->GetVertexBindingList(), - vab->GetVertexAttributeList()); + vbo->GetVertexAttrCount(), + vbo->GetVertexBindingList(), + vbo->GetVertexAttributeList()); data->SetColorAttachments(color_formats.GetCount()); diff --git a/src/SceneGraph/Vulkan/VKRenderResource.cpp b/src/SceneGraph/Vulkan/VKRenderResource.cpp index e7208731..a96924f5 100644 --- a/src/SceneGraph/Vulkan/VKRenderResource.cpp +++ b/src/SceneGraph/Vulkan/VKRenderResource.cpp @@ -5,9 +5,9 @@ #include VK_NAMESPACE_BEGIN -VAB *RenderResource::CreateVAB(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode) +VBO *RenderResource::CreateVBO(VkFormat format,uint32_t count,const void *data,SharingMode sharing_mode) { - VAB *vb=device->CreateVAB(format,count,data,sharing_mode); + VBO *vb=device->CreateVBO(format,count,data,sharing_mode); if(!vb) return(nullptr); diff --git a/src/SceneGraph/Vulkan/VKRenderable.cpp b/src/SceneGraph/Vulkan/VKRenderable.cpp index 64890a0a..a776b61c 100644 --- a/src/SceneGraph/Vulkan/VKRenderable.cpp +++ b/src/SceneGraph/Vulkan/VKRenderable.cpp @@ -22,21 +22,21 @@ VK_NAMESPACE_BEGIN // return(true); //} -bool Renderable::Set(const UTF8String &name,VAB *vab,VkDeviceSize offset) +bool Renderable::Set(const UTF8String &name,VBO *vbo,VkDeviceSize offset) { - if(!vab)return(false); + if(!vbo)return(false); if(buffer_list.KeyExist(name))return(false); VABData bd; - bd.buf=vab; + bd.buf=vbo; bd.offset=offset; buffer_list.Add(name,bd); return(true); } -VAB *Renderable::GetVAB(const UTF8String &name,VkDeviceSize *offset) +VBO *Renderable::GetVBO(const UTF8String &name,VkDeviceSize *offset) { if(!offset)return(nullptr); if(name.IsEmpty())return(nullptr); @@ -54,9 +54,9 @@ VAB *Renderable::GetVAB(const UTF8String &name,VkDeviceSize *offset) VkBuffer Renderable::GetBuffer(const UTF8String &name,VkDeviceSize *offset) { - VAB *vab=GetVAB(name,offset); + VBO *vbo=GetVBO(name,offset); - if(vab)return vab->GetBuffer(); + if(vbo)return vbo->GetBuffer(); return(VK_NULL_HANDLE); } diff --git a/src/SceneGraph/Vulkan/VKRenderableInstance.cpp b/src/SceneGraph/Vulkan/VKRenderableInstance.cpp index b2fb1f9a..b4d6aeb0 100644 --- a/src/SceneGraph/Vulkan/VKRenderableInstance.cpp +++ b/src/SceneGraph/Vulkan/VKRenderableInstance.cpp @@ -6,7 +6,6 @@ #include VK_NAMESPACE_BEGIN - using namespace util; RenderableInstance::RenderableInstance(Renderable *r,MaterialInstance *mi,Pipeline *p,const uint32_t count,VkBuffer *bl,VkDeviceSize *bs) @@ -57,7 +56,7 @@ RenderableInstance *CreateRenderableInstance(Renderable *r,MaterialInstance *mi, ShaderStage **ss=ssl.GetData(); - VAB *vab; + VBO *vbo; const VkVertexInputBindingDescription *desc; const VkVertexInputAttributeDescription *attr; @@ -66,35 +65,35 @@ RenderableInstance *CreateRenderableInstance(Renderable *r,MaterialInstance *mi, desc=vsm->GetDesc(i); attr=vsm->GetAttr(i); - vab=r->GetVAB((*ss)->name,buffer_size+i); + vbo=r->GetVBO((*ss)->name,buffer_size+i); - if(!vab) + if(!vbo) { - LOG_ERROR("[FATAL ERROR] can't find VAB \""+(*ss)->name+"\" in Material: "+mtl->GetName()); + LOG_ERROR("[FATAL ERROR] can't find VBO \""+(*ss)->name+"\" in Material: "+mtl->GetName()); return(nullptr); } - if(vab->GetFormat()!=attr->format) + if(vbo->GetFormat()!=attr->format) { - LOG_ERROR( "[FATAL ERROR] VAB \""+(*ss)->name+ + LOG_ERROR( "[FATAL ERROR] VBO \""+(*ss)->name+ UTF8String("\" format can't match Renderable, Material(")+mtl->GetName()+ UTF8String(") Format(")+GetVulkanFormatName(attr->format)+ - UTF8String("), VAB Format(")+GetVulkanFormatName(vab->GetFormat())+ + UTF8String("), VBO Format(")+GetVulkanFormatName(vbo->GetFormat())+ ")"); return(nullptr); } - if(vab->GetStride()!=desc->stride) + if(vbo->GetStride()!=desc->stride) { - LOG_ERROR( "[FATAL ERROR] VAB \""+(*ss)->name+ + LOG_ERROR( "[FATAL ERROR] VBO \""+(*ss)->name+ UTF8String("\" stride can't match Renderable, Material(")+mtl->GetName()+ UTF8String(") stride(")+UTF8String::valueOf(desc->stride)+ - UTF8String("), VAB stride(")+UTF8String::valueOf(vab->GetStride())+ + UTF8String("), VBO stride(")+UTF8String::valueOf(vbo->GetStride())+ ")"); return(nullptr); } - buffer_list[i]=vab->GetBuffer(); + buffer_list[i]=vbo->GetBuffer(); ++ss; } diff --git a/src/SceneGraph/font/TextLayout.cpp b/src/SceneGraph/font/TextLayout.cpp index 73ab927b..908b0ed4 100644 --- a/src/SceneGraph/font/TextLayout.cpp +++ b/src/SceneGraph/font/TextLayout.cpp @@ -173,7 +173,7 @@ namespace hgl int cur_size=0; int left=0,top=0; - float *tp=vertex; + int16 *tp=vertex; float *tcp=tex_coord; for(int i=0;iCreateVAB(VF_VEC4,max_count); - Set(VAN::Position,vab_position); + vbo_position =device->CreateVBO(PF_RGBA16I,max_count); + Set(VAN::Position,vbo_position); } { - if(vab_tex_coord) - delete vab_tex_coord; + if(vbo_tex_coord) + delete vbo_tex_coord; - vab_tex_coord =device->CreateVAB(VF_VEC4,max_count); - Set(VAN::TexCoord,vab_tex_coord); + vbo_tex_coord =device->CreateVBO(VF_VEC4,max_count); + Set(VAN::TexCoord,vbo_tex_coord); } } - bool TextRenderable::WriteVertex (const float *fp){if(!fp)return(false);if(!vab_position )return(false);return vab_position ->Write(fp,draw_count*4*sizeof(float));} - bool TextRenderable::WriteTexCoord (const float *fp){if(!fp)return(false);if(!vab_tex_coord)return(false);return vab_tex_coord ->Write(fp,draw_count*4*sizeof(float));} + bool TextRenderable::WriteVertex (const int16 *fp){if(!fp)return(false);if(!vbo_position )return(false);return vbo_position ->Write(fp,draw_count*4*sizeof(int16));} + bool TextRenderable::WriteTexCoord (const float *fp){if(!fp)return(false);if(!vbo_tex_coord)return(false);return vbo_tex_coord ->Write(fp,draw_count*4*sizeof(float));} }//namespace graph }//namespace hgl