X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FVideo.cc;h=eeec47e7eb7d4dcc00b4a6b17fd732f8e61fc93a;hp=c49bb1e41124de28f0dfa1769ae4547c5d0f6377;hb=71bd9dbaf1c1e3c55a9f63392a73865d8aeee7d4;hpb=a31d65a998121df0651c57bfb68782e2a07d2e2f diff --git a/src/Moof/Video.cc b/src/Moof/Video.cc index c49bb1e..eeec47e 100644 --- a/src/Moof/Video.cc +++ b/src/Moof/Video.cc @@ -26,11 +26,11 @@ *******************************************************************************/ -#include - #include -#include "Dispatcher.hh" +#include "Dispatch.hh" +#include "Engine.hh" +#include "Exception.hh" #include "Log.hh" #include "Settings.hh" #include "Video.hh" @@ -65,6 +65,9 @@ Video::Video(const std::string& caption, const std::string& icon) void Video::init(const Attributes& attribs) { + // make sure the engine is initialized before setting up the video + Engine::getInstance(); + mContext = 0; mFlags = 0; mAttribs = attribs; @@ -129,15 +132,16 @@ void Video::setVideoMode(const long mode[3]) mAttribs.mode[1] = mode[1]; mAttribs.mode[2] = mode[2]; -#if defined(_WIN32) || defined (_WIN64) || defined(__WIN32__) +#if defined(_WIN32) || defined(__WIN32__) // on win32, creating a new context via SDL_SetVideoMode will wipe // out the GL state, so we gotta notify everyone to reload their // state after the change - Mf::dispatcher::dispatch("video.context_recreated"); + Engine::getInstance().dispatch("video.newcontext"); + logInfo("video context recreated"); #endif } - else throw Exception(Exception::SDL_ERROR); + else throw Exception(ErrorCode::SDL_VIDEOMODE); } } @@ -183,6 +187,11 @@ std::string Video::getCaption() const return mAttribs.caption; } +const std::string& Video::getIcon() const +{ + return mAttribs.icon; +} + void Video::setFull(bool full) { @@ -276,12 +285,6 @@ void Video::setCursorGrab(bool cursorGrab) } -void Video::makeActive() -{ - // NOP until the day SDL supports more than only one window. - // Still waiting... -} - void Video::swap() { SDL_GL_SwapBuffers();