X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fbackends%2Fopengl%2Fbackend_opengl.cpp;fp=source%2Fbackends%2Fopengl%2Fbackend_opengl.cpp;h=ce8fc17b181768b274279a9809013d691dcb5bd2;hb=160e9eea29bd10034733d59507fa1bcca36be401;hp=0000000000000000000000000000000000000000;hpb=93448d16e72e38afbaecbccf6fdedd46d6a82a73;p=libs%2Fgl.git diff --git a/source/backends/opengl/backend_opengl.cpp b/source/backends/opengl/backend_opengl.cpp new file mode 100644 index 00000000..ce8fc17b --- /dev/null +++ b/source/backends/opengl/backend_opengl.cpp @@ -0,0 +1,49 @@ +#include +#include +#include "backend.h" +#include "gl.h" + +using namespace std; + +namespace Msp { +namespace GL { + +GraphicsApi get_backend_api() +{ +#ifdef GL_ES_VERSION_2_0 + return OPENGL_ES; +#else + return OPENGL; +#endif +} + +inline Version get_gl_version() +{ + const char *gl_ver_ptr = reinterpret_cast(glGetString(GL_VERSION)); + if(!gl_ver_ptr) + throw runtime_error("OpenGL version not available"); + + string gl_ver = gl_ver_ptr; + if(!gl_ver.compare(0, 10, "OpenGL ES ")) + gl_ver.erase(0, 10); + + Version ver(gl_ver.substr(0, gl_ver.find(' '))); + + if(const char *force_ver_ptr = getenv("MSPGL_FORCE_VERSION")) + { + Version force_ver(force_ver_ptr); + if(force_ver