create stand-alone shader common.h

This commit is contained in:
hyzboy 2019-12-10 22:12:09 +08:00
parent c37a858524
commit 5deb57460c
9 changed files with 52 additions and 41 deletions

View File

@ -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

View File

@ -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 #define HGL_GRAPH_SHADER_NODE_INPUT_INCLUDE
#include<hgl/graph/shader/node/node.h> #include<hgl/graph/shader/node/node.h>
@ -12,7 +12,7 @@ class Input:public Node
{ {
protected: protected:
ObjectList<InputParam> input_params; ObjectList<param::InputParam> input_params;
public: public:

View File

@ -3,24 +3,21 @@
#include<hgl/type/BaseString.h> #include<hgl/type/BaseString.h>
#include<hgl/type/List.h> #include<hgl/type/List.h>
#include<hgl/graph/shader/common.h>
#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 }}}}
BEGIN_SHADER_NODE_NAMESPACE BEGIN_SHADER_NODE_NAMESPACE
/** /**
* Shader Shader的基础 * Shader Shader的基础
*/ */
class Node class Node
{ {
UTF8String type_name; ///<节点类型本身的名称 UTF8String type_name; ///<节点类型本身的名称
UTF8String name; ///<节点用户自定义名称 UTF8String name; ///<节点用户自定义名称
public: public:
Node(const UTF8String &n){type_name=n;} Node(const UTF8String &n){type_name=n;}
virtual ~Node()=default; virtual ~Node()=default;
};//class Node };//class Node
END_SHADER_NODE_NAMESPACE END_SHADER_NODE_NAMESPACE
#endif//HGL_GRAPH_SHADER_NODE_INCLUDE #endif//HGL_GRAPH_SHADER_NODE_INCLUDE

View File

@ -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 #define HGL_GRAPH_SHADER_NODE_OUTPUT_INCLUDE
#include<hgl/graph/shader/node/node.h> #include<hgl/graph/shader/node/node.h>
#include<hgl/graph/shader/param/output.h> #include<hgl/graph/shader/param/out.h>
BEGIN_SHADER_NODE_NAMESPACE BEGIN_SHADER_NODE_NAMESPACE
/** /**
* *

View File

@ -1,11 +1,11 @@
#ifndef HGL_GRAPH_SHADER_INPUT_PARAM_INCLUDE #ifndef HGL_GRAPH_SHADER_PARAM_INPUT_INCLUDE
#define HGL_GRAPH_SHADER_INPUT_PARAM_INCLUDE #define HGL_GRAPH_SHADER_PARAM_INPUT_INCLUDE
#include<hgl/graph/shader/param/param.h> #include<hgl/graph/shader/param/param.h>
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: public:
};//class InputParamNumber:public InputParam };//class InputParamNumber:public InputParam
END_SHADER_NODE_NAMESPACE END_SHADER_PARAM_NAMESPACE
#endif//HGL_GRAPH_SHADER_INPUT_PARAM_INCLUDE #endif//#ifndef HGL_GRAPH_SHADER_PARAM_INPUT_INCLUDE

View File

@ -1,19 +1,19 @@
#ifndef HGL_GRAPH_SHADER_OUTPUT_PARAM_INCLUDE #ifndef HGL_GRAPH_SHADER_PARAM_OUTPUT_INCLUDE
#define HGL_GRAPH_SHADER_OUTPUT_PARAM_INCLUDE #define HGL_GRAPH_SHADER_PARAM_OUTPUT_INCLUDE
#include<hgl/graph/shader/param/in.h> #include<hgl/graph/shader/param/in.h>
#include<hgl/graph/shader/node/node.h> #include<hgl/graph/shader/node/node.h>
#include<hgl/type/Set.h> #include<hgl/type/Set.h>
#include<hgl/type/Pair.h> #include<hgl/type/Pair.h>
BEGIN_SHADER_NODE_NAMESPACE BEGIN_SHADER_PARAM_NAMESPACE
#define SHADER_OUTPUT_PARAM(name,type) output_params.Add(new Param(#name,ParamType::type));
using namespace hgl; using namespace hgl;
using InputNode=Pair<node::Node *,InputParam *>; using InputNode=Pair<node::Node *,InputParam *>;
#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(); //断开所有输入节点 void BreakAll(); //断开所有输入节点
};//class OutputParam:public Param };//class OutputParam:public Param
END_SHADER_NODE_NAMESPACE END_SHADER_PARAM_NAMESPACE
#endif//HGL_GRAPH_SHADER_OUTPUT_PARAM_INCLUDE #endif//HGL_GRAPH_SHADER_PARAM_OUTPUT_INCLUDE

View File

@ -2,12 +2,9 @@
#define HGL_GRAPH_SHADER_PARAM_INCLUDE #define HGL_GRAPH_SHADER_PARAM_INCLUDE
#include<hgl/type/BaseString.h> #include<hgl/type/BaseString.h>
#include<hgl/graph/shader/common.h>
#define SHADER_NAMESPACE hgl::graph::shader BEGIN_SHADER_PARAM_NAMESPACE
#define BEGIN_SHADER_NAMESPACE namespace hgl{namespace graph{namespace shader{
#define END_SHADER_NAMESPACE }}}
BEGIN_SHADER_NAMESPACE
/** /**
* *
*/ */
@ -90,5 +87,5 @@ BEGIN_SHADER_NAMESPACE
virtual ~Param()=default; virtual ~Param()=default;
};//class Param };//class Param
END_SHADER_NAMESPACE END_SHADER_PARAM_NAMESPACE
#endif//HGL_GRAPH_SHADER_PARAM_INCLUDE #endif//HGL_GRAPH_SHADER_PARAM_INCLUDE

View File

@ -19,7 +19,8 @@ SET(GRAPH_SPV_SOURCE ${GRAPH_SHADER_HEADER_PATH}/glsl2spv.h
SOURCE_GROUP("SPIR-V" FILES ${GRAPH_SPV_SOURCE}) 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_PARAM_HEADER_FILES}
${GRAPH_SHADER_MAKER_SOURCE} ${GRAPH_SHADER_MAKER_SOURCE}
${GRAPH_SPV_SOURCE}) ${GRAPH_SPV_SOURCE})

View File

@ -1,5 +1,5 @@
#include<hgl/graph/shader/node/finished.h> #include<hgl/graph/shader/param/out.h>
#include<hgl/graph/shader/node/finished.h>
BEGIN_SHADER_NAMESPACE BEGIN_SHADER_NAMESPACE
bool CreateDefaultMaterial() bool CreateDefaultMaterial()
{ {