bool RuntimeScene::RenderAndStep() { requestedChange.change = SceneChange::CONTINUE; ManageRenderTargetEvents(); UpdateTime(); ManageObjectsBeforeEvents(); SoundManager::Get()->ManageGarbage(); #if defined(GD_IDE_ONLY) if( GetProfiler() ) { if ( firstLoop ) GetProfiler()->Reset(); GetProfiler()->eventsClock.reset(); } #endif if (GetCodeExecutionEngine()->Ready()) { #if !defined(RELEASE) BT_PROFILE("Events"); #endif GetCodeExecutionEngine()->Execute(); } #if defined(GD_IDE_ONLY) if( GetProfiler() && GetProfiler()->profilingActivated ) { GetProfiler()->lastEventsTime = GetProfiler()->eventsClock.getTimeMicroseconds(); GetProfiler()->renderingClock.reset(); } #endif ManageObjectsAfterEvents(); #if defined(GD_IDE_ONLY) if( debugger ) debugger->Update(); #endif //Rendering Render(); legacyTexts.clear(); #if defined(GD_IDE_ONLY) if( GetProfiler() && GetProfiler()->profilingActivated ) { GetProfiler()->lastRenderingTime = GetProfiler()->renderingClock.getTimeMicroseconds(); GetProfiler()->totalSceneTime += GetProfiler()->lastRenderingTime + GetProfiler()->lastEventsTime; GetProfiler()->totalEventsTime += GetProfiler()->lastEventsTime; GetProfiler()->Update(); } #endif firstLoop = false; //The first frame was rendered return requestedChange.change != SceneChange::CONTINUE; }
bool RuntimeScene::RenderAndStep() { requestedChange.change = SceneChange::CONTINUE; ManageRenderTargetEvents(); timeManager.Update(clock.restart().asMicroseconds(), game->GetMinimumFPS()); ManageObjectsBeforeEvents(); if (game) game->GetSoundManager().ManageGarbage(); #if defined(GD_IDE_ONLY) if( GetProfiler() ) { if ( timeManager.IsFirstLoop() ) GetProfiler()->Reset(); GetProfiler()->eventsClock.reset(); } #endif GetCodeExecutionEngine()->Execute(); #if defined(GD_IDE_ONLY) if( GetProfiler() && GetProfiler()->profilingActivated ) { GetProfiler()->lastEventsTime = GetProfiler()->eventsClock.getTimeMicroseconds(); GetProfiler()->renderingClock.reset(); } #endif ManageObjectsAfterEvents(); #if defined(GD_IDE_ONLY) if( debugger ) debugger->Update(); #endif //Rendering Render(); #if defined(GD_IDE_ONLY) if( GetProfiler() && GetProfiler()->profilingActivated ) { GetProfiler()->lastRenderingTime = GetProfiler()->renderingClock.getTimeMicroseconds(); GetProfiler()->totalSceneTime += GetProfiler()->lastRenderingTime + GetProfiler()->lastEventsTime; GetProfiler()->totalEventsTime += GetProfiler()->lastEventsTime; GetProfiler()->Update(); } #endif return requestedChange.change != SceneChange::CONTINUE; }