diff options
Diffstat (limited to 'make/glx-x11.cfg')
-rw-r--r-- | make/glx-x11.cfg | 86 |
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].+ |