Skip to content
Snippets Groups Projects
Commit 88df6bce authored by Philip Trettner's avatar Philip Trettner
Browse files

Merge branch 'feature/query-old-ogl-version' into 'develop'

Fixed version query for ogl < 3.0

See merge request !88
parents 7f198ac7 de1aba91
No related branches found
No related tags found
1 merge request!88Fixed version query for ogl < 3.0
......@@ -78,11 +78,36 @@ GlfwContext::GlfwContext()
#define GL_CALL
#endif
using glGetIntegerFunc = void GL_CALL(GLenum, GLint*);
auto getGlInt = reinterpret_cast<glGetIntegerFunc*>(glfwGetProcAddress("glGetIntegerv"));
GLint gmajor, gminor;
getGlInt(GL_MAJOR_VERSION, &gmajor);
getGlInt(GL_MINOR_VERSION, &gminor);
using glGetStringFunc = GLubyte* GL_CALL(GLenum);
auto getString = reinterpret_cast<glGetStringFunc*>(glfwGetProcAddress("glGetString"));
// taken from glad
GLint gmajor;
GLint gminor;
const char* version;
const char* prefixes[] = {"OpenGL ES-CM ", "OpenGL ES-CL ", "OpenGL ES ", NULL};
version = (const char*)getString(GL_VERSION);
if (!version)
return;
for (auto i = 0; prefixes[i]; i++)
{
const size_t length = strlen(prefixes[i]);
if (strncmp(version, prefixes[i], length) == 0)
{
version += length;
break;
}
}
#ifdef _MSC_VER
sscanf_s(version, "%d.%d", &gmajor, &gminor);
#else
sscanf(version, "%d.%d", &gmajor, &gminor);
#endif
if (gmajor * 10 + gminor < 33)
{
std::cerr << "OpenGL Version below 3.3. Trying to get at least 3.3." << std::endl;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment