###############################################################################
# Copyright (c) 2000, 2005 IBM Corporation and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#     IBM Corporation - initial API and implementation
###############################################################################
org_eclipse_swt_internal_opengl_glx_GLX=
GLX_glGetIntegerv=
GLX_glGetIntegerv_0=cast=(GLenum)
GLX_glGetIntegerv_1=cast=(GLint *),flags=no_in

GLX_glViewport=
GLX_glViewport_0=cast=(GLint)
GLX_glViewport_1=cast=(GLint)
GLX_glViewport_2=cast=(GLsizei)
GLX_glViewport_3=cast=(GLsizei)

GLX_glXChooseVisual=
GLX_glXChooseVisual_0=cast=(Display *)
GLX_glXChooseVisual_1=
GLX_glXChooseVisual_2=

GLX_glXCopyContext=
GLX_glXCopyContext_0=cast=(Display *)
GLX_glXCopyContext_1=cast=(GLXContext)
GLX_glXCopyContext_2=cast=(GLXContext)
GLX_glXCopyContext_3=

GLX_glXCreateContext=
GLX_glXCreateContext_0=cast=(Display *)
GLX_glXCreateContext_1=
GLX_glXCreateContext_2=cast=(GLXContext)
GLX_glXCreateContext_3=

GLX_glXCreateGLXPixmap=
GLX_glXCreateGLXPixmap_0=cast=(Display *)
GLX_glXCreateGLXPixmap_1=
GLX_glXCreateGLXPixmap_2=cast=(Pixmap)

GLX_glXDestroyContext=
GLX_glXDestroyContext_0=cast=(Display *)
GLX_glXDestroyContext_1=cast=(GLXContext)

GLX_glXDestroyGLXPixmap=
GLX_glXDestroyGLXPixmap_0=cast=(Display *)
GLX_glXDestroyGLXPixmap_1=cast=(GLXPixmap)

GLX_glXGetClientString=
GLX_glXGetClientString_0=cast=(Display *)
GLX_glXGetClientString_1=

GLX_glXGetConfig=
GLX_glXGetConfig_0=cast=(Display *)
GLX_glXGetConfig_1=
GLX_glXGetConfig_2=
GLX_glXGetConfig_3=

GLX_glXGetCurrentContext=

GLX_glXGetCurrentDrawable=

GLX_glXIsDirect=
GLX_glXIsDirect_0=cast=(Display *)
GLX_glXIsDirect_1=cast=(GLXContext)

GLX_glXMakeCurrent=
GLX_glXMakeCurrent_0=cast=(Display *)
GLX_glXMakeCurrent_1=cast=(GLXDrawable)
GLX_glXMakeCurrent_2=cast=(GLXContext)

GLX_glXQueryExtension=
GLX_glXQueryExtension_0=cast=(Display *)
GLX_glXQueryExtension_1=
GLX_glXQueryExtension_2=

GLX_glXQueryExtensionsString=
GLX_glXQueryExtensionsString_0=cast=(Display *)
GLX_glXQueryExtensionsString_1=

GLX_glXQueryServerString=
GLX_glXQueryServerString_0=cast=(Display *)
GLX_glXQueryServerString_1=
GLX_glXQueryServerString_2=

GLX_glXQueryVersion=
GLX_glXQueryVersion_0=cast=(Display *)
GLX_glXQueryVersion_1=flags=no_in
GLX_glXQueryVersion_2=flags=no_in

GLX_glXSwapBuffers=
GLX_glXSwapBuffers_0=cast=(Display *)
GLX_glXSwapBuffers_1=cast=(GLXDrawable)

GLX_glXWaitGL=

GLX_glXWaitX=

GLX_memmove=
GLX_memmove_0=
GLX_memmove_1=cast=(const void *)
GLX_memmove_2=cast=(size_t)


org_eclipse_swt_internal_opengl_glx_XVisualInfo=
XVisualInfo_visual=cast=(Visual *)
XVisualInfo_visualid=
XVisualInfo_screen=
XVisualInfo_depth=
XVisualInfo_cclass=accessor=class
XVisualInfo_red_mask=
XVisualInfo_green_mask=
XVisualInfo_blue_mask=
XVisualInfo_colormap_size=
XVisualInfo_bits_per_rgb=

