[Rd] Question about grid.group compositing operators in cairo

Panagiotis Skintzos @|gm@p| @end|ng |rom po@teo@net
Sun Sep 25 23:27:38 CEST 2022


Hello,

I'm trying to update ggiraph package in graphic engine v15 (currently we 
support up to v14).

I've implemented the group operators and when I compare the outputs of 
ggiraph::dsvg with the outputs of svg/png, I noticed some weird results.

Specifically, some operators in cairo (in, out, dest.in, dest.atop) give 
strange output, when any source element in the group has a stroke color 
defined.

I attach three example images, where two stroked rectangles are used as 
source (right) and destination (left).

cairo.over.png shows the result of the over operator in cairo

cairo.in.png shows the result of the in operator in cairo

dsvg.in.png shows the result of the in operator in dsvg


You can see the difference between cairo.in.png and dsvg.in.png. I found 
out why I get different results:

In dsvg implementation there is one drawing operation: Draw the source 
element, as whole (fill and stroke) over the destination element (using 
feComposite filter)

In cairo implementation though there are two operations: Apply the fill 
on source and draw over the destination and then apply the stroke and 
draw over the result of the previous operation.

I'm not sure if this is intentional or not. Shouldn't the source element 
being drawn first as whole (fill and stroke with over operator) and then 
apply the group operator and draw it over the destination? It would seem 
more logical that way.


Thanks,

Panagiotis


-------------- next part --------------
A non-text attachment was scrubbed...
Name: cairo.over.png
Type: image/png
Size: 4485 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20220925/6fb655c2/attachment.png>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: cairo.in.png
Type: image/png
Size: 8773 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20220925/6fb655c2/attachment-0001.png>

-------------- next part --------------
A non-text attachment was scrubbed...
Name: dsvg.in.png
Type: image/png
Size: 9638 bytes
Desc: not available
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20220925/6fb655c2/attachment-0002.png>


More information about the R-devel mailing list