--------------------------------------------------------------------------------
| 517 | |
| 518 | // -------------------------------------------------------------------------------- |
| 519 | void EveSOF::GenerateDepthFromAreaVector( Tr2MeshBase* mesh, const Tr2MeshAreaVector* meshAreaVector, const EveSOFDNAPtr dna ) const |
| 520 | { |
| 521 | Tr2MeshAreaVector* depthAreas = mesh->GetAreas( TRIBATCHTYPE_DEPTH ); |
| 522 | if( depthAreas ) |
| 523 | { |
| 524 | for( auto srcMeshArea = meshAreaVector->begin(); srcMeshArea != meshAreaVector->end(); ++srcMeshArea ) |
| 525 | { |
| 526 | if( ( *srcMeshArea )->GetGenerateDepthArea() ) |
| 527 | { |
| 528 | Tr2MeshAreaPtr destMeshArea; |
| 529 | BeClasses->CopyTo( *srcMeshArea, (IRoot**)&destMeshArea ); |
| 530 | |
| 531 | Tr2Effect* destShader = dynamic_cast<Tr2Effect*>( destMeshArea->GetMaterialInterface() ); |
| 532 | Tr2Effect* srcShader = dynamic_cast<Tr2Effect*>( ( *srcMeshArea )->GetMaterialInterface() ); |
| 533 | if( destShader && srcShader ) |
| 534 | { |
| 535 | const EveSOFDataMgr::GenericShaderData* depthOnlyShaderData = dna->GetGenericAreaShaderData( m_depthOnlyEffectName ); |
| 536 | if( depthOnlyShaderData ) |
| 537 | { |
| 538 | destShader->SetEffectPathName( dna->GetCompleteShaderPath( m_depthOnlyEffectName.c_str() ).c_str() ); |
| 539 | destShader->ClearAllParameters(); |
| 540 | destShader->ClearAllResources(); |
| 541 | |
| 542 | ITriEffectParameter* p = srcShader->GetResourceByName( depthOnlyShaderData->transparencyTextureName.c_str() ); |
| 543 | destShader->AddResource( p ); |
| 544 | } |
| 545 | } |
| 546 | depthAreas->Append( destMeshArea ); |
| 547 | } |
| 548 | } |
| 549 | } |
| 550 | } |
| 551 | |
| 552 | // -------------------------------------------------------------------------------- |
| 553 | // Description: |
nothing calls this directly
no test coverage detected