diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2018-02-24 14:03:06 +0000 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2018-02-24 14:03:06 +0000 |
commit | e1ffd32d83d87c2bd90812f20344f253139d5c1b (patch) | |
tree | 29c51851bc28aab8dae7c132373811615ec3242e /src | |
parent | 1489c20770f882e2cf778190269d4abab5cc018e (diff) | |
download | libepoxy-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.c | 12 |
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 * * ``` * |