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 AddInput (bool mj,const UTF8String &n,const param::ParamType &pt);
|
||||||
void AddOutput (const UTF8String &n,const param::ParamType &pt);
|
void AddOutput (const UTF8String &n,const param::ParamType &pt);
|
||||||
|
|
||||||
|
public:
|
||||||
|
|
||||||
param::InputParam * GetInput (const UTF8String &n) ///<根据名称获取输入参数
|
param::InputParam * GetInput (const UTF8String &n) ///<根据名称获取输入参数
|
||||||
{return GetListObject(input_params_by_name,n);}
|
{return GetListObject(input_params_by_name,n);}
|
||||||
|
|
||||||
@ -61,7 +63,7 @@ public: //参数相关
|
|||||||
InputParamList & GetInputParamList (){return input_params;}
|
InputParamList & GetInputParamList (){return input_params;}
|
||||||
OutputParamList & GetOutputParamList (){return output_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: //参数相关
|
public: //参数相关
|
||||||
|
|
||||||
|
@ -7,20 +7,24 @@
|
|||||||
BEGIN_SHADER_NAMESPACE
|
BEGIN_SHADER_NAMESPACE
|
||||||
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()
|
bool CreateDefaultVertexShader()
|
||||||
{
|
{
|
||||||
node::VertexFinished vs_fin_node; //创建一个vs最终节点
|
node::VertexFinished vs_fin_node; //创建一个vs最终节点
|
||||||
|
|
||||||
//创建一个顶点输入节点
|
//创建一个顶点输入节点
|
||||||
node::VertexInput ni( SHADER_VERTEX_INPUT_POSITION, //该节点shader名称
|
node::VertexInput ni( SHADER_VERTEX_INPUT_STREAM_PARAM_NAME, //该节点shader名称
|
||||||
param::ParamType::Float3); //该节点数据类型
|
param::ParamType::Float3); //该节点数据类型
|
||||||
|
|
||||||
|
param::OutputParam *op=ni.GetOutput(SHADER_VERTEX_INPUT_STREAM_PARAM_NAME); //获取节点中的输出参数
|
||||||
|
|
||||||
//对接顶点输入节点到VS最终节点
|
//对接顶点输入节点到VS最终节点
|
||||||
vs_fin_node.JoinInput( SHADER_VERTEX_INPUT_POSITION, //最终节点名称
|
vs_fin_node.JoinInput( SHADER_VERTEX_POSITION_INPUT_PARAM_NAME, //最终节点中这个输入参数的名称
|
||||||
&ni, //要接入的节点
|
&ni,op); //要接入的节点以及它的输出参数
|
||||||
SHADER_VERTEX_INPUT_POSITION); //要入节点的输出参数名称 (注:这里只是碰巧名字一样,所以共用一个宏)
|
|
||||||
|
|
||||||
ShaderMaker vs_maker(&vs_fin_node);
|
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);
|
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);
|
return(false);
|
||||||
|
|
||||||
param::OutputParam *op=n->GetOutput(op_name);
|
if(!n->IsOutput(op))
|
||||||
|
|
||||||
if(!op)
|
|
||||||
return(false);
|
return(false);
|
||||||
|
|
||||||
param::InputParam *ip=GetInput(param_name);
|
param::InputParam *ip=GetInput(param_name);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user