-/* $Id: glx.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */
+/* $Id: glx.h,v 1.2 1999/09/11 11:33:45 brianp Exp $ */
/*
* Mesa 3-D graphics library
/*
* $Log: glx.h,v $
- * Revision 1.1 1999/08/19 00:55:40 jtg
- * Initial revision
+ * Revision 1.2 1999/09/11 11:33:45 brianp
+ * added GLX_EXT_get_proc_address
+ *
+ * Revision 1.1.1.1 1999/08/19 00:55:40 jtg
+ * Imported sources
*
* Revision 3.3 1999/02/14 03:39:09 brianp
* new copyright
/*
* Compile-time extension tests
*/
-#ifdef MESA
#define GLX_EXT_visual_info 1
#define GLX_MESA_pixmap_colormap 1
#define GLX_MESA_release_buffers 1
#define GLX_MESA_copy_sub_buffer 1
#define GLX_SGI_video_sync 1
-#endif
+#define GLX_EXT_get_proc_address 1
extern const char *glXGetClientString( Display *dpy, int name );
+/* GLX_EXT_get_proc_address */
+extern GLfunction glXGetProcAddressEXT(const GLubyte *procName);
+
/*
* Mesa GLX Extensions
-/* $Id: fakeglx.c,v 1.2 1999/09/03 11:53:33 keithw Exp $ */
+/* $Id: fakeglx.c,v 1.3 1999/09/11 11:35:11 brianp Exp $ */
/*
* Mesa 3-D graphics library
(void) HPCR_DRGB;
(void) kernel1;
}
+
+
+GLfunction Fake_glXGetProcAddress( const GLubyte *procName )
+{
+ struct proc {
+ const char *name;
+ void *address;
+ };
+ static struct proc procTable[] = {
+ { "glXGetProcAddressEXT", glXGetProcAddressEXT }, /* myself! */
+ { "glXReleaseBuffersMESA", glXReleaseBuffersMESA },
+ { "glXReleaseBuffersMESA", glXReleaseBuffersMESA },
+ { "glXCopySubBufferMESA", glXCopySubBufferMESA },
+ /* NOTE: GLX_SGI_video_sync not implemented in Mesa */
+ { NULL, NULL } /* end of list token */
+ };
+ GLuint i;
+
+ /* First, look for core library functions */
+ for (i = 0; procTable[i].address; i++) {
+ if (strcmp((const char *) procName, procTable[i].name) == 0)
+ return (GLfunction) procTable[i].address;
+ }
+
+ return NULL;
+}
-/* $Id: glxapi.c,v 1.1 1999/08/19 00:55:42 jtg Exp $ */
+/* $Id: glxapi.c,v 1.2 1999/09/11 11:35:11 brianp Exp $ */
/*
* Mesa 3-D graphics library
}
#endif
+
+
+#ifdef GLX_EXT_get_proc_address
+GLfunction glXGetProcAddressEXT( const GLubyte *procName )
+{
+#ifdef REALGLX
+ return 0; /* XXX todo */
+#endif
+ return Fake_glXGetProcAddress( procName );
+}
+#endif