renamed to VBO instead of VAD in PrimitiveCreater

This commit is contained in:
hyzboy 2024-04-03 09:13:06 +08:00
parent 6efb50c977
commit d41530dad3
3 changed files with 45 additions and 45 deletions

View File

@ -48,7 +48,7 @@ namespace hgl
virtual bool Init(const uint32 vertices_count); ///<初始化,参数为顶点数量 virtual bool Init(const uint32 vertices_count); ///<初始化,参数为顶点数量
template<typename T> template<typename T>
T * AccessVAD(const AnsiString &name) ///<创建一个顶点属性数据缓冲区以及访问器 T * AccessVBO(const AnsiString &name) ///<创建一个顶点属性数据缓冲区以及访问器
{ {
const VkFormat format=vil->GetVulkanFormat(name); const VkFormat format=vil->GetVulkanFormat(name);
@ -67,7 +67,7 @@ namespace hgl
return access; return access;
} }
bool WriteVAD(const AnsiString &name,const void *data,const uint32_t bytes); ///<直接写入顶点属性数据 bool WriteVBO(const AnsiString &name,const void *data,const uint32_t bytes); ///<直接写入顶点属性数据
template<typename T,IndexType IT> template<typename T,IndexType IT>
T * CreateIBO(const uint count,const T *data=nullptr) ///<创建索引缓冲区 T * CreateIBO(const uint count,const T *data=nullptr) ///<创建索引缓冲区

View File

