Preliminary OpenGL single-buffering fix.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@2676 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
1d42e4784b
commit
7db8fe569d
4
CHANGES
4
CHANGES
@ -1,5 +1,9 @@
|
||||
CHANGES IN FLTK 1.1.1
|
||||
|
||||
- Some OpenGL implementations don't support single-
|
||||
buffered visuals. The Fl_Gl_Window class now emulates
|
||||
single-buffered windows using double-buffered
|
||||
windows.
|
||||
- Added a workaround for a compiler bug in Borland C++
|
||||
that prevented Fl_Help_View.cxx from compiling.
|
||||
- Checkmarks didn't scale properly; copied the 2.0 check
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Enumerations.H,v 1.18.2.14.2.26 2002/10/07 13:47:54 easysw Exp $"
|
||||
// "$Id: Enumerations.H,v 1.18.2.14.2.27 2002/10/15 20:45:58 easysw Exp $"
|
||||
//
|
||||
// Enumerations for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -381,7 +381,8 @@ enum Fl_Mode { // visual types and Fl_Gl_Window::mode() (values match Glut)
|
||||
FL_STENCIL = 32,
|
||||
FL_RGB8 = 64,
|
||||
FL_MULTISAMPLE= 128,
|
||||
FL_STEREO = 256
|
||||
FL_STEREO = 256,
|
||||
FL_FAKE_SINGLE = 512 // Fake single buffered windows using double-buffer
|
||||
};
|
||||
|
||||
// damage masks
|
||||
@ -405,5 +406,5 @@ enum Fl_Damage {
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: Enumerations.H,v 1.18.2.14.2.26 2002/10/07 13:47:54 easysw Exp $".
|
||||
// End of "$Id: Enumerations.H,v 1.18.2.14.2.27 2002/10/15 20:45:58 easysw Exp $".
|
||||
//
|
||||
|
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.12 2002/08/09 03:17:30 easysw Exp $"
|
||||
// "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.13 2002/10/15 20:45:58 easysw Exp $"
|
||||
//
|
||||
// OpenGL window code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -65,7 +65,16 @@ void Fl_Gl_Window::show() {
|
||||
if (!shown()) {
|
||||
if (!g) {
|
||||
g = Fl_Gl_Choice::find(mode_,alist);
|
||||
if (!g) {Fl::error("Insufficient GL support"); return;}
|
||||
|
||||
if (!g && (mode_ & FL_DOUBLE) == FL_SINGLE) {
|
||||
g = Fl_Gl_Choice::find(mode_ | FL_DOUBLE,alist);
|
||||
if (g) mode_ |= FL_FAKE_SINGLE;
|
||||
}
|
||||
|
||||
if (!g) {
|
||||
Fl::error("Insufficient GL support");
|
||||
return;
|
||||
}
|
||||
}
|
||||
#if !defined(WIN32) && !defined(__APPLE__)
|
||||
Fl_X::make_xid(this, g->vis, g->colormap);
|
||||
@ -128,6 +137,10 @@ void Fl_Gl_Window::make_current() {
|
||||
RealizePalette(fl_gc);
|
||||
}
|
||||
#endif // USE_COLORMAP
|
||||
if (mode_ & FL_FAKE_SINGLE) {
|
||||
glDrawBuffer(GL_FRONT);
|
||||
glReadBuffer(GL_FRONT);
|
||||
}
|
||||
current_ = this;
|
||||
}
|
||||
|
||||
@ -367,5 +380,5 @@ void Fl_Gl_Window::draw_overlay() {}
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.12 2002/08/09 03:17:30 easysw Exp $".
|
||||
// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.22.2.13 2002/10/15 20:45:58 easysw Exp $".
|
||||
//
|
||||
|
Loading…
x
Reference in New Issue
Block a user