Improve OpenGL version parsing from string

master
Cloudef ago%!(EXTRA string=13 years) committed by Jari Vetoniemi
parent 28db982d0a
commit e06515eaa0
  1. 14
      src/opengl.c

@ -32,6 +32,7 @@
#include <string.h>
#include <limits.h>
#include <stdio.h>
//========================================================================
@ -42,13 +43,16 @@ static void parseGLVersion(int* major, int* minor, int* rev)
{
GLuint _major, _minor = 0, _rev = 0;
const GLubyte* version;
const GLubyte* ptr;
const char* glesPrefix = "OpenGL ES ";
version = glGetString(GL_VERSION);
if (!version)
return;
#if 0
// Old version detection code. This doesn't work very well
const GLubyte* ptr;
const char* glesPrefix = "OpenGL ES ";
if (strncmp((const char*) version, glesPrefix, strlen(glesPrefix)) == 0)
{
// The version string on OpenGL ES has a prefix before the version
@ -76,6 +80,12 @@ static void parseGLVersion(int* major, int* minor, int* rev)
_rev = 10 * _rev + (*ptr - '0');
}
}
#endif
// Find version from OpenGL string
for (; version &&
!sscanf(version, "%d.%d.%d", &_major, &_minor, &_rev);
++version);
// Store result
*major = _major;

Loading…
Cancel
Save