From 410dd6c3d845cc0e19fd678090d95669bdeb5885 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Sun, 8 Jun 2014 01:04:33 +0300 Subject: Add Modern OpenGL render type. Now it using normal OpenGL renderer. --- src/graphicsmanager.cpp | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/graphicsmanager.cpp') diff --git a/src/graphicsmanager.cpp b/src/graphicsmanager.cpp index 90f723f82..33cbd0224 100644 --- a/src/graphicsmanager.cpp +++ b/src/graphicsmanager.cpp @@ -272,6 +272,7 @@ void GraphicsManager::createRenderers() mUseTextureSampler = false; break; case RENDER_NORMAL_OPENGL: + case RENDER_MODERN_OPENGL: #ifndef USE_SDL2 case RENDER_SDL2_DEFAULT: #endif @@ -328,6 +329,7 @@ void GraphicsManager::createRenderers() case RENDER_SOFTWARE: case RENDER_SAFE_OPENGL: case RENDER_GLES_OPENGL: + case RENDER_MODERN_OPENGL: case RENDER_NORMAL_OPENGL: case RENDER_NULL: case RENDER_LAST: @@ -450,18 +452,30 @@ void GraphicsManager::initGraphics() detectPixelSize(); setVideoMode(); #ifdef USE_OPENGL + const RenderType oldOpenGLMode = openGLMode; + if (openGLMode == RENDER_MODERN_OPENGL) + { + if (!checkGLVersion(3, 0)) + { + logger->log("Fallback to normal OpenGL mode"); + openGLMode = RENDER_NORMAL_OPENGL; + } + } if (openGLMode == RENDER_NORMAL_OPENGL || openGLMode == RENDER_GLES_OPENGL) { if (!checkGLVersion(2, 0)) { logger->log("Fallback to safe OpenGL mode"); openGLMode = RENDER_SAFE_OPENGL; - deleteRenderers(); - createRenderers(); - detectPixelSize(); - setVideoMode(); } } + if (openGLMode != oldOpenGLMode) + { + deleteRenderers(); + createRenderers(); + detectPixelSize(); + setVideoMode(); + } #endif } @@ -688,9 +702,6 @@ void GraphicsManager::updateTextureFormat() const logger->log1("using 4 texture format"); } } -#endif - -#ifdef USE_OPENGL void GraphicsManager::logString(const char *const format, const int num) { -- cgit v1.2.3-60-g2f50