X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2Fmoof%2Fbackend.cc;h=5b995c553b9c21b317377c6fd93201cbc7ada060;hp=6dacfa12026a526a422450fb600c376bb0f4ee71;hb=44b3014bce798789e795242d1556cb7449e6386a;hpb=831f04d4bc19a390415ac0bbac4331c7a65509bc diff --git a/src/moof/backend.cc b/src/moof/backend.cc index 6dacfa1..5b995c5 100644 --- a/src/moof/backend.cc +++ b/src/moof/backend.cc @@ -1,41 +1,35 @@ -/*] Copyright (c) 2009-2010, Charles McGarvey [************************** +/*] Copyright (c) 2009-2011, Charles McGarvey [***************************** **] All rights reserved. * -* vi:ts=4 sw=4 tw=75 -* * Distributable under the terms and conditions of the 2-clause BSD license; * see the file COPYING for a complete text of the license. * -**************************************************************************/ +*****************************************************************************/ + +#if HAVE_CONFIG_H +#include "config.h" +#endif #include #include -#include "fastevents.h" #include "backend.hh" +#include "fastevents.h" #include "log.hh" namespace moof { -struct impl -{ - static bool is_initialized; - static int retain_count; -}; - -bool impl::is_initialized = false; -int impl::retain_count = 0; - +static int retain_count = 0; backend::backend() { - if (impl::retain_count++ == 0) + if (retain_count++ == 0) { -#if defined(_WIN32) +#if PLATFORM_WIN32 if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_TIMER) != 0) #else if (SDL_Init(SDL_INIT_VIDEO | SDL_INIT_EVENTTHREAD) != 0) @@ -47,44 +41,40 @@ backend::backend() { char name[128]; SDL_VideoDriverName(name, sizeof(name)); - log_info << "initialized SDL; using video driver `" - << name << "'" << std::endl; + log_info << "initialized SDL; using video driver `" << + name << "'" << std::endl; } - if (FE_Init() != 0) { throw std::runtime_error(FE_GetError()); } } - - impl::is_initialized = true; } backend::backend(const backend& backend) { - ++impl::retain_count; + ++retain_count; } -backend& backend::operator=(const backend& backend) +backend& backend::operator = (const backend& backend) { - ++impl::retain_count; + ++retain_count; return *this; } backend::~backend() { - if (--impl::retain_count == 0) + if (--retain_count == 0) { + log_info("shutting down SDL..."); FE_Quit(); SDL_Quit(); - - impl::is_initialized = false; } } bool backend::is_initialized() { - return impl::is_initialized; + return 0 < retain_count; }