[Libreoffice-commits] core.git: drawinglayer/source

Tor Lillqvist tml at collabora.com
Tue Apr 1 07:08:48 PDT 2014


 drawinglayer/source/processor2d/vclhelperbufferdevice.cxx |    8 ++++++++
 1 file changed, 8 insertions(+)

New commits:
commit fecd4c53ffdb74881e88b8fc1707a58249e1a0a9
Author: Tor Lillqvist <tml at collabora.com>
Date:   Tue Apr 1 17:02:33 2014 +0300

    Clear the VirtualDevice we create for an impBufferDevice on iOS
    
    Helps rendering of complex SmartArt with shapes a lot, especially such
    that include shadows. Exact mechanism unknown. Possibly on other
    platforms virtual devices get implicitly "cleared" when created? Sigh,
    fun.
    
    SmartArt is still not rendered fully like on desktop (OS X), though.
    
    Change-Id: I1bf92e85b5659ab7f9f4d843b77619de3af36d10

diff --git a/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx b/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx
index 59d5885..2245520 100644
--- a/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx
+++ b/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx
@@ -233,7 +233,15 @@ namespace drawinglayer
 
         if(isVisible())
         {
+#ifdef IOS
+            // Exact mechanism unknown, but for some reason SmartArt
+            // rendering, especially shadows, is broken on iOS unless
+            // we pass 'true' here. Are virtual devices always de
+            // facto cleared when created on other platforms?
+            mpContent = getVDevBuffer().alloc(mrOutDev, maDestPixel.GetSize(), true, 0);
+#else
             mpContent = getVDevBuffer().alloc(mrOutDev, maDestPixel.GetSize(), false, 0);
+#endif
 
             // #i93485# assert when copying from window to VDev is used
             OSL_ENSURE(mrOutDev.GetOutDevType() != OUTDEV_WINDOW,


More information about the Libreoffice-commits mailing list