-/* $Id: glxapi.c,v 1.8 1999/11/28 20:07:33 brianp Exp $ */
+/* $Id: glxapi.c,v 1.16 2000/04/10 21:13:19 brianp Exp $ */
/*
* Mesa 3-D graphics library
* Version: 3.3
*
- * Copyright (C) 1999 Brian Paul All Rights Reserved.
+ * Copyright (C) 1999-2000 Brian Paul All Rights Reserved.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
#include <assert.h>
#include <stdlib.h>
+#include "glapi.h"
#include "glxapi.h"
}
-void glXCopyContext(Display *dpy, GLXContext src, GLXContext dst, GLuint mask)
+void glXCopyContext(Display *dpy, GLXContext src, GLXContext dst, unsigned long mask)
{
struct _glxapi_table *t = get_dispatch(dpy);
if (!t)
#ifdef _GLXAPI_VERSION_1_3
-GLXFBConfig glXChooseFBConfig(Display *dpy, int screen, const int *attribList, int *nitems)
+GLXFBConfig *glXChooseFBConfig(Display *dpy, int screen, const int *attribList, int *nitems)
{
struct _glxapi_table *t = get_dispatch(dpy);
if (!t)
}
+GLXFBConfig *glXGetFBConfigs(Display *dpy, int screen, int *nelements)
+{
+ struct _glxapi_table *t = get_dispatch(dpy);
+ if (!t)
+ return 0;
+ return (t->GetFBConfigs)(dpy, screen, nelements);
+}
+
void glXGetSelectedEvent(Display *dpy, GLXDrawable drawable, unsigned long *mask)
{
struct _glxapi_table *t = get_dispatch(dpy);
{ "glXDestroyContext", (GLvoid *) glXDestroyContext },
{ "glXDestroyGLXPixmap", (GLvoid *) glXDestroyGLXPixmap },
{ "glXGetConfig", (GLvoid *) glXGetConfig },
+ { "glXGetCurrentContext", (GLvoid *) glXGetCurrentContext },
+ { "glXGetCurrentDrawable", (GLvoid *) glXGetCurrentDrawable },
{ "glXIsDirect", (GLvoid *) glXIsDirect },
{ "glXMakeCurrent", (GLvoid *) glXMakeCurrent },
{ "glXQueryExtension", (GLvoid *) glXQueryExtension },
#endif
#ifdef _GLXAPI_VERSION_1_2
- /*{ "glXGetCurrentDisplay", (GLvoid *) glXGetCurrentDisplay },*/
+ { "glXGetCurrentDisplay", (GLvoid *) glXGetCurrentDisplay },
#endif
#ifdef _GLXAPI_VERSION_1_3
{ "glXDestroyPbuffer", (GLvoid *) glXDestroyPbuffer },
{ "glXDestroyPixmap", (GLvoid *) glXDestroyPixmap },
{ "glXDestroyWindow", (GLvoid *) glXDestroyWindow },
+ { "glXGetCurrentReadDrawable", (GLvoid *) glXGetCurrentReadDrawable },
{ "glXGetFBConfigAttrib", (GLvoid *) glXGetFBConfigAttrib },
{ "glXGetSelectedEvent", (GLvoid *) glXGetSelectedEvent },
{ "glXGetVisualFromFBConfig", (GLvoid *) glXGetVisualFromFBConfig },
{ "glXSet3DfxModeMESA", (GLvoid *) glXSet3DfxModeMESA },
#endif
+ { "glXGetProcAddressARB", (GLvoid *) glXGetProcAddressARB },
+
{ NULL, NULL } /* end of list */
};
}
return NULL;
}
+
+
+
+/*
+ * This function does not get dispatched through the dispatch table
+ * since it's really a "meta" function.
+ */
+void (*glXGetProcAddressARB(const GLubyte *procName))()
+{
+ typedef void (*gl_function)();
+ gl_function f;
+
+ f = (gl_function) _glxapi_get_proc_address((const char *) procName);
+ if (f) {
+ return f;
+ }
+
+ f = (gl_function) _glapi_get_proc_address((const char *) procName);
+ return f;
+}