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

Method prepBatchRender

Engine/source/T3D/shapeBase.cpp:2538–2590  ·  view source on GitHub ↗

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

Source from the content-addressed store, hash-verified

2536// prepBatchRender
2537//----------------------------------------------------------------------------
2538void 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
2592void ShapeBase::renderMountedImage( U32 imageSlot, TSRenderState &rstate, SceneRenderState *state )
2593{

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