[Libreoffice-commits] core.git: Branch 'libreoffice-5-0-2' - vcl/opengl

Michael Meeks michael.meeks at collabora.com
Wed Sep 16 09:27:27 PDT 2015


 vcl/opengl/gdiimpl.cxx |    9 +++++++++
 1 file changed, 9 insertions(+)

New commits:
commit 9617d1c6a299901b79618d657e31635e59eda007
Author: Michael Meeks <michael.meeks at collabora.com>
Date:   Wed Sep 16 03:25:05 2015 +0100

    tdf#94252 - avoid switching contexts un-necessarily to reduce flicker.
    
    Change-Id: Id4ac387174fa03c5886a990d89fd53a4f18db11c
    Reviewed-on: https://gerrit.libreoffice.org/18610
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Tor Lillqvist <tml at collabora.com>
    Reviewed-on: https://gerrit.libreoffice.org/18629
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Tested-by: Miklos Vajna <vmiklos at collabora.co.uk>
    Reviewed-by: Jan Holesovsky <kendy at collabora.com>

diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx
index 37b21f3..9ea8a7c 100644
--- a/vcl/opengl/gdiimpl.cxx
+++ b/vcl/opengl/gdiimpl.cxx
@@ -77,8 +77,17 @@ bool OpenGLSalGraphicsImpl::AcquireContext( )
 {
     ImplSVData* pSVData = ImplGetSVData();
 
+    // We always prefer to bind our VirtualDevice / offscreen graphics
+    // to the current OpenGLContext - to avoid switching contexts.
+    if (mpContext.is() && mbOffscreen)
+    {
+        if (OpenGLContext::hasCurrent() && !mpContext->isCurrent())
+            mpContext.clear();
+    }
+
     if( mpContext.is() )
     {
+        // Check whether the context was reset underneath us.
         if( mpContext->isInitialized() )
             return true;
         mpContext.clear();


More information about the Libreoffice-commits mailing list