aboutsummaryrefslogtreecommitdiffstats
path: root/src/native/ogl/NativeScreenInfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/native/ogl/NativeScreenInfo.c')
-rw-r--r--src/native/ogl/NativeScreenInfo.c11
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);