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