summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2013-12-05 13:02:51 -0800
committerEric Anholt <eric@anholt.net>2013-12-05 13:02:51 -0800
commit8bb5a2545ee32a8eaea964a66fc291b517b1fe7e (patch)
treed1b356536570e4fe06307198885fd8eecfbf2b90 /src
parent20f03e65c45d0f906952c3dd4a2f990d02a8870c (diff)
Fix extension detection on core GL contexts.
The nasty old strings were deprecated.
Diffstat (limited to 'src')
-rw-r--r--src/dispatch_common.c17
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