if( !glXQueryExtension( fgDisplay.Display, NULL, NULL ) )
fgError( "OpenGL GLX extension not supported by display '%s'",
- XDisplayName( displayName ) );
+ XDisplayName( displayName ) );
fgDisplay.Screen = DefaultScreen( fgDisplay.Display );
fgDisplay.RootWindow = RootWindow(
fgDisplay.Screen
);
fgDisplay.ScreenHeightMM = DisplayHeightMM(
- fgDisplay.Display,
- fgDisplay.Screen
+ fgDisplay.Display,
+ fgDisplay.Screen
);
fgDisplay.Connection = ConnectionNumber( fgDisplay.Display );
if( !fgState.Time.Set )
{
fgWarning( "fgDeinitialize(): fgState.Timer is null => "
- "no valid initialization has been performed" );
+ "no valid initialization has been performed" );
return;
}
int i, j, argc = *pargc;
if (pargc && *pargc && argv && *argv && **argv)
- fgState.ProgramName = strdup (*argv);
+ fgState.ProgramName = strdup (*argv);
else
- fgState.ProgramName = strdup ("");
+ fgState.ProgramName = strdup ("");
if (!fgState.ProgramName)
- fgError ("Could not allocate space for the program's name.");
+ fgError ("Could not allocate space for the program's name.");
if( fgState.Time.Set )
- fgError( "illegal glutInit() reinitialization attemp" );
+ fgError( "illegal glutInit() reinitialization attemp" );
fgCreateStructure();
#if TARGET_HOST_WIN32
if ( !getenv ( "DISPLAY" ) )
- displayName = strdup ( "" ) ;
+ displayName = strdup ( "" ) ;
else
#endif
- displayName = strdup( getenv( "DISPLAY" ) );
+ displayName = strdup( getenv( "DISPLAY" ) );
if (!displayName)
- fgError ("Could not allocate space for display name.");
+ fgError ("Could not allocate space for display name.");
for( i=1; i<argc; i++ )
{
fgError( "-display parameter must be followed by display name" );
if( displayName )
- free( displayName );
+ free( displayName );
displayName = strdup( argv[ i ] );
- if (!displayName)
- fgError( "Could not allocate space for display name (%s)",
- argv [i]);
+ if (!displayName)
+ fgError( "Could not allocate space for display name (%s)",
+ argv [i]);
argv[ i - 1 ] = NULL;
argv[ i ] = NULL;
}
else if( strcmp( argv[ i ], "-geometry" ) == 0 )
{
- int result, x, y;
- unsigned int w, h;
+ int result, x, y;
+ unsigned int w, h;
- if ( ++i >= argc )
+ if ( ++i >= argc )
fgError( "-geometry parameter must be followed by window "
- "geometry settings" );
- result = sscanf ( argv[i], "%dx%d+%d+%d", &x, &y, &w, &h );
+ "geometry settings" );
+ result = sscanf ( argv[i], "%dx%d+%d+%d", &x, &y, &w, &h );
- if ( result > 3 )
- fgState.Size.Y = h;
- if ( result > 2 )
- fgState.Size.X = w;
+ if ( result > 3 )
+ fgState.Size.Y = h;
+ if ( result > 2 )
+ fgState.Size.X = w;
- if( result > 1 )
+ if( result > 1 )
{
- if( y < 0 )
- fgState.Position.Y =
- fgDisplay.ScreenHeight + y - fgState.Size.Y;
- else
- fgState.Position.Y = y;
- }
-
- if( result > 0 )
+ if( y < 0 )
+ fgState.Position.Y =
+ fgDisplay.ScreenHeight + y - fgState.Size.Y;
+ else
+ fgState.Position.Y = y;
+ }
+
+ if( result > 0 )
{
- if( x < 0 )
- fgState.Position.X =
- fgDisplay.ScreenWidth + x - fgState.Size.X;
- else
- fgState.Position.X = x;
- }
-
- argv[ i - 1 ] = NULL;
- argv[ i ] = NULL;
- (*pargc) -= 2;
+ if( x < 0 )
+ fgState.Position.X =
+ fgDisplay.ScreenWidth + x - fgState.Size.X;
+ else
+ fgState.Position.X = x;
+ }
+
+ argv[ i - 1 ] = NULL;
+ argv[ i ] = NULL;
+ (*pargc) -= 2;
}
else if( strcmp( argv[ i ], "-direct" ) == 0)
{
if( fgState.TryDirectContext == FALSE )
fgError( "parameters ambiguity, -direct and -indirect "
- "cannot be both specified" );
+ "cannot be both specified" );
fgState.ForceDirectContext = TRUE;
argv[ i ] = NULL;
{
if( fgState.ForceDirectContext == TRUE )
fgError( "parameters ambiguity, -direct and -indirect "
- "cannot be both specified" );
+ "cannot be both specified" );
fgState.TryDirectContext = FALSE;
argv[ i ] = NULL;
j = 2 ;
for( i = 1; i < *pargc; i++, j++ )
{
- if( argv[ i ] == NULL )
+ if( argv[ i ] == NULL )
{
- /* Guaranteed to end because there are "*pargc" arguments left */
- while ( argv[j] == NULL )
- j++;
- argv[i] = argv[j] ;
- }
+ /* Guaranteed to end because there are "*pargc" arguments left */
+ while ( argv[j] == NULL )
+ j++;
+ argv[i] = argv[j] ;
+ }
}
/*
fgState.Size.Use = FALSE;
if( displayName )
- free( displayName );
+ free( displayName );
}
/*
G_CSET_a_2_z
"_"
G_CSET_A_2_Z
- ) /* cset_identifier_first */,
+ ) /* cset_identifier_first */,
(
G_CSET_a_2_z
"_0123456789"
G_CSET_LATINS
G_CSET_LATINC
"<>!=~"
- ) /* cset_identifier_nth */,
- ( "#\n" ) /* cpair_comment_single */,
- FALSE /* case_sensitive */,
- TRUE /* skip_comment_multi */,
- TRUE /* skip_comment_single */,
- TRUE /* scan_comment_multi */,
- TRUE /* scan_identifier */,
- FALSE /* scan_identifier_1char */,
- FALSE /* scan_identifier_NULL */,
- TRUE /* scan_symbols */,
- FALSE /* scan_binary */,
- TRUE /* scan_octal */,
- TRUE /* scan_float */,
- TRUE /* scan_hex */,
- FALSE /* scan_hex_dollar */,
- TRUE /* scan_string_sq */,
- TRUE /* scan_string_dq */,
- TRUE /* numbers_2_int */,
- FALSE /* int_2_float */,
- FALSE /* identifier_2_string */,
- TRUE /* char_2_token */,
- FALSE /* symbol_2_token */,
- FALSE /* scope_0_fallback */,
+ ) /* cset_identifier_nth */,
+ ( "#\n" ) /* cpair_comment_single */,
+ FALSE /* case_sensitive */,
+ TRUE /* skip_comment_multi */,
+ TRUE /* skip_comment_single */,
+ TRUE /* scan_comment_multi */,
+ TRUE /* scan_identifier */,
+ FALSE /* scan_identifier_1char */,
+ FALSE /* scan_identifier_NULL */,
+ TRUE /* scan_symbols */,
+ FALSE /* scan_binary */,
+ TRUE /* scan_octal */,
+ TRUE /* scan_float */,
+ TRUE /* scan_hex */,
+ FALSE /* scan_hex_dollar */,
+ TRUE /* scan_string_sq */,
+ TRUE /* scan_string_dq */,
+ TRUE /* numbers_2_int */,
+ FALSE /* int_2_float */,
+ FALSE /* identifier_2_string */,
+ TRUE /* char_2_token */,
+ FALSE /* symbol_2_token */,
+ FALSE /* scope_0_fallback */,
};
/*
if( comparison != FG_NONE && i < (gint) strlen( scanner->value.v_identifier ) )
{
valueString = strdup( scanner->value.v_identifier + i );
- if (!valueString)
- fgError ("Could not allocate an internal string.");
- }
+ if (!valueString)
+ fgError ("Could not allocate an internal string.");
+ }
/*
* If there was a value string, convert it to integer...
RedrawWindow(
window->Window.Handle, NULL, NULL,
RDW_NOERASE | RDW_INTERNALPAINT | RDW_INVALIDATE | RDW_UPDATENOW
- );
+ );
}
#endif
timer;
timer = (SFG_Timer *)next )
{
- next = (SFG_Timer *)timer->Node.Next;
+ next = (SFG_Timer *)timer->Node.Next;
if( timer->TriggerTime <= checkTime )
{
{
if( w->Callbacks.Joystick )
{
- e->found = TRUE;
- e->data = w;
+ e->found = TRUE;
+ e->data = w;
}
fgEnumSubWindows( w, fgCheckJoystickCallback, e );
}
{
if( w->State.Redisplay )
{
- e->found = TRUE;
- e->data = w;
+ e->found = TRUE;
+ e->data = w;
}
fgEnumSubWindows( w, fgHavePendingRedisplaysCallback, e );
-}
+}
static int fgHavePendingRedisplays (void)
{
SFG_Enumerator enumerator;
SFG_Timer *timer;
for( timer = (SFG_Timer *)fgState.Timers.First;
- timer;
- timer = (SFG_Timer *)timer->Node.Next )
- ret = MIN( ret, MAX( 0, (timer->TriggerTime) - now ) );
+ timer;
+ timer = (SFG_Timer *)timer->Node.Next )
+ ret = MIN( ret, MAX( 0, (timer->TriggerTime) - now ) );
return ret;
}
long msec;
if( fgState.IdleCallback ||
- fgHavePendingRedisplays() )
- return;
+ fgHavePendingRedisplays() )
+ return;
socket = ConnectionNumber( fgDisplay.Display );
FD_ZERO( &fdset );
FD_SET( socket, &fdset );
msec = fgNextTimer();
if( fgHaveJoystick() )
- msec = MIN( msec, 10 );
+ msec = MIN( msec, 10 );
wait.tv_sec = msec / 1000;
wait.tv_usec = (msec % 1000) * 1000;
err = select( socket+1, &fdset, NULL, NULL, &wait );
if( -1 == err )
- printf( "freeglut select() error: %d\n", errno );
+ printf( "freeglut select() error: %d\n", errno );
#elif TARGET_HOST_WIN32
#endif
*/
if( window->ActiveMenu != NULL )
{
- if ( window == window->ActiveMenu->ParentWindow )
+ if ( window == window->ActiveMenu->ParentWindow )
{
- window->ActiveMenu->Window->State.MouseX = event.xmotion.x_root - window->ActiveMenu->X ;
- window->ActiveMenu->Window->State.MouseY = event.xmotion.y_root - window->ActiveMenu->Y ;
+ window->ActiveMenu->Window->State.MouseX = event.xmotion.x_root - window->ActiveMenu->X ;
+ window->ActiveMenu->Window->State.MouseY = event.xmotion.y_root - window->ActiveMenu->Y ;
}
/*
GETWINDOW( xbutton ); GETMOUSE( xbutton );
/*
- * An X button (at least in XFree86) is numbered from 1.
- * A GLUT button is numbered from 0.
- * Old GLUT passed through buttons other than just the first
- * three, though it only gave symbolic names and official
- * support to the first three.
- *
- */
- button = event.xbutton.button - 1;
+ * An X button (at least in XFree86) is numbered from 1.
+ * A GLUT button is numbered from 0.
+ * Old GLUT passed through buttons other than just the first
+ * three, though it only gave symbolic names and official
+ * support to the first three.
+ *
+ */
+ button = event.xbutton.button - 1;
/*
* Do not execute the application's mouse callback if a menu is hooked to this button.
*/
if ( window->ActiveMenu != NULL ) /* Window has an active menu, it absorbs any mouse click */
{
- if ( window == window->ActiveMenu->ParentWindow )
+ if ( window == window->ActiveMenu->ParentWindow )
{
- window->ActiveMenu->Window->State.MouseX = event.xbutton.x_root - window->ActiveMenu->X ;
- window->ActiveMenu->Window->State.MouseY = event.xbutton.y_root - window->ActiveMenu->Y ;
- }
-
- if ( fgCheckActiveMenu ( window->ActiveMenu->Window, window->ActiveMenu ) == TRUE ) /* Inside the menu, invoke the callback and deactivate the menu*/
+ window->ActiveMenu->Window->State.MouseX = event.xbutton.x_root - window->ActiveMenu->X ;
+ window->ActiveMenu->Window->State.MouseY = event.xbutton.y_root - window->ActiveMenu->Y ;
+ }
+
+ if ( fgCheckActiveMenu ( window->ActiveMenu->Window, window->ActiveMenu ) == TRUE ) /* Inside the menu, invoke the callback and deactivate the menu*/
{
- /* Save the current window and menu and set the current window to the window whose menu this is */
- SFG_Window *save_window = fgStructure.Window ;
- SFG_Menu *save_menu = fgStructure.Menu ;
- SFG_Window *parent_window = window->ActiveMenu->ParentWindow ;
- fgSetWindow ( parent_window ) ;
- fgStructure.Menu = window->ActiveMenu ;
-
- /* Execute the menu callback */
- fgExecuteMenuCallback ( window->ActiveMenu ) ;
- fgDeactivateMenu ( parent_window ) ;
-
- /* Restore the current window and menu */
- fgSetWindow ( save_window ) ;
- fgStructure.Menu = save_menu ;
- }
- else /* Outside the menu, deactivate the menu if it's a downclick */
- if ( pressed == TRUE )
- fgDeactivateMenu ( window->ActiveMenu->ParentWindow ) ;
-
- /*
- * Let's make the window redraw as a result of the mouse click and menu activity.
- */
- window->State.Redisplay = TRUE ;
-
- break ;
+ /* Save the current window and menu and set the current window to the window whose menu this is */
+ SFG_Window *save_window = fgStructure.Window ;
+ SFG_Menu *save_menu = fgStructure.Menu ;
+ SFG_Window *parent_window = window->ActiveMenu->ParentWindow ;
+ fgSetWindow ( parent_window ) ;
+ fgStructure.Menu = window->ActiveMenu ;
+
+ /* Execute the menu callback */
+ fgExecuteMenuCallback ( window->ActiveMenu ) ;
+ fgDeactivateMenu ( parent_window ) ;
+
+ /* Restore the current window and menu */
+ fgSetWindow ( save_window ) ;
+ fgStructure.Menu = save_menu ;
+ }
+ else /* Outside the menu, deactivate the menu if it's a downclick */
+ if ( pressed == TRUE )
+ fgDeactivateMenu ( window->ActiveMenu->ParentWindow ) ;
+
+ /*
+ * Let's make the window redraw as a result of the mouse click and menu activity.
+ */
+ window->State.Redisplay = TRUE ;
+
+ break ;
}
/*
* No active menu, let's check whether we need to activate one.
*/
if (( 0 <= button ) && ( 2 >= button ) &&
- ( window->Menu[ button ] != NULL ) && ( pressed == TRUE ) )
+ ( window->Menu[ button ] != NULL ) && ( pressed == TRUE ) )
{
/*
* Let's make the window redraw as a result of the mouse click.
event.type == ButtonPress ? GLUT_DOWN : GLUT_UP,
event.xbutton.x,
event.xbutton.y
- );
+ );
}
}
* A key has been pressed, find the window that had the focus:
*/
GETWINDOW( xkey );
- GETMOUSE( xkey );
+ GETMOUSE( xkey );
if( event.type == KeyPress )
{
if (LOWORD(wParam) != WA_INACTIVE)
{
/* glutSetCursor( fgStructure.Window->State.Cursor ); */
- printf("WM_ACTIVATE: glutSetCursor( %p, %d)\n", window, window->State.Cursor );
+ printf("WM_ACTIVATE: glutSetCursor( %p, %d)\n", window, window->State.Cursor );
glutSetCursor( window->State.Cursor );
}
*/
#if 0
if ((LOWORD(lParam) == HTCLIENT) &&
- (fgStructure.Window->State.Cursor == GLUT_CURSOR_NONE))
- SetCursor( NULL );
+ (fgStructure.Window->State.Cursor == GLUT_CURSOR_NONE))
+ SetCursor( NULL );
#else
- /* Set the cursor AND change it for this window class. */
-# define MAP_CURSOR(a,b) case a: SetCursor( LoadCursor( NULL, b ) ); \
+ /* Set the cursor AND change it for this window class. */
+# define MAP_CURSOR(a,b) case a: SetCursor( LoadCursor( NULL, b ) ); \
break;
- /* Nuke the cursor AND change it for this window class. */
-# define ZAP_CURSOR(a,b) case a: SetCursor( NULL ); \
+ /* Nuke the cursor AND change it for this window class. */
+# define ZAP_CURSOR(a,b) case a: SetCursor( NULL ); \
break;
if (LOWORD(lParam) == HTCLIENT)
- switch( window->State.Cursor )
- {
- 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 );
- }
+ switch( window->State.Cursor )
+ {
+ 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
- else
- lRet = DefWindowProc( hWnd, uMsg, wParam, lParam );
- break;
+ else
+ lRet = DefWindowProc( hWnd, uMsg, wParam, lParam );
+ break;
case WM_SHOWWINDOW:
window->State.Visible = TRUE;