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

81 lines
1.9 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#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