include/vcl/opengl/OpenGLHelper.hxx | 3 +++ vcl/osx/salframe.cxx | 5 +++++ vcl/source/opengl/OpenGLHelper.cxx | 9 +++++++++ vcl/unx/generic/window/salframe.cxx | 3 +++ vcl/unx/gtk/window/gtksalframe.cxx | 3 +++ vcl/win/source/window/salframe.cxx | 3 +++ 6 files changed, 26 insertions(+)
New commits: commit e16e64dd862c8f386f80de43ad68e831e169d49d Author: Michael Meeks <michael.me...@collabora.com> Date: Wed Aug 26 17:17:19 2015 +0100 tdf#93530 - the VCL GDI flushing abstraction should glFlush too. Change-Id: I45cb0e62278d8c3154ae8ad54ca4c93b3e177969 Reviewed-on: https://gerrit.libreoffice.org/18030 Reviewed-by: Michael Meeks <michael.me...@collabora.com> Tested-by: Michael Meeks <michael.me...@collabora.com> diff --git a/include/vcl/opengl/OpenGLHelper.hxx b/include/vcl/opengl/OpenGLHelper.hxx index 95c23c8..d14df0d 100644 --- a/include/vcl/opengl/OpenGLHelper.hxx +++ b/include/vcl/opengl/OpenGLHelper.hxx @@ -67,6 +67,9 @@ public: */ static bool isVCLOpenGLEnabled(); + /// flush the OpenGL command queue - if OpenGL is enabled. + static void flush(); + #if defined UNX && !defined MACOSX && !defined IOS && !defined ANDROID && !defined(LIBO_HEADLESS) static bool GetVisualInfo(Display* pDisplay, int nScreen, XVisualInfo& rVI); static GLXFBConfig GetPixmapFBConfig( Display* pDisplay, bool& bInverted ); diff --git a/vcl/osx/salframe.cxx b/vcl/osx/salframe.cxx index 3882c40..8f5fbfd 100644 --- a/vcl/osx/salframe.cxx +++ b/vcl/osx/salframe.cxx @@ -28,6 +28,7 @@ #include "vcl/window.hxx" #include "vcl/syswin.hxx" #include <vcl/settings.hxx> +#include <vcl/opengl/OpenGLHelper.hxx> #include "osx/saldata.hxx" #include "quartz/salgdi.h" @@ -38,6 +39,7 @@ #include "osx/a11yfactory.h" #include "quartz/utils.h" + #include "salwtype.hxx" #include "premac.h" @@ -881,6 +883,7 @@ void AquaSalFrame::Flush() { [mpNSView display]; } + OpenGLHelper::flush(); } void AquaSalFrame::Flush( const Rectangle& rRect ) @@ -902,6 +905,7 @@ void AquaSalFrame::Flush( const Rectangle& rRect ) { [mpNSView display]; } + OpenGLHelper::flush(); } void AquaSalFrame::Sync() @@ -914,6 +918,7 @@ void AquaSalFrame::Sync() [mpNSView setNeedsDisplay: YES]; [mpNSView display]; } + OpenGLHelper::flush(); } void AquaSalFrame::SetInputContext( SalInputContext* pContext ) diff --git a/vcl/source/opengl/OpenGLHelper.cxx b/vcl/source/opengl/OpenGLHelper.cxx index 2e68bdc..717a7ba 100644 --- a/vcl/source/opengl/OpenGLHelper.cxx +++ b/vcl/source/opengl/OpenGLHelper.cxx @@ -705,4 +705,13 @@ GLXFBConfig OpenGLHelper::GetPixmapFBConfig( Display* pDisplay, bool& bInverted #endif +void OpenGLHelper::flush() +{ + if (!isVCLOpenGLEnabled()) + return; + + glFlush(); + CHECK_GL_ERROR(); +} + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/unx/generic/window/salframe.cxx b/vcl/unx/generic/window/salframe.cxx index 8dacdd8..43189003 100644 --- a/vcl/unx/generic/window/salframe.cxx +++ b/vcl/unx/generic/window/salframe.cxx @@ -35,6 +35,7 @@ #include "vcl/settings.hxx" #include "vcl/bmpacc.hxx" #include "vcl/opengl/OpenGLContext.hxx" +#include "vcl/opengl/OpenGLHelper.hxx" #include <prex.h> #include <X11/Xatom.h> @@ -2454,11 +2455,13 @@ void X11SalFrame::SetTitle( const OUString& rTitle ) void X11SalFrame::Flush() { XFlush( GetDisplay()->GetDisplay() ); + OpenGLHelper::flush(); } void X11SalFrame::Sync() { XSync( GetDisplay()->GetDisplay(), False ); + OpenGLHelper::flush(); } // Keyboard diff --git a/vcl/unx/gtk/window/gtksalframe.cxx b/vcl/unx/gtk/window/gtksalframe.cxx index 6bc25f3..b911378 100644 --- a/vcl/unx/gtk/window/gtksalframe.cxx +++ b/vcl/unx/gtk/window/gtksalframe.cxx @@ -37,6 +37,7 @@ #include <vcl/svapp.hxx> #include <vcl/window.hxx> #include <vcl/settings.hxx> +#include <vcl/opengl/OpenGLHelper.hxx> #if !GTK_CHECK_VERSION(3,0,0) # include <unx/x11/xlimits.hxx> @@ -2934,11 +2935,13 @@ void GtkSalFrame::Flush() #else XFlush (GDK_DISPLAY_XDISPLAY (getGdkDisplay())); #endif + OpenGLHelper::flush(); } void GtkSalFrame::Sync() { gdk_display_sync( getGdkDisplay() ); + OpenGLHelper::flush(); } #ifndef GDK_Open diff --git a/vcl/win/source/window/salframe.cxx b/vcl/win/source/window/salframe.cxx index 4268173..8dc8076 100644 --- a/vcl/win/source/window/salframe.cxx +++ b/vcl/win/source/window/salframe.cxx @@ -46,6 +46,7 @@ #include <vcl/window.hxx> #include <vcl/wrkwin.hxx> #include <vcl/svapp.hxx> +#include <vcl/opengl/OpenGLHelper.hxx> // Warning in SDK header #ifdef _MSC_VER @@ -2201,11 +2202,13 @@ void WinSalFrame::SetPointerPos( long nX, long nY ) void WinSalFrame::Flush() { GdiFlush(); + OpenGLHelper::flush(); } void WinSalFrame::Sync() { GdiFlush(); + OpenGLHelper::flush(); } static void ImplSalFrameSetInputContext( HWND hWnd, const SalInputContext* pContext ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits