Bug 151104

Summary: Shadow and image fill does not work together in presentation mode
Product: LibreOffice Reporter: Regina Henschel <rb.henschel>
Component: ImpressAssignee: Armin Le Grand <Armin.Le.Grand>
Status: RESOLVED FIXED    
Severity: normal CC: Armin.Le.Grand, kelemeng, quikee, raal, rafael.palma.lima, telesto
Priority: medium Keywords: bibisected, bisected, regression
Version: 7.5.0.0 alpha0+   
Hardware: x86-64 (AMD64)   
OS: All   
See Also: https://bugs.documentfoundation.org/show_bug.cgi?id=151831
https://bugs.documentfoundation.org/show_bug.cgi?id=158298
Whiteboard: target:7.5.0
Crash report or crash signature: Regression By:
Bug Depends on:    
Bug Blocks: 103610    
Attachments: Examples for the problem

Description Regina Henschel 2022-09-21 11:40:50 UTC
Created attachment 182600 [details]
Examples for the problem

The attached presentation has some examples with image fill, which does not work in slide show, and examples with solid fill or gradient fill, which do work in slide show.

Open the attached presentation and compare edit mode to slide show mode.

I see the problem in Version: 7.5.0.0.alpha0+ (x64) / LibreOffice Community
Build ID: 349e3af0c5dd5ed495ed61aab526f63c16f0e215
CPU threads: 8; OS: Windows 10.0 Build 19043; UI render: Skia/Raster; VCL: win
Locale: de-DE (en_US); UI: en-US
Calc: CL threaded

The problem still exists if I disable Skia.
Comment 1 Rafael Lima 2022-09-21 17:55:18 UTC
Repro with:

Version: 7.5.0.0.alpha0+ / LibreOffice Community
Build ID: 35702fd6781542f5eefbd3710304ab9a25ac61fe
CPU threads: 16; OS: Linux 5.15; UI render: default; VCL: kf5 (cairo+xcb)
Locale: pt-BR (pt_BR.UTF-8); UI: en-US
Calc: CL threaded

I see the following issues:

Slide 1: The shadow is a copy of the colored text (should be white)
Slide 2: all ok
Slide 3: all ok
Slide 4: all ok
Slide 5: same problem as slide 1

I'm setting this to NEW.

However this seems to be a regression. It is NOT REPRO with:

Version: 7.4.1.2 / LibreOffice Community
Build ID: 40(Build:2)
CPU threads: 16; OS: Linux 5.15; UI render: default; VCL: kf5 (cairo+xcb)
Locale: pt-BR (pt_BR.UTF-8); UI: en-US
Ubuntu package version: 1:7.4.1~rc2-0ubuntu0.22.04.1~lo1
Calc: threaded
Comment 2 raal 2022-09-22 18:15:33 UTC
This seems to have begun at the below commit.
Adding Cc: to Armin Le Grand; Could you possibly take a look at this one?
Thanks
 24bd024cb85b7d5ab151e8dec8be23afdbaf51c2 is the first bad commit
commit 24bd024cb85b7d5ab151e8dec8be23afdbaf51c2
Author: Jenkins Build User <tdf@pollux.tdf>
Date:   Wed Sep 14 10:04:13 2022 +0200

    source e735ad1c57cddaf17d6ffc0cf15b5e14fa63c4ad

https://git.libreoffice.org/core/+/e735ad1c57cddaf17d6ffc0cf15b5e14fa63c4ad
Comment 3 Armin Le Grand 2022-09-24 13:16:11 UTC
Took a look. I have a suspicion already, the former used processPrimitive2DOnPixelProcessor was always used for PRIMITIVE2D_ID_SHADOWPRIMITIVE2D, so *always* a BitmapEx was created as shadow. 

With that change for ShadowPrimitive2D the vector graphics representation is used again (better than pixel). Again because that was used before those glow things (including ShadowPrimitive2D) were added. That had worked in the past, so there must be a reason it does no longer. Looking for that...
Comment 4 Armin Le Grand 2022-09-24 13:38:17 UTC
Ah, in VclMetafileProcessor2D::processPolyPolygonGraphicPrimitive2D taking care of maBColorModifierStack is missing. Was that removed...?
Comment 5 Armin Le Grand 2022-09-24 14:04:39 UTC
It was changed by 9e2a9f4151babc6cb22553798ee70f7f623924db. Handling BColorModifierStack is missing in VclMetafileProcessor2D::processPolyPolygonGraphicPrimitive2D when creating the SvtGraphicFill information for the metafile.
Comment 6 Armin Le Grand 2022-09-24 14:39:56 UTC
Possible solution at https://gerrit.libreoffice.org/c/core/+/140550
Comment 7 Commit Notification 2022-09-26 07:50:10 UTC
Armin Le Grand (allotropia) committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/a96c9d7c5bb1ca6eaf72da49e29489f0f0ab1545

tdf#151104 correct missing ColorModification

It will be available in 7.5.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.