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

Method prepBatchRender

Engine/source/T3D/shapeBase.cpp:2689–2741  ·  view source on GitHub ↗

---------------------------------------------------------------------------- prepBatchRender ----------------------------------------------------------------------------

Source from the content-addressed store, hash-verified

2687// prepBatchRender
2688//----------------------------------------------------------------------------
2689void 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
2743void ShapeBase::renderMountedImage( U32 imageSlot, TSRenderState &rstate, SceneRenderState *state )
2744{

Callers

nothing calls this directly

Calls 15

setSceneStateMethod · 0.80
setFadeOverrideMethod · 0.80
setLightQueryMethod · 0.80
isDiffusePassMethod · 0.80
mulPMethod · 0.80
getExtentsMethod · 0.80
allocUniqueXformMethod · 0.80
isEnabledMethod · 0.45
setCubemapMethod · 0.45
getCubemapMethod · 0.45
initMethod · 0.45
scaleMethod · 0.45

Tested by

no test coverage detected