X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Ffreeglut_window.c;h=67b94c3e6235515f52aa9c894f5f334ee7c8f750;hb=3b06156b86b860856303b3673e7aa09cc7624d4a;hp=f99b673763577b185fe0e489eefdd659a0b7d598;hpb=fc5b93fd6592f84aa605e18cb6456a1af770e483;p=freeglut diff --git a/src/freeglut_window.c b/src/freeglut_window.c index f99b673..67b94c3 100644 --- a/src/freeglut_window.c +++ b/src/freeglut_window.c @@ -268,7 +268,7 @@ void fgOpenWindow( SFG_Window* window, const char* title, * XXX simplify this. */ if( !window->IsMenu ) - window->Window.VisualInfo = fgChooseVisual( ); + window->Window.VisualInfo = fgChooseVisual( ); else if( fgStructure.MenuContext ) window->Window.VisualInfo = fgChooseVisual( ); else @@ -310,7 +310,7 @@ void fgOpenWindow( SFG_Window* window, const char* title, window->State.IsOffscreen = GL_FALSE; if( fgState.DisplayMode & GLUT_OFFSCREEN ) { - window->State.IsOffscreen = GL_TRUE; + window->State.IsOffscreen = GL_TRUE; window->Window.Pixmap = XCreatePixmap( fgDisplay.Display, fgDisplay.RootWindow, w, h, @@ -645,14 +645,20 @@ int FGAPIENTRY glutCreateWindow( const char* title ) */ int FGAPIENTRY glutCreateSubWindow( int parentID, int x, int y, int w, int h ) { - SFG_Window* window = NULL; - SFG_Window* parent = NULL; - - freeglut_assert_ready; - parent = fgWindowByID( parentID ); - freeglut_return_val_if_fail( parent != NULL, 0 ); - window = fgCreateWindow( parent, "", x, y, w, h, GL_FALSE, GL_FALSE ); - return window->ID; + int ret = 0; + + if( GL_FALSE == fgStructure.Window->State.IsOffscreen ) + { + SFG_Window* window = NULL; + SFG_Window* parent = NULL; + + freeglut_assert_ready; + parent = fgWindowByID( parentID ); + freeglut_return_val_if_fail( parent != NULL, 0 ); + window = fgCreateWindow( parent, "", x, y, w, h, GL_FALSE, GL_FALSE ); + ret = window->ID; + } + return ret; } /*