X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fx11%2Ffg_window_x11.c;h=2736a5925a6ffb5932b37f9554fcb5a072e9797a;hb=207c3128bf025b5e025bace5c0425d380dd72aa9;hp=90f1966c7bc6f80f632a3bd8f7208e076fa52ab9;hpb=ea46c9f7ece4897adb3e0f529b082cea51442cd8;p=freeglut diff --git a/src/x11/fg_window_x11.c b/src/x11/fg_window_x11.c index 90f1966..2736a59 100644 --- a/src/x11/fg_window_x11.c +++ b/src/x11/fg_window_x11.c @@ -182,6 +182,8 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title, fgState.DisplayMode |= GLUT_DOUBLE ; fghChooseConfig(&WINDOW_CONFIG); fgState.DisplayMode &= ~GLUT_DOUBLE; + + if( WINDOW_CONFIG ) goto done_retry; } #endif @@ -190,8 +192,20 @@ void fgPlatformOpenWindow( SFG_Window* window, const char* title, fgState.DisplayMode &= ~GLUT_MULTISAMPLE ; fghChooseConfig(&WINDOW_CONFIG); fgState.DisplayMode |= GLUT_MULTISAMPLE; + + if( WINDOW_CONFIG ) goto done_retry; + } + + if( fgState.DisplayMode & GLUT_SRGB ) + { + fgState.DisplayMode &= ~GLUT_SRGB ; + fghChooseConfig(&WINDOW_CONFIG); + fgState.DisplayMode |= GLUT_SRGB; + + if( WINDOW_CONFIG ) goto done_retry; } } +done_retry: FREEGLUT_INTERNAL_ERROR_EXIT( WINDOW_CONFIG != NULL, "FBConfig with necessary capabilities not found", "fgOpenWindow" );