From 8c84448febf817875ad0d377de0f0b34987992cb Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Thu, 28 May 2020 20:13:50 +0200 Subject: 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 --- drawinglayer/source/processor2d/vclprocessor2d.cxx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'drawinglayer') diff --git a/drawinglayer/source/processor2d/vclprocessor2d.cxx b/drawinglayer/source/processor2d/vclprocessor2d.cxx index 60b372b0ef48..e64995c8b50a 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()); -- cgit v1.2.3