# This .cfg file is used to generate the interface to the GLX routines
# used internally by the X11GLContext implementation.
JavaOutputDir gensrc/classes
NativeOutputDir gensrc/native/jogl/X11

Package com.sun.opengl.impl.x11.glx
JavaClass GLX
Style allstatic
Include gl-common.cfg
Include gl-common-extensions.cfg
Include gl-desktop.cfg

GLHeader GL/glx.h
GLHeader GL/glxext.h

EmitProcAddressTable true
ProcAddressTableClassName GLXProcAddressTable
GetProcAddressTableExpr glxProcAddressTable
# This must be present for bootstrapping
SkipProcAddressGen glXGetProcAddressARB

Import com.sun.nativewindow.impl.x11.*


CustomJavaCode GLX private static GLXProcAddressTable glxProcAddressTable = new GLXProcAddressTable();
CustomJavaCode GLX public  static GLXProcAddressTable getGLXProcAddressTable() { return glxProcAddressTable; }

IncludeAs CustomJavaCode GLX glx-CustomJavaCode.java
IncludeAs CustomCCode        glx-CustomCCode.c

ArgumentIsString XOpenDisplay 0

Opaque long GLXFBConfig

Ignore glXCreateContextAttribsARB

#
# We have Custom code for the following
Ignore glXGetVisualFromFBConfig
Ignore glXGetVisualFromFBConfigSGIX
Ignore glXChooseFBConfig
Ignore glXChooseVisual

# 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 glXGetSyncValues
Ignore glXGetMscRate
Ignore glXSwapBuffersMsc
Ignore glXWaitForMsc
Ignore glXWaitForSbc

# Ignore non-GLX GL routines and constants
Ignore ^GL_.+
Ignore TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB
Ignore CLAMP_TO_EDGE_EXT
Ignore ^gl[^X].+
Ignore ^X.+
Ignore ^Visual.+

DropUniqVendorExtensions AMD
# We need GL_APPLE_float_pixels for our pbuffer implementation
# DropUniqVendorExtensions APPLE
DropUniqVendorExtensions ATI
DropUniqVendorExtensions HP
DropUniqVendorExtensions IBM
DropUniqVendorExtensions MESA
DropUniqVendorExtensions MESAX
DropUniqVendorExtensions NV
DropUniqVendorExtensions SGI
DropUniqVendorExtensions SGIS
DropUniqVendorExtensions SGIX
DropUniqVendorExtensions SUN
DropUniqVendorExtensions WIN

# Ignore the SGI hyperpipe extension, which will require more GlueGen
# work to expose the pipeName fields in the various structs
Ignore GLXHyperpipeNetworkSGIX
Ignore GLXHyperpipeConfigSGIX
Ignore GLXPipeRect
Ignore GLXPipeRectLimits