diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Fl_Gl_Window.cxx | 5 | ||||
| -rw-r--r-- | src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx | 5 |
2 files changed, 5 insertions, 5 deletions
diff --git a/src/Fl_Gl_Window.cxx b/src/Fl_Gl_Window.cxx index b01313165..6d7479842 100644 --- a/src/Fl_Gl_Window.cxx +++ b/src/Fl_Gl_Window.cxx @@ -238,7 +238,6 @@ void Fl_Gl_Window::flush() { } } - pGlWindowDriver->flush_context(); if (overlay==this && SWAP_TYPE != SWAP) { // fake overlay in front buffer glDrawBuffer(GL_FRONT); draw_overlay(); @@ -588,10 +587,8 @@ void Fl_Cocoa_Gl_Window_Driver::swap_buffers() { glMatrixMode(matrixmode); glRasterPos3f(pos[0], pos[1], pos[2]); // restore original glRasterPos } - /* // nothing to do here under Cocoa because [NSOpenGLContext -flushBuffer] done later replaces it else - aglSwapBuffers((AGLContext)context_); - */ + flush_context();//aglSwapBuffers((AGLContext)context_); } void Fl_Cocoa_Gl_Window_Driver::resize(int is_a_resize, int unused, int also) { diff --git a/src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx b/src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx index 09d02cbc3..781e3be6e 100644 --- a/src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx +++ b/src/drivers/OpenGL/Fl_OpenGL_Display_Device.cxx @@ -38,6 +38,7 @@ Fl_OpenGL_Display_Device::Fl_OpenGL_Display_Device(Fl_OpenGL_Graphics_Driver *gr } #ifdef FL_CFG_GFX_QUARTZ +#include <FL/Fl_Gl_Window_Driver.H> // convert BGRA to RGB and also exchange top and bottom static uchar *convert_BGRA_to_RGB(uchar *baseAddress, int w, int h, int mByteWidth) @@ -67,7 +68,8 @@ Fl_RGB_Image* Fl_OpenGL_Display_Device::capture_gl_rectangle(Fl_Gl_Window* glw, if (factor != 1) { w *= factor; h *= factor; x *= factor; y *= factor; } - glw->flush(); // forces a GL redraw, necessary for the glpuzzle demo + Fl_Cocoa_Gl_Window_Driver *driver = (Fl_Cocoa_Gl_Window_Driver*)glw->gl_driver(); + driver->flush_context(); // to capture also the overlay and for directGL demo // Read OpenGL context pixels directly. // For extra safety, save & restore OpenGL states that are changed glPushClientAttrib(GL_CLIENT_PIXEL_STORE_BIT); @@ -85,6 +87,7 @@ Fl_RGB_Image* Fl_OpenGL_Display_Device::capture_gl_rectangle(Fl_Gl_Window* glw, baseAddress = convert_BGRA_to_RGB(baseAddress, w, h, mByteWidth); Fl_RGB_Image *img = new Fl_RGB_Image(baseAddress, w, h, 3, 3 * w); img->alloc_array = 1; + driver->flush_context(); return img; } |
