added OSMesaGetProcAddress()
authorBrian Paul <brian.paul@tungstengraphics.com>
Thu, 4 Apr 2002 16:58:04 +0000 (16:58 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Thu, 4 Apr 2002 16:58:04 +0000 (16:58 +0000)
include/GL/osmesa.h
src/mesa/drivers/osmesa/osmesa.c

index 63ce843b6825c3d8c8cf2036429470412048bba2..d9412378121ea3b4e541ceb91f282c703644db3e 100644 (file)
@@ -1,10 +1,10 @@
-/* $Id: osmesa.h,v 1.9 2001/09/23 16:06:13 brianp Exp $ */
+/* $Id: osmesa.h,v 1.10 2002/04/04 16:58:04 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.0
+ * Version:  4.1
  * 
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2002  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"),
@@ -63,7 +63,7 @@ extern "C" {
 
 
 #define OSMESA_MAJOR_VERSION 4
-#define OSMESA_MINOR_VERSION 0
+#define OSMESA_MINOR_VERSION 1
 #define OSMESA_PATCH_VERSION 0
 
 
@@ -254,6 +254,15 @@ OSMesaGetColorBuffer( OSMesaContext c, GLint *width, GLint *height,
 
 
 
+/*
+ * Return pointer to the named function.
+ *
+ * New in Mesa 4.1
+ */
+GLAPI void * GLAPIENTRY
+OSMesaGetProcAddress( const char *funcName );
+
+
 #if defined(__BEOS__) || defined(__QUICKDRAW__)
 #pragma export off
 #endif
index b7b667dd73907df8ca5ee0be5e37f7eeb8e77ba7..4fdf290383f81554d557d0a579c663422d6bb3bf 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: osmesa.c,v 1.77 2002/04/04 00:54:02 brianp Exp $ */
+/* $Id: osmesa.c,v 1.78 2002/04/04 16:58:04 brianp Exp $ */
 
 /*
  * Mesa 3-D graphics library
@@ -621,6 +621,39 @@ OSMesaGetColorBuffer( OSMesaContext c, GLint *width,
    }
 }
 
+
+
+struct name_address {
+   const char *Name;
+   GLvoid *Address;
+};
+
+static struct name_address functions[] = {
+   { "OSMesaCreateContext", (void *) OSMesaCreateContext },
+   { "OSMesaCreateContextExt", (void *) OSMesaCreateContextExt },
+   { "OSMesaDestroyContext", (void *) OSMesaDestroyContext },
+   { "OSMesaMakeCurrent", (void *) OSMesaMakeCurrent },
+   { "OSMesaGetCurrentContext", (void *) OSMesaGetCurrentContext },
+   { "OSMesaPixelsStore", (void *) OSMesaPixelStore },
+   { "OSMesaGetIntegerv", (void *) OSMesaGetIntegerv },
+   { "OSMesaGetDepthBuffer", (void *) OSMesaGetDepthBuffer },
+   { "OSMesaGetColorBuffer", (void *) OSMesaGetColorBuffer },
+   { "OSMesaGetProcAddress", (void *) OSMesaGetProcAddress },
+   { NULL, NULL }
+};
+
+GLAPI void * GLAPIENTRY
+OSMesaGetProcAddress( const char *funcName )
+{
+   int i;
+   for (i = 0; functions[i].Name; i++) {
+      if (strcmp(functions[i].Name, funcName) == 0)
+         return (void *) functions[i].Address;
+   }
+   return (void *) _glapi_get_proc_address(funcName);
+}
+
+
 /**********************************************************************/
 /*** Device Driver Functions                                        ***/
 /**********************************************************************/