2019-12-10 22:12:09 +08:00
|
|
|
|
#ifndef HGL_GRAPH_SHADER_PARAM_INPUT_INCLUDE
|
|
|
|
|
#define HGL_GRAPH_SHADER_PARAM_INPUT_INCLUDE
|
2019-12-10 21:52:10 +08:00
|
|
|
|
|
2019-12-13 11:20:08 +08:00
|
|
|
|
#include<hgl/graph/shader/common.h>
|
2019-12-12 22:25:40 +08:00
|
|
|
|
#include<hgl/graph/shader/param/out.h>
|
2019-12-10 21:52:10 +08:00
|
|
|
|
#include<hgl/graph/shader/param/param.h>
|
|
|
|
|
|
2019-12-10 22:12:09 +08:00
|
|
|
|
BEGIN_SHADER_PARAM_NAMESPACE
|
2019-12-10 21:52:10 +08:00
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 输入参数定义
|
|
|
|
|
*/
|
|
|
|
|
class InputParam:public Param
|
|
|
|
|
{
|
2019-12-13 11:20:08 +08:00
|
|
|
|
bool must_join; //是否必须有接入
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
node::Node *join_node;
|
|
|
|
|
param::OutputParam *join_param;
|
|
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 可否接入判断,默认只判断类型
|
|
|
|
|
*/
|
|
|
|
|
virtual bool JoinCheck(node::Node *n,param::OutputParam *op)
|
|
|
|
|
{
|
|
|
|
|
return(op->GetType()==this->GetType());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public: //属性
|
|
|
|
|
|
|
|
|
|
node::Node * GetJoinNode (){return join_node;} ///<取得接入节点
|
|
|
|
|
param::OutputParam *GetJoinParam(){return join_param;} ///<取得接入节点参数
|
2019-12-12 22:25:40 +08:00
|
|
|
|
|
2019-12-18 20:12:56 +08:00
|
|
|
|
virtual const UTF8String GetDefaultValue()const{return "?";} ///<取得缺省值
|
|
|
|
|
|
2019-12-10 21:52:10 +08:00
|
|
|
|
public:
|
|
|
|
|
|
2019-12-13 11:20:08 +08:00
|
|
|
|
InputParam(const bool mj,const UTF8String &n,const ParamType &t):Param(n,t)
|
|
|
|
|
{
|
|
|
|
|
must_join=mj;
|
2019-12-13 17:55:20 +08:00
|
|
|
|
join_node=nullptr;
|
|
|
|
|
join_param=nullptr;
|
2019-12-13 11:20:08 +08:00
|
|
|
|
}
|
2019-12-10 21:52:10 +08:00
|
|
|
|
virtual ~InputParam()=default;
|
|
|
|
|
|
2019-12-13 11:20:08 +08:00
|
|
|
|
virtual bool Join(node::Node *,param::OutputParam *); ///<增加一个关联节点
|
|
|
|
|
virtual void Break(){join_node=nullptr;join_param=nullptr;} ///<断开一个关联节点
|
2019-12-10 21:52:10 +08:00
|
|
|
|
|
2019-12-13 11:20:08 +08:00
|
|
|
|
virtual bool Check(){return(must_join?join_param:true);} ///<检测当前节点是否可用
|
2019-12-12 22:25:40 +08:00
|
|
|
|
};//class InputParam:public Param
|
2019-12-10 22:12:09 +08:00
|
|
|
|
END_SHADER_PARAM_NAMESPACE
|
|
|
|
|
#endif//#ifndef HGL_GRAPH_SHADER_PARAM_INPUT_INCLUDE
|