ULRE/inc/hgl/graph/shader/ShaderNode.h

81 lines
1.9 KiB
C
Raw Normal View History

2019-12-06 21:45:51 +08:00
#ifndef HGL_SHADER_NODE_INCLUDE
#define HGL_SHADER_NODE_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 }}}}
BEGIN_SHADER_NODE_NAMESPACE
/**
* Shader Shader的基础
*/
class Node
{
UTF8String type_name; ///<节点类型本身的名称
UTF8String name; ///<节点用户自定义名称
public:
Node(const UTF8String &n){type_name=n;}
virtual ~Node()=default;
};//class Node
/**
*
*/
class Input:virtual public Node
{
public:
ObjectList<InputParam> input_params;
public:
using Node::Node;
virtual ~InputNode()=default;
};//class InputNode
/**
*
*/
class Output:virtual public Node
{
public:
ObjectList<OutputParam> output_params;
public:
using Node::Node;
virtual ~OutputNode()=default;
};//
/**
*
*/
class InputOutput:public Node
{
public:
ObjectList<InputParam> input_params;
ObjectList<OutputParam> output_params;
public:
using Node::Node;
virtual ~InputOutputNode()=default;
};//
/**
*
*/
class Finish:virtual public InputNode
{
public:
using InputNode::InputNode;
virtual ~FinishNode()=default;
};//
BEGIN_SHADER_NODE_NAMESPACE
#endif//HGL_SHADER_NODE_INCLUDE