# HG changeset patch # User Sam Lantinga # Date 1258607161 0 # Node ID 6b182cbe38ac1fb1533b7c82c52b7aa486a4050d # Parent 5a7b5760c875ce8634eeb5a6462c116714825118 Allow some variation in the pixel values to account for blending accuracy differences. diff -r 5a7b5760c875 -r 6b182cbe38ac test/automated/common/common.c --- a/test/automated/common/common.c Thu Nov 19 04:59:19 2009 +0000 +++ b/test/automated/common/common.c Thu Nov 19 05:06:01 2009 +0000 @@ -47,22 +47,24 @@ case 4: { - int fail; + int dist = 0; Uint8 R, G, B, A; SDL_GetRGBA(*(Uint32*)p, sur->format, &R, &G, &B, &A); if (img->bytes_per_pixel == 3) { - fail = !( (R == pd[0]) && - (G == pd[1]) && - (B == pd[2]) ); + dist += (R-pd[0])*(R-pd[0]); + dist += (G-pd[1])*(G-pd[1]); + dist += (B-pd[2])*(B-pd[2]); } else { - fail = !( (R == pd[0]) && - (G == pd[1]) && - (B == pd[2]) && - (A == pd[3]) ); + dist += (R-pd[0])*(R-pd[0]); + dist += (G-pd[1])*(G-pd[1]); + dist += (B-pd[2])*(B-pd[2]); + dist += (A-pd[3])*(A-pd[3]); } - if (fail) { + /* Allow up to sqrt(32) difference in blending accuracy */ + if (dist > 32) { + /*printf("pixel %d,%d varies by %d\n", i, j, dist);*/ ++ret; } }