材质保存来自MaterialCreateInfo传递而来的PrimitiveType信息,并在创建Pipeline时传递.
减少在使用中的第二次手写传递,避免失误。
This commit is contained in:
@@ -24,6 +24,8 @@ class Material
|
||||
{
|
||||
AnsiString name;
|
||||
|
||||
PrimitiveType prim; ///<图元类型
|
||||
|
||||
VertexInput *vertex_input;
|
||||
|
||||
ShaderModuleMap *shader_maps;
|
||||
@@ -45,7 +47,7 @@ private:
|
||||
|
||||
friend class RenderResource;
|
||||
|
||||
Material(const AnsiString &);
|
||||
Material(const AnsiString &,const PrimitiveType &);
|
||||
|
||||
public:
|
||||
|
||||
@@ -53,6 +55,8 @@ public:
|
||||
|
||||
const AnsiString & GetName ()const{return name;}
|
||||
|
||||
const PrimitiveType & GetPrimitiveType ()const{return prim;}
|
||||
|
||||
const VertexInput * GetVertexInput ()const{return vertex_input;}
|
||||
|
||||
const ShaderStageCreateInfoList & GetStageList ()const{return shader_stage_list;}
|
||||
|
@@ -56,15 +56,15 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
Pipeline *CreatePipeline(Material *,const VIL *,const PipelineData *, const PrimitiveType &,const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(Material *,const VIL *,const InlinePipeline &, const PrimitiveType &,const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(Material *,const VIL *,const PipelineData *, const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(Material *,const VIL *,const InlinePipeline &, const bool prim_restart=false);
|
||||
|
||||
Pipeline *CreatePipeline(Material *mtl, const PipelineData *, const PrimitiveType &,const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(Material *mtl, const InlinePipeline &, const PrimitiveType &,const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(Material *mtl, const PipelineData *, const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(Material *mtl, const InlinePipeline &, const bool prim_restart=false);
|
||||
|
||||
Pipeline *CreatePipeline(MaterialInstance *, const InlinePipeline &, const PrimitiveType &,const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(MaterialInstance *, const PipelineData *, const PrimitiveType &,const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(MaterialInstance *, const OSString &, const PrimitiveType &,const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(MaterialInstance *, const InlinePipeline &, const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(MaterialInstance *, const PipelineData *, const bool prim_restart=false);
|
||||
Pipeline *CreatePipeline(MaterialInstance *, const OSString &, const bool prim_restart=false);
|
||||
};//class RenderPass
|
||||
VK_NAMESPACE_END
|
||||
#endif//HGL_GRAPH_VULKAN_RENDER_PASS_INCLUDE
|
||||
|
@@ -45,6 +45,8 @@ namespace hgl::graph
|
||||
|
||||
public:
|
||||
|
||||
const PrimitiveType GetPrimitiveType()const{return config->prim;}
|
||||
|
||||
const uint32 GetShaderStage ()const{return config->shader_stage_flag_bit;}
|
||||
|
||||
bool hasShader (const VkShaderStageFlagBits ss)const{return config->shader_stage_flag_bit&ss;}
|
||||
|
Reference in New Issue
Block a user