Splitting the X11-specific "freeglut_ext.c" code into its own file
[freeglut] / src / Common / freeglut_ext.c
index 8dd1c13..3c3c127 100644 (file)
@@ -29,6 +29,9 @@
 #include <GL/freeglut.h>\r
 #include "freeglut_internal.h"\r
 \r
+extern SFG_Proc fgPlatformGetProcAddress( const char *procName );\r
+extern GLUTproc fgPlatformGetGLUTProcAddress( const char *procName );\r
+\r
 static GLUTproc fghGetGLUTProcAddress( const char* procName )\r
 {\r
     /* optimization: quick initial check */\r
@@ -109,9 +112,6 @@ static GLUTproc fghGetGLUTProcAddress( const char* procName )
     CHECK_NAME(glutWindowStatusFunc);\r
     CHECK_NAME(glutKeyboardUpFunc);\r
     CHECK_NAME(glutSpecialUpFunc);\r
-#if !defined(_WIN32_WCE)\r
-    CHECK_NAME(glutJoystickFunc);\r
-#endif /* !defined(_WIN32_WCE) */\r
     CHECK_NAME(glutSetColor);\r
     CHECK_NAME(glutGetColor);\r
     CHECK_NAME(glutCopyColormap);\r
@@ -152,13 +152,7 @@ static GLUTproc fghGetGLUTProcAddress( const char* procName )
     CHECK_NAME(glutReportErrors);\r
     CHECK_NAME(glutIgnoreKeyRepeat);\r
     CHECK_NAME(glutSetKeyRepeat);\r
-#if !defined(_WIN32_WCE)\r
-    CHECK_NAME(glutForceJoystickFunc);\r
-    CHECK_NAME(glutGameModeString);\r
-    CHECK_NAME(glutEnterGameMode);\r
-    CHECK_NAME(glutLeaveGameMode);\r
-    CHECK_NAME(glutGameModeGet);\r
-#endif /* !defined(_WIN32_WCE) */\r
+\r
     /* freeglut extensions */\r
     CHECK_NAME(glutMainLoopEvent);\r
     CHECK_NAME(glutLeaveMainLoop);\r
@@ -209,17 +203,6 @@ static GLUTproc fghGetGLUTProcAddress( const char* procName )
 }\r
 \r
 \r
-SFG_Proc fghGetProcAddress( const char *procName )\r
-{\r
-#if TARGET_HOST_MS_WINDOWS\r
-    return (SFG_Proc)wglGetProcAddress( ( LPCSTR )procName );\r
-#elif TARGET_HOST_POSIX_X11 && defined( GLX_ARB_get_proc_address )\r
-    return (SFG_Proc)glXGetProcAddressARB( ( const GLubyte * )procName );\r
-#else\r
-    return NULL;\r
-#endif\r
-}\r
-\r
 \r
 GLUTproc FGAPIENTRY\r
 glutGetProcAddress( const char *procName )\r
@@ -229,5 +212,10 @@ glutGetProcAddress( const char *procName )
 \r
     /* Try GLUT functions first, then core GL functions */\r
     p = fghGetGLUTProcAddress( procName );\r
-    return ( p != NULL ) ? p : fghGetProcAddress( procName );\r
+\r
+       /* Some GLUT functions are platform-specific: */\r
+       if ( !p )\r
+      p = fgPlatformGetGLUTProcAddress( procName );\r
+\r
+    return ( p != NULL ) ? p : fgPlatformGetProcAddress( procName );\r
 }\r