# This .cfg file is used to generate the interface to the GLX routines # used internally by the X11GLContext implementation. Package com.sun.opengl.impl.x11 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 dlopen(String name); CustomJavaCode GLX public static native long dlsym(String name); IncludeAs CustomCCode glx-CustomCCode.c ArgumentIsString XOpenDisplay 0 # Need to expose DefaultScreen and RootWindow macros to Java CustomJavaCode GLX public static native int DefaultScreen(long display); CustomJavaCode GLX public static native long RootWindow(long display, int screen); # Get returned array's capacity from XGetVisualInfo to be correct TemporaryCVariableDeclaration XGetVisualInfo int count; TemporaryCVariableAssignment XGetVisualInfo count = _ptr3[0]; ReturnValueCapacity XGetVisualInfo count * sizeof(XVisualInfo) # Helper routine to make the ReturnedArrayLength expression below work correctly CustomJavaCode GLX private static int getFirstElement(IntBuffer buf) { return buf.get(buf.position()); } CustomJavaCode GLX private static int getFirstElement(int[] arr, int offset) { return arr[offset]; } ReturnedArrayLength XGetVisualInfo getFirstElement({3}) ReturnValueCapacity glXChooseVisual sizeof(XVisualInfo) ReturnValueCapacity glXGetVisualFromFBConfig sizeof(XVisualInfo) ReturnValueCapacity glXGetVisualFromFBConfigSGIX sizeof(XVisualInfo) # 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].+