"Fix" for some SmartArt rendering artefacts on iOS
Exactly why this change works (to the extent that it does) is unclear to me. Whether it could possibly be used across all platforms and not for iOS is also unclear. Change-Id: I6dcf5982d51e5715b657dbf263a88776bbf55f4d
This commit is contained in:
parent
b78caf9645
commit
c03986e084
@ -332,9 +332,26 @@ namespace drawinglayer
|
||||
}
|
||||
else if(0.0 != fTrans)
|
||||
{
|
||||
#ifndef IOS
|
||||
// For some reason using this "normal" code path on
|
||||
// iOS with tiled rendering causes horrible artefacts:
|
||||
// The mask ends up being drawn too, ending up looking
|
||||
// as translucent milky rectangles covering the
|
||||
// SmartArt (which is what this typically (?) ends up
|
||||
// being used for) ... Why this doesn't cause any
|
||||
// artefacts on OS X, which uses largely the very same
|
||||
// code in vcl/quartz, I don't know.
|
||||
sal_uInt8 nMaskValue((sal_uInt8)basegfx::fround(fTrans * 255.0));
|
||||
const AlphaMask aAlphaMask(aSizePixel, &nMaskValue);
|
||||
mrOutDev.DrawBitmapEx(maDestPixel.TopLeft(), BitmapEx(aContent, aAlphaMask));
|
||||
#else
|
||||
// Not sure at all why this works, but it does. The
|
||||
// result is not beautiful (jaggies), but better than
|
||||
// blocking out rectangles of the image.
|
||||
Bitmap aMask(aContent);
|
||||
aMask.Convert(BMP_CONVERSION_8BIT_GREYS);
|
||||
mrOutDev.DrawBitmapEx(maDestPixel.TopLeft(), BitmapEx(aContent, aMask));
|
||||
#endif
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user