Show color output for feColorMatrix with in=SourceAlpha
Allows filter primitive to store color and alpha, even if input only stores alpha (since color matrix may add color)
Fix #1147 (closed)
The issue turns out to be quite simple, when in=Source alpha, the cairo_surface_t is of type CAIRO_CONTENT_ALPHA
, i.e. it doesn't store the color value. The out cairo_surface_t is of the same type, so while we calculate the correct color, we only store the alpha value.
Other filter primitives explicitly set out to CAIRO_CONTENT_COLOR_ALPHA
already (see for example https://gitlab.com/inkscape/inkscape/-/blob/608fe7bbae98356ef1878e00f7360e637b677b73/src/display/nr-filter-component-transfer.cpp#L152). I didn't check them all, just the first few filter primitives.
I found that I had to remove the claim that there is no path for bppin == 1, bppout == 4 because it is useless
(found in ink_cairo_surface_filter
) in order to get this to work