namespace app {
-Application::Application(SDL_Surface *screen, State *initialState)
+Application::Application(sdl::InitScreen *screen, State *initialState)
: screen(screen)
, states()
, last(SDL_GetTicks()) {
void Application::RealPushState(State *s) {
states.push(s);
- s->EnterState(*this, screen);
+ s->EnterState(*this, screen->Screen());
}
void Application::PopState(void) {
case SDL_QUIT:
PopAllStates();
break;
+ case SDL_VIDEORESIZE:
+ screen->Resize(event.resize.w, event.resize.h);
+ CurrentState()->Resize(event.resize.w, event.resize.h);
+ break;
default:
CurrentState()->HandleEvent(event);
break;
void Application::Render(void) {
if (!CurrentState()) return;
- CurrentState()->Render(screen);
- SDL_Flip(screen);
+ CurrentState()->Render(screen->Screen());
+ screen->Flip();
}
}