Esempio n. 1
0
void WindowManager::ProcessEvent(SDL_Event *event)
{
	MainMenu *mainmenu = (MainMenu *)SM->GetSceneByName("Main Menu");
	OptionsMenu *optionsmenu = (OptionsMenu *)SM->GetSceneByName("Options Menu");
	switch(event->type)					// See which event it is
    {
		// When window is resized or is toggled between window and fullscreen
	case SDL_VIDEORESIZE:
		//Cleanup();
		InitOpenGL();
		IsGLErrors("Video Resize");
		if(!WM->IsFullscreen())
		{
			SetWindowedMode(0, 0, event->resize.w, event->resize.h);
		}
		glViewport(0,0,event->resize.w,event->resize.h);		// Resize OpenGL Viewport to fit the screen/window
		SM->InitAll();
		break;
		// When user quits the game
	case SDL_VIDEOEXPOSE:
		if(Game->GetCurrentMode() != GM_PLAY)
		{
			mainmenu->Resize();
			optionsmenu->Resize();
		}
		break;
    case SDL_QUIT:
		_Running=false;
        break;
	case SDL_ACTIVEEVENT:
		if(event->active.state & SDL_APPACTIVE)
		{
			if(event->active.gain)
				_Active = true;
			else
				_Active = false;
		}
		break;
	default:
		break;
	}
}