summaryrefslogtreecommitdiff
path: root/drawinglayer
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2014-04-01 17:02:33 +0300
committerTor Lillqvist <tml@collabora.com>2014-04-01 17:07:17 +0300
commitfecd4c53ffdb74881e88b8fc1707a58249e1a0a9 (patch)
tree2ae16966b56886a55d7aeb3ad3dea588c03cc1c6 /drawinglayer
parent65b3a78058e9d8a0e7c62ac9591c3b9e5c25eed7 (diff)
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
Diffstat (limited to 'drawinglayer')
-rw-r--r--drawinglayer/source/processor2d/vclhelperbufferdevice.cxx8
1 files changed, 8 insertions, 0 deletions
diff --git a/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx b/drawinglayer/source/processor2d/vclhelperbufferdevice.cxx
index 59d5885ce5a2..224552012250 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,