summaryrefslogtreecommitdiffstats
path: root/make/glx-x11.cfg
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2003-07-03 00:09:30 +0000
committerKenneth Russel <[email protected]>2003-07-03 00:09:30 +0000
commit93d272a0525ec57aa3cd584f15cde6cf2a637e0c (patch)
tree3d6c9f2a305539d26c7449566bbb0d72bf74b12c /make/glx-x11.cfg
parent37d90a0da397a1958fb101051170a60f871fb8cc (diff)
Added pbuffer support to JOGL on X11; HWShadowmapsSimple and
ProceduralTexturePhysics demos are now working on Linux with the appropriate hardware. Moved core GLX routines out of the public GLX interface; this allowed XVisualInfo (and the new GLXFBConfig) to be removed from the public API. Added support to GlueGen for returning arrays of pointers as arrays of StructAccessors in Java and for choosing the typedef name for a pointer-to-struct if the struct itself does not have a typedef name. Added support to GLEmitter to emit ProcAddressTables under arbitrary names and to support arbitrary mechanisms for fetching those tables. Made GLU (on all platforms) and GLX (on X11) be dynamically linked. Refactored ProcAddressTable filling to be mostly shared code. Tested changes on Linux, Mac OS X and Windows. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@17 232f8b59-042b-4e1e-8c03-345bb8c30851
Diffstat (limited to 'make/glx-x11.cfg')
-rw-r--r--make/glx-x11.cfg86
1 files changed, 83 insertions, 3 deletions
diff --git a/make/glx-x11.cfg b/make/glx-x11.cfg
index f9a69c0b3..39098f0a8 100644
--- a/make/glx-x11.cfg
+++ b/make/glx-x11.cfg
@@ -5,13 +5,24 @@ JavaClass GLX
Style allstatic
Include gl-common-x11.cfg
+EmitProcAddressTable true
+ProcAddressTableClassName GLXProcAddressTable
+GetProcAddressTableExpr glxProcAddressTable
+# This must be present for bootstrapping
+SkipProcAddressGen glXGetProcAddressARB
+
+CustomJavaCode GLX private static GLXProcAddressTable glxProcAddressTable = new GLXProcAddressTable();
+CustomJavaCode GLX public static GLXProcAddressTable getGLXProcAddressTable() { return glxProcAddressTable; }
+CustomJavaCode GLX public static native long dlsym(String name);
+
CustomCCode #include <inttypes.h>
CustomCCode #include <X11/Xlib.h>
CustomCCode #include <X11/Xutil.h>
CustomCCode #include <GL/glx.h>
-
-# Pick up XVisualInfo from jogl
-Ignore XVisualInfo
+CustomCCode /* Linux headers don't work properly */
+CustomCCode #define __USE_GNU
+CustomCCode #include <dlfcn.h>
+CustomCCode #undef __USE_GNU
ArgumentIsString XOpenDisplay 0
@@ -26,3 +37,72 @@ CustomCCode JNIEXPORT jlong JNICALL
CustomCCode Java_net_java_games_jogl_impl_x11_GLX_RootWindow(JNIEnv *env, jclass _unused, jlong display, jint screen) {
CustomCCode return RootWindow((Display*) (intptr_t) display, screen);
CustomCCode }
+CustomCCode JNIEXPORT jlong JNICALL
+CustomCCode Java_net_java_games_jogl_impl_x11_GLX_dlsym(JNIEnv *env, jclass _unused, jstring name) {
+CustomCCode const jbyte* chars;
+CustomCCode void* res;
+CustomCCode chars = (*env)->GetStringUTFChars(env, name, NULL);
+CustomCCode res = dlsym(RTLD_DEFAULT, chars);
+CustomCCode (*env)->ReleaseStringUTFChars(env, name, chars);
+CustomCCode return (jlong) ((intptr_t) res);
+CustomCCode }
+
+# Ignore everything not in the GLX core (up through GLX 1.4) aside from glXGetProcAddress
+# FIXME: this needs to be kept in sync with the stub headers more than usual
+Ignore glXFreeContextEXT
+Ignore glXGetContextIDEXT
+Ignore glXGetCurrentDisplayEXT
+Ignore glXImportContextEXT
+Ignore glXQueryContextInfoEXT
+
+Ignore glXCopySubBufferMESA
+Ignore glXCreateGLXPixmapMESA
+Ignore glXReleaseBuffersMESA
+Ignore glXSet3DfxModeMESA
+
+Ignore glXGetSyncValuesOML
+Ignore glXGetMscRateOML
+Ignore glXSwapBuffersMscOML
+Ignore glXWaitForMscOML
+Ignore glXWaitForSbcOML
+
+Ignore glXAllocateMemoryNV
+Ignore glXFreeMemoryNV
+
+Ignore glXCushionSGI
+Ignore glXGetVideoSyncSGI
+Ignore glXWaitVideoSyncSGI
+Ignore glXSwapIntervalSGI
+Ignore glXMakeCurrentReadSGI
+Ignore glXGetCurrentReadDrawableSGI
+
+Ignore glXCreateGLXVideoSourceSGIX
+Ignore glXDestroyGLXVideoSourceSGIX
+Ignore glXGetFBConfigAttribSGIX
+Ignore glXChooseFBConfigSGIX
+Ignore glXCreateGLXPixmapWithConfigSGIX
+Ignore glXCreateContextWithConfigSGIX
+Ignore glXGetVisualFromFBConfigSGIX
+Ignore glXGetFBConfigFromVisualSGIX
+Ignore glXCreateGLXPbufferSGIX
+Ignore glXDestroyGLXPbufferSGIX
+Ignore glXQueryGLXPbufferSGIX
+Ignore glXSelectEventSGIX
+Ignore glXGetSelectedEventSGIX
+Ignore glXBindChannelToWindowSGIX
+Ignore glXChannelRectSGIX
+Ignore glXQueryChannelRectSGIX
+Ignore glXQueryChannelDeltasSGIX
+Ignore glXChannelRectSyncSGIX
+Ignore glXAssociateDMPbufferSGIX
+Ignore glXJoinSwapGroupSGIX
+Ignore glXBindSwapBarrierSGIX
+Ignore glXQueryMaxSwapBarriersSGIX
+
+Ignore glXGetTransparentIndexSUN
+
+# Ignore non-GLX GL routines and constants
+Ignore ^GL_.+
+Ignore TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
+Ignore CLAMP_TO_EDGE_EXT
+Ignore ^gl[^X].+