---------------------------------------------------------------------------- prepBatchRender ----------------------------------------------------------------------------
| 2687 | // prepBatchRender |
| 2688 | //---------------------------------------------------------------------------- |
| 2689 | void ShapeBase::prepBatchRender(SceneRenderState* state, S32 mountedImageIndex ) |
| 2690 | { |
| 2691 | // CHANGES IN HERE SHOULD BE DUPLICATED IN TSSTATIC! |
| 2692 | |
| 2693 | GFXTransformSaver saver; |
| 2694 | |
| 2695 | // Set up our TS render state. |
| 2696 | TSRenderState rdata; |
| 2697 | rdata.setSceneState( state ); |
| 2698 | if ( mCubeReflector.isEnabled() ) |
| 2699 | rdata.setCubemap( mCubeReflector.getCubemap() ); |
| 2700 | rdata.setFadeOverride( (1.0f - mCloakLevel) * mFadeVal ); |
| 2701 | |
| 2702 | // We might have some forward lit materials |
| 2703 | // so pass down a query to gather lights. |
| 2704 | LightQuery query; |
| 2705 | query.init( getWorldSphere() ); |
| 2706 | rdata.setLightQuery( &query ); |
| 2707 | |
| 2708 | if( mountedImageIndex != -1 ) |
| 2709 | { |
| 2710 | MountedImage& image = mMountedImageList[mountedImageIndex]; |
| 2711 | |
| 2712 | if( image.dataBlock && image.shapeInstance ) |
| 2713 | { |
| 2714 | renderMountedImage( mountedImageIndex, rdata, state ); |
| 2715 | } |
| 2716 | } |
| 2717 | else |
| 2718 | { |
| 2719 | MatrixF mat = getRenderTransform(); |
| 2720 | mat.scale( mObjScale ); |
| 2721 | GFX->setWorldMatrix( mat ); |
| 2722 | |
| 2723 | if ( state->isDiffusePass() && mCubeReflector.isEnabled() && mCubeReflector.getOcclusionQuery() ) |
| 2724 | { |
| 2725 | RenderPassManager *pass = state->getRenderPass(); |
| 2726 | |
| 2727 | OccluderRenderInst *ri = pass->allocInst<OccluderRenderInst>(); |
| 2728 | |
| 2729 | ri->type = RenderPassManager::RIT_Occluder; |
| 2730 | ri->query = mCubeReflector.getOcclusionQuery(); |
| 2731 | mObjToWorld.mulP( mObjBox.getCenter(), &ri->position ); |
| 2732 | ri->scale.set( mObjBox.getExtents() ); |
| 2733 | ri->orientation = pass->allocUniqueXform( mObjToWorld ); |
| 2734 | ri->isSphere = false; |
| 2735 | state->getRenderPass()->addInst( ri ); |
| 2736 | } |
| 2737 | |
| 2738 | mShapeInstance->animate(); |
| 2739 | mShapeInstance->render( rdata ); |
| 2740 | } |
| 2741 | } |
| 2742 | |
| 2743 | void ShapeBase::renderMountedImage( U32 imageSlot, TSRenderState &rstate, SceneRenderState *state ) |
| 2744 | { |
nothing calls this directly
no test coverage detected