From 7a5e9010a30e6f92e9105774f8436ad13ee790fd Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Sun, 9 Jul 2017 19:49:10 +0200 Subject: [PATCH] Added another passing ImageBrush test. This tests what I though was a bug in #874 but comparing with WPF, it seems this is correct behavior. --- .../Media/ImageBrushTests.cs | 28 ++++++++++++++++++ .../ImageBrush_Tile_Small_Image.expected.png | Bin 0 -> 1483 bytes .../Media/ImageBrush/github_icon_small.png | Bin 0 -> 928 bytes .../ImageBrush_Tile_Small_Image.expected.png | Bin 0 -> 1483 bytes .../Media/ImageBrush/github_icon_small.png | Bin 0 -> 928 bytes .../ImageBrush_Tile_Small_Image.expected.png | Bin 0 -> 1483 bytes .../Media/ImageBrush/github_icon_small.png | Bin 0 -> 928 bytes 7 files changed, 28 insertions(+) create mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Small_Image.expected.png create mode 100644 tests/TestFiles/Cairo/Media/ImageBrush/github_icon_small.png create mode 100644 tests/TestFiles/Direct2D1/Media/ImageBrush/ImageBrush_Tile_Small_Image.expected.png create mode 100644 tests/TestFiles/Direct2D1/Media/ImageBrush/github_icon_small.png create mode 100644 tests/TestFiles/Skia/Media/ImageBrush/ImageBrush_Tile_Small_Image.expected.png create mode 100644 tests/TestFiles/Skia/Media/ImageBrush/github_icon_small.png diff --git a/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs b/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs index 5f0b1f50e6..f4e44a81f0 100644 --- a/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs +++ b/tests/Avalonia.RenderTests/Media/ImageBrushTests.cs @@ -28,6 +28,11 @@ namespace Avalonia.Direct2D1.RenderTests.Media get { return System.IO.Path.Combine(OutputPath, "github_icon.png"); } } + private string SmallBitmapPath + { + get { return System.IO.Path.Combine(OutputPath, "github_icon_small.png"); } + } + [Fact] public void ImageBrush_Tile_Fill() { @@ -76,6 +81,29 @@ namespace Avalonia.Direct2D1.RenderTests.Media CompareImages(); } + [Fact] + public void ImageBrush_Tile_Small_Image() + { + Decorator target = new Decorator + { + Width = 200, + Height = 200, + Child = new Rectangle + { + Margin = new Thickness(8), + Fill = new ImageBrush + { + Stretch = Stretch.None, + TileMode = TileMode.Tile, + Source = new Bitmap(SmallBitmapPath), + } + } + }; + + RenderToFile(target); + CompareImages(); + } + [Fact] public void ImageBrush_NoStretch_NoTile_Alignment_TopLeft() { diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Small_Image.expected.png b/tests/TestFiles/Cairo/Media/ImageBrush/ImageBrush_Tile_Small_Image.expected.png new file mode 100644 index 0000000000000000000000000000000000000000..669da6ca1a2d08955074eabcfd7e66c09f297091 GIT binary patch literal 1483 zcmbtU`!^E`9G{C6Ejp=03+djtd7MJZ`!S&|ip={JHne%xfzUO?u=lj#A=(>*wP+eCY0002JJi&en zAN;}n`xM$5)K;f3r8GYeS3n!%BwrC!U@qP+000rIu@kMT$Olq9gVO+jLw!G}G?4r} z764F<@&dcu%!*i@9WMa|g4EV=mNsPTQb_xm(9$bz;DdZ&A@et~*DRah=;^EyNw6q3 z-dZTx(tI%HzV5E2A_~^RCnr8cT=dd2Wx<;?bz5DQF9L7+A^bX#+$^3@1g)SJS=YXD zT--p%(O^(>Wf&I;W7Oh4DE|35{E2ZZZ+IECHamwnVz)`P7rk%X%aTZXDV0#0g&~|Y z=7>H=Qc`PoO3qqdUJj}8?h{+pt5$Sspn!%PTupF5Wa$KC}PmT^Z zQSR^s3upZ+3Qfw6d4n8vF&QbNP4y+$8viD6bH$7JG3xb2x`>Pn7VL(H*+x5&zyqZC z*MSBmhXVTVaG5xI)iMPIjSdWcU!)TgK~Gsl!hHAst?NY!`9(zWz2*#BRh%kQ7xejI zz8a5bTbuH`b!Y%xJUEP_*H02$480SA_KP%3NNr8;21%0k8wO@WF*FSa<_>shvDF{wmkl|V1&4K(NT4c*6jAuD?6)93Ag! z+@bTeAgF()sUxKIGxa<;zxJQ$px)SFw?WtO(C%V+%Zyp`@}`6$JAmI<)lPU|#|M&U zHUhhr>W_rxR0wlc-U{qe(mlqDk`L;A%`$J!W*7j;$kZ_X74L2O`OBT_6Wf61^Wf{Oq!wEF!W)zWNaW;i0Mu~X$7BmjISoM;oSKE#GPcF5+rew5 z7qar=5UshkbhK7jthG1Vs>PHn_e^~{Oq!#49JWD?tz~m@Z$mM15o_0y>_Y->7NFL@U+LFt+AGlYyaTq@&5Pmr=v z+Maz7M%{Kqv9h}$&xzh*T$nCBx1zjN+7|XooTQkh%204^ci2QGgz@+!90N5jJN7Mk z2chMfcZS|V&Rijzd|#60?-54}?>>LjJx!~)wFZ7P{nT?TIyc`iEIdDs>;09K{7HlG?pA0ES<{D!NzPZj(&G~@i;e4{AQ=BuX26EN=7P! zjacmU)8J?y#Q3-Qf;pSrb@R3-%}uYDG|rct9Z8ZV)(zM+QF_KBAq5_GU)dlL`&Q)1 z5p2={x+u|;D3LH+M_@jmux8^#vrnC{u`N=OFI*RHlOW|vh|%}*YVgiio;pE$W=?!j znu>X-(HIWt`e2Z+Qt2zV?L8{*YDV5{yu9WsfZ81$i2rXC)Rre6{G*)#UhY2N JHrJ@T{{zDJ###UX literal 0 HcmV?d00001 diff --git a/tests/TestFiles/Cairo/Media/ImageBrush/github_icon_small.png b/tests/TestFiles/Cairo/Media/ImageBrush/github_icon_small.png new file mode 100644 index 0000000000000000000000000000000000000000..5799bdfdce9e4bd1a897b946186a043369d5a1e0 GIT binary patch literal 928 zcmV;R17G}!P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^MlX|MGF00R(7L_t(oN6l8hYZO5gp2A;&Ca}eyKG0H5>*axsg`+LB{;NgnD*kH@Z*(cv$-FK^5DMu zP!E!RMh*ceZ5l$VSJs^GQOZLYMw23lU!rBh;4)gO2a1?0>7ykN+iY`MMlM>JbuDUc98u;X2)h$t+7Y-P-KNY%u;!^-n05r=tH+eN5K8q3 z(~cly@`5xMK)4ytG3^LK#t$iT5rnJw0Mm{Dt0K)sQ0Kz51Jq^mnKBkisXk%)f8YP2 zm?jsU_%0>>4?^ADVU6w_DQ462~(T)7O-gCZx93{xp`(tVu$s-VM_Y%hG4*7G9 zZr@=8S~I;OP(M&&RjIC++CYZ|P=!)$wN7FjGm9-FN;%j*9g7k>+YV3Ly3+-n%lMlu zOtrcW#*s%)lY%?jLxX9D|EysP_zrxb~s<_1ia!#WzA|^2@!_# zd?sFi!dhyKd6<;z^buArm-muE+sJi~FavdFTcueO8$w0OQ&bn+427Fa;Ix~=WV3k) z8p$Hmz%!_U6*$LLl7U(V&r|M2i_k3(V)#x5V}Ai{Q!>aK4CsRZ0000xfzUO?u=lj#A=(>*wP+eCY0002JJi&en zAN;}n`xM$5)K;f3r8GYeS3n!%BwrC!U@qP+000rIu@kMT$Olq9gVO+jLw!G}G?4r} z764F<@&dcu%!*i@9WMa|g4EV=mNsPTQb_xm(9$bz;DdZ&A@et~*DRah=;^EyNw6q3 z-dZTx(tI%HzV5E2A_~^RCnr8cT=dd2Wx<;?bz5DQF9L7+A^bX#+$^3@1g)SJS=YXD zT--p%(O^(>Wf&I;W7Oh4DE|35{E2ZZZ+IECHamwnVz)`P7rk%X%aTZXDV0#0g&~|Y z=7>H=Qc`PoO3qqdUJj}8?h{+pt5$Sspn!%PTupF5Wa$KC}PmT^Z zQSR^s3upZ+3Qfw6d4n8vF&QbNP4y+$8viD6bH$7JG3xb2x`>Pn7VL(H*+x5&zyqZC z*MSBmhXVTVaG5xI)iMPIjSdWcU!)TgK~Gsl!hHAst?NY!`9(zWz2*#BRh%kQ7xejI zz8a5bTbuH`b!Y%xJUEP_*H02$480SA_KP%3NNr8;21%0k8wO@WF*FSa<_>shvDF{wmkl|V1&4K(NT4c*6jAuD?6)93Ag! z+@bTeAgF()sUxKIGxa<;zxJQ$px)SFw?WtO(C%V+%Zyp`@}`6$JAmI<)lPU|#|M&U zHUhhr>W_rxR0wlc-U{qe(mlqDk`L;A%`$J!W*7j;$kZ_X74L2O`OBT_6Wf61^Wf{Oq!wEF!W)zWNaW;i0Mu~X$7BmjISoM;oSKE#GPcF5+rew5 z7qar=5UshkbhK7jthG1Vs>PHn_e^~{Oq!#49JWD?tz~m@Z$mM15o_0y>_Y->7NFL@U+LFt+AGlYyaTq@&5Pmr=v z+Maz7M%{Kqv9h}$&xzh*T$nCBx1zjN+7|XooTQkh%204^ci2QGgz@+!90N5jJN7Mk z2chMfcZS|V&Rijzd|#60?-54}?>>LjJx!~)wFZ7P{nT?TIyc`iEIdDs>;09K{7HlG?pA0ES<{D!NzPZj(&G~@i;e4{AQ=BuX26EN=7P! zjacmU)8J?y#Q3-Qf;pSrb@R3-%}uYDG|rct9Z8ZV)(zM+QF_KBAq5_GU)dlL`&Q)1 z5p2={x+u|;D3LH+M_@jmux8^#vrnC{u`N=OFI*RHlOW|vh|%}*YVgiio;pE$W=?!j znu>X-(HIWt`e2Z+Qt2zV?L8{*YDV5{yu9WsfZ81$i2rXC)Rre6{G*)#UhY2N JHrJ@T{{zDJ###UX literal 0 HcmV?d00001 diff --git a/tests/TestFiles/Direct2D1/Media/ImageBrush/github_icon_small.png b/tests/TestFiles/Direct2D1/Media/ImageBrush/github_icon_small.png new file mode 100644 index 0000000000000000000000000000000000000000..5799bdfdce9e4bd1a897b946186a043369d5a1e0 GIT binary patch literal 928 zcmV;R17G}!P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^MlX|MGF00R(7L_t(oN6l8hYZO5gp2A;&Ca}eyKG0H5>*axsg`+LB{;NgnD*kH@Z*(cv$-FK^5DMu zP!E!RMh*ceZ5l$VSJs^GQOZLYMw23lU!rBh;4)gO2a1?0>7ykN+iY`MMlM>JbuDUc98u;X2)h$t+7Y-P-KNY%u;!^-n05r=tH+eN5K8q3 z(~cly@`5xMK)4ytG3^LK#t$iT5rnJw0Mm{Dt0K)sQ0Kz51Jq^mnKBkisXk%)f8YP2 zm?jsU_%0>>4?^ADVU6w_DQ462~(T)7O-gCZx93{xp`(tVu$s-VM_Y%hG4*7G9 zZr@=8S~I;OP(M&&RjIC++CYZ|P=!)$wN7FjGm9-FN;%j*9g7k>+YV3Ly3+-n%lMlu zOtrcW#*s%)lY%?jLxX9D|EysP_zrxb~s<_1ia!#WzA|^2@!_# zd?sFi!dhyKd6<;z^buArm-muE+sJi~FavdFTcueO8$w0OQ&bn+427Fa;Ix~=WV3k) z8p$Hmz%!_U6*$LLl7U(V&r|M2i_k3(V)#x5V}Ai{Q!>aK4CsRZ0000xfzUO?u=lj#A=(>*wP+eCY0002JJi&en zAN;}n`xM$5)K;f3r8GYeS3n!%BwrC!U@qP+000rIu@kMT$Olq9gVO+jLw!G}G?4r} z764F<@&dcu%!*i@9WMa|g4EV=mNsPTQb_xm(9$bz;DdZ&A@et~*DRah=;^EyNw6q3 z-dZTx(tI%HzV5E2A_~^RCnr8cT=dd2Wx<;?bz5DQF9L7+A^bX#+$^3@1g)SJS=YXD zT--p%(O^(>Wf&I;W7Oh4DE|35{E2ZZZ+IECHamwnVz)`P7rk%X%aTZXDV0#0g&~|Y z=7>H=Qc`PoO3qqdUJj}8?h{+pt5$Sspn!%PTupF5Wa$KC}PmT^Z zQSR^s3upZ+3Qfw6d4n8vF&QbNP4y+$8viD6bH$7JG3xb2x`>Pn7VL(H*+x5&zyqZC z*MSBmhXVTVaG5xI)iMPIjSdWcU!)TgK~Gsl!hHAst?NY!`9(zWz2*#BRh%kQ7xejI zz8a5bTbuH`b!Y%xJUEP_*H02$480SA_KP%3NNr8;21%0k8wO@WF*FSa<_>shvDF{wmkl|V1&4K(NT4c*6jAuD?6)93Ag! z+@bTeAgF()sUxKIGxa<;zxJQ$px)SFw?WtO(C%V+%Zyp`@}`6$JAmI<)lPU|#|M&U zHUhhr>W_rxR0wlc-U{qe(mlqDk`L;A%`$J!W*7j;$kZ_X74L2O`OBT_6Wf61^Wf{Oq!wEF!W)zWNaW;i0Mu~X$7BmjISoM;oSKE#GPcF5+rew5 z7qar=5UshkbhK7jthG1Vs>PHn_e^~{Oq!#49JWD?tz~m@Z$mM15o_0y>_Y->7NFL@U+LFt+AGlYyaTq@&5Pmr=v z+Maz7M%{Kqv9h}$&xzh*T$nCBx1zjN+7|XooTQkh%204^ci2QGgz@+!90N5jJN7Mk z2chMfcZS|V&Rijzd|#60?-54}?>>LjJx!~)wFZ7P{nT?TIyc`iEIdDs>;09K{7HlG?pA0ES<{D!NzPZj(&G~@i;e4{AQ=BuX26EN=7P! zjacmU)8J?y#Q3-Qf;pSrb@R3-%}uYDG|rct9Z8ZV)(zM+QF_KBAq5_GU)dlL`&Q)1 z5p2={x+u|;D3LH+M_@jmux8^#vrnC{u`N=OFI*RHlOW|vh|%}*YVgiio;pE$W=?!j znu>X-(HIWt`e2Z+Qt2zV?L8{*YDV5{yu9WsfZ81$i2rXC)Rre6{G*)#UhY2N JHrJ@T{{zDJ###UX literal 0 HcmV?d00001 diff --git a/tests/TestFiles/Skia/Media/ImageBrush/github_icon_small.png b/tests/TestFiles/Skia/Media/ImageBrush/github_icon_small.png new file mode 100644 index 0000000000000000000000000000000000000000..5799bdfdce9e4bd1a897b946186a043369d5a1e0 GIT binary patch literal 928 zcmV;R17G}!P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D02y>eSaefwW^{L9 za%BK;VQFr3E^cLXAT%y8E-^MlX|MGF00R(7L_t(oN6l8hYZO5gp2A;&Ca}eyKG0H5>*axsg`+LB{;NgnD*kH@Z*(cv$-FK^5DMu zP!E!RMh*ceZ5l$VSJs^GQOZLYMw23lU!rBh;4)gO2a1?0>7ykN+iY`MMlM>JbuDUc98u;X2)h$t+7Y-P-KNY%u;!^-n05r=tH+eN5K8q3 z(~cly@`5xMK)4ytG3^LK#t$iT5rnJw0Mm{Dt0K)sQ0Kz51Jq^mnKBkisXk%)f8YP2 zm?jsU_%0>>4?^ADVU6w_DQ462~(T)7O-gCZx93{xp`(tVu$s-VM_Y%hG4*7G9 zZr@=8S~I;OP(M&&RjIC++CYZ|P=!)$wN7FjGm9-FN;%j*9g7k>+YV3Ly3+-n%lMlu zOtrcW#*s%)lY%?jLxX9D|EysP_zrxb~s<_1ia!#WzA|^2@!_# zd?sFi!dhyKd6<;z^buArm-muE+sJi~FavdFTcueO8$w0OQ&bn+427Fa;Ix~=WV3k) z8p$Hmz%!_U6*$LLl7U(V&r|M2i_k3(V)#x5V}Ai{Q!>aK4CsRZ0000