void Application::Run() { MSG msg; ::ZeroMemory(&msg, sizeof(MSG)); static float lastTime = static_cast<float>(timeGetTime()); while(msg.message != WM_QUIT) { if(::PeekMessage(&msg, 0, 0, 0, PM_REMOVE)) { ::TranslateMessage(&msg); ::DispatchMessage(&msg); } else { float currTime = static_cast<float>(timeGetTime()); float timeDelta = (currTime - lastTime)*0.001f; if(mActive) DoFrame(timeDelta); else DoIdleFrame(timeDelta); lastTime = currTime; } } }
void Application::Run() { bool finished = false; while( !finished ) { // Check for messages and process if any. while( !finished && GetWnd()->HasMessages() ) { if( !GetWnd()->Pump() ) { finished = true; } } if( m_isActive ) { DoFrame(); } else { DoIdleFrame(); } } }