more updates from John Fay

git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@518 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
brianp 2004-09-23 17:42:38 +00:00
parent 8e94eb798b
commit fc9f0b06c4

View File

@ -84,12 +84,10 @@ struct GXKeyList gxKeyList;
* callback is hooked, the viewport size is updated to * callback is hooked, the viewport size is updated to
* match the new window size. * match the new window size.
*/ */
static void fghReshapeWindowByHandle ( SFG_WindowHandleType handle, static void fghReshapeWindow ( SFG_Window *window, int width, int height )
int width, int height )
{ {
SFG_Window *current_window = fgStructure.Window; SFG_Window *current_window = fgStructure.Window;
SFG_Window* window = fgWindowByHandle( handle );
freeglut_return_if_fail( window != NULL ); freeglut_return_if_fail( window != NULL );
@ -184,9 +182,10 @@ static void fghReshapeWindowByHandle ( SFG_WindowHandleType handle,
* Calls a window's redraw method. This is used when * Calls a window's redraw method. This is used when
* a redraw is forced by the incoming window messages. * a redraw is forced by the incoming window messages.
*/ */
static void fghRedrawWindowByHandle ( SFG_WindowHandleType handle ) static void fghRedrawWindow ( SFG_Window *window )
{ {
SFG_Window* window = fgWindowByHandle( handle ); SFG_Window *current_window = fgStructure.Window;
freeglut_return_if_fail( window ); freeglut_return_if_fail( window );
freeglut_return_if_fail( FETCH_WCB ( *window, Display ) ); freeglut_return_if_fail( FETCH_WCB ( *window, Display ) );
@ -194,23 +193,22 @@ static void fghRedrawWindowByHandle ( SFG_WindowHandleType handle )
freeglut_return_if_fail( window->State.Visible ); freeglut_return_if_fail( window->State.Visible );
if( window->State.NeedToResize )
{
SFG_Window *current_window = fgStructure.Window;
fgSetWindow( window ); fgSetWindow( window );
fghReshapeWindowByHandle( if( window->State.NeedToResize )
window->Window.Handle, {
fghReshapeWindow(
window,
window->State.Width, window->State.Width,
window->State.Height window->State.Height
); );
window->State.NeedToResize = GL_FALSE; window->State.NeedToResize = GL_FALSE;
fgSetWindow( current_window );
} }
INVOKE_WCB( *window, Display, ( ) ); INVOKE_WCB( *window, Display, ( ) );
fgSetWindow( current_window );
} }
/* /*
@ -219,34 +217,13 @@ static void fghRedrawWindowByHandle ( SFG_WindowHandleType handle )
static void fghcbDisplayWindow( SFG_Window *window, static void fghcbDisplayWindow( SFG_Window *window,
SFG_Enumerator *enumerator ) SFG_Enumerator *enumerator )
{ {
if( window->State.NeedToResize )
{
SFG_Window *current_window = fgStructure.Window;
fgSetWindow( window );
fghReshapeWindowByHandle(
window->Window.Handle,
window->State.Width,
window->State.Height
);
window->State.NeedToResize = GL_FALSE;
fgSetWindow ( current_window );
}
if( window->State.Redisplay && if( window->State.Redisplay &&
window->State.Visible ) window->State.Visible )
{ {
window->State.Redisplay = GL_FALSE; window->State.Redisplay = GL_FALSE;
#if TARGET_HOST_UNIX_X11 #if TARGET_HOST_UNIX_X11
{ fghRedrawWindow ( window ) ;
SFG_Window *current_window = fgStructure.Window;
INVOKE_WCB( *window, Display, ( ) );
fgSetWindow( current_window );
}
#elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE #elif TARGET_HOST_WIN32 || TARGET_HOST_WINCE
RedrawWindow( RedrawWindow(
window->Window.Handle, NULL, NULL, window->Window.Handle, NULL, NULL,
@ -1382,7 +1359,7 @@ LRESULT CALLBACK fgWindowProc( HWND hWnd, UINT uMsg, WPARAM wParam,
/* Turn on the visibility in case it was turned off somehow */ /* Turn on the visibility in case it was turned off somehow */
window->State.Visible = GL_TRUE; window->State.Visible = GL_TRUE;
BeginPaint( hWnd, &ps ); BeginPaint( hWnd, &ps );
fghRedrawWindowByHandle( hWnd ); fghRedrawWindow( window );
EndPaint( hWnd, &ps ); EndPaint( hWnd, &ps );
break; break;