Esempio n. 1
0
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;
		}
	}
}
Esempio n. 2
0
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();
}
Esempio n. 3
0
/** 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)
}