Ejemplo n.º 1
0
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;
        }
    }
}
Ejemplo n.º 2
0
		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();
				}
			}
		}