added GLX_EXT_get_proc_address
authorBrian Paul <brian.paul@tungstengraphics.com>
Sat, 11 Sep 1999 11:33:45 +0000 (11:33 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Sat, 11 Sep 1999 11:33:45 +0000 (11:33 +0000)
include/GL/glx.h
src/mesa/drivers/x11/fakeglx.c
src/mesa/drivers/x11/glxapi.c

index 4b27880eba9d195246ba93187aab11dc373e9302..4163fe2857909f5335cab9e55c34d2594a5f8ef9 100644 (file)
@@ -1,4 +1,4 @@
-/* $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
@@ -154,13 +157,12 @@ enum _GLX_CONFIGS {
 /*
  * 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
 
 
 
@@ -227,6 +229,9 @@ extern const char *glXQueryServerString( Display *dpy, int screen, int name );
 extern const char *glXGetClientString( Display *dpy, int name );
 
 
+/* GLX_EXT_get_proc_address */
+extern GLfunction glXGetProcAddressEXT(const GLubyte *procName);
+
 
 /*
  * Mesa GLX Extensions
index 2704e35ad59754e808522f602cf80b9247c8c37d..108c557019143fe4f292309fd0ad98dfecdc9282 100644 (file)
@@ -1,4 +1,4 @@
-/* $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
@@ -1472,3 +1472,29 @@ void Fake_glXDummyFunc( void )
    (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;
+}
index b65bada72b9e0d72e831212b6da4e67939aa6020..23b23b90cb4050dfb5a94ec79a4fc15c6638536b 100644 (file)
@@ -1,4 +1,4 @@
-/* $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
@@ -403,3 +403,14 @@ int glXWaitVideoSyncSGI(int divisor, int remainder, unsigned int *count)
 }
 
 #endif
+
+
+#ifdef GLX_EXT_get_proc_address
+GLfunction glXGetProcAddressEXT( const GLubyte *procName )
+{
+#ifdef REALGLX
+   return 0;  /* XXX todo */
+#endif
+   return Fake_glXGetProcAddress( procName );
+}
+#endif