forked from AuroraMiddleware/gtk
reftest-compare: Treat colour channels as undefined if alpha is zero
If the alpha channel is zero, it doesn't matter what the values of the red, green and blue channels are: the pixel is still fully transparent. On most architectures, fully transparent pixels end up all-zeroes (fully transparent black), matching what's in the reference PNG file; but on mips*el the blend-difference and blend-normal tests get all-ones (fully transparent white) and a test failure. Resolves: https://gitlab.gnome.org/GNOME/gtk/-/issues/4227 Signed-off-by: Simon McVittie <smcv@debian.org>
This commit is contained in:
parent
82a184a7b7
commit
16b9a30655
@ -104,7 +104,12 @@ buffer_diff_core (const guchar *buf_a,
|
||||
/* check if the pixels are the same */
|
||||
if (row_a[x] == row_b[x])
|
||||
continue;
|
||||
|
||||
|
||||
/* even if they're not literally the same, fully-transparent
|
||||
* pixels are effectively the same regardless of colour */
|
||||
if ((row_a[x] & 0xff000000) == 0 && (row_b[x] & 0xff000000) == 0)
|
||||
continue;
|
||||
|
||||
if (diff == NULL)
|
||||
{
|
||||
diff = cairo_image_surface_create (CAIRO_FORMAT_RGB24,
|
||||
|
Loading…
Reference in New Issue
Block a user