From d660691cec3ef4345fdb1242462dd3da07d0646e Mon Sep 17 00:00:00 2001 From: "HuYingzhuo(hugo/hyzboy)" Date: Mon, 15 May 2023 22:05:21 +0800 Subject: [PATCH] added MFGetPosition.h --- inc/hgl/graph/mtl/2d/Material2DConfig.h | 6 +++--- src/ShaderGen/2d/VertexColor2D.cpp | 17 +--------------- src/ShaderGen/ShaderCreateInfo.cpp | 2 +- src/ShaderGen/common/MFCommon.h | 2 ++ src/ShaderGen/common/MFGetPosition.h | 26 +++++++++++++++++++++++++ 5 files changed, 33 insertions(+), 20 deletions(-) create mode 100644 src/ShaderGen/common/MFGetPosition.h diff --git a/inc/hgl/graph/mtl/2d/Material2DConfig.h b/inc/hgl/graph/mtl/2d/Material2DConfig.h index 7fedd5f9..12065bac 100644 --- a/inc/hgl/graph/mtl/2d/Material2DConfig.h +++ b/inc/hgl/graph/mtl/2d/Material2DConfig.h @@ -15,9 +15,9 @@ public: Material2DConfig(const AnsiString &name):MaterialConfig(name) { - rt_output.color=1; - rt_output.depth=false; - rt_output.stencil=false; + rt_output.color=1; //输出一个颜色 + rt_output.depth=false; //不输出深度 + rt_output.stencil=false; //不输出stencil coordinate_system=CoordinateSystem2D::NDC; local_to_world=false; diff --git a/src/ShaderGen/2d/VertexColor2D.cpp b/src/ShaderGen/2d/VertexColor2D.cpp index 75f71863..215ec521 100644 --- a/src/ShaderGen/2d/VertexColor2D.cpp +++ b/src/ShaderGen/2d/VertexColor2D.cpp @@ -13,23 +13,12 @@ MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *cfg) RANGE_CHECK_RETURN_NULLPTR(cfg->coordinate_system) - AnsiString mtl_name; - - const RenderTargetOutputConfig rtoc - { - 1, //输出一个颜色 - false, //不输出深度 - false //不输出stencil - }; - MaterialCreateInfo *mci=new MaterialCreateInfo(cfg); AnsiString sfComputePosition; if(cfg->coordinate_system==CoordinateSystem2D::Ortho) - { - mtl_name="VertexColor2DOrtho"; - + { mci->AddUBO(VK_SHADER_STAGE_VERTEX_BIT, DescriptorSetType::Global, SBS_ViewportInfo); @@ -39,14 +28,10 @@ MaterialCreateInfo *CreateVertexColor2D(const Material2DConfig *cfg) else if(cfg->coordinate_system==CoordinateSystem2D::ZeroToOne) { - mtl_name="VertexColor2DZeroToOne"; - sfComputePosition="vec4 ComputePosition(vec4 pos){return vec4(pos.xy*2-1,pos.z,pos.w);}"; } else { - mtl_name="VertexColor2DNDC"; - sfComputePosition="vec4 ComputePosition(vec4 pos){return pos;}"; } diff --git a/src/ShaderGen/ShaderCreateInfo.cpp b/src/ShaderGen/ShaderCreateInfo.cpp index 18cd2afc..c9edbc8a 100644 --- a/src/ShaderGen/ShaderCreateInfo.cpp +++ b/src/ShaderGen/ShaderCreateInfo.cpp @@ -270,7 +270,7 @@ bool ShaderCreateInfo::CreateShader(ShaderCreateInfo *last_sc) ProcOutput(); - for(uint i=0;i +#include +STD_MTL_NAMESPACE_BEGIN +namespace func +{ + constexpr const char *GetPosition2D[size_t(CoordinateSystem2D::RANGE_SIZE)]= + { + R"(vec4 GetPosition2D(vec4 pos) +{ + return pos; +})", + +R"(vec4 GetPosition2D(vec4 pos) +{ + return vec4(pos.xy*2-1,pos.z,pos.w); +})", + +R"(vec4 GetPosition2D(vec4 pos) +{ + return viewport.ortho_matrix*pos; +})" + }; +}//namespace func +STD_MTL_NAMESPACE_END