X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_ext.c;h=1a76d2919ce612d72d9506cc9b9a2a02ae75e0fa;hb=1c741248e3ad67f24a57742cb5cc511f0ee87805;hp=5b2ca928b14cdd515232fb03afd2f34b2d0829ec;hpb=7c1f2d267626b937acdb59e18c0e22fabbc6d339;p=freeglut diff --git a/src/freeglut_ext.c b/src/freeglut_ext.c index 5b2ca92..1a76d29 100644 --- a/src/freeglut_ext.c +++ b/src/freeglut_ext.c @@ -25,174 +25,178 @@ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "../include/GL/freeglut.h" +#define GLX_GLXEXT_PROTOTYPES +#include #include "freeglut_internal.h" - struct name_address_pair { const char *name; - void *address; + GLUTproc address; }; static struct name_address_pair glut_functions[] = { - { "glutInit", (void *) glutInit }, - { "glutInitDisplayMode", (void *) glutInitDisplayMode }, - { "glutInitDisplayString", (void *) glutInitDisplayString }, - { "glutInitWindowPosition", (void *) glutInitWindowPosition }, - { "glutInitWindowSize", (void *) glutInitWindowSize }, - { "glutMainLoop", (void *) glutMainLoop }, - { "glutCreateWindow", (void *) glutCreateWindow }, - { "glutCreateSubWindow", (void *) glutCreateSubWindow }, - { "glutDestroyWindow", (void *) glutDestroyWindow }, - { "glutPostRedisplay", (void *) glutPostRedisplay }, - { "glutPostWindowRedisplay", (void *) glutPostWindowRedisplay }, - { "glutSwapBuffers", (void *) glutSwapBuffers }, - { "glutGetWindow", (void *) glutGetWindow }, - { "glutSetWindow", (void *) glutSetWindow }, - { "glutSetWindowTitle", (void *) glutSetWindowTitle }, - { "glutSetIconTitle", (void *) glutSetIconTitle }, - { "glutPositionWindow", (void *) glutPositionWindow }, - { "glutReshapeWindow", (void *) glutReshapeWindow }, - { "glutPopWindow", (void *) glutPopWindow }, - { "glutPushWindow", (void *) glutPushWindow }, - { "glutIconifyWindow", (void *) glutIconifyWindow }, - { "glutShowWindow", (void *) glutShowWindow }, - { "glutHideWindow", (void *) glutHideWindow }, - { "glutFullScreen", (void *) glutFullScreen }, - { "glutSetCursor", (void *) glutSetCursor }, - { "glutWarpPointer", (void *) glutWarpPointer }, - { "glutEstablishOverlay", (void *) glutEstablishOverlay }, - { "glutRemoveOverlay", (void *) glutRemoveOverlay }, - { "glutUseLayer", (void *) glutUseLayer }, - { "glutPostOverlayRedisplay", (void *) glutPostOverlayRedisplay }, - { "glutPostWindowOverlayRedisplay", (void *) glutPostWindowOverlayRedisplay }, - { "glutShowOverlay", (void *) glutShowOverlay }, - { "glutHideOverlay", (void *) glutHideOverlay }, - { "glutCreateMenu", (void *) glutCreateMenu }, - { "glutDestroyMenu", (void *) glutDestroyMenu }, - { "glutGetMenu", (void *) glutGetMenu }, - { "glutSetMenu", (void *) glutSetMenu }, - { "glutAddMenuEntry", (void *) glutAddMenuEntry }, - { "glutAddSubMenu", (void *) glutAddSubMenu }, - { "glutChangeToMenuEntry", (void *) glutChangeToMenuEntry }, - { "glutChangeToSubMenu", (void *) glutChangeToSubMenu }, - { "glutRemoveMenuItem", (void *) glutRemoveMenuItem }, - { "glutAttachMenu", (void *) glutAttachMenu }, - { "glutDetachMenu", (void *) glutDetachMenu }, - { "glutDisplayFunc", (void *) glutDisplayFunc }, - { "glutReshapeFunc", (void *) glutReshapeFunc }, - { "glutKeyboardFunc", (void *) glutKeyboardFunc }, - { "glutMouseFunc", (void *) glutMouseFunc }, - { "glutMotionFunc", (void *) glutMotionFunc }, - { "glutPassiveMotionFunc", (void *) glutPassiveMotionFunc }, - { "glutEntryFunc", (void *) glutEntryFunc }, - { "glutVisibilityFunc", (void *) glutVisibilityFunc }, - { "glutIdleFunc", (void *) glutIdleFunc }, - { "glutTimerFunc", (void *) glutTimerFunc }, - { "glutMenuStateFunc", (void *) glutMenuStateFunc }, - { "glutSpecialFunc", (void *) glutSpecialFunc }, - { "glutSpaceballMotionFunc", (void *) glutSpaceballMotionFunc }, - { "glutSpaceballRotateFunc", (void *) glutSpaceballRotateFunc }, - { "glutSpaceballButtonFunc", (void *) glutSpaceballButtonFunc }, - { "glutButtonBoxFunc", (void *) glutButtonBoxFunc }, - { "glutDialsFunc", (void *) glutDialsFunc }, - { "glutTabletMotionFunc", (void *) glutTabletMotionFunc }, - { "glutTabletButtonFunc", (void *) glutTabletButtonFunc }, - { "glutMenuStatusFunc", (void *) glutMenuStatusFunc }, - { "glutOverlayDisplayFunc", (void *) glutOverlayDisplayFunc }, - { "glutWindowStatusFunc", (void *) glutWindowStatusFunc }, - { "glutKeyboardUpFunc", (void *) glutKeyboardUpFunc }, - { "glutSpecialUpFunc", (void *) glutSpecialUpFunc }, - { "glutJoystickFunc", (void *) glutJoystickFunc }, - { "glutSetColor", (void *) glutSetColor }, - { "glutGetColor", (void *) glutGetColor }, - { "glutCopyColormap", (void *) glutCopyColormap }, - { "glutGet", (void *) glutGet }, - { "glutDeviceGet", (void *) glutDeviceGet }, - { "glutExtensionSupported", (void *) glutExtensionSupported }, - { "glutGetModifiers", (void *) glutGetModifiers }, - { "glutLayerGet", (void *) glutLayerGet }, - { "glutBitmapCharacter", (void *) glutBitmapCharacter }, - { "glutBitmapWidth", (void *) glutBitmapWidth }, - { "glutStrokeCharacter", (void *) glutStrokeCharacter }, - { "glutStrokeWidth", (void *) glutStrokeWidth }, - { "glutBitmapLength", (void *) glutBitmapLength }, - { "glutStrokeLength", (void *) glutStrokeLength }, - { "glutWireSphere", (void *) glutWireSphere }, - { "glutSolidSphere", (void *) glutSolidSphere }, - { "glutWireCone", (void *) glutWireCone }, - { "glutSolidCone", (void *) glutSolidCone }, - { "glutWireCube", (void *) glutWireCube }, - { "glutSolidCube", (void *) glutSolidCube }, - { "glutWireTorus", (void *) glutWireTorus }, - { "glutSolidTorus", (void *) glutSolidTorus }, - { "glutWireDodecahedron", (void *) glutWireDodecahedron }, - { "glutSolidDodecahedron", (void *) glutSolidDodecahedron }, - { "glutWireTeapot", (void *) glutWireTeapot }, - { "glutSolidTeapot", (void *) glutSolidTeapot }, - { "glutWireOctahedron", (void *) glutWireOctahedron }, - { "glutSolidOctahedron", (void *) glutSolidOctahedron }, - { "glutWireTetrahedron", (void *) glutWireTetrahedron }, - { "glutSolidTetrahedron", (void *) glutSolidTetrahedron }, - { "glutWireIcosahedron", (void *) glutWireIcosahedron }, - { "glutSolidIcosahedron", (void *) glutSolidIcosahedron }, - { "glutVideoResizeGet", (void *) glutVideoResizeGet }, - { "glutSetupVideoResizing", (void *) glutSetupVideoResizing }, - { "glutStopVideoResizing", (void *) glutStopVideoResizing }, - { "glutVideoResize", (void *) glutVideoResize }, - { "glutVideoPan", (void *) glutVideoPan }, - { "glutReportErrors", (void *) glutReportErrors }, - { "glutIgnoreKeyRepeat", (void *) glutIgnoreKeyRepeat }, - { "glutSetKeyRepeat", (void *) glutSetKeyRepeat }, - { "glutForceJoystickFunc", (void *) glutForceJoystickFunc }, - { "glutGameModeString", (void *) glutGameModeString }, - { "glutEnterGameMode", (void *) glutEnterGameMode }, - { "glutLeaveGameMode", (void *) glutLeaveGameMode }, - { "glutGameModeGet", (void *) glutGameModeGet }, + { "glutInit", (GLUTproc) glutInit }, + { "glutInitDisplayMode", (GLUTproc) glutInitDisplayMode }, + { "glutInitDisplayString", (GLUTproc) glutInitDisplayString }, + { "glutInitWindowPosition", (GLUTproc) glutInitWindowPosition }, + { "glutInitWindowSize", (GLUTproc) glutInitWindowSize }, + { "glutMainLoop", (GLUTproc) glutMainLoop }, + { "glutCreateWindow", (GLUTproc) glutCreateWindow }, + { "glutCreateSubWindow", (GLUTproc) glutCreateSubWindow }, + { "glutDestroyWindow", (GLUTproc) glutDestroyWindow }, + { "glutPostRedisplay", (GLUTproc) glutPostRedisplay }, + { "glutPostWindowRedisplay", (GLUTproc) glutPostWindowRedisplay }, + { "glutSwapBuffers", (GLUTproc) glutSwapBuffers }, + { "glutGetWindow", (GLUTproc) glutGetWindow }, + { "glutSetWindow", (GLUTproc) glutSetWindow }, + { "glutSetWindowTitle", (GLUTproc) glutSetWindowTitle }, + { "glutSetIconTitle", (GLUTproc) glutSetIconTitle }, + { "glutPositionWindow", (GLUTproc) glutPositionWindow }, + { "glutReshapeWindow", (GLUTproc) glutReshapeWindow }, + { "glutPopWindow", (GLUTproc) glutPopWindow }, + { "glutPushWindow", (GLUTproc) glutPushWindow }, + { "glutIconifyWindow", (GLUTproc) glutIconifyWindow }, + { "glutShowWindow", (GLUTproc) glutShowWindow }, + { "glutHideWindow", (GLUTproc) glutHideWindow }, + { "glutFullScreen", (GLUTproc) glutFullScreen }, + { "glutSetCursor", (GLUTproc) glutSetCursor }, + { "glutWarpPointer", (GLUTproc) glutWarpPointer }, + { "glutEstablishOverlay", (GLUTproc) glutEstablishOverlay }, + { "glutRemoveOverlay", (GLUTproc) glutRemoveOverlay }, + { "glutUseLayer", (GLUTproc) glutUseLayer }, + { "glutPostOverlayRedisplay", (GLUTproc) glutPostOverlayRedisplay }, + { "glutPostWindowOverlayRedisplay", (GLUTproc) glutPostWindowOverlayRedisplay }, + { "glutShowOverlay", (GLUTproc) glutShowOverlay }, + { "glutHideOverlay", (GLUTproc) glutHideOverlay }, + { "glutCreateMenu", (GLUTproc) glutCreateMenu }, + { "glutDestroyMenu", (GLUTproc) glutDestroyMenu }, + { "glutGetMenu", (GLUTproc) glutGetMenu }, + { "glutSetMenu", (GLUTproc) glutSetMenu }, + { "glutAddMenuEntry", (GLUTproc) glutAddMenuEntry }, + { "glutAddSubMenu", (GLUTproc) glutAddSubMenu }, + { "glutChangeToMenuEntry", (GLUTproc) glutChangeToMenuEntry }, + { "glutChangeToSubMenu", (GLUTproc) glutChangeToSubMenu }, + { "glutRemoveMenuItem", (GLUTproc) glutRemoveMenuItem }, + { "glutAttachMenu", (GLUTproc) glutAttachMenu }, + { "glutDetachMenu", (GLUTproc) glutDetachMenu }, + { "glutDisplayFunc", (GLUTproc) glutDisplayFunc }, + { "glutReshapeFunc", (GLUTproc) glutReshapeFunc }, + { "glutKeyboardFunc", (GLUTproc) glutKeyboardFunc }, + { "glutMouseFunc", (GLUTproc) glutMouseFunc }, + { "glutMotionFunc", (GLUTproc) glutMotionFunc }, + { "glutPassiveMotionFunc", (GLUTproc) glutPassiveMotionFunc }, + { "glutEntryFunc", (GLUTproc) glutEntryFunc }, + { "glutVisibilityFunc", (GLUTproc) glutVisibilityFunc }, + { "glutIdleFunc", (GLUTproc) glutIdleFunc }, + { "glutTimerFunc", (GLUTproc) glutTimerFunc }, + { "glutMenuStateFunc", (GLUTproc) glutMenuStateFunc }, + { "glutSpecialFunc", (GLUTproc) glutSpecialFunc }, + { "glutSpaceballMotionFunc", (GLUTproc) glutSpaceballMotionFunc }, + { "glutSpaceballRotateFunc", (GLUTproc) glutSpaceballRotateFunc }, + { "glutSpaceballButtonFunc", (GLUTproc) glutSpaceballButtonFunc }, + { "glutButtonBoxFunc", (GLUTproc) glutButtonBoxFunc }, + { "glutDialsFunc", (GLUTproc) glutDialsFunc }, + { "glutTabletMotionFunc", (GLUTproc) glutTabletMotionFunc }, + { "glutTabletButtonFunc", (GLUTproc) glutTabletButtonFunc }, + { "glutMenuStatusFunc", (GLUTproc) glutMenuStatusFunc }, + { "glutOverlayDisplayFunc", (GLUTproc) glutOverlayDisplayFunc }, + { "glutWindowStatusFunc", (GLUTproc) glutWindowStatusFunc }, + { "glutKeyboardUpFunc", (GLUTproc) glutKeyboardUpFunc }, + { "glutSpecialUpFunc", (GLUTproc) glutSpecialUpFunc }, +#if !TARGET_HOST_WINCE + { "glutJoystickFunc", (GLUTproc) glutJoystickFunc }, +#endif /* !TARGET_HOST_WINCE */ + { "glutSetColor", (GLUTproc) glutSetColor }, + { "glutGetColor", (GLUTproc) glutGetColor }, + { "glutCopyColormap", (GLUTproc) glutCopyColormap }, + { "glutGet", (GLUTproc) glutGet }, + { "glutDeviceGet", (GLUTproc) glutDeviceGet }, + { "glutExtensionSupported", (GLUTproc) glutExtensionSupported }, + { "glutGetModifiers", (GLUTproc) glutGetModifiers }, + { "glutLayerGet", (GLUTproc) glutLayerGet }, + { "glutBitmapCharacter", (GLUTproc) glutBitmapCharacter }, + { "glutBitmapWidth", (GLUTproc) glutBitmapWidth }, + { "glutStrokeCharacter", (GLUTproc) glutStrokeCharacter }, + { "glutStrokeWidth", (GLUTproc) glutStrokeWidth }, + { "glutBitmapLength", (GLUTproc) glutBitmapLength }, + { "glutStrokeLength", (GLUTproc) glutStrokeLength }, + { "glutWireSphere", (GLUTproc) glutWireSphere }, + { "glutSolidSphere", (GLUTproc) glutSolidSphere }, + { "glutWireCone", (GLUTproc) glutWireCone }, + { "glutSolidCone", (GLUTproc) glutSolidCone }, + { "glutWireCube", (GLUTproc) glutWireCube }, + { "glutSolidCube", (GLUTproc) glutSolidCube }, + { "glutWireTorus", (GLUTproc) glutWireTorus }, + { "glutSolidTorus", (GLUTproc) glutSolidTorus }, + { "glutWireDodecahedron", (GLUTproc) glutWireDodecahedron }, + { "glutSolidDodecahedron", (GLUTproc) glutSolidDodecahedron }, + { "glutWireTeapot", (GLUTproc) glutWireTeapot }, + { "glutSolidTeapot", (GLUTproc) glutSolidTeapot }, + { "glutWireOctahedron", (GLUTproc) glutWireOctahedron }, + { "glutSolidOctahedron", (GLUTproc) glutSolidOctahedron }, + { "glutWireTetrahedron", (GLUTproc) glutWireTetrahedron }, + { "glutSolidTetrahedron", (GLUTproc) glutSolidTetrahedron }, + { "glutWireIcosahedron", (GLUTproc) glutWireIcosahedron }, + { "glutSolidIcosahedron", (GLUTproc) glutSolidIcosahedron }, + { "glutVideoResizeGet", (GLUTproc) glutVideoResizeGet }, + { "glutSetupVideoResizing", (GLUTproc) glutSetupVideoResizing }, + { "glutStopVideoResizing", (GLUTproc) glutStopVideoResizing }, + { "glutVideoResize", (GLUTproc) glutVideoResize }, + { "glutVideoPan", (GLUTproc) glutVideoPan }, + { "glutReportErrors", (GLUTproc) glutReportErrors }, + { "glutIgnoreKeyRepeat", (GLUTproc) glutIgnoreKeyRepeat }, + { "glutSetKeyRepeat", (GLUTproc) glutSetKeyRepeat }, +#if !TARGET_HOST_WINCE + { "glutForceJoystickFunc", (GLUTproc) glutForceJoystickFunc }, + { "glutGameModeString", (GLUTproc) glutGameModeString }, + { "glutEnterGameMode", (GLUTproc) glutEnterGameMode }, + { "glutLeaveGameMode", (GLUTproc) glutLeaveGameMode }, + { "glutGameModeGet", (GLUTproc) glutGameModeGet }, +#endif /* !TARGET_HOST_WINCE */ /* freeglut extensions */ - { "glutMainLoopEvent", (void *) glutMainLoopEvent }, - { "glutLeaveMainLoop", (void *) glutLeaveMainLoop }, - { "glutCloseFunc", (void *) glutCloseFunc }, - { "glutWMCloseFunc", (void *) glutWMCloseFunc }, - { "glutMenuDestroyFunc", (void *) glutMenuDestroyFunc }, - { "glutSetOption", (void *) glutSetOption }, - { "glutSetWindowData", (void *) glutSetWindowData }, - { "glutGetWindowData", (void *) glutGetWindowData }, - { "glutSetMenuData", (void *) glutSetMenuData }, - { "glutGetMenuData", (void *) glutGetMenuData }, - { "glutBitmapHeight", (void *) glutBitmapHeight }, - { "glutStrokeHeight", (void *) glutStrokeHeight }, - { "glutBitmapString", (void *) glutBitmapString }, - { "glutStrokeString", (void *) glutStrokeString }, - { "glutWireRhombicDodecahedron", (void *) glutWireRhombicDodecahedron }, - { "glutSolidRhombicDodecahedron", (void *) glutSolidRhombicDodecahedron }, - { "glutWireSierpinskiSponge ", (void *) glutWireSierpinskiSponge }, - { "glutSolidSierpinskiSponge ", (void *) glutSolidSierpinskiSponge }, - { "glutGetProcAddress", (void *) glutGetProcAddress }, - { "glutMouseWheelFunc", (void *) glutMouseWheelFunc }, + { "glutMainLoopEvent", (GLUTproc) glutMainLoopEvent }, + { "glutLeaveMainLoop", (GLUTproc) glutLeaveMainLoop }, + { "glutCloseFunc", (GLUTproc) glutCloseFunc }, + { "glutWMCloseFunc", (GLUTproc) glutWMCloseFunc }, + { "glutMenuDestroyFunc", (GLUTproc) glutMenuDestroyFunc }, + { "glutSetOption", (GLUTproc) glutSetOption }, + { "glutSetWindowData", (GLUTproc) glutSetWindowData }, + { "glutGetWindowData", (GLUTproc) glutGetWindowData }, + { "glutSetMenuData", (GLUTproc) glutSetMenuData }, + { "glutGetMenuData", (GLUTproc) glutGetMenuData }, + { "glutBitmapHeight", (GLUTproc) glutBitmapHeight }, + { "glutStrokeHeight", (GLUTproc) glutStrokeHeight }, + { "glutBitmapString", (GLUTproc) glutBitmapString }, + { "glutStrokeString", (GLUTproc) glutStrokeString }, + { "glutWireRhombicDodecahedron", (GLUTproc) glutWireRhombicDodecahedron }, + { "glutSolidRhombicDodecahedron", (GLUTproc) glutSolidRhombicDodecahedron }, + { "glutWireSierpinskiSponge", (GLUTproc) glutWireSierpinskiSponge }, + { "glutSolidSierpinskiSponge", (GLUTproc) glutSolidSierpinskiSponge }, + { "glutWireCylinder", (GLUTproc) glutWireCylinder }, + { "glutSolidCylinder", (GLUTproc) glutSolidCylinder }, + { "glutGetProcAddress", (GLUTproc) glutGetProcAddress }, + { "glutMouseWheelFunc", (GLUTproc) glutMouseWheelFunc }, { NULL, NULL } -}; +}; -void *FGAPIENTRY glutGetProcAddress( const char *procName ) +GLUTproc FGAPIENTRY +glutGetProcAddress( const char *procName ) { /* Try GLUT functions first */ int i; + FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetProcAddress" ); for( i = 0; glut_functions[ i ].name; i++ ) - if( strcmp( glut_functions[ i ].name, procName ) == 0) - return glut_functions[ i ].address; + if( strcmp( glut_functions[ i ].name, procName ) == 0) + return glut_functions[ i ].address; /* Try core GL functions */ -#if TARGET_HOST_WIN32 - return( void * )wglGetProcAddress( ( LPCSTR )procName ); +#if TARGET_HOST_WIN32 || TARGET_HOST_WINCE + return(GLUTproc)wglGetProcAddress( ( LPCSTR )procName ); #elif TARGET_HOST_UNIX_X11 && defined( GLX_ARB_get_proc_address ) - return(void * )glXGetProcAddressARB( ( const GLubyte * )procName ); + return(GLUTproc)glXGetProcAddressARB( ( const GLubyte * )procName ); #else return NULL; #endif