From f8aa6b20e176276a44b2e739603adf637feb783d Mon Sep 17 00:00:00 2001 From: djowel Date: Wed, 22 May 2024 18:39:02 +0800 Subject: [PATCH] Fix: deal with radius < 0 --- lib/impl/skia/canvas.cpp | 6 +----- lib/impl/skia/path.cpp | 6 +----- test/macos_golden/quartz2d/shapes2.png | Bin 14346 -> 14222 bytes test/macos_golden/skia/shapes2.png | Bin 7512 -> 6951 bytes test/main.cpp | 21 ++++++++++++++++----- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/lib/impl/skia/canvas.cpp b/lib/impl/skia/canvas.cpp index c09f5be..df83ea7 100755 --- a/lib/impl/skia/canvas.cpp +++ b/lib/impl/skia/canvas.cpp @@ -314,11 +314,7 @@ namespace cycfi::artist bool ccw ) { - if (radius <= 0) - { - line_to(p); - return; - } + radius = std::max(radius, 0.0f); auto start = start_angle * 180 / pi; auto sweep = (end_angle - start_angle) * 180 / pi; if (sweep < 0) diff --git a/lib/impl/skia/path.cpp b/lib/impl/skia/path.cpp index fca5696..8f47356 100755 --- a/lib/impl/skia/path.cpp +++ b/lib/impl/skia/path.cpp @@ -107,11 +107,7 @@ namespace cycfi::artist float start_angle, float end_angle, bool ccw) { - if (radius <= 0) - { - line_to(p); - return; - } + radius = std::max(radius, 0.0f); auto start = start_angle * 180 / pi; auto sweep = (end_angle - start_angle) * 180 / pi; if (sweep < 0) diff --git a/test/macos_golden/quartz2d/shapes2.png b/test/macos_golden/quartz2d/shapes2.png index 38a84a032e19e39067a43f4874569684dfa8e011..9d303b4db318a6f70d27a5969127a303061ddf26 100644 GIT binary patch literal 14222 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 TasbZ!UEHl3=GRNFIY0h??5BEz literal 14346 zcmeHu`#;nD|NjgjijokaT&SFKreSoIT^-Psa)?HRLXJ6Z%<_)pR96l;>vEM#VI*d3 zwkwBaPDwfBFw95}GYgxIeP8Rk-tX_{ANYK4-}mj-54*9~;rV<#p3nQ^@wh+kuh&v9 zIl%VpKC~MI0_{2X%bCj{5I7M85}Fd<1spLM7@r0H2t{0mod(tPDK7wD%za(Y`Ptip zP5}RlgM?CUgG2+#4_Q3|1UHpIBCgS&;)_Z63?Bny%Hm|JhAX( zVmMZ7qk{1PvJtN(@!Pdysr%15<<35q?~U=uud4_MD7yLbGX0O=u3SFO-xr&g7n^rp zBR1!vM$JzpVVdRb=`L=KXWaHz-#>6h=BHm0f7*C1^eu|37uzSQ=A<_uLYfRN?a$Gx zi==W9*8K}#LrSR@MCyoSKk9~ziio(3noS}|2>eOh_+{mlXaD*Bvyjkxo4-$qh+olE z133?c()a&!K*YvJaF5{POZkZ)SGTsD3;!ID0cHGs!Y0wi7Yz3D-Q%M7&jA~d@veVQ zmm?vbm}BCB`}cf8?-l+xCwpVsJeh!!p`+;h&7Jyzl-X?<+$+fSuaVWfx?{x5iS4#` zE-yge9jZM9UQ_{zCD~@bcXemLt^1@CY%GfW(*wyipaKKTp9#?l)xr1~bW2lQ~TP8Bw#5UWRK4LUd z>x6-kiJYt~tqnA?x(7$GZ7Mh`jd~N~3G!HoN|_D`yKONSJdqkWJU_FQfoqE7I`ru4 z(A}jC#Z8mZp(a^vf%^oDh3?g<)f1|vGGO(i=})vA+qIw@XO^ff5dL_dV!mAh_s-nr zlwaTHbb6_oQI3z2BHFOd%=CeCizU~<%H%;Ygv&{SLE9$Pnh7~g5&lPN;6z0RKH5SL z-h4_bCCL_=AcoYKyLWlxN$@ej#KfUv{YqW$1D3b)*@S-+Etg9JO#+{dLuey4BCj> zHs`Ph*dHYOJA1wbRoxxKZ3P?+o>*vipRbu^1&kLJW_9cbMG&0bTIjY@<>FFWd_z&w z!VC}RM@LQ$=Q~_{6V9`5uPLs#;No>r#i_-R7e)tiO)3<@J{tZz%^dE^>bKPev%U@` z|9{Bd%V3J)wBWt-s9p3oBc9Gh|qC1)8+~jAW;jeYh9sWd z6@pyUV)orvirrdX(d((c_h;t7eub4YMETwB7EVow;h-X95XzFtMvo98PLYGmO6kU- zW@Z`V4;aMoQHt5^B<+}z^~TDiB5@-}K79Mr-DKiu z%;t;-o?QX$k%#M;{NSx=|wUjYSA|^@OHuO-|G^N0>jy z+W(c)l$-bXxHR;glp-%hkf7`?d0iFuB2v5URmn5;rCYAaL=P6$@*rw$-6i1^%j}-@ zUffYM*S5CGlMr)Tudk$~Xz>c!yT9go{szTi#;$LdiUJ(FHbW1@r4g2nMj0$TOnz`# zLPo9DSHxKtlsigvUTM-PwD$9FoUiJ-%Uk^v!K4jOny|3G$rldaAD6yY>|i#TFn?_a zWR!O#6n4=uq}yI2Y25O)_Qukr0X|{s!`f@7w~U?T-KY|#KV3hPCdKv23n3@FmVfe>|MSkz&DnXXA|f855*LM^8$ zN=5JW2QU8itF9pJrZ1I7G^0C&1!9lvVe*0-~ApWawB%tj!#xo zRh8ghV%v3;_0ZA>nz%_lYVe(DcV-2ONprnM>4t5-@F8y;W=f+t@~rI8e2KgIZPFs& zqy=fewo=4d1GK?SntpEN=l9}u)79b_jd614IO-oBFxkX(}5!Ai#y5qUS zE>eR&2_oYff(}o^)rWZY9bUoAU7Ye#07uU|OndIE&HIFVTVmoltz(&0n}5YZzt@0O z5ct)8kP)B0cWRC>(dvWyrBz;=b2l|z>`S7w;yJY8WH+ITzohSYw&F=eQp=OD+4pGn zTUM#!K)pyW)yWf z5ow&C9U;~mv#IP^vg79imlw+}nF)}4#w!Or_2A0lNr|f0Hg2+PN+pX)$?BiicJ!4A zBF~p@pHUtml3zT!+PD$^eL3U6;Hj@}anH|-Qrb7M#7(CM2nmHcVab1G+_Q08Y{tLdk6Qn*Fb?|Ey(r=^J8^o0tOboS^cO*t zU%Kb>lOSFxA|fQpp_=iAeYZ>xg)u1}NIooNUMYQkBJ>(_!O>a~5v$-KF>kBpmer3g)HR*w@-|2#-}q4QLXz#3b?8cEZu=ake> zTFQ+tbaq3{3oFn{vGFA5BIMGorLlT#f1&GYaX!s6*Mab}nVJVihdOpp_r;t+zt(1t zLxyLTqig20FV1xgXhrBw$wyg_87HTs$$5_Vudv!DE{uI|Hxgfn;J(B#K-b znI38IDQrlT%aV950C&B>EWk;SJL%w7^Oq&k2hg|Tv4qrkqf zRnBG&xfgeTTH^-g_>?d=s^#p==f?OYkUT7-JNM?w&84NXB?rOA>Sz#$xb5uE=XrO1U~^3b}iaA6=}A6 zkUOM(692(-ry@^2Ua!ywn6aZH=LQHlM}tL_na+?VCt?vzQ9JHt6b&EC|2d8k3KD&> zQ{K~j|2CX+(2{40|220K>xWj3+w?E*E{2{5d35Sk=m4N5W52=z$oxzp?p{4zbzYCKrdGQGro*xfzZKB)&(#+9 zS0eX@2%8P1{VWzmu2UZ~1SJ^2ts+l35Uk}Z`p47L@**<4GO2!x!D=3x!kfw8!|OTe zix}xcBhSv=p;DKQr51Ky-S~AtN$1jA>PgTX>Kd-$rKOhP9@B#DCc?*5dV*10ud}ix z9;#U}Pvi6-PRF?y$FQp1nZu}v<3Ju&51v?&@)uD`csM#09ET8KG9F#M4^;2yd+w?P zii#hX^8eJhLz+mJ%LTc_cCa}>blkj#joQ0<#?q_7?pDN3p~ zFo!if3@(vg*`Tz4bJY`4PV3OtX7+gWiNFt~b@g4rNBNv8`P_KGF*uOibEQUhsj7XN zMq}#l4N1cwnU|2X=aS4kYU`uCM{b$Unq6yc8DfHPmvOa6>&k&#WIF@*#auyiW0w;` z7pw02)D5QH(N1cr|L`!xqa>XQg+7oS+^4^^&?$*147(X+xoaY4J z>hE;nEUl27l|#1BPnH1?q>5m4p0be8>U18|a(C;EQ1`#yrozi;d%6-nQd5x@p z@E8EZ*{f$?OvHIsV0!pjR`k{ z9#q}a3Us%L5P1zH+dJ3qQTIAXS+RfKyG9Ag^wx&APNt*6Z)zkgUs5liRga9`YG?4o zRMTY1jUB4U)+@&L3!;>YCqib0;h3e(cZ;XVn<1t&Vr=Bm)`VEgg8IRM(t=D!XuVm& zCUpCXGQ?6_Bq6bss3~w-T3!YO9e)RtVgCY-oin4@J(?!WtmR2}p`h`Y*YiGl{=$5+ zSto6?FB2AmG~60A3gfXe+4_8%V}}p9Q4$UPw5BAmDMkU<^&4-HI_SuQ$Li6(d#3s8 z!H}JlVJ+`E0~G@!SuyF}xrHgmP9~njNT)s(2p5m_=@vN!>>=BH~N`6 zdlxxVIl&wwMus;v))wh){LQvifo?b9=_8a@ZI{S-ao*4;KOP)@!Y|0%vY95!eC}zk zK-{_js}>u-NeDLw)?uUy*c!j(blTC?P4R3KG~W|$yp^T@rrgRX$K^MbEYwz(V|y1l zS{#kaD*PLGEnsljV;e6K(Qwaqt4w04Qr2*=Nx6m5;ju=?P9nQk%ljz9Wa-MPxap@O zg2HrIRD=}SzTqt5>{K>xG3zjCz2ZqX0nc-*zc^m(9CTcH=*jub>91D{OAP>4YUO~- zt4FSyTvdPHC&T`{Y=>N)a5mP`@_rvohVtm@VXLIO@I#%Mj{A@iLnfOh(mOxiTpG2KBkpvQPxHotio-1h-dY0J&Mn+mKeGA@*w<FKgCMhLtGy#xqrbs9V5hJ?lb((Y;!i{DfTAffa{=LhXG> zJbLma*!SQn40mw#L->xSzC^^Asf(7(kqyf|MP2WczDpqEvNE7OqG0!5%8<5H55+Ww zXNX-O{xD6pI%XrE;0MB9%E}QK@JU7n;-grB$D_ zNr4^$`zCe9Sy2!ZD;XX6__H4M6Ax1@_aF`Zg%I(>A|4o(7*)Y)MFAwMKKdOq18*a7 zGsA8tdMQ|Hsk*HrzXdl>TgRJ>yOw~1-xP!`y=%O+6`;zg`$Hg!ROKdyNW9Wmh!jVb zkzC&tMz?u#9<7|}Y0rs9_&?j%Z6RxZ%b4a>va6&gpA`A7MD@=pRRNdqVgaeUutGlb zX4>xTE@D@dQH7BDE)J1Ct>Ly~DpPZIR3ij_?NHkN1c}6qk$Qxorq%_}-9s_Dc!DNS zRP5|+K*|l77L$)<6}p{>gR;w(q8?x`colApfHIBg4LI&!IKLKtG6J{nrcVF1gS{!x zX@nUi25PR{2Oxd&8UWK<>)ivHWj6UjMa4m6H7%it(|W;}Z|4tsuweRwbL;dvg>FTX zUoy$6MY9)FgKIVuu*F+|+2sRTFpJ;8zMYujVc-1TLCoWGwRsVV5x%=ZGZv3yJaZ3C ze#r)zAIy+S9K+@ddH6)>1A-6wF@PJ`i>rI@9uTDzv@AOnbf@_SzVsHX-RvIc)7z5s7uywT#P>FteI>}A@Gd%#m2 zQ1L6>?vuXH+-t0#7$qu#v@{FaOdbSYtCj!WNk0al1^eB8Z}=6_^X$)9A45z>UZKG? zpD^D_BdNr|_}xu0d)Cgd&O5Mkx;oc_a;pE*1i>PYSp*Aq_azWQFN@&mr2gI6i~Pfr zCbCH$;E_P7nYV8*>xp_~vGd4}Z(xE%6oa9CCr5hRY@~s^09Gp^Vna(L9g_GKu}!TR zO|=xYRPm9`aQ(7AGxH%lVL-w=@XU(ucd9M~WFxVEt=$k&aW1RkLz)qOF=ClRH`Vp% zOH?ErY`24OJ*WCzFMFk{2C8ZNb67ppvCLzKo+>=HcIsrTSthcCQ2(gnW;ez1@5yWH zfX(gPLTu`uc;7ur6o$O;;b&Ifx@h8U;K*-{^sn>S{ZDlMCquYjo$^V+O6wCo6a{yV zS#ZsU-Q0+K)ZFE+UKhAidjc5o<;l2xV3hVHJrW)fW$B7~TY_lT8L zLbN}>(Tp~6zr#ENVO`+Icg`4*{NB>QgI}6eS;yz-%Z6N(m8wXy;w-}>V_P3o|jt##P2y*^&D^i$k|Ba9{ zgRY%qTS?`>&01sWb}Kv+E;ix%s)JzJ{s${j zyX3HK9e)#s++x=}7_~Egp~U=Lner?hGfF+h@5)zyEWo z#zq1KS-Xbv-0pe&wD=AT5v^ULqfajN#2@51u5bd&fc%q40>rxKpr_H0FPr7Vi}TS0 zTVwZ(TP7|G&&_m;g)ug*hK=-keNZq?$O&P) z>B!yb^v~*K#*ZaWhv=Ba^E&Ro3Ok|CJ<9uJefpyy!3@Z_Hh`M4Au1SZQ%)d1&Y-0J zNQ(4wrftc-4Yk^&El1J^@M} zT35gJgwSfu2em!|B1{3K-pri!;j)ZFwH<{+Vt*D54nrFzcNY+|=AXk8SS+#+b*1vw zQdeE^G^0Oaj?pq49Q?VPF#9#V)EcR~ll@lEgI*#ClqS3KeT?f(%Gh9PS4eX4NL~e5 z1zN{n>3sAxUnu>hjRhSt5Zn%BxBtb4`C=KF%v;NWunLn0^8KEfd6@n^3>J5%tidfn z_rgBb`xNmU8RVPIuB{{$Msr$ zq9He*5H{N+v)5nw4l&v%N7?@Ur4QyERx+F?C#wPbuVG~Q8{-{pX7yNMTrbttj@Y#( zS7P+kcLP&Dv$#49yVoy(&d>p1pOmbpsdnQ%WxCYkvmP787N)Tk9QizYK{+cqbFT~P+XHJa3c81d!DY${k zf3?qvi&Xmg5teC+JLmuG-J=sd=i*Tm*RU&n_z2+T1IelYkj}wgKO;Db=CL$UuU!&9 zw_v&a=0Lv{;^^mPKP0!s-y1jBo8|T?mAo$m-9|lzp1wWV6YsmZ@(gHi>)OU>T}hCY zUBs@sTX(uMRPu#9TOzeuV>xjiUBxT(jo^%Z;wX*2Tu_t$QAhsVXJUdihWf7CnDb%m z&*`~%LBauKKr2x0SBefb8lGVCLQ89=@`;wA$le*Fe&sZ)7Jnm=Rsd7Y79QDG92B!i zn;+~yofKo;0&B?RThvD2qETlm0Q1 z&C}IiI=!FgU7+el#Cf&pa?zY8XBBtR#nRVWq5^dq>C!*Z4}{=ysnbQwu^ge$I76by zXU;ySSngZPiLw6o-{6zIG_kzkj(iUWw#cW-V?6eN1E-ak7u#vJ;kdz)irUdMLyb4# zkRf}fxKIj1P+`lQ(Iyg!qV#=@;~+&F&*tj8wC_iZb3Y+7-n&$xe<-SvdC# zVf3%nyg6glwC>`R)|(ecpX1ChT~X}!B??L*PkCeH{lmAvRu*Ds#(Ca%SE^Y` zpCE|r{Ju7)Soco9QP799ZkIgo+qlB=xAL&(o`)zvA4=*MuW|$FFfKcY<_!izW9aKK zn{RWD9a&{RPRbW@G5n(;JTKHbn$aC{POMvu--EV#r%DOzcgP|?ONxaKIU5~}%P?<# zRBs{8zbw5LW$l+OLQy!@&%5n)X^23tfBYBb@v{&ee_=6;L6_6i=lJ{6?k@ARpprSl z7|ImMm8q08~n!Pv`lkD{m(|93NyP7LA(!;PD zuA!zwIa^pCe(MDDBaIv}6zmy9&BYD|%r3u4)*fV_$O)@2vd{92jGV&O>HvzDu^mt$ zmsc}i!GOO)P%dkrCi}`e`sm6bF;y)Tc&pODO_vFaXmdf@^Y|Qv&D61zYN%o z2y&8f!@owtw}}H-h# z4mmkJsq+~NTAFN7Z}gQZdgs(6-2!PEJKX*ub(uNpPtobW*|ScjrC`T=&*cd=nU}39 z)r`};dpx=oAY;STMWcn?W!Mn{civ&gT>|0zG+XtO-JJ+>N<$;CN~VKZ!nj?v#5ccP zIGIc1wO~a_(n&0afVceOH36QAALQDGS`729U!$Ci;RKXu>Wx7u*p(DS)!i-TX#Y|g zhBu?;7}?u7>h8p3^f{h!*cB)9E-`N(V};L1CLmC^sN5SjU+v!$PGRLACOi$8mGas( zWyp=@M!|*O&x}-m4vz%L&(t%~AuG@%^sOQ5a*67K!55e|2IA^)B+p;HlwOFy@hip9 zheRn^zYfN3X7w|=8c?y6meQ6bPfl0E^o0HAA-j*}KYhFiRKZehwG-PO2T|v|j77t* zp0P9;OOuV=-IQ0++D-R#C~h_INP!f{Sp*2Ei>o9+U39MyG|_wZAM<=qe1nl+{&Kb) zyB|~3Y%PVRzrOgl>^;>=N-hSsqCg26HeQh;l({V0U{Xx5<4RE9*ihubQ_K&Wdewbt z2)XZk=rR~+5U)Vwoa${xFRp(|(l!|D86^g5F&d5JL-1Cc?^_lFO|J-8NC41U1TMTe zg?(e=#@±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 F@NbBf*XRHM literal 7512 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