create stand-alone shader common.h
This commit is contained in:
parent
c37a858524
commit
5deb57460c
16
inc/hgl/graph/shader/common.h
Normal file
16
inc/hgl/graph/shader/common.h
Normal 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
|
@ -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:
|
||||
|
||||
|
@ -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
|
||||
{
|
||||
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
|
||||
|
@ -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
|
||||
/**
|
||||
* 纯输出节点,用于固定行为的向下一级节点输入数据,无输入部分
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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})
|
||||
|
@ -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()
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user