Egon Elbre convinced me commit 01d5e72291 was incorrect, because
in the NRGBA colorspace the alpha value is linear, not gamma adjusted.
Updates gio#192
Signed-off-by: Elias Naur <mail@eliasnaur.com>
Tweak a test color to avoid an off-by-1 rounding error after changing
the conversion formula.
Fixes gio#192
Signed-off-by: Elias Naur <mail@eliasnaur.com>
color.RGBA has two problems with regards to using it.
First the color values need to be premultiplied, whereas most APIs
have non-premultiplied values. This is mainly to preserve color components
with low alpha values.
Second there are two ways to premultiply with sRGB. One is to premultiply
after sRGB conversion, the other is before. This makes using the API more
confusing.
Using color.NRGBA in sRGB makes it align with CSS.e
Signed-off-by: Egon Elbre <egonelbre@gmail.com>
Package material's ad-hoc mulAlpha didn't take the sRGB color-space
into account, which meant that alpha-scaled colors were subtly wrong.
Introduce f32color.MulAlpha and convert all uses to it.
Thanks to René Post for finding and debugging the issue.
Signed-off-by: Elias Naur <mail@eliasnaur.com>