Does not blink the OpenGl cursor on NT except when a gl overlay is being done, should make display faster when a cursor is set
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.0@1482 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
This commit is contained in:
parent
da83aa4eb4
commit
8060de2f30
@ -1,5 +1,5 @@
|
||||
//
|
||||
// "$Id: Fl_Gl_Window.cxx,v 1.12.2.21 2001/03/14 17:20:01 spitzak Exp $"
|
||||
// "$Id: Fl_Gl_Window.cxx,v 1.12.2.22 2001/07/18 08:11:02 spitzak Exp $"
|
||||
//
|
||||
// OpenGL window code for the Fast Light Tool Kit (FLTK).
|
||||
//
|
||||
@ -163,14 +163,16 @@ void Fl_Gl_Window::flush() {
|
||||
|
||||
#if HAVE_GL_OVERLAY && defined(WIN32)
|
||||
|
||||
// SGI 320 messes up overlay with user-defined cursors:
|
||||
bool fixcursor =
|
||||
Fl_X::i(this)->cursor && Fl_X::i(this)->cursor != fl_default_cursor;
|
||||
if (fixcursor) SetCursor(0);
|
||||
bool fixcursor = false; // for fixing the SGI 320 bug
|
||||
|
||||
// Draw into hardware overlay planes:
|
||||
// Draw into hardware overlay planes if they are damaged:
|
||||
if (overlay && overlay != this
|
||||
&& (damage()&(FL_DAMAGE_OVERLAY|FL_DAMAGE_EXPOSE) || !save_valid)) {
|
||||
// SGI 320 messes up overlay with user-defined cursors:
|
||||
if (Fl_X::i(this)->cursor && Fl_X::i(this)->cursor != fl_default_cursor) {
|
||||
fixcursor = true; // make it restore cursor later
|
||||
SetCursor(0);
|
||||
}
|
||||
fl_set_gl_context(this, (GLContext)overlay);
|
||||
if (fl_overlay_depth)
|
||||
wglRealizeLayerPalette(Fl_X::i(this)->private_dc, 1, TRUE);
|
||||
@ -181,7 +183,8 @@ void Fl_Gl_Window::flush() {
|
||||
fl_overlay = 0;
|
||||
valid(save_valid);
|
||||
wglSwapLayerBuffers(Fl_X::i(this)->private_dc, WGL_SWAP_OVERLAY1);
|
||||
if (damage() == FL_DAMAGE_OVERLAY) { // main layer is undamaged
|
||||
// if only the overlay was damaged we are done, leave main layer alone:
|
||||
if (damage() == FL_DAMAGE_OVERLAY) {
|
||||
if (fixcursor) SetCursor(Fl_X::i(this)->cursor);
|
||||
return;
|
||||
}
|
||||
@ -245,11 +248,9 @@ void Fl_Gl_Window::flush() {
|
||||
damage1_ = 0;
|
||||
|
||||
} else {
|
||||
|
||||
damage1_ = damage();
|
||||
clear_damage(~0); draw();
|
||||
swap_buffers();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@ -324,5 +325,5 @@ void Fl_Gl_Window::draw_overlay() {}
|
||||
#endif
|
||||
|
||||
//
|
||||
// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.21 2001/03/14 17:20:01 spitzak Exp $".
|
||||
// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.22 2001/07/18 08:11:02 spitzak Exp $".
|
||||
//
|
||||
|
Loading…
Reference in New Issue
Block a user