@ -21,7 +21,7 @@ namespace hgl
if(!rc.Init(4)) if(!rc.Init(4))
return(nullptr); return(nullptr);
AutoDelete<VB2f> vertex=rc.AccessVAD<VB2f>(VAN::Position); AutoDelete<VB2f> vertex=rc.AccessVBO<VB2f>(VAN::Position);
if(!vertex) if(!vertex)
return(nullptr); return(nullptr);
@ -49,7 +49,7 @@ namespace hgl
if(!rc.Init(4)) if(!rc.Init(4))
return(nullptr); return(nullptr);
AutoDelete<VB2f> vertex=rc.AccessVAD<VB2f>(VAN::Position); AutoDelete<VB2f> vertex=rc.AccessVBO<VB2f>(VAN::Position);
vertex->WriteRectFan(rci->scope); vertex->WriteRectFan(rci->scope);
} }
@ -63,7 +63,7 @@ namespace hgl
if(!rc.Init(rci->round_per*4)) if(!rc.Init(rci->round_per*4))
return(nullptr); return(nullptr);
AutoDelete<VB2f> vertex=rc.AccessVAD<VB2f>(VAN::Position); AutoDelete<VB2f> vertex=rc.AccessVBO<VB2f>(VAN::Position);
Vector2f *coord=new Vector2f[rci->round_per]; Vector2f *coord=new Vector2f[rci->round_per];
@ -131,8 +131,8 @@ namespace hgl
if(!rc.Init(cci->field_count))return(nullptr); if(!rc.Init(cci->field_count))return(nullptr);
} }
AutoDelete<VB2f> vertex=rc.AccessVAD<VB2f>(VAN::Position); AutoDelete<VB2f> vertex=rc.AccessVBO<VB2f>(VAN::Position);
AutoDelete<VB4f> color=rc.AccessVAD<VB4f>(VAN::Color); AutoDelete<VB4f> color=rc.AccessVBO<VB4f>(VAN::Color);
if(!vertex) if(!vertex)
return(nullptr); return(nullptr);
@ -169,7 +169,7 @@ namespace hgl
if(!rc.Init(((pgci->grid_size.Width()+1)+(pgci->grid_size.Height()+1))*2)) if(!rc.Init(((pgci->grid_size.Width()+1)+(pgci->grid_size.Height()+1))*2))
return(nullptr); return(nullptr);
AutoDelete<VB3f> vertex=rc.AccessVAD<VB3f>(VAN::Position); AutoDelete<VB3f> vertex=rc.AccessVBO<VB3f>(VAN::Position);
const float right=float(pgci->grid_size.Width())/2.0f; const float right=float(pgci->grid_size.Width())/2.0f;
const float left =-right; const float left =-right;
@ -189,7 +189,7 @@ namespace hgl
Vector3f(left+col,bottom,0)); Vector3f(left+col,bottom,0));
} }
AutoDelete<VB1f> lum=rc.AccessVAD<VB1f>(VAN::Luminance); AutoDelete<VB1f> lum=rc.AccessVBO<VB1f>(VAN::Luminance);
if(lum) if(lum)
{ {
for(int row=0;row<=pgci->grid_size.Height();row++) for(int row=0;row<=pgci->grid_size.Height();row++)
@ -224,22 +224,22 @@ namespace hgl
if(!rc.Init(4)) if(!rc.Init(4))
return(nullptr); return(nullptr);
rc.WriteVAD(VAN::Position,xy_vertices,sizeof(xy_vertices)); rc.WriteVBO(VAN::Position,xy_vertices,sizeof(xy_vertices));
{ {
AutoDelete<VB3f> normal=rc.AccessVAD<VB3f>(VAN::Normal); AutoDelete<VB3f> normal=rc.AccessVBO<VB3f>(VAN::Normal);
if(normal)normal->RepeatWrite(xy_normal,4); if(normal)normal->RepeatWrite(xy_normal,4);
} }
{ {
AutoDelete<VB3f> tangent=rc.AccessVAD<VB3f>(VAN::Tangent); AutoDelete<VB3f> tangent=rc.AccessVBO<VB3f>(VAN::Tangent);
if(tangent)tangent->RepeatWrite(xy_tangent,4); if(tangent)tangent->RepeatWrite(xy_tangent,4);
} }
{ {
AutoDelete<VB2f> tex_coord=rc.AccessVAD<VB2f>(VAN::TexCoord); AutoDelete<VB2f> tex_coord=rc.AccessVBO<VB2f>(VAN::TexCoord);
if(tex_coord) if(tex_coord)
tex_coord->Write(xy_tex_coord,4); tex_coord->Write(xy_tex_coord,4);
@ -306,22 +306,22 @@ namespace hgl
if(!rc.Init(24)) if(!rc.Init(24))
return(nullptr); return(nullptr);
rc.WriteVAD(VAN::Position,positions,sizeof(positions)); rc.WriteVBO(VAN::Position,positions,sizeof(positions));
if(cci->normal) if(cci->normal)
rc.WriteVAD(VAN::Normal,normals,sizeof(normals)); rc.WriteVBO(VAN::Normal,normals,sizeof(normals));
if(cci->tangent) if(cci->tangent)
rc.WriteVAD(VAN::Tangent,tangents,sizeof(tangents)); rc.WriteVBO(VAN::Tangent,tangents,sizeof(tangents));
if(cci->tex_coord) if(cci->tex_coord)
rc.WriteVAD(VAN::TexCoord,tex_coords,sizeof(tex_coords)); rc.WriteVBO(VAN::TexCoord,tex_coords,sizeof(tex_coords));
if(cci->color_type!=CubeCreateInfo::ColorType::NoColor) if(cci->color_type!=CubeCreateInfo::ColorType::NoColor)
{ {
RANGE_CHECK_RETURN_NULLPTR(cci->color_type); RANGE_CHECK_RETURN_NULLPTR(cci->color_type);
AutoDelete<VB4f> color=rc.AccessVAD<VB4f>(VAN::Color); AutoDelete<VB4f> color=rc.AccessVBO<VB4f>(VAN::Color);
if(color) if(color)
{ {
@ -459,10 +459,10 @@ namespace hgl
if(!rc.Init(numberVertices)) if(!rc.Init(numberVertices))
return(nullptr); return(nullptr);
AutoDelete<VB3f> vertex=rc.AccessVAD<VB3f>(VAN::Position); AutoDelete<VB3f> vertex=rc.AccessVBO<VB3f>(VAN::Position);
AutoDelete<VB3f> normal=rc.AccessVAD<VB3f>(VAN::Normal); AutoDelete<VB3f> normal=rc.AccessVBO<VB3f>(VAN::Normal);
AutoDelete<VB3f> tangent=rc.AccessVAD<VB3f>(VAN::Tangent); AutoDelete<VB3f> tangent=rc.AccessVBO<VB3f>(VAN::Tangent);
AutoDelete<VB2f> tex_coord=rc.AccessVAD<VB2f>(VAN::TexCoord); AutoDelete<VB2f> tex_coord=rc.AccessVBO<VB2f>(VAN::TexCoord);
float *vp=vertex->Get(); float *vp=vertex->Get();
float *np=normal?normal->Get():nullptr; float *np=normal?normal->Get():nullptr;
@ -540,10 +540,10 @@ namespace hgl
if(!rc.Init(numberVertices)) if(!rc.Init(numberVertices))
return(nullptr); return(nullptr);
AutoDelete<VB3f> vertex=rc.AccessVAD<VB3f>(VAN::Position); AutoDelete<VB3f> vertex=rc.AccessVBO<VB3f>(VAN::Position);
AutoDelete<VB3f> normal=rc.AccessVAD<VB3f>(VAN::Normal); AutoDelete<VB3f> normal=rc.AccessVBO<VB3f>(VAN::Normal);
AutoDelete<VB3f> tangent=rc.AccessVAD<VB3f>(VAN::Tangent); AutoDelete<VB3f> tangent=rc.AccessVBO<VB3f>(VAN::Tangent);
AutoDelete<VB2f> tex_coord=rc.AccessVAD<VB2f>(VAN::TexCoord); AutoDelete<VB2f> tex_coord=rc.AccessVBO<VB2f>(VAN::TexCoord);
float *vp=vertex->Get(); float *vp=vertex->Get();
float *np=normal?normal->Get():nullptr; float *np=normal?normal->Get():nullptr;
@ -677,10 +677,10 @@ namespace hgl
if(!rc.Init(numberVertices)) if(!rc.Init(numberVertices))
return(nullptr); return(nullptr);
AutoDelete<VB3f> vertex=rc.AccessVAD<VB3f>(VAN::Position); AutoDelete<VB3f> vertex=rc.AccessVBO<VB3f>(VAN::Position);
AutoDelete<VB3f> normal=rc.AccessVAD<VB3f>(VAN::Normal); AutoDelete<VB3f> normal=rc.AccessVBO<VB3f>(VAN::Normal);
AutoDelete<VB3f> tangent=rc.AccessVAD<VB3f>(VAN::Tangent); AutoDelete<VB3f> tangent=rc.AccessVBO<VB3f>(VAN::Tangent);
AutoDelete<VB2f> tex_coord=rc.AccessVAD<VB2f>(VAN::TexCoord); AutoDelete<VB2f> tex_coord=rc.AccessVBO<VB2f>(VAN::TexCoord);
float *vp=vertex->Get(); float *vp=vertex->Get();
float *np=normal?normal->Get():nullptr; float *np=normal?normal->Get():nullptr;
@ -812,10 +812,10 @@ namespace hgl
if (cci->numberSlices < 3 || numberVertices > GLUS_MAX_VERTICES || numberIndices > GLUS_MAX_INDICES) if (cci->numberSlices < 3 || numberVertices > GLUS_MAX_VERTICES || numberIndices > GLUS_MAX_INDICES)
return nullptr; return nullptr;
AutoDelete<VB3f> vertex=rc.AccessVAD<VB3f>(VAN::Position); AutoDelete<VB3f> vertex=rc.AccessVBO<VB3f>(VAN::Position);
AutoDelete<VB3f> normal=rc.AccessVAD<VB3f>(VAN::Normal); AutoDelete<VB3f> normal=rc.AccessVBO<VB3f>(VAN::Normal);
AutoDelete<VB3f> tangent=rc.AccessVAD<VB3f>(VAN::Tangent); AutoDelete<VB3f> tangent=rc.AccessVBO<VB3f>(VAN::Tangent);
AutoDelete<VB2f> tex_coord=rc.AccessVAD<VB2f>(VAN::TexCoord); AutoDelete<VB2f> tex_coord=rc.AccessVBO<VB2f>(VAN::TexCoord);
float *vp=vertex->Get(); float *vp=vertex->Get();
float *np=normal?normal->Get():nullptr; float *np=normal?normal->Get():nullptr;
@ -1034,10 +1034,10 @@ namespace hgl
if (cci->numberSlices < 3 || cci->numberStacks < 1 || numberVertices > GLUS_MAX_VERTICES || numberIndices > GLUS_MAX_INDICES) if (cci->numberSlices < 3 || cci->numberStacks < 1 || numberVertices > GLUS_MAX_VERTICES || numberIndices > GLUS_MAX_INDICES)
return nullptr; return nullptr;
AutoDelete<VB3f> vertex=rc.AccessVAD<VB3f>(VAN::Position); AutoDelete<VB3f> vertex=rc.AccessVBO<VB3f>(VAN::Position);
AutoDelete<VB3f> normal=rc.AccessVAD<VB3f>(VAN::Normal); AutoDelete<VB3f> normal=rc.AccessVBO<VB3f>(VAN::Normal);
AutoDelete<VB3f> tangent=rc.AccessVAD<VB3f>(VAN::Tangent); AutoDelete<VB3f> tangent=rc.AccessVBO<VB3f>(VAN::Tangent);
AutoDelete<VB2f> tex_coord=rc.AccessVAD<VB2f>(VAN::TexCoord); AutoDelete<VB2f> tex_coord=rc.AccessVBO<VB2f>(VAN::TexCoord);
float *vp=vertex->Get(); float *vp=vertex->Get();
float *np=normal?normal->Get():nullptr; float *np=normal?normal->Get():nullptr;
@ -1148,8 +1148,8 @@ namespace hgl
if(!rc.Init(6)) if(!rc.Init(6))
return(nullptr); return(nullptr);
AutoDelete<VB3f> vertex=rc.AccessVAD<VB3f>(VAN::Position); AutoDelete<VB3f> vertex=rc.AccessVBO<VB3f>(VAN::Position);
AutoDelete<VB4f> color=rc.AccessVAD<VB4f>(VAN::Color); AutoDelete<VB4f> color=rc.AccessVBO<VB4f>(VAN::Color);
if(!vertex||!color) if(!vertex||!color)
return(nullptr); return(nullptr);
@ -1193,17 +1193,17 @@ namespace hgl
if(!rc.Init(8)) if(!rc.Init(8))
return(nullptr); return(nullptr);
AutoDelete<VB3f> vertex=rc.AccessVAD<VB3f>(VAN::Position); AutoDelete<VB3f> vertex=rc.AccessVBO<VB3f>(VAN::Position);
if(!vertex)return(nullptr); if(!vertex)return(nullptr);
rc.WriteVAD(VAN::Position,points,sizeof(points)); rc.WriteVBO(VAN::Position,points,sizeof(points));
if(cci->color_type!=BoundingBoxCreateInfo::ColorType::NoColor) if(cci->color_type!=BoundingBoxCreateInfo::ColorType::NoColor)
{ {
RANGE_CHECK_RETURN_NULLPTR(cci->color_type); RANGE_CHECK_RETURN_NULLPTR(cci->color_type);
AutoDelete<VB4f> color=rc.AccessVAD<VB4f>(VAN::Color); AutoDelete<VB4f> color=rc.AccessVBO<VB4f>(VAN::Color);
if(color) if(color)
{ {

View File

@ -53,7 +53,7 @@ namespace hgl
return pvb; return pvb;
} }
bool PrimitiveCreater::WriteVAD(const AnsiString &name,const void *data,const uint32_t bytes) bool PrimitiveCreater::WriteVBO(const AnsiString &name,const void *data,const uint32_t bytes)
{ {
if(!vil)return(false); if(!vil)return(false);
if(name.IsEmpty())return(false); if(name.IsEmpty())return(false);