projects
/
freeglut
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Initial work on callbacks with user data parameters.
[freeglut]
/
src
/
fg_init.c
diff --git
a/src/fg_init.c
b/src/fg_init.c
index
4061836
..
ffd3f99
100644
(file)
--- a/
src/fg_init.c
+++ b/
src/fg_init.c
@@
-1,5
+1,5
@@
/*
/*
- * freeglut_init.c
+ * fg_init.c
*
* Various freeglut initialization functions.
*
*
* Various freeglut initialization functions.
*
@@
-70,6
+70,7
@@
SFG_State fgState = { { -1, -1, GL_FALSE }, /* Position */
{ NULL, NULL }, /* Timers */
{ NULL, NULL }, /* FreeTimers */
NULL, /* IdleCallback */
{ NULL, NULL }, /* Timers */
{ NULL, NULL }, /* FreeTimers */
NULL, /* IdleCallback */
+ NULL, /* IdleCallbackData */
0, /* ActiveMenus */
NULL, /* MenuStateCallback */
NULL, /* MenuStatusCallback */
0, /* ActiveMenus */
NULL, /* MenuStateCallback */
NULL, /* MenuStatusCallback */
@@
-87,6
+88,8
@@
SFG_State fgState = { { -1, -1, GL_FALSE }, /* Position */
1, /* AuxiliaryBufferNumber */
4, /* SampleNumber */
GL_FALSE, /* SkipStaleMotion */
1, /* AuxiliaryBufferNumber */
4, /* SampleNumber */
GL_FALSE, /* SkipStaleMotion */
+ GL_FALSE, /* StrokeFontDrawJoinDots */
+ GL_FALSE, /* AllowNegativeWindowPosition */
1, /* OpenGL context MajorVersion */
0, /* OpenGL context MinorVersion */
0, /* OpenGL ContextFlags */
1, /* OpenGL context MajorVersion */
0, /* OpenGL context MinorVersion */
0, /* OpenGL ContextFlags */
@@
-297,6
+300,7
@@
void fgDeinitialize( void )
fgListInit( &fgState.FreeTimers );
fgState.IdleCallback = NULL;
fgListInit( &fgState.FreeTimers );
fgState.IdleCallback = NULL;
+ fgState.IdleCallbackData = NULL;
fgState.MenuStateCallback = ( FGCBMenuState )NULL;
fgState.MenuStatusCallback = ( FGCBMenuStatus )NULL;
fgState.MenuStateCallback = ( FGCBMenuState )NULL;
fgState.MenuStatusCallback = ( FGCBMenuStatus )NULL;
@@
-317,7
+321,7
@@
void fgDeinitialize( void )
/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
/* -- INTERFACE FUNCTIONS -------------------------------------------------- */
-#if defined(NEED_XPARSEGEOMETRY_IMPL)
+#if defined(NEED_XPARSEGEOMETRY_IMPL) || defined(TARGET_HOST_MS_WINDOWS)
# include "util/xparsegeometry_repl.h"
#endif
# include "util/xparsegeometry_repl.h"
#endif
@@
-356,7
+360,7
@@
void FGAPIENTRY glutInit( int* pargc, char** argv )
* size.
*/
* size.
*/
- if (geometry )
+ if ( geometry )
{
unsigned int parsedWidth, parsedHeight;
int mask = XParseGeometry( geometry,
{
unsigned int parsedWidth, parsedHeight;
int mask = XParseGeometry( geometry,
@@
-369,10
+373,10
@@
void FGAPIENTRY glutInit( int* pargc, char** argv )
if( (mask & (WidthValue|HeightValue)) == (WidthValue|HeightValue) )
fgState.Size.Use = GL_TRUE;
if( (mask & (WidthValue|HeightValue)) == (WidthValue|HeightValue) )
fgState.Size.Use = GL_TRUE;
- if( mask & XNegative )
+ if( ( mask & XNegative ) && !fgState.AllowNegativeWindowPosition )
fgState.Position.X += fgDisplay.ScreenWidth - fgState.Size.X;
fgState.Position.X += fgDisplay.ScreenWidth - fgState.Size.X;
- if( mask & YNegative )
+ if( ( mask & YNegative ) && !fgState.AllowNegativeWindowPosition )
fgState.Position.Y += fgDisplay.ScreenHeight - fgState.Size.Y;
if( (mask & (XValue|YValue)) == (XValue|YValue) )
fgState.Position.Y += fgDisplay.ScreenHeight - fgState.Size.Y;
if( (mask & (XValue|YValue)) == (XValue|YValue) )
@@
-396,7
+400,7
@@
void FGAPIENTRY glutInitWindowPosition( int x, int y )
fgState.Position.X = x;
fgState.Position.Y = y;
fgState.Position.X = x;
fgState.Position.Y = y;
- if( ( x >= 0 ) && ( y >= 0 ) )
+ if( ( ( x >= 0 ) && ( y >= 0 ) ) || fgState.AllowNegativeWindowPosition )
fgState.Position.Use = GL_TRUE;
else
fgState.Position.Use = GL_FALSE;
fgState.Position.Use = GL_TRUE;
else
fgState.Position.Use = GL_FALSE;