diff options
Diffstat (limited to 'src/native/ogl/NativeScreenInfo.c')
-rw-r--r-- | src/native/ogl/NativeScreenInfo.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/native/ogl/NativeScreenInfo.c b/src/native/ogl/NativeScreenInfo.c index 0c588c6..8ea4b17 100644 --- a/src/native/ogl/NativeScreenInfo.c +++ b/src/native/ogl/NativeScreenInfo.c @@ -16,6 +16,10 @@ * of the Java 3D API. */ +#if defined(__linux__) +#define _GNU_SOURCE 1 +#endif + #include <jni.h> #include <math.h> #include <stdio.h> @@ -26,6 +30,7 @@ #include <X11/X.h> #include <X11/Xlib.h> #include <X11/Xutil.h> +#include <dlfcn.h> #endif #ifdef WIN32 @@ -34,8 +39,6 @@ #if defined(SOLARIS) || defined(__linux__) -#pragma weak glXChooseFBConfig - /* * Class: javax_media_j3d_NativeScreenInfo @@ -79,7 +82,7 @@ Java_javax_media_j3d_NativeScreenInfo_queryGLX13( jlong display) { /* Fix for Issue 20 */ - void (*tmpfp)(); + MYPFNGLXCHOOSEFBCONFIG tmpfp; int major, minor; int errorBase, eventBase; Display* dpy = (Display*)display; @@ -111,7 +114,7 @@ Java_javax_media_j3d_NativeScreenInfo_queryGLX13( #elseif - tmpfp = (void (*)())glXChooseFBConfig; + tmpfp = (MYPFNGLXCHOOSEFBCONFIG)dlsym(RTLD_DEFAULT, "glXChooseFBConfig"); if (tmpfp == NULL) { glXQueryVersion(dpy, &major, &minor); |