WorkObject增加GetPrimitiveCreater函数,并连带更新BillboardTest/PlaneGrid3D

This commit is contained in:
hyzboy 2025-06-10 23:46:19 +08:00
parent 6635d33461
commit 73027ffd9a
3 changed files with 16 additions and 8 deletions

View File

@ -130,7 +130,7 @@ private:
using namespace inline_geometry; using namespace inline_geometry;
{ {
PrimitiveCreater pc(GetDevice(),mi_plane_grid->GetVIL()); auto pc=GetPrimitiveCreater(mi_plane_grid);
struct PlaneGridCreateInfo pgci; struct PlaneGridCreateInfo pgci;
@ -140,18 +140,18 @@ private:
pgci.lum=128; pgci.lum=128;
pgci.sub_lum=192; pgci.sub_lum=192;
prim_plane_grid=CreatePlaneGrid2D(&pc,&pgci); prim_plane_grid=CreatePlaneGrid2D(pc,&pgci);
} }
{ {
PrimitiveCreater pc(GetDevice(),mi_billboard->GetVIL()); auto pc=GetPrimitiveCreater(mi_billboard);
pc.Init("Billboard",1); pc->Init("Billboard",1);
if(!pc.WriteVAB(VAN::Position,VF_V3F,position_data)) if(!pc->WriteVAB(VAN::Position,VF_V3F,position_data))
return(false); return(false);
ro_billboard=db->CreateMesh(&pc,mi_billboard,pipeline_billboard); ro_billboard=db->CreateMesh(pc,mi_billboard,pipeline_billboard);
if(!ro_billboard) if(!ro_billboard)
return(false); return(false);

View File

@ -69,9 +69,9 @@ private:
pgci.lum=180; pgci.lum=180;
pgci.sub_lum=255; pgci.sub_lum=255;
PrimitiveCreater pc(GetDevice(),material_instance[0]->GetVIL()); auto pc=GetPrimitiveCreater(material_instance[0]);
prim_plane_grid=CreatePlaneGrid2D(&pc,&pgci); prim_plane_grid=CreatePlaneGrid2D(pc,&pgci);
return prim_plane_grid; return prim_plane_grid;
} }

View File

@ -94,6 +94,14 @@ namespace hgl
return db->CreateMaterialInstance(mtl_name,mci,vil_cfg); return db->CreateMaterialInstance(mtl_name,mci,vil_cfg);
} }
AutoDelete<graph::PrimitiveCreater> GetPrimitiveCreater(graph::MaterialInstance *mi)
{
if(!mi)
return(nullptr);
return(new graph::PrimitiveCreater(GetDevice(),mi->GetVIL()));
}
graph::Primitive *CreatePrimitive( const AnsiString &name, graph::Primitive *CreatePrimitive( const AnsiString &name,
const uint32_t vertices_count, const uint32_t vertices_count,
const graph::VIL *vil, const graph::VIL *vil,