projects
/
freeglut
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
- fallback to non-sRGB visuals if the context creation failed (GLX-only)
[freeglut]
/
src
/
x11
/
fg_window_x11.c
diff --git
a/src/x11/fg_window_x11.c
b/src/x11/fg_window_x11.c
index
90f1966
..
2736a59
100644
(file)
--- 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;
fgState.DisplayMode |= GLUT_DOUBLE ;
fghChooseConfig(&WINDOW_CONFIG);
fgState.DisplayMode &= ~GLUT_DOUBLE;
+
+ if( WINDOW_CONFIG ) goto done_retry;
}
#endif
}
#endif
@@
-190,8
+192,20
@@
void fgPlatformOpenWindow( SFG_Window* window, const char* title,
fgState.DisplayMode &= ~GLUT_MULTISAMPLE ;
fghChooseConfig(&WINDOW_CONFIG);
fgState.DisplayMode |= GLUT_MULTISAMPLE;
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" );
FREEGLUT_INTERNAL_ERROR_EXIT( WINDOW_CONFIG != NULL,
"FBConfig with necessary capabilities not found", "fgOpenWindow" );