diff -ruN ogrenew.orig/RenderSystems/GL/src/SDL/OgreSDLWindow.cpp ogrenew/RenderSystems/GL/src/SDL/OgreSDLWindow.cpp --- ogrenew.orig/RenderSystems/GL/src/SDL/OgreSDLWindow.cpp 2006-06-19 14:48:23.000000000 +0400 +++ ogrenew/RenderSystems/GL/src/SDL/OgreSDLWindow.cpp 2006-06-21 15:50:34.000000000 +0400 @@ -57,8 +57,10 @@ SDLWindow::~SDLWindow() { - if (mScreen != NULL) - SDL_FreeSurface(mScreen); + // according to http://www.libsdl.org/cgi/docwiki.cgi/SDL_5fSetVideoMode + // never free the surface returned from SDL_SetVideoMode + /*if (mScreen != NULL) + SDL_FreeSurface(mScreen);*/ } diff -ruN ogrenew.orig/RenderSystems/GL/include/OgreSDLWindow.h ogrenew.1/RenderSystems/GL/include/OgreSDLWindow.h --- ogrenew.orig/RenderSystems/GL/include/OgreSDLWindow.h 2006-06-19 14:48:23.000000000 +0400 +++ ogrenew.1/RenderSystems/GL/include/OgreSDLWindow.h 2006-06-27 15:37:21.000000000 +0400 @@ -70,6 +70,10 @@ } bool requiresTextureFlipping() const { return false; } + bool isFullScreen(void) const + { + return ( mScreen->flags & SDL_FULLSCREEN ) == SDL_FULLSCREEN; + } }; }