| 81 | } |
| 82 | |
| 83 | void WodBakingScene::Render( Tr2RenderContext& renderContext ) |
| 84 | { |
| 85 | D3DPERF_EVENT( L"WodBakingScene::Render" ); |
| 86 | |
| 87 | // Nothing to render if we do not have a skinned object to bake out. |
| 88 | if( !m_skinnedObject ) |
| 89 | { |
| 90 | return; |
| 91 | } |
| 92 | |
| 93 | renderContext.AddGpuMarker( __FUNCTION__ ); |
| 94 | |
| 95 | Tr2PerObjectData* perObjectData = m_skinnedObject->GetPerObjectData( m_opaqueRenderBatches ); |
| 96 | m_skinnedObject->GetBatches( m_opaqueRenderBatches, TRIBATCHTYPE_OPAQUE, perObjectData ); |
| 97 | |
| 98 | renderContext.m_esm.BeginManagedRendering(); |
| 99 | renderContext.m_esm.SetInvertedCullMode( false ); |
| 100 | using namespace Tr2RenderContextEnum; |
| 101 | |
| 102 | // Actual rendering code goes in here |
| 103 | Tr2PerFrameVSData vsData; |
| 104 | Tr2PerFramePSData psData; |
| 105 | |
| 106 | // Set per-frame data |
| 107 | PopulatePerFramePSData( psData ); |
| 108 | PopulatePerFrameVSData( vsData ); |
| 109 | |
| 110 | FillAndSetConstants( m_VSBuffer, vsData, VERTEX_SHADER, Tr2Renderer::GetPerFrameVSStartRegister(), renderContext ); |
| 111 | FillAndSetConstants( m_PSBuffer, psData, PIXEL_SHADER, Tr2Renderer::GetPerFramePSStartRegister(), renderContext ); |
| 112 | |
| 113 | m_opaqueRenderBatches->Finalize(); |
| 114 | renderContext.m_esm.ApplyStandardStates( Tr2EffectStateManager::RM_OPAQUE ); |
| 115 | |
| 116 | // Render! |
| 117 | renderContext.RenderBatches( m_opaqueRenderBatches ); |
| 118 | |
| 119 | // Clear the batches |
| 120 | m_opaqueRenderBatches->Clear(); |
| 121 | |
| 122 | //m_transparentBatchStore->Clear(); |
| 123 | |
| 124 | renderContext.m_esm.EndManagedRendering(); |
| 125 | } |
| 126 | |
| 127 | void WodBakingScene::RenderDebugInfo( Tr2RenderContext& renderContext ) |
| 128 | { |
nothing calls this directly
no test coverage detected