[cairo] [PATCH 3/3 v2] test: Exercise image scaling quality when downscaling

Bryce W. Harrington b.harrington at samsung.com
Mon Sep 9 15:59:50 PDT 2013


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 <b.harrington at samsung.com>
---
 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 at 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 at 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 at N?(olHy`uVBq!ia0vp^@gU5>1SA>tdKQ7G;vjb?hIQv;UIICs1s;*b3=G`D
zAk4 at xYmNj^kiEpy*OmP)JC~q=p!jdMWT4P`PZ!6Kid%1Q2XZwi2sk*J?<z0*^p>TL
zLwe?!- at PvEtqZbzC#iS>QN3PT{)scw(?wpd`L at CF#f62=?R;~2tzOFoznj%qbx`8w
zTUqsPK3S`h7ad>{q at WL?OxCK}<gcAJoBY8qn>0mxMBYlpZ7iRo15^rB<PIj=L3&)k
vWLWmU at 6T$g-FBX<dJ8fRqz2-IU%S`?lQ`R|?%m!FbUK5ltDnm{r-UW|k at 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 at N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^
zD(1Ysy^*iUK*S+1>rej2(}h=B at 0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U
z_vgvq?cQM at omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c
zbN%i~M<*ZqX0g}kFdxELd^!~Z1T at ab2krlH<ByqM{lP1D%YXuKdqK|r at 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 at 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 at 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 at N?(olHy`uVBq!ia0vp^@gU5>1|<7 at q`v|wwj^(N7l!{JxM1({$qWokNuDl_
zAr*7p-Zjj7<RH=Z at 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 at q<qs*A2a|OYRc9m3-!x
zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>}
z4v&cb{dWKI=0xYe2eT_qPPBH at YWnu}gX|8 at NXz1beWv^|f4_cf4QG4T`0tIR>qm7p
zzW+BC)}76a_Pz72PkK?A at 7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK
zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y at 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 at vJ{y97(8A5T-G at 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 at N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^
zD(1Ysy^*iUK*S+1>rej2(}h=B at 0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U
z_vgvq?cQM at omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c
zbN%i~M<*ZqX0g}kFdxELd^!~Z1T at ab2krlH<ByqM{lP1D%YXuKdqK|r at 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 at 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 at 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 at N?(olHy`uVBq!ia0vp^@gU5>1|<7 at q`v|wwj^(N7l!{JxM1({$qWokNuDl_
zAr*7p-Zjj7<RH=Z at 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 at q<qs*A2a|OYRc9m3-!x
zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>}
z4v&cb{dWKI=0xYe2eT_qPPBH at YWnu}gX|8 at NXz1beWv^|f4_cf4QG4T`0tIR>qm7p
zzW+BC)}76a_Pz72PkK?A at 7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK
zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y at 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 at vJ{y97(8A5T-G at 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 at N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^
zD(1Ysy^*iUK*S+1>rej2(}h=B at 0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U
z_vgvq?cQM at omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c
zbN%i~M<*ZqX0g}kFdxELd^!~Z1T at ab2krlH<ByqM{lP1D%YXuKdqK|r at 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 at 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 at 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 at N?(olHy`uVBq!ia0vp^@gU5>1|<7 at q`v|wwj^(N7l!{JxM1({$qWokNuDl_
zAr*7p-Zjj7<RH=Z at 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 at q<qs*A2a|OYRc9m3-!x
zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>}
z4v&cb{dWKI=0xYe2eT_qPPBH at YWnu}gX|8 at NXz1beWv^|f4_cf4QG4T`0tIR>qm7p
zzW+BC)}76a_Pz72PkK?A at 7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK
zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y at 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 at vJ{y97(8A5T-G at 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 at N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^
zD(1Ysy^*iUK*S+1>rej2(}h=B at 0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U
z_vgvq?cQM at omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c
zbN%i~M<*ZqX0g}kFdxELd^!~Z1T at ab2krlH<ByqM{lP1D%YXuKdqK|r at 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 at 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 at 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 at N?(olHy`uVBq!ia0vp^@gU5>1|<7 at q`v|wwj^(N7l!{JxM1({$qWokNuDl_
zAr*7p-Zjj7<RH=Z at 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 at q<qs*A2a|OYRc9m3-!x
zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>}
z4v&cb{dWKI=0xYe2eT_qPPBH at YWnu}gX|8 at NXz1beWv^|f4_cf4QG4T`0tIR>qm7p
zzW+BC)}76a_Pz72PkK?A at 7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK
zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y at 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 at vJ{y97(8A5T-G at 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 at N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^
zD(1Ysy^*iUK*S+1>rej2(}h=B at 0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U
z_vgvq?cQM at omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c
zbN%i~M<*ZqX0g}kFdxELd^!~Z1T at ab2krlH<ByqM{lP1D%YXuKdqK|r at 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 at 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 at 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 at N?(olHy`uVBq!ia0vp^@gU5>1|<7 at q`v|wwj^(N7l!{JxM1({$qWokNuDl_
zAr*7p-Zjj7<RH=Z at 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 at q<qs*A2a|OYRc9m3-!x
zfK0uF+qT>BOH7XQ?2vw#e&*6yp5N*_YC9w4n;z?Xt1Y$EtDEXP|6tJ3wY>YDdE;>}
z4v&cb{dWKI=0xYe2eT_qPPBH at YWnu}gX|8 at NXz1beWv^|f4_cf4QG4T`0tIR>qm7p
zzW+BC)}76a_Pz72PkK?A at 7XmKDQ7>ozgABOH#t0AR`IxaQ4LAN!VAs%MZCpNZkGRK
zdNyOZ!FlbXKHHy4CjV|6yezj$HRC`YZ~yBFON-Y at 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 at vJ{y97(8A5T-G at 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 at N?(olHy`uVBq!ia0vp^2_VeD1SE5RJ;(=AY)RhkE)4%caKYZ?lYt_SJY5_^
zD(1Ysy^*iUK*S+1>rej2(}h=B at 0d(;Js;WVUVNE%S1wQ;!=K59zYi43gs*v=>!Y8U
z_vgvq?cQM at omse;SR0!h92Y1A>{u^la;*65g4(k)k}t|wYjB7lNebZM8vKpTne!)c
zbN%i~M<*ZqX0g}kFdxELd^!~Z1T at ab2krlH<ByqM{lP1D%YXuKdqK|r at Q}6kF=t0)
R<@7`l*VEO{Wt~$(698O(XEy)<

literal 0
HcmV?d00001

-- 
1.7.9.5


More information about the cairo mailing list