HRESULT ForwardPlusRenderer::RenderFrame(const RenderTarget& renderTarget, const RenderView& view) { HRESULT hr = S_OK; if (RTWidth != renderTarget.Texture->GetDesc().Width || RTHeight != renderTarget.Texture->GetDesc().Height) { hr = RecreateSurfaces(renderTarget.Texture->GetDesc().Width, renderTarget.Texture->GetDesc().Height, MsaaEnabled ? 4 : 1); CHECKHR(hr); } // Scene traversal once, used for multiple passes Scene->GetVisibleVisuals(view, &Visuals); Scene->GetVisibleLights(view, &Lights); RenderZPrePass(view); CullLights(view); RenderFinal(view, renderTarget); return S_OK; }
void CLightingManager::LightSetup( const CViewSetup &setup ) { PrepareLights(); #if DEBUG m_bVolatileLists = true; #endif CullLights(); #if DEFCFG_USE_SSE BuildLightSortDataBuffer(); #endif SortLights(); if ( deferred_lightmanager_debug.GetInt() >= 2 ) { DebugLights_Draw_Boundingboxes(); } }