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>
|
#include<hgl/graph/VKSamplerType.h>
|
||||||
|
|
||||||
namespace hgl{namespace graph{
|
namespace hgl{namespace graph{
|
||||||
|
|
||||||
|
struct RenderTargetOutputConfig
|
||||||
|
{
|
||||||
|
uint color;
|
||||||
|
bool depth;
|
||||||
|
bool stencil;
|
||||||
|
};
|
||||||
|
|
||||||
class MaterialCreateInfo
|
class MaterialCreateInfo
|
||||||
{
|
{
|
||||||
AnsiString shader_name;
|
AnsiString shader_name;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
uint rt_color_count; ///<输出的RT数量
|
RenderTargetOutputConfig rto_cfg; ///<输出配置
|
||||||
bool rt_depth; ///<是否输出深度
|
|
||||||
|
|
||||||
uint32_t shader_stage; ///<着色器阶段
|
uint32_t shader_stage; ///<着色器阶段
|
||||||
|
|
||||||
MaterialDescriptorInfo mdi; ///<材质描述符管理器
|
MaterialDescriptorInfo mdi; ///<材质描述符管理器
|
||||||
|
|
||||||
|
AnsiString mi_codes; ///<MaterialInstance代码
|
||||||
|
uint32_t mi_length; ///<MaterialInstance长度
|
||||||
|
|
||||||
ShaderCreateInfoMap shader_map; ///<着色器列表
|
ShaderCreateInfoMap shader_map; ///<着色器列表
|
||||||
|
|
||||||
ShaderCreateInfoVertex *vert;
|
ShaderCreateInfoVertex *vert;
|
||||||
@ -49,9 +59,23 @@ public:
|
|||||||
|
|
||||||
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;
|
~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 AnsiString &ubo_typename,const AnsiString &codes);
|
||||||
bool AddStruct(const ShaderBufferSource &ss)
|
bool AddStruct(const ShaderBufferSource &ss)
|
||||||
{
|
{
|
||||||
|
@ -13,9 +13,14 @@ MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *cfg)
|
|||||||
|
|
||||||
AnsiString mtl_name;
|
AnsiString mtl_name;
|
||||||
|
|
||||||
MaterialCreateInfo *mci=new MaterialCreateInfo( mtl_name, ///<名称
|
const RenderTargetOutputConfig rtoc
|
||||||
1, ///<最终一个RT输出
|
{
|
||||||
false); ///<无深度输出
|
1, //输出一个颜色
|
||||||
|
false, //不输出深度
|
||||||
|
false //不输出stencil
|
||||||
|
};
|
||||||
|
|
||||||
|
MaterialCreateInfo *mci=new MaterialCreateInfo(mtl_name,rtoc);
|
||||||
|
|
||||||
AnsiString sfComputePosition;
|
AnsiString sfComputePosition;
|
||||||
|
|
||||||
|
@ -5,12 +5,11 @@ using namespace hgl;
|
|||||||
using namespace hgl::graph;
|
using namespace hgl::graph;
|
||||||
|
|
||||||
namespace hgl{namespace 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;
|
shader_name=n;
|
||||||
|
|
||||||
rt_color_count=rc;
|
rto_cfg=cfg;
|
||||||
rt_depth=rd;
|
|
||||||
|
|
||||||
shader_stage=ss;
|
shader_stage=ss;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user