void CEngine::HandleInput() { SDL_Event event; while(SDL_PollEvent(&event)) { switch(event.type) { case SDL_KEYDOWN: if(event.key.keysym.sym == SDLK_ESCAPE) { m_bQuit = true; break; } KeyDown(event.key.keysym.sym); break; case SDL_KEYUP: KeyUp(event.key.keysym.sym); break; case SDL_QUIT: m_bQuit = true; break; case SDL_MOUSEMOTION: MouseMoved(event.button.button, event.motion.x, event.motion.y, event.motion.xrel, event.motion.yrel); break; case SDL_MOUSEBUTTONUP: MouseButtonUp(event.button.button, event.motion.x, event.motion.y, event.motion.xrel,event.motion.yrel); break; case SDL_ACTIVEEVENT: if(event.active.state & SDL_APPACTIVE) { if(event.active.gain) { m_bMinimized = false; WindowActive(); } else { m_bMinimized = true; WindowInactive(); } } break; } } }
void CGraphics_Threaded::Swap() { // TODO: screenshot support if(m_DoScreenshot) { if(WindowActive()) ScreenshotDirect(m_aScreenshotName); m_DoScreenshot = false; } // add swap command CCommandBuffer::SCommand_Swap Cmd; Cmd.m_Finish = g_Config.m_GfxFinish; m_pCommandBuffer->AddCommand(Cmd); // kick the command buffer KickCommandBuffer(); }
/** Handles all controller inputs. @remark This function is called once per frame. **/ void CEngine::HandleInput() { // Poll for events, and handle the ones we care about. SDL_Event event; while ( SDL_PollEvent( &event ) ) { switch ( event.type ) { case SDL_KEYDOWN: // If escape is pressed set the Quit-flag if (event.key.keysym.sym == SDLK_ESCAPE) { m_bQuit = true; break; } KeyDown( event.key.keysym.sym ); break; case SDL_KEYUP: KeyUp( event.key.keysym.sym ); break; case SDL_QUIT: m_bQuit = true; break; case SDL_MOUSEMOTION: MouseMoved( event.button.button, event.motion.x, event.motion.y, event.motion.xrel, event.motion.yrel); break; case SDL_MOUSEBUTTONUP: MouseButtonUp( event.button.button, event.motion.x, event.motion.y, event.motion.xrel, event.motion.yrel); break; case SDL_MOUSEBUTTONDOWN: MouseButtonDown( event.button.button, event.motion.x, event.motion.y, event.motion.xrel, event.motion.yrel); break; case SDL_ACTIVEEVENT: if ( event.active.state & SDL_APPACTIVE ) { if ( event.active.gain ) { m_bMinimized = false; WindowActive(); } else { m_bMinimized = true; WindowInactive(); } } break; } // switch } // while (handling input) }