X-Git-Url: https://git.dogcows.com/gitweb?p=chaz%2Fyoink;a=blobdiff_plain;f=src%2FMoof%2FVideo.cc;h=62addb406dc804b7a31644ef586b3a43b3dd1dce;hp=544e172ad7a00dac196867689e69c8429fd7e0be;hb=4f9eb9259092994de9690cf12f11437c35a6791e;hpb=be9ebc1104574e5e81e19c5caba0c23b54df826d diff --git a/src/Moof/Video.cc b/src/Moof/Video.cc index 544e172..62addb4 100644 --- a/src/Moof/Video.cc +++ b/src/Moof/Video.cc @@ -27,7 +27,6 @@ *******************************************************************************/ #include "Dispatch.hh" -#include "Engine.hh" #include "Error.hh" #include "Image.hh" #include "Log.hh" @@ -76,6 +75,8 @@ void Video::init(const Attributes& attribs) setCursorVisible(attribs.cursorVisible); setCursorGrab(attribs.cursorGrab); setVideoMode(attribs.mode); + + video = this; } void Video::recreateContext() @@ -110,6 +111,8 @@ void Video::setOpenGLAttributes() Video::~Video() { SDL_FreeSurface(mContext); + + if (video == this) video = 0; } @@ -128,16 +131,12 @@ void Video::setVideoMode(const long mode[3]) mAttribs.mode[1] = mode[1]; mAttribs.mode[2] = mode[2]; -#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 - engine.dispatch("video.newcontext"); - +#if !defined(linux) && !defined(__linux) && !defined(__linux__) logInfo("video context recreated"); + core.dispatch("video.newcontext"); #endif } - else throw Error(Error::SDL_VIDEOMODE); + else Error(Error::SDL_VIDEOMODE).raise(); } } @@ -296,7 +295,7 @@ int Video::getHeight() const Video::Attributes::Attributes() { - // Set some sane GL and window defaults (see SDL_video.c:217) + // set some sane GL and window defaults (see SDL_video.c:217) colorBuffer[0] = 3; colorBuffer[1] = 3; colorBuffer[2] = 2; @@ -322,8 +321,6 @@ Video::Attributes::Attributes() cursorVisible = true; cursorGrab = false; - Settings& settings = Settings::getInstance(); - std::vector colors; settings.get("colorbuffers", colors); if (colors.size() > 0) colorBuffer[0] = colors[0]; @@ -383,8 +380,6 @@ Video::Attributes::Attributes() } else { - while (*(modes + 1)) ++modes; // skip to the last - mode[0] = (*modes)->w; mode[1] = (*modes)->h; Mf::logInfo << "choosing native resolution " @@ -395,6 +390,9 @@ Video::Attributes::Attributes() } +Video* video = 0; + + } // namespace Mf /** vim: set ts=4 sw=4 tw=80: *************************************************/