Added VIL in Pipeline, add comp VIL in CreateRenderable
This commit is contained in:
parent
04b77cadf9
commit
107251c9ad
@ -13,6 +13,8 @@ class Pipeline
|
|||||||
AnsiString name;
|
AnsiString name;
|
||||||
|
|
||||||
VkPipeline pipeline;
|
VkPipeline pipeline;
|
||||||
|
|
||||||
|
const VIL *vil;
|
||||||
PipelineData *data;
|
PipelineData *data;
|
||||||
|
|
||||||
bool alpha_test;
|
bool alpha_test;
|
||||||
@ -22,12 +24,13 @@ private:
|
|||||||
|
|
||||||
friend class RenderPass;
|
friend class RenderPass;
|
||||||
|
|
||||||
Pipeline(const AnsiString &n,VkDevice dev,VkPipeline p,PipelineData *pd)
|
Pipeline(const AnsiString &n,VkDevice dev,VkPipeline p,const VIL *v,PipelineData *pd)
|
||||||
{
|
{
|
||||||
name=n;
|
name=n;
|
||||||
|
|
||||||
device=dev;
|
device=dev;
|
||||||
pipeline=p;
|
pipeline=p;
|
||||||
|
vil=v;
|
||||||
data=pd;
|
data=pd;
|
||||||
|
|
||||||
alpha_test=false;
|
alpha_test=false;
|
||||||
@ -42,6 +45,7 @@ public:
|
|||||||
|
|
||||||
operator VkPipeline(){return pipeline;}
|
operator VkPipeline(){return pipeline;}
|
||||||
|
|
||||||
|
const VIL *GetVIL()const{return vil;}
|
||||||
const PipelineData *GetData()const{return data;}
|
const PipelineData *GetData()const{return data;}
|
||||||
|
|
||||||
const bool IsAlphaTest()const{return data->alpha_test>0;}
|
const bool IsAlphaTest()const{return data->alpha_test>0;}
|
||||||
|
@ -53,10 +53,9 @@ Pipeline *RenderPass::CreatePipeline(const AnsiString &name,PipelineData *pd,con
|
|||||||
return(nullptr);
|
return(nullptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
return(new Pipeline(name,device,graphicsPipeline,pd));
|
return(new Pipeline(name,device,graphicsPipeline,vil,pd));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Pipeline *RenderPass::CreatePipeline(Material *mtl,const VIL *vil,const PipelineData *cpd,const Prim &prim,const bool prim_restart)
|
Pipeline *RenderPass::CreatePipeline(Material *mtl,const VIL *vil,const PipelineData *cpd,const Prim &prim,const bool prim_restart)
|
||||||
{
|
{
|
||||||
PipelineData *pd=new PipelineData(cpd);
|
PipelineData *pd=new PipelineData(cpd);
|
||||||
|
@ -60,6 +60,10 @@ Renderable *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
|||||||
if(!prim||!mi||!p)return(nullptr);
|
if(!prim||!mi||!p)return(nullptr);
|
||||||
|
|
||||||
const VIL *vil=mi->GetVIL();
|
const VIL *vil=mi->GetVIL();
|
||||||
|
|
||||||
|
if(vil->Comp(p->GetVIL()))
|
||||||
|
return(nullptr);
|
||||||
|
|
||||||
const uint32_t input_count=vil->GetVertexAttribCount(VertexInputGroup::Basic); //不统计Bone/LocalToWorld组的
|
const uint32_t input_count=vil->GetVertexAttribCount(VertexInputGroup::Basic); //不统计Bone/LocalToWorld组的
|
||||||
const UTF8String &mtl_name=mi->GetMaterial()->GetName();
|
const UTF8String &mtl_name=mi->GetMaterial()->GetName();
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user