summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEmmanuele Bassi <ebassi@gnome.org>2018-02-24 14:03:06 +0000
committerEmmanuele Bassi <ebassi@gnome.org>2018-02-24 14:03:06 +0000
commite1ffd32d83d87c2bd90812f20344f253139d5c1b (patch)
tree29c51851bc28aab8dae7c132373811615ec3242e /src
parent1489c20770f882e2cf778190269d4abab5cc018e (diff)
downloadlibepoxy-e1ffd32d83d87c2bd90812f20344f253139d5c1b.tar.gz
Support encoding minor versions bigger than 10
The GL version minor numbers haven't hit 10, yet, but if they do we're going to get non-sensical encoded versions when calling epoxy_gl_version(), like we're getting right now, with the GLSL version numbers. If the minor number is larger than the multiplication factor used for the major number, we should bump up the factor to the next order of magnitude.
Diffstat (limited to 'src')
-rw-r--r--src/dispatch_common.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/dispatch_common.c b/src/dispatch_common.c
index d8baeee..72cda4c 100644
--- a/src/dispatch_common.c
+++ b/src/dispatch_common.c
@@ -395,7 +395,7 @@ static int
epoxy_internal_gl_version(GLenum version_string, int error_version)
{
const char *version = (const char *)glGetString(version_string);
- GLint major, minor;
+ GLint major, minor, factor;
int scanf_count;
if (!version)
@@ -412,7 +412,13 @@ epoxy_internal_gl_version(GLenum version_string, int error_version)
version);
exit(1);
}
- return 10 * major + minor;
+
+ if (minor >= 10)
+ factor = 100;
+ else
+ factor = 10;
+
+ return factor * major + minor;
}
/**
@@ -452,7 +458,7 @@ epoxy_conservative_gl_version(void)
*
* ```
*
- * version = major * 10 + minor
+ * version = major * 100 + minor
*
* ```
*