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;
|
||||
|
||||
VkPipeline pipeline;
|
||||
|
||||
const VIL *vil;
|
||||
PipelineData *data;
|
||||
|
||||
bool alpha_test;
|
||||
@ -22,12 +24,13 @@ private:
|
||||
|
||||
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;
|
||||
|
||||
device=dev;
|
||||
pipeline=p;
|
||||
vil=v;
|
||||
data=pd;
|
||||
|
||||
alpha_test=false;
|
||||
@ -42,6 +45,7 @@ public:
|
||||
|
||||
operator VkPipeline(){return pipeline;}
|
||||
|
||||
const VIL *GetVIL()const{return vil;}
|
||||
const PipelineData *GetData()const{return data;}
|
||||
|
||||
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(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)
|
||||
{
|
||||
PipelineData *pd=new PipelineData(cpd);
|
||||
|
@ -60,6 +60,10 @@ Renderable *CreateRenderable(Primitive *prim,MaterialInstance *mi,Pipeline *p)
|
||||
if(!prim||!mi||!p)return(nullptr);
|
||||
|
||||
const VIL *vil=mi->GetVIL();
|
||||
|
||||
if(vil->Comp(p->GetVIL()))
|
||||
return(nullptr);
|
||||
|
||||
const uint32_t input_count=vil->GetVertexAttribCount(VertexInputGroup::Basic); //不统计Bone/LocalToWorld组的
|
||||
const UTF8String &mtl_name=mi->GetMaterial()->GetName();
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user