Setting the line endings and keywords on a bunch of new text files
[freeglut] / src / Common / freeglut_ext.c
index 3c3c127..f7b4f2e 100644 (file)
-/*\r
- * freeglut_ext.c\r
- *\r
- * Functions related to OpenGL extensions.\r
- *\r
- * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.\r
- * Written by Pawel W. Olszta, <olszta@sourceforge.net>\r
- * Creation date: Thu Dec 9 1999\r
- *\r
- * Permission is hereby granted, free of charge, to any person obtaining a\r
- * copy of this software and associated documentation files (the "Software"),\r
- * to deal in the Software without restriction, including without limitation\r
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
- * and/or sell copies of the Software, and to permit persons to whom the\r
- * Software is furnished to do so, subject to the following conditions:\r
- *\r
- * The above copyright notice and this permission notice shall be included\r
- * in all copies or substantial portions of the Software.\r
- *\r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r
- * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\r
- * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
- */\r
-\r
-#define GLX_GLXEXT_PROTOTYPES\r
-#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
-    if( strncmp( procName, "glut", 4 ) != 0 )\r
-        return NULL;\r
-\r
-#define CHECK_NAME(x) if( strcmp( procName, #x ) == 0) return (GLUTproc)x;\r
-    CHECK_NAME(glutInit);\r
-    CHECK_NAME(glutInitDisplayMode);\r
-    CHECK_NAME(glutInitDisplayString);\r
-    CHECK_NAME(glutInitWindowPosition);\r
-    CHECK_NAME(glutInitWindowSize);\r
-    CHECK_NAME(glutMainLoop);\r
-    CHECK_NAME(glutExit);\r
-    CHECK_NAME(glutCreateWindow);\r
-    CHECK_NAME(glutCreateSubWindow);\r
-    CHECK_NAME(glutDestroyWindow);\r
-    CHECK_NAME(glutPostRedisplay);\r
-    CHECK_NAME(glutPostWindowRedisplay);\r
-    CHECK_NAME(glutSwapBuffers);\r
-    CHECK_NAME(glutGetWindow);\r
-    CHECK_NAME(glutSetWindow);\r
-    CHECK_NAME(glutSetWindowTitle);\r
-    CHECK_NAME(glutSetIconTitle);\r
-    CHECK_NAME(glutPositionWindow);\r
-    CHECK_NAME(glutReshapeWindow);\r
-    CHECK_NAME(glutPopWindow);\r
-    CHECK_NAME(glutPushWindow);\r
-    CHECK_NAME(glutIconifyWindow);\r
-    CHECK_NAME(glutShowWindow);\r
-    CHECK_NAME(glutHideWindow);\r
-    CHECK_NAME(glutFullScreen);\r
-    CHECK_NAME(glutSetCursor);\r
-    CHECK_NAME(glutWarpPointer);\r
-    CHECK_NAME(glutEstablishOverlay);\r
-    CHECK_NAME(glutRemoveOverlay);\r
-    CHECK_NAME(glutUseLayer);\r
-    CHECK_NAME(glutPostOverlayRedisplay);\r
-    CHECK_NAME(glutPostWindowOverlayRedisplay);\r
-    CHECK_NAME(glutShowOverlay);\r
-    CHECK_NAME(glutHideOverlay);\r
-    CHECK_NAME(glutCreateMenu);\r
-    CHECK_NAME(glutDestroyMenu);\r
-    CHECK_NAME(glutGetMenu);\r
-    CHECK_NAME(glutSetMenu);\r
-    CHECK_NAME(glutAddMenuEntry);\r
-    CHECK_NAME(glutAddSubMenu);\r
-    CHECK_NAME(glutChangeToMenuEntry);\r
-    CHECK_NAME(glutChangeToSubMenu);\r
-    CHECK_NAME(glutRemoveMenuItem);\r
-    CHECK_NAME(glutAttachMenu);\r
-    CHECK_NAME(glutDetachMenu);\r
-    CHECK_NAME(glutDisplayFunc);\r
-    CHECK_NAME(glutReshapeFunc);\r
-    CHECK_NAME(glutKeyboardFunc);\r
-    CHECK_NAME(glutMouseFunc);\r
-    CHECK_NAME(glutMultiEntryFunc);\r
-    CHECK_NAME(glutMultiMotionFunc);\r
-    CHECK_NAME(glutMultiButtonFunc);\r
-    CHECK_NAME(glutMultiPassiveFunc);\r
-    CHECK_NAME(glutMotionFunc);\r
-    CHECK_NAME(glutPassiveMotionFunc);\r
-    CHECK_NAME(glutEntryFunc);\r
-    CHECK_NAME(glutVisibilityFunc);\r
-    CHECK_NAME(glutIdleFunc);\r
-    CHECK_NAME(glutTimerFunc);\r
-    CHECK_NAME(glutMenuStateFunc);\r
-    CHECK_NAME(glutSpecialFunc);\r
-    CHECK_NAME(glutSpaceballMotionFunc);\r
-    CHECK_NAME(glutSpaceballRotateFunc);\r
-    CHECK_NAME(glutSpaceballButtonFunc);\r
-    CHECK_NAME(glutButtonBoxFunc);\r
-    CHECK_NAME(glutDialsFunc);\r
-    CHECK_NAME(glutTabletMotionFunc);\r
-    CHECK_NAME(glutTabletButtonFunc);\r
-    CHECK_NAME(glutMenuStatusFunc);\r
-    CHECK_NAME(glutOverlayDisplayFunc);\r
-    CHECK_NAME(glutWindowStatusFunc);\r
-    CHECK_NAME(glutKeyboardUpFunc);\r
-    CHECK_NAME(glutSpecialUpFunc);\r
-    CHECK_NAME(glutSetColor);\r
-    CHECK_NAME(glutGetColor);\r
-    CHECK_NAME(glutCopyColormap);\r
-    CHECK_NAME(glutGet);\r
-    CHECK_NAME(glutDeviceGet);\r
-    CHECK_NAME(glutExtensionSupported);\r
-    CHECK_NAME(glutGetModifiers);\r
-    CHECK_NAME(glutLayerGet);\r
-    CHECK_NAME(glutBitmapCharacter);\r
-    CHECK_NAME(glutBitmapWidth);\r
-    CHECK_NAME(glutStrokeCharacter);\r
-    CHECK_NAME(glutStrokeWidth);\r
-    CHECK_NAME(glutBitmapLength);\r
-    CHECK_NAME(glutStrokeLength);\r
-    CHECK_NAME(glutWireSphere);\r
-    CHECK_NAME(glutSolidSphere);\r
-    CHECK_NAME(glutWireCone);\r
-    CHECK_NAME(glutSolidCone);\r
-    CHECK_NAME(glutWireCube);\r
-    CHECK_NAME(glutSolidCube);\r
-    CHECK_NAME(glutWireTorus);\r
-    CHECK_NAME(glutSolidTorus);\r
-    CHECK_NAME(glutWireDodecahedron);\r
-    CHECK_NAME(glutSolidDodecahedron);\r
-    CHECK_NAME(glutWireTeapot);\r
-    CHECK_NAME(glutSolidTeapot);\r
-    CHECK_NAME(glutWireOctahedron);\r
-    CHECK_NAME(glutSolidOctahedron);\r
-    CHECK_NAME(glutWireTetrahedron);\r
-    CHECK_NAME(glutSolidTetrahedron);\r
-    CHECK_NAME(glutWireIcosahedron);\r
-    CHECK_NAME(glutSolidIcosahedron);\r
-    CHECK_NAME(glutVideoResizeGet);\r
-    CHECK_NAME(glutSetupVideoResizing);\r
-    CHECK_NAME(glutStopVideoResizing);\r
-    CHECK_NAME(glutVideoResize);\r
-    CHECK_NAME(glutVideoPan);\r
-    CHECK_NAME(glutReportErrors);\r
-    CHECK_NAME(glutIgnoreKeyRepeat);\r
-    CHECK_NAME(glutSetKeyRepeat);\r
-\r
-    /* freeglut extensions */\r
-    CHECK_NAME(glutMainLoopEvent);\r
-    CHECK_NAME(glutLeaveMainLoop);\r
-    CHECK_NAME(glutCloseFunc);\r
-    CHECK_NAME(glutWMCloseFunc);\r
-    CHECK_NAME(glutMenuDestroyFunc);\r
-    CHECK_NAME(glutFullScreenToggle);\r
-    CHECK_NAME(glutLeaveFullScreen);\r
-    CHECK_NAME(glutSetOption);\r
-    CHECK_NAME(glutGetModeValues);\r
-    CHECK_NAME(glutSetWindowData);\r
-    CHECK_NAME(glutGetWindowData);\r
-    CHECK_NAME(glutSetMenuData);\r
-    CHECK_NAME(glutGetMenuData);\r
-    CHECK_NAME(glutBitmapHeight);\r
-    CHECK_NAME(glutStrokeHeight);\r
-    CHECK_NAME(glutBitmapString);\r
-    CHECK_NAME(glutStrokeString);\r
-    CHECK_NAME(glutWireRhombicDodecahedron);\r
-    CHECK_NAME(glutSolidRhombicDodecahedron);\r
-    CHECK_NAME(glutWireSierpinskiSponge);\r
-    CHECK_NAME(glutSolidSierpinskiSponge);\r
-    CHECK_NAME(glutWireCylinder);\r
-    CHECK_NAME(glutSolidCylinder);\r
-    CHECK_NAME(glutGetProcAddress);\r
-    CHECK_NAME(glutMouseWheelFunc);\r
-    CHECK_NAME(glutJoystickGetNumAxes);\r
-    CHECK_NAME(glutJoystickGetNumButtons);\r
-    CHECK_NAME(glutJoystickNotWorking);\r
-    CHECK_NAME(glutJoystickGetDeadBand);\r
-    CHECK_NAME(glutJoystickSetDeadBand);\r
-    CHECK_NAME(glutJoystickGetSaturation);\r
-    CHECK_NAME(glutJoystickSetSaturation);\r
-    CHECK_NAME(glutJoystickSetMinRange);\r
-    CHECK_NAME(glutJoystickSetMaxRange);\r
-    CHECK_NAME(glutJoystickSetCenter);\r
-    CHECK_NAME(glutJoystickGetMinRange);\r
-    CHECK_NAME(glutJoystickGetMaxRange);\r
-    CHECK_NAME(glutJoystickGetCenter);\r
-    CHECK_NAME(glutInitContextVersion);\r
-    CHECK_NAME(glutInitContextFlags);\r
-    CHECK_NAME(glutInitContextProfile);\r
-    CHECK_NAME(glutInitErrorFunc);\r
-    CHECK_NAME(glutInitWarningFunc);\r
-#undef CHECK_NAME\r
-\r
-    return NULL;\r
-}\r
-\r
-\r
-\r
-GLUTproc FGAPIENTRY\r
-glutGetProcAddress( const char *procName )\r
-{\r
-    GLUTproc p;\r
-    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutGetProcAddress" );\r
-\r
-    /* Try GLUT functions first, then core GL functions */\r
-    p = fghGetGLUTProcAddress( 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
+/*
+ * freeglut_ext.c
+ *
+ * Functions related to OpenGL extensions.
+ *
+ * Copyright (c) 1999-2000 Pawel W. Olszta. All Rights Reserved.
+ * Written by Pawel W. Olszta, <olszta@sourceforge.net>
+ * Creation date: Thu Dec 9 1999
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a
+ * copy of this software and associated documentation files (the "Software"),
+ * to deal in the Software without restriction, including without limitation
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
+ * and/or sell copies of the Software, and to permit persons to whom the
+ * Software is furnished to do so, subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be included
+ * in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+ * PAWEL W. OLSZTA BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+ * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+#define GLX_GLXEXT_PROTOTYPES
+#include <GL/freeglut.h>
+#include "freeglut_internal.h"
+
+extern SFG_Proc fgPlatformGetProcAddress( const char *procName );
+extern GLUTproc fgPlatformGetGLUTProcAddress( const char *procName );
+
+static GLUTproc fghGetGLUTProcAddress( const char* procName )
+{
+    /* optimization: quick initial check */
+    if( strncmp( procName, "glut", 4 ) != 0 )
+        return NULL;
+
+#define CHECK_NAME(x) if( strcmp( procName, #x ) == 0) return (GLUTproc)x;
+    CHECK_NAME(glutInit);
+    CHECK_NAME(glutInitDisplayMode);
+    CHECK_NAME(glutInitDisplayString);
+    CHECK_NAME(glutInitWindowPosition);
+    CHECK_NAME(glutInitWindowSize);
+    CHECK_NAME(glutMainLoop);
+    CHECK_NAME(glutExit);
+    CHECK_NAME(glutCreateWindow);
+    CHECK_NAME(glutCreateSubWindow);
+    CHECK_NAME(glutDestroyWindow);
+    CHECK_NAME(glutPostRedisplay);
+    CHECK_NAME(glutPostWindowRedisplay);
+    CHECK_NAME(glutSwapBuffers);
+    CHECK_NAME(glutGetWindow);
+    CHECK_NAME(glutSetWindow);
+    CHECK_NAME(glutSetWindowTitle);
+    CHECK_NAME(glutSetIconTitle);
+    CHECK_NAME(glutPositionWindow);
+    CHECK_NAME(glutReshapeWindow);
+    CHECK_NAME(glutPopWindow);
+    CHECK_NAME(glutPushWindow);
+    CHECK_NAME(glutIconifyWindow);
+    CHECK_NAME(glutShowWindow);
+    CHECK_NAME(glutHideWindow);
+    CHECK_NAME(glutFullScreen);
+    CHECK_NAME(glutSetCursor);
+    CHECK_NAME(glutWarpPointer);
+    CHECK_NAME(glutEstablishOverlay);
+    CHECK_NAME(glutRemoveOverlay);
+    CHECK_NAME(glutUseLayer);
+    CHECK_NAME(glutPostOverlayRedisplay);
+    CHECK_NAME(glutPostWindowOverlayRedisplay);
+    CHECK_NAME(glutShowOverlay);
+    CHECK_NAME(glutHideOverlay);
+    CHECK_NAME(glutCreateMenu);
+    CHECK_NAME(glutDestroyMenu);
+    CHECK_NAME(glutGetMenu);
+    CHECK_NAME(glutSetMenu);
+    CHECK_NAME(glutAddMenuEntry);
+    CHECK_NAME(glutAddSubMenu);
+    CHECK_NAME(glutChangeToMenuEntry);
+    CHECK_NAME(glutChangeToSubMenu);
+    CHECK_NAME(glutRemoveMenuItem);
+    CHECK_NAME(glutAttachMenu);
+    CHECK_NAME(glutDetachMenu);
+    CHECK_NAME(glutDisplayFunc);
+    CHECK_NAME(glutReshapeFunc);
+    CHECK_NAME(glutKeyboardFunc);
+    CHECK_NAME(glutMouseFunc);
+    CHECK_NAME(glutMultiEntryFunc);
+    CHECK_NAME(glutMultiMotionFunc);
+    CHECK_NAME(glutMultiButtonFunc);
+    CHECK_NAME(glutMultiPassiveFunc);
+    CHECK_NAME(glutMotionFunc);
+    CHECK_NAME(glutPassiveMotionFunc);
+    CHECK_NAME(glutEntryFunc);
+    CHECK_NAME(glutVisibilityFunc);
+    CHECK_NAME(glutIdleFunc);
+    CHECK_NAME(glutTimerFunc);
+    CHECK_NAME(glutMenuStateFunc);
+    CHECK_NAME(glutSpecialFunc);
+    CHECK_NAME(glutSpaceballMotionFunc);
+    CHECK_NAME(glutSpaceballRotateFunc);
+    CHECK_NAME(glutSpaceballButtonFunc);
+    CHECK_NAME(glutButtonBoxFunc);
+    CHECK_NAME(glutDialsFunc);
+    CHECK_NAME(glutTabletMotionFunc);
+    CHECK_NAME(glutTabletButtonFunc);
+    CHECK_NAME(glutMenuStatusFunc);
+    CHECK_NAME(glutOverlayDisplayFunc);
+    CHECK_NAME(glutWindowStatusFunc);
+    CHECK_NAME(glutKeyboardUpFunc);
+    CHECK_NAME(glutSpecialUpFunc);
+    CHECK_NAME(glutSetColor);
+    CHECK_NAME(glutGetColor);
+    CHECK_NAME(glutCopyColormap);
+    CHECK_NAME(glutGet);
+    CHECK_NAME(glutDeviceGet);
+    CHECK_NAME(glutExtensionSupported);
+    CHECK_NAME(glutGetModifiers);
+    CHECK_NAME(glutLayerGet);
+    CHECK_NAME(glutBitmapCharacter);
+    CHECK_NAME(glutBitmapWidth);
+    CHECK_NAME(glutStrokeCharacter);
+    CHECK_NAME(glutStrokeWidth);
+    CHECK_NAME(glutBitmapLength);
+    CHECK_NAME(glutStrokeLength);
+    CHECK_NAME(glutWireSphere);
+    CHECK_NAME(glutSolidSphere);
+    CHECK_NAME(glutWireCone);
+    CHECK_NAME(glutSolidCone);
+    CHECK_NAME(glutWireCube);
+    CHECK_NAME(glutSolidCube);
+    CHECK_NAME(glutWireTorus);
+    CHECK_NAME(glutSolidTorus);
+    CHECK_NAME(glutWireDodecahedron);
+    CHECK_NAME(glutSolidDodecahedron);
+    CHECK_NAME(glutWireTeapot);
+    CHECK_NAME(glutSolidTeapot);
+    CHECK_NAME(glutWireOctahedron);
+    CHECK_NAME(glutSolidOctahedron);
+    CHECK_NAME(glutWireTetrahedron);
+    CHECK_NAME(glutSolidTetrahedron);
+    CHECK_NAME(glutWireIcosahedron);
+    CHECK_NAME(glutSolidIcosahedron);
+    CHECK_NAME(glutVideoResizeGet);
+    CHECK_NAME(glutSetupVideoResizing);
+    CHECK_NAME(glutStopVideoResizing);
+    CHECK_NAME(glutVideoResize);
+    CHECK_NAME(glutVideoPan);
+    CHECK_NAME(glutReportErrors);
+    CHECK_NAME(glutIgnoreKeyRepeat);
+    CHECK_NAME(glutSetKeyRepeat);
+
+    /* freeglut extensions */
+    CHECK_NAME(glutMainLoopEvent);
+    CHECK_NAME(glutLeaveMainLoop);
+    CHECK_NAME(glutCloseFunc);
+    CHECK_NAME(glutWMCloseFunc);
+    CHECK_NAME(glutMenuDestroyFunc);
+    CHECK_NAME(glutFullScreenToggle);
+    CHECK_NAME(glutLeaveFullScreen);
+    CHECK_NAME(glutSetOption);
+    CHECK_NAME(glutGetModeValues);
+    CHECK_NAME(glutSetWindowData);
+    CHECK_NAME(glutGetWindowData);
+    CHECK_NAME(glutSetMenuData);
+    CHECK_NAME(glutGetMenuData);
+    CHECK_NAME(glutBitmapHeight);
+    CHECK_NAME(glutStrokeHeight);
+    CHECK_NAME(glutBitmapString);
+    CHECK_NAME(glutStrokeString);
+    CHECK_NAME(glutWireRhombicDodecahedron);
+    CHECK_NAME(glutSolidRhombicDodecahedron);
+    CHECK_NAME(glutWireSierpinskiSponge);
+    CHECK_NAME(glutSolidSierpinskiSponge);
+    CHECK_NAME(glutWireCylinder);
+    CHECK_NAME(glutSolidCylinder);
+    CHECK_NAME(glutGetProcAddress);
+    CHECK_NAME(glutMouseWheelFunc);
+    CHECK_NAME(glutJoystickGetNumAxes);
+    CHECK_NAME(glutJoystickGetNumButtons);
+    CHECK_NAME(glutJoystickNotWorking);
+    CHECK_NAME(glutJoystickGetDeadBand);
+    CHECK_NAME(glutJoystickSetDeadBand);
+    CHECK_NAME(glutJoystickGetSaturation);
+    CHECK_NAME(glutJoystickSetSaturation);
+    CHECK_NAME(glutJoystickSetMinRange);
+    CHECK_NAME(glutJoystickSetMaxRange);
+    CHECK_NAME(glutJoystickSetCenter);
+    CHECK_NAME(glutJoystickGetMinRange);
+    CHECK_NAME(glutJoystickGetMaxRange);
+    CHECK_NAME(glutJoystickGetCenter);
+    CHECK_NAME(glutInitContextVersion);
+    CHECK_NAME(glutInitContextFlags);
+    CHECK_NAME(glutInitContextProfile);
+    CHECK_NAME(glutInitErrorFunc);
+    CHECK_NAME(glutInitWarningFunc);
+#undef CHECK_NAME
+
+    return NULL;
+}
+
+
+
+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 );
+
+       /* Some GLUT functions are platform-specific: */
+       if ( !p )
+      p = fgPlatformGetGLUTProcAddress( procName );
+
+    return ( p != NULL ) ? p : fgPlatformGetProcAddress( procName );
+}