gl_x11: always require some GLX API functions, avoid dlsym()

The functions glXGetProcAddressARB() and glXQueryExtensionsString() were
loaded using dlsym(). This could fail when compiling to libmpv, because
then dlopen(NULL, ...) will look in the main program's list of
libraries, and the libGL linked to libmpv is never considered. (Don't
know if this somehow could be worked around.) The result is that using
vo_opengl with libmpv can fail.

Avoid this by not using dlsym(). glXGetProcAddressARB() was already used
directly in the same file, and that never caused any problems. (Still
add it to the configure test.) glXQueryExtensionsString() is documented
as added in GLX 1.1 - that's ancient.
This commit is contained in:
wm4
2014-05-31 21:53:04 +02:00
parent 9f6e8d64de
commit 8178b80748
4 changed files with 8 additions and 19 deletions

View File

@@ -1,9 +1,12 @@
#include <X11/Xlib.h>
#include <GL/glx.h>
#include <GL/gl.h>
#include <stddef.h>
int main(int argc, char *argv[]) {
glXCreateContext(NULL, NULL, NULL, True);
glXQueryExtensionsString(NULL, 0);
glXGetProcAddressARB("");
glFinish();
return 0;
}