24#include <core/exception.h>
25#include <core/threading/mutex.h>
26#include <core/threading/mutex_locker.h>
27#include <fvwidgets/sdl_keeper.h>
35unsigned int SDLKeeper::_refcount = 0;
36Mutex SDLKeeper::_mutex;
62 unsigned int alive_subsys = SDL_WasInit(SDL_INIT_EVERYTHING);
63 if ((alive_subsys & flags) != flags) {
66 if (SDL_Init(flags) != 0) {
67 throw Exception(
"SDL: initialization failed");
70 unsigned int still_to_init = ~alive_subsys & flags;
71 if (SDL_Init(still_to_init) != 0) {
72 throw Exception(
"SDL: initialization failed");
89 if ((_refcount > 0) && (--_refcount == 0)) {
Base class for exceptions in Fawkes.
Mutex mutual exclusion lock.
static void force_quit()
Force quit of SDL.
static void quit() noexcept
Conditionally quit SDL.
static void init(unsigned int flags)
Init SDL.
Fawkes library namespace.