CreatePrimitive/CreateMesh迁移到RenderFramework
This commit is contained in:
parent
93937c0394
commit
d384f06ee2
@ -115,13 +115,19 @@ namespace hgl
|
||||
graph::Primitive *CreatePrimitive( const AnsiString &name,
|
||||
const uint32_t vertices_count,
|
||||
const graph::VIL *vil,
|
||||
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list);
|
||||
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list)
|
||||
{
|
||||
return render_framework?render_framework->CreatePrimitive(name,vertices_count,vil,vad_list):nullptr; //创建Primitive
|
||||
}
|
||||
|
||||
graph::Mesh *CreateMesh(const AnsiString &name,
|
||||
const uint32_t vertices_count,
|
||||
graph::MaterialInstance *mi,
|
||||
graph::Pipeline *pipeline,
|
||||
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list);
|
||||
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list)
|
||||
{
|
||||
return render_framework?render_framework->CreateMesh(name,vertices_count,mi,pipeline,vad_list):nullptr; //创建Mesh
|
||||
}
|
||||
|
||||
public: //Component 相关
|
||||
|
||||
|
@ -130,6 +130,19 @@ public: // other
|
||||
|
||||
TileFont *CreateTileFont(FontSource *fs,int limit_count=-1); ///<创建只使用一种字符的Tile字符管理对象
|
||||
|
||||
public: // Primitive, Mesh
|
||||
|
||||
graph::Primitive *CreatePrimitive(const AnsiString &name,
|
||||
const uint32_t vertices_count,
|
||||
const graph::VIL *vil,
|
||||
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list);
|
||||
|
||||
graph::Mesh *CreateMesh(const AnsiString &name,
|
||||
const uint32_t vertices_count,
|
||||
graph::MaterialInstance *mi,
|
||||
graph::Pipeline *pipeline,
|
||||
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list);
|
||||
|
||||
public: // ComponentManager
|
||||
|
||||
template<typename T> T *GetComponentManager()
|
||||
|
@ -196,4 +196,43 @@ void RenderFramework::Tick()
|
||||
}
|
||||
}
|
||||
|
||||
graph::Primitive *RenderFramework::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);
|
||||
}
|
||||
}
|
||||
|
||||
auto *prim=pc->Create();
|
||||
|
||||
if(prim)
|
||||
render_resource->Add(prim);
|
||||
|
||||
return prim;
|
||||
}
|
||||
|
||||
graph::Mesh *RenderFramework::CreateMesh( const AnsiString &name,
|
||||
const uint32_t vertices_count,
|
||||
graph::MaterialInstance *mi,
|
||||
graph::Pipeline *pipeline,
|
||||
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list)
|
||||
{
|
||||
auto *prim=this->CreatePrimitive(name,vertices_count,mi->GetVIL(),vad_list);
|
||||
|
||||
if(!prim)
|
||||
return(nullptr);
|
||||
|
||||
return render_resource->CreateMesh(prim,mi,pipeline);
|
||||
}
|
||||
VK_NAMESPACE_END
|
||||
|
@ -60,44 +60,4 @@ 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);
|
||||
}
|
||||
}
|
||||
|
||||
auto *prim=pc->Create();
|
||||
|
||||
if(prim)
|
||||
db->Add(prim);
|
||||
|
||||
return prim;
|
||||
}
|
||||
|
||||
graph::Mesh *WorkObject::CreateMesh( const AnsiString &name,
|
||||
const uint32_t vertices_count,
|
||||
graph::MaterialInstance *mi,
|
||||
graph::Pipeline *pipeline,
|
||||
const std::initializer_list<graph::VertexAttribDataPtr> &vad_list)
|
||||
{
|
||||
auto *prim=this->CreatePrimitive(name,vertices_count,mi->GetVIL(),vad_list);
|
||||
|
||||
if(!prim)
|
||||
return(nullptr);
|
||||
|
||||
return db->CreateMesh(prim,mi,pipeline);
|
||||
}
|
||||
}//namespcae hgl
|
||||
|
Loading…
x
Reference in New Issue
Block a user