Bug 139170

Summary: Make OutputDevice::EmulateDrawTransparent(() redundant
Product: LibreOffice Reporter: Chris Sherlock <chris.sherlock79>
Component: graphics stackAssignee: Not Assigned <libreoffice-bugs>
Status: UNCONFIRMED ---    
Severity: normal CC: aron.budea
Priority: medium    
Version: 6.0.0.3 release   
Hardware: All   
OS: other   
Whiteboard:
Crash report or crash signature: Regression By:

Description Chris Sherlock 2020-12-22 20:26:21 UTC
Description:
We currently have a function OutputDevice::EmulateDrawTransparent(). This is used because OutputDevice::DrawTransparentNatively() can fail, because a number of our VCL backends don't guarantee the drawing of PolyPolygons and PolyPolylines. 


We need the following backends to guarantee the drawing of PolyPolygons:

* X11SalGraphicsImpl::drawFilledTrapezoids()
* GenPspGraphics::drawPolyPolygon()

The following backends need to guarantee the drawing of PolyLines:

* X11SalGraphicsImpl::drawPolyLine()
* GenPspGraphics::drawPolyLine()
* AquaSalGraphics::drawPolyLine() - note this can only fail if using IOS


Steps to Reproduce:
n/a

Actual Results:
n/a

Expected Results:
n/a


Reproducible: Always


User Profile Reset: No



Additional Info:
We can basically remove OutputDevice::EmulateDrawTransparent() and then collapse OutputDevice::DrawTransparentNatively() into OutputDevice::DrawTransparent(). 

This will remove a lot of code that currently needs to be maintained. It will hopefully speed up things also.
Comment 1 Telesto 2020-12-23 09:05:21 UTC
FWIW: Some vague recollection X11 will be unsupported/dropped (don't take my word for it though)

Related to IOS.. - political talk - hope all those bit of pieces related macOS/IOS  rendering add up to make Skia a logical solution :-)