2019-12-10 21:52:10 +08:00
|
|
|
|
#ifndef HGL_GRAPH_SHADER_NODE_VECTOR_INCLUDE
|
|
|
|
|
#define HGL_GRAPH_SHADER_NODE_VECTOR_INCLUDE
|
2019-12-06 21:45:51 +08:00
|
|
|
|
|
2019-12-10 21:52:10 +08:00
|
|
|
|
#include<hgl/graph/shader/param/out.h>
|
2019-12-16 20:35:51 +08:00
|
|
|
|
#include<hgl/graph/shader/node/node.h>
|
2019-12-10 21:52:10 +08:00
|
|
|
|
|
2020-01-14 18:09:40 +08:00
|
|
|
|
SHADER_NODE_NAMESPACE_BEGIN
|
2019-12-16 20:35:51 +08:00
|
|
|
|
class Parameter:public Node
|
2019-12-06 21:45:51 +08:00
|
|
|
|
{
|
2019-12-16 20:35:51 +08:00
|
|
|
|
param::ParamType param_type;
|
2019-12-06 21:45:51 +08:00
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
2019-12-20 22:08:10 +08:00
|
|
|
|
Parameter(const param::ParamType &pt,const UTF8String &n):Node(NodeType::Param,n)
|
2019-12-06 21:45:51 +08:00
|
|
|
|
{
|
2019-12-16 20:35:51 +08:00
|
|
|
|
param_type=pt;
|
2019-12-06 21:45:51 +08:00
|
|
|
|
}
|
|
|
|
|
|
2019-12-16 20:35:51 +08:00
|
|
|
|
const param::ParamType &GetParamType()const{return param_type;}
|
|
|
|
|
};//class Parameter:public Node
|
|
|
|
|
|
2019-12-20 22:08:10 +08:00
|
|
|
|
#define SHADER_PARAMETER_CONSTRUCT_FUNC(name,value) name():Parameter(param::ParamType::name,#name) \
|
2019-12-16 20:35:51 +08:00
|
|
|
|
{ \
|
|
|
|
|
SHADER_OUTPUT_PARAM(value,name) \
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class Float1:public Parameter
|
|
|
|
|
{
|
|
|
|
|
float x;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
2019-12-21 13:44:25 +08:00
|
|
|
|
SHADER_PARAMETER_CONSTRUCT_FUNC(Float1,Value)
|
2019-12-16 20:35:51 +08:00
|
|
|
|
};//class float1:public Parameter
|
|
|
|
|
|
|
|
|
|
class Float2:public Parameter
|
2019-12-06 21:45:51 +08:00
|
|
|
|
{
|
|
|
|
|
float x,y;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
2019-12-16 20:35:51 +08:00
|
|
|
|
SHADER_PARAMETER_CONSTRUCT_FUNC(Float2,XY)
|
|
|
|
|
};//class float2:public Parameter
|
2019-12-06 21:45:51 +08:00
|
|
|
|
|
2019-12-16 20:35:51 +08:00
|
|
|
|
class Float3:public Parameter
|
2019-12-06 21:45:51 +08:00
|
|
|
|
{
|
|
|
|
|
float x,y,z;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
2019-12-16 20:35:51 +08:00
|
|
|
|
SHADER_PARAMETER_CONSTRUCT_FUNC(Float3,XYZ)
|
|
|
|
|
};//class Float3:public Parameter
|
2019-12-06 21:45:51 +08:00
|
|
|
|
|
2019-12-16 20:35:51 +08:00
|
|
|
|
class Float4:public Parameter
|
2019-12-06 21:45:51 +08:00
|
|
|
|
{
|
|
|
|
|
float x,y,z,w;
|
|
|
|
|
|
|
|
|
|
public:
|
|
|
|
|
|
2019-12-16 20:35:51 +08:00
|
|
|
|
SHADER_PARAMETER_CONSTRUCT_FUNC(Float4,XYZW)
|
|
|
|
|
};//class Float4:public Parameter
|
|
|
|
|
|
|
|
|
|
#undef SHADER_PARAMETER_CONSTRUCT_FUNC
|
2020-01-14 18:09:40 +08:00
|
|
|
|
SHADER_NODE_NAMESPACE_END
|
2019-12-10 21:52:10 +08:00
|
|
|
|
#endif//HGL_GRAPH_SHADER_NODE_VECTOR_INCLUDE
|