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

Bryce W. Harrington b.harrington at samsung.com
Thu Jul 11 18:37:54 PDT 2013


This adds testcases for the various cairo filter options, each of which
match to corresponding pixman filters.

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.

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.  These were produced with Gimp's Scale Image
command at a resolution of 72 pixels/inch, with different Interpolation
levels for each of Cairo's filter quality levels, as follows:

 Cairo Filter              Gimp Interpolation
 ------------	 	   ------------------
 CAIRO_FILTER_NEAREST      Linear
 CAIRO_FILTER_FAST         Linear
 CAIRO_FILTER_BILINEAR     Cubic
 CAIRO_FILTER_GOOD         Cubic
 CAIRO_FILTER_BEST         Lanczos3

These assumptions may need adjustment as development on this code
progresses.

Signed-off-by: Bryce Harrington <b.harrington at samsung.com>
---
 test/pixman-downscale.c                            |  140 ++++++++++++++++++--
 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 -> 1580 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 -> 640 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 -> 453 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 -> 640 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 -> 453 bytes
 test/reference/pixman-downscale-nearest-96.ref.png |  Bin 0 -> 301 bytes
 19 files changed, 129 insertions(+), 11 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..ac9d016 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",
+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", /* 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", /* 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", /* 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", /* 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", /* 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", /* 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", /* 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", /* 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", /* 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", /* 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", /* 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", /* 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", /* keywords */
 	    NULL, /* requirements */
 	    96, 96,
-	    NULL, draw)
+	    NULL, draw_bilinear)
 
-CAIRO_TEST (pixman_downscale_95,
-	    "Tests downscaling by a single pixel",
+CAIRO_TEST (pixman_downscale_bilinear_95,
+	    "Tests downscaling by a single pixel using the bilinear filter",
 	    "image, transform, raster", /* keywords */
 	    NULL, /* requirements */
 	    95, 95,
-	    NULL, draw)
+	    NULL, draw_bilinear)
 
