[Libreoffice-commits] core.git: Branch 'feature/fixes25' - vcl/inc vcl/opengl

Tomaž Vajngerl tomaz.vajngerl at collabora.co.uk
Fri Jun 24 12:57:49 UTC 2016


 vcl/inc/openglgdiimpl.hxx |    2 ++
 vcl/opengl/gdiimpl.cxx    |   10 ++++++++++
 2 files changed, 12 insertions(+)

New commits:
commit 00bdf698f1373499619ea9f4d2b5a9a383d0ef92
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.co.uk>
Date:   Fri Jun 24 16:42:45 2016 +0800

    tdf#100411 start the flush timer when batching (PostBatchDraw)
    
    When we batch a draw command we need to start the flush timer
    (if not already started) as otherwise it could happen that we
    won't flush the offscreen texture at the correct time or at all.
    This fixes a problem with drawing of pop-up "help" text.
    
    (cherry picked from commit e1296e295e7d4f1104d2c90b1f51d52251358bea)
    
    Change-Id: I6afcf173c3ac517ed0612cd413d95e28c19faa81

diff --git a/vcl/inc/openglgdiimpl.hxx b/vcl/inc/openglgdiimpl.hxx
index df7b9e9..2037268 100644
--- a/vcl/inc/openglgdiimpl.hxx
+++ b/vcl/inc/openglgdiimpl.hxx
@@ -169,6 +169,8 @@ public:
     // operations to do after painting
     void PostDraw();
 
+    void PostBatchDraw();
+
 protected:
     bool AcquireContext(bool bForceCreate = false);
     bool ReleaseContext();
diff --git a/vcl/opengl/gdiimpl.cxx b/vcl/opengl/gdiimpl.cxx
index 188db65..1422c6a 100644
--- a/vcl/opengl/gdiimpl.cxx
+++ b/vcl/opengl/gdiimpl.cxx
@@ -249,6 +249,15 @@ void OpenGLSalGraphicsImpl::PostDraw()
     OpenGLZone::leave();
 }
 
+void OpenGLSalGraphicsImpl::PostBatchDraw()
+{
+    if (IsOffscreen())
+        return;
+
+    if (!mpFlush->IsActive())
+        mpFlush->Start();
+}
+
 void OpenGLSalGraphicsImpl::ApplyProgramMatrices(float fPixelOffset)
 {
     mpProgram->ApplyMatrix(GetWidth(), GetHeight(), fPixelOffset);
@@ -1519,6 +1528,7 @@ void OpenGLSalGraphicsImpl::DrawMask( OpenGLTexture& rMask, SalColor nMaskColor,
 void OpenGLSalGraphicsImpl::DeferredTextDraw(OpenGLTexture& rTexture, SalColor aMaskColor, const SalTwoRect& rPosAry)
 {
     mpAccumulatedTextures->insert(rTexture, aMaskColor, rPosAry);
+    PostBatchDraw();
 }
 
 void OpenGLSalGraphicsImpl::FlushDeferredDrawing()


More information about the Libreoffice-commits mailing list