typedef GLUTproc, return it from glutGetProcAddress()
authorBrian Paul <brian.paul@tungstengraphics.com>
Sat, 27 Nov 2004 04:54:48 +0000 (04:54 +0000)
committerBrian Paul <brian.paul@tungstengraphics.com>
Sat, 27 Nov 2004 04:54:48 +0000 (04:54 +0000)
include/GL/glut.h
src/glut/glx/glut_ext.c

index 7977dc94c92a08fe5517260866cdc8aa025432b3..c1b78aa4e59873f98c477c612e2aba0f6e39144a 100644 (file)
@@ -664,7 +664,8 @@ GLUTAPI int GLUTAPIENTRY glutGetModifiers(void);
 GLUTAPI int GLUTAPIENTRY glutLayerGet(GLenum type);
 #endif
 #if (GLUT_API_VERSION >= 5)
-GLUTAPI void * GLUTAPIENTRY glutGetProcAddress(const char *procName);
+typedef void (*GLUTproc)();
+GLUTAPI GLUTproc GLUTAPIENTRY glutGetProcAddress(const char *procName);
 #endif
 
 /* GLUT font sub-API */
index a7a56fbef8d4608a13f5bf43a9d2253ef07258c6..922a94b20ddfe785b1176b4a1577dab5a1c82401 100644 (file)
@@ -53,145 +53,145 @@ glutExtensionSupported(const char *extension)
 
 struct name_address_pair {
    const char *name;
-   const void *address;
+   const GLUTproc address;
 };
 
 static struct name_address_pair glut_functions[] = {
-   { "glutInit", (const void *) glutInit },
-   { "glutInitDisplayMode", (const void *) glutInitDisplayMode },
-   { "glutInitDisplayString", (const void *) glutInitDisplayString },
-   { "glutInitWindowPosition", (const void *) glutInitWindowPosition },
-   { "glutInitWindowSize", (const void *) glutInitWindowSize },
-   { "glutMainLoop", (const void *) glutMainLoop },
-   { "glutCreateWindow", (const void *) glutCreateWindow },
-   { "glutCreateSubWindow", (const void *) glutCreateSubWindow },
-   { "glutDestroyWindow", (const void *) glutDestroyWindow },
-   { "glutPostRedisplay", (const void *) glutPostRedisplay },
-   { "glutPostWindowRedisplay", (const void *) glutPostWindowRedisplay },
-   { "glutSwapBuffers", (const void *) glutSwapBuffers },
-   { "glutGetWindow", (const void *) glutGetWindow },
-   { "glutSetWindow", (const void *) glutSetWindow },
-   { "glutSetWindowTitle", (const void *) glutSetWindowTitle },
-   { "glutSetIconTitle", (const void *) glutSetIconTitle },
-   { "glutPositionWindow", (const void *) glutPositionWindow },
-   { "glutReshapeWindow", (const void *) glutReshapeWindow },
-   { "glutPopWindow", (const void *) glutPopWindow },
-   { "glutPushWindow", (const void *) glutPushWindow },
-   { "glutIconifyWindow", (const void *) glutIconifyWindow },
-   { "glutShowWindow", (const void *) glutShowWindow },
-   { "glutHideWindow", (const void *) glutHideWindow },
-   { "glutFullScreen", (const void *) glutFullScreen },
-   { "glutSetCursor", (const void *) glutSetCursor },
-   { "glutWarpPointer", (const void *) glutWarpPointer },
-   { "glutEstablishOverlay", (const void *) glutEstablishOverlay },
-   { "glutRemoveOverlay", (const void *) glutRemoveOverlay },
-   { "glutUseLayer", (const void *) glutUseLayer },
-   { "glutPostOverlayRedisplay", (const void *) glutPostOverlayRedisplay },
-   { "glutPostWindowOverlayRedisplay", (const void *) glutPostWindowOverlayRedisplay },
-   { "glutShowOverlay", (const void *) glutShowOverlay },
-   { "glutHideOverlay", (const void *) glutHideOverlay },
-   { "glutCreateMenu", (const void *) glutCreateMenu },
-   { "glutDestroyMenu", (const void *) glutDestroyMenu },
-   { "glutGetMenu", (const void *) glutGetMenu },
-   { "glutSetMenu", (const void *) glutSetMenu },
-   { "glutAddMenuEntry", (const void *) glutAddMenuEntry },
-   { "glutAddSubMenu", (const void *) glutAddSubMenu },
-   { "glutChangeToMenuEntry", (const void *) glutChangeToMenuEntry },
-   { "glutChangeToSubMenu", (const void *) glutChangeToSubMenu },
-   { "glutRemoveMenuItem", (const void *) glutRemoveMenuItem },
-   { "glutAttachMenu", (const void *) glutAttachMenu },
-   { "glutDetachMenu", (const void *) glutDetachMenu },
-   { "glutDisplayFunc", (const void *) glutDisplayFunc },
-   { "glutReshapeFunc", (const void *) glutReshapeFunc },
-   { "glutKeyboardFunc", (const void *) glutKeyboardFunc },
-   { "glutMouseFunc", (const void *) glutMouseFunc },
-   { "glutMotionFunc", (const void *) glutMotionFunc },
-   { "glutPassiveMotionFunc", (const void *) glutPassiveMotionFunc },
-   { "glutEntryFunc", (const void *) glutEntryFunc },
-   { "glutVisibilityFunc", (const void *) glutVisibilityFunc },
-   { "glutIdleFunc", (const void *) glutIdleFunc },
-   { "glutTimerFunc", (const void *) glutTimerFunc },
-   { "glutMenuStateFunc", (const void *) glutMenuStateFunc },
-   { "glutSpecialFunc", (const void *) glutSpecialFunc },
-   { "glutSpaceballMotionFunc", (const void *) glutSpaceballMotionFunc },
-   { "glutSpaceballRotateFunc", (const void *) glutSpaceballRotateFunc },
-   { "glutSpaceballButtonFunc", (const void *) glutSpaceballButtonFunc },
-   { "glutButtonBoxFunc", (const void *) glutButtonBoxFunc },
-   { "glutDialsFunc", (const void *) glutDialsFunc },
-   { "glutTabletMotionFunc", (const void *) glutTabletMotionFunc },
-   { "glutTabletButtonFunc", (const void *) glutTabletButtonFunc },
-   { "glutMenuStatusFunc", (const void *) glutMenuStatusFunc },
-   { "glutOverlayDisplayFunc", (const void *) glutOverlayDisplayFunc },
-   { "glutWindowStatusFunc", (const void *) glutWindowStatusFunc },
-   { "glutKeyboardUpFunc", (const void *) glutKeyboardUpFunc },
-   { "glutSpecialUpFunc", (const void *) glutSpecialUpFunc },
-   { "glutJoystickFunc", (const void *) glutJoystickFunc },
-   { "glutSetColor", (const void *) glutSetColor },
-   { "glutGetColor", (const void *) glutGetColor },
-   { "glutCopyColormap", (const void *) glutCopyColormap },
-   { "glutGet", (const void *) glutGet },
-   { "glutDeviceGet", (const void *) glutDeviceGet },
-   { "glutExtensionSupported", (const void *) glutExtensionSupported },
-   { "glutGetModifiers", (const void *) glutGetModifiers },
-   { "glutLayerGet", (const void *) glutLayerGet },
-   { "glutGetProcAddress", (const void *) glutGetProcAddress },
-   { "glutBitmapCharacter", (const void *) glutBitmapCharacter },
-   { "glutBitmapWidth", (const void *) glutBitmapWidth },
-   { "glutStrokeCharacter", (const void *) glutStrokeCharacter },
-   { "glutStrokeWidth", (const void *) glutStrokeWidth },
-   { "glutBitmapLength", (const void *) glutBitmapLength },
-   { "glutStrokeLength", (const void *) glutStrokeLength },
-   { "glutWireSphere", (const void *) glutWireSphere },
-   { "glutSolidSphere", (const void *) glutSolidSphere },
-   { "glutWireCone", (const void *) glutWireCone },
-   { "glutSolidCone", (const void *) glutSolidCone },
-   { "glutWireCube", (const void *) glutWireCube },
-   { "glutSolidCube", (const void *) glutSolidCube },
-   { "glutWireTorus", (const void *) glutWireTorus },
-   { "glutSolidTorus", (const void *) glutSolidTorus },
-   { "glutWireDodecahedron", (const void *) glutWireDodecahedron },
-   { "glutSolidDodecahedron", (const void *) glutSolidDodecahedron },
-   { "glutWireTeapot", (const void *) glutWireTeapot },
-   { "glutSolidTeapot", (const void *) glutSolidTeapot },
-   { "glutWireOctahedron", (const void *) glutWireOctahedron },
-   { "glutSolidOctahedron", (const void *) glutSolidOctahedron },
-   { "glutWireTetrahedron", (const void *) glutWireTetrahedron },
-   { "glutSolidTetrahedron", (const void *) glutSolidTetrahedron },
-   { "glutWireIcosahedron", (const void *) glutWireIcosahedron },
-   { "glutSolidIcosahedron", (const void *) glutSolidIcosahedron },
-   { "glutVideoResizeGet", (const void *) glutVideoResizeGet },
-   { "glutSetupVideoResizing", (const void *) glutSetupVideoResizing },
-   { "glutStopVideoResizing", (const void *) glutStopVideoResizing },
-   { "glutVideoResize", (const void *) glutVideoResize },
-   { "glutVideoPan", (const void *) glutVideoPan },
-   { "glutReportErrors", (const void *) glutReportErrors },
-   { "glutIgnoreKeyRepeat", (const void *) glutIgnoreKeyRepeat },
-   { "glutSetKeyRepeat", (const void *) glutSetKeyRepeat },
-   { "glutForceJoystickFunc", (const void *) glutForceJoystickFunc },
-   { "glutGameModeString", (const void *) glutGameModeString },
-   { "glutEnterGameMode", (const void *) glutEnterGameMode },
-   { "glutLeaveGameMode", (const void *) glutLeaveGameMode },
-   { "glutGameModeGet", (const void *) glutGameModeGet },
+   { "glutInit", (const GLUTproc) glutInit },
+   { "glutInitDisplayMode", (const GLUTproc) glutInitDisplayMode },
+   { "glutInitDisplayString", (const GLUTproc) glutInitDisplayString },
+   { "glutInitWindowPosition", (const GLUTproc) glutInitWindowPosition },
+   { "glutInitWindowSize", (const GLUTproc) glutInitWindowSize },
+   { "glutMainLoop", (const GLUTproc) glutMainLoop },
+   { "glutCreateWindow", (const GLUTproc) glutCreateWindow },
+   { "glutCreateSubWindow", (const GLUTproc) glutCreateSubWindow },
+   { "glutDestroyWindow", (const GLUTproc) glutDestroyWindow },
+   { "glutPostRedisplay", (const GLUTproc) glutPostRedisplay },
+   { "glutPostWindowRedisplay", (const GLUTproc) glutPostWindowRedisplay },
+   { "glutSwapBuffers", (const GLUTproc) glutSwapBuffers },
+   { "glutGetWindow", (const GLUTproc) glutGetWindow },
+   { "glutSetWindow", (const GLUTproc) glutSetWindow },
+   { "glutSetWindowTitle", (const GLUTproc) glutSetWindowTitle },
+   { "glutSetIconTitle", (const GLUTproc) glutSetIconTitle },
+   { "glutPositionWindow", (const GLUTproc) glutPositionWindow },
+   { "glutReshapeWindow", (const GLUTproc) glutReshapeWindow },
+   { "glutPopWindow", (const GLUTproc) glutPopWindow },
+   { "glutPushWindow", (const GLUTproc) glutPushWindow },
+   { "glutIconifyWindow", (const GLUTproc) glutIconifyWindow },
+   { "glutShowWindow", (const GLUTproc) glutShowWindow },
+   { "glutHideWindow", (const GLUTproc) glutHideWindow },
+   { "glutFullScreen", (const GLUTproc) glutFullScreen },
+   { "glutSetCursor", (const GLUTproc) glutSetCursor },
+   { "glutWarpPointer", (const GLUTproc) glutWarpPointer },
+   { "glutEstablishOverlay", (const GLUTproc) glutEstablishOverlay },
+   { "glutRemoveOverlay", (const GLUTproc) glutRemoveOverlay },
+   { "glutUseLayer", (const GLUTproc) glutUseLayer },
+   { "glutPostOverlayRedisplay", (const GLUTproc) glutPostOverlayRedisplay },
+   { "glutPostWindowOverlayRedisplay", (const GLUTproc) glutPostWindowOverlayRedisplay },
+   { "glutShowOverlay", (const GLUTproc) glutShowOverlay },
+   { "glutHideOverlay", (const GLUTproc) glutHideOverlay },
+   { "glutCreateMenu", (const GLUTproc) glutCreateMenu },
+   { "glutDestroyMenu", (const GLUTproc) glutDestroyMenu },
+   { "glutGetMenu", (const GLUTproc) glutGetMenu },
+   { "glutSetMenu", (const GLUTproc) glutSetMenu },
+   { "glutAddMenuEntry", (const GLUTproc) glutAddMenuEntry },
+   { "glutAddSubMenu", (const GLUTproc) glutAddSubMenu },
+   { "glutChangeToMenuEntry", (const GLUTproc) glutChangeToMenuEntry },
+   { "glutChangeToSubMenu", (const GLUTproc) glutChangeToSubMenu },
+   { "glutRemoveMenuItem", (const GLUTproc) glutRemoveMenuItem },
+   { "glutAttachMenu", (const GLUTproc) glutAttachMenu },
+   { "glutDetachMenu", (const GLUTproc) glutDetachMenu },
+   { "glutDisplayFunc", (const GLUTproc) glutDisplayFunc },
+   { "glutReshapeFunc", (const GLUTproc) glutReshapeFunc },
+   { "glutKeyboardFunc", (const GLUTproc) glutKeyboardFunc },
+   { "glutMouseFunc", (const GLUTproc) glutMouseFunc },
+   { "glutMotionFunc", (const GLUTproc) glutMotionFunc },
+   { "glutPassiveMotionFunc", (const GLUTproc) glutPassiveMotionFunc },
+   { "glutEntryFunc", (const GLUTproc) glutEntryFunc },
+   { "glutVisibilityFunc", (const GLUTproc) glutVisibilityFunc },
+   { "glutIdleFunc", (const GLUTproc) glutIdleFunc },
+   { "glutTimerFunc", (const GLUTproc) glutTimerFunc },
+   { "glutMenuStateFunc", (const GLUTproc) glutMenuStateFunc },
+   { "glutSpecialFunc", (const GLUTproc) glutSpecialFunc },
+   { "glutSpaceballMotionFunc", (const GLUTproc) glutSpaceballMotionFunc },
+   { "glutSpaceballRotateFunc", (const GLUTproc) glutSpaceballRotateFunc },
+   { "glutSpaceballButtonFunc", (const GLUTproc) glutSpaceballButtonFunc },
+   { "glutButtonBoxFunc", (const GLUTproc) glutButtonBoxFunc },
+   { "glutDialsFunc", (const GLUTproc) glutDialsFunc },
+   { "glutTabletMotionFunc", (const GLUTproc) glutTabletMotionFunc },
+   { "glutTabletButtonFunc", (const GLUTproc) glutTabletButtonFunc },
+   { "glutMenuStatusFunc", (const GLUTproc) glutMenuStatusFunc },
+   { "glutOverlayDisplayFunc", (const GLUTproc) glutOverlayDisplayFunc },
+   { "glutWindowStatusFunc", (const GLUTproc) glutWindowStatusFunc },
+   { "glutKeyboardUpFunc", (const GLUTproc) glutKeyboardUpFunc },
+   { "glutSpecialUpFunc", (const GLUTproc) glutSpecialUpFunc },
+   { "glutJoystickFunc", (const GLUTproc) glutJoystickFunc },
+   { "glutSetColor", (const GLUTproc) glutSetColor },
+   { "glutGetColor", (const GLUTproc) glutGetColor },
+   { "glutCopyColormap", (const GLUTproc) glutCopyColormap },
+   { "glutGet", (const GLUTproc) glutGet },
+   { "glutDeviceGet", (const GLUTproc) glutDeviceGet },
+   { "glutExtensionSupported", (const GLUTproc) glutExtensionSupported },
+   { "glutGetModifiers", (const GLUTproc) glutGetModifiers },
+   { "glutLayerGet", (const GLUTproc) glutLayerGet },
+   { "glutGetProcAddress", (const GLUTproc) glutGetProcAddress },
+   { "glutBitmapCharacter", (const GLUTproc) glutBitmapCharacter },
+   { "glutBitmapWidth", (const GLUTproc) glutBitmapWidth },
+   { "glutStrokeCharacter", (const GLUTproc) glutStrokeCharacter },
+   { "glutStrokeWidth", (const GLUTproc) glutStrokeWidth },
+   { "glutBitmapLength", (const GLUTproc) glutBitmapLength },
+   { "glutStrokeLength", (const GLUTproc) glutStrokeLength },
+   { "glutWireSphere", (const GLUTproc) glutWireSphere },
+   { "glutSolidSphere", (const GLUTproc) glutSolidSphere },
+   { "glutWireCone", (const GLUTproc) glutWireCone },
+   { "glutSolidCone", (const GLUTproc) glutSolidCone },
+   { "glutWireCube", (const GLUTproc) glutWireCube },
+   { "glutSolidCube", (const GLUTproc) glutSolidCube },
+   { "glutWireTorus", (const GLUTproc) glutWireTorus },
+   { "glutSolidTorus", (const GLUTproc) glutSolidTorus },
+   { "glutWireDodecahedron", (const GLUTproc) glutWireDodecahedron },
+   { "glutSolidDodecahedron", (const GLUTproc) glutSolidDodecahedron },
+   { "glutWireTeapot", (const GLUTproc) glutWireTeapot },
+   { "glutSolidTeapot", (const GLUTproc) glutSolidTeapot },
+   { "glutWireOctahedron", (const GLUTproc) glutWireOctahedron },
+   { "glutSolidOctahedron", (const GLUTproc) glutSolidOctahedron },
+   { "glutWireTetrahedron", (const GLUTproc) glutWireTetrahedron },
+   { "glutSolidTetrahedron", (const GLUTproc) glutSolidTetrahedron },
+   { "glutWireIcosahedron", (const GLUTproc) glutWireIcosahedron },
+   { "glutSolidIcosahedron", (const GLUTproc) glutSolidIcosahedron },
+   { "glutVideoResizeGet", (const GLUTproc) glutVideoResizeGet },
+   { "glutSetupVideoResizing", (const GLUTproc) glutSetupVideoResizing },
+   { "glutStopVideoResizing", (const GLUTproc) glutStopVideoResizing },
+   { "glutVideoResize", (const GLUTproc) glutVideoResize },
+   { "glutVideoPan", (const GLUTproc) glutVideoPan },
+   { "glutReportErrors", (const GLUTproc) glutReportErrors },
+   { "glutIgnoreKeyRepeat", (const GLUTproc) glutIgnoreKeyRepeat },
+   { "glutSetKeyRepeat", (const GLUTproc) glutSetKeyRepeat },
+   { "glutForceJoystickFunc", (const GLUTproc) glutForceJoystickFunc },
+   { "glutGameModeString", (const GLUTproc) glutGameModeString },
+   { "glutEnterGameMode", (const GLUTproc) glutEnterGameMode },
+   { "glutLeaveGameMode", (const GLUTproc) glutLeaveGameMode },
+   { "glutGameModeGet", (const GLUTproc) glutGameModeGet },
    { NULL, NULL }
 };   
 
 
 /* XXX This isn't an official GLUT function, yet */
-void * GLUTAPIENTRY 
+GLUTproc GLUTAPIENTRY 
 glutGetProcAddress(const char *procName)
 {
    /* Try GLUT functions first */
    int i;
    for (i = 0; glut_functions[i].name; i++) {
       if (strcmp(glut_functions[i].name, procName) == 0)
-         return (void *) glut_functions[i].address;
+         return glut_functions[i].address;
    }
 
    /* Try core GL functions */
 #if defined(_WIN32)
-  return (void *) wglGetProcAddress((LPCSTR) procName);
+  return (GLUTproc) wglGetProcAddress((LPCSTR) procName);
 #elif defined(GLX_ARB_get_proc_address)
-  return (void *) glXGetProcAddressARB((const GLubyte *) procName);
+  return (GLUTproc) glXGetProcAddressARB((const GLubyte *) procName);
 #else
   return NULL;
 #endif