[PATCH 3/3 v2] test: Exercise image scaling quality when downscaling
"Bryce W. Harrington" <[email protected]>
| Newsgroups | gmane.comp.lib.cairo |
|---|---|
| Message-ID | <[email protected]> |
This adds testcases for the various cairo filter options, each of which match to corresponding pixman filters. Use the 'downscale' keyword if invoking tests using cairo-test-suite. The 24-pixel reference images were produced from quad-color.png using Gimp's Scale Image command with Interpolation set to None. It is assumed that all filters should handle a 1:4 scaling cleanly with no antialiased blurring. The 95-pixel reference images assume differing types of antialiasing based on the quality level. We are using the image.argb32 output as reference here. Potentially some other rendering algorithm could conceivably provide better results in the future. The 96-pixel reference images are simply copies of the original quad-color.png file. It is assumed that 1:1 downscaling operations should produce no visible change to the original image. Signed-off-by: Bryce Harrington <[email protected]> --- test/pixman-downscale.c | 146 ++++++++++++++++++-- test/reference/pixman-downscale-24.ref.png | Bin 191 -> 0 bytes test/reference/pixman-downscale-95.ref.png | Bin 285 -> 0 bytes test/reference/pixman-downscale-96.ref.png | Bin 301 -> 0 bytes test/reference/pixman-downscale-best-24.ref.png | Bin 0 -> 191 bytes test/reference/pixman-downscale-best-95.ref.png | Bin 0 -> 685 bytes test/reference/pixman-downscale-best-96.ref.png | Bin 0 -> 301 bytes .../reference/pixman-downscale-bilinear-24.ref.png | Bin 0 -> 191 bytes .../reference/pixman-downscale-bilinear-95.ref.png | Bin 0 -> 685 bytes .../reference/pixman-downscale-bilinear-96.ref.png | Bin 0 -> 301 bytes test/reference/pixman-downscale-fast-24.ref.png | Bin 0 -> 191 bytes test/reference/pixman-downscale-fast-95.ref.png | Bin 0 -> 685 bytes test/reference/pixman-downscale-fast-96.ref.png | Bin 0 -> 301 bytes test/reference/pixman-downscale-good-24.ref.png | Bin 0 -> 191 bytes test/reference/pixman-downscale-good-95.ref.png | Bin 0 -> 685 bytes test/reference/pixman-downscale-good-96.ref.png | Bin 0 -> 301 bytes test/reference/pixman-downscale-nearest-24.ref.png | Bin 0 -> 191 bytes test/reference/pixman-downscale-nearest-95.ref.png | Bin 0 -> 685 bytes test/reference/pixman-downscale-nearest-96.ref.png | Bin 0 -> 301 bytes 19 files changed, 132 insertions(+), 14 deletions(-) delete mode 100644 test/reference/pixman-downscale-24.ref.png delete mode 100644 test/reference/pixman-downscale-95.ref.png delete mode 100644 test/reference/pixman-downscale-96.ref.png create mode 100644 test/reference/pixman-downscale-best-24.ref.png create mode 100644 test/reference/pixman-downscale-best-95.ref.png create mode 100644 test/reference/pixman-downscale-best-96.ref.png create mode 100644 test/reference/pixman-downscale-bilinear-24.ref.png create mode 100644 test/reference/pixman-downscale-bilinear-95.ref.png create mode 100644 test/reference/pixman-downscale-bilinear-96.ref.png create mode 100644 test/reference/pixman-downscale-fast-24.ref.png create mode 100644 test/reference/pixman-downscale-fast-95.ref.png create mode 100644 test/reference/pixman-downscale-fast-96.ref.png create mode 100644 test/reference/pixman-downscale-good-24.ref.png create mode 100644 test/reference/pixman-downscale-good-95.ref.png create mode 100644 test/reference/pixman-downscale-good-96.ref.png create mode 100644 test/reference/pixman-downscale-nearest-24.ref.png create mode 100644 test/reference/pixman-downscale-nearest-95.ref.png create mode 100644 test/reference/pixman-downscale-nearest-96.ref.png diff --git a/test/pixman-downscale.c b/test/pixman-downscale.c index 1f8a9b4..82a5eee 100644 --- a/test/pixman-downscale.c +++ b/test/pixman-downscale.c @@ -36,7 +36,7 @@ static const char *png_filename = "quad-color.png"; /* Draw an image scaled down, with antialiasing disabled */ static cairo_test_status_t -draw (cairo_t *cr, int width, int height) +draw (cairo_t *cr, int width, int height, cairo_filter_t filter) { const cairo_test_context_t *ctx = cairo_test_get_context (cr); cairo_surface_t *image; @@ -49,7 +49,7 @@ draw (cairo_t *cr, int width, int height) scale = fmin(x_scale, y_scale); cairo_save (cr); - cairo_pattern_set_filter (cairo_get_source (cr), CAIRO_FILTER_FAST); + cairo_pattern_set_filter (cairo_get_source (cr), filter); cairo_scale (cr, scale, scale); cairo_set_source_surface (cr, image, 0, 0); cairo_paint (cr); @@ -59,23 +59,141 @@ draw (cairo_t *cr, int width, int height) return CAIRO_TEST_SUCCESS; } -CAIRO_TEST (pixman_downscale_96, - "Tests scaling to equivalent size", - "image, transform, raster", /* keywords */ +static cairo_test_status_t +draw_fast (cairo_t *cr, int width, int height) +{ + return draw (cr, width, height, CAIRO_FILTER_FAST); +} + +static cairo_test_status_t +draw_good (cairo_t *cr, int width, int height) +{ + return draw (cr, width, height, CAIRO_FILTER_GOOD); +} + +static cairo_test_status_t +draw_best (cairo_t *cr, int width, int height) +{ + return draw (cr, width, height, CAIRO_FILTER_BEST); +} + +static cairo_test_status_t +draw_nearest (cairo_t *cr, int width, int height) +{ + return draw (cr, width, height, CAIRO_FILTER_NEAREST); +} + +static cairo_test_status_t +draw_bilinear (cairo_t *cr, int width, int height) +{ + return draw (cr, width, height, CAIRO_FILTER_BILINEAR); +} + +CAIRO_TEST (pixman_downscale_fast_96, + "Tests scaling to equivalent size using the fast filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 96, 96, + NULL, draw_fast) + +CAIRO_TEST (pixman_downscale_fast_95, + "Tests downscaling by a single pixel using the fast filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 95, 95, + NULL, draw_fast) + +CAIRO_TEST (pixman_downscale_fast_24, + "Tests downscaling by an even multiple using the fast filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 24, 24, + NULL, draw_fast) + + +CAIRO_TEST (pixman_downscale_good_96, + "Tests scaling to equivalent size using the good filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 96, 96, + NULL, draw_good) + +CAIRO_TEST (pixman_downscale_good_95, + "Tests downscaling by a single pixel using the good filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 95, 95, + NULL, draw_good) + +CAIRO_TEST (pixman_downscale_good_24, + "Tests downscaling by an even multiple using the good filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 24, 24, + NULL, draw_good) + + +CAIRO_TEST (pixman_downscale_best_96, + "Tests scaling to equivalent size using the best filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 96, 96, + NULL, draw_best) + +CAIRO_TEST (pixman_downscale_best_95, + "Tests downscaling by a single pixel using the best filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 95, 95, + NULL, draw_best) + +CAIRO_TEST (pixman_downscale_best_24, + "Tests downscaling by an even multiple using the best filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 24, 24, + NULL, draw_best) + + +CAIRO_TEST (pixman_downscale_nearest_96, + "Tests scaling to equivalent size using the nearest filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 96, 96, + NULL, draw_nearest) + +CAIRO_TEST (pixman_downscale_nearest_95, + "Tests downscaling by a single pixel using the nearest filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 95, 95, + NULL, draw_nearest) + +CAIRO_TEST (pixman_downscale_nearest_24, + "Tests downscaling by an even multiple using the nearest filter", + "image, transform, raster, downscale", /* keywords */ + NULL, /* requirements */ + 24, 24, + NULL, draw_nearest) + + +CAIRO_TEST (pixman_downscale_bilinear_96, + "Tests scaling to equivalent size using the bilinear filter", + "image, transform, raster, downscale", /* keywords */ NULL, /* requirements */ 96, 96, - NULL, draw) + NULL, draw_bilinear) -CAIRO_TEST (pixman_downscale_95, - "Tests downscaling by a single pixel", - "image, transform, raster", /* keywords */ +CAIRO_TEST (pixman_downscale_bilinear_95, + "Tests downscaling by a single pixel using the bilinear filter", + "image, transform, raster, downscale", /* keywords */ NULL, /* requirements */ 95, 95, - NULL, draw) + NULL, draw_bilinear) -CAIRO_TEST (pixman_downscale_24, - "Tests downscaling by an even multiple", - "image, transform, raster", /* keywords */ +CAIRO_TEST (pixman_downscale_bilinear_24, + "Tests downscaling by an even multiple using the bilinear filter", + "image, transform, raster, downscale", /* keywords */ NULL, /* requirements */ 24, 24, - NULL, draw) + NULL, draw_bilinear) diff --git a/test/reference/pixman-downscale-24.ref.png b/test/reference/pixman-downscale-24.ref.png deleted file mode 100644 index df0f9c0d84f3f48d00fdb0f3f08ae587754a269d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&awa`qBWUsv|K>|BC!7IA*pm4QNmo-U3d7N_3^pXOpv;3&RWA0EGNU1}T4 zrIUAMg4_8gwy>{ZJlV~aSJYV)vi6&EaICP+3<LMb7lqjZ5!yx;9>LS69R3%PQJ;M; gq~!8p8PysezC2Ei17|)i02<EV>FVdQ&MBb@0ICT&&j0`b diff --git a/test/reference/pixman-downscale-95.ref.png b/test/reference/pixman-downscale-95.ref.png deleted file mode 100644 index 0a5917665f68cb6be8c3e80491e0b918111ac9a1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1SA>tdKQ7G;vjb?hIQv;UIICs1s;*b3=G`D zAk4@xYmNj^kiEpy*OmP)JC~q=p!jdMWT4P`PZ!6Kid%1Q2XZwi2sk*J?<z0*^p>TL zLwe?!-@PvEtqZbzC#iS>QN3PT{)scw(?wpd`L@CF#f62=?R;~2tzOFoznj%qbx`8w zTUqsPK3S`h7ad>{q@WL?OxCK}<gcAJoBY8qn>0mxMBYlpZ7iRo15^rB<PIj=L3&)k vWLWmU@6T$g-FBX<dJ8fRqz2-IU%S`?lQ`R|?%m!FbUK5ltDnm{r-UW|k@jd- diff --git a/test/reference/pixman-downscale-96.ref.png b/test/reference/pixman-downscale-96.ref.png deleted file mode 100644 index 0d68a82cc27532aa78fc12af7646f6821a730a2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^ zD(1Ysy^*iUK*S+1>rej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlH<ByqM{lP1D%YXuKdqK|r@Q}6kF=t0) R<@7`l*VEO{Wt~$(698O(XEy)< diff --git a/test/reference/pixman-downscale-best-24.ref.png b/test/reference/pixman-downscale-best-24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df0f9c0d84f3f48d00fdb0f3f08ae587754a269d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&awa`qBWUsv|K>|BC!7IA*pm4QNmo-U3d7N_3^pXOpv;3&RWA0EGNU1}T4 zrIUAMg4_8gwy>{ZJlV~aSJYV)vi6&EaICP+3<LMb7lqjZ5!yx;9>LS69R3%PQJ;M; gq~!8p8PysezC2Ei17|)i02<EV>FVdQ&MBb@0ICT&&j0`b literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-best-95.ref.png b/test/reference/pixman-downscale-best-95.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..49011d526a05317a18f203e98b45c24cad6cdf69 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1|<7@q`v|wwj^(N7l!{JxM1({$qWokNuDl_ zAr*7p-Zjj7<RH=Z@H$^t4TJe?tE1PhiLKPQ9JD0i{bb=KkGLFf3Ky`QR`<v<pSCU8 zed1Hk#!I<ns&4iBl<r?vde$zUs3^fJ`awEl!})1pa}HVWb68u)5I^%Vx8=SGxQGj@ zo}A0QeW_HoRJV%vx7;#Mqbf$W1u0d5f7ZRe@&3C>?+fXdXW97JPrhKuX`J-Z_2cVZ z%QB^6Ypz<qtKIYCU)X_<tupZ^K*Wj{m(Tt8xjZpZB66CH@q<qs*A2a|OYRc9m3-!x zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>} z4v&cb{dWKI=0xYe2eT_qPPBH@YWnu}gX|8@NXz1beWv^|f4_cf4QG4T`0tIR>qm7p zzW+BC)}76a_Pz72PkK?A@7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y@9M4zG-p}1zpY!mkS;2wBqBiVv z%f4{doJF!x>-Uz;1-I6$-n55H-r<qRgBsBf?Zy8^x3F53yr2J%-Dhn^#YfIxD|Plw q_1O0eU*rM<Ywd+P<^NNcnmaM)?~uK@vJ{y97(8A5T-G@yGywq7Cqa?` literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-best-96.ref.png b/test/reference/pixman-downscale-best-96.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0d68a82cc27532aa78fc12af7646f6821a730a2b GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^ zD(1Ysy^*iUK*S+1>rej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlH<ByqM{lP1D%YXuKdqK|r@Q}6kF=t0) R<@7`l*VEO{Wt~$(698O(XEy)< literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-bilinear-24.ref.png b/test/reference/pixman-downscale-bilinear-24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df0f9c0d84f3f48d00fdb0f3f08ae587754a269d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&awa`qBWUsv|K>|BC!7IA*pm4QNmo-U3d7N_3^pXOpv;3&RWA0EGNU1}T4 zrIUAMg4_8gwy>{ZJlV~aSJYV)vi6&EaICP+3<LMb7lqjZ5!yx;9>LS69R3%PQJ;M; gq~!8p8PysezC2Ei17|)i02<EV>FVdQ&MBb@0ICT&&j0`b literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-bilinear-95.ref.png b/test/reference/pixman-downscale-bilinear-95.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..49011d526a05317a18f203e98b45c24cad6cdf69 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1|<7@q`v|wwj^(N7l!{JxM1({$qWokNuDl_ zAr*7p-Zjj7<RH=Z@H$^t4TJe?tE1PhiLKPQ9JD0i{bb=KkGLFf3Ky`QR`<v<pSCU8 zed1Hk#!I<ns&4iBl<r?vde$zUs3^fJ`awEl!})1pa}HVWb68u)5I^%Vx8=SGxQGj@ zo}A0QeW_HoRJV%vx7;#Mqbf$W1u0d5f7ZRe@&3C>?+fXdXW97JPrhKuX`J-Z_2cVZ z%QB^6Ypz<qtKIYCU)X_<tupZ^K*Wj{m(Tt8xjZpZB66CH@q<qs*A2a|OYRc9m3-!x zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>} z4v&cb{dWKI=0xYe2eT_qPPBH@YWnu}gX|8@NXz1beWv^|f4_cf4QG4T`0tIR>qm7p zzW+BC)}76a_Pz72PkK?A@7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y@9M4zG-p}1zpY!mkS;2wBqBiVv z%f4{doJF!x>-Uz;1-I6$-n55H-r<qRgBsBf?Zy8^x3F53yr2J%-Dhn^#YfIxD|Plw q_1O0eU*rM<Ywd+P<^NNcnmaM)?~uK@vJ{y97(8A5T-G@yGywq7Cqa?` literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-bilinear-96.ref.png b/test/reference/pixman-downscale-bilinear-96.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0d68a82cc27532aa78fc12af7646f6821a730a2b GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^ zD(1Ysy^*iUK*S+1>rej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlH<ByqM{lP1D%YXuKdqK|r@Q}6kF=t0) R<@7`l*VEO{Wt~$(698O(XEy)< literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-fast-24.ref.png b/test/reference/pixman-downscale-fast-24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df0f9c0d84f3f48d00fdb0f3f08ae587754a269d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&awa`qBWUsv|K>|BC!7IA*pm4QNmo-U3d7N_3^pXOpv;3&RWA0EGNU1}T4 zrIUAMg4_8gwy>{ZJlV~aSJYV)vi6&EaICP+3<LMb7lqjZ5!yx;9>LS69R3%PQJ;M; gq~!8p8PysezC2Ei17|)i02<EV>FVdQ&MBb@0ICT&&j0`b literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-fast-95.ref.png b/test/reference/pixman-downscale-fast-95.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..49011d526a05317a18f203e98b45c24cad6cdf69 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1|<7@q`v|wwj^(N7l!{JxM1({$qWokNuDl_ zAr*7p-Zjj7<RH=Z@H$^t4TJe?tE1PhiLKPQ9JD0i{bb=KkGLFf3Ky`QR`<v<pSCU8 zed1Hk#!I<ns&4iBl<r?vde$zUs3^fJ`awEl!})1pa}HVWb68u)5I^%Vx8=SGxQGj@ zo}A0QeW_HoRJV%vx7;#Mqbf$W1u0d5f7ZRe@&3C>?+fXdXW97JPrhKuX`J-Z_2cVZ z%QB^6Ypz<qtKIYCU)X_<tupZ^K*Wj{m(Tt8xjZpZB66CH@q<qs*A2a|OYRc9m3-!x zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>} z4v&cb{dWKI=0xYe2eT_qPPBH@YWnu}gX|8@NXz1beWv^|f4_cf4QG4T`0tIR>qm7p zzW+BC)}76a_Pz72PkK?A@7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y@9M4zG-p}1zpY!mkS;2wBqBiVv z%f4{doJF!x>-Uz;1-I6$-n55H-r<qRgBsBf?Zy8^x3F53yr2J%-Dhn^#YfIxD|Plw q_1O0eU*rM<Ywd+P<^NNcnmaM)?~uK@vJ{y97(8A5T-G@yGywq7Cqa?` literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-fast-96.ref.png b/test/reference/pixman-downscale-fast-96.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0d68a82cc27532aa78fc12af7646f6821a730a2b GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^ zD(1Ysy^*iUK*S+1>rej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlH<ByqM{lP1D%YXuKdqK|r@Q}6kF=t0) R<@7`l*VEO{Wt~$(698O(XEy)< literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-good-24.ref.png b/test/reference/pixman-downscale-good-24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df0f9c0d84f3f48d00fdb0f3f08ae587754a269d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&awa`qBWUsv|K>|BC!7IA*pm4QNmo-U3d7N_3^pXOpv;3&RWA0EGNU1}T4 zrIUAMg4_8gwy>{ZJlV~aSJYV)vi6&EaICP+3<LMb7lqjZ5!yx;9>LS69R3%PQJ;M; gq~!8p8PysezC2Ei17|)i02<EV>FVdQ&MBb@0ICT&&j0`b literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-good-95.ref.png b/test/reference/pixman-downscale-good-95.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..49011d526a05317a18f203e98b45c24cad6cdf69 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1|<7@q`v|wwj^(N7l!{JxM1({$qWokNuDl_ zAr*7p-Zjj7<RH=Z@H$^t4TJe?tE1PhiLKPQ9JD0i{bb=KkGLFf3Ky`QR`<v<pSCU8 zed1Hk#!I<ns&4iBl<r?vde$zUs3^fJ`awEl!})1pa}HVWb68u)5I^%Vx8=SGxQGj@ zo}A0QeW_HoRJV%vx7;#Mqbf$W1u0d5f7ZRe@&3C>?+fXdXW97JPrhKuX`J-Z_2cVZ z%QB^6Ypz<qtKIYCU)X_<tupZ^K*Wj{m(Tt8xjZpZB66CH@q<qs*A2a|OYRc9m3-!x zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>} z4v&cb{dWKI=0xYe2eT_qPPBH@YWnu}gX|8@NXz1beWv^|f4_cf4QG4T`0tIR>qm7p zzW+BC)}76a_Pz72PkK?A@7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y@9M4zG-p}1zpY!mkS;2wBqBiVv z%f4{doJF!x>-Uz;1-I6$-n55H-r<qRgBsBf?Zy8^x3F53yr2J%-Dhn^#YfIxD|Plw q_1O0eU*rM<Ywd+P<^NNcnmaM)?~uK@vJ{y97(8A5T-G@yGywq7Cqa?` literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-good-96.ref.png b/test/reference/pixman-downscale-good-96.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0d68a82cc27532aa78fc12af7646f6821a730a2b GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^ zD(1Ysy^*iUK*S+1>rej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlH<ByqM{lP1D%YXuKdqK|r@Q}6kF=t0) R<@7`l*VEO{Wt~$(698O(XEy)< literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-nearest-24.ref.png b/test/reference/pixman-downscale-nearest-24.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..df0f9c0d84f3f48d00fdb0f3f08ae587754a269d GIT binary patch literal 191 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1SIoCSFHz9jKx9jP7LeL$-D$|I14-?iy0WW zg+Z8+Vb&awa`qBWUsv|K>|BC!7IA*pm4QNmo-U3d7N_3^pXOpv;3&RWA0EGNU1}T4 zrIUAMg4_8gwy>{ZJlV~aSJYV)vi6&EaICP+3<LMb7lqjZ5!yx;9>LS69R3%PQJ;M; gq~!8p8PysezC2Ei17|)i02<EV>FVdQ&MBb@0ICT&&j0`b literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-nearest-95.ref.png b/test/reference/pixman-downscale-nearest-95.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..49011d526a05317a18f203e98b45c24cad6cdf69 GIT binary patch literal 685 zcmeAS@N?(olHy`uVBq!ia0vp^@gU5>1|<7@q`v|wwj^(N7l!{JxM1({$qWokNuDl_ zAr*7p-Zjj7<RH=Z@H$^t4TJe?tE1PhiLKPQ9JD0i{bb=KkGLFf3Ky`QR`<v<pSCU8 zed1Hk#!I<ns&4iBl<r?vde$zUs3^fJ`awEl!})1pa}HVWb68u)5I^%Vx8=SGxQGj@ zo}A0QeW_HoRJV%vx7;#Mqbf$W1u0d5f7ZRe@&3C>?+fXdXW97JPrhKuX`J-Z_2cVZ z%QB^6Ypz<qtKIYCU)X_<tupZ^K*Wj{m(Tt8xjZpZB66CH@q<qs*A2a|OYRc9m3-!x zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>} z4v&cb{dWKI=0xYe2eT_qPPBH@YWnu}gX|8@NXz1beWv^|f4_cf4QG4T`0tIR>qm7p zzW+BC)}76a_Pz72PkK?A@7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y@9M4zG-p}1zpY!mkS;2wBqBiVv z%f4{doJF!x>-Uz;1-I6$-n55H-r<qRgBsBf?Zy8^x3F53yr2J%-Dhn^#YfIxD|Plw q_1O0eU*rM<Ywd+P<^NNcnmaM)?~uK@vJ{y97(8A5T-G@yGywq7Cqa?` literal 0 HcmV?d00001 diff --git a/test/reference/pixman-downscale-nearest-96.ref.png b/test/reference/pixman-downscale-nearest-96.ref.png new file mode 100644 index 0000000000000000000000000000000000000000..0d68a82cc27532aa78fc12af7646f6821a730a2b GIT binary patch literal 301 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^ zD(1Ysy^*iUK*S+1>rej2(}h=B@0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U z_vgvq?cQM@omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c zbN%i~M<*ZqX0g}kFdxELd^!~Z1T@ab2krlH<ByqM{lP1D%YXuKdqK|r@Q}6kF=t0) R<@7`l*VEO{Wt~$(698O(XEy)< literal 0 HcmV?d00001 -- 1.7.9.5 -- cairo mailing list [email protected] http://lists.cairographics.org/mailman/listinfo/cairo