From fe2ee9ecf5709d49279265f0e5d3b2d0a5688265 Mon Sep 17 00:00:00 2001 From: Johannes Schickel Date: Fri, 11 Dec 2015 19:23:41 +0100 Subject: OPENGL: Refactor screen refresh handling. Subclasses of OpenGLGraphicsManager are now supposed to supply a refreshScreen function which handles actual screen updating (for example, buffer swapping). --- backends/graphics/openglsdl/openglsdl-graphics.cpp | 16 +++++++++------- backends/graphics/openglsdl/openglsdl-graphics.h | 2 ++ 2 files changed, 11 insertions(+), 7 deletions(-) (limited to 'backends/graphics/openglsdl') diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp index 42327197b7..892dfc6cd3 100644 --- a/backends/graphics/openglsdl/openglsdl-graphics.cpp +++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp @@ -236,13 +236,6 @@ void OpenGLSdlGraphicsManager::updateScreen() { } OpenGLGraphicsManager::updateScreen(); - - // Swap OpenGL buffers -#if SDL_VERSION_ATLEAST(2, 0, 0) - SDL_GL_SwapWindow(_window->getSDLWindow()); -#else - SDL_GL_SwapBuffers(); -#endif } void OpenGLSdlGraphicsManager::notifyVideoExpose() { @@ -301,6 +294,15 @@ bool OpenGLSdlGraphicsManager::loadVideoMode(uint requestedWidth, uint requested return setupMode(requestedWidth, requestedHeight); } +void OpenGLSdlGraphicsManager::refreshScreen() { + // Swap OpenGL buffers +#if SDL_VERSION_ATLEAST(2, 0, 0) + SDL_GL_SwapWindow(_window->getSDLWindow()); +#else + SDL_GL_SwapBuffers(); +#endif +} + bool OpenGLSdlGraphicsManager::setupMode(uint width, uint height) { // In case we request a fullscreen mode we will use the mode the user // has chosen last time or the biggest mode available. diff --git a/backends/graphics/openglsdl/openglsdl-graphics.h b/backends/graphics/openglsdl/openglsdl-graphics.h index 845880eb14..1552593575 100644 --- a/backends/graphics/openglsdl/openglsdl-graphics.h +++ b/backends/graphics/openglsdl/openglsdl-graphics.h @@ -65,6 +65,8 @@ protected: virtual void setInternalMousePosition(int x, int y); virtual bool loadVideoMode(uint requestedWidth, uint requestedHeight, const Graphics::PixelFormat &format); + + virtual void refreshScreen(); private: bool setupMode(uint width, uint height); -- cgit v1.2.3