to improved the CreateDefaultVertexShader()
This commit is contained in:
parent
e61ed1d146
commit
0aaec981b2
@ -39,6 +39,8 @@ protected:
|
||||
void AddInput (bool mj,const UTF8String &n,const param::ParamType &pt);
|
||||
void AddOutput (const UTF8String &n,const param::ParamType &pt);
|
||||
|
||||
public:
|
||||
|
||||
param::InputParam * GetInput (const UTF8String &n) ///<根据名称获取输入参数
|
||||
{return GetListObject(input_params_by_name,n);}
|
||||
|
||||
@ -61,7 +63,7 @@ public: //参数相关
|
||||
InputParamList & GetInputParamList (){return input_params;}
|
||||
OutputParamList & GetOutputParamList (){return output_params;}
|
||||
|
||||
virtual bool JoinInput (const UTF8String &,node::Node *,const UTF8String &);
|
||||
virtual bool JoinInput (const UTF8String &,node::Node *,param::OutputParam *);
|
||||
|
||||
public: //参数相关
|
||||
|
||||
|
@ -7,20 +7,24 @@
|
||||
BEGIN_SHADER_NAMESPACE
|
||||
namespace
|
||||
{
|
||||
#define SHADER_VERTEX_INPUT_POSITION "Position"
|
||||
#define SHADER_VERTEX_INPUT_STREAM_PARAM_NAME "Position" //<顶点数据输入流,输出参数名称
|
||||
#define SHADER_VERTEX_POSITION_INPUT_PARAM_NAME "Position" //<顶点shader最终节点,输入参数名称
|
||||
|
||||
//**********************************************************************注:它们两个名字一样只是碰巧****************
|
||||
|
||||
bool CreateDefaultVertexShader()
|
||||
{
|
||||
node::VertexFinished vs_fin_node; //创建一个vs最终节点
|
||||
node::VertexFinished vs_fin_node; //创建一个vs最终节点
|
||||
|
||||
//创建一个顶点输入节点
|
||||
node::VertexInput ni( SHADER_VERTEX_INPUT_POSITION, //该节点shader名称
|
||||
param::ParamType::Float3); //该节点数据类型
|
||||
//创建一个顶点输入节点
|
||||
node::VertexInput ni( SHADER_VERTEX_INPUT_STREAM_PARAM_NAME, //该节点shader名称
|
||||
param::ParamType::Float3); //该节点数据类型
|
||||
|
||||
//对接顶点输入节点到VS最终节点
|
||||
vs_fin_node.JoinInput( SHADER_VERTEX_INPUT_POSITION, //最终节点名称
|
||||
&ni, //要接入的节点
|
||||
SHADER_VERTEX_INPUT_POSITION); //要入节点的输出参数名称 (注:这里只是碰巧名字一样,所以共用一个宏)
|
||||
param::OutputParam *op=ni.GetOutput(SHADER_VERTEX_INPUT_STREAM_PARAM_NAME); //获取节点中的输出参数
|
||||
|
||||
//对接顶点输入节点到VS最终节点
|
||||
vs_fin_node.JoinInput( SHADER_VERTEX_POSITION_INPUT_PARAM_NAME, //最终节点中这个输入参数的名称
|
||||
&ni,op); //要接入的节点以及它的输出参数
|
||||
|
||||
ShaderMaker vs_maker(&vs_fin_node);
|
||||
|
||||
|
@ -19,14 +19,12 @@ void Node::AddOutput(const UTF8String &n,const param::ParamType &pt)
|
||||
output_params_by_name.Add(n,op);
|
||||
}
|
||||
|
||||
bool Node::JoinInput(const UTF8String ¶m_name,node::Node *n,const UTF8String &op_name)
|
||||
bool Node::JoinInput(const UTF8String ¶m_name,node::Node *n,param::OutputParam *op)
|
||||
{
|
||||
if(param_name.IsEmpty()||!n)
|
||||
if(param_name.IsEmpty()||!n||op)
|
||||
return(false);
|
||||
|
||||
param::OutputParam *op=n->GetOutput(op_name);
|
||||
|
||||
if(!op)
|
||||
if(!n->IsOutput(op))
|
||||
return(false);
|
||||
|
||||
param::InputParam *ip=GetInput(param_name);
|
||||
|
Loading…
x
Reference in New Issue
Block a user