diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Gl_Overlay.cxx | 17 | ||||
| -rw-r--r-- | src/Fl_Gl_Window.cxx | 20 | ||||
| -rw-r--r-- | src/Fl_Slider.cxx | 6 |
3 files changed, 24 insertions, 19 deletions
diff --git a/src/Fl_Gl_Overlay.cxx b/src/Fl_Gl_Overlay.cxx index 7e9c16880..a1d6ccf58 100644 --- a/src/Fl_Gl_Overlay.cxx +++ b/src/Fl_Gl_Overlay.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Gl_Overlay.cxx,v 1.5.2.9 2000/06/05 21:20:51 mike Exp $" +// "$Id: Fl_Gl_Overlay.cxx,v 1.5.2.10 2000/06/10 18:24:30 bill Exp $" // // OpenGL overlay code for the Fast Light Tool Kit (FLTK). // @@ -136,18 +136,19 @@ void Fl_Gl_Window::make_overlay() { fl_overlay_depth = pfd.cColorBits; // used by gl_color() if (fl_overlay_depth > 8) fl_overlay_depth = 8; COLORREF palette[256]; + int n = (1<<fl_overlay_depth)-1; // copy all colors except #0 into the overlay palette: - for (int i = 0; i < 256; i++) { + for (int i = 0; i <= n; i++) { uchar r,g,b; Fl::get_color((Fl_Color)i,r,g,b); palette[i] = RGB(r,g,b); } // always provide black & white in the last 2 pixels: if (fl_overlay_depth < 8) { - palette[(1<<fl_overlay_depth)-2] = RGB(0,0,0); - palette[(1<<fl_overlay_depth)-1] = RGB(255,255,255); + palette[n-1] = RGB(0,0,0); + palette[n] = RGB(255,255,255); } // and use it: - wglSetLayerPaletteEntries(hdc, 1, 1, 255, palette+1); + wglSetLayerPaletteEntries(hdc, 1, 1, n, palette+1); wglRealizeLayerPalette(hdc, 1, TRUE); } valid(0); @@ -184,8 +185,8 @@ void Fl_Gl_Window::make_overlay_current() { if (overlay != this) { #ifdef _WIN32 fl_set_gl_context(this, (GLXContext)overlay); - if (fl_overlay_depth) - wglRealizeLayerPalette(Fl_X::i(this)->private_dc, 1, TRUE); +// if (fl_overlay_depth) +// wglRealizeLayerPalette(Fl_X::i(this)->private_dc, 1, TRUE); #else ((Fl_Gl_Window*)overlay)->make_current(); #endif @@ -207,5 +208,5 @@ void Fl_Gl_Window::hide_overlay() { #endif // -// End of "$Id: Fl_Gl_Overlay.cxx,v 1.5.2.9 2000/06/05 21:20:51 mike Exp $". +// End of "$Id: Fl_Gl_Overlay.cxx,v 1.5.2.10 2000/06/10 18:24:30 bill Exp $". // diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx index 0002038a7..86b9c36a7 100644 --- a/src/Fl_Gl_Window.cxx +++ b/src/Fl_Gl_Window.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Gl_Window.cxx,v 1.12.2.13 2000/06/05 21:20:51 mike Exp $" +// "$Id: Fl_Gl_Window.cxx,v 1.12.2.14 2000/06/10 18:24:30 bill Exp $" // // OpenGL window code for the Fast Light Tool Kit (FLTK). // @@ -146,7 +146,12 @@ void Fl_Gl_Window::ortho() { void Fl_Gl_Window::swap_buffers() { #ifdef _WIN32 +#if HAVE_GL_OVERLAY + // Do not swap the overlay, to match GLX: + wglSwapLayerBuffers(Fl_X::i(this)->private_dc, WGL_SWAP_MAIN_PLANE); +#else SwapBuffers(Fl_X::i(this)->private_dc); +#endif #else glXSwapBuffers(fl_display, fl_xid(this)); #endif @@ -167,10 +172,9 @@ void Fl_Gl_Window::flush() { #endif #if HAVE_GL_OVERLAY && defined(_WIN32) - if (overlay && overlay != this && - ((damage()&(FL_DAMAGE_OVERLAY|FL_DAMAGE_EXPOSE)) - || !save_valid)) { - // Draw into hardware overlay planes + // Draw into hardware overlay planes: + if (overlay && overlay != this + && (damage()&(FL_DAMAGE_OVERLAY|FL_DAMAGE_EXPOSE) || !save_valid)) { fl_set_gl_context(this, (GLXContext)overlay); if (fl_overlay_depth) wglRealizeLayerPalette(Fl_X::i(this)->private_dc, 1, TRUE); @@ -180,8 +184,8 @@ void Fl_Gl_Window::flush() { draw_overlay(); fl_overlay = 0; valid(save_valid); - if (damage() == FL_DAMAGE_OVERLAY) { - wglSwapLayerBuffers(Fl_X::i(this)->private_dc,WGL_SWAP_OVERLAY1); + wglSwapLayerBuffers(Fl_X::i(this)->private_dc, WGL_SWAP_OVERLAY1); + if (damage() == FL_DAMAGE_OVERLAY) { // main layer is undamaged if (fixcursor) SetCursor(Fl_X::i(this)->cursor); return; } @@ -323,5 +327,5 @@ void Fl_Gl_Window::draw_overlay() {} #endif // -// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.13 2000/06/05 21:20:51 mike Exp $". +// End of "$Id: Fl_Gl_Window.cxx,v 1.12.2.14 2000/06/10 18:24:30 bill Exp $". // diff --git a/src/Fl_Slider.cxx b/src/Fl_Slider.cxx index c4318c903..8489960aa 100644 --- a/src/Fl_Slider.cxx +++ b/src/Fl_Slider.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_Slider.cxx,v 1.8.2.7 2000/06/05 21:20:57 mike Exp $" +// "$Id: Fl_Slider.cxx,v 1.8.2.8 2000/06/10 18:24:31 bill Exp $" // // Slider widget for the Fast Light Tool Kit (FLTK). // @@ -182,7 +182,7 @@ int Fl_Slider::handle(int event, int x, int y, int w, int h) { int W = (horizontal() ? w : h); //int H = (horizontal() ? h : w); int mx = (horizontal() ? Fl::event_x()-x : Fl::event_y()-y); - int S = int(slider_size_*W+.5); + int S = int(slider_size_*W+.5); if (S >= W) return 0; int X; static int offcenter; @@ -251,5 +251,5 @@ int Fl_Slider::handle(int event) { } // -// End of "$Id: Fl_Slider.cxx,v 1.8.2.7 2000/06/05 21:20:57 mike Exp $". +// End of "$Id: Fl_Slider.cxx,v 1.8.2.8 2000/06/10 18:24:31 bill Exp $". // |
