From 9da07cd41f8ab5ca9c97310ce35b6bdf0a722cbe Mon Sep 17 00:00:00 2001 From: rkrolib Date: Wed, 29 Oct 2003 06:40:51 +0000 Subject: [PATCH] * Fixed a bug that I introduced in fgWarning()/fgError(): I thought that ((a) || (b)) was defined to have value as: (a) if (a) != 0 (b) if (a) == 0 ...instead, it has value 0/1. This was causing a bug. It's probably just as well, since what I was trying to do definitely fell into the category of "clever code" rather than "clear code". Sorry. * Made glutSetKeyRepeat() call fgError() if you go out of range. (The old code silently did nothing---not even a warning.) If it is really desirable to keep running, we should probably at least generate an fgWarning(). * Deleted some say-nothing-new comments. * XXX added: Is glutSetKeyRepeat() deprecated? git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@256 7f0cb862-5218-0410-a997-914c9d46530a --- freeglut/freeglut/src/freeglut_cursor.c | 64 ++++++++++++------------- freeglut/freeglut/src/freeglut_main.c | 8 +++- freeglut/freeglut/src/freeglut_misc.c | 55 +++++---------------- 3 files changed, 51 insertions(+), 76 deletions(-) diff --git a/freeglut/freeglut/src/freeglut_cursor.c b/freeglut/freeglut/src/freeglut_cursor.c index 91bf604..9ba6f12 100644 --- a/freeglut/freeglut/src/freeglut_cursor.c +++ b/freeglut/freeglut/src/freeglut_cursor.c @@ -74,14 +74,14 @@ void FGAPIENTRY glutSetCursor( int cursorID ) * (e) Out-of-range cursor-types are ignored. Should we abort? * Print a warning message? */ - { - Cursor cursor; -# define MAP_CURSOR(a,b) case a: cursor = XCreateFontCursor( fgDisplay.Display, b ); break; - if( GLUT_CURSOR_FULL_CROSSHAIR == cursorID ) - cursorID = GLUT_CURSOR_CROSSHAIR; - - switch( cursorID ) { + Cursor cursor; +#define MAP_CURSOR(a,b) case a: cursor = XCreateFontCursor( fgDisplay.Display, b ); break; + if( GLUT_CURSOR_FULL_CROSSHAIR == cursorID ) + cursorID = GLUT_CURSOR_CROSSHAIR; + + switch( cursorID ) + { MAP_CURSOR( GLUT_CURSOR_RIGHT_ARROW, XC_right_ptr); MAP_CURSOR( GLUT_CURSOR_LEFT_ARROW, XC_left_ptr); MAP_CURSOR( GLUT_CURSOR_INFO, XC_hand1); @@ -103,17 +103,17 @@ void FGAPIENTRY glutSetCursor( int cursorID ) MAP_CURSOR( GLUT_CURSOR_BOTTOM_RIGHT_CORNER, XC_bottom_right_corner); MAP_CURSOR( GLUT_CURSOR_BOTTOM_LEFT_CORNER, XC_bottom_left_corner); MAP_CURSOR( GLUT_CURSOR_NONE, XC_bogosity); - case GLUT_CURSOR_INHERIT: - break; - default: - return; - } + case GLUT_CURSOR_INHERIT: + break; + default: + return; + } - if( GLUT_CURSOR_INHERIT == cursorID ) - XUndefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle ); - else - XDefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle, cursor ); - } + if( GLUT_CURSOR_INHERIT == cursorID ) + XUndefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle ); + else + XDefineCursor( fgDisplay.Display, fgStructure.Window->Window.Handle, cursor ); + } #elif TARGET_HOST_WIN32 @@ -131,21 +131,21 @@ void FGAPIENTRY glutSetCursor( int cursorID ) switch( cursorID ) { - MAP_CURSOR( GLUT_CURSOR_RIGHT_ARROW, IDC_ARROW ); - MAP_CURSOR( GLUT_CURSOR_LEFT_ARROW, IDC_ARROW ); - MAP_CURSOR( GLUT_CURSOR_INFO, IDC_HELP ); - MAP_CURSOR( GLUT_CURSOR_DESTROY, IDC_CROSS ); - MAP_CURSOR( GLUT_CURSOR_HELP, IDC_HELP ); - MAP_CURSOR( GLUT_CURSOR_CYCLE, IDC_SIZEALL ); - MAP_CURSOR( GLUT_CURSOR_SPRAY, IDC_CROSS ); - MAP_CURSOR( GLUT_CURSOR_WAIT, IDC_WAIT ); - MAP_CURSOR( GLUT_CURSOR_TEXT, IDC_UPARROW ); - MAP_CURSOR( GLUT_CURSOR_CROSSHAIR, IDC_CROSS ); - /* MAP_CURSOR( GLUT_CURSOR_NONE, IDC_NO ); */ - ZAP_CURSOR( GLUT_CURSOR_NONE, NULL ); - - default: - MAP_CURSOR( GLUT_CURSOR_UP_DOWN, IDC_ARROW ); + MAP_CURSOR( GLUT_CURSOR_RIGHT_ARROW, IDC_ARROW ); + MAP_CURSOR( GLUT_CURSOR_LEFT_ARROW, IDC_ARROW ); + MAP_CURSOR( GLUT_CURSOR_INFO, IDC_HELP ); + MAP_CURSOR( GLUT_CURSOR_DESTROY, IDC_CROSS ); + MAP_CURSOR( GLUT_CURSOR_HELP, IDC_HELP ); + MAP_CURSOR( GLUT_CURSOR_CYCLE, IDC_SIZEALL ); + MAP_CURSOR( GLUT_CURSOR_SPRAY, IDC_CROSS ); + MAP_CURSOR( GLUT_CURSOR_WAIT, IDC_WAIT ); + MAP_CURSOR( GLUT_CURSOR_TEXT, IDC_UPARROW ); + MAP_CURSOR( GLUT_CURSOR_CROSSHAIR, IDC_CROSS ); + /* MAP_CURSOR( GLUT_CURSOR_NONE, IDC_NO ); */ + ZAP_CURSOR( GLUT_CURSOR_NONE, NULL ); + + default: + MAP_CURSOR( GLUT_CURSOR_UP_DOWN, IDC_ARROW ); } #endif diff --git a/freeglut/freeglut/src/freeglut_main.c b/freeglut/freeglut/src/freeglut_main.c index d41ceed..75eda6c 100644 --- a/freeglut/freeglut/src/freeglut_main.c +++ b/freeglut/freeglut/src/freeglut_main.c @@ -289,7 +289,9 @@ void fgError( const char *fmt, ... ) va_start( ap, fmt ); - fprintf( stderr, "freeglut (%s): ", fgState.ProgramName || ""); + fprintf( stderr, "freeglut "); + if( fgState.ProgramName ) + fprintf (stderr, "(%s): ", fgState.ProgramName); vfprintf( stderr, fmt, ap ); fprintf( stderr, "\n" ); @@ -304,7 +306,9 @@ void fgWarning( const char *fmt, ... ) va_start( ap, fmt ); - fprintf( stderr, "freeglut (%s): ", fgState.ProgramName || ""); + fprintf( stderr, "freeglut "); + if( fgState.ProgramName ) + fprintf( stderr, "(%s): ", fgState.ProgramName ); vfprintf( stderr, fmt, ap ); fprintf( stderr, "\n" ); diff --git a/freeglut/freeglut/src/freeglut_misc.c b/freeglut/freeglut/src/freeglut_misc.c index 9d44470..3d1ce5b 100644 --- a/freeglut/freeglut/src/freeglut_misc.c +++ b/freeglut/freeglut/src/freeglut_misc.c @@ -47,6 +47,8 @@ /* * This functions checks if an OpenGL extension is supported or not + * + * XXX Wouldn't this be simpler and clearer if we used strtok()? */ int FGAPIENTRY glutExtensionSupported( const char* extension ) { @@ -54,20 +56,13 @@ int FGAPIENTRY glutExtensionSupported( const char* extension ) const int len = strlen( extension ) ; /* - * Make sure there is a current window, and thus -- a current context available + * Make sure there is a current window, and thus a current context available */ freeglut_assert_ready; freeglut_return_val_if_fail( fgStructure.Window != NULL, 0 ); - /* - * Check if the extension itself looks valid (contains no spaces) - */ if (strchr(extension, ' ')) return 0; - - /* - * Note it is safe to query the extensions - */ start = extensions = (const char *) glGetString(GL_EXTENSIONS); /* XXX consider printing a warning to stderr that there's no current @@ -94,16 +89,8 @@ int FGAPIENTRY glutExtensionSupported( const char* extension ) */ void FGAPIENTRY glutReportErrors( void ) { - GLenum error = glGetError(); - - /* - * Keep reporting errors as long as there are any... - */ - while( error != GL_NO_ERROR ) - { - /* - * Print the current error - */ + GLenum error; + while( ( error = glGetError() ) != GL_NO_ERROR ) # undef G_LOG_DOMAIN # define G_LOG_DOMAIN ((gchar *) 0) @@ -111,27 +98,23 @@ void FGAPIENTRY glutReportErrors( void ) # undef G_LOG_DOMAIN # define G_LOG_DOMAIN "freeglut_misc.c" - - /* - * Grab the next error value - */ - error = glGetError(); - }; } /* * Turns the ignore key auto repeat feature on and off + * + * DEPRECATED 11/4/02 - Do not use */ -void FGAPIENTRY glutIgnoreKeyRepeat( int ignore ) /* DEPRECATED 11/4/02 - Do not use */ +void FGAPIENTRY glutIgnoreKeyRepeat( int ignore ) { - /* - * This is simple and not damaging... - */ fgState.IgnoreKeyRepeat = ignore ? TRUE : FALSE; } /* - * Hints the window system whether to generate key auto repeat, or not. This is evil. + * Hints the window system whether to generate key auto repeat, or not. + * This is evil. + * + * XXX Is this also deprecated as of 20021104? */ void FGAPIENTRY glutSetKeyRepeat( int repeatMode ) { @@ -139,9 +122,6 @@ void FGAPIENTRY glutSetKeyRepeat( int repeatMode ) freeglut_assert_ready; - /* - * This is really evil, but let's have this done. - */ switch( repeatMode ) { case GLUT_KEY_REPEAT_OFF: XAutoRepeatOff( fgDisplay.Display ); break; @@ -150,14 +130,7 @@ void FGAPIENTRY glutSetKeyRepeat( int repeatMode ) { XKeyboardState keyboardState; - /* - * Query the current keyboard state - */ XGetKeyboardControl( fgDisplay.Display, &keyboardState ); - - /* - * Set the auto key repeat basing on the global settings - */ glutSetKeyRepeat( keyboardState.global_auto_repeat == AutoRepeatModeOn ? GLUT_KEY_REPEAT_ON : GLUT_KEY_REPEAT_OFF @@ -166,9 +139,7 @@ void FGAPIENTRY glutSetKeyRepeat( int repeatMode ) break; default: - /* - * Whoops, this was not expected at all - */ + fgError ("Invalid glutSetKeyRepeat mode: %d", repeatMode); break; }