Browse Source

Platform: moved Sdl2Application event loop into separate function.

Allowing it to be called perodically from some callback.
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
6fd8dc86ad
  1. 11
      src/Platform/Sdl2Application.cpp
  2. 1
      src/Platform/Sdl2Application.h

11
src/Platform/Sdl2Application.cpp

@ -127,7 +127,11 @@ Sdl2Application::~Sdl2Application() {
} }
int Sdl2Application::exec() { int Sdl2Application::exec() {
while(!(flags & Flag::Exit)) { while(!(flags & Flag::Exit)) mainLoop();
return 0;
}
void Sdl2Application::mainLoop() {
SDL_Event event; SDL_Event event;
while(SDL_PollEvent(&event)) { while(SDL_PollEvent(&event)) {
@ -167,7 +171,7 @@ int Sdl2Application::exec() {
break; break;
} }
case SDL_QUIT: return 0; case SDL_QUIT: return;
} }
} }
@ -177,9 +181,6 @@ int Sdl2Application::exec() {
} else Corrade::Utility::sleep(5); } else Corrade::Utility::sleep(5);
} }
return 0;
}
void Sdl2Application::setMouseLocked(bool enabled) { void Sdl2Application::setMouseLocked(bool enabled) {
SDL_SetWindowGrab(window, enabled ? SDL_TRUE : SDL_FALSE); SDL_SetWindowGrab(window, enabled ? SDL_TRUE : SDL_FALSE);
SDL_SetRelativeMouseMode(enabled ? SDL_TRUE : SDL_FALSE); SDL_SetRelativeMouseMode(enabled ? SDL_TRUE : SDL_FALSE);

1
src/Platform/Sdl2Application.h

@ -174,6 +174,7 @@ class Sdl2Application {
CORRADE_ENUMSET_FRIEND_OPERATORS(Flags) CORRADE_ENUMSET_FRIEND_OPERATORS(Flags)
void initialize(); void initialize();
void mainLoop();
SDL_Window* window; SDL_Window* window;
SDL_GLContext context; SDL_GLContext context;

Loading…
Cancel
Save