X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffg_main.c;h=c3bccdc39a1efe9f2e2abc5d680cc2d015cdd38d;hb=1bc8c778760ebbba826f2795a0f30e1ef2d47ec8;hp=33ca857ac9227c99a4d866aa3731e01425ff9c59;hpb=19242860f0cd6d3f2c3e32e87e15fe5e1151d072;p=freeglut diff --git a/src/fg_main.c b/src/fg_main.c index 33ca857..c3bccdc 100644 --- a/src/fg_main.c +++ b/src/fg_main.c @@ -88,6 +88,7 @@ static void fghReshapeWindow ( SFG_Window *window, int width, int height ) * the already-drawn part does not get drawn again and things look funny. * But without this we get this bad behaviour whenever we resize the * window. + * DN: Hmm.. the above sounds like a concern only in single buffered mode... */ window->State.Redisplay = GL_TRUE; @@ -105,9 +106,9 @@ void fghRedrawWindow ( SFG_Window *window ) freeglut_return_if_fail( window ); - if( window->State.NeedToFixMyNameInitContext ) { - INVOKE_WCB( *window, FixMyNameInitContext, ()); - window->State.NeedToFixMyNameInitContext = GL_FALSE; + if( window->State.NeedToInitContext ) { + INVOKE_WCB( *window, InitContext, ()); + window->State.NeedToInitContext = GL_FALSE; } freeglut_return_if_fail( FETCH_WCB ( *window, Display ) ); @@ -120,13 +121,17 @@ void fghRedrawWindow ( SFG_Window *window ) if( window->State.NeedToResize ) { + /* Set need to resize to false before calling fghReshapeWindow, otherwise + in the case the user's reshape callback calls glutReshapeWindow, + his request would get canceled after fghReshapeWindow gets called. + */ + window->State.NeedToResize = GL_FALSE; + fghReshapeWindow( window, window->State.Width, window->State.Height ); - - window->State.NeedToResize = GL_FALSE; } INVOKE_WCB( *window, Display, ( ) );