summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/Render.cpp
diff options
context:
space:
mode:
authorMat M <mathew1800@gmail.com>2017-09-02 17:10:59 -0400
committerGitHub <noreply@github.com>2017-09-02 17:10:59 -0400
commit657195fad5b613cfa19a3894fb1da70a169ceb93 (patch)
treee018ed03b9172287976773de153de553df1565f2 /Source/Core/VideoBackends/OGL/Render.cpp
parent30e01834e20d076d8f58849fbb31f5a33eb5a63a (diff)
parent658a4a6e2923ae0a8163eac3b77c50bcaef20322 (diff)
Merge pull request #6006 from JonnyH/WIP/parse-imgtec-gl_version-string
Parse IMGTEC's GL_VERSION string format
Diffstat (limited to 'Source/Core/VideoBackends/OGL/Render.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/Render.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/Source/Core/VideoBackends/OGL/Render.cpp b/Source/Core/VideoBackends/OGL/Render.cpp
index 8d02053fcc..adc58dff28 100644
--- a/Source/Core/VideoBackends/OGL/Render.cpp
+++ b/Source/Core/VideoBackends/OGL/Render.cpp
@@ -326,6 +326,29 @@ static void InitDriverInfo()
version = 100 * major + minor;
}
break;
+ case DriverDetails::VENDOR_IMGTEC:
+ {
+ // Example version string:
+ // "OpenGL ES 3.2 build 1.9@4850625"
+ // Ends up as "109.4850625" - "1.9" being the branch, "4850625" being the build's change ID
+ // The change ID only makes sense to compare within a branch
+ driver = DriverDetails::DRIVER_IMGTEC;
+ double gl_version;
+ int major, minor, change;
+ constexpr double change_scale = 10000000;
+ sscanf(g_ogl_config.gl_version, "OpenGL ES %lg build %d.%d@%d", &gl_version, &major, &minor,
+ &change);
+ version = 100 * major + minor;
+ if (change >= change_scale)
+ {
+ ERROR_LOG(VIDEO, "Version changeID overflow - change:%d scale:%f", change, change_scale);
+ }
+ else
+ {
+ version += static_cast<double>(change) / change_scale;
+ }
+ }
+ break;
// We don't care about these
default:
break;