MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / getObjTrans

Method getObjTrans

Engine/source/shaderGen/GLSL/shaderFeatureGLSL.cpp:530–569  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

528}
529
530Var* ShaderFeatureGLSL::getObjTrans( Vector<ShaderComponent*> &componentList,
531 bool useInstancing,
532 MultiLine *meta )
533{
534 Var *objTrans = (Var*)LangElement::find( "objTrans" );
535 if ( objTrans )
536 return objTrans;
537
538 if ( useInstancing )
539 {
540 ShaderConnector *vertStruct = dynamic_cast<ShaderConnector *>( componentList[C_VERT_STRUCT] );
541 Var *instObjTrans = vertStruct->getElement( RT_TEXCOORD, 4, 4 );
542 instObjTrans->setStructName( "IN" );
543 instObjTrans->setName( "inst_objectTrans" );
544
545 mInstancingFormat->addElement( "objTrans", GFXDeclType_Float4, instObjTrans->constNum+0 );
546 mInstancingFormat->addElement( "objTrans", GFXDeclType_Float4, instObjTrans->constNum+1 );
547 mInstancingFormat->addElement( "objTrans", GFXDeclType_Float4, instObjTrans->constNum+2 );
548 mInstancingFormat->addElement( "objTrans", GFXDeclType_Float4, instObjTrans->constNum+3 );
549
550 objTrans = new Var;
551 objTrans->setType( "mat4x4" );
552 objTrans->setName( "objTrans" );
553 meta->addStatement( new GenOp( " @ = mat4x4( // Instancing!\r\n", new DecOp( objTrans ), instObjTrans ) );
554 meta->addStatement( new GenOp( " @[0],\r\n", instObjTrans ) );
555 meta->addStatement( new GenOp( " @[1],\r\n", instObjTrans ) );
556 meta->addStatement( new GenOp( " @[2],\r\n",instObjTrans ) );
557 meta->addStatement( new GenOp( " @[3] );\r\n", instObjTrans ) );
558 }
559 else
560 {
561 objTrans = new Var;
562 objTrans->setType( "float4x4" );
563 objTrans->setName( "objTrans" );
564 objTrans->uniform = true;
565 objTrans->constSortPos = cspPrimitive;
566 }
567
568 return objTrans;
569}
570
571Var* ShaderFeatureGLSL::getModelView( Vector<ShaderComponent*> &componentList,
572 bool useInstancing,

Callers

nothing calls this directly

Calls 7

setStructNameMethod · 0.80
addStatementMethod · 0.80
findFunction · 0.50
getElementMethod · 0.45
setNameMethod · 0.45
addElementMethod · 0.45
setTypeMethod · 0.45

Tested by

no test coverage detected