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
This commit is contained in:
Tor Lillqvist
2014-04-01 17:02:33 +03:00
parent 65b3a78058
commit fecd4c53ff

View File

@@ -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,