---------------------------------------------------------------------------- prepBatchRender ----------------------------------------------------------------------------
| 2536 | // prepBatchRender |
| 2537 | //---------------------------------------------------------------------------- |
| 2538 | void ShapeBase::prepBatchRender(SceneRenderState* state, S32 mountedImageIndex ) |
| 2539 | { |
| 2540 | // CHANGES IN HERE SHOULD BE DUPLICATED IN TSSTATIC! |
| 2541 | |
| 2542 | GFXTransformSaver saver; |
| 2543 | |
| 2544 | // Set up our TS render state. |
| 2545 | TSRenderState rdata; |
| 2546 | rdata.setSceneState( state ); |
| 2547 | if ( mCubeReflector.isEnabled() ) |
| 2548 | rdata.setCubemap( mCubeReflector.getCubemap() ); |
| 2549 | rdata.setFadeOverride( (1.0f - mCloakLevel) * mFadeVal ); |
| 2550 | |
| 2551 | // We might have some forward lit materials |
| 2552 | // so pass down a query to gather lights. |
| 2553 | LightQuery query; |
| 2554 | query.init( getWorldSphere() ); |
| 2555 | rdata.setLightQuery( &query ); |
| 2556 | |
| 2557 | if( mountedImageIndex != -1 ) |
| 2558 | { |
| 2559 | MountedImage& image = mMountedImageList[mountedImageIndex]; |
| 2560 | |
| 2561 | if( image.dataBlock && image.shapeInstance ) |
| 2562 | { |
| 2563 | renderMountedImage( mountedImageIndex, rdata, state ); |
| 2564 | } |
| 2565 | } |
| 2566 | else |
| 2567 | { |
| 2568 | MatrixF mat = getRenderTransform(); |
| 2569 | mat.scale( mObjScale ); |
| 2570 | GFX->setWorldMatrix( mat ); |
| 2571 | |
| 2572 | if ( state->isDiffusePass() && mCubeReflector.isEnabled() && mCubeReflector.getOcclusionQuery() ) |
| 2573 | { |
| 2574 | RenderPassManager *pass = state->getRenderPass(); |
| 2575 | |
| 2576 | OccluderRenderInst *ri = pass->allocInst<OccluderRenderInst>(); |
| 2577 | |
| 2578 | ri->type = RenderPassManager::RIT_Occluder; |
| 2579 | ri->query = mCubeReflector.getOcclusionQuery(); |
| 2580 | mObjToWorld.mulP( mObjBox.getCenter(), &ri->position ); |
| 2581 | ri->scale.set( mObjBox.getExtents() ); |
| 2582 | ri->orientation = pass->allocUniqueXform( mObjToWorld ); |
| 2583 | ri->isSphere = false; |
| 2584 | state->getRenderPass()->addInst( ri ); |
| 2585 | } |
| 2586 | |
| 2587 | mShapeInstance->animate(); |
| 2588 | mShapeInstance->render( rdata ); |
| 2589 | } |
| 2590 | } |
| 2591 | |
| 2592 | void ShapeBase::renderMountedImage( U32 imageSlot, TSRenderState &rstate, SceneRenderState *state ) |
| 2593 | { |
nothing calls this directly
no test coverage detected