# This .cfg file is used to generate the interface and implementing # class for the GLX extensions. Package net.java.games.jogl.impl.x11 Style InterfaceAndImpl JavaClass GLXExt ImplPackage net.java.games.jogl.impl.x11 ImplJavaClass GLXExtImpl Include gl-common-x11.cfg EmitProcAddressTable true ProcAddressTableClassName GLXExtProcAddressTable ContextVariableName _context # Ignore everything that doesn't start with glX or GLX IgnoreNot ^(glX|GLX).+ CustomCCode #include CustomCCode #include CustomCCode #include CustomCCode /* Define GL_GLEXT_PROTOTYPES so that the OpenGL extension prototypes in CustomCCode "glext.h" are parsed. */ CustomCCode #define GL_GLEXT_PROTOTYPES CustomCCode /* Define GLX_GLXEXT_PROTOTYPES so that the OpenGL extension prototypes in CustomCCode "glxext.h" are parsed. */ CustomCCode #define GLX_GLXEXT_PROTOTYPES CustomCCode /* Include the OpenGL headers */ CustomCCode #include CustomCCode #include CustomCCode #include CustomCCode /* Provide Windows typedefs */ CustomCCode typedef void* LPVOID; CustomCCode typedef unsigned int* PUINT; CustomJavaCode GLXExt public boolean isFunctionAvailable(String glFunctionName); CustomJavaCode GLXExt public boolean isExtensionAvailable(String glExtensionName); CustomJavaCode GLXExtImpl public GLXExtImpl(X11GLContext context) { CustomJavaCode GLXExtImpl this._context = context; CustomJavaCode GLXExtImpl } CustomJavaCode GLXExtImpl public boolean isFunctionAvailable(String glFunctionName) CustomJavaCode GLXExtImpl { CustomJavaCode GLXExtImpl return _context.isFunctionAvailable(glFunctionName); CustomJavaCode GLXExtImpl } CustomJavaCode GLXExtImpl public boolean isExtensionAvailable(String glExtensionName) CustomJavaCode GLXExtImpl { CustomJavaCode GLXExtImpl return _context.isExtensionAvailable(glExtensionName); CustomJavaCode GLXExtImpl } CustomJavaCode GLXExtImpl private X11GLContext _context; # These Ignores cause the core GLX routines to be ignored from the # GLXExt interface and GLXExtImpl implementing class. Ignore glXChooseVisual Ignore glXCreateContext Ignore glXDestroyContext Ignore glXMakeCurrent Ignore glXCopyContext Ignore glXSwapBuffers Ignore glXCreateGLXPixmap Ignore glXDestroyGLXPixmap Ignore glXQueryExtension Ignore glXQueryVersion Ignore glXIsDirect Ignore glXGetConfig Ignore glXGetCurrentContext Ignore glXGetCurrentDrawable Ignore glXWaitGL Ignore glXWaitX Ignore glXUseXFont Ignore glXQueryExtensionsString Ignore glXQueryServerString Ignore glXGetClientString Ignore glXGetCurrentDisplay Ignore glXChooseFBConfig Ignore glXGetFBConfigAttrib Ignore glXGetFBConfigs Ignore glXGetVisualFromFBConfig Ignore glXCreateWindow Ignore glXDestroyWindow Ignore glXCreatePixmap Ignore glXDestroyPixmap Ignore glXCreatePbuffer Ignore glXDestroyPbuffer Ignore glXQueryDrawable Ignore glXCreateNewContext Ignore glXMakeContextCurrent Ignore glXGetCurrentReadDrawable Ignore glXQueryContext Ignore glXSelectEvent Ignore glXGetSelectedEvent Ignore glXGetProcAddress # Ignore a few extensions that bring in data types we don't want to # expose in the public API (and that are useless anyway without # exposing more of the implementation) Ignore glXGetFBConfigAttribSGIX Ignore glXChooseFBConfigSGIX Ignore glXCreateGLXPixmapWithConfigSGIX Ignore glXCreateContextWithConfigSGIX Ignore glXGetVisualFromFBConfigSGIX Ignore glXGetFBConfigFromVisualSGIX Ignore glXCreateGLXPbufferSGIX Ignore glXDestroyGLXPbufferSGIX Ignore glXQueryGLXPbufferSGIX Ignore glXSelectEventSGIX Ignore glXGetSelectedEventSGIX Ignore glXCreateGLXPixmapMESA # Now we can ignore the GLXFBConfig and XVisualInfo data types Ignore GLXFBConfig Ignore XVisualInfo # Ignore the SGI hyperpipe extension, which will require more GlueGen # work to expose the pipeName fields in the various structs Ignore glXQueryHyperpipeNetworkSGIX Ignore glXHyperpipeConfigSGIX Ignore glXQueryHyperpipeConfigSGIX Ignore glXDestroyHyperpipeConfigSGIX Ignore glXBindHyperpipeSGIX Ignore glXQueryHyperpipeBestAttribSGIX Ignore glXHyperpipeAttribSGIX Ignore glXQueryHyperpipeAttribSGIX Ignore GLXHyperpipeNetworkSGIX Ignore GLXHyperpipeConfigSGIX Ignore GLXPipeRect Ignore GLXPipeRectLimits # XID shows up in the public API (and shouldn't -- will be removed in # the JSR 231/239 APIs) and needs to be treated as a long for now Opaque long XID