From 64fa0f17c1c4899478f3f7f91d376feeba513858 Mon Sep 17 00:00:00 2001 From: Sven Panne Date: Sun, 2 Nov 2008 19:38:05 +0000 Subject: [PATCH] Make a wgl/glXGetProcAddress abstraction available internally. We will need this to get the new context creation function. git-svn-id: svn+ssh://svn.code.sf.net/p/freeglut/code/trunk/freeglut/freeglut@747 7f0cb862-5218-0410-a997-914c9d46530a --- src/freeglut_ext.c | 30 ++++++++++++++++-------------- src/freeglut_internal.h | 2 ++ 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/freeglut_ext.c b/src/freeglut_ext.c index 6e4f693..613fcc2 100644 --- a/src/freeglut_ext.c +++ b/src/freeglut_ext.c @@ -29,7 +29,7 @@ #include #include "freeglut_internal.h" -static GLUTproc fghGetProcAddress( const char* procName ) +static GLUTproc fghGetGLUTProcAddress( const char* procName ) { /* optimization: quick initial check */ if( strncmp( procName, "glut", 4 ) != 0 ) @@ -199,23 +199,25 @@ static GLUTproc fghGetProcAddress( const char* procName ) } -GLUTproc FGAPIENTRY -glutGetProcAddress( const char *procName ) +SFG_Proc fghGetProcAddress( const char *procName ) { - GLUTproc p; - FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetProcAddress" ); - - /* Try GLUT functions first */ - p = fghGetProcAddress( procName ); - if( p != NULL ) - return p; - - /* Try core GL functions */ #if TARGET_HOST_MS_WINDOWS - return(GLUTproc)wglGetProcAddress( ( LPCSTR )procName ); + return (SFG_Proc)wglGetProcAddress( ( LPCSTR )procName ); #elif TARGET_HOST_POSIX_X11 && defined( GLX_ARB_get_proc_address ) - return(GLUTproc)glXGetProcAddressARB( ( const GLubyte * )procName ); + return (SFG_Proc)glXGetProcAddressARB( ( const GLubyte * )procName ); #else return NULL; #endif } + + +GLUTproc FGAPIENTRY +glutGetProcAddress( const char *procName ) +{ + GLUTproc p; + FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetProcAddress" ); + + /* Try GLUT functions first, then core GL functions */ + p = fghGetGLUTProcAddress( procName ); + return ( p != NULL ) ? p : fghGetProcAddress( procName ); +} diff --git a/src/freeglut_internal.h b/src/freeglut_internal.h index 90d1a37..d593a2c 100644 --- a/src/freeglut_internal.h +++ b/src/freeglut_internal.h @@ -909,6 +909,8 @@ void fgWarning( const char *fmt, ... ); int fgHintPresent(Window window, Atom property, Atom hint); #endif +SFG_Proc fghGetProcAddress( const char *procName ); + #endif /* FREEGLUT_INTERNAL_H */ /*** END OF FILE ***/ -- 1.7.10.4