From 9c956e1c6501f8b12e8a042fcee6bc0435de465b Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Wed, 10 May 2023 11:26:42 +0800 Subject: [PATCH] 1.added RenderTargetOutputConfig at MaterialCreateInfo. 2.added MaterialInstance's data at MaterialCreateInfo. --- inc/hgl/shadergen/MaterialCreateInfo.h | 30 +++++++++++++++++++++++--- src/ShaderGen/2d/VertexColor2D.cpp | 11 +++++++--- src/ShaderGen/MaterialCreateInfo.cpp | 5 ++--- 3 files changed, 37 insertions(+), 9 deletions(-) diff --git a/inc/hgl/shadergen/MaterialCreateInfo.h b/inc/hgl/shadergen/MaterialCreateInfo.h index 157586fa..a60b2e91 100644 --- a/inc/hgl/shadergen/MaterialCreateInfo.h +++ b/inc/hgl/shadergen/MaterialCreateInfo.h @@ -9,19 +9,29 @@ #include namespace hgl{namespace graph{ + +struct RenderTargetOutputConfig +{ + uint color; + bool depth; + bool stencil; +}; + class MaterialCreateInfo { AnsiString shader_name; protected: - uint rt_color_count; ///<输出的RT数量 - bool rt_depth; ///<是否输出深度 + RenderTargetOutputConfig rto_cfg; ///<输出配置 uint32_t shader_stage; ///<着色器阶段 MaterialDescriptorInfo mdi; ///<材质描述符管理器 + AnsiString mi_codes; ///64)return(false); + + if(length>0&&codes.Length()<4)return(false); + + mi_length=length; + + if(length>0) + mi_codes=codes; + + return(true); + } + bool AddStruct(const AnsiString &ubo_typename,const AnsiString &codes); bool AddStruct(const ShaderBufferSource &ss) { diff --git a/src/ShaderGen/2d/VertexColor2D.cpp b/src/ShaderGen/2d/VertexColor2D.cpp index fde6da3f..85f453b7 100644 --- a/src/ShaderGen/2d/VertexColor2D.cpp +++ b/src/ShaderGen/2d/VertexColor2D.cpp @@ -13,9 +13,14 @@ MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *cfg) AnsiString mtl_name; - MaterialCreateInfo *mci=new MaterialCreateInfo( mtl_name, ///<名称 - 1, ///<最终一个RT输出 - false); ///<无深度输出 + const RenderTargetOutputConfig rtoc + { + 1, //输出一个颜色 + false, //不输出深度 + false //不输出stencil + }; + + MaterialCreateInfo *mci=new MaterialCreateInfo(mtl_name,rtoc); AnsiString sfComputePosition; diff --git a/src/ShaderGen/MaterialCreateInfo.cpp b/src/ShaderGen/MaterialCreateInfo.cpp index 53762faa..53cb93fb 100644 --- a/src/ShaderGen/MaterialCreateInfo.cpp +++ b/src/ShaderGen/MaterialCreateInfo.cpp @@ -5,12 +5,11 @@ using namespace hgl; using namespace hgl::graph; namespace hgl{namespace graph{ -MaterialCreateInfo::MaterialCreateInfo(const AnsiString &n,const uint rc,const bool rd,const uint32 ss) +MaterialCreateInfo::MaterialCreateInfo(const AnsiString &n,const RenderTargetOutputConfig &cfg,const uint32 ss) { shader_name=n; - rt_color_count=rc; - rt_depth=rd; + rto_cfg=cfg; shader_stage=ss;