-CAIRO_TEST (pixman_downscale_24,
-	    "Tests downscaling by an even multiple",
+CAIRO_TEST (pixman_downscale_bilinear_24,
+	    "Tests downscaling by an even multiple using the bilinear filter",
 	    "image, transform, raster", /* 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..b3821e8dd706f56b1ce599ffb1ed3cb2d02c4b72
GIT binary patch
literal 1580
zcmV+{2GjY8P)<h;3K|Lk000e1NJLTq003VA003VI0ssI20WOT900001b5ch_0Itp)
z=>Px#32;bRa{vGf6951U69E94oEQKA00(qQO+^RY2MYle7RC0*G5`PtzDYzuRCwC$
zoV#w at NEC*@Gb73h4LC)Lz`$agt(`i6fgo>?wEF;gg_H at 9GEcGDK0w}KfxvaPO5w&Z
zV5H1qWyhk2XA4SNQ6y!F!=dDOei$-28eZn-xzA7#5fKp)5fKp)5fKp)5z!Z9v)&@s
z+JLu{=j3^~(>u^Wr#8m)@w at _G#e|R at 5mD8HgM*`^qv3FvWm(rkEDQ#mo^o~;f|LX%
z at HhMe(zyf;1_R*u_;@mzsOnAUP`y#TdGqE5Li{OA;J6se`lH^6qv3FvBnc48`t0wA
z)2Rf8A=Qv9%bat?wrY)d&KsA$t!*!D7ym9VDT}?%KDD8pN(XH=$(x#kLA&Qr46OJp
zOj7-rRYjzhpyhTEEn7id&nQ-ps%}ebd(zg1%HqfuhgxheQ83?LJgU at Q8N-@GsvhM}
ziZ44$qgB;BS5;;srB23m)dRMsVApeG1<OXKG|9HuDR>bP=W=U}wbFs*+}o=swngA4
zSlyoN%sH~weEatA$;r8Mnj~#wIh&9^<l=%uNTIDu%nVj}dd}nVR%K at v`m42aa&rFi
z<)4tjsO_07jCl5i*Kh@{?P*4k@#zCEzLI;3kH72yIH!<7*8ZWBgT*<9aI<NoQI2ZB
zNhjLr?a>SWlOzU4)92q_b{;SoaOo#IKt_^x<G)%yqrzb=`Q}h1gY_HhdWnbi=_T#H
zvoM~Tb=za3{8_szm2d0zq^?EECy<)(NBd_dlx77e?)lu}AlQv*bHcbzJlzmfYh&MT
zyi`|q=QhFF3C-GCtX$0}qwL%-tL$IF&|Q`t*_Pdj at lMn%UxyVn%PSDOmmd8-M1x)x
zjNOO&iBz~eYbP|zGtUZ_N!(+PeutE+Kf5D{Eh@)~ASf0CSQ4<)+Hgx)uw7YYyYRVq
z0SU^^VBWucos@^Oy7B`LcJ^!Rj+VDq)QT4-Xwp at qHIR4APEHP-a{89H`|MwGIlCp@
zWAB2CXMAzEIekJgE2 at IbKa2LI-G!kQ<9l8lxYW7nzy)$tkc`Y?Kl0==hu2)syQQRK
z#;5!NXZhL$ZNQGfoN at M!chzqX;WZ4Ian>Hs;ddA#Zk4NQa*~j8H6eM=s|z00b^6PM
zU}r8qwK|`|72Lp82c~cgSEyUoCb=z!nfCdS;ZnX+&(2LA&h9K*1eyM~;K2AzL(Sl3
ze^Vl++Elj6g48%o#o-*rk^w at lC8xacqDqfE>*o)5y3VsYW2|<KPq|jxLpa)&9o?w8
zO{}@dLUm!?(t@)!Zd7_?NA8O3NR*vWS$e4ISBnf?stJ2VQkGg45yBFMs(!Voed)?X
zw_3 at r%1*O1wOj^fyzGwbzU+9dQ5kqCPjj16AL~|ktNCWt49~4h?E>fxEz$NgtF}tK
zTDj^ETrk76tHrBg5~AMJvCrB)kG>V3wQ_b%8)T<;w at G#u&G3@!tbRqK!2tHjj&>W~
zgoD>?sBezGTC>)1TTLq2<c69Qs-fLW*G-5g<*!*ZPt|XzSzENqcSE!K&q4#o%7quN
zW>sxt<)16hs=ndomuG3enpK`ZF&U%jD++$dGSVyffooZV9gTii>x{{Fpn@@TTWY7T
zT>8F;Z7q|8%;8Mi6Syo(RBx@(_fq{*191M751$Z6-dcVvr10?x?_ZIA$F}6zm|RuP
z&wl|_WlOR%7aTzx<Hvk`(S^DCe8|P4hRK#qQ;}TN*Q$E^EJZCSlKZ`gSxkCgU(W{T
z^=lZaqH6r#4E1Jb=5N%N%S=u0PcO~eNkj7a|6^~OJYQW4>1L%|T#*~u=}EJag;g=D
zlRjCay?TZ;UAI<JA7-wOaqOls*@o;)AcLfv3G*7OJRZ;XLtG$(NvpVJ&EWU|j$r5?
z_SKz#0H?ol_S at _yVY)@wU*PG%Mw$Mu(y{E!yNCSQFLFa3lpc2{$}SNR5fKp)5fKp)
e5fKsh5&r?(8Bd-R0&8vn0000<MNUMnLSTZI`3}qg

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..20d85ed799225377cd589e9a0c1f9694dd683634
GIT binary patch
literal 640
zcmeAS at N?(olHy`uVBq!ia0vp^@gU5>1SA>tdKQ7G;vjb?hIQv;UIICs1s;*b3=G`D
zAk4 at xYmNj^kiEpy*OmP)J2#_<)Ya%+5ey7WLY^*;Ar-gY-r1OS+d<~|$Mx@$l)j#E
zobJcA-=U1%Xv_Kw?I#6JNEBRBe=&jGtIXbMbB3Ud#7 at y^Rw7)PmnS`b*R^23{!F3I
z=kFfxGMJbe;H9~AN)U*cRULX|@!GAcuV%>{SIRbQTc_OO6m9x}weP9U_19lRw!AHC
zDvEzyaiPOY*3{lwrmIiB`_-R(Pj{<JGgqE7@%<T>5VBJ(HS)4&pKR#wzuWJw+iG_9
zR;AN{W^butlQ~;=B+6MG$h$soetnZ#uFu({%H|iA_hwe?Nd9ahEt}12@<A>4jAl1$
z^^aM5=K1KKE(x2~SF%J|_N52Vf{A^TP&j@*>Jz8wXIt4^DVViwhT8RYG0Tz_{gyA@
z{q);`&E;MpA&mtGA2+$)TBf$*LG7E}U3HlWJJKJ2y!_d_&b0Knn3LvQhaHbzeScrQ
zqp`Lv{V#Kk&z=QOU##EBqZ9w@;qxY|ddo?_d8RL{n__jcprFP6MbE^=Q;-}}g2su9
zpZ9;)?Br$HfrlGj8+v{}XXcxK#zJ}Sx1QbXZnMpf9{k((+B at cw?#p96xxe$wtc05%
zXHHJGyeB-ZMKyAo>#Mm<mglTP_t}5xF%NteG40$bpodG+)&)y#UYEZ0{t4mTt)YM1
wC+?|xI#+#<?oaMhbxi%>7y}Vk_P at 7|(Rt~zG1=G}m|z$@UHx3vIVCg!0EXElnE(I)

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..ba57c7f9a8b7ab1996aef6dfe9488a0b8925e6c0
GIT binary patch
literal 453
zcmeAS at N?(olHy`uVBq!ia0vp^@gU5>1SA>tdKQ7G;vjb?hIQv;UIICs1s;*b3=G`D
zAk4 at xYmNj^kiEpy*OmP)J2#`S`Te5>uYh{OJzX3_DsH{KW0-fyK%(v8deKvJ7EZn4
zaB2!?UxHtg1!qCWxxnjwcNqEv_%0~UR;@n4p<__ea`aWc$dd1(!4CG%CeBekBqRs{
z7cW$M|0)R-2 at Oq+@#E++y#FKq<)r+o*z4EVti2wtd4ILvpS|yM<V!9%vdfmlEtz<7
z%0Bz8Yt1E>bRL|sGrUr+$M5#9qmOPUOt8*MHAuUEqV$c<JL?w<n)$3=2v|XAFvp<*
zD6*jWT=$f3N7OWOw(Q)0Z*{qql<vvD^+)_RH=lBU{eM!D-rN;Cu73OX%SEk!;lB)?
z5-DA4U-`YCCoegC&IxEe*bNsP+o3c_L=h<XT=M20=9A~IzR_iSo0c_=?e)jUj4$VS
zm!3<yurS0tHNEgY$n6|+uUtBJKTz?hO`ZEg=a0tE#h=(Vws%0li=THH9$(u!xoQ<l
RIxy53JYD@<);T3K0RSAS!)yQm

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..20d85ed799225377cd589e9a0c1f9694dd683634
GIT binary patch
literal 640
zcmeAS at N?(olHy`uVBq!ia0vp^@gU5>1SA>tdKQ7G;vjb?hIQv;UIICs1s;*b3=G`D
zAk4 at xYmNj^kiEpy*OmP)J2#_<)Ya%+5ey7WLY^*;Ar-gY-r1OS+d<~|$Mx@$l)j#E
zobJcA-=U1%Xv_Kw?I#6JNEBRBe=&jGtIXbMbB3Ud#7 at y^Rw7)PmnS`b*R^23{!F3I
z=kFfxGMJbe;H9~AN)U*cRULX|@!GAcuV%>{SIRbQTc_OO6m9x}weP9U_19lRw!AHC
zDvEzyaiPOY*3{lwrmIiB`_-R(Pj{<JGgqE7@%<T>5VBJ(HS)4&pKR#wzuWJw+iG_9
zR;AN{W^butlQ~;=B+6MG$h$soetnZ#uFu({%H|iA_hwe?Nd9ahEt}12@<A>4jAl1$
z^^aM5=K1KKE(x2~SF%J|_N52Vf{A^TP&j@*>Jz8wXIt4^DVViwhT8RYG0Tz_{gyA@
z{q);`&E;MpA&mtGA2+$)TBf$*LG7E}U3HlWJJKJ2y!_d_&b0Knn3LvQhaHbzeScrQ
zqp`Lv{V#Kk&z=QOU##EBqZ9w@;qxY|ddo?_d8RL{n__jcprFP6MbE^=Q;-}}g2su9
zpZ9;)?Br$HfrlGj8+v{}XXcxK#zJ}Sx1QbXZnMpf9{k((+B at cw?#p96xxe$wtc05%
zXHHJGyeB-ZMKyAo>#Mm<mglTP_t}5xF%NteG40$bpodG+)&)y#UYEZ0{t4mTt)YM1
wC+?|xI#+#<?oaMhbxi%>7y}Vk_P at 7|(Rt~zG1=G}m|z$@UHx3vIVCg!0EXElnE(I)

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..ba57c7f9a8b7ab1996aef6dfe9488a0b8925e6c0
GIT binary patch
literal 453
zcmeAS at N?(olHy`uVBq!ia0vp^@gU5>1SA>tdKQ7G;vjb?hIQv;UIICs1s;*b3=G`D
zAk4 at xYmNj^kiEpy*OmP)J2#`S`Te5>uYh{OJzX3_DsH{KW0-fyK%(v8deKvJ7EZn4
zaB2!?UxHtg1!qCWxxnjwcNqEv_%0~UR;@n4p<__ea`aWc$dd1(!4CG%CeBekBqRs{
z7cW$M|0)R-2 at Oq+@#E++y#FKq<)r+o*z4EVti2wtd4ILvpS|yM<V!9%vdfmlEtz<7
z%0Bz8Yt1E>bRL|sGrUr+$M5#9qmOPUOt8*MHAuUEqV$c<JL?w<n)$3=2v|XAFvp<*
zD6*jWT=$f3N7OWOw(Q)0Z*{qql<vvD^+)_RH=lBU{eM!D-rN;Cu73OX%SEk!;lB)?
z5-DA4U-`YCCoegC&IxEe*bNsP+o3c_L=h<XT=M20=9A~IzR_iSo0c_=?e)jUj4$VS
zm!3<yurS0tHNEgY$n6|+uUtBJKTz?hO`ZEg=a0tE#h=(Vws%0li=THH9$(u!xoQ<l
RIxy53JYD@<);T3K0RSAS!)yQm

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


--
Bryce Harrington
Senior Open Source Developer  -  b.harrington at samsung.com
Open Source Group             -  Samsung Research America



More information about the cairo mailing list