From 5deb57460c80792cccb0fa391a6127d2191de65c Mon Sep 17 00:00:00 2001 From: hyzboy Date: Tue, 10 Dec 2019 22:12:09 +0800 Subject: [PATCH] create stand-alone shader common.h --- inc/hgl/graph/shader/common.h | 16 ++++++++++++++ inc/hgl/graph/shader/node/in.h | 4 ++-- inc/hgl/graph/shader/node/node.h | 27 ++++++++++------------- inc/hgl/graph/shader/node/out.h | 4 ++-- inc/hgl/graph/shader/param/in.h | 12 +++++----- inc/hgl/graph/shader/param/out.h | 14 ++++++------ inc/hgl/graph/shader/param/param.h | 9 +++----- src/RenderDevice/Shader/CMakeLists.txt | 3 ++- src/RenderDevice/Shader/DefaultShader.cpp | 4 ++-- 9 files changed, 52 insertions(+), 41 deletions(-) create mode 100644 inc/hgl/graph/shader/common.h diff --git a/inc/hgl/graph/shader/common.h b/inc/hgl/graph/shader/common.h new file mode 100644 index 00000000..48ecdc9d --- /dev/null +++ b/inc/hgl/graph/shader/common.h @@ -0,0 +1,16 @@ +#ifndef HGL_GRAPH_SHADER_COMMON_INCLUDE +#define HGL_GRAPH_SHADER_COMMON_INCLUDE + +#define SHADER_NAMESPACE hgl::graph::shader +#define BEGIN_SHADER_NAMESPACE namespace hgl{namespace graph{namespace shader{ +#define END_SHADER_NAMESPACE }}} + +#define SHADER_NODE_NAMESPACE hgl::graph::shader::node +#define BEGIN_SHADER_NODE_NAMESPACE namespace hgl{namespace graph{namespace shader{namespace node{ +#define END_SHADER_NODE_NAMESPACE }}}} + +#define SHADER_PARAM_NAMESPACE hgl::graph::shader::param +#define BEGIN_SHADER_PARAM_NAMESPACE namespace hgl{namespace graph{namespace shader{namespace param{ +#define END_SHADER_PARAM_NAMESPACE }}}} + +#endif//HGL_GRAPH_SHADER_COMMON_INCLUDE diff --git a/inc/hgl/graph/shader/node/in.h b/inc/hgl/graph/shader/node/in.h index 79f7bc58..e84d57aa 100644 --- a/inc/hgl/graph/shader/node/in.h +++ b/inc/hgl/graph/shader/node/in.h @@ -1,4 +1,4 @@ -#ifndef HGL_GRAPH_SHADER_NODE_INPUT_INCLUDE +#ifndef HGL_GRAPH_SHADER_NODE_INPUT_INCLUDE #define HGL_GRAPH_SHADER_NODE_INPUT_INCLUDE #include @@ -12,7 +12,7 @@ class Input:public Node { protected: - ObjectList input_params; + ObjectList input_params; public: diff --git a/inc/hgl/graph/shader/node/node.h b/inc/hgl/graph/shader/node/node.h index 247353c7..cd7c8bae 100644 --- a/inc/hgl/graph/shader/node/node.h +++ b/inc/hgl/graph/shader/node/node.h @@ -3,24 +3,21 @@ #include #include - -#define SHADER_NODE_NAMESPACE hgl::graph::shader::node -#define BEGIN_SHADER_NODE_NAMESPACE namespace hgl{namespace graph{namespace shader{namespace node{ -#define END_SHADER_NODE_NAMESPACE }}}} +#include BEGIN_SHADER_NODE_NAMESPACE - /** - * Shader 节点是所有Shader的基础,它可以是一个简单的计算,也可以是一段复杂的函数 - */ - class Node - { - UTF8String type_name; ///<节点类型本身的名称 - UTF8String name; ///<节点用户自定义名称 +/** + * Shader 节点是所有Shader的基础,它可以是一个简单的计算,也可以是一段复杂的函数 + */ +class Node +{ + UTF8String type_name; ///<节点类型本身的名称 + UTF8String name; ///<节点用户自定义名称 - public: +public: - Node(const UTF8String &n){type_name=n;} - virtual ~Node()=default; - };//class Node + Node(const UTF8String &n){type_name=n;} + virtual ~Node()=default; +};//class Node END_SHADER_NODE_NAMESPACE #endif//HGL_GRAPH_SHADER_NODE_INCLUDE diff --git a/inc/hgl/graph/shader/node/out.h b/inc/hgl/graph/shader/node/out.h index 12a56629..fdd2c5ed 100644 --- a/inc/hgl/graph/shader/node/out.h +++ b/inc/hgl/graph/shader/node/out.h @@ -1,8 +1,8 @@ -#ifndef HGL_GRAPH_SHADER_NODE_OUTPUT_INCLUDE +#ifndef HGL_GRAPH_SHADER_NODE_OUTPUT_INCLUDE #define HGL_GRAPH_SHADER_NODE_OUTPUT_INCLUDE #include -#include +#include BEGIN_SHADER_NODE_NAMESPACE /** * 纯输出节点,用于固定行为的向下一级节点输入数据,无输入部分 diff --git a/inc/hgl/graph/shader/param/in.h b/inc/hgl/graph/shader/param/in.h index 41026107..7fa6a089 100644 --- a/inc/hgl/graph/shader/param/in.h +++ b/inc/hgl/graph/shader/param/in.h @@ -1,11 +1,11 @@ -#ifndef HGL_GRAPH_SHADER_INPUT_PARAM_INCLUDE -#define HGL_GRAPH_SHADER_INPUT_PARAM_INCLUDE +#ifndef HGL_GRAPH_SHADER_PARAM_INPUT_INCLUDE +#define HGL_GRAPH_SHADER_PARAM_INPUT_INCLUDE #include -BEGIN_SHADER_NODE_NAMESPACE +BEGIN_SHADER_PARAM_NAMESPACE -#define SHADER_INPUT_PARAM(name,type) input_params.Add(new InputParam(#name,ParamType::type)); +#define SHADER_INPUT_PARAM(name,type) input_params.Add(new SHADER_PARAM_NAMESPACE::InputParam(#name,SHADER_PARAM_NAMESPACE::ParamType::type)); /** * 输入参数定义 @@ -31,5 +31,5 @@ class InputParamNumber:public InputParam public: };//class InputParamNumber:public InputParam -END_SHADER_NODE_NAMESPACE -#endif//HGL_GRAPH_SHADER_INPUT_PARAM_INCLUDE +END_SHADER_PARAM_NAMESPACE +#endif//#ifndef HGL_GRAPH_SHADER_PARAM_INPUT_INCLUDE diff --git a/inc/hgl/graph/shader/param/out.h b/inc/hgl/graph/shader/param/out.h index 3dcd0900..f8f8323f 100644 --- a/inc/hgl/graph/shader/param/out.h +++ b/inc/hgl/graph/shader/param/out.h @@ -1,19 +1,19 @@ -#ifndef HGL_GRAPH_SHADER_OUTPUT_PARAM_INCLUDE -#define HGL_GRAPH_SHADER_OUTPUT_PARAM_INCLUDE +#ifndef HGL_GRAPH_SHADER_PARAM_OUTPUT_INCLUDE +#define HGL_GRAPH_SHADER_PARAM_OUTPUT_INCLUDE #include #include #include #include -BEGIN_SHADER_NODE_NAMESPACE - -#define SHADER_OUTPUT_PARAM(name,type) output_params.Add(new Param(#name,ParamType::type)); +BEGIN_SHADER_PARAM_NAMESPACE using namespace hgl; using InputNode=Pair; +#define SHADER_OUTPUT_PARAM(name,type) output_params.Add(new SHADER_PARAM_NAMESPACE::Param(#name,SHADER_PARAM_NAMESPACE::ParamType::type)); + /** * 输出参数定义 */ @@ -31,5 +31,5 @@ public: void BreakAll(); //断开所有输入节点 };//class OutputParam:public Param -END_SHADER_NODE_NAMESPACE -#endif//HGL_GRAPH_SHADER_OUTPUT_PARAM_INCLUDE +END_SHADER_PARAM_NAMESPACE +#endif//HGL_GRAPH_SHADER_PARAM_OUTPUT_INCLUDE diff --git a/inc/hgl/graph/shader/param/param.h b/inc/hgl/graph/shader/param/param.h index 0d277074..6b920a36 100644 --- a/inc/hgl/graph/shader/param/param.h +++ b/inc/hgl/graph/shader/param/param.h @@ -2,12 +2,9 @@ #define HGL_GRAPH_SHADER_PARAM_INCLUDE #include +#include -#define SHADER_NAMESPACE hgl::graph::shader -#define BEGIN_SHADER_NAMESPACE namespace hgl{namespace graph{namespace shader{ -#define END_SHADER_NAMESPACE }}} - -BEGIN_SHADER_NAMESPACE +BEGIN_SHADER_PARAM_NAMESPACE /** * 参数类型 */ @@ -90,5 +87,5 @@ BEGIN_SHADER_NAMESPACE virtual ~Param()=default; };//class Param -END_SHADER_NAMESPACE +END_SHADER_PARAM_NAMESPACE #endif//HGL_GRAPH_SHADER_PARAM_INCLUDE diff --git a/src/RenderDevice/Shader/CMakeLists.txt b/src/RenderDevice/Shader/CMakeLists.txt index eb4780a9..d2702032 100644 --- a/src/RenderDevice/Shader/CMakeLists.txt +++ b/src/RenderDevice/Shader/CMakeLists.txt @@ -19,7 +19,8 @@ SET(GRAPH_SPV_SOURCE ${GRAPH_SHADER_HEADER_PATH}/glsl2spv.h SOURCE_GROUP("SPIR-V" FILES ${GRAPH_SPV_SOURCE}) -add_cm_library(ULRE.Shader "ULRE" ${GRAPH_SHADER_NODE_HEADER_FILES} +add_cm_library(ULRE.Shader "ULRE" ${GRAPH_SHADER_HEADER_PATH}/common.h + ${GRAPH_SHADER_NODE_HEADER_FILES} ${GRAPH_SHADER_PARAM_HEADER_FILES} ${GRAPH_SHADER_MAKER_SOURCE} ${GRAPH_SPV_SOURCE}) diff --git a/src/RenderDevice/Shader/DefaultShader.cpp b/src/RenderDevice/Shader/DefaultShader.cpp index fcbe46e3..208846b9 100644 --- a/src/RenderDevice/Shader/DefaultShader.cpp +++ b/src/RenderDevice/Shader/DefaultShader.cpp @@ -1,5 +1,5 @@ -#include - +#include +#include BEGIN_SHADER_NAMESPACE bool CreateDefaultMaterial() {