diff options
author | Eric Anholt <eric@anholt.net> | 2013-12-05 13:02:51 -0800 |
---|---|---|
committer | Eric Anholt <eric@anholt.net> | 2013-12-05 13:02:51 -0800 |
commit | 8bb5a2545ee32a8eaea964a66fc291b517b1fe7e (patch) | |
tree | d1b356536570e4fe06307198885fd8eecfbf2b90 /src | |
parent | 20f03e65c45d0f906952c3dd4a2f990d02a8870c (diff) |
Fix extension detection on core GL contexts.
The nasty old strings were deprecated.
Diffstat (limited to 'src')
-rw-r--r-- | src/dispatch_common.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/dispatch_common.c b/src/dispatch_common.c index 90ff92a..e1cb500 100644 --- a/src/dispatch_common.c +++ b/src/dispatch_common.c @@ -271,8 +271,21 @@ epoxy_extension_in_string(const char *extension_list, const char *ext) PUBLIC bool epoxy_has_gl_extension(const char *ext) { - return epoxy_extension_in_string((const char *)glGetString(GL_EXTENSIONS), - ext); + if (epoxy_gl_version() < 30) { + return epoxy_extension_in_string((const char *)glGetString(GL_EXTENSIONS), + ext); + } else { + int num_extensions; + + glGetIntegerv(GL_NUM_EXTENSIONS, &num_extensions); + for (int i = 0; i < num_extensions; i++) { + char *gl_ext = (char *)glGetStringi(GL_EXTENSIONS, i); + if (strcmp(ext, gl_ext) == 0) + return true; + } + + return false; + } } bool |