Use buffer with alpha in VclProcessor2D::RenderUnifiedTransparencePrimitive2D
This allows UnifiedTransparencePrimitive2D to produce truly transparent image,
usable later in the stack - specifically by glow and soft edge effect.
Change-Id: I27e9bfbfb9c60856bc3fad1a483623c90d5cabff
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94969
Tested-by: Jenkins
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx
index 60b372b..e64995c 100644
--- a/drawinglayer/source/processor2d/vclprocessor2d.cxx
+++ b/drawinglayer/source/processor2d/vclprocessor2d.cxx
@@ -841,13 +841,14 @@ void VclProcessor2D::RenderUnifiedTransparencePrimitive2D(
// transparence is in visible range
basegfx::B2DRange aRange(rTransCandidate.getChildren().getB2DRange(getViewInformation2D()));
aRange.transform(maCurrentTransformation);
impBufferDevice aBufferDevice(*mpOutputDevice, aRange);
impBufferDevice aBufferDevice(*mpOutputDevice, aRange, true);
if (aBufferDevice.isVisible())
{
// remember last OutDev and set to content
OutputDevice* pLastOutputDevice = mpOutputDevice;
mpOutputDevice = &aBufferDevice.getContent();
mpOutputDevice->Erase();
// paint content to it
process(rTransCandidate.getChildren());