added newly CreateMaterialInstance that include MIData
This commit is contained in:
parent
77b0266cdc
commit
ae88a65315
@ -38,11 +38,9 @@ private:
|
|||||||
|
|
||||||
for(uint i=0;i<3;i++)
|
for(uint i=0;i<3;i++)
|
||||||
{
|
{
|
||||||
material_instance[i]=db->CreateMaterialInstance(material);
|
|
||||||
|
|
||||||
GridColor=GetColor4f(ce,1.0);
|
GridColor=GetColor4f(ce,1.0);
|
||||||
|
|
||||||
material_instance[i]->WriteMIData(GridColor);
|
material_instance[i]=db->CreateMaterialInstance(material,nullptr,&GridColor);
|
||||||
|
|
||||||
ce=COLOR((int)ce+1);
|
ce=COLOR((int)ce+1);
|
||||||
}
|
}
|
||||||
|
@ -57,13 +57,11 @@ private:
|
|||||||
material=db->LoadMaterial("Std3D/VertexLum3D",&cfg);
|
material=db->LoadMaterial("Std3D/VertexLum3D",&cfg);
|
||||||
if(!material)return(false);
|
if(!material)return(false);
|
||||||
|
|
||||||
mi_plane_grid=db->CreateMaterialInstance(material);
|
mi_plane_grid=db->CreateMaterialInstance(material,nullptr,&white_color);
|
||||||
if(!mi_plane_grid)return(false);
|
if(!mi_plane_grid)return(false);
|
||||||
mi_plane_grid->WriteMIData(white_color);
|
|
||||||
|
|
||||||
mi_line=db->CreateMaterialInstance(material);
|
mi_line=db->CreateMaterialInstance(material,nullptr,&yellow_color);
|
||||||
if(!mi_line)return(false);
|
if(!mi_line)return(false);
|
||||||
mi_line->WriteMIData(yellow_color);
|
|
||||||
|
|
||||||
pipeline=CreatePipeline(material,InlinePipeline::Solid3D,Prim::Lines);
|
pipeline=CreatePipeline(material,InlinePipeline::Solid3D,Prim::Lines);
|
||||||
|
|
||||||
|
@ -112,6 +112,15 @@ public: //Material
|
|||||||
Material * LoadMaterial(const AnsiString &,mtl::Material3DCreateConfig *);
|
Material * LoadMaterial(const AnsiString &,mtl::Material3DCreateConfig *);
|
||||||
|
|
||||||
MaterialInstance * CreateMaterialInstance(Material *,const VILConfig *vil_cfg=nullptr);
|
MaterialInstance * CreateMaterialInstance(Material *,const VILConfig *vil_cfg=nullptr);
|
||||||
|
|
||||||
|
MaterialInstance * CreateMaterialInstance(Material *,const VILConfig *vil_cfg,const void *,const int);
|
||||||
|
|
||||||
|
template<typename T>
|
||||||
|
MaterialInstance * CreateMaterialInstance(Material *mtl,const VILConfig *vil_cfg,const T *data)
|
||||||
|
{
|
||||||
|
return CreateMaterialInstance(mtl,vil_cfg,*data,sizeof(T));
|
||||||
|
}
|
||||||
|
|
||||||
MaterialInstance * CreateMaterialInstance(const mtl::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr);
|
MaterialInstance * CreateMaterialInstance(const mtl::MaterialCreateInfo *,const VILConfig *vil_cfg=nullptr);
|
||||||
|
|
||||||
Primitive * CreatePrimitive(const uint32_t vertex_count=0);
|
Primitive * CreatePrimitive(const uint32_t vertex_count=0);
|
||||||
|
@ -62,6 +62,22 @@ MaterialInstance *RenderResource::CreateMaterialInstance(Material *mtl,const VIL
|
|||||||
return mi;
|
return mi;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MaterialInstance *RenderResource::CreateMaterialInstance(Material *mtl,const VILConfig *vil_cfg,const void *mi_data,const int mi_bytes)
|
||||||
|
{
|
||||||
|
if(!mtl)return(nullptr);
|
||||||
|
if(!mi_data||mi_bytes<=0)return(nullptr);
|
||||||
|
|
||||||
|
MaterialInstance *mi=mtl->CreateMI(vil_cfg);
|
||||||
|
|
||||||
|
if(!mi)
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
|
Add(mi);
|
||||||
|
mi->WriteMIData(mi_data,mi_bytes);
|
||||||
|
|
||||||
|
return mi;
|
||||||
|
}
|
||||||
|
|
||||||
MaterialInstance *RenderResource::CreateMaterialInstance(const mtl::MaterialCreateInfo *mci,const VILConfig *vil_cfg)
|
MaterialInstance *RenderResource::CreateMaterialInstance(const mtl::MaterialCreateInfo *mci,const VILConfig *vil_cfg)
|
||||||
{
|
{
|
||||||
Material *mtl=this->CreateMaterial(mci);
|
Material *mtl=this->CreateMaterial(mci);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user