From de4936399e8e30e168cf119452311f227cba2200 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anselme=20FRAN=C3=87OIS?= Date: Sat, 17 Oct 2015 21:04:38 +0200 Subject: [PATCH] added a test for compatibility --- sparrowrenderer.cpp | 23 ++++++++++++++--------- sparrowrenderer.h | 2 +- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/sparrowrenderer.cpp b/sparrowrenderer.cpp index b559b79..323a86c 100644 --- a/sparrowrenderer.cpp +++ b/sparrowrenderer.cpp @@ -9,24 +9,29 @@ bool SparrowRenderer::modernOpenglAvailable = false; -void SparrowRenderer::initGL(int width, int height) +void SparrowRenderer::initGL(int width, int height, bool forceCrappy) { glewExperimental = GL_TRUE; GLenum err = glewInit(); if (GLEW_OK != err) fprintf(stderr, "Warning: glewInit failed!\n"); - if (!GLEW_ARB_vertex_program || - !GLEW_ARB_fragment_program || - !GLEW_ARB_texture_float || - !GLEW_ARB_draw_buffers || - !GLEW_ARB_framebuffer_object || - !glewIsSupported("GL_VERSION_3_3")) + if (!forceCrappy && + GLEW_ARB_vertex_program && + GLEW_ARB_fragment_program && + GLEW_ARB_texture_float && + GLEW_ARB_draw_buffers && + GLEW_ARB_framebuffer_object && + glewIsSupported("GL_VERSION_3_3") && + GLEW_VERSION_3_3) + { + modernOpenglAvailable = true; + printf("Modern OpenGL available.\n"); + } + else { modernOpenglAvailable = false; fprintf(stderr, "Warning: modern OpenGL not supported!\nEnabling fallback crappy rendering mode\n"); } - else - modernOpenglAvailable = true; std::cout << "OpenGL version " << glGetString(GL_VERSION) << std::endl; std::cout << "GLSL version " << glGetString(GL_SHADING_LANGUAGE_VERSION) << std::endl; diff --git a/sparrowrenderer.h b/sparrowrenderer.h index a60c967..53f6ca4 100644 --- a/sparrowrenderer.h +++ b/sparrowrenderer.h @@ -11,7 +11,7 @@ class SparrowRenderer { public: // main methods - void initGL(int width, int height); + void initGL(int width, int height, bool forceCrappy = false); void destroyGL(); void resizeGL(int width, int height); void renderGL();