mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-07 19:36:21 +00:00
OPENGL: Fix GLSL version parsing
Some old GLES2 implementation did have a different version prefix. Be more relax like almost everyone and look for the first digit to start parsing.
This commit is contained in:
parent
6990c1ccbf
commit
03a53b1a1e
@ -359,16 +359,20 @@ int Context::getGLSLVersion() const {
|
||||
return 0;
|
||||
}
|
||||
|
||||
const char *glslVersionFormat;
|
||||
if (type == kContextGL) {
|
||||
glslVersionFormat = "%d.%d";
|
||||
} else {
|
||||
glslVersionFormat = "OpenGL ES GLSL ES %d.%d";
|
||||
// Search for the first digit in the version string and parse from there
|
||||
const char *glslVersionStringNum;
|
||||
for (glslVersionStringNum = glslVersionString; *glslVersionStringNum != '\0'; glslVersionStringNum++) {
|
||||
if (*glslVersionStringNum >= '0' &&
|
||||
*glslVersionStringNum <= '9') {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Here *glslVersionStringNum is either a digit or a NUL character
|
||||
|
||||
int glslMajorVersion, glslMinorVersion;
|
||||
if (sscanf(glslVersionString, glslVersionFormat, &glslMajorVersion, &glslMinorVersion) != 2) {
|
||||
warning("Could not parse GLSL version '%s'", glslVersionString);
|
||||
if (sscanf(glslVersionStringNum, "%d.%d", &glslMajorVersion, &glslMinorVersion) != 2) {
|
||||
warning("Could not parse GLSL version '%s' extracted from '%s'", glslVersionStringNum, glslVersionString);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user