Added WorkObject::CreatePrimitive function.

This commit is contained in:
hyzboy 2025-03-14 00:17:19 +08:00
parent 7306581616
commit b6a92e8cd3
2 changed files with 32 additions and 6 deletions

View File

@ -78,11 +78,16 @@ namespace hgl
return db->CreateMaterialInstance(mci,vil_cfg);
}
graph::Renderable *CreateRenderable( const AnsiString &name,
uint32_t vertices_count,
graph::MaterialInstance *mi,
graph::Pipeline *pipeline,
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list);
graph::Primitive *CreatePrimitive( const AnsiString &name,
const uint32_t vertices_count,
const graph::VIL *vil,
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list);
graph::Renderable *CreateRenderable(const AnsiString &name,
const uint32_t vertices_count,
graph::MaterialInstance *mi,
graph::Pipeline *pipeline,
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list);
};//class WorkObject
/**

View File

@ -74,8 +74,29 @@ namespace hgl
//std::cout<<"WorkObject::Render End"<<std::endl;
}
graph::Primitive *WorkObject::CreatePrimitive(const AnsiString &name,
const uint32_t vertices_count,
const graph::VIL *vil,
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list)
{
auto *pc=new graph::PrimitiveCreater(GetDevice(),vil);
pc->Init(name,vertices_count);
for(const auto &vad:vad_list)
{
if(!pc->WriteVAB(vad.name,vad.format,vad.data))
{
delete pc;
return(nullptr);
}
}
return pc->Create();
}
graph::Renderable *WorkObject::CreateRenderable( const AnsiString &name,
uint32_t vertices_count,
const uint32_t vertices_count,
graph::MaterialInstance *mi,
graph::Pipeline *pipeline,
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list)