glGetProcAddressEXT changes to accomodate Win32 and non-Win32

This commit is contained in:
Brian Paul
1999-09-17 12:21:36 +00:00
parent 9b563507cb
commit 1bf28c46c2
3 changed files with 32 additions and 11 deletions

View File

@@ -1,4 +1,4 @@
/* $Id: gl.h,v 1.5 1999/09/17 04:25:56 tjump Exp $ */ /* $Id: gl.h,v 1.6 1999/09/17 12:21:36 brianp Exp $ */
/* /*
* Mesa 3-D graphics library * Mesa 3-D graphics library
@@ -2181,9 +2181,15 @@ GLAPI void GLAPIENTRY glUnlockArraysEXT( void );
* If you want to try it out, #define GL_EXT_get_proc_address before * If you want to try it out, #define GL_EXT_get_proc_address before
* #include <GL/gl.h> * #include <GL/gl.h>
*/ */
#define GL_EXT_get_proc_address 1
#ifdef GL_EXT_get_proc_address #ifdef GL_EXT_get_proc_address
typedef (void (GLAPIENTRY *glProcAddress))(); #ifdef __WIN32__
glProcAddress GLAPIENTRY glGetProcAddressEXT(const GLubyte *procName); typedef (void GLAPIENTRY *glProcAddress)();
glProcAddress GLAPIENTRY glGetProcAddressEXT(const GLubyte *procName);
#else
/* everything but Windows */
GLAPI void GLAPIENTRY (*glGetProcAddressEXT(const GLubyte *procName))();
#endif
#endif #endif

View File

@@ -1,4 +1,4 @@
/* $Id: glu.h,v 1.7 1999/09/17 02:44:19 tjump Exp $ */ /* $Id: glu.h,v 1.8 1999/09/17 12:21:36 brianp Exp $ */
/* /*
* Mesa 3-D graphics library * Mesa 3-D graphics library
@@ -23,6 +23,9 @@
/* /*
* $Log: glu.h,v $ * $Log: glu.h,v $
* Revision 1.8 1999/09/17 12:21:36 brianp
* glGetProcAddressEXT changes to accomodate Win32 and non-Win32
*
* Revision 1.7 1999/09/17 02:44:19 tjump * Revision 1.7 1999/09/17 02:44:19 tjump
* I changed the xxxGetProcAddressEXT function declarations to be more * I changed the xxxGetProcAddressEXT function declarations to be more
* MSVC friendly. Brianp - could you verify that they describe and operate * MSVC friendly. Brianp - could you verify that they describe and operate
@@ -508,9 +511,12 @@ GLUAPI const GLubyte* GLAPIENTRY gluGetString( GLenum name );
* which uses this extension yet! It may change! * which uses this extension yet! It may change!
*/ */
#define GLU_EXT_get_proc_address 1 #define GLU_EXT_get_proc_address 1
typedef (GLAPIENTRY *gluProcAddress)(); #ifdef __WIN32__
gluProcAddress GLAPIENTRY gluGetProcAddressEXT(const GLubyte *procName); typedef (void (GLAPIENTRY *gluProcAddress))();
gluProcAddress GLAPIENTRY gluGetProcAddressEXT(const GLubyte *procName);
#else
GLUAPI void GLAPIENTRY (*gluGetProcAddressEXT(const GLubyte *procName))();
#endif

View File

@@ -1,4 +1,4 @@
/* $Id: glu.c,v 1.13 1999/09/17 03:17:18 tjump Exp $ */ /* $Id: glu.c,v 1.14 1999/09/17 12:21:53 brianp Exp $ */
/* /*
* Mesa 3-D graphics library * Mesa 3-D graphics library
@@ -23,6 +23,9 @@
/* /*
* $Log: glu.c,v $ * $Log: glu.c,v $
* Revision 1.14 1999/09/17 12:21:53 brianp
* glGetProcAddressEXT changes to accomodate Win32 and non-Win32
*
* Revision 1.13 1999/09/17 03:17:18 tjump * Revision 1.13 1999/09/17 03:17:18 tjump
* Patch error fixup * Patch error fixup
* *
@@ -376,10 +379,12 @@ const GLubyte* GLAPIENTRY gluGetString( GLenum name )
#ifdef GLU_EXT_get_proc_address #ifdef GLU_EXT_get_proc_address
#ifdef __cplusplus #ifdef __cplusplus
/* for BeOS R4.5 */ /* for BeOS R4.5 */
gluProcAddress GLAPIENTRY gluGetProcAddressEXT(const GLubyte *procName) void GLAPIENTRY (*gluGetProcAddressEXT(const GLubyte *procName))(...)
#elif defined(__WIN32__)
gluProcAddress GLAPIENTRY gluGetProcAddressEXT(const GLubyte *procName)
#else #else
gluProcAddress GLAPIENTRY gluGetProcAddressEXT(const GLubyte *procName) void GLAPIENTRY (*gluGetProcAddressEXT(const GLubyte *procName))()
#endif #endif
{ {
struct proc { struct proc {
@@ -407,7 +412,11 @@ gluProcAddress GLAPIENTRY gluGetProcAddressEXT(const GLubyte *procName)
for (i = 0; procTable[i].address; i++) { for (i = 0; procTable[i].address; i++) {
if (strcmp((const char *) procName, procTable[i].name) == 0) if (strcmp((const char *) procName, procTable[i].name) == 0)
#ifdef __WIN32__
return (gluProcAddress) procTable[i].address; return (gluProcAddress) procTable[i].address;
#else
return (void (*)()) procTable[i].address;
#endif
} }
return NULL; return NULL;