/* * Main loop. */ void MainLoop() { LoopEventT event = LOOP_CONTINUE; SetVBlankCounter(0); do { int frameNumber = GetVBlankCounter(); RenderEffect(frameNumber); RenderFrameNumber(frameNumber); RenderFramesPerSecond(frameNumber); DisplaySwap(); } while ((event = ReadLoopEvent()) != LOOP_EXIT); }
void CGControlSys::Render( dword dwOption) { // CanDrawTerrain(false); if( !m_bReadyForRender ) return; // DLogWriteSystem( "in GControl::Render()" ); static time_t timePrev = timeGetTime(); time_t timeProgress = timeGetTime()-timePrev; float fRatio = (float)((timeProgress)%1000)/1000.0f; float fFrameMorphing = (float)(timeGetTime()%1000)/1000.0f*30.0f; static time_t timePrevSky = timePrev; static time_t timeNowSky = timePrev; timeNowSky+=timeProgress; // :: // Sky and Environment // :: DRenderUtil().UpdateRenderState( DRenderUtility::SblkEnvironment, DRenderBatch::s_bForceWireFrame, 0x01 ); // m_NeoEnvironment.Render( m_Timer.fProgressRatio ); m_Environment.Render(); DLightActor::s_bDay = m_NeoEnvironment.IsDay(); // Light Off Scud::ClearLightList(); // Apply Environmental Global Light (single) //m_Environment.ApplyLightState( m_Environment.GetLightState( true ) ); Scud::PushLight( m_NeoEnvironment.GlobalLightInstance() ); Scud::UpdateLightOnDevice(); Scud::SetAmbientLight( m_NeoEnvironment.Ambient() ); m_aVisibleDynamicActorList.Initialize(); DRenderUtil().UpdateRenderState( DRenderUtility::SblkNormal, false, m_NeoEnvironment.AlphaRef() ); //B4=180 GSmallActor::s_dwAlphaRef = 0x96; // :: // Render All Visible Actor // :: BuildVisibleList(); // 2004/03/23 by impurity DRenderUtil().UpdateRenderState( DRenderUtility::SblkNormal, false, m_NeoEnvironment.AlphaRef() ); //B4=180 RenderMapObject(); if( 1 ) //m_bRenderEnable ) // added by findfun. [Full] RenderCharacter(); RenderMapAlpha(); RenderEffect(); // :: // Character Extra // :: GDynamicActor::GrpRenderExtra(); // 2004/02/24 by impurity m_mngTransition.Render(); }