SFG_State fgState = { { -1, -1, GL_FALSE }, /* Position */
{ 300, 300, GL_TRUE }, /* Size */
GLUT_RGBA | GLUT_SINGLE | GLUT_DEPTH, /* DisplayMode */
- GL_FALSE, /* Initalized */
+ GL_FALSE, /* Initialised */
GL_FALSE, /* ForceDirectContext */
GL_TRUE, /* TryDirectContext */
GL_FALSE, /* ForceIconic */
{ { 0, 0 }, GL_FALSE },
#endif
{ NULL, NULL }, /* Timers */
+ { NULL, NULL }, /* FreeTimers */
NULL, /* IdleCallback */
0, /* ActiveMenus */
NULL, /* MenuStateCallback */
16, /* GameModeDepth */
72, /* GameModeRefresh */
GLUT_ACTION_EXIT, /* ActionOnWindowClose */
- GLUT_EXEC_STATE_INIT /* ExecState */
- NULL, /* ProgramName */
+ GLUT_EXEC_STATE_INIT, /* ExecState */
+ NULL /* ProgramName */
};
ATOM atom;
/*
- * What we need to do is to initialize the fgDisplay global structure here...
+ * What we need to do is to initialize the fgDisplay global structure here.
*/
fgDisplay.Instance = GetModuleHandle( NULL );
ZeroMemory( &wc, sizeof(WNDCLASS) );
/*
- * Each of the windows should have its own device context...
+ * Each of the windows should have its own device context, and we
+ * want redraw events during Vertical and Horizontal Resizes by
+ * the user.
+ *
+ * XXX Old code had "| CS_DBCLCKS" commented out. Plans for the
+ * XXX future? Dead-end idea?
*/
- wc.style = CS_OWNDC;
+ wc.style = CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = fgWindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
fgJoystickInit( 0 );
- fgState.Initalized = GL_TRUE;
+ fgState.Initialised = GL_TRUE;
}
/*
{
SFG_Timer *timer;
- if( !fgState.Initalized )
+ if( !fgState.Initialised )
{
fgWarning( "fgDeinitialize(): "
"no valid initialization has been performed" );
return;
}
- /* fgState.Initalized = GL_FALSE; */
+ /* fgState.Initialised = GL_FALSE; */
/*
* If there was a menu created, destroy the rendering context
fgDestroyStructure( );
- while( timer = ( SFG_Timer * )fgState.Timers.First )
+ while( (timer = fgState.Timers.First) )
{
- fgListRemove ( &fgState.Timers, &timer->Node );
+ fgListRemove( &fgState.Timers, &timer->Node );
+ free( timer );
+ }
+
+ while( (timer = fgState.FreeTimers.First) )
+ {
+ fgListRemove( &fgState.FreeTimers, &timer->Node );
free( timer );
}
fgJoystickClose( );
- fgState.Initalized = GL_FALSE;
+ fgState.Initialised = GL_FALSE;
fgState.Position.X = -1;
fgState.Position.Y = -1;
fgState.Time.Set = GL_FALSE;
- fgState.Timers.First = fgState.Timers.Last = NULL;
+ fgListInit( &fgState.Timers );
+ fgListInit( &fgState.FreeTimers );
+
fgState.IdleCallback = NULL;
fgState.MenuStateCallback = ( FGCBMenuState )NULL;
fgState.MenuStatusCallback = ( FGCBMenuStatus )NULL;
* Everything inside the following #ifndef is copied from the X sources.
*/
-#ifndef TARGET_HOST_UNIX_X11
+#if TARGET_HOST_WIN32
+
+/*
+
+Copyright 1985, 1986, 1987,1998 The Open Group
+
+Permission to use, copy, modify, distribute, and sell this software and its
+documentation for any purpose is hereby granted without fee, provided that
+the above copyright notice appear in all copies and that both that
+copyright notice and this permission notice appear in supporting
+documentation.
+
+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 THE OPEN GROUP 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.
+
+Except as contained in this notice, the name of The Open Group shall
+not be used in advertising or otherwise to promote the sale, use or
+other dealings in this Software without prior written authorization
+from The Open Group.
+
+*/
#define NoValue 0x0000
#define XValue 0x0001
}
*NextString = string;
if (Sign >= 0)
- return (Result);
+ return Result;
else
- return (-Result);
+ return -Result;
}
static int XParseGeometry (
- _Xconst char *string,
+ const char *string,
int *x,
int *y,
unsigned int *width, /* RETURN */
int tempX = 0, tempY = 0;
char *nextCharacter;
- if ( (string == NULL) || (*string == '\0')) return(mask);
+ if ( (string == NULL) || (*string == '\0'))
+ return mask;
if (*string == '=')
string++; /* ignore possible '=' at beg of geometry spec */
if (*strind != '+' && *strind != '-' && *strind != 'x') {
tempWidth = ReadInteger(strind, &nextCharacter);
if (strind == nextCharacter)
- return (0);
+ return 0;
strind = nextCharacter;
mask |= WidthValue;
}
strind++;
tempHeight = ReadInteger(strind, &nextCharacter);
if (strind == nextCharacter)
- return (0);
+ return 0;
strind = nextCharacter;
mask |= HeightValue;
}
strind++;
tempX = -ReadInteger(strind, &nextCharacter);
if (strind == nextCharacter)
- return (0);
+ return 0;
strind = nextCharacter;
mask |= XNegative;
}
strind++;
tempX = ReadInteger(strind, &nextCharacter);
if (strind == nextCharacter)
- return(0);
+ return 0;
strind = nextCharacter;
}
mask |= XValue;
strind++;
tempY = -ReadInteger(strind, &nextCharacter);
if (strind == nextCharacter)
- return(0);
+ return 0;
strind = nextCharacter;
mask |= YNegative;
}
strind++;
tempY = ReadInteger(strind, &nextCharacter);
if (strind == nextCharacter)
- return(0);
+ return 0;
strind = nextCharacter;
}
mask |= YValue;
/* If strind isn't at the end of the string the it's an invalid
geometry specification. */
- if (*strind != '\0') return (0);
+ if (*strind != '\0') return 0;
if (mask & XValue)
*x = tempX;
*width = tempWidth;
if (mask & HeightValue)
*height = tempHeight;
- return (mask);
+ return mask;
}
#endif
char* geometry = NULL;
int i, j, argc = *pargc;
- if( fgState.Initalized )
- fgError( "illegal glutInit() reinitialization attemp" );
+ if( fgState.Initialised )
+ fgError( "illegal glutInit() reinitialization attempt" );
if (pargc && *pargc && argv && *argv && **argv)
{
* delimited by blanks or tabs.
*/
char *token ;
- int len = strlen ( displayMode ) ;
- char *buffer = (char *)malloc ( (len+1) * sizeof(char) ) ;
- memcpy ( buffer, displayMode, len ) ;
- buffer[len] = '\0' ;
+ int len = strlen ( displayMode );
+ char *buffer = (char *)malloc ( (len+1) * sizeof(char) );
+ memcpy ( buffer, displayMode, len );
+ buffer[len] = '\0';
- token = strtok ( buffer, " \t" ) ;
+ token = strtok ( buffer, " \t" );
while ( token )
{
/*
case 28 : /* Unrecognized */
printf ( "WARNING - Display string token not recognized: %s\n",
- token ) ;
+ token );
break ;
}
- token = strtok ( NULL, " \t" ) ;
+ token = strtok ( NULL, " \t" );
}
- free ( buffer ) ;
+ free ( buffer );
/*
* We will make use of this value when creating a new OpenGL context...