1.added RenderTargetOutputConfig at MaterialCreateInfo.
2.added MaterialInstance's data at MaterialCreateInfo.
This commit is contained in:
parent
004504e027
commit
9c956e1c65
@ -9,19 +9,29 @@
|
||||
#include<hgl/graph/VKSamplerType.h>
|
||||
|
||||
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; ///<MaterialInstance代码
|
||||
uint32_t mi_length; ///<MaterialInstance长度
|
||||
|
||||
ShaderCreateInfoMap shader_map; ///<着色器列表
|
||||
|
||||
ShaderCreateInfoVertex *vert;
|
||||
@ -49,9 +59,23 @@ public:
|
||||
|
||||
public:
|
||||
|
||||
MaterialCreateInfo(const AnsiString &,const uint rc,const bool rd,const uint32 ss=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
MaterialCreateInfo(const AnsiString &,const RenderTargetOutputConfig &,const uint32 ss=VK_SHADER_STAGE_VERTEX_BIT|VK_SHADER_STAGE_FRAGMENT_BIT);
|
||||
~MaterialCreateInfo()=default;
|
||||
|
||||
bool SetMaterialInstance(const AnsiString &codes,const uint32_t length)
|
||||
{
|
||||
if(length>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)
|
||||
{
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user