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

View File

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

View File

@ -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<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:
};//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

View File

@ -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<hgl/graph/shader/param/in.h>
#include<hgl/graph/shader/node/node.h>
#include<hgl/type/Set.h>
#include<hgl/type/Pair.h>
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<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(); //断开所有输入节点
};//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

View File

@ -2,12 +2,9 @@
#define HGL_GRAPH_SHADER_PARAM_INCLUDE
#include<hgl/type/BaseString.h>
#include<hgl/graph/shader/common.h>
#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

View File

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

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
bool CreateDefaultMaterial()
{