From 3b1366b04ffad44cf2138dab3dd5689c900e36c9 Mon Sep 17 00:00:00 2001 From: Karl Smeltzer Date: Sun, 5 Feb 2023 02:58:48 -0800 Subject: [PATCH 01/13] [godot] update parse_property signature (#2236) --- spine-godot/spine_godot/SpineEditorPlugin.cpp | 2 +- spine-godot/spine_godot/SpineEditorPlugin.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/spine-godot/spine_godot/SpineEditorPlugin.cpp b/spine-godot/spine_godot/SpineEditorPlugin.cpp index 1c6e8e09c..a631ecad0 100644 --- a/spine-godot/spine_godot/SpineEditorPlugin.cpp +++ b/spine-godot/spine_godot/SpineEditorPlugin.cpp @@ -115,7 +115,7 @@ bool SpineSkeletonDataResourceInspectorPlugin::can_handle(Object *object) { } #if VERSION_MAJOR > 3 -bool SpineSkeletonDataResourceInspectorPlugin::parse_property(Object *object, const Variant::Type type, const String &path, const PropertyHint hint, const String &hint_text, const uint32_t usage, const bool wide) { +bool SpineSkeletonDataResourceInspectorPlugin::parse_property(Object *object, const Variant::Type type, const String &path, const PropertyHint hint, const String &hint_text, const BitField usage, const bool wide) { #else bool SpineSkeletonDataResourceInspectorPlugin::parse_property(Object *object, Variant::Type type, const String &path, PropertyHint hint, const String &hint_text, int usage) { diff --git a/spine-godot/spine_godot/SpineEditorPlugin.h b/spine-godot/spine_godot/SpineEditorPlugin.h index 38aab3a4f..4660c7ac5 100644 --- a/spine-godot/spine_godot/SpineEditorPlugin.h +++ b/spine-godot/spine_godot/SpineEditorPlugin.h @@ -165,7 +165,7 @@ class SpineSkeletonDataResourceInspectorPlugin : public EditorInspectorPlugin { public: bool can_handle(Object *object) override; #if VERSION_MAJOR > 3 - bool parse_property(Object *object, Variant::Type type, const String &path, PropertyHint hint, const String &hint_text, uint32_t usage, bool wide) override; + bool parse_property(Object *object, Variant::Type type, const String &path, PropertyHint hint, const String &hint_text, const BitField usage, bool wide) override; #else bool parse_property(Object *object, Variant::Type type, const String &path, PropertyHint hint, const String &hint_text, int usage) override; #endif From 0f595e7fbeeee44a30be7831f121d2cd6b5fbfd6 Mon Sep 17 00:00:00 2001 From: badlogic Date: Tue, 7 Feb 2023 10:34:33 +0100 Subject: [PATCH 02/13] [ue4] Add setup scripts. --- spine-ue4/README.md | 2 +- spine-ue4/setup.bat | 9 +++++++++ spine-ue4/setup.sh | 3 +++ 3 files changed, 13 insertions(+), 1 deletion(-) create mode 100644 spine-ue4/setup.bat create mode 100644 spine-ue4/setup.sh diff --git a/spine-ue4/README.md b/spine-ue4/README.md index 31b7b5841..387442d7d 100644 --- a/spine-ue4/README.md +++ b/spine-ue4/README.md @@ -36,5 +36,5 @@ See the [Spine Runtimes documentation](http://esotericsoftware.com/spine-documen The Spine UE4 example works on all platforms supported by Unreal Engine. The samples require Unreal Engine 4.25+. -1. Copy the `spine-cpp` folder from this repositories root directory to your `Plugins/SpinePlugin/Sources/SpinePlugin/Public/` directory. +1. Copy the `spine-cpp` folder from this repositories root directory to your `Plugins/SpinePlugin/Sources/SpinePlugin/Public/` directory. You can run the `setup.bat` or `setup.sh` scripts to accomplish this. 2. Open the SpineUE4.uproject file with Unreal Editor diff --git a/spine-ue4/setup.bat b/spine-ue4/setup.bat new file mode 100644 index 000000000..684bec20a --- /dev/null +++ b/spine-ue4/setup.bat @@ -0,0 +1,9 @@ +@echo off +rmdir Plugins\SpinePlugin\Source\SpinePlugin\Public\spine-cpp /s /q +xcopy /E /I ..\spine-cpp\spine-cpp Plugins\SpinePlugin\Source\SpinePlugin\Public\spine-cpp || goto error +goto done + +:error +@echo Couldn^'t setup spine-ue4 + +:done \ No newline at end of file diff --git a/spine-ue4/setup.sh b/spine-ue4/setup.sh new file mode 100644 index 000000000..2e11b8580 --- /dev/null +++ b/spine-ue4/setup.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rm -rf Plugins/SpinePlugin/Source/SpinePlugin/Public/spine-cpp +cp -r ../spine-cpp/spine-cpp Plugins/SpinePlugin/Source/SpinePlugin/Public/spine-cpp \ No newline at end of file From 39d544ce86b00cc02d9506397c5cdd4e9cbeec55 Mon Sep 17 00:00:00 2001 From: badlogic Date: Tue, 7 Feb 2023 15:26:10 +0100 Subject: [PATCH 03/13] [ue4] Closes #2234, add SpineWidget::GetBonePosition in the skeleton coordinate system. --- .../Blueprints/UmgRaptor.uasset | Bin 32903 -> 46846 bytes .../SpinePlugin/Private/SpineWidget.cpp | 19 ++++++++++++++++++ .../Source/SpinePlugin/Public/SpineWidget.h | 3 +++ 3 files changed, 22 insertions(+) diff --git a/spine-ue4/Content/GettingStarted/Blueprints/UmgRaptor.uasset b/spine-ue4/Content/GettingStarted/Blueprints/UmgRaptor.uasset index eff46de644ae3a06b03dd904c86c8394e0bf7b17..5e8049afff31e154904c6fde9c316b140ce5d2ab 100644 GIT binary patch literal 46846 zcmeHQ349bq)~`{#0wTKLi7-Jq1wujy0YS-~KnRfpPz1sx(@91qGhvQESVX+<^?=n~ z*8}msLGeJ;Rd+qt8?R4YU0rWK&-E7Nd;h9>-90lsNr!9q_pKF@?tb;^y?U?Sd-bZi z>3-ox_Uz58C;yz6 zL9ioZo1R@>yr$@_-WRNhdJo=jAi+LuUi0opg)6`A{#y3xf(@l3hY;+!fDpUTu__!g z=+I5vNq<**gvg|0ZeCtteo? zGg)39ckt&p8FVQ1@Gb@8zcdV+A^$J}WR>|^jI1&v77K)$YGS@f%a{(0~xXPqctL?D|^?r&JE3#@D zB7xRemWf_Q-Dwsdy}q=#x2?J;95H50t3S?Yh>7njMjWx1t*#{06re#qZPKX~``ExW zL0`;3JCW;K@>@HxnpVQE4#ugOcwu($wjQ=tGp3e_yt!X_?UV>s;t!Cj#Le?6-owZh z_}hG;2E$(+2o(pStwCSAShnBiyLCrZFgPpVZzBDQzYOeiu>^%0n!}M|U(6?dXdbn= zCt>+QffipZ5Drz*@QAz_)8_+P5Q+HOt0Uo7BNA&D6>I((fD0AGg1)HO<&?`7Lh5>A z5MESFMuX;J^Orq8=>u?4xTVDi#R}u~^+ALB6*Bx{;mCoN`=(UR3`7HjBaS+B!UU+L zzGQK$FXT7;6`^7y8fXd`5%K%S>ZTopx^iDsjZj5PYtR4(lG;axAg1R29E9fTE27o$ zh*263HHcULI_*^1tkP)mHMCb5hQBsUwM|CN0wXxxXpD;UZkcm9WVHr79`K82cRO$f z%)x}#v`1q`%S)HsT9K8^e*7+Hg&b`p{H2-H62_p_x8%MX}+vo$ncB zZ$lmqHJGguurC`sCYvIc#i7QC6|e;+VBY@O9+yMxB44P@7p?Y%jG)-P+r$HVCBkZg z;h0!c)aL-Gzlfx03P;+-cgt2jq7W6JCLBT35xw{B_Y4fVi0n8jVv81Eusg1l!HOpj zxbF%?c9J?8i^R#n7lkjsRAG=V$&r>kH} zI?`17>S<6`ecyI721)~^`7inX`-PxY9FNG@A~ybGQx+6i;#X0%TX@}E^g>_PG&CD6 zzPc$n;+}{8uqWag!kpnR4mZT%=@p^Iu-H)7>nGI)RVoBm`(n-FnSv{pqgy2*A4L;C z%`GuQJT$QC@9-}jlkfHvzYqT^fvmQm85PEfJu(k;su@4NJmB|}TfMTb>0z^N0+Z7w zz5XwncokK9&G_-fMw<}~x1#scLcw-1wsGT!ebb-@qO#*+?M=VDh%j9eibdM1!-#FS z9o_v9C0o43^xmUhxoi?tUeZR?y-K6+|Iq(7*%mMbntP3BE~11)qmXAr44Nv$b*taL z3Asm!G7Yl+)!Cd{#Qrg4kP-hBtcK^uc%Urh9Fzw9YQsZv~- z(*Jbbn?J+25TRs0BVVmQ6XU}GOVn#-Z|VaLlo>RYkX87VXZJ~1_|XwQT30_7zoT)>?Fk}WlQ1}A?5dCpF>t{ zLb8eBd~u(3eN+QWo@+MdO@^8(LNaEG0}H>r8be+YRg<7}y|>=pZ!&y-N)8OTjw7^` z|GSH?ehLkAog8ivJ$3d$2n2RuoxPt2j+~pje=@?5BwlrKBQ} z7rAgH^f$$5Ulfk`qoQa;)jHWbhj@4Q%OgkI>Jq}--TsP|sH^lvV~HLg6+Qax^c)Pj z($^l2$7Iejf7I+tXd%OsVd|XzciaWVDNwbK{39loeRTW;%pD47+0wGR)*lI>ry4Pz z?9IE&*R6npriT6Tph3wqg}OFFMx@pOXZs{COPx>ebDID!Fg8v3q_1|L3>h${JPXY~ zwC-Qv1DG_j=Wp(I69cNl(WAv9$DXm14RDNzlzwW!YtSSr*8lRSAe0~%9AEGJ$evI_ zSY@onl#4gxQYWy+luteI4;@T7-z#|ij*nrH(;6F*o{Niiy7f|t7LT>kQ1ArNqvgV> zK&$pOEbuiMB3gDvAIxm}x-#703kH^$$z`Y`cSEUopH|k+LI1Xah_}UEr%z&{-=~gU#{C|s0`0Q}FrJyAoCo8Pm_uMC- z4mC51%^S{MgpQ~Tn8ZMKGNsQcXJDYClzCh2^-Av(oSS#;ZUgX@1LE`cey$tVHm1 zS_4y}|K`Lem%_MfDTA*Kw2C`F-t7TI@mh*3Kh|A*C&riJb;E)ZOxB|MxQ9jn6a%P& z)-a33v1=z>C40#Ev*>lA?=R>_lHK+T{5~J^mj&jTZQSN}-s1*xs;nkIi;4peSv?xe zXx{WH(-fbMKD`&1SySoG>j%96?VAwF93R_%`9|5$N*MS2&=-6)5tgZL-yCQQ)h?fU41Q|AI_z6+d&PH^6#{!Dj))9M1}x1Hd; zO}q|wfn&J9Y3u~&E#mb@7dY2+g7YTP8SDaQhzp!sUEtjA0_ToSaQ;qxUYiDo$ND?M z$?62>Tf#Z56P#}dXQm6B3tix>>ICOY;x)nrPBI?9oa z(-Sn@eqcIII6J$b!|ghv!+q=s2lF6GM>v?6P&&fFw1LtQ4gxDmGS2x5ED&3c)8`%G zT-ON>#^RJtaQ;C!Gm>yv&WkntUBWp%4bC5IIA8@yT$v~r}H?pObfA8AaTk~ns#`voE5PRz&Bs`_ zefVH50iOkWa{B1x?ZXGd0zPYz{8OntLml1zb<*3)wh_M}X*YfPL!Yv1d=avuK z!7bW5wDAG86E#V& zSdHZ(m04G+BmSZf`0c1T$%Fiq+h9IDQ(wT|ey7iWSffu|9y;TL`P7Ne>6{#F1s}v{ zd&$uk$W@Qk=Y4n)VMpxX+)19#YKYT(>WsV?PaTS)VUbTjc8K6Mmsr)OA)^hUC2_ z$YkzliCYh$r(Ot>gq5`O1U;E;Xcz2WYIR>g^#FVlX+m>J^u#^{1H9TtTb%SP2j6EV zkkmeQ5KAM*!Z_VvYnM7Ih{wWmKoU0><@lI)%hGN>LaS=4R}LO;dKLyke!7hvm6{wS zIh(t1@;L-pLSc37G1Vn?RdmDN7nC+_;^5wc+J#5QF$3^Eq`zgQXMLZv51{Ll_P7&CH)xv4o= z4pjOf`S3H zD%JBi@=g;f;li>Xr9mH!Av`rZcU*4%=)8PcNB8^ao`bwu438@H1*3+{?MefMa^t?| zTkunl{3)d2!&yXME2xL4^4b3StV|py!nA)gnf?}u7SSde#X=F4(731)^#rdM%><27 ziypewQFPTxc!0(Uw^778t=&nt-P%6vs_D!W4Z2sU5Z1%C;x&zQ5F&0Kie^fK7NlE> zTs<|Uk~9;O?c$Cu*r_MVzf3H2aG{fAX7l;hn>J@U{@qjZt3o^@r7LU-LF)zUl^L0Pk{ zHd$woowbryU}XylV|R@;lyrn%G}6<99-3!VTZ_|{Nz8OW+mKRQwCynNh2rWV=eIa> zU8NW;`v^KtBR1b0Wsmk&k8QLw#Zpm5-WVpmLw3l@RvYtE?I2A>wx(r>nw?0}rwV$zm?W1Y;N{h$V%EA3% zJ1Zw`Lfan7K$H}zH5`vSmSKQypC`tNY>_L*h#WCihf8Ekw_=AK#&NFW{_m&zZ}lCL97o>ON`97Qixl(aXtonRQ`}lf*n6#B*Am|) zBv&KNV~q(O-VqLu0r$)9R~)}Ao3hJi@$*oQs;qx&rDChHdW^``BK2v-XXo19x(^*o zlBKbRiW=HU&Y@Atw*8DCJ9L5;IYJ8^pqS}6f^V%hxIJ_bk~s=;3@bxShO2zivN7ke zoS`)^gEAWAKAALYshKoWU&Ds!sbiXbU`+;LAj8CQG1autk7^UABl5dUno;T{9N1YD z(M!nwk&$K+F%Hxi3Xj(B9zHur*KBPsdEQalEY@0RrqPblNLn!@U438O57w@;_3}K6j4e^y zoUd=K9Nc~~S!*Hn9hQv#r-S#~#`*)_8adL)=CH2t%Q0sCrmOGoN`LGHjdb4{nWaZ~ zUA5yG5!{un$HN|Ap0Lp zV=z{ZN10q16w$0RR*p+HjY|oQOfLNZ17m}gK_1nX(y^3y4R*zk<4hGry-do78p-S6 z-B>#!4i0feg;&^#HaJwb!#Xoz*9Ih#)Moiul$d);(hn|6O(`PHrB5Ot_;t?Zt%dW>uNFJv>1mtek+K=T@ zwb%to#IWyu@JJ_OV8^3l-E&4$Lo#4L3t5DHXTu|N!_LQ$R|ScC1IV4QQ^q;2lEg!s z!)|nJ#mH>(t0MBWG2~%6GDhZ;7nadaE_vWsf)vwVz{W|uV#0?XkCQbXT6wtP$7?jp z!Y5NqL4?mr(n*dhdYnVeq`l*ES}pRr(L+6R)1SmOl(J826{XftfMV~0e@2k}N6=Lk z#ikq^G~F5sGYEb12#6N*u3RZF_DWik@zI!O^HzuW}lbdN9@%6<$Lp z+on@4n6D|acWr4L<*W|7c|~Lm@b-GLP{fUT%ImO(vohZSl(8`;cACbyl8dvo)cs`a zQ@{_g>&~87K|L|(2YGKP<*3+g#|(<~poeV7&3JI^fIK0&LXA>{0w=Xg@1cEBH*|Ph z?R2m^rS7VD!~|DVcu&Jl#fqg9UD05P>~@|Q4Ucd|$Eh#Y9_Ep*Xz)x`NZ6CQ)S`&6 z3%b;zn6SYIKOIK`?iK73d^&HzI&F~qWi7O_Rv9(c?(Ndrz`b)i>_ZLY_4Sl+)(A2 z51A#h%`%GQYK?%HK87@p3>E8y@p3;pmmpX>lo56*!3yPkh=^S7iXX2{?RV+2hzew| zW<%Wh%1V)m=SUAdrRqku)LAWudYnzNjHX{}R>KZ`F8z+DUp1?x?joj})h6qnY;D|T zKSmsZW#Im!6;n8F*=sXx^;2BwgZ)F@O-7mbBn7jsRut5)p&srs>N{3uO}du8>LSA~nE zX9fvxx+}h{RkglCpD|O{xN6Hhr_xM@xy(ZmPMWvsar!NyP|Kn6dC&c_i9nSZg2 zXk)29hic0xD&YRy82Txt>ujn;PJN6kek?0y5bW?Kt`ujxqQUmak)GF`*1mL%=p5^c z7O$OnomV8+9N6zyqk$c!CW1w2hVqCxu4uAOOG#JQI~q^F`E)*pVl3v85~*oG#*+pM z2?j0WUS~03K%03|w;nOq6+d1(DH&J-r~c1#MUQvbn3CPg>okQ_FXGsOJ1+3I`Ca1W z)LWmXp!^npdB%79+`w>6!9KTQEvTL=Y8F$euMINp!q*Nb-DAbMi29z|A3OnKZ)-g* zkzA80hDsi|qhwhR_G9XGfA-c#=RFy=AFQ$YUN~|McpP>nOUY8o=o)v;;iaY0Phn%& z1w+OH>_Xzv;EG>rR*<-=#r;C8YR3`n)U|GI0yJG#fL(a}bSydFo9fy)AouK?Htz^v zZnb;2ha!<`Z~g76on>kYiFUSxMjx4WD8y3|$;uW48^Qi{ zk&M{b=f*Ymy0Mo%T1Iq4BV|E&0t0r1Xp}E8JaWeET(_LVSp80vE8wcv9Cy?RB~my} zQ%H?Fyc<{{XB6xRdgzHFHI^M)8`oOB<~z4o0b_N8wX{d>Y^1u^N=mGGU4_0CfWBS?T ziwt8PIVKORNfnPAEk$B4k+E?-^TRGK!2s`Sj)~DM1d!1N35)IG(QU zIV@ zz)zhkJ~8@V8F7m4i08n7ei(zXk2h--&qP|>l69hFVW^rfoLi{60W?m~ooa!#g;NjE zyF49jov3l0nwfwLO{Ger=%_jiSB--+T~%k{vR3T+EZMa%;$RJP1iPrws2kZJ(6 zw7gvPIC)-!4lzm{d&ibXLA$SYN4p~0;ghvl|=^3U* z&$1__cjcGL;_a3-*0dvwL%wN8*ppCWoNwApS93f(TflwevB|f^Jm%1q94}Ez`8NAw z4t9%R4o+i(T|DkxXPTRv;+NQyQLWi$ocuE19I+kimsanbXDz#qI?~&gd(HOe@bB?U zJS)gn!W$=r=sS1ckm-atBzB^`|p@YvqB&G@*@ zWx?6<4W|*ZTXDyhZH;4RR-EXa+n)oZOdW4PEze^Q?aGKJ$^m-pi`#A%OXb0yyghkX z-pykU>DU9UJlQFpVYhfoZ9(mIC&vRo**`4aUEOV&E2E5xR@gf~UjC|gzS!Sa()k-s z@K%=2UtNLspmgnZ7XF-+U z>m%N6f`T{dpe$7fg-H1FRVRSqD+~7Gp_@HcaYYVquz`3e9g}NTNa8Ymyi*^cYsYfD zhH?WIBj|`tK>eZ`dInV$^i7xQqO0|pL*-pXXQ!(?<<<|1@S=8YGaF!pnPF((M%4Mcdg(!AO8O7Y60gFgarcDL>|yYIde`+0&|s9qMlAZLy~FV#m5 z7&t;*D>dAvSa!OB4oyax=r}RE{5t8I^*YF*nb}QQXEytqn*B+mAL`JI^{J}NX57Jg zhbH+Nmek~bh!Z=p&!L%VIkL{=G>Fu+jDD+Rpk*Cm6z1&(4YG;=ktlY+0Un^7i7G01 z9~dkxxmn*&sB8V3>E-$R&XzP;5hhJLp!rk6PNA{yyypKUIQ|>A5O(yzgR|bC3g{8@ zqv-dSZ-yL6XUo-}Q22F&V4x$HYQL%KnRd!3AP4 z6P&&4&4f;Nn@R_s%%$%~ER#=zz#CLBm6Dx%mM_;8Hj^U=zwQ+=gKZ+BG0{mB9AOg< zc5b(cV}MJ=-mDv4J2aa>U^qC*DU6p3Y_{kq(SVAkUQ4bMP>!oKFHTN>{mtD&o45JIo%O zHX>g2#Y?k3yS-b%y2GD7#((oiKXVsAN9v1?cnR3tE35xed(1yet~h>E{>hKLknIGk zLL*(|`yO|tiwt~7iE=Ovx6@}_c}!c8fMs1s25c^H>~9Br+cKzeV#)an=k$4`S3DP} zsAn8pCl^R@O}BH_KK-|TlOGrn>b`F0&z^CDU14jOB$;RXNX87^NO1D9d%rv=>-o|R zN34GAtnBOZAVD(h0!>ib90pc>F-eYbEq!~4K9~fkK1CQ+ry26QC|>o(Jg@rhh1dH0 z20b>Z3J;(Cb*!?6D>PoGhlFuOO3=OkqV6-|*@dT`b%=M^CmVMG1vgq*JABrFlU^KE zvgWEs<_vqGJqKDzhFuF{x=6-|i}HghUio>H47_i!i9YaXzIrvSIB6?1c?8K(`t^Jo zBqU3|a3j-?=j4eQS6*1M=8X@I>Xo(rILMR?L(0TOGQgZ+e!kF)HByHD#E`f|Bc|)QpAq{=N$B-`zZIrJz)HPins(&qLYWiTrkJE1c=7#duejarqWJ-pe z#nkC2Wg15(>WfWY`Qge8WsCCbJt@wYkwM?3^qM0pJjuR@^v=d1aq>>6NOO_Ux+DAC zLG$D)-A^9JwDaV1gqU`oTt$*}d7gZxaNlC{ddiu(17vAlDueSP0>|VgO57B?ro0~ zY%El)iyUuE*zzlrUVIQTLw*yJ_VYA~-D$X)Jf^MCSV(|JjT|Lc%s6t9JlOxD{O;*HmR8D_$S1@8yP_|~@b!M5y+3>Y`qESO zdwTRU4}J3&Cm22m%|(tYqAxyczKxT7L|<%>*^A`I05`*Y!o^Rle`RUY)KmA#|ES`I zD}RPS$*{ASARQ%x!{{VAA6B1v&&Z%}{CcIZlp`yc@LZ}1a2&wCsEy_pX21{+1*y`_ z_pEy1+nfF{>Fna4dv54)ehl!A#P0(HDt*<#{EPp{tO{?{lH3tllt|ggfKt&xv)FrY0v%59 zAq;>MTBkFSj!etR+~(RCN(Qj2ijY_O09K326TCy}+r1H^ai|cEF2QU;EuCC;92-|9 z7gsuYF_2NuIQGW87o8|@jn*JZEDo5&LnLe@= z73pjG?}e&#IYj+)?R5{Hbk7Zw?tFV=_8Hgx?awR}$YI9@1!J+P<(KdGp4n1o2j@AE^&a4W>RS!%bVF46>X5EKQUjeNy0#6W**i z_m;u;yb$Q$6PiedU7oCo83d@MkJnQO2!M2@O}rr%j~HFCk%n+6O1EB8 zb4)z*VB>D(3JE~l1@iSF(jbZ%%j zyKncI{qm^C*Oy(pY^ST|yfo_`C_5Q8o~hGOGFU+;#qo&DBh@x&Mh1eBUwv=O>(_PO zA%RA(X`jkpy@4nt^l@Y8Nbig&eM-$6GMb1`o8b+`Tk6Su7X@h3F=9mH!5H${VAzK* zuF1UCq#L9CS8rn^+#cqQggNLXxeEiZG~=#tSCp1h)j{p3yt7zMuUP8s!+Cm z1&j|&wkTrs$^un5Nff7Q081vH#35MflKe=GnKsWX(FoXRK}jXCkE(E}ky`~+%MVD~s26QwTY^VEI%*svQN8FY%zE{s(%dfxTszp=&`od83JsCES z33A_YlcFL@w9*L7`xT?i|}+`cRN| zC+u+|k>35gya4@E?yv!KeD6&@FE;Gj6*nw8gL{UK;*k*)Jl%Bbo$FWb{7n1Qm9riS zefrwqfljb3^f^|FeOjDg zTWGASz@rPLOU8loLA1;9&Ix|-Ef9BZyQ-=QLZ&Pm#em?lt+IQDF z!T70J(3DEU=GxSDZ}v(Nyl$n>@p>sU3DZZ1DG8yqWenNOqJSSy z6{g&i!DGK*VivmP-GK&nFf3CRyLWMoV?d_k|wu3LT4 zC`n8yIw>INi_+qmKCvu3)tXjX!O~XfhVZ3MA9sL3BtN5p_MK_uHXu>qteZDc!wQ`G zH*I2lrpC?G$JA_?1x>$4Oij~HwO$gX%MY4vgHnp;e)m zVpXdlzrF4ahrG?1S@tw!}7G{4+qz>+j#w1nHx9dmo3IbcM5k%s2>k&<*pqqjXAr)>+!LAT?Gf?B$c z2vevWv8dSyjiCKSe7f8#doUc`@=gm?gaWYuEnk;ll}pOVq8D+h0y8f(nrOG9I_SeU zGgLuNR2{FU@1SRypES?1zOg>CSzM(t@t=Wqgle~wTDOTxr4wUvabc2g6B?UjElq2* z&tT2!WNg#uZfhif4U3SM?2~q<{N4td1fxcDIPFKoC?igQN6Fl>z&$eCK{b*7YQvZLUOXk64&ePY?fBm)pav^g4D7-)seAf zdf--F(t-4hU(EqY+pp$8i7U#l6V|U2mYS=#G7s1`6BbO;WrVtuvU{Ge^h8e&LDh$2 z&2su_qW||KH`Fl~8U8>l9HCjPfR?R`WKtB78|jgFh$b|dgm|MyEZ(Zuvqk`SU9g~4 z`|Sp;btB%^h|v}>7Rgx%WK|2A5OLv`JFbLd8seR!03^s*kCn}5}YX0O*-U>K3Zba9cXI?9X4!M!St$%sxqBO)?&WK zKT0<#h4gz{>HZ$^#tOY59Hmu#purn&^-~%K4IrTlhB5Z--teLj;Zu!oxXk1ld?9(m zIO=Nz1z$sh5v3=sLhW9uRw9dBPIfCw6Fd5>Qb0NTN3n6xtnN^eT>h{T4GoTYjm53V zNpbtafUuBR4UEh@6=$TT4G~{d4Wb@5Fp|t@fi8zrX0b>)qdvMz1`raF7!4VXemy+{ zrfzdfElbrm_$cATvto)i<;w=16;nBh*Lw_+g3NSBG=v*1l38`cpob?^zHLKC0tAlw zzeuW$b{cl#A0wHee_3B5ZI15s8I3fAlm|z3ire)hkrbiufivALs4 zN9X3rMKF+;;tv%BcUfMgZ9&{LM@gxCg(_F7y3|VSoaF0DzPZY`VddLLru$kc+G__* z*dxG_93_R}miGn%ZDDV&mwmBz=J*cwDH@(~;O&myx+Zx8&e{;UQe!0F*`C5QEA`20 zePl&q-7O2Ye(3RpKx<6gp+PBH+n*{SV`uJ04aD9I3X9Kdq_H7C z9VV-V`DPgwpYQz3eZF#ybdx?dB{h0oU-LGoq|QhTyjCMk)W?*=5lK{dtLvf^Obvjb zD9~#OrmeDwueDj6D}kv)zedAT4m}?4_m@NJjw}3~t~p8{O@E^Qzjh?s2c9rMVNIGy z=xoI)V~v+-g)(eCH*E}f6_hAJ~4a0V&)Ibv_^xyxf?XC zln%n`>{MVx@OSL3!9GwAm2wxar*jmK@am&}e~?#Q+o-)pq?q5C5?M9#&^bts(=eE0 zVg%vc6YMaWuRxRbgD&+DyDwK1%#Pc4h|&9L^oxStufhoxH03+7kgnJMR|`CPIf>3u zc$jc*5~lM$^m`6~R9GByd?5>aFuPR`iE1HBVS)G?`n6L|OBLF2MHPr}PCM0yP9Apo F{{gk{(xw0a literal 32903 zcmeHQ37izgxvvqtmP0h)3DTg5Ah7JgvLGsZvmDF99ta4_>`d?O!0gO2)5EeTibvFV zMaARAc%tSoM8RkjO-%4TV@x~}$n~PpsHjmM=6S|@-}kSoue)caXJ=W^ykFicnCb5C ztE%s;ufD3@>E3?f_**~j?(SaEPly8#5VG{A?_K$S+A?VVH%2~m?sJSpQZQ1o^>2>c9_;cQ-l1D2i9Z#@}j~=n&qWQtiFYY|@ zo&dVz*nOay- zGOc22;pEDK!Xm1o%CU6##n*%wOUDZi6QYsGQ6J)lkwV-`pL^+Z!_Bw9FnIo&s{01V z6OaDscRv9h?QW+}e{m#zKefD3P$%M)QyMA?Pg!V&O@G{+SU4#^KYImgCd(hDjrcoG z{zMcn+#o^r7pb!w@{T7+Zk4~?%&jslD->z1v-~m34Ca=^7&rLE)WZKSh;rfDq^Qi zy!re&WQb5?(L=(k=76y_2QXduRg*Bt_%Au6YWHyf8E*c z&gwd-er-5G&BTr+L)Q#+wQ87GC5o24Yq)zNSVb^IsuG)*SHCuZYL|q=i$cLxQlj|x zF~e?@ph%!C8Y}l(e(`bJJrsk zUJV@ts1^3d#eo;yvKpc_6M<-FIe7+}i|%&@?{>iTW_t%@6NN**|N1c0E{nFen-Qxt z(cBz1YeSKU85FB0jhPE)OGY+^;vuRd7MwU^hM}<0RdqzGEE$iDOU310S4u2$Q2CF0GW<1myF=OKTC!6LU2iz=wTv@T27&F0%8Lah_vxs?xpND0Y zxn`?B&{boa!TM-zBGziwtun(4&6c?M<`2(06>4!DAQ1|R=MFx$0q$W#>$>8W+1_Zz z;!w!>)}f~)HLCCGFvY;buYCz)yg3>Ti%A25Zw*2ZbYW|INdGOD9V~&C6>S&Y53Rck zhHjp}#*D>6L9;Ruks1&~KD>GY_0WX)*Nh&=HK zh((qWcg!n#1x{0Lw)hiatEtHzlTBsfi@|^VCCu$0<7P~`gP2}b+ki-F;}qPskeEB- z@@a=V734s!i3Uyaz$>q>fh<9-Gx3j4Z~7*MBX1l*>PQG|}`@aoBkj2O~gXPgc z0*+Z7X^DzQn}&R<+5n}ZO0C~&6VI01wgFsJMEo>Jf)p-klx-hV^B4Gx4l@t=%3p`i zR6w+(iWkp({=MN|nCa6=0@#p%-*g~DMp7KvXx`Y?u| zxz-GbbKd&wSl9{|3DRWf#$ERy8dRw3hGsL?ifHe+pqM*!_!xL|OE~Jc#L%u=p2mQy z#Fed^Prv)(=Wr)`u*Tlq_6?YX0gkA5FZpa3G*D$yz=9gpD7pBMGwabql^Ja}$q-`1 zqSCYBkWz0|2tb=I`1KkHA}`8nKWT%*R7V2gL_D;{RGN#6*-vfW1VbPyvMZNgkXMfk z2Dbg(5f2Pgc!&MFcNWcty{qFYl1l%7>E)wlW8lrnhg&rv!mu>rA2;6hG#Y4}w5EuE zeaUecjc#C*n~h^9Eh{`awZgnETjU4s`eX^lhwh-!9}B@nDN_(dv1_k`dghp2ozYk@ zF3Kj>JOJ+I`r}sec#4aG#~<(;_}yH8S2SVC`ESMK`v*dIbIle@t`VLDWGHCbAP<; z3@|#+wEU9tt_=@tgi!OM!9>`k%!;PpHKrWf9iuPzOInT!o;l(^0a_qzd)Ec;9x@vy zgB|p|Dps7>^d9H{CLQ9poBRKO0kzTinc|71mmc5(EEciKJtiC(P2ytP7vBy;2{QY9 zzuyyspah-Hm~-~{a2ZwEjXCGWZn&%tOPnW^JpZG&FqY=Gv>L9gq zWF6Rk?L1Vg^#@k@TTKzKx^&nG=X!25;17q^*-1&f!%qR>2&?N-s8=_#wRy{gyG(GV zt#In@omW6J>QarQqyKXEQh1pRWoE2Cia{+$QDuy@D(W}QxCttzsNzgX19qNR3!q9o zC;DaT^Z3YnO3}Lp29ZeRedp0VsJKvOsCph6x?^A-D!OOZJFU@|LE8&Mt!H zOuaA~wREF_=Fg`=#5(^PGuRk1JCz>AIlug`avQ!R8f`CWk0!|DnvT5kDTuD-6Vd(X z<(*(er8#vnQ4({8U34jo8mAONG;O+4j%xShFK!yw{0-TRk{#2EMx>9vJ9z6LG?UZ( zf>AeY1mn1fi}^1s`74ZC7j3az)6#i&Jb#B|5_zjk6lDT04!+=L48-TX$^0g`5Je8lI>@gOtf6_nhCiBkxECFQlap<#R8d_N#N?w)K>()rUI7 zgKr)D7-DEW#f(pyZhR2dtdEgT%Xw4OuG~HmAPb;sN=w&@rCVp*392dncYNsjVk`-h z!P;AGVa`qzzlsUOsl|EVwC-14<8I|#RZF8PE{;86Qvn#D+{sYRDfSdxG6YkIolc2< z+fLd6{o4>qu%0}6!%o@I$*TtKUcUy!IRZQ3?Y+y(2O+35(yAvK%P$uVlf#F?5tK2V z%xnJgr@jR#Q{XAH-kPUxKL)f_Et%f08h7O<&@;*ybr7%9>M>8Bd*Nz(z%A$jSDyj* z8qq870awujuBHdv@*Z$)J>XXMfV(UMZWqZgIRow$!d=`0?wSm^m#H1nG?Y|30EaaP ziWlxCh4RGR+5_&k47k4%y<1XnY?t>4cU}*;D>C5zPVG+W0hijYUDtIVSavs#Hj-rV z!ZD1G?sf=ZC|)>(XcR9TVkL?f4lxbI3x|=7!npP7QoxsD`aBi)D&b~n9Mio>U%x>( zD+Tv;7cQaCnJ4xU_|iCyW1iU7u>1IwcI+d6CLEuCKZ}|FK`UHF*24Yl3aG+6_S--vL=#5Cb?aBHKadD|WpU_~Vdv)SP=N*?U z*dxSvhZwNYeEOhV;-Ukb7E|K9zP#xCw~G#Z3b6y@1av0o4*#$p=)CWugVo6l`k;W$ zc6lbm0gLnr9r`NIhb}s>)f(L;`eT3lcNZOv?(yKIH|$JvBluXcz5pFVpTDsm=zQX$ z19?hy-=M=|>EJUpu$Kofc|LW~fjkR!Uv7DB+7EQx@c=2%3Kt!=&m;SR4)pdnEfe&{ za|Yz$?qB2+%|o_BHoZZfxw;d#-ij7y>p25_-%N6?wBn>X$UI$vlS=n``q zayrn!IQ^5J?5=jv0S=#@ikCcIbYLgYsnip0+X|=GzS8+TMIPj#EYBM{A-LE4a_F!; z*W-lB^&xe{_x_ZJ*5+n)` zh^Vy1)e+x)mB&3Vpj!i-Q9*wkcfNg&1oisM%de61atD~VdH#W4U!@U0bJ6LmJnlFO zc{qh~%QKG?M@=`|!AqY1a>;}C|E4>^a`7kH4_3SAWRnMYFFJc%bdVq1rs*6?S#YC1 zpSVGv&>jJORL=wd8EEPS4)4p0x_2-g^1*i}IoJe)pQn}3Zy zL+OL9fFbnZf;O-@w(5_j4>kZeFQ-%4Cv=ESAjX3q6y^=QpkL4d4P1i;(?mV+0p3st zb#V?n>VaQ3Z@_UuUw~|Tx{cB$ZCjGC zqS7GAyIRuc?0X^*G8wOTz2GToM^Q4z+fk*VNRT$?;?g>kC1rc7N8aazH<#AdFRra< zs)@$h{b4D9>*i}U-LH(b(AI98YAWxydyvXYwhTNfWv>WpffOSr*BI;hhXpnj*PjVE zH~pK+#>!FX-ay8-mE1}m%YO+#ciSg5*xO@crO(%pIkAtAy8&wBIeR;dx0*!zLbD?r z3gF(4)^CWk0<%vRFpSMH-HefciGbV7D9K25TT{|1eW-nXv_7j6D{1O9 z#ccX66YVtZw20LrE};ogBbo``EZPVfrxpWss|9q`LG=JlP~8?`WyKz#+wLn52kCwq zML=_v4q-j)FIw|S2N9y?Bi$=)I*|Tpat+pyxuh9Owo8b55fmZnAwoU*#0Xtu7U{2< z^cWHqvhHfKK(km!3w1?rg{Tyr)GA6^cIrBI@WvjP#!=s_JxKRcK^$1bKfGeKw08$_ z&!LfNqiQX+D|+ShF22SsTdDI!G(>WD9|FxC2tl%;>0id^U?gJ=%^Z_JnOK=_~@f_Mzz|zn8ZF+F2{~Vp2~XiQQ%ZP zdf{?3PDM&pFZr8w>$aqOL^}QNs|?Hw``9efBsA@#G)VE3j^S9Gng7wcZIPHJ@T0z?^1yqaub6@4*crlB7Z=H!}XwpZQ82O}Jt|a?9q> z^3eiBwb@sR*pnP?5vAItE}dBHjUB3a$Sg&!t}%`l&!>|$a%ns{|0a^}c|prOp`{*B z%xD~`_f-?z9`Z+IE`nUb$plm3JQHP>zClahKv@g&n^80~so8RrzJ}k@pElAA0}nE( z2C_&T*Ak|k{;4(zIwFS~MYBe;grjyYMePdmd1RfVsOMJtH;Tp<@>Ed6h(J3;$adLl zYsx%{zA$puQC~h<%k3YZ;%sJt=ETVb9SF~0nYG85TH-lDQsH|P$=gCaw~)lmbd7w0 zXI{2nUuQ>-nxN21y{{oU39(4(8@axZ7K2JZnQI)YYp8m(VD}xTA^XZ5#{;FoaxHxu zSvXGCbK*rN{BX?&Yn3^4jy!)N3rp58=ivJ)1Gk?|-dRd~!*juVCiwCDS$CjYC#{PN z4QqvY;EQ^Kpup6?-M6zO5E?iYNpO{yHV;YHB(Vg5FYm4Ok{Y0&` z%$jCf6i_}@Kz@(xayn&TLamA0qK9Lv_+N7^vh^=nJR6PM>eS-s}#~d)PP-(=@${U zl8%)`XKYql99L>6%8jC2r-eouMm5%dh^^x-k9-KbTb#2h34FAnt8|l@CnpZ((fBE&5jBNIQof9X#WdQg=wBg? zw5bFsr*FWf$$I5fALDhJ#Q10hk&PCwuN-flO)&$}J2yoS`C0p7A8w>Q-dVKDlVCwn@Q0z1CzlkLC>2#G#aVOse&9wf(%z%HHHP7DW_J&a@dYF>67mh_8 zuKh3{MZ|2>Im*=Ql}Sqq<*8YF;I(e5?|J2N#kw~hHGPeZoSk8Zt&A*>QQS;kh@Zk<(Sz0#w>`nn~(e? zn+-S~K#qu9NyaJSfQs5N_t73@wm#U7?mn<%r0#C`=+Div^}u@#?jD?&cv{x>EQQ;T zlcU<{S^Mzf!P!GRBWrt}X-cW)%wE?nqnahXu3b(w(LerW9@WeV{0;s0T$^M&#_%<$iA= zL6FB+QSC~CmCAVwk#ts8TD(4V-}%a=9>BXZYvFEEZkjASm-$3>Ryyf3P(E>*M=})9 zNA192uEEZCA$_LPN6kR#yLFjnpxK&>eT}(1HW3rx3Amr<#0QQ)ZtN%*eoj_h@EA~j z=jC;Cv-ZKWAZCC#%>io9cV5}P&f zdI#zn$U8Ad)MjnLqdQ$MZY?j+{V+Ff4%IoY%GSz}7^eCQv(jd*s&x){#_U>`wH?!% zN3#&-As18OHtR(X7HS zrjc*czzm~kOY^rB%JL4A`0Bdf6x}OOvBO+5a4#yapY@+Q>Oo8~2Ff z(b)GW=%Qm>T%G{~3m05Gk(#9q3 z|EbnJjmu)&VqfjJbhz`LwZ8mO^W{_c=Zs6-g=eo}kK5P$C)KApzPrbzlPUCN)WCn2 z$vCW{Io8X7;Fn~r^x-0ZZe$qplHo7W&ye`%VJme-{7lI%`27uBmQL>>frZ0T=2`QQhfp375W^%LOV&HqwSER?-Ku@ z{-$Ucex1g}O%wfX)QHRU5kDwFiK#>SH+O*FvY@0Y#1ZQPRYCqx4X4~SD@w`=nej_A zl+><#NgCpx#51Q4sz&m+G5R$5uu5NY1ODyglH_X6)tUOVTpwMoQCoI(X5^2{)@DLp zbnhEw!!sdU!apfvb@H)8S7s&IJm6$(CM14a$UUGAi<;I8c|~`N?gc*}L}C88vix~b zre7)IcU>r{wxVaxDTH8k^N5+P;c17*{?_u-?;QPf&He8zexe}o+k4ysxX&>p28u&A z;HQNQ$B$+C937($4@8FZ5qK16F!hI(=MiiveQG3Td6WFr+cEOlY54smKErnttr2u0 zMt1tctHjtNmmCEBE?;s`jyx<^_1TMuzeV-suNSFi{{eNr4I8MMDsGm*G8cyP5pXY& zUQ7`i&ndv~&iMDBGwA$e`Yd0vJc!?_NkkBA%2Bvvc_re;h#LBmyd84L0X!;g)uOT& zZ8vZHJOStjzaJ%fs^==YNb9+hfGF%4e7#J8)4$Kspq2V)4+5AS=0fqSgB?}`Y>C2* z2Gu3mRu#LKt4TaF6LJe70vgE-XLaQ}|NHlg-oC$o$pfc8vpBf<&Ci(y^mDN83?paR z9kqY0U;JvtZR^qfh0pe3OC zbc}tPBcF?Bs9(7n>T!F9^YAtL(+5>pYWHvcC592YUXKUchKM`^Ms^NpNaU4%{jw8` z@w<0oTJ4n$w@z3z`hwq0uGn(t6K9Rz(UlKvq{6O6XS#HQn0#!WAs>>LgWml+h4 znZNmi@6Y=4=abKe9I3EQ*{%BOo<>LY1WrRf+&V}3nS4HD+F;7bp~qqxwgrVRb!@$h zY1mzQlG$Ak=XT4Ue2?cbo+kKuKhJBN<}?2p=e6Gu$&aXOorxDoLG53xGhmU;!qm@7Rg8lEB*T7-p zn{7>xJbK^UhY$08_rab0U-E+e-(5&x$|IW@i|FL777i>Ow z)I|>P>NpK=yh}wzF-{15csLV^r`mf&5E6?}l?OU!XoJ#g6MRL({3OMeEokOpo-tGU zC3OL1qofbuz0RS&T{wR9S^n2%f72TOosHk`ywq(1EPGH8FYbMC+jae(?V5MpqV17A ze;zx=3)YA6#0rsgvV8U0nBXmS*T4(*WsfIJlqgtQr0%T%o^2xiik$Ka@Ir-6-v_6} zp4EPI%AbWM?Wm3Xbmp~1btBGwJ8?I21}=G@4B5#qHawm`^7L)9H}3q^!&hHDtlbON z2d89(fLylHYo`QnsVTn~?5lE0WMrueBM6(#DZz8&)Z&ZAeeKut?hXHa?7j87wtB%< zpfg>%k*Ln=GWb<2IecQM7fU2!W=>9hn`y|ma~PCCMCsXhlq^JJhJ~!7Q@(mk_`ab# zWQV|xGZT?VMkE08}yDN)99f0 zSCN$Q5WSBr5@oL^!qs=}HuAgI&%S*9FM@MV-m{rm0E0XcdTnKT z!B{}Fm0p&%{j+adtIQ83mekE*(1eLo7u3cQ zRM_4v)Im9IZ<$4qNPM~VZ38o$WF5H>)ZO7g-4Wn?zu8_7f)!5$W;7s9p%04P0?C9Y z0#U&ef##r-ixVn?>7!nwqPOGeNf4^!(7}0xC}92Q!&q1xkBX%2ZT-MY(S$lwFq&!; z&GhI;=hc$A&SNDfwTW-adh|9m9wLuCMcN=`gao~fCl>Cay?G;!msIM> z3X9|bzhaUW#0E_T9j1KFsS%ABZP8BIS~XE`!a|b-%?LTtET(+bUAw=_SydbD^!~yS zy>U{`AG8Qh&{@>*2l4b&xe||=?a?*3Xo*GJC4sgOy$3E9XzQAkQ{7_F8_SFcy_3@L z8`wnGtM!Rdnt>*E(u<8I2Jj$R!b|ECz>YCLQXL6dA-qP5U4Gyi@W)e7R zwMph%>BfhY3*JU=>7$ndks?d*s!*w_nA};2B_iaql0}1F6_)7GiGvx6X=A7j2t05% zW^}~NHS{_xQZnTmvNkycF6gyo@-?55pqi9h82*6ks1RHd!}DOq(&wZk@32hFa36>OlZu7;kaoDE26Aa z2We4xil?q`(7-e#9>;!uCM5DIHLnPJ=NT!METEU1DKR%dyU)Ei#sYDU><52Er3!pd z77X+0`aBJ3(15;DBUAU##nT9L})3<)$`E44MrW@>juFizSrt=LN zi96{iypZCaWXg%n&l4qD{WTR%kwr~Z?J*_y~?-2$`@|Z^PE)SepoR#Yk1mW{i?ej zKdJtz(z7+DTpw+h5Msp{>{C@5xiYm9xH(b-kJCrzz``(7Sd5{}R)_TO8PD|FG-KWI uv%h!2!_Pgn-G!B-}*nJ%^HCK diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp index 5e9cdc742..484b6aa2a 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Private/SpineWidget.cpp @@ -331,6 +331,25 @@ bool USpineWidget::HasBone(const FString BoneName) { return false; } +FTransform USpineWidget::GetBoneTransform(const FString& BoneName) { + CheckState(); + if (skeleton) { + Bone *bone = skeleton->findBone(TCHAR_TO_UTF8(*BoneName)); + if (!bone) return FTransform(); + + FMatrix localTransform; + localTransform.SetIdentity(); + localTransform.SetAxis(2, FVector(bone->getA(), 0, bone->getC())); + localTransform.SetAxis(0, FVector(bone->getB(), 0, bone->getD())); + localTransform.SetOrigin(FVector(bone->getWorldX(), 0, bone->getWorldY())); + + FTransform result; + result.SetFromMatrix(localTransform); + return result; + } + return FTransform(); +} + void USpineWidget::GetSlots(TArray &Slots) { CheckState(); if (skeleton) { diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h index 627eeca68..347905fb6 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/Public/SpineWidget.h @@ -132,6 +132,9 @@ public: UFUNCTION(BlueprintCallable, Category = "Components|Spine|Skeleton") bool HasBone(const FString BoneName); + UFUNCTION(BlueprintCallable, Category = "Components|Spine|Skeleton") + FTransform GetBoneTransform(const FString &BoneName); + UFUNCTION(BlueprintPure, Category = "Components|Spine|Skeleton") void GetSlots(TArray &Slots); From 68ac2ffb7a0dad48ce77d06e48c108ffcebf686f Mon Sep 17 00:00:00 2001 From: badlogic Date: Tue, 7 Feb 2023 15:46:46 +0100 Subject: [PATCH 04/13] [godot] Closes #2235, proper release of resources loaders and savers. --- spine-godot/spine_godot/register_types.cpp | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/spine-godot/spine_godot/register_types.cpp b/spine-godot/spine_godot/register_types.cpp index fadc83ba6..02fa2257b 100644 --- a/spine-godot/spine_godot/register_types.cpp +++ b/spine-godot/spine_godot/register_types.cpp @@ -153,13 +153,8 @@ void uninitialize_spine_godot_module(ModuleInitializationLevel level) { #else void unregister_spine_godot_types() { #endif - /*ResourceLoader::remove_resource_format_loader(atlas_loader); + ResourceLoader::remove_resource_format_loader(atlas_loader); ResourceSaver::remove_resource_format_saver(atlas_saver); ResourceLoader::remove_resource_format_loader(skeleton_file_loader); - ResourceSaver::remove_resource_format_saver(skeleton_file_saver);*/ - - /*memdelete(atlas_loader); - memdelete(atlas_saver); - memdelete(skeleton_file_saver); - memdelete(skeleton_file_loader);*/ + ResourceSaver::remove_resource_format_saver(skeleton_file_saver); } From 2113751ac8517c529dfa4406333dc0e387971eb4 Mon Sep 17 00:00:00 2001 From: badlogic Date: Tue, 7 Feb 2023 17:57:41 +0100 Subject: [PATCH 05/13] [godot] Closes #2119, meshes are now drawn on window resizing as well. --- spine-godot/spine_godot/SpineSprite.cpp | 136 ++++++++++++++---------- spine-godot/spine_godot/SpineSprite.h | 30 +++++- 2 files changed, 106 insertions(+), 60 deletions(-) diff --git a/spine-godot/spine_godot/SpineSprite.cpp b/spine-godot/spine_godot/SpineSprite.cpp index a04e0d270..e5d87f91f 100644 --- a/spine-godot/spine_godot/SpineSprite.cpp +++ b/spine-godot/spine_godot/SpineSprite.cpp @@ -53,9 +53,72 @@ static int sprite_count = 0; static spine::Vector quad_indices; static spine::Vector scratch_vertices; static Vector scratch_points; -static Vector scratch_uvs; -static Vector scratch_colors; -static Vector scratch_indices; + +static void clear_triangles(SpineMesh2D *mesh_instance) { +#if VERSION_MAJOR > 3 + RenderingServer::get_singleton()->canvas_item_clear(mesh_instance->get_canvas_item()); +#else + VisualServer::get_singleton()->canvas_item_clear(mesh_instance->get_canvas_item()); +#endif +} + +static void add_triangles(SpineMesh2D *mesh_instance, + const Vector &vertices, + const Vector &uvs, + const Vector &colors, + const Vector &indices, + SpineRendererObject *renderer_object) { +#if VERSION_MAJOR > 3 + RenderingServer::get_singleton()->canvas_item_add_triangle_array(mesh_instance->get_canvas_item(), + indices, + vertices, + colors, + uvs, + Vector(), + Vector(), + renderer_object->canvas_texture.is_valid() ? renderer_object->canvas_texture->get_rid() : RID(), + -1); +#else + auto texture = renderer_object->texture; + auto normal_map = renderer_object->normal_map; + VisualServer::get_singleton()->canvas_item_add_triangle_array(mesh_instance->get_canvas_item(), + indices, + vertices, + colors, + uvs, + Vector(), + Vector(), + texture.is_null() ? RID() : texture->get_rid(), + -1, + normal_map.is_null() ? RID() : normal_map->get_rid()); +#endif +} + +void SpineMesh2D::_notification(int what) { + switch (what) { + case NOTIFICATION_READY: { + set_process_internal(true); + break; + } + case NOTIFICATION_INTERNAL_PROCESS: +#if VERSION_MAJOR > 3 + queue_redraw(); +#else + update(); +#endif + break; + case NOTIFICATION_DRAW: + //clear_triangles(this); + if (renderer_object) + add_triangles(this, vertices, uvs, colors, indices, renderer_object); + break; + default: + break; + } +} + +void SpineMesh2D::_bind_methods() { +} void SpineSprite::_bind_methods() { ClassDB::bind_method(D_METHOD("set_skeleton_data_res", "skeleton_data_res"), &SpineSprite::set_skeleton_data_res); @@ -259,7 +322,7 @@ void SpineSprite::on_skeleton_data_changed() { void SpineSprite::generate_meshes_for_slots(Ref skeleton_ref) { auto skeleton = skeleton_ref->get_spine_object(); for (int i = 0, n = (int) skeleton->getSlots().size(); i < n; i++) { - auto mesh_instance = memnew(MeshInstance2D); + auto mesh_instance = memnew(SpineMesh2D); mesh_instance->set_position(Vector2(0, 0)); mesh_instance->set_material(default_materials[spine::BlendMode_Normal]); // Needed so that debug drawables are rendered in front of attachments @@ -490,54 +553,14 @@ void SpineSprite::update_skeleton(float delta) { #endif } -static void clear_mesh_instance(MeshInstance2D *mesh_instance) { -#if VERSION_MAJOR > 3 - RenderingServer::get_singleton()->canvas_item_clear(mesh_instance->get_canvas_item()); -#else - VisualServer::get_singleton()->canvas_item_clear(mesh_instance->get_canvas_item()); -#endif -} - -static void add_triangles(MeshInstance2D *mesh_instance, - const Vector &vertices, - const Vector &uvs, - const Vector &colors, - const Vector &indices, - SpineRendererObject *renderer_object) { -#if VERSION_MAJOR > 3 - RenderingServer::get_singleton()->canvas_item_add_triangle_array(mesh_instance->get_canvas_item(), - indices, - vertices, - colors, - uvs, - Vector(), - Vector(), - renderer_object->canvas_texture.is_valid() ? renderer_object->canvas_texture->get_rid() : RID(), - -1); -#else - auto texture = renderer_object->texture; - auto normal_map = renderer_object->normal_map; - VisualServer::get_singleton()->canvas_item_add_triangle_array(mesh_instance->get_canvas_item(), - indices, - vertices, - colors, - uvs, - Vector(), - Vector(), - texture.is_null() ? RID() : texture->get_rid(), - -1, - normal_map.is_null() ? RID() : normal_map->get_rid()); -#endif -} - void SpineSprite::update_meshes(Ref skeleton_ref) { spine::Skeleton *skeleton = skeleton_ref->get_spine_object(); for (int i = 0, n = (int) skeleton->getSlots().size(); i < n; ++i) { spine::Slot *slot = skeleton->getDrawOrder()[i]; spine::Attachment *attachment = slot->getAttachment(); - MeshInstance2D *mesh_instance = mesh_instances[i]; + SpineMesh2D *mesh_instance = mesh_instances[i]; + mesh_instance->renderer_object = nullptr; mesh_instance->set_light_mask(get_light_mask()); - clear_mesh_instance(mesh_instance); if (!attachment) { skeleton_clipper->clipEnd(*slot); continue; @@ -607,21 +630,20 @@ void SpineSprite::update_meshes(Ref skeleton_ref) { if (indices->size() > 0) { // Set the mesh size_t num_vertices = vertices->size() / 2; - scratch_points.resize((int) num_vertices); - memcpy(scratch_points.ptrw(), vertices->buffer(), num_vertices * 2 * sizeof(float)); - scratch_uvs.resize((int) num_vertices); - memcpy(scratch_uvs.ptrw(), uvs->buffer(), num_vertices * 2 * sizeof(float)); - scratch_colors.resize((int) num_vertices); + mesh_instance->vertices.resize((int) num_vertices); + memcpy(mesh_instance->vertices.ptrw(), vertices->buffer(), num_vertices * 2 * sizeof(float)); + mesh_instance->uvs.resize((int) num_vertices); + memcpy(mesh_instance->uvs.ptrw(), uvs->buffer(), num_vertices * 2 * sizeof(float)); + mesh_instance->colors.resize((int) num_vertices); for (int j = 0; j < (int) num_vertices; j++) { - scratch_colors.set(j, Color(tint.r, tint.g, tint.b, tint.a)); + mesh_instance->colors.set(j, Color(tint.r, tint.g, tint.b, tint.a)); } - scratch_indices.resize((int) indices->size()); + mesh_instance->indices.resize((int) indices->size()); for (int j = 0; j < (int) indices->size(); ++j) { - scratch_indices.set(j, indices->buffer()[j]); + mesh_instance->indices.set(j, indices->buffer()[j]); } - add_triangles(mesh_instance, scratch_points, scratch_uvs, scratch_colors, scratch_indices, renderer_object); - + mesh_instance->renderer_object = renderer_object; spine::BlendMode blend_mode = slot->getData().getBlendMode(); Ref custom_material; @@ -676,9 +698,9 @@ void SpineSprite::update_meshes(Ref skeleton_ref) { } void SpineSprite::draw() { - if (!Engine::get_singleton()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) return; if (!animation_state.is_valid() && !skeleton.is_valid()) return; + if (!Engine::get_singleton()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) return; auto mouse_position = get_local_mouse_position(); spine::Slot *hovered_slot = nullptr; diff --git a/spine-godot/spine_godot/SpineSprite.h b/spine-godot/spine_godot/SpineSprite.h index 189bfbeb7..37c992366 100644 --- a/spine-godot/spine_godot/SpineSprite.h +++ b/spine-godot/spine_godot/SpineSprite.h @@ -32,11 +32,35 @@ #include "SpineSkeleton.h" #include "SpineAnimationState.h" #include "scene/2d/node_2d.h" -#include "scene/2d/mesh_instance_2d.h" class SpineSlotNode; -class SpineSprite : public Node2D, public spine::AnimationStateListenerObject { +struct SpineRendererObject; + +class SpineSprite; + +class SpineMesh2D : public Node2D { + GDCLASS(SpineMesh2D, Node2D); + + friend class SpineSprite; + +protected: + void _notification(int what); + static void _bind_methods(); + + Vector vertices; + Vector uvs; + Vector colors; + Vector indices; + SpineRendererObject *renderer_object; + +public: + SpineMesh2D() : renderer_object(nullptr){}; + ~SpineMesh2D(){}; +}; + +class SpineSprite : public Node2D, + public spine::AnimationStateListenerObject { GDCLASS(SpineSprite, Node2D) friend class SpineBone; @@ -67,7 +91,7 @@ protected: Color debug_clipping_color; spine::Vector> slot_nodes; - Vector mesh_instances; + Vector mesh_instances; static Ref default_materials[4]; Ref normal_material; Ref additive_material; From 98da436374910cbaf349267ffbd33b8fda616309 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Wed, 8 Feb 2023 11:48:37 +0100 Subject: [PATCH 06/13] [libgdx] Update BoneData docs. --- .../spine-libgdx/src/com/esotericsoftware/spine/BoneData.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java index 43a4daea2..968cdb06d 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/BoneData.java @@ -115,7 +115,7 @@ public class BoneData { this.y = y; } - /** The local rotation. */ + /** The local rotation in degrees, counter clockwise. */ public float getRotation () { return rotation; } From 54b2932098ae5ffe9ccb0658bdc7ccf9f9d7a655 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Wed, 8 Feb 2023 11:50:06 +0100 Subject: [PATCH 07/13] [flutter] Docs, add Bone.updateAppliedTransform(). --- spine-cpp/spine-cpp/include/spine/Bone.h | 12 +- spine-flutter/lib/spine_flutter.dart | 341 +- .../lib/spine_flutter_bindings_generated.dart | 4969 +++++++++++------ spine-flutter/src/spine_flutter.cpp | 6 + spine-flutter/src/spine_flutter.h | 1 + 5 files changed, 3577 insertions(+), 1752 deletions(-) diff --git a/spine-cpp/spine-cpp/include/spine/Bone.h b/spine-cpp/spine-cpp/include/spine/Bone.h index d3643514b..83bd7a391 100644 --- a/spine-cpp/spine-cpp/include/spine/Bone.h +++ b/spine-cpp/spine-cpp/include/spine/Bone.h @@ -113,6 +113,12 @@ namespace spine { void updateWorldTransform(float x, float y, float rotation, float scaleX, float scaleY, float shearX, float shearY); + /// Computes the individual applied transform values from the world transform. This can be useful to perform processing using + /// the applied transform after the world transform has been modified directly (eg, by a constraint).. + /// + /// Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. + void updateAppliedTransform(); + void setToSetupPose(); void worldToLocal(float worldX, float worldY, float &outLocalX, float &outLocalY); @@ -260,12 +266,6 @@ namespace spine { float _c, _d, _worldY; bool _sorted; bool _active; - - /// Computes the individual applied transform values from the world transform. This can be useful to perform processing using - /// the applied transform after the world transform has been modified directly (eg, by a constraint).. - /// - /// Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. - void updateAppliedTransform(); }; } diff --git a/spine-flutter/lib/spine_flutter.dart b/spine-flutter/lib/spine_flutter.dart index fc4a4645f..02baf1b7c 100644 --- a/spine-flutter/lib/spine_flutter.dart +++ b/spine-flutter/lib/spine_flutter.dart @@ -35,6 +35,8 @@ int minorVersion() => _bindings.spine_minor_version(); void reportLeaks() => _bindings.spine_report_leaks(); +/// A color made of red, green, blue, and alpha components, +/// ranging from 0-1. class Color { double r; double g; @@ -44,6 +46,8 @@ class Color { Color(this.r, this.g, this.b, this.a); } +/// Bounds denoted by the top left corner coordinates [x] and [y] +/// and the [width] and [height]. class Bounds { double x; double y; @@ -53,6 +57,7 @@ class Bounds { Bounds(this.x, this.y, this.width, this.height); } +/// A two-dimensional vector with [x] and [y] components. class Vec2 { double x; double y; @@ -60,6 +65,12 @@ class Vec2 { Vec2(this.x, this.y); } +/// Atlas data loaded from a `.atlas` file and its corresponding `.png` files. For each atlas image, +/// a corresponding [Image] and [Paint] is constructed, which are used when rendering a skeleton +/// that uses this atlas. +/// +/// Use the static methods [fromAsset], [fromFile], and [fromHttp] to load an atlas. Call [dispose] +/// when the atlas is no longer in use to release its resources. class Atlas { final spine_atlas _atlas; final List atlasPages; @@ -101,21 +112,33 @@ class Atlas { return Atlas._(atlas, atlasPages, atlasPagePaints); } + /// Loads an [Atlas] from the file [atlasFileName] in the root bundle or the optionally provided [bundle]. + /// + /// Throws an [Exception] in case the atlas could not be loaded. static Future fromAsset(String atlasFileName, {AssetBundle? bundle}) async { bundle ??= rootBundle; return _load(atlasFileName, (file) async => (await bundle!.load(file)).buffer.asUint8List()); } + /// Loads an [Atlas] from the file [atlasFileName]. + /// + /// Throws an [Exception] in case the atlas could not be loaded. static Future fromFile(String atlasFileName) async { return _load(atlasFileName, (file) => File(file).readAsBytes()); } - static Future fromUrl(String atlasFileName) async { - return _load(atlasFileName, (file) async { + /// Loads an [Atlas] from the URL [atlasURL]. + /// + /// Throws an [Exception] in case the atlas could not be loaded. + static Future fromHttp(String atlasURL) async { + return _load(atlasURL, (file) async { return (await http.get(Uri.parse(file))).bodyBytes; }); } + /// Disposes the (native) resources of this atlas. The atlas can no longer be + /// used after calling this function. Only the first call to this method will + /// have an effect. Subsequent calls are ignored. void dispose() { if (_disposed) return; _disposed = true; @@ -126,12 +149,28 @@ class Atlas { } } +/// Skeleton data loaded from a skeleton `.json` or `.skel` file. Contains bones, slots, constraints, +/// skins, animations, and so on making up a skeleton. Also contains meta data such as the skeletons +/// setup pose bounding box, the Spine editor version it was exported from, and so on. +/// +/// Skeleton data is stateless. Stateful [Skeleton] instances can be constructed from a [SkeletonData] instance. +/// A single [SkeletonData] instance can be shared by multiple [Skeleton] instances. +/// +/// Use the static methods [fromJson], [fromBinary], [fromAsset], [fromFile], and [fromURL] to load +/// skeleton data. Call [dispose] when the skeleton data is no longer in use to free its resources. +/// +/// See [Data objects](http://esotericsoftware.com/spine-runtime-architecture#Data-objects) in the Spine +/// Runtimes Guide. class SkeletonData { final spine_skeleton_data _data; bool _disposed; SkeletonData._(this._data) : _disposed = false; + /// Loads a [SkeletonData] from the [json] string, using the provided [atlas] to resolve attachment + /// images. + /// + /// Throws an [Exception] in case the atlas could not be loaded. static SkeletonData fromJson(Atlas atlas, String json) { final jsonNative = json.toNativeUtf8(allocator: _allocator); final result = _bindings.spine_skeleton_data_load_json(atlas._atlas, jsonNative.cast()); @@ -147,6 +186,10 @@ class SkeletonData { return data; } + /// Loads a [SkeletonData] from the [binary] skeleton data, using the provided [atlas] to resolve attachment + /// images. + /// + /// Throws an [Exception] in case the skeleton data could not be loaded. static SkeletonData fromBinary(Atlas atlas, Uint8List binary) { final Pointer binaryNative = _allocator.allocate(binary.lengthInBytes); binaryNative.asTypedList(binary.lengthInBytes).setAll(0, binary); @@ -163,6 +206,11 @@ class SkeletonData { return data; } + + /// Loads a [SkeletonData] from the file [skeletonFile] in the root bundle or the optionally provided [bundle]. + /// Uses the provided [atlas] to resolve attachment images. + /// + /// Throws an [Exception] in case the skeleton data could not be loaded. static Future fromAsset(Atlas atlas, String skeletonFile, {AssetBundle? bundle}) async { bundle ??= rootBundle; if (skeletonFile.endsWith(".json")) { @@ -172,6 +220,9 @@ class SkeletonData { } } + /// Loads a [SkeletonData] from the file [skeletonFile]. Uses the provided [atlas] to resolve attachment images. + /// + /// Throws an [Exception] in case the skeleton data could not be loaded. static Future fromFile(Atlas atlas, String skeletonFile) async { if (skeletonFile.endsWith(".json")) { return fromJson(atlas, convert.utf8.decode(await File(skeletonFile).readAsBytes())); @@ -180,100 +231,17 @@ class SkeletonData { } } - static Future fromHttp(Atlas atlas, String skeletonFile) async { - if (skeletonFile.endsWith(".json")) { - return fromJson(atlas, convert.utf8.decode((await http.get(Uri.parse(skeletonFile))).bodyBytes)); + /// Loads a [SkeletonData] from the URL [skeletonURL]. Uses the provided [atlas] to resolve attachment images. + /// + /// Throws an [Exception] in case the skeleton data could not be loaded. + static Future fromHttp(Atlas atlas, String skeletonURL) async { + if (skeletonURL.endsWith(".json")) { + return fromJson(atlas, convert.utf8.decode((await http.get(Uri.parse(skeletonURL))).bodyBytes)); } else { - return fromBinary(atlas, (await http.get(Uri.parse(skeletonFile))).bodyBytes); + return fromBinary(atlas, (await http.get(Uri.parse(skeletonURL))).bodyBytes); } } - /// Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it multiple times. - BoneData? findBone(String name) { - final nativeName = name.toNativeUtf8(allocator: _allocator); - final bone = _bindings.spine_skeleton_data_find_bone(_data, nativeName.cast()); - _allocator.free(nativeName); - if (bone.address == nullptr.address) return null; - return BoneData._(bone); - } - - /// Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it multiple times. - SlotData? findSlot(String name) { - final nativeName = name.toNativeUtf8(allocator: _allocator); - final slot = _bindings.spine_skeleton_data_find_slot(_data, nativeName.cast()); - _allocator.free(nativeName); - if (slot.address == nullptr.address) return null; - return SlotData._(slot); - } - - /// Finds a skin by comparing each skin's name. It is more efficient to cache the results of this method than to call it - /// multiple times. - Skin? findSkin(String name) { - final nativeName = name.toNativeUtf8(allocator: _allocator); - final skin = _bindings.spine_skeleton_data_find_skin(_data, nativeName.cast()); - _allocator.free(nativeName); - if (skin.address == nullptr.address) return null; - return Skin._(skin); - } - - /// Finds an event by comparing each events's name. It is more efficient to cache the results of this method than to call it - /// multiple times. - EventData? findEvent(String name) { - final nativeName = name.toNativeUtf8(allocator: _allocator); - final event = _bindings.spine_skeleton_data_find_event(_data, nativeName.cast()); - _allocator.free(nativeName); - if (event.address == nullptr.address) return null; - return EventData._(event); - } - - /// Finds an animation by comparing each animation's name. It is more efficient to cache the results of this method than to - /// call it multiple times. - Animation? findAnimation(String name) { - final nativeName = name.toNativeUtf8(allocator: _allocator); - final animation = _bindings.spine_skeleton_data_find_animation(_data, nativeName.cast()); - _allocator.free(nativeName); - if (animation.address == nullptr.address) return null; - return Animation._(animation); - } - - /// Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method - /// than to call it multiple times. - IkConstraintData? findIkConstraint(String name) { - final nativeName = name.toNativeUtf8(allocator: _allocator); - final constraint = _bindings.spine_skeleton_data_find_ik_constraint(_data, nativeName.cast()); - _allocator.free(nativeName); - if (constraint.address == nullptr.address) return null; - return IkConstraintData._(constraint); - } - - /// Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of - /// this method than to call it multiple times. - TransformConstraintData? findTransformConstraint(String name) { - final nativeName = name.toNativeUtf8(allocator: _allocator); - final constraint = _bindings.spine_skeleton_data_find_transform_constraint(_data, nativeName.cast()); - _allocator.free(nativeName); - if (constraint.address == nullptr.address) return null; - return TransformConstraintData._(constraint); - } - - /// Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method - /// than to call it multiple times. - PathConstraintData? findPathConstraint(String name) { - final nativeName = name.toNativeUtf8(allocator: _allocator); - final constraint = _bindings.spine_skeleton_data_find_path_constraint(_data, nativeName.cast()); - _allocator.free(nativeName); - if (constraint.address == nullptr.address) return null; - return PathConstraintData._(constraint); - } - - /// The skeleton's name, which by default is the name of the skeleton data file when possible, or null when a name hasn't been - /// set. - String? getName() { - Pointer name = _bindings.spine_skeleton_data_get_name(_data).cast(); - if (name.address == nullptr.address) return null; - return name.toDartString(); - } - /// The skeleton's bones, sorted parent first. The root bone is always the first bone. List getBones() { final List bones = []; @@ -285,6 +253,15 @@ class SkeletonData { return bones; } + /// Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it multiple times. + BoneData? findBone(String name) { + final nativeName = name.toNativeUtf8(allocator: _allocator); + final bone = _bindings.spine_skeleton_data_find_bone(_data, nativeName.cast()); + _allocator.free(nativeName); + if (bone.address == nullptr.address) return null; + return BoneData._(bone); + } + /// The skeleton's slots. List getSlots() { final List slots = []; @@ -296,6 +273,15 @@ class SkeletonData { return slots; } + /// Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it multiple times. + SlotData? findSlot(String name) { + final nativeName = name.toNativeUtf8(allocator: _allocator); + final slot = _bindings.spine_skeleton_data_find_slot(_data, nativeName.cast()); + _allocator.free(nativeName); + if (slot.address == nullptr.address) return null; + return SlotData._(slot); + } + /// All skins, including the default skin. List getSkins() { final List skins = []; @@ -322,6 +308,16 @@ class SkeletonData { } } + /// Finds a skin by comparing each skin's name. It is more efficient to cache the results of this method than to call it + /// multiple times. + Skin? findSkin(String name) { + final nativeName = name.toNativeUtf8(allocator: _allocator); + final skin = _bindings.spine_skeleton_data_find_skin(_data, nativeName.cast()); + _allocator.free(nativeName); + if (skin.address == nullptr.address) return null; + return Skin._(skin); + } + /// The skeleton's events. List getEvents() { final List events = []; @@ -333,6 +329,17 @@ class SkeletonData { return events; } + /// Finds an event by comparing each events's name. It is more efficient to cache the results of this method than to call it + /// multiple times. + EventData? findEvent(String name) { + final nativeName = name.toNativeUtf8(allocator: _allocator); + final event = _bindings.spine_skeleton_data_find_event(_data, nativeName.cast()); + _allocator.free(nativeName); + if (event.address == nullptr.address) return null; + return EventData._(event); + } + + /// The skeleton's animations. List getAnimations() { final List events = []; @@ -344,6 +351,16 @@ class SkeletonData { return events; } + /// Finds an animation by comparing each animation's name. It is more efficient to cache the results of this method than to + /// call it multiple times. + Animation? findAnimation(String name) { + final nativeName = name.toNativeUtf8(allocator: _allocator); + final animation = _bindings.spine_skeleton_data_find_animation(_data, nativeName.cast()); + _allocator.free(nativeName); + if (animation.address == nullptr.address) return null; + return Animation._(animation); + } + /// The skeleton's IK constraints. List getIkConstraints() { final List constraints = []; @@ -355,6 +372,16 @@ class SkeletonData { return constraints; } + /// Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method + /// than to call it multiple times. + IkConstraintData? findIkConstraint(String name) { + final nativeName = name.toNativeUtf8(allocator: _allocator); + final constraint = _bindings.spine_skeleton_data_find_ik_constraint(_data, nativeName.cast()); + _allocator.free(nativeName); + if (constraint.address == nullptr.address) return null; + return IkConstraintData._(constraint); + } + /// The skeleton's transform constraints. List getTransformConstraints() { final List constraints = []; @@ -366,6 +393,16 @@ class SkeletonData { return constraints; } + /// Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of + /// this method than to call it multiple times. + TransformConstraintData? findTransformConstraint(String name) { + final nativeName = name.toNativeUtf8(allocator: _allocator); + final constraint = _bindings.spine_skeleton_data_find_transform_constraint(_data, nativeName.cast()); + _allocator.free(nativeName); + if (constraint.address == nullptr.address) return null; + return TransformConstraintData._(constraint); + } + /// The skeleton's path constraints. List getPathConstraints() { final List constraints = []; @@ -377,6 +414,24 @@ class SkeletonData { return constraints; } + /// Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method + /// than to call it multiple times. + PathConstraintData? findPathConstraint(String name) { + final nativeName = name.toNativeUtf8(allocator: _allocator); + final constraint = _bindings.spine_skeleton_data_find_path_constraint(_data, nativeName.cast()); + _allocator.free(nativeName); + if (constraint.address == nullptr.address) return null; + return PathConstraintData._(constraint); + } + + /// The skeleton's name, which by default is the name of the skeleton data file when possible, or null when a name hasn't been + /// set. + String? getName() { + Pointer name = _bindings.spine_skeleton_data_get_name(_data).cast(); + if (name.address == nullptr.address) return null; + return name.toDartString(); + } + /// The X coordinate of the skeleton's axis aligned bounding box in the setup pose. double getX() { return _bindings.spine_skeleton_data_get_x(_data); @@ -446,6 +501,9 @@ class SkeletonData { return _bindings.spine_skeleton_data_get_fps(_data); } + /// Disposes the (native) resources of this skeleton data. The skeleton data can no longer be + /// used after calling this function. Only the first call to this method will + /// have an effect. Subsequent calls are ignored. void dispose() { if (_disposed) return; _disposed = true; @@ -453,6 +511,8 @@ class SkeletonData { } } +/// Determines how images are blended with existing pixels when drawn. See [Blending](http://esotericsoftware.com/spine-slots#Blending) in +/// the Spine User Guide. enum BlendMode { normal(0), additive(1), @@ -464,6 +524,8 @@ enum BlendMode { const BlendMode(this.value); } +/// Determines how a bone inherits world transforms from parent bones. See [Transform inheritance](esotericsoftware.com/spine-bones#Transform-inheritance) +/// in the Spine User Guide. enum TransformMode { normal(0), onlyTranslation(1), @@ -476,6 +538,9 @@ enum TransformMode { const TransformMode(this.value); } +/// Controls how the first bone is positioned along the path. +/// +/// See [Position mode](http://esotericsoftware.com/spine-path-constraints#Position-mode) in the Spine User Guide. enum PositionMode { fixed(0), percent(1); @@ -485,6 +550,9 @@ enum PositionMode { const PositionMode(this.value); } +/// Controls how bones after the first bone are positioned along the path. +/// +/// See [Spacing mode](http://esotericsoftware.com/spine-path-constraints#Spacing-mode) in the Spine User Guide. enum SpacingMode { length(0), fixed(1), @@ -496,6 +564,9 @@ enum SpacingMode { const SpacingMode(this.value); } +/// Controls how bones are rotated, translated, and scaled to match the path. +/// +/// See [Rotate mode](http://esotericsoftware.com/spine-path-constraints#Rotate-mode) in the Spine User Guide. enum RotateMode { tangent(0), chain(1), @@ -506,26 +577,31 @@ enum RotateMode { const RotateMode(this.value); } +/// Stores the setup pose for a [Bone]. class BoneData { final spine_bone_data _data; BoneData._(this._data); + /// The index of the bone in [Skeleton.getBones]. int getIndex() { return _bindings.spine_bone_data_get_index(_data); } + /// The name of the bone, which is unique across all bones in the skeleton. String getName() { Pointer name = _bindings.spine_bone_data_get_name(_data).cast(); return name.toDartString(); } + /// The parent bone or `null` if this is the root bone. BoneData? getParent() { final parent = _bindings.spine_bone_data_get_parent(_data); if (parent.address == nullptr.address) return null; return BoneData._(parent); } + /// The bone's length. double getLength() { return _bindings.spine_bone_data_get_length(_data); } @@ -534,6 +610,7 @@ class BoneData { _bindings.spine_bone_data_set_length(_data, length); } + /// The local x translation. double getX() { return _bindings.spine_bone_data_get_x(_data); } @@ -542,6 +619,7 @@ class BoneData { _bindings.spine_bone_data_set_x(_data, x); } + /// The local y translation. double getY() { return _bindings.spine_bone_data_get_y(_data); } @@ -550,6 +628,7 @@ class BoneData { _bindings.spine_bone_data_set_y(_data, y); } + /// The local rotation in degrees. double getRotation() { return _bindings.spine_bone_data_get_rotation(_data); } @@ -558,6 +637,7 @@ class BoneData { _bindings.spine_bone_data_set_rotation(_data, rotation); } + /// The local scaleX. double getScaleX() { return _bindings.spine_bone_data_get_scale_x(_data); } @@ -566,6 +646,7 @@ class BoneData { _bindings.spine_bone_data_set_scale_x(_data, scaleX); } + /// The local scaleY. double getScaleY() { return _bindings.spine_bone_data_get_scale_y(_data); } @@ -574,6 +655,7 @@ class BoneData { _bindings.spine_bone_data_set_scale_y(_data, scaleY); } + /// The local shearX. double getShearX() { return _bindings.spine_bone_data_get_shear_x(_data); } @@ -582,6 +664,7 @@ class BoneData { _bindings.spine_bone_data_set_shear_x(_data, shearX); } + /// The local shearY. double getShearY() { return _bindings.spine_bone_data_get_shear_y(_data); } @@ -590,6 +673,7 @@ class BoneData { _bindings.spine_bone_data_set_shear_y(_data, shearY); } + /// The [TransformMode] for how parent world transforms affect this bone. TransformMode getTransformMode() { final nativeMode = _bindings.spine_bone_data_get_transform_mode(_data); return TransformMode.values[nativeMode]; @@ -599,6 +683,9 @@ class BoneData { _bindings.spine_bone_data_set_transform_mode(_data, mode.value); } + /// When true, [Skeleton.updateWorldTransform] only updates this bone if the [Skeleton.getSkin] contains this bone. + /// + /// See [Skin.getBones]. bool isSkinRequired() { return _bindings.spine_bone_data_is_skin_required(_data) == -1; } @@ -607,6 +694,8 @@ class BoneData { _bindings.spine_bone_data_set_is_skin_required(_data, isSkinRequired ? -1 : 0); } + /// The [Color] of the bone as it was in Spine, or a default color if nonessential data was not exported. Bones are not usually + /// rendered at runtime. Color getColor() { final color = _bindings.spine_bone_data_get_color(_data); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -623,11 +712,17 @@ class BoneData { } } +/// Stores a bone's current pose. +/// +/// A bone has a local transform which is used to compute its world transform. A bone also has an applied transform, which is a +/// local transform that can be applied to compute the world transform. The local transform and applied transform may differ if a +/// constraint or application code modifies the world transform after it was computed from the local transform. class Bone { final spine_bone _bone; Bone._(this._bone); + /// Assume y-axis pointing down for all calculations. static void setIsYDown(bool isYDown) { _bindings.spine_bone_set_is_y_down(isYDown ? -1 : 0); } @@ -636,22 +731,45 @@ class Bone { return _bindings.spine_bone_get_is_y_down() == 1; } + /// Computes the world transform using the parent bone and this bone's local applied transform. void update() { _bindings.spine_bone_update(_bone); } + /// Computes the world transform using the parent bone and this bone's local transform. + /// + /// See [updateWorldTransformWith]. void updateWorldTransform() { _bindings.spine_bone_update_world_transform(_bone); } + /// Computes the world transform using the parent bone and the specified local transform. The applied transform is set to the + /// specified local transform. Child bones are not updated. + /// + /// See [World transform](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine + /// Runtimes Guide. void updateWorldTransformWith(double x, double y, double rotation, double scaleX, double scaleY, double shearX, double shearY) { _bindings.spine_bone_update_world_transform_with(_bone, x, y, rotation, scaleX, scaleY, shearX, shearY); } + /// Computes the applied transform values from the world transform. + /// + /// If the world transform is modified (by a constraint, [rotateWorld], etc) then this method should be called so + /// the applied transform matches the world transform. The applied transform may be needed by other code (eg to apply another + /// constraint). + /// + /// Some information is ambiguous in the world transform, such as -1,-1 scale versus 180 rotation. The applied transform after + /// calling this method is equivalent to the local transform used to compute the world transform, but may not be identical. + void updateAppliedTransform() { + _bindings.spine_bone_update_applied_transform(_bone); + } + + /// Sets this bone's local transform to the setup pose. void setToSetupPose() { _bindings.spine_bone_set_to_setup_pose(_bone); } + /// Transforms a point from world coordinates to the bone's local coordinates. Vec2 worldToLocal(double worldX, double worldY) { final local = _bindings.spine_bone_world_to_local(_bone, worldX, worldY); final result = Vec2(_bindings.spine_vector_get_x(local), _bindings.spine_vector_get_y(local)); @@ -659,6 +777,7 @@ class Bone { return result; } + /// Transforms a point from the bone's local coordinates to world coordinates. Vec2 localToWorld(double localX, double localY) { final world = _bindings.spine_bone_local_to_world(_bone, localX, localY); final result = Vec2(_bindings.spine_vector_get_x(world), _bindings.spine_vector_get_y(world)); @@ -666,14 +785,20 @@ class Bone { return result; } + /// Transforms a world rotation to a local rotation. double worldToLocalRotation(double worldRotation) { return _bindings.spine_bone_world_to_local_rotation(_bone, worldRotation); } + /// Transforms a local rotation to a world rotation. double localToWorldRotation(double localRotation) { return _bindings.spine_bone_local_to_world_rotation(_bone, localRotation); } + /// Rotates the world transform the specified amount. + /// + /// After changes are made to the world transform, [updateAppliedTransform] should be called and [update] will + /// need to be called on any child bones, recursively. void rotateWorld(double degrees) { _bindings.spine_bone_rotate_world(_bone, degrees); } @@ -686,20 +811,24 @@ class Bone { return _bindings.spine_bone_get_world_to_local_rotation_y(_bone); } + /// The bone's setup pose data. BoneData getData() { return BoneData._(_bindings.spine_bone_get_data(_bone)); } + /// The skeleton this bone belongs to. Skeleton getSkeleton() { return Skeleton._(_bindings.spine_bone_get_skeleton(_bone)); } + /// The parent bone, or null if this is the root bone. Bone? getParent() { final parent = _bindings.spine_bone_get_parent(_bone); if (parent.address == nullptr.address) return null; return Bone._(parent); } + /// The immediate children of this bone. List getChildren() { List children = []; final numChildren = _bindings.spine_bone_get_num_children(_bone); @@ -710,6 +839,7 @@ class Bone { return children; } + /// The local x translation. double getX() { return _bindings.spine_bone_get_x(_bone); } @@ -718,6 +848,7 @@ class Bone { _bindings.spine_bone_set_x(_bone, x); } + /// The local y translation. double getY() { return _bindings.spine_bone_get_y(_bone); } @@ -726,6 +857,7 @@ class Bone { _bindings.spine_bone_set_y(_bone, y); } + /// The local rotation in degrees, counter clockwise. double getRotation() { return _bindings.spine_bone_get_rotation(_bone); } @@ -734,6 +866,7 @@ class Bone { _bindings.spine_bone_set_rotation(_bone, rotation); } + /// The local scaleX. double getScaleX() { return _bindings.spine_bone_get_scale_x(_bone); } @@ -742,6 +875,7 @@ class Bone { _bindings.spine_bone_set_scale_x(_bone, scaleX); } + /// The local scaleY. double getScaleY() { return _bindings.spine_bone_get_scale_y(_bone); } @@ -750,6 +884,7 @@ class Bone { _bindings.spine_bone_set_scale_y(_bone, scaleY); } + /// The local shearX. double getShearX() { return _bindings.spine_bone_get_shear_x(_bone); } @@ -758,6 +893,7 @@ class Bone { _bindings.spine_bone_set_shear_x(_bone, shearX); } + /// The local shearY. double getShearY() { return _bindings.spine_bone_get_shear_y(_bone); } @@ -766,6 +902,7 @@ class Bone { _bindings.spine_bone_set_shear_y(_bone, shearY); } + /// The applied local x translation. double getAX() { return _bindings.spine_bone_get_a_x(_bone); } @@ -774,6 +911,7 @@ class Bone { _bindings.spine_bone_set_a_x(_bone, x); } + /// The applied local y translation. double getAY() { return _bindings.spine_bone_get_a_y(_bone); } @@ -782,6 +920,7 @@ class Bone { _bindings.spine_bone_set_a_y(_bone, y); } + /// The applied local rotation in degrees, counter clockwise. double getAppliedRotation() { return _bindings.spine_bone_get_applied_rotation(_bone); } @@ -790,6 +929,7 @@ class Bone { _bindings.spine_bone_set_applied_rotation(_bone, rotation); } + /// The applied local scaleX. double getAScaleX() { return _bindings.spine_bone_get_a_scale_x(_bone); } @@ -798,6 +938,7 @@ class Bone { _bindings.spine_bone_set_a_scale_x(_bone, scaleX); } + /// The applied local scaleY. double getAScaleY() { return _bindings.spine_bone_get_a_scale_y(_bone); } @@ -806,6 +947,7 @@ class Bone { _bindings.spine_bone_set_a_scale_y(_bone, scaleY); } + /// The applied local shearX. double getAShearX() { return _bindings.spine_bone_get_a_shear_x(_bone); } @@ -814,6 +956,7 @@ class Bone { _bindings.spine_bone_set_a_shear_x(_bone, shearX); } + /// The applied local shearY. double getAShearY() { return _bindings.spine_bone_get_a_shear_y(_bone); } @@ -822,6 +965,7 @@ class Bone { _bindings.spine_bone_set_a_shear_y(_bone, shearY); } + /// Part of the world transform matrix for the X axis. If changed, [updateAppliedTransform] should be called. double getA() { return _bindings.spine_bone_get_a(_bone); } @@ -830,6 +974,7 @@ class Bone { _bindings.spine_bone_set_a(_bone, a); } + /// Part of the world transform matrix for the Y axis. If changed, [updateAppliedTransform] should be called. double getB() { return _bindings.spine_bone_get_b(_bone); } @@ -838,6 +983,7 @@ class Bone { _bindings.spine_bone_set_b(_bone, b); } + /// Part of the world transform matrix for the X axis. If changed, [updateAppliedTransform] should be called. double getC() { return _bindings.spine_bone_get_c(_bone); } @@ -846,6 +992,7 @@ class Bone { _bindings.spine_bone_set_c(_bone, c); } + /// Part of the world transform matrix for the Y axis. If changed, [updateAppliedTransform] should be called. double getD() { return _bindings.spine_bone_get_d(_bone); } @@ -854,6 +1001,7 @@ class Bone { _bindings.spine_bone_set_a(_bone, d); } + /// The world X position. If changed, [updateAppliedTransform] should be called. double getWorldX() { return _bindings.spine_bone_get_world_x(_bone); } @@ -862,6 +1010,7 @@ class Bone { _bindings.spine_bone_set_world_x(_bone, worldX); } + /// The world Y position. If changed, [updateAppliedTransform] should be called. double getWorldY() { return _bindings.spine_bone_get_world_y(_bone); } @@ -870,22 +1019,28 @@ class Bone { _bindings.spine_bone_set_world_y(_bone, worldY); } + /// The world rotation for the X axis, calculated using [getA] and [getC]. double getWorldRotationX() { return _bindings.spine_bone_get_world_rotation_x(_bone); } + /// The world rotation for the Y axis, calculated using [getB] and [getD]. double getWorldRotationY() { return _bindings.spine_bone_get_world_rotation_y(_bone); } + /// The magnitude (always positive) of the world scale X, calculated using [getA] and [getC]. double getWorldScaleX() { return _bindings.spine_bone_get_world_scale_x(_bone); } + /// The magnitude (always positive) of the world scale Y, calculated using [getB] and [getD]. double getWorldScaleY() { return _bindings.spine_bone_get_world_scale_y(_bone); } + /// Returns false when the bone has not been computed because [BoneData.getSkinRequired] is true and the + /// active skin (see [Skeleton.getSkin]) does not contain this bone (see [Skin.getBones]). bool isActive() { return _bindings.spine_bone_get_is_active(_bone) == -1; } @@ -3234,7 +3389,7 @@ class SkeletonDrawable { } static Future fromHttp(String atlasFile, String skeletonFile) async { - var atlas = await Atlas.fromUrl(atlasFile); + var atlas = await Atlas.fromHttp(atlasFile); var skeletonData = await SkeletonData.fromHttp(atlas, skeletonFile); return SkeletonDrawable(atlas, skeletonData, true); } diff --git a/spine-flutter/lib/spine_flutter_bindings_generated.dart b/spine-flutter/lib/spine_flutter_bindings_generated.dart index 11390731a..83519f8b5 100644 --- a/spine-flutter/lib/spine_flutter_bindings_generated.dart +++ b/spine-flutter/lib/spine_flutter_bindings_generated.dart @@ -13,27 +13,36 @@ import 'ffi_proxy.dart' as ffi; /// class SpineFlutterBindings { /// Holds the symbol lookup function. - final ffi.Pointer Function(String symbolName) _lookup; + final ffi.Pointer Function(String symbolName) + _lookup; /// The symbols are looked up in [dynamicLibrary]. - SpineFlutterBindings(ffi.DynamicLibrary dynamicLibrary) : _lookup = dynamicLibrary.lookup; + SpineFlutterBindings(ffi.DynamicLibrary dynamicLibrary) + : _lookup = dynamicLibrary.lookup; /// The symbols are looked up with [lookup]. - SpineFlutterBindings.fromLookup(ffi.Pointer Function(String symbolName) lookup) : _lookup = lookup; + SpineFlutterBindings.fromLookup( + ffi.Pointer Function(String symbolName) + lookup) + : _lookup = lookup; int spine_major_version() { return _spine_major_version(); } - late final _spine_major_versionPtr = _lookup>('spine_major_version'); - late final _spine_major_version = _spine_major_versionPtr.asFunction(); + late final _spine_major_versionPtr = + _lookup>('spine_major_version'); + late final _spine_major_version = + _spine_major_versionPtr.asFunction(); int spine_minor_version() { return _spine_minor_version(); } - late final _spine_minor_versionPtr = _lookup>('spine_minor_version'); - late final _spine_minor_version = _spine_minor_versionPtr.asFunction(); + late final _spine_minor_versionPtr = + _lookup>('spine_minor_version'); + late final _spine_minor_version = + _spine_minor_versionPtr.asFunction(); void spine_enable_debug_extension( int enable, @@ -43,15 +52,20 @@ class SpineFlutterBindings { ); } - late final _spine_enable_debug_extensionPtr = _lookup>('spine_enable_debug_extension'); - late final _spine_enable_debug_extension = _spine_enable_debug_extensionPtr.asFunction(); + late final _spine_enable_debug_extensionPtr = + _lookup>( + 'spine_enable_debug_extension'); + late final _spine_enable_debug_extension = + _spine_enable_debug_extensionPtr.asFunction(); void spine_report_leaks() { return _spine_report_leaks(); } - late final _spine_report_leaksPtr = _lookup>('spine_report_leaks'); - late final _spine_report_leaks = _spine_report_leaksPtr.asFunction(); + late final _spine_report_leaksPtr = + _lookup>('spine_report_leaks'); + late final _spine_report_leaks = + _spine_report_leaksPtr.asFunction(); double spine_color_get_r( spine_color color, @@ -61,8 +75,11 @@ class SpineFlutterBindings { ); } - late final _spine_color_get_rPtr = _lookup>('spine_color_get_r'); - late final _spine_color_get_r = _spine_color_get_rPtr.asFunction(); + late final _spine_color_get_rPtr = + _lookup>( + 'spine_color_get_r'); + late final _spine_color_get_r = + _spine_color_get_rPtr.asFunction(); double spine_color_get_g( spine_color color, @@ -72,8 +89,11 @@ class SpineFlutterBindings { ); } - late final _spine_color_get_gPtr = _lookup>('spine_color_get_g'); - late final _spine_color_get_g = _spine_color_get_gPtr.asFunction(); + late final _spine_color_get_gPtr = + _lookup>( + 'spine_color_get_g'); + late final _spine_color_get_g = + _spine_color_get_gPtr.asFunction(); double spine_color_get_b( spine_color color, @@ -83,8 +103,11 @@ class SpineFlutterBindings { ); } - late final _spine_color_get_bPtr = _lookup>('spine_color_get_b'); - late final _spine_color_get_b = _spine_color_get_bPtr.asFunction(); + late final _spine_color_get_bPtr = + _lookup>( + 'spine_color_get_b'); + late final _spine_color_get_b = + _spine_color_get_bPtr.asFunction(); double spine_color_get_a( spine_color color, @@ -94,8 +117,11 @@ class SpineFlutterBindings { ); } - late final _spine_color_get_aPtr = _lookup>('spine_color_get_a'); - late final _spine_color_get_a = _spine_color_get_aPtr.asFunction(); + late final _spine_color_get_aPtr = + _lookup>( + 'spine_color_get_a'); + late final _spine_color_get_a = + _spine_color_get_aPtr.asFunction(); double spine_bounds_get_x( spine_bounds bounds, @@ -105,8 +131,11 @@ class SpineFlutterBindings { ); } - late final _spine_bounds_get_xPtr = _lookup>('spine_bounds_get_x'); - late final _spine_bounds_get_x = _spine_bounds_get_xPtr.asFunction(); + late final _spine_bounds_get_xPtr = + _lookup>( + 'spine_bounds_get_x'); + late final _spine_bounds_get_x = + _spine_bounds_get_xPtr.asFunction(); double spine_bounds_get_y( spine_bounds bounds, @@ -116,8 +145,11 @@ class SpineFlutterBindings { ); } - late final _spine_bounds_get_yPtr = _lookup>('spine_bounds_get_y'); - late final _spine_bounds_get_y = _spine_bounds_get_yPtr.asFunction(); + late final _spine_bounds_get_yPtr = + _lookup>( + 'spine_bounds_get_y'); + late final _spine_bounds_get_y = + _spine_bounds_get_yPtr.asFunction(); double spine_bounds_get_width( spine_bounds bounds, @@ -127,8 +159,11 @@ class SpineFlutterBindings { ); } - late final _spine_bounds_get_widthPtr = _lookup>('spine_bounds_get_width'); - late final _spine_bounds_get_width = _spine_bounds_get_widthPtr.asFunction(); + late final _spine_bounds_get_widthPtr = + _lookup>( + 'spine_bounds_get_width'); + late final _spine_bounds_get_width = + _spine_bounds_get_widthPtr.asFunction(); double spine_bounds_get_height( spine_bounds bounds, @@ -138,8 +173,11 @@ class SpineFlutterBindings { ); } - late final _spine_bounds_get_heightPtr = _lookup>('spine_bounds_get_height'); - late final _spine_bounds_get_height = _spine_bounds_get_heightPtr.asFunction(); + late final _spine_bounds_get_heightPtr = + _lookup>( + 'spine_bounds_get_height'); + late final _spine_bounds_get_height = + _spine_bounds_get_heightPtr.asFunction(); double spine_vector_get_x( spine_vector vector, @@ -149,8 +187,11 @@ class SpineFlutterBindings { ); } - late final _spine_vector_get_xPtr = _lookup>('spine_vector_get_x'); - late final _spine_vector_get_x = _spine_vector_get_xPtr.asFunction(); + late final _spine_vector_get_xPtr = + _lookup>( + 'spine_vector_get_x'); + late final _spine_vector_get_x = + _spine_vector_get_xPtr.asFunction(); double spine_vector_get_y( spine_vector vector, @@ -160,8 +201,11 @@ class SpineFlutterBindings { ); } - late final _spine_vector_get_yPtr = _lookup>('spine_vector_get_y'); - late final _spine_vector_get_y = _spine_vector_get_yPtr.asFunction(); + late final _spine_vector_get_yPtr = + _lookup>( + 'spine_vector_get_y'); + late final _spine_vector_get_y = + _spine_vector_get_yPtr.asFunction(); spine_atlas spine_atlas_load( ffi.Pointer atlasData, @@ -171,8 +215,11 @@ class SpineFlutterBindings { ); } - late final _spine_atlas_loadPtr = _lookup)>>('spine_atlas_load'); - late final _spine_atlas_load = _spine_atlas_loadPtr.asFunction)>(); + late final _spine_atlas_loadPtr = + _lookup)>>( + 'spine_atlas_load'); + late final _spine_atlas_load = _spine_atlas_loadPtr + .asFunction)>(); int spine_atlas_get_num_image_paths( spine_atlas atlas, @@ -183,8 +230,11 @@ class SpineFlutterBindings { } late final _spine_atlas_get_num_image_pathsPtr = - _lookup>('spine_atlas_get_num_image_paths'); - late final _spine_atlas_get_num_image_paths = _spine_atlas_get_num_image_pathsPtr.asFunction(); + _lookup>( + 'spine_atlas_get_num_image_paths'); + late final _spine_atlas_get_num_image_paths = + _spine_atlas_get_num_image_pathsPtr + .asFunction(); ffi.Pointer spine_atlas_get_image_path( spine_atlas atlas, @@ -196,9 +246,12 @@ class SpineFlutterBindings { ); } - late final _spine_atlas_get_image_pathPtr = - _lookup Function(spine_atlas, ffi.Int32)>>('spine_atlas_get_image_path'); - late final _spine_atlas_get_image_path = _spine_atlas_get_image_pathPtr.asFunction Function(spine_atlas, int)>(); + late final _spine_atlas_get_image_pathPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_atlas, ffi.Int32)>>('spine_atlas_get_image_path'); + late final _spine_atlas_get_image_path = _spine_atlas_get_image_pathPtr + .asFunction Function(spine_atlas, int)>(); ffi.Pointer spine_atlas_get_error( spine_atlas atlas, @@ -208,8 +261,11 @@ class SpineFlutterBindings { ); } - late final _spine_atlas_get_errorPtr = _lookup Function(spine_atlas)>>('spine_atlas_get_error'); - late final _spine_atlas_get_error = _spine_atlas_get_errorPtr.asFunction Function(spine_atlas)>(); + late final _spine_atlas_get_errorPtr = + _lookup Function(spine_atlas)>>( + 'spine_atlas_get_error'); + late final _spine_atlas_get_error = _spine_atlas_get_errorPtr + .asFunction Function(spine_atlas)>(); void spine_atlas_dispose( spine_atlas atlas, @@ -219,8 +275,11 @@ class SpineFlutterBindings { ); } - late final _spine_atlas_disposePtr = _lookup>('spine_atlas_dispose'); - late final _spine_atlas_dispose = _spine_atlas_disposePtr.asFunction(); + late final _spine_atlas_disposePtr = + _lookup>( + 'spine_atlas_dispose'); + late final _spine_atlas_dispose = + _spine_atlas_disposePtr.asFunction(); spine_skeleton_data_result spine_skeleton_data_load_json( spine_atlas atlas, @@ -232,10 +291,14 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_load_jsonPtr = - _lookup)>>('spine_skeleton_data_load_json'); + late final _spine_skeleton_data_load_jsonPtr = _lookup< + ffi.NativeFunction< + spine_skeleton_data_result Function(spine_atlas, + ffi.Pointer)>>('spine_skeleton_data_load_json'); late final _spine_skeleton_data_load_json = - _spine_skeleton_data_load_jsonPtr.asFunction)>(); + _spine_skeleton_data_load_jsonPtr.asFunction< + spine_skeleton_data_result Function( + spine_atlas, ffi.Pointer)>(); spine_skeleton_data_result spine_skeleton_data_load_binary( spine_atlas atlas, @@ -249,11 +312,16 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_load_binaryPtr = - _lookup, ffi.Int32)>>( - 'spine_skeleton_data_load_binary'); + late final _spine_skeleton_data_load_binaryPtr = _lookup< + ffi.NativeFunction< + spine_skeleton_data_result Function( + spine_atlas, + ffi.Pointer, + ffi.Int32)>>('spine_skeleton_data_load_binary'); late final _spine_skeleton_data_load_binary = - _spine_skeleton_data_load_binaryPtr.asFunction, int)>(); + _spine_skeleton_data_load_binaryPtr.asFunction< + spine_skeleton_data_result Function( + spine_atlas, ffi.Pointer, int)>(); ffi.Pointer spine_skeleton_data_result_get_error( spine_skeleton_data_result result, @@ -263,10 +331,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_result_get_errorPtr = - _lookup Function(spine_skeleton_data_result)>>('spine_skeleton_data_result_get_error'); + late final _spine_skeleton_data_result_get_errorPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function(spine_skeleton_data_result)>>( + 'spine_skeleton_data_result_get_error'); late final _spine_skeleton_data_result_get_error = - _spine_skeleton_data_result_get_errorPtr.asFunction Function(spine_skeleton_data_result)>(); + _spine_skeleton_data_result_get_errorPtr + .asFunction Function(spine_skeleton_data_result)>(); spine_skeleton_data spine_skeleton_data_result_get_data( spine_skeleton_data_result result, @@ -276,10 +347,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_result_get_dataPtr = - _lookup>('spine_skeleton_data_result_get_data'); + late final _spine_skeleton_data_result_get_dataPtr = _lookup< + ffi.NativeFunction< + spine_skeleton_data Function(spine_skeleton_data_result)>>( + 'spine_skeleton_data_result_get_data'); late final _spine_skeleton_data_result_get_data = - _spine_skeleton_data_result_get_dataPtr.asFunction(); + _spine_skeleton_data_result_get_dataPtr.asFunction< + spine_skeleton_data Function(spine_skeleton_data_result)>(); void spine_skeleton_data_result_dispose( spine_skeleton_data_result result, @@ -289,10 +363,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_result_disposePtr = - _lookup>('spine_skeleton_data_result_dispose'); + late final _spine_skeleton_data_result_disposePtr = _lookup< + ffi.NativeFunction>( + 'spine_skeleton_data_result_dispose'); late final _spine_skeleton_data_result_dispose = - _spine_skeleton_data_result_disposePtr.asFunction(); + _spine_skeleton_data_result_disposePtr + .asFunction(); spine_bone_data spine_skeleton_data_find_bone( spine_skeleton_data data, @@ -304,10 +380,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_find_bonePtr = - _lookup)>>('spine_skeleton_data_find_bone'); + late final _spine_skeleton_data_find_bonePtr = _lookup< + ffi.NativeFunction< + spine_bone_data Function(spine_skeleton_data, + ffi.Pointer)>>('spine_skeleton_data_find_bone'); late final _spine_skeleton_data_find_bone = - _spine_skeleton_data_find_bonePtr.asFunction)>(); + _spine_skeleton_data_find_bonePtr.asFunction< + spine_bone_data Function(spine_skeleton_data, ffi.Pointer)>(); spine_slot_data spine_skeleton_data_find_slot( spine_skeleton_data data, @@ -319,10 +398,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_find_slotPtr = - _lookup)>>('spine_skeleton_data_find_slot'); + late final _spine_skeleton_data_find_slotPtr = _lookup< + ffi.NativeFunction< + spine_slot_data Function(spine_skeleton_data, + ffi.Pointer)>>('spine_skeleton_data_find_slot'); late final _spine_skeleton_data_find_slot = - _spine_skeleton_data_find_slotPtr.asFunction)>(); + _spine_skeleton_data_find_slotPtr.asFunction< + spine_slot_data Function(spine_skeleton_data, ffi.Pointer)>(); spine_skin spine_skeleton_data_find_skin( spine_skeleton_data data, @@ -334,10 +416,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_find_skinPtr = - _lookup)>>('spine_skeleton_data_find_skin'); + late final _spine_skeleton_data_find_skinPtr = _lookup< + ffi.NativeFunction< + spine_skin Function(spine_skeleton_data, + ffi.Pointer)>>('spine_skeleton_data_find_skin'); late final _spine_skeleton_data_find_skin = - _spine_skeleton_data_find_skinPtr.asFunction)>(); + _spine_skeleton_data_find_skinPtr.asFunction< + spine_skin Function(spine_skeleton_data, ffi.Pointer)>(); spine_event_data spine_skeleton_data_find_event( spine_skeleton_data data, @@ -349,10 +434,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_find_eventPtr = - _lookup)>>('spine_skeleton_data_find_event'); + late final _spine_skeleton_data_find_eventPtr = _lookup< + ffi.NativeFunction< + spine_event_data Function(spine_skeleton_data, + ffi.Pointer)>>('spine_skeleton_data_find_event'); late final _spine_skeleton_data_find_event = - _spine_skeleton_data_find_eventPtr.asFunction)>(); + _spine_skeleton_data_find_eventPtr.asFunction< + spine_event_data Function(spine_skeleton_data, ffi.Pointer)>(); spine_animation spine_skeleton_data_find_animation( spine_skeleton_data data, @@ -364,10 +452,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_find_animationPtr = - _lookup)>>('spine_skeleton_data_find_animation'); + late final _spine_skeleton_data_find_animationPtr = _lookup< + ffi.NativeFunction< + spine_animation Function(spine_skeleton_data, + ffi.Pointer)>>('spine_skeleton_data_find_animation'); late final _spine_skeleton_data_find_animation = - _spine_skeleton_data_find_animationPtr.asFunction)>(); + _spine_skeleton_data_find_animationPtr.asFunction< + spine_animation Function(spine_skeleton_data, ffi.Pointer)>(); spine_ik_constraint_data spine_skeleton_data_find_ik_constraint( spine_skeleton_data data, @@ -379,11 +470,14 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_find_ik_constraintPtr = - _lookup)>>( - 'spine_skeleton_data_find_ik_constraint'); + late final _spine_skeleton_data_find_ik_constraintPtr = _lookup< + ffi.NativeFunction< + spine_ik_constraint_data Function(spine_skeleton_data, + ffi.Pointer)>>('spine_skeleton_data_find_ik_constraint'); late final _spine_skeleton_data_find_ik_constraint = - _spine_skeleton_data_find_ik_constraintPtr.asFunction)>(); + _spine_skeleton_data_find_ik_constraintPtr.asFunction< + spine_ik_constraint_data Function( + spine_skeleton_data, ffi.Pointer)>(); spine_transform_constraint_data spine_skeleton_data_find_transform_constraint( spine_skeleton_data data, @@ -395,11 +489,15 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_find_transform_constraintPtr = - _lookup)>>( - 'spine_skeleton_data_find_transform_constraint'); - late final _spine_skeleton_data_find_transform_constraint = _spine_skeleton_data_find_transform_constraintPtr - .asFunction)>(); + late final _spine_skeleton_data_find_transform_constraintPtr = _lookup< + ffi.NativeFunction< + spine_transform_constraint_data Function( + spine_skeleton_data, ffi.Pointer)>>( + 'spine_skeleton_data_find_transform_constraint'); + late final _spine_skeleton_data_find_transform_constraint = + _spine_skeleton_data_find_transform_constraintPtr.asFunction< + spine_transform_constraint_data Function( + spine_skeleton_data, ffi.Pointer)>(); spine_path_constraint_data spine_skeleton_data_find_path_constraint( spine_skeleton_data data, @@ -411,11 +509,14 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_find_path_constraintPtr = - _lookup)>>( - 'spine_skeleton_data_find_path_constraint'); - late final _spine_skeleton_data_find_path_constraint = _spine_skeleton_data_find_path_constraintPtr - .asFunction)>(); + late final _spine_skeleton_data_find_path_constraintPtr = _lookup< + ffi.NativeFunction< + spine_path_constraint_data Function(spine_skeleton_data, + ffi.Pointer)>>('spine_skeleton_data_find_path_constraint'); + late final _spine_skeleton_data_find_path_constraint = + _spine_skeleton_data_find_path_constraintPtr.asFunction< + spine_path_constraint_data Function( + spine_skeleton_data, ffi.Pointer)>(); ffi.Pointer spine_skeleton_data_get_name( spine_skeleton_data data, @@ -425,9 +526,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_namePtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_name'); - late final _spine_skeleton_data_get_name = _spine_skeleton_data_get_namePtr.asFunction Function(spine_skeleton_data)>(); + late final _spine_skeleton_data_get_namePtr = _lookup< + ffi.NativeFunction Function(spine_skeleton_data)>>( + 'spine_skeleton_data_get_name'); + late final _spine_skeleton_data_get_name = _spine_skeleton_data_get_namePtr + .asFunction Function(spine_skeleton_data)>(); /// OMITTED setName() int spine_skeleton_data_get_num_bones( @@ -439,8 +542,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_num_bonesPtr = - _lookup>('spine_skeleton_data_get_num_bones'); - late final _spine_skeleton_data_get_num_bones = _spine_skeleton_data_get_num_bonesPtr.asFunction(); + _lookup>( + 'spine_skeleton_data_get_num_bones'); + late final _spine_skeleton_data_get_num_bones = + _spine_skeleton_data_get_num_bonesPtr + .asFunction(); ffi.Pointer spine_skeleton_data_get_bones( spine_skeleton_data data, @@ -450,10 +556,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_bonesPtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_bones'); - late final _spine_skeleton_data_get_bones = - _spine_skeleton_data_get_bonesPtr.asFunction Function(spine_skeleton_data)>(); + late final _spine_skeleton_data_get_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton_data)>>('spine_skeleton_data_get_bones'); + late final _spine_skeleton_data_get_bones = _spine_skeleton_data_get_bonesPtr + .asFunction Function(spine_skeleton_data)>(); int spine_skeleton_data_get_num_slots( spine_skeleton_data data, @@ -464,8 +572,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_num_slotsPtr = - _lookup>('spine_skeleton_data_get_num_slots'); - late final _spine_skeleton_data_get_num_slots = _spine_skeleton_data_get_num_slotsPtr.asFunction(); + _lookup>( + 'spine_skeleton_data_get_num_slots'); + late final _spine_skeleton_data_get_num_slots = + _spine_skeleton_data_get_num_slotsPtr + .asFunction(); ffi.Pointer spine_skeleton_data_get_slots( spine_skeleton_data data, @@ -475,10 +586,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_slotsPtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_slots'); - late final _spine_skeleton_data_get_slots = - _spine_skeleton_data_get_slotsPtr.asFunction Function(spine_skeleton_data)>(); + late final _spine_skeleton_data_get_slotsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton_data)>>('spine_skeleton_data_get_slots'); + late final _spine_skeleton_data_get_slots = _spine_skeleton_data_get_slotsPtr + .asFunction Function(spine_skeleton_data)>(); int spine_skeleton_data_get_num_skins( spine_skeleton_data data, @@ -489,8 +602,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_num_skinsPtr = - _lookup>('spine_skeleton_data_get_num_skins'); - late final _spine_skeleton_data_get_num_skins = _spine_skeleton_data_get_num_skinsPtr.asFunction(); + _lookup>( + 'spine_skeleton_data_get_num_skins'); + late final _spine_skeleton_data_get_num_skins = + _spine_skeleton_data_get_num_skinsPtr + .asFunction(); ffi.Pointer spine_skeleton_data_get_skins( spine_skeleton_data data, @@ -500,10 +616,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_skinsPtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_skins'); - late final _spine_skeleton_data_get_skins = - _spine_skeleton_data_get_skinsPtr.asFunction Function(spine_skeleton_data)>(); + late final _spine_skeleton_data_get_skinsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton_data)>>('spine_skeleton_data_get_skins'); + late final _spine_skeleton_data_get_skins = _spine_skeleton_data_get_skinsPtr + .asFunction Function(spine_skeleton_data)>(); spine_skin spine_skeleton_data_get_default_skin( spine_skeleton_data data, @@ -514,9 +632,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_default_skinPtr = - _lookup>('spine_skeleton_data_get_default_skin'); + _lookup>( + 'spine_skeleton_data_get_default_skin'); late final _spine_skeleton_data_get_default_skin = - _spine_skeleton_data_get_default_skinPtr.asFunction(); + _spine_skeleton_data_get_default_skinPtr + .asFunction(); void spine_skeleton_data_set_default_skin( spine_skeleton_data data, @@ -528,10 +648,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_set_default_skinPtr = - _lookup>('spine_skeleton_data_set_default_skin'); + late final _spine_skeleton_data_set_default_skinPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_skeleton_data, + spine_skin)>>('spine_skeleton_data_set_default_skin'); late final _spine_skeleton_data_set_default_skin = - _spine_skeleton_data_set_default_skinPtr.asFunction(); + _spine_skeleton_data_set_default_skinPtr + .asFunction(); int spine_skeleton_data_get_num_events( spine_skeleton_data data, @@ -542,8 +665,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_num_eventsPtr = - _lookup>('spine_skeleton_data_get_num_events'); - late final _spine_skeleton_data_get_num_events = _spine_skeleton_data_get_num_eventsPtr.asFunction(); + _lookup>( + 'spine_skeleton_data_get_num_events'); + late final _spine_skeleton_data_get_num_events = + _spine_skeleton_data_get_num_eventsPtr + .asFunction(); ffi.Pointer spine_skeleton_data_get_events( spine_skeleton_data data, @@ -553,10 +679,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_eventsPtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_events'); + late final _spine_skeleton_data_get_eventsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton_data)>>('spine_skeleton_data_get_events'); late final _spine_skeleton_data_get_events = - _spine_skeleton_data_get_eventsPtr.asFunction Function(spine_skeleton_data)>(); + _spine_skeleton_data_get_eventsPtr.asFunction< + ffi.Pointer Function(spine_skeleton_data)>(); int spine_skeleton_data_get_num_animations( spine_skeleton_data data, @@ -567,9 +696,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_num_animationsPtr = - _lookup>('spine_skeleton_data_get_num_animations'); + _lookup>( + 'spine_skeleton_data_get_num_animations'); late final _spine_skeleton_data_get_num_animations = - _spine_skeleton_data_get_num_animationsPtr.asFunction(); + _spine_skeleton_data_get_num_animationsPtr + .asFunction(); ffi.Pointer spine_skeleton_data_get_animations( spine_skeleton_data data, @@ -579,10 +710,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_animationsPtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_animations'); + late final _spine_skeleton_data_get_animationsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton_data)>>('spine_skeleton_data_get_animations'); late final _spine_skeleton_data_get_animations = - _spine_skeleton_data_get_animationsPtr.asFunction Function(spine_skeleton_data)>(); + _spine_skeleton_data_get_animationsPtr.asFunction< + ffi.Pointer Function(spine_skeleton_data)>(); int spine_skeleton_data_get_num_ik_constraints( spine_skeleton_data data, @@ -593,9 +727,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_num_ik_constraintsPtr = - _lookup>('spine_skeleton_data_get_num_ik_constraints'); + _lookup>( + 'spine_skeleton_data_get_num_ik_constraints'); late final _spine_skeleton_data_get_num_ik_constraints = - _spine_skeleton_data_get_num_ik_constraintsPtr.asFunction(); + _spine_skeleton_data_get_num_ik_constraintsPtr + .asFunction(); ffi.Pointer spine_skeleton_data_get_ik_constraints( spine_skeleton_data data, @@ -605,11 +741,14 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_ik_constraintsPtr = - _lookup Function(spine_skeleton_data)>>( - 'spine_skeleton_data_get_ik_constraints'); + late final _spine_skeleton_data_get_ik_constraintsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton_data)>>('spine_skeleton_data_get_ik_constraints'); late final _spine_skeleton_data_get_ik_constraints = - _spine_skeleton_data_get_ik_constraintsPtr.asFunction Function(spine_skeleton_data)>(); + _spine_skeleton_data_get_ik_constraintsPtr.asFunction< + ffi.Pointer Function( + spine_skeleton_data)>(); int spine_skeleton_data_get_num_transform_constraints( spine_skeleton_data data, @@ -620,11 +759,14 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_num_transform_constraintsPtr = - _lookup>('spine_skeleton_data_get_num_transform_constraints'); + _lookup>( + 'spine_skeleton_data_get_num_transform_constraints'); late final _spine_skeleton_data_get_num_transform_constraints = - _spine_skeleton_data_get_num_transform_constraintsPtr.asFunction(); + _spine_skeleton_data_get_num_transform_constraintsPtr + .asFunction(); - ffi.Pointer spine_skeleton_data_get_transform_constraints( + ffi.Pointer + spine_skeleton_data_get_transform_constraints( spine_skeleton_data data, ) { return _spine_skeleton_data_get_transform_constraints( @@ -632,11 +774,15 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_transform_constraintsPtr = - _lookup Function(spine_skeleton_data)>>( - 'spine_skeleton_data_get_transform_constraints'); - late final _spine_skeleton_data_get_transform_constraints = _spine_skeleton_data_get_transform_constraintsPtr - .asFunction Function(spine_skeleton_data)>(); + late final _spine_skeleton_data_get_transform_constraintsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton_data)>>( + 'spine_skeleton_data_get_transform_constraints'); + late final _spine_skeleton_data_get_transform_constraints = + _spine_skeleton_data_get_transform_constraintsPtr.asFunction< + ffi.Pointer Function( + spine_skeleton_data)>(); int spine_skeleton_data_get_num_path_constraints( spine_skeleton_data data, @@ -647,11 +793,14 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_num_path_constraintsPtr = - _lookup>('spine_skeleton_data_get_num_path_constraints'); + _lookup>( + 'spine_skeleton_data_get_num_path_constraints'); late final _spine_skeleton_data_get_num_path_constraints = - _spine_skeleton_data_get_num_path_constraintsPtr.asFunction(); + _spine_skeleton_data_get_num_path_constraintsPtr + .asFunction(); - ffi.Pointer spine_skeleton_data_get_path_constraints( + ffi.Pointer + spine_skeleton_data_get_path_constraints( spine_skeleton_data data, ) { return _spine_skeleton_data_get_path_constraints( @@ -659,11 +808,15 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_path_constraintsPtr = - _lookup Function(spine_skeleton_data)>>( - 'spine_skeleton_data_get_path_constraints'); + late final _spine_skeleton_data_get_path_constraintsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton_data)>>( + 'spine_skeleton_data_get_path_constraints'); late final _spine_skeleton_data_get_path_constraints = - _spine_skeleton_data_get_path_constraintsPtr.asFunction Function(spine_skeleton_data)>(); + _spine_skeleton_data_get_path_constraintsPtr.asFunction< + ffi.Pointer Function( + spine_skeleton_data)>(); double spine_skeleton_data_get_x( spine_skeleton_data data, @@ -674,8 +827,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_xPtr = - _lookup>('spine_skeleton_data_get_x'); - late final _spine_skeleton_data_get_x = _spine_skeleton_data_get_xPtr.asFunction(); + _lookup>( + 'spine_skeleton_data_get_x'); + late final _spine_skeleton_data_get_x = _spine_skeleton_data_get_xPtr + .asFunction(); void spine_skeleton_data_set_x( spine_skeleton_data data, @@ -687,9 +842,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_set_xPtr = - _lookup>('spine_skeleton_data_set_x'); - late final _spine_skeleton_data_set_x = _spine_skeleton_data_set_xPtr.asFunction(); + late final _spine_skeleton_data_set_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_skeleton_data, ffi.Float)>>('spine_skeleton_data_set_x'); + late final _spine_skeleton_data_set_x = _spine_skeleton_data_set_xPtr + .asFunction(); double spine_skeleton_data_get_y( spine_skeleton_data data, @@ -700,8 +858,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_yPtr = - _lookup>('spine_skeleton_data_get_y'); - late final _spine_skeleton_data_get_y = _spine_skeleton_data_get_yPtr.asFunction(); + _lookup>( + 'spine_skeleton_data_get_y'); + late final _spine_skeleton_data_get_y = _spine_skeleton_data_get_yPtr + .asFunction(); void spine_skeleton_data_set_y( spine_skeleton_data data, @@ -713,9 +873,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_set_yPtr = - _lookup>('spine_skeleton_data_set_y'); - late final _spine_skeleton_data_set_y = _spine_skeleton_data_set_yPtr.asFunction(); + late final _spine_skeleton_data_set_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_skeleton_data, ffi.Float)>>('spine_skeleton_data_set_y'); + late final _spine_skeleton_data_set_y = _spine_skeleton_data_set_yPtr + .asFunction(); double spine_skeleton_data_get_width( spine_skeleton_data data, @@ -726,8 +889,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_widthPtr = - _lookup>('spine_skeleton_data_get_width'); - late final _spine_skeleton_data_get_width = _spine_skeleton_data_get_widthPtr.asFunction(); + _lookup>( + 'spine_skeleton_data_get_width'); + late final _spine_skeleton_data_get_width = _spine_skeleton_data_get_widthPtr + .asFunction(); void spine_skeleton_data_set_width( spine_skeleton_data data, @@ -739,9 +904,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_set_widthPtr = - _lookup>('spine_skeleton_data_set_width'); - late final _spine_skeleton_data_set_width = _spine_skeleton_data_set_widthPtr.asFunction(); + late final _spine_skeleton_data_set_widthPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_skeleton_data, + ffi.Float)>>('spine_skeleton_data_set_width'); + late final _spine_skeleton_data_set_width = _spine_skeleton_data_set_widthPtr + .asFunction(); double spine_skeleton_data_get_height( spine_skeleton_data data, @@ -752,8 +920,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_heightPtr = - _lookup>('spine_skeleton_data_get_height'); - late final _spine_skeleton_data_get_height = _spine_skeleton_data_get_heightPtr.asFunction(); + _lookup>( + 'spine_skeleton_data_get_height'); + late final _spine_skeleton_data_get_height = + _spine_skeleton_data_get_heightPtr + .asFunction(); void spine_skeleton_data_set_height( spine_skeleton_data data, @@ -765,9 +936,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_set_heightPtr = - _lookup>('spine_skeleton_data_set_height'); - late final _spine_skeleton_data_set_height = _spine_skeleton_data_set_heightPtr.asFunction(); + late final _spine_skeleton_data_set_heightPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_skeleton_data, + ffi.Float)>>('spine_skeleton_data_set_height'); + late final _spine_skeleton_data_set_height = + _spine_skeleton_data_set_heightPtr + .asFunction(); ffi.Pointer spine_skeleton_data_get_version( spine_skeleton_data data, @@ -777,10 +952,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_versionPtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_version'); + late final _spine_skeleton_data_get_versionPtr = _lookup< + ffi.NativeFunction Function(spine_skeleton_data)>>( + 'spine_skeleton_data_get_version'); late final _spine_skeleton_data_get_version = - _spine_skeleton_data_get_versionPtr.asFunction Function(spine_skeleton_data)>(); + _spine_skeleton_data_get_versionPtr + .asFunction Function(spine_skeleton_data)>(); /// OMITTED setVersion() ffi.Pointer spine_skeleton_data_get_hash( @@ -791,9 +968,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_hashPtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_hash'); - late final _spine_skeleton_data_get_hash = _spine_skeleton_data_get_hashPtr.asFunction Function(spine_skeleton_data)>(); + late final _spine_skeleton_data_get_hashPtr = _lookup< + ffi.NativeFunction Function(spine_skeleton_data)>>( + 'spine_skeleton_data_get_hash'); + late final _spine_skeleton_data_get_hash = _spine_skeleton_data_get_hashPtr + .asFunction Function(spine_skeleton_data)>(); /// OMITTED setHash() ffi.Pointer spine_skeleton_data_get_images_path( @@ -804,10 +983,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_images_pathPtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_images_path'); + late final _spine_skeleton_data_get_images_pathPtr = _lookup< + ffi.NativeFunction Function(spine_skeleton_data)>>( + 'spine_skeleton_data_get_images_path'); late final _spine_skeleton_data_get_images_path = - _spine_skeleton_data_get_images_pathPtr.asFunction Function(spine_skeleton_data)>(); + _spine_skeleton_data_get_images_pathPtr + .asFunction Function(spine_skeleton_data)>(); /// OMITTED setImagesPath() ffi.Pointer spine_skeleton_data_get_audio_path( @@ -818,10 +999,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_data_get_audio_pathPtr = - _lookup Function(spine_skeleton_data)>>('spine_skeleton_data_get_audio_path'); + late final _spine_skeleton_data_get_audio_pathPtr = _lookup< + ffi.NativeFunction Function(spine_skeleton_data)>>( + 'spine_skeleton_data_get_audio_path'); late final _spine_skeleton_data_get_audio_path = - _spine_skeleton_data_get_audio_pathPtr.asFunction Function(spine_skeleton_data)>(); + _spine_skeleton_data_get_audio_pathPtr + .asFunction Function(spine_skeleton_data)>(); /// OMITTED setAudioPath() double spine_skeleton_data_get_fps( @@ -833,8 +1016,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_get_fpsPtr = - _lookup>('spine_skeleton_data_get_fps'); - late final _spine_skeleton_data_get_fps = _spine_skeleton_data_get_fpsPtr.asFunction(); + _lookup>( + 'spine_skeleton_data_get_fps'); + late final _spine_skeleton_data_get_fps = _spine_skeleton_data_get_fpsPtr + .asFunction(); /// OMITTED setFps() void spine_skeleton_data_dispose( @@ -846,8 +1031,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_data_disposePtr = - _lookup>('spine_skeleton_data_dispose'); - late final _spine_skeleton_data_dispose = _spine_skeleton_data_disposePtr.asFunction(); + _lookup>( + 'spine_skeleton_data_dispose'); + late final _spine_skeleton_data_dispose = _spine_skeleton_data_disposePtr + .asFunction(); spine_skeleton_drawable spine_skeleton_drawable_create( spine_skeleton_data skeletonData, @@ -857,10 +1044,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_drawable_createPtr = - _lookup>('spine_skeleton_drawable_create'); + late final _spine_skeleton_drawable_createPtr = _lookup< + ffi.NativeFunction< + spine_skeleton_drawable Function( + spine_skeleton_data)>>('spine_skeleton_drawable_create'); late final _spine_skeleton_drawable_create = - _spine_skeleton_drawable_createPtr.asFunction(); + _spine_skeleton_drawable_createPtr + .asFunction(); spine_render_command spine_skeleton_drawable_render( spine_skeleton_drawable drawable, @@ -870,10 +1060,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_drawable_renderPtr = - _lookup>('spine_skeleton_drawable_render'); + late final _spine_skeleton_drawable_renderPtr = _lookup< + ffi.NativeFunction< + spine_render_command Function( + spine_skeleton_drawable)>>('spine_skeleton_drawable_render'); late final _spine_skeleton_drawable_render = - _spine_skeleton_drawable_renderPtr.asFunction(); + _spine_skeleton_drawable_renderPtr + .asFunction(); void spine_skeleton_drawable_dispose( spine_skeleton_drawable drawable, @@ -884,8 +1077,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_drawable_disposePtr = - _lookup>('spine_skeleton_drawable_dispose'); - late final _spine_skeleton_drawable_dispose = _spine_skeleton_drawable_disposePtr.asFunction(); + _lookup>( + 'spine_skeleton_drawable_dispose'); + late final _spine_skeleton_drawable_dispose = + _spine_skeleton_drawable_disposePtr + .asFunction(); spine_skeleton spine_skeleton_drawable_get_skeleton( spine_skeleton_drawable drawable, @@ -895,10 +1091,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_drawable_get_skeletonPtr = - _lookup>('spine_skeleton_drawable_get_skeleton'); + late final _spine_skeleton_drawable_get_skeletonPtr = _lookup< + ffi.NativeFunction>( + 'spine_skeleton_drawable_get_skeleton'); late final _spine_skeleton_drawable_get_skeleton = - _spine_skeleton_drawable_get_skeletonPtr.asFunction(); + _spine_skeleton_drawable_get_skeletonPtr + .asFunction(); spine_animation_state spine_skeleton_drawable_get_animation_state( spine_skeleton_drawable drawable, @@ -908,10 +1106,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_drawable_get_animation_statePtr = - _lookup>('spine_skeleton_drawable_get_animation_state'); + late final _spine_skeleton_drawable_get_animation_statePtr = _lookup< + ffi.NativeFunction< + spine_animation_state Function(spine_skeleton_drawable)>>( + 'spine_skeleton_drawable_get_animation_state'); late final _spine_skeleton_drawable_get_animation_state = - _spine_skeleton_drawable_get_animation_statePtr.asFunction(); + _spine_skeleton_drawable_get_animation_statePtr.asFunction< + spine_animation_state Function(spine_skeleton_drawable)>(); spine_animation_state_data spine_skeleton_drawable_get_animation_state_data( spine_skeleton_drawable drawable, @@ -921,13 +1122,16 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_drawable_get_animation_state_dataPtr = - _lookup>( - 'spine_skeleton_drawable_get_animation_state_data'); + late final _spine_skeleton_drawable_get_animation_state_dataPtr = _lookup< + ffi.NativeFunction< + spine_animation_state_data Function(spine_skeleton_drawable)>>( + 'spine_skeleton_drawable_get_animation_state_data'); late final _spine_skeleton_drawable_get_animation_state_data = - _spine_skeleton_drawable_get_animation_state_dataPtr.asFunction(); + _spine_skeleton_drawable_get_animation_state_dataPtr.asFunction< + spine_animation_state_data Function(spine_skeleton_drawable)>(); - spine_animation_state_events spine_skeleton_drawable_get_animation_state_events( + spine_animation_state_events + spine_skeleton_drawable_get_animation_state_events( spine_skeleton_drawable drawable, ) { return _spine_skeleton_drawable_get_animation_state_events( @@ -935,11 +1139,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_drawable_get_animation_state_eventsPtr = - _lookup>( - 'spine_skeleton_drawable_get_animation_state_events'); + late final _spine_skeleton_drawable_get_animation_state_eventsPtr = _lookup< + ffi.NativeFunction< + spine_animation_state_events Function(spine_skeleton_drawable)>>( + 'spine_skeleton_drawable_get_animation_state_events'); late final _spine_skeleton_drawable_get_animation_state_events = - _spine_skeleton_drawable_get_animation_state_eventsPtr.asFunction(); + _spine_skeleton_drawable_get_animation_state_eventsPtr.asFunction< + spine_animation_state_events Function(spine_skeleton_drawable)>(); ffi.Pointer spine_render_command_get_positions( spine_render_command command, @@ -949,10 +1155,13 @@ class SpineFlutterBindings { ); } - late final _spine_render_command_get_positionsPtr = - _lookup Function(spine_render_command)>>('spine_render_command_get_positions'); + late final _spine_render_command_get_positionsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_render_command)>>('spine_render_command_get_positions'); late final _spine_render_command_get_positions = - _spine_render_command_get_positionsPtr.asFunction Function(spine_render_command)>(); + _spine_render_command_get_positionsPtr + .asFunction Function(spine_render_command)>(); ffi.Pointer spine_render_command_get_uvs( spine_render_command command, @@ -962,10 +1171,12 @@ class SpineFlutterBindings { ); } - late final _spine_render_command_get_uvsPtr = - _lookup Function(spine_render_command)>>('spine_render_command_get_uvs'); - late final _spine_render_command_get_uvs = - _spine_render_command_get_uvsPtr.asFunction Function(spine_render_command)>(); + late final _spine_render_command_get_uvsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_render_command)>>('spine_render_command_get_uvs'); + late final _spine_render_command_get_uvs = _spine_render_command_get_uvsPtr + .asFunction Function(spine_render_command)>(); ffi.Pointer spine_render_command_get_colors( spine_render_command command, @@ -975,10 +1186,13 @@ class SpineFlutterBindings { ); } - late final _spine_render_command_get_colorsPtr = - _lookup Function(spine_render_command)>>('spine_render_command_get_colors'); + late final _spine_render_command_get_colorsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_render_command)>>('spine_render_command_get_colors'); late final _spine_render_command_get_colors = - _spine_render_command_get_colorsPtr.asFunction Function(spine_render_command)>(); + _spine_render_command_get_colorsPtr + .asFunction Function(spine_render_command)>(); int spine_render_command_get_num_vertices( spine_render_command command, @@ -989,9 +1203,11 @@ class SpineFlutterBindings { } late final _spine_render_command_get_num_verticesPtr = - _lookup>('spine_render_command_get_num_vertices'); + _lookup>( + 'spine_render_command_get_num_vertices'); late final _spine_render_command_get_num_vertices = - _spine_render_command_get_num_verticesPtr.asFunction(); + _spine_render_command_get_num_verticesPtr + .asFunction(); ffi.Pointer spine_render_command_get_indices( spine_render_command command, @@ -1001,10 +1217,13 @@ class SpineFlutterBindings { ); } - late final _spine_render_command_get_indicesPtr = - _lookup Function(spine_render_command)>>('spine_render_command_get_indices'); + late final _spine_render_command_get_indicesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_render_command)>>('spine_render_command_get_indices'); late final _spine_render_command_get_indices = - _spine_render_command_get_indicesPtr.asFunction Function(spine_render_command)>(); + _spine_render_command_get_indicesPtr + .asFunction Function(spine_render_command)>(); int spine_render_command_get_num_indices( spine_render_command command, @@ -1015,9 +1234,11 @@ class SpineFlutterBindings { } late final _spine_render_command_get_num_indicesPtr = - _lookup>('spine_render_command_get_num_indices'); + _lookup>( + 'spine_render_command_get_num_indices'); late final _spine_render_command_get_num_indices = - _spine_render_command_get_num_indicesPtr.asFunction(); + _spine_render_command_get_num_indicesPtr + .asFunction(); int spine_render_command_get_atlas_page( spine_render_command command, @@ -1028,9 +1249,11 @@ class SpineFlutterBindings { } late final _spine_render_command_get_atlas_pagePtr = - _lookup>('spine_render_command_get_atlas_page'); + _lookup>( + 'spine_render_command_get_atlas_page'); late final _spine_render_command_get_atlas_page = - _spine_render_command_get_atlas_pagePtr.asFunction(); + _spine_render_command_get_atlas_pagePtr + .asFunction(); int spine_render_command_get_blend_mode( spine_render_command command, @@ -1041,9 +1264,11 @@ class SpineFlutterBindings { } late final _spine_render_command_get_blend_modePtr = - _lookup>('spine_render_command_get_blend_mode'); + _lookup>( + 'spine_render_command_get_blend_mode'); late final _spine_render_command_get_blend_mode = - _spine_render_command_get_blend_modePtr.asFunction(); + _spine_render_command_get_blend_modePtr + .asFunction(); spine_render_command spine_render_command_get_next( spine_render_command command, @@ -1053,10 +1278,12 @@ class SpineFlutterBindings { ); } - late final _spine_render_command_get_nextPtr = - _lookup>('spine_render_command_get_next'); - late final _spine_render_command_get_next = - _spine_render_command_get_nextPtr.asFunction(); + late final _spine_render_command_get_nextPtr = _lookup< + ffi.NativeFunction< + spine_render_command Function( + spine_render_command)>>('spine_render_command_get_next'); + late final _spine_render_command_get_next = _spine_render_command_get_nextPtr + .asFunction(); ffi.Pointer spine_animation_get_name( spine_animation animation, @@ -1067,8 +1294,10 @@ class SpineFlutterBindings { } late final _spine_animation_get_namePtr = - _lookup Function(spine_animation)>>('spine_animation_get_name'); - late final _spine_animation_get_name = _spine_animation_get_namePtr.asFunction Function(spine_animation)>(); + _lookup Function(spine_animation)>>( + 'spine_animation_get_name'); + late final _spine_animation_get_name = _spine_animation_get_namePtr + .asFunction Function(spine_animation)>(); /// OMITTED getTimelines() /// OMITTED hasTimeline() @@ -1081,8 +1310,10 @@ class SpineFlutterBindings { } late final _spine_animation_get_durationPtr = - _lookup>('spine_animation_get_duration'); - late final _spine_animation_get_duration = _spine_animation_get_durationPtr.asFunction(); + _lookup>( + 'spine_animation_get_duration'); + late final _spine_animation_get_duration = _spine_animation_get_durationPtr + .asFunction(); /// OMITTED setDuration() spine_skeleton_data spine_animation_state_data_get_skeleton_data( @@ -1093,10 +1324,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_data_get_skeleton_dataPtr = - _lookup>('spine_animation_state_data_get_skeleton_data'); + late final _spine_animation_state_data_get_skeleton_dataPtr = _lookup< + ffi.NativeFunction< + spine_skeleton_data Function(spine_animation_state_data)>>( + 'spine_animation_state_data_get_skeleton_data'); late final _spine_animation_state_data_get_skeleton_data = - _spine_animation_state_data_get_skeleton_dataPtr.asFunction(); + _spine_animation_state_data_get_skeleton_dataPtr.asFunction< + spine_skeleton_data Function(spine_animation_state_data)>(); double spine_animation_state_data_get_default_mix( spine_animation_state_data stateData, @@ -1106,10 +1340,12 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_data_get_default_mixPtr = - _lookup>('spine_animation_state_data_get_default_mix'); + late final _spine_animation_state_data_get_default_mixPtr = _lookup< + ffi.NativeFunction>( + 'spine_animation_state_data_get_default_mix'); late final _spine_animation_state_data_get_default_mix = - _spine_animation_state_data_get_default_mixPtr.asFunction(); + _spine_animation_state_data_get_default_mixPtr + .asFunction(); void spine_animation_state_data_set_default_mix( spine_animation_state_data stateData, @@ -1121,10 +1357,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_data_set_default_mixPtr = - _lookup>('spine_animation_state_data_set_default_mix'); + late final _spine_animation_state_data_set_default_mixPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_animation_state_data, + ffi.Float)>>('spine_animation_state_data_set_default_mix'); late final _spine_animation_state_data_set_default_mix = - _spine_animation_state_data_set_default_mixPtr.asFunction(); + _spine_animation_state_data_set_default_mixPtr + .asFunction(); void spine_animation_state_data_set_mix( spine_animation_state_data stateData, @@ -1140,11 +1379,17 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_data_set_mixPtr = - _lookup>( - 'spine_animation_state_data_set_mix'); - late final _spine_animation_state_data_set_mix = _spine_animation_state_data_set_mixPtr - .asFunction(); + late final _spine_animation_state_data_set_mixPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_animation_state_data, + spine_animation, + spine_animation, + ffi.Float)>>('spine_animation_state_data_set_mix'); + late final _spine_animation_state_data_set_mix = + _spine_animation_state_data_set_mixPtr.asFunction< + void Function(spine_animation_state_data, spine_animation, + spine_animation, double)>(); double spine_animation_state_data_get_mix( spine_animation_state_data stateData, @@ -1158,11 +1403,14 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_data_get_mixPtr = - _lookup>( - 'spine_animation_state_data_get_mix'); + late final _spine_animation_state_data_get_mixPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_animation_state_data, spine_animation, + spine_animation)>>('spine_animation_state_data_get_mix'); late final _spine_animation_state_data_get_mix = - _spine_animation_state_data_get_mixPtr.asFunction(); + _spine_animation_state_data_get_mixPtr.asFunction< + double Function( + spine_animation_state_data, spine_animation, spine_animation)>(); void spine_animation_state_data_set_mix_by_name( spine_animation_state_data stateData, @@ -1178,11 +1426,17 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_data_set_mix_by_namePtr = - _lookup, ffi.Pointer, ffi.Float)>>( - 'spine_animation_state_data_set_mix_by_name'); - late final _spine_animation_state_data_set_mix_by_name = _spine_animation_state_data_set_mix_by_namePtr - .asFunction, ffi.Pointer, double)>(); + late final _spine_animation_state_data_set_mix_by_namePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_animation_state_data, + ffi.Pointer, + ffi.Pointer, + ffi.Float)>>('spine_animation_state_data_set_mix_by_name'); + late final _spine_animation_state_data_set_mix_by_name = + _spine_animation_state_data_set_mix_by_namePtr.asFunction< + void Function(spine_animation_state_data, ffi.Pointer, + ffi.Pointer, double)>(); double spine_animation_state_data_get_mix_by_name( spine_animation_state_data stateData, @@ -1196,11 +1450,15 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_data_get_mix_by_namePtr = - _lookup, ffi.Pointer)>>( - 'spine_animation_state_data_get_mix_by_name'); - late final _spine_animation_state_data_get_mix_by_name = _spine_animation_state_data_get_mix_by_namePtr - .asFunction, ffi.Pointer)>(); + late final _spine_animation_state_data_get_mix_by_namePtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_animation_state_data, ffi.Pointer, + ffi.Pointer)>>( + 'spine_animation_state_data_get_mix_by_name'); + late final _spine_animation_state_data_get_mix_by_name = + _spine_animation_state_data_get_mix_by_namePtr.asFunction< + double Function(spine_animation_state_data, ffi.Pointer, + ffi.Pointer)>(); void spine_animation_state_data_clear( spine_animation_state_data stateData, @@ -1210,10 +1468,12 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_data_clearPtr = - _lookup>('spine_animation_state_data_clear'); + late final _spine_animation_state_data_clearPtr = _lookup< + ffi.NativeFunction>( + 'spine_animation_state_data_clear'); late final _spine_animation_state_data_clear = - _spine_animation_state_data_clearPtr.asFunction(); + _spine_animation_state_data_clearPtr + .asFunction(); void spine_animation_state_update( spine_animation_state state, @@ -1225,9 +1485,12 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_updatePtr = - _lookup>('spine_animation_state_update'); - late final _spine_animation_state_update = _spine_animation_state_updatePtr.asFunction(); + late final _spine_animation_state_updatePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_animation_state, + ffi.Float)>>('spine_animation_state_update'); + late final _spine_animation_state_update = _spine_animation_state_updatePtr + .asFunction(); void spine_animation_state_apply( spine_animation_state state, @@ -1239,10 +1502,12 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_applyPtr = - _lookup>('spine_animation_state_apply'); - late final _spine_animation_state_apply = - _spine_animation_state_applyPtr.asFunction(); + late final _spine_animation_state_applyPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_animation_state, + spine_skeleton)>>('spine_animation_state_apply'); + late final _spine_animation_state_apply = _spine_animation_state_applyPtr + .asFunction(); void spine_animation_state_clear_tracks( spine_animation_state state, @@ -1253,9 +1518,11 @@ class SpineFlutterBindings { } late final _spine_animation_state_clear_tracksPtr = - _lookup>('spine_animation_state_clear_tracks'); + _lookup>( + 'spine_animation_state_clear_tracks'); late final _spine_animation_state_clear_tracks = - _spine_animation_state_clear_tracksPtr.asFunction(); + _spine_animation_state_clear_tracksPtr + .asFunction(); void spine_animation_state_clear_track( spine_animation_state state, @@ -1267,10 +1534,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_clear_trackPtr = - _lookup>('spine_animation_state_clear_track'); + late final _spine_animation_state_clear_trackPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_animation_state, + ffi.Int32)>>('spine_animation_state_clear_track'); late final _spine_animation_state_clear_track = - _spine_animation_state_clear_trackPtr.asFunction(); + _spine_animation_state_clear_trackPtr + .asFunction(); int spine_animation_state_get_num_tracks( spine_animation_state state, @@ -1281,9 +1551,11 @@ class SpineFlutterBindings { } late final _spine_animation_state_get_num_tracksPtr = - _lookup>('spine_animation_state_get_num_tracks'); + _lookup>( + 'spine_animation_state_get_num_tracks'); late final _spine_animation_state_get_num_tracks = - _spine_animation_state_get_num_tracksPtr.asFunction(); + _spine_animation_state_get_num_tracksPtr + .asFunction(); spine_track_entry spine_animation_state_set_animation_by_name( spine_animation_state state, @@ -1299,11 +1571,17 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_set_animation_by_namePtr = - _lookup, ffi.Int32)>>( - 'spine_animation_state_set_animation_by_name'); - late final _spine_animation_state_set_animation_by_name = _spine_animation_state_set_animation_by_namePtr - .asFunction, int)>(); + late final _spine_animation_state_set_animation_by_namePtr = _lookup< + ffi.NativeFunction< + spine_track_entry Function( + spine_animation_state, + ffi.Int32, + ffi.Pointer, + ffi.Int32)>>('spine_animation_state_set_animation_by_name'); + late final _spine_animation_state_set_animation_by_name = + _spine_animation_state_set_animation_by_namePtr.asFunction< + spine_track_entry Function( + spine_animation_state, int, ffi.Pointer, int)>(); spine_track_entry spine_animation_state_set_animation( spine_animation_state state, @@ -1319,11 +1597,17 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_set_animationPtr = - _lookup>( - 'spine_animation_state_set_animation'); + late final _spine_animation_state_set_animationPtr = _lookup< + ffi.NativeFunction< + spine_track_entry Function( + spine_animation_state, + ffi.Int32, + spine_animation, + ffi.Int32)>>('spine_animation_state_set_animation'); late final _spine_animation_state_set_animation = - _spine_animation_state_set_animationPtr.asFunction(); + _spine_animation_state_set_animationPtr.asFunction< + spine_track_entry Function( + spine_animation_state, int, spine_animation, int)>(); spine_track_entry spine_animation_state_add_animation_by_name( spine_animation_state state, @@ -1341,11 +1625,18 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_add_animation_by_namePtr = - _lookup, ffi.Int32, ffi.Float)>>( - 'spine_animation_state_add_animation_by_name'); - late final _spine_animation_state_add_animation_by_name = _spine_animation_state_add_animation_by_namePtr - .asFunction, int, double)>(); + late final _spine_animation_state_add_animation_by_namePtr = _lookup< + ffi.NativeFunction< + spine_track_entry Function( + spine_animation_state, + ffi.Int32, + ffi.Pointer, + ffi.Int32, + ffi.Float)>>('spine_animation_state_add_animation_by_name'); + late final _spine_animation_state_add_animation_by_name = + _spine_animation_state_add_animation_by_namePtr.asFunction< + spine_track_entry Function( + spine_animation_state, int, ffi.Pointer, int, double)>(); spine_track_entry spine_animation_state_add_animation( spine_animation_state state, @@ -1363,11 +1654,18 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_add_animationPtr = - _lookup>( - 'spine_animation_state_add_animation'); - late final _spine_animation_state_add_animation = _spine_animation_state_add_animationPtr - .asFunction(); + late final _spine_animation_state_add_animationPtr = _lookup< + ffi.NativeFunction< + spine_track_entry Function( + spine_animation_state, + ffi.Int32, + spine_animation, + ffi.Int32, + ffi.Float)>>('spine_animation_state_add_animation'); + late final _spine_animation_state_add_animation = + _spine_animation_state_add_animationPtr.asFunction< + spine_track_entry Function( + spine_animation_state, int, spine_animation, int, double)>(); spine_track_entry spine_animation_state_set_empty_animation( spine_animation_state state, @@ -1381,11 +1679,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_set_empty_animationPtr = - _lookup>( - 'spine_animation_state_set_empty_animation'); + late final _spine_animation_state_set_empty_animationPtr = _lookup< + ffi.NativeFunction< + spine_track_entry Function(spine_animation_state, ffi.Int32, + ffi.Float)>>('spine_animation_state_set_empty_animation'); late final _spine_animation_state_set_empty_animation = - _spine_animation_state_set_empty_animationPtr.asFunction(); + _spine_animation_state_set_empty_animationPtr.asFunction< + spine_track_entry Function(spine_animation_state, int, double)>(); spine_track_entry spine_animation_state_add_empty_animation( spine_animation_state state, @@ -1401,11 +1701,17 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_add_empty_animationPtr = - _lookup>( - 'spine_animation_state_add_empty_animation'); + late final _spine_animation_state_add_empty_animationPtr = _lookup< + ffi.NativeFunction< + spine_track_entry Function( + spine_animation_state, + ffi.Int32, + ffi.Float, + ffi.Float)>>('spine_animation_state_add_empty_animation'); late final _spine_animation_state_add_empty_animation = - _spine_animation_state_add_empty_animationPtr.asFunction(); + _spine_animation_state_add_empty_animationPtr.asFunction< + spine_track_entry Function( + spine_animation_state, int, double, double)>(); void spine_animation_state_set_empty_animations( spine_animation_state state, @@ -1417,10 +1723,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_set_empty_animationsPtr = - _lookup>('spine_animation_state_set_empty_animations'); + late final _spine_animation_state_set_empty_animationsPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_animation_state, + ffi.Float)>>('spine_animation_state_set_empty_animations'); late final _spine_animation_state_set_empty_animations = - _spine_animation_state_set_empty_animationsPtr.asFunction(); + _spine_animation_state_set_empty_animationsPtr + .asFunction(); spine_track_entry spine_animation_state_get_current( spine_animation_state state, @@ -1432,10 +1741,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_get_currentPtr = - _lookup>('spine_animation_state_get_current'); + late final _spine_animation_state_get_currentPtr = _lookup< + ffi.NativeFunction< + spine_track_entry Function(spine_animation_state, + ffi.Int32)>>('spine_animation_state_get_current'); late final _spine_animation_state_get_current = - _spine_animation_state_get_currentPtr.asFunction(); + _spine_animation_state_get_currentPtr + .asFunction(); spine_animation_state_data spine_animation_state_get_data( spine_animation_state state, @@ -1445,10 +1757,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_get_dataPtr = - _lookup>('spine_animation_state_get_data'); + late final _spine_animation_state_get_dataPtr = _lookup< + ffi.NativeFunction< + spine_animation_state_data Function( + spine_animation_state)>>('spine_animation_state_get_data'); late final _spine_animation_state_get_data = - _spine_animation_state_get_dataPtr.asFunction(); + _spine_animation_state_get_dataPtr.asFunction< + spine_animation_state_data Function(spine_animation_state)>(); double spine_animation_state_get_time_scale( spine_animation_state state, @@ -1459,9 +1774,11 @@ class SpineFlutterBindings { } late final _spine_animation_state_get_time_scalePtr = - _lookup>('spine_animation_state_get_time_scale'); + _lookup>( + 'spine_animation_state_get_time_scale'); late final _spine_animation_state_get_time_scale = - _spine_animation_state_get_time_scalePtr.asFunction(); + _spine_animation_state_get_time_scalePtr + .asFunction(); void spine_animation_state_set_time_scale( spine_animation_state state, @@ -1473,10 +1790,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_set_time_scalePtr = - _lookup>('spine_animation_state_set_time_scale'); + late final _spine_animation_state_set_time_scalePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_animation_state, + ffi.Float)>>('spine_animation_state_set_time_scale'); late final _spine_animation_state_set_time_scale = - _spine_animation_state_set_time_scalePtr.asFunction(); + _spine_animation_state_set_time_scalePtr + .asFunction(); /// OMITTED setListener() /// OMITTED setListener() @@ -1494,10 +1814,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_dispose_track_entryPtr = - _lookup>('spine_animation_state_dispose_track_entry'); + late final _spine_animation_state_dispose_track_entryPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_animation_state, + spine_track_entry)>>('spine_animation_state_dispose_track_entry'); late final _spine_animation_state_dispose_track_entry = - _spine_animation_state_dispose_track_entryPtr.asFunction(); + _spine_animation_state_dispose_track_entryPtr.asFunction< + void Function(spine_animation_state, spine_track_entry)>(); int spine_animation_state_events_get_num_events( spine_animation_state_events events, @@ -1507,10 +1830,12 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_events_get_num_eventsPtr = - _lookup>('spine_animation_state_events_get_num_events'); + late final _spine_animation_state_events_get_num_eventsPtr = _lookup< + ffi.NativeFunction>( + 'spine_animation_state_events_get_num_events'); late final _spine_animation_state_events_get_num_events = - _spine_animation_state_events_get_num_eventsPtr.asFunction(); + _spine_animation_state_events_get_num_eventsPtr + .asFunction(); int spine_animation_state_events_get_event_type( spine_animation_state_events events, @@ -1522,11 +1847,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_events_get_event_typePtr = - _lookup>( - 'spine_animation_state_events_get_event_type'); + late final _spine_animation_state_events_get_event_typePtr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function(spine_animation_state_events, + ffi.Int32)>>('spine_animation_state_events_get_event_type'); late final _spine_animation_state_events_get_event_type = - _spine_animation_state_events_get_event_typePtr.asFunction(); + _spine_animation_state_events_get_event_typePtr + .asFunction(); spine_track_entry spine_animation_state_events_get_track_entry( spine_animation_state_events events, @@ -1538,11 +1865,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_events_get_track_entryPtr = - _lookup>( - 'spine_animation_state_events_get_track_entry'); + late final _spine_animation_state_events_get_track_entryPtr = _lookup< + ffi.NativeFunction< + spine_track_entry Function(spine_animation_state_events, + ffi.Int32)>>('spine_animation_state_events_get_track_entry'); late final _spine_animation_state_events_get_track_entry = - _spine_animation_state_events_get_track_entryPtr.asFunction(); + _spine_animation_state_events_get_track_entryPtr.asFunction< + spine_track_entry Function(spine_animation_state_events, int)>(); spine_event spine_animation_state_events_get_event( spine_animation_state_events events, @@ -1554,10 +1883,13 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_events_get_eventPtr = - _lookup>('spine_animation_state_events_get_event'); + late final _spine_animation_state_events_get_eventPtr = _lookup< + ffi.NativeFunction< + spine_event Function(spine_animation_state_events, + ffi.Int32)>>('spine_animation_state_events_get_event'); late final _spine_animation_state_events_get_event = - _spine_animation_state_events_get_eventPtr.asFunction(); + _spine_animation_state_events_get_eventPtr.asFunction< + spine_event Function(spine_animation_state_events, int)>(); void spine_animation_state_events_reset( spine_animation_state_events events, @@ -1567,10 +1899,12 @@ class SpineFlutterBindings { ); } - late final _spine_animation_state_events_resetPtr = - _lookup>('spine_animation_state_events_reset'); + late final _spine_animation_state_events_resetPtr = _lookup< + ffi.NativeFunction>( + 'spine_animation_state_events_reset'); late final _spine_animation_state_events_reset = - _spine_animation_state_events_resetPtr.asFunction(); + _spine_animation_state_events_resetPtr + .asFunction(); int spine_track_entry_get_track_index( spine_track_entry entry, @@ -1581,8 +1915,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_track_indexPtr = - _lookup>('spine_track_entry_get_track_index'); - late final _spine_track_entry_get_track_index = _spine_track_entry_get_track_indexPtr.asFunction(); + _lookup>( + 'spine_track_entry_get_track_index'); + late final _spine_track_entry_get_track_index = + _spine_track_entry_get_track_indexPtr + .asFunction(); spine_animation spine_track_entry_get_animation( spine_track_entry entry, @@ -1593,9 +1930,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_animationPtr = - _lookup>('spine_track_entry_get_animation'); + _lookup>( + 'spine_track_entry_get_animation'); late final _spine_track_entry_get_animation = - _spine_track_entry_get_animationPtr.asFunction(); + _spine_track_entry_get_animationPtr + .asFunction(); spine_track_entry spine_track_entry_get_previous( spine_track_entry entry, @@ -1605,10 +1944,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_get_previousPtr = - _lookup>('spine_track_entry_get_previous'); + late final _spine_track_entry_get_previousPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_get_previous'); late final _spine_track_entry_get_previous = - _spine_track_entry_get_previousPtr.asFunction(); + _spine_track_entry_get_previousPtr + .asFunction(); int spine_track_entry_get_loop( spine_track_entry entry, @@ -1619,8 +1960,10 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_loopPtr = - _lookup>('spine_track_entry_get_loop'); - late final _spine_track_entry_get_loop = _spine_track_entry_get_loopPtr.asFunction(); + _lookup>( + 'spine_track_entry_get_loop'); + late final _spine_track_entry_get_loop = _spine_track_entry_get_loopPtr + .asFunction(); void spine_track_entry_set_loop( spine_track_entry entry, @@ -1632,9 +1975,11 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_loopPtr = - _lookup>('spine_track_entry_set_loop'); - late final _spine_track_entry_set_loop = _spine_track_entry_set_loopPtr.asFunction(); + late final _spine_track_entry_set_loopPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_loop'); + late final _spine_track_entry_set_loop = _spine_track_entry_set_loopPtr + .asFunction(); int spine_track_entry_get_hold_previous( spine_track_entry entry, @@ -1645,8 +1990,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_hold_previousPtr = - _lookup>('spine_track_entry_get_hold_previous'); - late final _spine_track_entry_get_hold_previous = _spine_track_entry_get_hold_previousPtr.asFunction(); + _lookup>( + 'spine_track_entry_get_hold_previous'); + late final _spine_track_entry_get_hold_previous = + _spine_track_entry_get_hold_previousPtr + .asFunction(); void spine_track_entry_set_hold_previous( spine_track_entry entry, @@ -1658,10 +2006,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_hold_previousPtr = - _lookup>('spine_track_entry_set_hold_previous'); + late final _spine_track_entry_set_hold_previousPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_hold_previous'); late final _spine_track_entry_set_hold_previous = - _spine_track_entry_set_hold_previousPtr.asFunction(); + _spine_track_entry_set_hold_previousPtr + .asFunction(); int spine_track_entry_get_reverse( spine_track_entry entry, @@ -1672,8 +2022,10 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_reversePtr = - _lookup>('spine_track_entry_get_reverse'); - late final _spine_track_entry_get_reverse = _spine_track_entry_get_reversePtr.asFunction(); + _lookup>( + 'spine_track_entry_get_reverse'); + late final _spine_track_entry_get_reverse = _spine_track_entry_get_reversePtr + .asFunction(); void spine_track_entry_set_reverse( spine_track_entry entry, @@ -1685,9 +2037,11 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_reversePtr = - _lookup>('spine_track_entry_set_reverse'); - late final _spine_track_entry_set_reverse = _spine_track_entry_set_reversePtr.asFunction(); + late final _spine_track_entry_set_reversePtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_reverse'); + late final _spine_track_entry_set_reverse = _spine_track_entry_set_reversePtr + .asFunction(); int spine_track_entry_get_shortest_rotation( spine_track_entry entry, @@ -1698,9 +2052,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_shortest_rotationPtr = - _lookup>('spine_track_entry_get_shortest_rotation'); + _lookup>( + 'spine_track_entry_get_shortest_rotation'); late final _spine_track_entry_get_shortest_rotation = - _spine_track_entry_get_shortest_rotationPtr.asFunction(); + _spine_track_entry_get_shortest_rotationPtr + .asFunction(); void spine_track_entry_set_shortest_rotation( spine_track_entry entry, @@ -1712,10 +2068,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_shortest_rotationPtr = - _lookup>('spine_track_entry_set_shortest_rotation'); + late final _spine_track_entry_set_shortest_rotationPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_shortest_rotation'); late final _spine_track_entry_set_shortest_rotation = - _spine_track_entry_set_shortest_rotationPtr.asFunction(); + _spine_track_entry_set_shortest_rotationPtr + .asFunction(); double spine_track_entry_get_delay( spine_track_entry entry, @@ -1726,8 +2084,10 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_delayPtr = - _lookup>('spine_track_entry_get_delay'); - late final _spine_track_entry_get_delay = _spine_track_entry_get_delayPtr.asFunction(); + _lookup>( + 'spine_track_entry_get_delay'); + late final _spine_track_entry_get_delay = _spine_track_entry_get_delayPtr + .asFunction(); void spine_track_entry_set_delay( spine_track_entry entry, @@ -1739,9 +2099,11 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_delayPtr = - _lookup>('spine_track_entry_set_delay'); - late final _spine_track_entry_set_delay = _spine_track_entry_set_delayPtr.asFunction(); + late final _spine_track_entry_set_delayPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_delay'); + late final _spine_track_entry_set_delay = _spine_track_entry_set_delayPtr + .asFunction(); double spine_track_entry_get_track_time( spine_track_entry entry, @@ -1752,8 +2114,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_track_timePtr = - _lookup>('spine_track_entry_get_track_time'); - late final _spine_track_entry_get_track_time = _spine_track_entry_get_track_timePtr.asFunction(); + _lookup>( + 'spine_track_entry_get_track_time'); + late final _spine_track_entry_get_track_time = + _spine_track_entry_get_track_timePtr + .asFunction(); void spine_track_entry_set_track_time( spine_track_entry entry, @@ -1765,10 +2130,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_track_timePtr = - _lookup>('spine_track_entry_set_track_time'); + late final _spine_track_entry_set_track_timePtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_track_time'); late final _spine_track_entry_set_track_time = - _spine_track_entry_set_track_timePtr.asFunction(); + _spine_track_entry_set_track_timePtr + .asFunction(); double spine_track_entry_get_track_end( spine_track_entry entry, @@ -1779,8 +2146,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_track_endPtr = - _lookup>('spine_track_entry_get_track_end'); - late final _spine_track_entry_get_track_end = _spine_track_entry_get_track_endPtr.asFunction(); + _lookup>( + 'spine_track_entry_get_track_end'); + late final _spine_track_entry_get_track_end = + _spine_track_entry_get_track_endPtr + .asFunction(); void spine_track_entry_set_track_end( spine_track_entry entry, @@ -1792,9 +2162,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_track_endPtr = - _lookup>('spine_track_entry_set_track_end'); - late final _spine_track_entry_set_track_end = _spine_track_entry_set_track_endPtr.asFunction(); + late final _spine_track_entry_set_track_endPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_track_end'); + late final _spine_track_entry_set_track_end = + _spine_track_entry_set_track_endPtr + .asFunction(); double spine_track_entry_get_animation_start( spine_track_entry entry, @@ -1805,9 +2178,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_animation_startPtr = - _lookup>('spine_track_entry_get_animation_start'); + _lookup>( + 'spine_track_entry_get_animation_start'); late final _spine_track_entry_get_animation_start = - _spine_track_entry_get_animation_startPtr.asFunction(); + _spine_track_entry_get_animation_startPtr + .asFunction(); void spine_track_entry_set_animation_start( spine_track_entry entry, @@ -1819,10 +2194,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_animation_startPtr = - _lookup>('spine_track_entry_set_animation_start'); + late final _spine_track_entry_set_animation_startPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_animation_start'); late final _spine_track_entry_set_animation_start = - _spine_track_entry_set_animation_startPtr.asFunction(); + _spine_track_entry_set_animation_startPtr + .asFunction(); double spine_track_entry_get_animation_end( spine_track_entry entry, @@ -1833,9 +2210,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_animation_endPtr = - _lookup>('spine_track_entry_get_animation_end'); + _lookup>( + 'spine_track_entry_get_animation_end'); late final _spine_track_entry_get_animation_end = - _spine_track_entry_get_animation_endPtr.asFunction(); + _spine_track_entry_get_animation_endPtr + .asFunction(); void spine_track_entry_set_animation_end( spine_track_entry entry, @@ -1847,10 +2226,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_animation_endPtr = - _lookup>('spine_track_entry_set_animation_end'); + late final _spine_track_entry_set_animation_endPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_animation_end'); late final _spine_track_entry_set_animation_end = - _spine_track_entry_set_animation_endPtr.asFunction(); + _spine_track_entry_set_animation_endPtr + .asFunction(); double spine_track_entry_get_animation_last( spine_track_entry entry, @@ -1861,9 +2242,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_animation_lastPtr = - _lookup>('spine_track_entry_get_animation_last'); + _lookup>( + 'spine_track_entry_get_animation_last'); late final _spine_track_entry_get_animation_last = - _spine_track_entry_get_animation_lastPtr.asFunction(); + _spine_track_entry_get_animation_lastPtr + .asFunction(); void spine_track_entry_set_animation_last( spine_track_entry entry, @@ -1875,10 +2258,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_animation_lastPtr = - _lookup>('spine_track_entry_set_animation_last'); + late final _spine_track_entry_set_animation_lastPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_animation_last'); late final _spine_track_entry_set_animation_last = - _spine_track_entry_set_animation_lastPtr.asFunction(); + _spine_track_entry_set_animation_lastPtr + .asFunction(); double spine_track_entry_get_animation_time( spine_track_entry entry, @@ -1889,9 +2274,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_animation_timePtr = - _lookup>('spine_track_entry_get_animation_time'); + _lookup>( + 'spine_track_entry_get_animation_time'); late final _spine_track_entry_get_animation_time = - _spine_track_entry_get_animation_timePtr.asFunction(); + _spine_track_entry_get_animation_timePtr + .asFunction(); double spine_track_entry_get_time_scale( spine_track_entry entry, @@ -1902,8 +2289,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_time_scalePtr = - _lookup>('spine_track_entry_get_time_scale'); - late final _spine_track_entry_get_time_scale = _spine_track_entry_get_time_scalePtr.asFunction(); + _lookup>( + 'spine_track_entry_get_time_scale'); + late final _spine_track_entry_get_time_scale = + _spine_track_entry_get_time_scalePtr + .asFunction(); void spine_track_entry_set_time_scale( spine_track_entry entry, @@ -1915,10 +2305,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_time_scalePtr = - _lookup>('spine_track_entry_set_time_scale'); + late final _spine_track_entry_set_time_scalePtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_time_scale'); late final _spine_track_entry_set_time_scale = - _spine_track_entry_set_time_scalePtr.asFunction(); + _spine_track_entry_set_time_scalePtr + .asFunction(); double spine_track_entry_get_alpha( spine_track_entry entry, @@ -1929,8 +2321,10 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_alphaPtr = - _lookup>('spine_track_entry_get_alpha'); - late final _spine_track_entry_get_alpha = _spine_track_entry_get_alphaPtr.asFunction(); + _lookup>( + 'spine_track_entry_get_alpha'); + late final _spine_track_entry_get_alpha = _spine_track_entry_get_alphaPtr + .asFunction(); void spine_track_entry_set_alpha( spine_track_entry entry, @@ -1942,9 +2336,11 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_alphaPtr = - _lookup>('spine_track_entry_set_alpha'); - late final _spine_track_entry_set_alpha = _spine_track_entry_set_alphaPtr.asFunction(); + late final _spine_track_entry_set_alphaPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_alpha'); + late final _spine_track_entry_set_alpha = _spine_track_entry_set_alphaPtr + .asFunction(); double spine_track_entry_get_event_threshold( spine_track_entry entry, @@ -1955,9 +2351,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_event_thresholdPtr = - _lookup>('spine_track_entry_get_event_threshold'); + _lookup>( + 'spine_track_entry_get_event_threshold'); late final _spine_track_entry_get_event_threshold = - _spine_track_entry_get_event_thresholdPtr.asFunction(); + _spine_track_entry_get_event_thresholdPtr + .asFunction(); void spine_track_entry_set_event_threshold( spine_track_entry entry, @@ -1969,10 +2367,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_event_thresholdPtr = - _lookup>('spine_track_entry_set_event_threshold'); + late final _spine_track_entry_set_event_thresholdPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_event_threshold'); late final _spine_track_entry_set_event_threshold = - _spine_track_entry_set_event_thresholdPtr.asFunction(); + _spine_track_entry_set_event_thresholdPtr + .asFunction(); double spine_track_entry_get_attachment_threshold( spine_track_entry entry, @@ -1983,9 +2383,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_attachment_thresholdPtr = - _lookup>('spine_track_entry_get_attachment_threshold'); + _lookup>( + 'spine_track_entry_get_attachment_threshold'); late final _spine_track_entry_get_attachment_threshold = - _spine_track_entry_get_attachment_thresholdPtr.asFunction(); + _spine_track_entry_get_attachment_thresholdPtr + .asFunction(); void spine_track_entry_set_attachment_threshold( spine_track_entry entry, @@ -1997,10 +2399,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_attachment_thresholdPtr = - _lookup>('spine_track_entry_set_attachment_threshold'); + late final _spine_track_entry_set_attachment_thresholdPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_attachment_threshold'); late final _spine_track_entry_set_attachment_threshold = - _spine_track_entry_set_attachment_thresholdPtr.asFunction(); + _spine_track_entry_set_attachment_thresholdPtr + .asFunction(); double spine_track_entry_get_draw_order_threshold( spine_track_entry entry, @@ -2011,9 +2415,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_draw_order_thresholdPtr = - _lookup>('spine_track_entry_get_draw_order_threshold'); + _lookup>( + 'spine_track_entry_get_draw_order_threshold'); late final _spine_track_entry_get_draw_order_threshold = - _spine_track_entry_get_draw_order_thresholdPtr.asFunction(); + _spine_track_entry_get_draw_order_thresholdPtr + .asFunction(); void spine_track_entry_set_draw_order_threshold( spine_track_entry entry, @@ -2025,10 +2431,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_draw_order_thresholdPtr = - _lookup>('spine_track_entry_set_draw_order_threshold'); + late final _spine_track_entry_set_draw_order_thresholdPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_draw_order_threshold'); late final _spine_track_entry_set_draw_order_threshold = - _spine_track_entry_set_draw_order_thresholdPtr.asFunction(); + _spine_track_entry_set_draw_order_thresholdPtr + .asFunction(); spine_track_entry spine_track_entry_get_next( spine_track_entry entry, @@ -2038,9 +2446,11 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_get_nextPtr = - _lookup>('spine_track_entry_get_next'); - late final _spine_track_entry_get_next = _spine_track_entry_get_nextPtr.asFunction(); + late final _spine_track_entry_get_nextPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_get_next'); + late final _spine_track_entry_get_next = _spine_track_entry_get_nextPtr + .asFunction(); int spine_track_entry_is_complete( spine_track_entry entry, @@ -2051,8 +2461,10 @@ class SpineFlutterBindings { } late final _spine_track_entry_is_completePtr = - _lookup>('spine_track_entry_is_complete'); - late final _spine_track_entry_is_complete = _spine_track_entry_is_completePtr.asFunction(); + _lookup>( + 'spine_track_entry_is_complete'); + late final _spine_track_entry_is_complete = _spine_track_entry_is_completePtr + .asFunction(); double spine_track_entry_get_mix_time( spine_track_entry entry, @@ -2063,8 +2475,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_mix_timePtr = - _lookup>('spine_track_entry_get_mix_time'); - late final _spine_track_entry_get_mix_time = _spine_track_entry_get_mix_timePtr.asFunction(); + _lookup>( + 'spine_track_entry_get_mix_time'); + late final _spine_track_entry_get_mix_time = + _spine_track_entry_get_mix_timePtr + .asFunction(); void spine_track_entry_set_mix_time( spine_track_entry entry, @@ -2076,9 +2491,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_mix_timePtr = - _lookup>('spine_track_entry_set_mix_time'); - late final _spine_track_entry_set_mix_time = _spine_track_entry_set_mix_timePtr.asFunction(); + late final _spine_track_entry_set_mix_timePtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_mix_time'); + late final _spine_track_entry_set_mix_time = + _spine_track_entry_set_mix_timePtr + .asFunction(); double spine_track_entry_get_mix_duration( spine_track_entry entry, @@ -2089,8 +2507,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_mix_durationPtr = - _lookup>('spine_track_entry_get_mix_duration'); - late final _spine_track_entry_get_mix_duration = _spine_track_entry_get_mix_durationPtr.asFunction(); + _lookup>( + 'spine_track_entry_get_mix_duration'); + late final _spine_track_entry_get_mix_duration = + _spine_track_entry_get_mix_durationPtr + .asFunction(); void spine_track_entry_set_mix_duration( spine_track_entry entry, @@ -2102,10 +2523,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_mix_durationPtr = - _lookup>('spine_track_entry_set_mix_duration'); + late final _spine_track_entry_set_mix_durationPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_mix_duration'); late final _spine_track_entry_set_mix_duration = - _spine_track_entry_set_mix_durationPtr.asFunction(); + _spine_track_entry_set_mix_durationPtr + .asFunction(); int spine_track_entry_get_mix_blend( spine_track_entry entry, @@ -2116,8 +2539,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_mix_blendPtr = - _lookup>('spine_track_entry_get_mix_blend'); - late final _spine_track_entry_get_mix_blend = _spine_track_entry_get_mix_blendPtr.asFunction(); + _lookup>( + 'spine_track_entry_get_mix_blend'); + late final _spine_track_entry_get_mix_blend = + _spine_track_entry_get_mix_blendPtr + .asFunction(); void spine_track_entry_set_mix_blend( spine_track_entry entry, @@ -2129,9 +2555,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_set_mix_blendPtr = - _lookup>('spine_track_entry_set_mix_blend'); - late final _spine_track_entry_set_mix_blend = _spine_track_entry_set_mix_blendPtr.asFunction(); + late final _spine_track_entry_set_mix_blendPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_set_mix_blend'); + late final _spine_track_entry_set_mix_blend = + _spine_track_entry_set_mix_blendPtr + .asFunction(); spine_track_entry spine_track_entry_get_mixing_from( spine_track_entry entry, @@ -2141,10 +2570,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_get_mixing_fromPtr = - _lookup>('spine_track_entry_get_mixing_from'); + late final _spine_track_entry_get_mixing_fromPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_get_mixing_from'); late final _spine_track_entry_get_mixing_from = - _spine_track_entry_get_mixing_fromPtr.asFunction(); + _spine_track_entry_get_mixing_fromPtr + .asFunction(); spine_track_entry spine_track_entry_get_mixing_to( spine_track_entry entry, @@ -2154,10 +2585,12 @@ class SpineFlutterBindings { ); } - late final _spine_track_entry_get_mixing_toPtr = - _lookup>('spine_track_entry_get_mixing_to'); + late final _spine_track_entry_get_mixing_toPtr = _lookup< + ffi.NativeFunction>( + 'spine_track_entry_get_mixing_to'); late final _spine_track_entry_get_mixing_to = - _spine_track_entry_get_mixing_toPtr.asFunction(); + _spine_track_entry_get_mixing_toPtr + .asFunction(); void spine_track_entry_reset_rotation_directions( spine_track_entry entry, @@ -2168,9 +2601,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_reset_rotation_directionsPtr = - _lookup>('spine_track_entry_reset_rotation_directions'); + _lookup>( + 'spine_track_entry_reset_rotation_directions'); late final _spine_track_entry_reset_rotation_directions = - _spine_track_entry_reset_rotation_directionsPtr.asFunction(); + _spine_track_entry_reset_rotation_directionsPtr + .asFunction(); double spine_track_entry_get_track_complete( spine_track_entry entry, @@ -2181,9 +2616,11 @@ class SpineFlutterBindings { } late final _spine_track_entry_get_track_completePtr = - _lookup>('spine_track_entry_get_track_complete'); + _lookup>( + 'spine_track_entry_get_track_complete'); late final _spine_track_entry_get_track_complete = - _spine_track_entry_get_track_completePtr.asFunction(); + _spine_track_entry_get_track_completePtr + .asFunction(); /// OMITTED setListener() /// OMITTED setListener() @@ -2196,8 +2633,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_update_cachePtr = - _lookup>('spine_skeleton_update_cache'); - late final _spine_skeleton_update_cache = _spine_skeleton_update_cachePtr.asFunction(); + _lookup>( + 'spine_skeleton_update_cache'); + late final _spine_skeleton_update_cache = _spine_skeleton_update_cachePtr + .asFunction(); /// OMITTED printUpdateCache() void spine_skeleton_update_world_transform( @@ -2209,8 +2648,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_update_world_transformPtr = - _lookup>('spine_skeleton_update_world_transform'); - late final _spine_skeleton_update_world_transform = _spine_skeleton_update_world_transformPtr.asFunction(); + _lookup>( + 'spine_skeleton_update_world_transform'); + late final _spine_skeleton_update_world_transform = + _spine_skeleton_update_world_transformPtr + .asFunction(); void spine_skeleton_update_world_transform_bone( spine_skeleton skeleton, @@ -2222,10 +2664,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_update_world_transform_bonePtr = - _lookup>('spine_skeleton_update_world_transform_bone'); + late final _spine_skeleton_update_world_transform_bonePtr = _lookup< + ffi.NativeFunction>( + 'spine_skeleton_update_world_transform_bone'); late final _spine_skeleton_update_world_transform_bone = - _spine_skeleton_update_world_transform_bonePtr.asFunction(); + _spine_skeleton_update_world_transform_bonePtr + .asFunction(); void spine_skeleton_set_to_setup_pose( spine_skeleton skeleton, @@ -2236,8 +2680,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_set_to_setup_posePtr = - _lookup>('spine_skeleton_set_to_setup_pose'); - late final _spine_skeleton_set_to_setup_pose = _spine_skeleton_set_to_setup_posePtr.asFunction(); + _lookup>( + 'spine_skeleton_set_to_setup_pose'); + late final _spine_skeleton_set_to_setup_pose = + _spine_skeleton_set_to_setup_posePtr + .asFunction(); void spine_skeleton_set_bones_to_setup_pose( spine_skeleton skeleton, @@ -2248,9 +2695,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_set_bones_to_setup_posePtr = - _lookup>('spine_skeleton_set_bones_to_setup_pose'); + _lookup>( + 'spine_skeleton_set_bones_to_setup_pose'); late final _spine_skeleton_set_bones_to_setup_pose = - _spine_skeleton_set_bones_to_setup_posePtr.asFunction(); + _spine_skeleton_set_bones_to_setup_posePtr + .asFunction(); void spine_skeleton_set_slots_to_setup_pose( spine_skeleton skeleton, @@ -2261,9 +2710,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_set_slots_to_setup_posePtr = - _lookup>('spine_skeleton_set_slots_to_setup_pose'); + _lookup>( + 'spine_skeleton_set_slots_to_setup_pose'); late final _spine_skeleton_set_slots_to_setup_pose = - _spine_skeleton_set_slots_to_setup_posePtr.asFunction(); + _spine_skeleton_set_slots_to_setup_posePtr + .asFunction(); spine_bone spine_skeleton_find_bone( spine_skeleton skeleton, @@ -2275,9 +2726,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_find_bonePtr = - _lookup)>>('spine_skeleton_find_bone'); - late final _spine_skeleton_find_bone = _spine_skeleton_find_bonePtr.asFunction)>(); + late final _spine_skeleton_find_bonePtr = _lookup< + ffi.NativeFunction< + spine_bone Function( + spine_skeleton, ffi.Pointer)>>('spine_skeleton_find_bone'); + late final _spine_skeleton_find_bone = _spine_skeleton_find_bonePtr + .asFunction)>(); spine_slot spine_skeleton_find_slot( spine_skeleton skeleton, @@ -2289,9 +2743,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_find_slotPtr = - _lookup)>>('spine_skeleton_find_slot'); - late final _spine_skeleton_find_slot = _spine_skeleton_find_slotPtr.asFunction)>(); + late final _spine_skeleton_find_slotPtr = _lookup< + ffi.NativeFunction< + spine_slot Function( + spine_skeleton, ffi.Pointer)>>('spine_skeleton_find_slot'); + late final _spine_skeleton_find_slot = _spine_skeleton_find_slotPtr + .asFunction)>(); void spine_skeleton_set_skin_by_name( spine_skeleton skeleton, @@ -2303,10 +2760,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_set_skin_by_namePtr = - _lookup)>>('spine_skeleton_set_skin_by_name'); + late final _spine_skeleton_set_skin_by_namePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_skeleton, + ffi.Pointer)>>('spine_skeleton_set_skin_by_name'); late final _spine_skeleton_set_skin_by_name = - _spine_skeleton_set_skin_by_namePtr.asFunction)>(); + _spine_skeleton_set_skin_by_namePtr + .asFunction)>(); void spine_skeleton_set_skin( spine_skeleton skeleton, @@ -2318,9 +2778,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_set_skinPtr = - _lookup>('spine_skeleton_set_skin'); - late final _spine_skeleton_set_skin = _spine_skeleton_set_skinPtr.asFunction(); + late final _spine_skeleton_set_skinPtr = _lookup< + ffi.NativeFunction>( + 'spine_skeleton_set_skin'); + late final _spine_skeleton_set_skin = _spine_skeleton_set_skinPtr + .asFunction(); spine_attachment spine_skeleton_get_attachment_by_name( spine_skeleton skeleton, @@ -2334,11 +2796,14 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_attachment_by_namePtr = - _lookup, ffi.Pointer)>>( - 'spine_skeleton_get_attachment_by_name'); - late final _spine_skeleton_get_attachment_by_name = _spine_skeleton_get_attachment_by_namePtr - .asFunction, ffi.Pointer)>(); + late final _spine_skeleton_get_attachment_by_namePtr = _lookup< + ffi.NativeFunction< + spine_attachment Function(spine_skeleton, ffi.Pointer, + ffi.Pointer)>>('spine_skeleton_get_attachment_by_name'); + late final _spine_skeleton_get_attachment_by_name = + _spine_skeleton_get_attachment_by_namePtr.asFunction< + spine_attachment Function( + spine_skeleton, ffi.Pointer, ffi.Pointer)>(); spine_attachment spine_skeleton_get_attachment( spine_skeleton skeleton, @@ -2352,10 +2817,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_attachmentPtr = - _lookup)>>('spine_skeleton_get_attachment'); + late final _spine_skeleton_get_attachmentPtr = _lookup< + ffi.NativeFunction< + spine_attachment Function(spine_skeleton, ffi.Int32, + ffi.Pointer)>>('spine_skeleton_get_attachment'); late final _spine_skeleton_get_attachment = - _spine_skeleton_get_attachmentPtr.asFunction)>(); + _spine_skeleton_get_attachmentPtr.asFunction< + spine_attachment Function(spine_skeleton, int, ffi.Pointer)>(); void spine_skeleton_set_attachment( spine_skeleton skeleton, @@ -2369,10 +2837,14 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_set_attachmentPtr = - _lookup, ffi.Pointer)>>('spine_skeleton_set_attachment'); + late final _spine_skeleton_set_attachmentPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_skeleton, ffi.Pointer, + ffi.Pointer)>>('spine_skeleton_set_attachment'); late final _spine_skeleton_set_attachment = - _spine_skeleton_set_attachmentPtr.asFunction, ffi.Pointer)>(); + _spine_skeleton_set_attachmentPtr.asFunction< + void Function( + spine_skeleton, ffi.Pointer, ffi.Pointer)>(); spine_ik_constraint spine_skeleton_find_ik_constraint( spine_skeleton skeleton, @@ -2384,10 +2856,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_find_ik_constraintPtr = - _lookup)>>('spine_skeleton_find_ik_constraint'); + late final _spine_skeleton_find_ik_constraintPtr = _lookup< + ffi.NativeFunction< + spine_ik_constraint Function(spine_skeleton, + ffi.Pointer)>>('spine_skeleton_find_ik_constraint'); late final _spine_skeleton_find_ik_constraint = - _spine_skeleton_find_ik_constraintPtr.asFunction)>(); + _spine_skeleton_find_ik_constraintPtr.asFunction< + spine_ik_constraint Function(spine_skeleton, ffi.Pointer)>(); spine_transform_constraint spine_skeleton_find_transform_constraint( spine_skeleton skeleton, @@ -2399,11 +2874,14 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_find_transform_constraintPtr = - _lookup)>>( - 'spine_skeleton_find_transform_constraint'); + late final _spine_skeleton_find_transform_constraintPtr = _lookup< + ffi.NativeFunction< + spine_transform_constraint Function(spine_skeleton, + ffi.Pointer)>>('spine_skeleton_find_transform_constraint'); late final _spine_skeleton_find_transform_constraint = - _spine_skeleton_find_transform_constraintPtr.asFunction)>(); + _spine_skeleton_find_transform_constraintPtr.asFunction< + spine_transform_constraint Function( + spine_skeleton, ffi.Pointer)>(); spine_path_constraint spine_skeleton_find_path_constraint( spine_skeleton skeleton, @@ -2415,10 +2893,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_find_path_constraintPtr = - _lookup)>>('spine_skeleton_find_path_constraint'); + late final _spine_skeleton_find_path_constraintPtr = _lookup< + ffi.NativeFunction< + spine_path_constraint Function(spine_skeleton, + ffi.Pointer)>>('spine_skeleton_find_path_constraint'); late final _spine_skeleton_find_path_constraint = - _spine_skeleton_find_path_constraintPtr.asFunction)>(); + _spine_skeleton_find_path_constraintPtr.asFunction< + spine_path_constraint Function(spine_skeleton, ffi.Pointer)>(); spine_bounds spine_skeleton_get_bounds( spine_skeleton skeleton, @@ -2429,8 +2910,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_get_boundsPtr = - _lookup>('spine_skeleton_get_bounds'); - late final _spine_skeleton_get_bounds = _spine_skeleton_get_boundsPtr.asFunction(); + _lookup>( + 'spine_skeleton_get_bounds'); + late final _spine_skeleton_get_bounds = _spine_skeleton_get_boundsPtr + .asFunction(); spine_bone spine_skeleton_get_root_bone( spine_skeleton skeleton, @@ -2441,8 +2924,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_get_root_bonePtr = - _lookup>('spine_skeleton_get_root_bone'); - late final _spine_skeleton_get_root_bone = _spine_skeleton_get_root_bonePtr.asFunction(); + _lookup>( + 'spine_skeleton_get_root_bone'); + late final _spine_skeleton_get_root_bone = _spine_skeleton_get_root_bonePtr + .asFunction(); spine_skeleton_data spine_skeleton_get_data( spine_skeleton skeleton, @@ -2453,8 +2938,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_get_dataPtr = - _lookup>('spine_skeleton_get_data'); - late final _spine_skeleton_get_data = _spine_skeleton_get_dataPtr.asFunction(); + _lookup>( + 'spine_skeleton_get_data'); + late final _spine_skeleton_get_data = _spine_skeleton_get_dataPtr + .asFunction(); int spine_skeleton_get_num_bones( spine_skeleton skeleton, @@ -2465,8 +2952,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_get_num_bonesPtr = - _lookup>('spine_skeleton_get_num_bones'); - late final _spine_skeleton_get_num_bones = _spine_skeleton_get_num_bonesPtr.asFunction(); + _lookup>( + 'spine_skeleton_get_num_bones'); + late final _spine_skeleton_get_num_bones = _spine_skeleton_get_num_bonesPtr + .asFunction(); ffi.Pointer spine_skeleton_get_bones( spine_skeleton skeleton, @@ -2476,9 +2965,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_bonesPtr = - _lookup Function(spine_skeleton)>>('spine_skeleton_get_bones'); - late final _spine_skeleton_get_bones = _spine_skeleton_get_bonesPtr.asFunction Function(spine_skeleton)>(); + late final _spine_skeleton_get_bonesPtr = _lookup< + ffi.NativeFunction Function(spine_skeleton)>>( + 'spine_skeleton_get_bones'); + late final _spine_skeleton_get_bones = _spine_skeleton_get_bonesPtr + .asFunction Function(spine_skeleton)>(); /// OMITTED getUpdateCacheList() int spine_skeleton_get_num_slots( @@ -2490,8 +2981,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_get_num_slotsPtr = - _lookup>('spine_skeleton_get_num_slots'); - late final _spine_skeleton_get_num_slots = _spine_skeleton_get_num_slotsPtr.asFunction(); + _lookup>( + 'spine_skeleton_get_num_slots'); + late final _spine_skeleton_get_num_slots = _spine_skeleton_get_num_slotsPtr + .asFunction(); ffi.Pointer spine_skeleton_get_slots( spine_skeleton skeleton, @@ -2501,9 +2994,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_slotsPtr = - _lookup Function(spine_skeleton)>>('spine_skeleton_get_slots'); - late final _spine_skeleton_get_slots = _spine_skeleton_get_slotsPtr.asFunction Function(spine_skeleton)>(); + late final _spine_skeleton_get_slotsPtr = _lookup< + ffi.NativeFunction Function(spine_skeleton)>>( + 'spine_skeleton_get_slots'); + late final _spine_skeleton_get_slots = _spine_skeleton_get_slotsPtr + .asFunction Function(spine_skeleton)>(); int spine_skeleton_get_num_draw_order( spine_skeleton skeleton, @@ -2514,8 +3009,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_get_num_draw_orderPtr = - _lookup>('spine_skeleton_get_num_draw_order'); - late final _spine_skeleton_get_num_draw_order = _spine_skeleton_get_num_draw_orderPtr.asFunction(); + _lookup>( + 'spine_skeleton_get_num_draw_order'); + late final _spine_skeleton_get_num_draw_order = + _spine_skeleton_get_num_draw_orderPtr + .asFunction(); ffi.Pointer spine_skeleton_get_draw_order( spine_skeleton skeleton, @@ -2525,10 +3023,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_draw_orderPtr = - _lookup Function(spine_skeleton)>>('spine_skeleton_get_draw_order'); - late final _spine_skeleton_get_draw_order = - _spine_skeleton_get_draw_orderPtr.asFunction Function(spine_skeleton)>(); + late final _spine_skeleton_get_draw_orderPtr = _lookup< + ffi.NativeFunction Function(spine_skeleton)>>( + 'spine_skeleton_get_draw_order'); + late final _spine_skeleton_get_draw_order = _spine_skeleton_get_draw_orderPtr + .asFunction Function(spine_skeleton)>(); int spine_skeleton_get_num_ik_constraints( spine_skeleton skeleton, @@ -2539,8 +3038,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_get_num_ik_constraintsPtr = - _lookup>('spine_skeleton_get_num_ik_constraints'); - late final _spine_skeleton_get_num_ik_constraints = _spine_skeleton_get_num_ik_constraintsPtr.asFunction(); + _lookup>( + 'spine_skeleton_get_num_ik_constraints'); + late final _spine_skeleton_get_num_ik_constraints = + _spine_skeleton_get_num_ik_constraintsPtr + .asFunction(); ffi.Pointer spine_skeleton_get_ik_constraints( spine_skeleton skeleton, @@ -2550,10 +3052,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_ik_constraintsPtr = - _lookup Function(spine_skeleton)>>('spine_skeleton_get_ik_constraints'); + late final _spine_skeleton_get_ik_constraintsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton)>>('spine_skeleton_get_ik_constraints'); late final _spine_skeleton_get_ik_constraints = - _spine_skeleton_get_ik_constraintsPtr.asFunction Function(spine_skeleton)>(); + _spine_skeleton_get_ik_constraintsPtr.asFunction< + ffi.Pointer Function(spine_skeleton)>(); int spine_skeleton_get_num_transform_constraints( spine_skeleton skeleton, @@ -2564,11 +3069,14 @@ class SpineFlutterBindings { } late final _spine_skeleton_get_num_transform_constraintsPtr = - _lookup>('spine_skeleton_get_num_transform_constraints'); + _lookup>( + 'spine_skeleton_get_num_transform_constraints'); late final _spine_skeleton_get_num_transform_constraints = - _spine_skeleton_get_num_transform_constraintsPtr.asFunction(); + _spine_skeleton_get_num_transform_constraintsPtr + .asFunction(); - ffi.Pointer spine_skeleton_get_transform_constraints( + ffi.Pointer + spine_skeleton_get_transform_constraints( spine_skeleton skeleton, ) { return _spine_skeleton_get_transform_constraints( @@ -2576,11 +3084,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_transform_constraintsPtr = - _lookup Function(spine_skeleton)>>( - 'spine_skeleton_get_transform_constraints'); + late final _spine_skeleton_get_transform_constraintsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton)>>('spine_skeleton_get_transform_constraints'); late final _spine_skeleton_get_transform_constraints = - _spine_skeleton_get_transform_constraintsPtr.asFunction Function(spine_skeleton)>(); + _spine_skeleton_get_transform_constraintsPtr.asFunction< + ffi.Pointer Function(spine_skeleton)>(); int spine_skeleton_get_num_path_constraints( spine_skeleton skeleton, @@ -2591,9 +3101,11 @@ class SpineFlutterBindings { } late final _spine_skeleton_get_num_path_constraintsPtr = - _lookup>('spine_skeleton_get_num_path_constraints'); + _lookup>( + 'spine_skeleton_get_num_path_constraints'); late final _spine_skeleton_get_num_path_constraints = - _spine_skeleton_get_num_path_constraintsPtr.asFunction(); + _spine_skeleton_get_num_path_constraintsPtr + .asFunction(); ffi.Pointer spine_skeleton_get_path_constraints( spine_skeleton skeleton, @@ -2603,10 +3115,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_path_constraintsPtr = - _lookup Function(spine_skeleton)>>('spine_skeleton_get_path_constraints'); + late final _spine_skeleton_get_path_constraintsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skeleton)>>('spine_skeleton_get_path_constraints'); late final _spine_skeleton_get_path_constraints = - _spine_skeleton_get_path_constraintsPtr.asFunction Function(spine_skeleton)>(); + _spine_skeleton_get_path_constraintsPtr.asFunction< + ffi.Pointer Function(spine_skeleton)>(); spine_skin spine_skeleton_get_skin( spine_skeleton skeleton, @@ -2616,8 +3131,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_skinPtr = _lookup>('spine_skeleton_get_skin'); - late final _spine_skeleton_get_skin = _spine_skeleton_get_skinPtr.asFunction(); + late final _spine_skeleton_get_skinPtr = + _lookup>( + 'spine_skeleton_get_skin'); + late final _spine_skeleton_get_skin = _spine_skeleton_get_skinPtr + .asFunction(); spine_color spine_skeleton_get_color( spine_skeleton skeleton, @@ -2627,8 +3145,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_colorPtr = _lookup>('spine_skeleton_get_color'); - late final _spine_skeleton_get_color = _spine_skeleton_get_colorPtr.asFunction(); + late final _spine_skeleton_get_colorPtr = + _lookup>( + 'spine_skeleton_get_color'); + late final _spine_skeleton_get_color = _spine_skeleton_get_colorPtr + .asFunction(); void spine_skeleton_set_color( spine_skeleton skeleton, @@ -2646,11 +3167,13 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_set_colorPtr = - _lookup>( - 'spine_skeleton_set_color'); + late final _spine_skeleton_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_skeleton, ffi.Float, ffi.Float, ffi.Float, + ffi.Float)>>('spine_skeleton_set_color'); late final _spine_skeleton_set_color = - _spine_skeleton_set_colorPtr.asFunction(); + _spine_skeleton_set_colorPtr.asFunction< + void Function(spine_skeleton, double, double, double, double)>(); void spine_skeleton_set_position( spine_skeleton skeleton, @@ -2664,9 +3187,12 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_set_positionPtr = - _lookup>('spine_skeleton_set_position'); - late final _spine_skeleton_set_position = _spine_skeleton_set_positionPtr.asFunction(); + late final _spine_skeleton_set_positionPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_skeleton, ffi.Float, + ffi.Float)>>('spine_skeleton_set_position'); + late final _spine_skeleton_set_position = _spine_skeleton_set_positionPtr + .asFunction(); double spine_skeleton_get_x( spine_skeleton skeleton, @@ -2676,8 +3202,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_xPtr = _lookup>('spine_skeleton_get_x'); - late final _spine_skeleton_get_x = _spine_skeleton_get_xPtr.asFunction(); + late final _spine_skeleton_get_xPtr = + _lookup>( + 'spine_skeleton_get_x'); + late final _spine_skeleton_get_x = + _spine_skeleton_get_xPtr.asFunction(); void spine_skeleton_set_x( spine_skeleton skeleton, @@ -2689,8 +3218,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_set_xPtr = _lookup>('spine_skeleton_set_x'); - late final _spine_skeleton_set_x = _spine_skeleton_set_xPtr.asFunction(); + late final _spine_skeleton_set_xPtr = + _lookup>( + 'spine_skeleton_set_x'); + late final _spine_skeleton_set_x = _spine_skeleton_set_xPtr + .asFunction(); double spine_skeleton_get_y( spine_skeleton skeleton, @@ -2700,8 +3232,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_yPtr = _lookup>('spine_skeleton_get_y'); - late final _spine_skeleton_get_y = _spine_skeleton_get_yPtr.asFunction(); + late final _spine_skeleton_get_yPtr = + _lookup>( + 'spine_skeleton_get_y'); + late final _spine_skeleton_get_y = + _spine_skeleton_get_yPtr.asFunction(); void spine_skeleton_set_y( spine_skeleton skeleton, @@ -2713,8 +3248,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_set_yPtr = _lookup>('spine_skeleton_set_y'); - late final _spine_skeleton_set_y = _spine_skeleton_set_yPtr.asFunction(); + late final _spine_skeleton_set_yPtr = + _lookup>( + 'spine_skeleton_set_y'); + late final _spine_skeleton_set_y = _spine_skeleton_set_yPtr + .asFunction(); double spine_skeleton_get_scale_x( spine_skeleton skeleton, @@ -2724,8 +3262,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_scale_xPtr = _lookup>('spine_skeleton_get_scale_x'); - late final _spine_skeleton_get_scale_x = _spine_skeleton_get_scale_xPtr.asFunction(); + late final _spine_skeleton_get_scale_xPtr = + _lookup>( + 'spine_skeleton_get_scale_x'); + late final _spine_skeleton_get_scale_x = _spine_skeleton_get_scale_xPtr + .asFunction(); void spine_skeleton_set_scale_x( spine_skeleton skeleton, @@ -2738,8 +3279,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_set_scale_xPtr = - _lookup>('spine_skeleton_set_scale_x'); - late final _spine_skeleton_set_scale_x = _spine_skeleton_set_scale_xPtr.asFunction(); + _lookup>( + 'spine_skeleton_set_scale_x'); + late final _spine_skeleton_set_scale_x = _spine_skeleton_set_scale_xPtr + .asFunction(); double spine_skeleton_get_scale_y( spine_skeleton skeleton, @@ -2749,8 +3292,11 @@ class SpineFlutterBindings { ); } - late final _spine_skeleton_get_scale_yPtr = _lookup>('spine_skeleton_get_scale_y'); - late final _spine_skeleton_get_scale_y = _spine_skeleton_get_scale_yPtr.asFunction(); + late final _spine_skeleton_get_scale_yPtr = + _lookup>( + 'spine_skeleton_get_scale_y'); + late final _spine_skeleton_get_scale_y = _spine_skeleton_get_scale_yPtr + .asFunction(); void spine_skeleton_set_scale_y( spine_skeleton skeleton, @@ -2763,8 +3309,10 @@ class SpineFlutterBindings { } late final _spine_skeleton_set_scale_yPtr = - _lookup>('spine_skeleton_set_scale_y'); - late final _spine_skeleton_set_scale_y = _spine_skeleton_set_scale_yPtr.asFunction(); + _lookup>( + 'spine_skeleton_set_scale_y'); + late final _spine_skeleton_set_scale_y = _spine_skeleton_set_scale_yPtr + .asFunction(); ffi.Pointer spine_event_data_get_name( spine_event_data event, @@ -2775,8 +3323,10 @@ class SpineFlutterBindings { } late final _spine_event_data_get_namePtr = - _lookup Function(spine_event_data)>>('spine_event_data_get_name'); - late final _spine_event_data_get_name = _spine_event_data_get_namePtr.asFunction Function(spine_event_data)>(); + _lookup Function(spine_event_data)>>( + 'spine_event_data_get_name'); + late final _spine_event_data_get_name = _spine_event_data_get_namePtr + .asFunction Function(spine_event_data)>(); int spine_event_data_get_int_value( spine_event_data event, @@ -2787,8 +3337,11 @@ class SpineFlutterBindings { } late final _spine_event_data_get_int_valuePtr = - _lookup>('spine_event_data_get_int_value'); - late final _spine_event_data_get_int_value = _spine_event_data_get_int_valuePtr.asFunction(); + _lookup>( + 'spine_event_data_get_int_value'); + late final _spine_event_data_get_int_value = + _spine_event_data_get_int_valuePtr + .asFunction(); void spine_event_data_set_int_value( spine_event_data event, @@ -2800,9 +3353,12 @@ class SpineFlutterBindings { ); } - late final _spine_event_data_set_int_valuePtr = - _lookup>('spine_event_data_set_int_value'); - late final _spine_event_data_set_int_value = _spine_event_data_set_int_valuePtr.asFunction(); + late final _spine_event_data_set_int_valuePtr = _lookup< + ffi.NativeFunction>( + 'spine_event_data_set_int_value'); + late final _spine_event_data_set_int_value = + _spine_event_data_set_int_valuePtr + .asFunction(); double spine_event_data_get_float_value( spine_event_data event, @@ -2813,8 +3369,11 @@ class SpineFlutterBindings { } late final _spine_event_data_get_float_valuePtr = - _lookup>('spine_event_data_get_float_value'); - late final _spine_event_data_get_float_value = _spine_event_data_get_float_valuePtr.asFunction(); + _lookup>( + 'spine_event_data_get_float_value'); + late final _spine_event_data_get_float_value = + _spine_event_data_get_float_valuePtr + .asFunction(); void spine_event_data_set_float_value( spine_event_data event, @@ -2826,9 +3385,12 @@ class SpineFlutterBindings { ); } - late final _spine_event_data_set_float_valuePtr = - _lookup>('spine_event_data_set_float_value'); - late final _spine_event_data_set_float_value = _spine_event_data_set_float_valuePtr.asFunction(); + late final _spine_event_data_set_float_valuePtr = _lookup< + ffi.NativeFunction>( + 'spine_event_data_set_float_value'); + late final _spine_event_data_set_float_value = + _spine_event_data_set_float_valuePtr + .asFunction(); ffi.Pointer spine_event_data_get_string_value( spine_event_data event, @@ -2839,9 +3401,11 @@ class SpineFlutterBindings { } late final _spine_event_data_get_string_valuePtr = - _lookup Function(spine_event_data)>>('spine_event_data_get_string_value'); + _lookup Function(spine_event_data)>>( + 'spine_event_data_get_string_value'); late final _spine_event_data_get_string_value = - _spine_event_data_get_string_valuePtr.asFunction Function(spine_event_data)>(); + _spine_event_data_get_string_valuePtr + .asFunction Function(spine_event_data)>(); void spine_event_data_set_string_value( spine_event_data event, @@ -2853,10 +3417,13 @@ class SpineFlutterBindings { ); } - late final _spine_event_data_set_string_valuePtr = - _lookup)>>('spine_event_data_set_string_value'); + late final _spine_event_data_set_string_valuePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_event_data, + ffi.Pointer)>>('spine_event_data_set_string_value'); late final _spine_event_data_set_string_value = - _spine_event_data_set_string_valuePtr.asFunction)>(); + _spine_event_data_set_string_valuePtr + .asFunction)>(); ffi.Pointer spine_event_data_get_audio_path( spine_event_data event, @@ -2867,9 +3434,11 @@ class SpineFlutterBindings { } late final _spine_event_data_get_audio_pathPtr = - _lookup Function(spine_event_data)>>('spine_event_data_get_audio_path'); + _lookup Function(spine_event_data)>>( + 'spine_event_data_get_audio_path'); late final _spine_event_data_get_audio_path = - _spine_event_data_get_audio_pathPtr.asFunction Function(spine_event_data)>(); + _spine_event_data_get_audio_pathPtr + .asFunction Function(spine_event_data)>(); /// OMITTED setAudioPath() double spine_event_data_get_volume( @@ -2881,8 +3450,10 @@ class SpineFlutterBindings { } late final _spine_event_data_get_volumePtr = - _lookup>('spine_event_data_get_volume'); - late final _spine_event_data_get_volume = _spine_event_data_get_volumePtr.asFunction(); + _lookup>( + 'spine_event_data_get_volume'); + late final _spine_event_data_get_volume = _spine_event_data_get_volumePtr + .asFunction(); void spine_event_data_set_volume( spine_event_data event, @@ -2894,9 +3465,11 @@ class SpineFlutterBindings { ); } - late final _spine_event_data_set_volumePtr = - _lookup>('spine_event_data_set_volume'); - late final _spine_event_data_set_volume = _spine_event_data_set_volumePtr.asFunction(); + late final _spine_event_data_set_volumePtr = _lookup< + ffi.NativeFunction>( + 'spine_event_data_set_volume'); + late final _spine_event_data_set_volume = _spine_event_data_set_volumePtr + .asFunction(); double spine_event_data_get_balance( spine_event_data event, @@ -2907,8 +3480,10 @@ class SpineFlutterBindings { } late final _spine_event_data_get_balancePtr = - _lookup>('spine_event_data_get_balance'); - late final _spine_event_data_get_balance = _spine_event_data_get_balancePtr.asFunction(); + _lookup>( + 'spine_event_data_get_balance'); + late final _spine_event_data_get_balance = _spine_event_data_get_balancePtr + .asFunction(); void spine_event_data_set_balance( spine_event_data event, @@ -2920,9 +3495,11 @@ class SpineFlutterBindings { ); } - late final _spine_event_data_set_balancePtr = - _lookup>('spine_event_data_set_balance'); - late final _spine_event_data_set_balance = _spine_event_data_set_balancePtr.asFunction(); + late final _spine_event_data_set_balancePtr = _lookup< + ffi.NativeFunction>( + 'spine_event_data_set_balance'); + late final _spine_event_data_set_balance = _spine_event_data_set_balancePtr + .asFunction(); spine_event_data spine_event_get_data( spine_event event, @@ -2932,8 +3509,11 @@ class SpineFlutterBindings { ); } - late final _spine_event_get_dataPtr = _lookup>('spine_event_get_data'); - late final _spine_event_get_data = _spine_event_get_dataPtr.asFunction(); + late final _spine_event_get_dataPtr = + _lookup>( + 'spine_event_get_data'); + late final _spine_event_get_data = _spine_event_get_dataPtr + .asFunction(); double spine_event_get_time( spine_event event, @@ -2943,8 +3523,11 @@ class SpineFlutterBindings { ); } - late final _spine_event_get_timePtr = _lookup>('spine_event_get_time'); - late final _spine_event_get_time = _spine_event_get_timePtr.asFunction(); + late final _spine_event_get_timePtr = + _lookup>( + 'spine_event_get_time'); + late final _spine_event_get_time = + _spine_event_get_timePtr.asFunction(); int spine_event_get_int_value( spine_event event, @@ -2954,8 +3537,11 @@ class SpineFlutterBindings { ); } - late final _spine_event_get_int_valuePtr = _lookup>('spine_event_get_int_value'); - late final _spine_event_get_int_value = _spine_event_get_int_valuePtr.asFunction(); + late final _spine_event_get_int_valuePtr = + _lookup>( + 'spine_event_get_int_value'); + late final _spine_event_get_int_value = + _spine_event_get_int_valuePtr.asFunction(); void spine_event_set_int_value( spine_event event, @@ -2968,8 +3554,10 @@ class SpineFlutterBindings { } late final _spine_event_set_int_valuePtr = - _lookup>('spine_event_set_int_value'); - late final _spine_event_set_int_value = _spine_event_set_int_valuePtr.asFunction(); + _lookup>( + 'spine_event_set_int_value'); + late final _spine_event_set_int_value = _spine_event_set_int_valuePtr + .asFunction(); double spine_event_get_float_value( spine_event event, @@ -2979,8 +3567,11 @@ class SpineFlutterBindings { ); } - late final _spine_event_get_float_valuePtr = _lookup>('spine_event_get_float_value'); - late final _spine_event_get_float_value = _spine_event_get_float_valuePtr.asFunction(); + late final _spine_event_get_float_valuePtr = + _lookup>( + 'spine_event_get_float_value'); + late final _spine_event_get_float_value = _spine_event_get_float_valuePtr + .asFunction(); void spine_event_set_float_value( spine_event event, @@ -2993,8 +3584,10 @@ class SpineFlutterBindings { } late final _spine_event_set_float_valuePtr = - _lookup>('spine_event_set_float_value'); - late final _spine_event_set_float_value = _spine_event_set_float_valuePtr.asFunction(); + _lookup>( + 'spine_event_set_float_value'); + late final _spine_event_set_float_value = _spine_event_set_float_valuePtr + .asFunction(); ffi.Pointer spine_event_get_string_value( spine_event event, @@ -3005,8 +3598,10 @@ class SpineFlutterBindings { } late final _spine_event_get_string_valuePtr = - _lookup Function(spine_event)>>('spine_event_get_string_value'); - late final _spine_event_get_string_value = _spine_event_get_string_valuePtr.asFunction Function(spine_event)>(); + _lookup Function(spine_event)>>( + 'spine_event_get_string_value'); + late final _spine_event_get_string_value = _spine_event_get_string_valuePtr + .asFunction Function(spine_event)>(); void spine_event_set_string_value( spine_event event, @@ -3018,9 +3613,12 @@ class SpineFlutterBindings { ); } - late final _spine_event_set_string_valuePtr = - _lookup)>>('spine_event_set_string_value'); - late final _spine_event_set_string_value = _spine_event_set_string_valuePtr.asFunction)>(); + late final _spine_event_set_string_valuePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_event, ffi.Pointer)>>('spine_event_set_string_value'); + late final _spine_event_set_string_value = _spine_event_set_string_valuePtr + .asFunction)>(); double spine_event_get_volume( spine_event event, @@ -3030,8 +3628,11 @@ class SpineFlutterBindings { ); } - late final _spine_event_get_volumePtr = _lookup>('spine_event_get_volume'); - late final _spine_event_get_volume = _spine_event_get_volumePtr.asFunction(); + late final _spine_event_get_volumePtr = + _lookup>( + 'spine_event_get_volume'); + late final _spine_event_get_volume = + _spine_event_get_volumePtr.asFunction(); void spine_event_set_volume( spine_event event, @@ -3043,8 +3644,11 @@ class SpineFlutterBindings { ); } - late final _spine_event_set_volumePtr = _lookup>('spine_event_set_volume'); - late final _spine_event_set_volume = _spine_event_set_volumePtr.asFunction(); + late final _spine_event_set_volumePtr = + _lookup>( + 'spine_event_set_volume'); + late final _spine_event_set_volume = _spine_event_set_volumePtr + .asFunction(); double spine_event_get_balance( spine_event event, @@ -3054,8 +3658,11 @@ class SpineFlutterBindings { ); } - late final _spine_event_get_balancePtr = _lookup>('spine_event_get_balance'); - late final _spine_event_get_balance = _spine_event_get_balancePtr.asFunction(); + late final _spine_event_get_balancePtr = + _lookup>( + 'spine_event_get_balance'); + late final _spine_event_get_balance = + _spine_event_get_balancePtr.asFunction(); void spine_event_set_balance( spine_event event, @@ -3068,8 +3675,10 @@ class SpineFlutterBindings { } late final _spine_event_set_balancePtr = - _lookup>('spine_event_set_balance'); - late final _spine_event_set_balance = _spine_event_set_balancePtr.asFunction(); + _lookup>( + 'spine_event_set_balance'); + late final _spine_event_set_balance = _spine_event_set_balancePtr + .asFunction(); int spine_slot_data_get_index( spine_slot_data slot, @@ -3079,8 +3688,11 @@ class SpineFlutterBindings { ); } - late final _spine_slot_data_get_indexPtr = _lookup>('spine_slot_data_get_index'); - late final _spine_slot_data_get_index = _spine_slot_data_get_indexPtr.asFunction(); + late final _spine_slot_data_get_indexPtr = + _lookup>( + 'spine_slot_data_get_index'); + late final _spine_slot_data_get_index = + _spine_slot_data_get_indexPtr.asFunction(); ffi.Pointer spine_slot_data_get_name( spine_slot_data slot, @@ -3091,8 +3703,10 @@ class SpineFlutterBindings { } late final _spine_slot_data_get_namePtr = - _lookup Function(spine_slot_data)>>('spine_slot_data_get_name'); - late final _spine_slot_data_get_name = _spine_slot_data_get_namePtr.asFunction Function(spine_slot_data)>(); + _lookup Function(spine_slot_data)>>( + 'spine_slot_data_get_name'); + late final _spine_slot_data_get_name = _spine_slot_data_get_namePtr + .asFunction Function(spine_slot_data)>(); spine_bone_data spine_slot_data_get_bone_data( spine_slot_data slot, @@ -3103,8 +3717,10 @@ class SpineFlutterBindings { } late final _spine_slot_data_get_bone_dataPtr = - _lookup>('spine_slot_data_get_bone_data'); - late final _spine_slot_data_get_bone_data = _spine_slot_data_get_bone_dataPtr.asFunction(); + _lookup>( + 'spine_slot_data_get_bone_data'); + late final _spine_slot_data_get_bone_data = _spine_slot_data_get_bone_dataPtr + .asFunction(); spine_color spine_slot_data_get_color( spine_slot_data slot, @@ -3115,8 +3731,10 @@ class SpineFlutterBindings { } late final _spine_slot_data_get_colorPtr = - _lookup>('spine_slot_data_get_color'); - late final _spine_slot_data_get_color = _spine_slot_data_get_colorPtr.asFunction(); + _lookup>( + 'spine_slot_data_get_color'); + late final _spine_slot_data_get_color = _spine_slot_data_get_colorPtr + .asFunction(); void spine_slot_data_set_color( spine_slot_data slot, @@ -3134,11 +3752,13 @@ class SpineFlutterBindings { ); } - late final _spine_slot_data_set_colorPtr = - _lookup>( - 'spine_slot_data_set_color'); + late final _spine_slot_data_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_slot_data, ffi.Float, ffi.Float, ffi.Float, + ffi.Float)>>('spine_slot_data_set_color'); late final _spine_slot_data_set_color = - _spine_slot_data_set_colorPtr.asFunction(); + _spine_slot_data_set_colorPtr.asFunction< + void Function(spine_slot_data, double, double, double, double)>(); spine_color spine_slot_data_get_dark_color( spine_slot_data slot, @@ -3149,8 +3769,11 @@ class SpineFlutterBindings { } late final _spine_slot_data_get_dark_colorPtr = - _lookup>('spine_slot_data_get_dark_color'); - late final _spine_slot_data_get_dark_color = _spine_slot_data_get_dark_colorPtr.asFunction(); + _lookup>( + 'spine_slot_data_get_dark_color'); + late final _spine_slot_data_get_dark_color = + _spine_slot_data_get_dark_colorPtr + .asFunction(); void spine_slot_data_set_dark_color( spine_slot_data slot, @@ -3168,11 +3791,13 @@ class SpineFlutterBindings { ); } - late final _spine_slot_data_set_dark_colorPtr = - _lookup>( - 'spine_slot_data_set_dark_color'); + late final _spine_slot_data_set_dark_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_slot_data, ffi.Float, ffi.Float, ffi.Float, + ffi.Float)>>('spine_slot_data_set_dark_color'); late final _spine_slot_data_set_dark_color = - _spine_slot_data_set_dark_colorPtr.asFunction(); + _spine_slot_data_set_dark_colorPtr.asFunction< + void Function(spine_slot_data, double, double, double, double)>(); int spine_slot_data_has_dark_color( spine_slot_data slot, @@ -3183,8 +3808,11 @@ class SpineFlutterBindings { } late final _spine_slot_data_has_dark_colorPtr = - _lookup>('spine_slot_data_has_dark_color'); - late final _spine_slot_data_has_dark_color = _spine_slot_data_has_dark_colorPtr.asFunction(); + _lookup>( + 'spine_slot_data_has_dark_color'); + late final _spine_slot_data_has_dark_color = + _spine_slot_data_has_dark_colorPtr + .asFunction(); void spine_slot_data_set_has_dark_color( spine_slot_data slot, @@ -3196,9 +3824,12 @@ class SpineFlutterBindings { ); } - late final _spine_slot_data_set_has_dark_colorPtr = - _lookup>('spine_slot_data_set_has_dark_color'); - late final _spine_slot_data_set_has_dark_color = _spine_slot_data_set_has_dark_colorPtr.asFunction(); + late final _spine_slot_data_set_has_dark_colorPtr = _lookup< + ffi.NativeFunction>( + 'spine_slot_data_set_has_dark_color'); + late final _spine_slot_data_set_has_dark_color = + _spine_slot_data_set_has_dark_colorPtr + .asFunction(); ffi.Pointer spine_slot_data_get_attachment_name( spine_slot_data slot, @@ -3209,9 +3840,11 @@ class SpineFlutterBindings { } late final _spine_slot_data_get_attachment_namePtr = - _lookup Function(spine_slot_data)>>('spine_slot_data_get_attachment_name'); + _lookup Function(spine_slot_data)>>( + 'spine_slot_data_get_attachment_name'); late final _spine_slot_data_get_attachment_name = - _spine_slot_data_get_attachment_namePtr.asFunction Function(spine_slot_data)>(); + _spine_slot_data_get_attachment_namePtr + .asFunction Function(spine_slot_data)>(); void spine_slot_data_set_attachment_name( spine_slot_data slot, @@ -3223,10 +3856,13 @@ class SpineFlutterBindings { ); } - late final _spine_slot_data_set_attachment_namePtr = - _lookup)>>('spine_slot_data_set_attachment_name'); + late final _spine_slot_data_set_attachment_namePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_slot_data, + ffi.Pointer)>>('spine_slot_data_set_attachment_name'); late final _spine_slot_data_set_attachment_name = - _spine_slot_data_set_attachment_namePtr.asFunction)>(); + _spine_slot_data_set_attachment_namePtr + .asFunction)>(); int spine_slot_data_get_blend_mode( spine_slot_data slot, @@ -3237,8 +3873,11 @@ class SpineFlutterBindings { } late final _spine_slot_data_get_blend_modePtr = - _lookup>('spine_slot_data_get_blend_mode'); - late final _spine_slot_data_get_blend_mode = _spine_slot_data_get_blend_modePtr.asFunction(); + _lookup>( + 'spine_slot_data_get_blend_mode'); + late final _spine_slot_data_get_blend_mode = + _spine_slot_data_get_blend_modePtr + .asFunction(); void spine_slot_data_set_blend_mode( spine_slot_data slot, @@ -3250,9 +3889,12 @@ class SpineFlutterBindings { ); } - late final _spine_slot_data_set_blend_modePtr = - _lookup>('spine_slot_data_set_blend_mode'); - late final _spine_slot_data_set_blend_mode = _spine_slot_data_set_blend_modePtr.asFunction(); + late final _spine_slot_data_set_blend_modePtr = _lookup< + ffi.NativeFunction>( + 'spine_slot_data_set_blend_mode'); + late final _spine_slot_data_set_blend_mode = + _spine_slot_data_set_blend_modePtr + .asFunction(); void spine_slot_set_to_setup_pose( spine_slot slot, @@ -3262,8 +3904,11 @@ class SpineFlutterBindings { ); } - late final _spine_slot_set_to_setup_posePtr = _lookup>('spine_slot_set_to_setup_pose'); - late final _spine_slot_set_to_setup_pose = _spine_slot_set_to_setup_posePtr.asFunction(); + late final _spine_slot_set_to_setup_posePtr = + _lookup>( + 'spine_slot_set_to_setup_pose'); + late final _spine_slot_set_to_setup_pose = + _spine_slot_set_to_setup_posePtr.asFunction(); spine_slot_data spine_slot_get_data( spine_slot slot, @@ -3273,8 +3918,11 @@ class SpineFlutterBindings { ); } - late final _spine_slot_get_dataPtr = _lookup>('spine_slot_get_data'); - late final _spine_slot_get_data = _spine_slot_get_dataPtr.asFunction(); + late final _spine_slot_get_dataPtr = + _lookup>( + 'spine_slot_get_data'); + late final _spine_slot_get_data = _spine_slot_get_dataPtr + .asFunction(); spine_bone spine_slot_get_bone( spine_slot slot, @@ -3284,8 +3932,11 @@ class SpineFlutterBindings { ); } - late final _spine_slot_get_bonePtr = _lookup>('spine_slot_get_bone'); - late final _spine_slot_get_bone = _spine_slot_get_bonePtr.asFunction(); + late final _spine_slot_get_bonePtr = + _lookup>( + 'spine_slot_get_bone'); + late final _spine_slot_get_bone = + _spine_slot_get_bonePtr.asFunction(); spine_skeleton spine_slot_get_skeleton( spine_slot slot, @@ -3295,8 +3946,11 @@ class SpineFlutterBindings { ); } - late final _spine_slot_get_skeletonPtr = _lookup>('spine_slot_get_skeleton'); - late final _spine_slot_get_skeleton = _spine_slot_get_skeletonPtr.asFunction(); + late final _spine_slot_get_skeletonPtr = + _lookup>( + 'spine_slot_get_skeleton'); + late final _spine_slot_get_skeleton = _spine_slot_get_skeletonPtr + .asFunction(); spine_color spine_slot_get_color( spine_slot slot, @@ -3306,8 +3960,11 @@ class SpineFlutterBindings { ); } - late final _spine_slot_get_colorPtr = _lookup>('spine_slot_get_color'); - late final _spine_slot_get_color = _spine_slot_get_colorPtr.asFunction(); + late final _spine_slot_get_colorPtr = + _lookup>( + 'spine_slot_get_color'); + late final _spine_slot_get_color = + _spine_slot_get_colorPtr.asFunction(); void spine_slot_set_color( spine_slot slot, @@ -3325,9 +3982,12 @@ class SpineFlutterBindings { ); } - late final _spine_slot_set_colorPtr = - _lookup>('spine_slot_set_color'); - late final _spine_slot_set_color = _spine_slot_set_colorPtr.asFunction(); + late final _spine_slot_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_slot, ffi.Float, ffi.Float, ffi.Float, + ffi.Float)>>('spine_slot_set_color'); + late final _spine_slot_set_color = _spine_slot_set_colorPtr + .asFunction(); spine_color spine_slot_get_dark_color( spine_slot slot, @@ -3337,8 +3997,11 @@ class SpineFlutterBindings { ); } - late final _spine_slot_get_dark_colorPtr = _lookup>('spine_slot_get_dark_color'); - late final _spine_slot_get_dark_color = _spine_slot_get_dark_colorPtr.asFunction(); + late final _spine_slot_get_dark_colorPtr = + _lookup>( + 'spine_slot_get_dark_color'); + late final _spine_slot_get_dark_color = _spine_slot_get_dark_colorPtr + .asFunction(); void spine_slot_set_dark_color( spine_slot slot, @@ -3356,10 +4019,12 @@ class SpineFlutterBindings { ); } - late final _spine_slot_set_dark_colorPtr = - _lookup>('spine_slot_set_dark_color'); - late final _spine_slot_set_dark_color = - _spine_slot_set_dark_colorPtr.asFunction(); + late final _spine_slot_set_dark_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_slot, ffi.Float, ffi.Float, ffi.Float, + ffi.Float)>>('spine_slot_set_dark_color'); + late final _spine_slot_set_dark_color = _spine_slot_set_dark_colorPtr + .asFunction(); int spine_slot_has_dark_color( spine_slot slot, @@ -3369,8 +4034,11 @@ class SpineFlutterBindings { ); } - late final _spine_slot_has_dark_colorPtr = _lookup>('spine_slot_has_dark_color'); - late final _spine_slot_has_dark_color = _spine_slot_has_dark_colorPtr.asFunction(); + late final _spine_slot_has_dark_colorPtr = + _lookup>( + 'spine_slot_has_dark_color'); + late final _spine_slot_has_dark_color = + _spine_slot_has_dark_colorPtr.asFunction(); spine_attachment spine_slot_get_attachment( spine_slot slot, @@ -3381,8 +4049,10 @@ class SpineFlutterBindings { } late final _spine_slot_get_attachmentPtr = - _lookup>('spine_slot_get_attachment'); - late final _spine_slot_get_attachment = _spine_slot_get_attachmentPtr.asFunction(); + _lookup>( + 'spine_slot_get_attachment'); + late final _spine_slot_get_attachment = _spine_slot_get_attachmentPtr + .asFunction(); void spine_slot_set_attachment( spine_slot slot, @@ -3394,9 +4064,11 @@ class SpineFlutterBindings { ); } - late final _spine_slot_set_attachmentPtr = - _lookup>('spine_slot_set_attachment'); - late final _spine_slot_set_attachment = _spine_slot_set_attachmentPtr.asFunction(); + late final _spine_slot_set_attachmentPtr = _lookup< + ffi.NativeFunction>( + 'spine_slot_set_attachment'); + late final _spine_slot_set_attachment = _spine_slot_set_attachmentPtr + .asFunction(); /// OMITTED getDeform() int spine_slot_get_sequence_index( @@ -3408,8 +4080,10 @@ class SpineFlutterBindings { } late final _spine_slot_get_sequence_indexPtr = - _lookup>('spine_slot_get_sequence_index'); - late final _spine_slot_get_sequence_index = _spine_slot_get_sequence_indexPtr.asFunction(); + _lookup>( + 'spine_slot_get_sequence_index'); + late final _spine_slot_get_sequence_index = + _spine_slot_get_sequence_indexPtr.asFunction(); void spine_slot_set_sequence_index( spine_slot slot, @@ -3422,8 +4096,10 @@ class SpineFlutterBindings { } late final _spine_slot_set_sequence_indexPtr = - _lookup>('spine_slot_set_sequence_index'); - late final _spine_slot_set_sequence_index = _spine_slot_set_sequence_indexPtr.asFunction(); + _lookup>( + 'spine_slot_set_sequence_index'); + late final _spine_slot_set_sequence_index = _spine_slot_set_sequence_indexPtr + .asFunction(); int spine_bone_data_get_index( spine_bone_data data, @@ -3433,8 +4109,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_get_indexPtr = _lookup>('spine_bone_data_get_index'); - late final _spine_bone_data_get_index = _spine_bone_data_get_indexPtr.asFunction(); + late final _spine_bone_data_get_indexPtr = + _lookup>( + 'spine_bone_data_get_index'); + late final _spine_bone_data_get_index = + _spine_bone_data_get_indexPtr.asFunction(); ffi.Pointer spine_bone_data_get_name( spine_bone_data data, @@ -3445,8 +4124,10 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_namePtr = - _lookup Function(spine_bone_data)>>('spine_bone_data_get_name'); - late final _spine_bone_data_get_name = _spine_bone_data_get_namePtr.asFunction Function(spine_bone_data)>(); + _lookup Function(spine_bone_data)>>( + 'spine_bone_data_get_name'); + late final _spine_bone_data_get_name = _spine_bone_data_get_namePtr + .asFunction Function(spine_bone_data)>(); spine_bone_data spine_bone_data_get_parent( spine_bone_data data, @@ -3457,8 +4138,10 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_parentPtr = - _lookup>('spine_bone_data_get_parent'); - late final _spine_bone_data_get_parent = _spine_bone_data_get_parentPtr.asFunction(); + _lookup>( + 'spine_bone_data_get_parent'); + late final _spine_bone_data_get_parent = _spine_bone_data_get_parentPtr + .asFunction(); double spine_bone_data_get_length( spine_bone_data data, @@ -3469,8 +4152,10 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_lengthPtr = - _lookup>('spine_bone_data_get_length'); - late final _spine_bone_data_get_length = _spine_bone_data_get_lengthPtr.asFunction(); + _lookup>( + 'spine_bone_data_get_length'); + late final _spine_bone_data_get_length = _spine_bone_data_get_lengthPtr + .asFunction(); void spine_bone_data_set_length( spine_bone_data data, @@ -3482,9 +4167,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_lengthPtr = - _lookup>('spine_bone_data_set_length'); - late final _spine_bone_data_set_length = _spine_bone_data_set_lengthPtr.asFunction(); + late final _spine_bone_data_set_lengthPtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_length'); + late final _spine_bone_data_set_length = _spine_bone_data_set_lengthPtr + .asFunction(); double spine_bone_data_get_x( spine_bone_data data, @@ -3494,8 +4181,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_get_xPtr = _lookup>('spine_bone_data_get_x'); - late final _spine_bone_data_get_x = _spine_bone_data_get_xPtr.asFunction(); + late final _spine_bone_data_get_xPtr = + _lookup>( + 'spine_bone_data_get_x'); + late final _spine_bone_data_get_x = + _spine_bone_data_get_xPtr.asFunction(); void spine_bone_data_set_x( spine_bone_data data, @@ -3507,9 +4197,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_xPtr = - _lookup>('spine_bone_data_set_x'); - late final _spine_bone_data_set_x = _spine_bone_data_set_xPtr.asFunction(); + late final _spine_bone_data_set_xPtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_x'); + late final _spine_bone_data_set_x = _spine_bone_data_set_xPtr + .asFunction(); double spine_bone_data_get_y( spine_bone_data data, @@ -3519,8 +4211,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_get_yPtr = _lookup>('spine_bone_data_get_y'); - late final _spine_bone_data_get_y = _spine_bone_data_get_yPtr.asFunction(); + late final _spine_bone_data_get_yPtr = + _lookup>( + 'spine_bone_data_get_y'); + late final _spine_bone_data_get_y = + _spine_bone_data_get_yPtr.asFunction(); void spine_bone_data_set_y( spine_bone_data data, @@ -3532,9 +4227,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_yPtr = - _lookup>('spine_bone_data_set_y'); - late final _spine_bone_data_set_y = _spine_bone_data_set_yPtr.asFunction(); + late final _spine_bone_data_set_yPtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_y'); + late final _spine_bone_data_set_y = _spine_bone_data_set_yPtr + .asFunction(); double spine_bone_data_get_rotation( spine_bone_data data, @@ -3545,8 +4242,10 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_rotationPtr = - _lookup>('spine_bone_data_get_rotation'); - late final _spine_bone_data_get_rotation = _spine_bone_data_get_rotationPtr.asFunction(); + _lookup>( + 'spine_bone_data_get_rotation'); + late final _spine_bone_data_get_rotation = _spine_bone_data_get_rotationPtr + .asFunction(); void spine_bone_data_set_rotation( spine_bone_data data, @@ -3558,9 +4257,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_rotationPtr = - _lookup>('spine_bone_data_set_rotation'); - late final _spine_bone_data_set_rotation = _spine_bone_data_set_rotationPtr.asFunction(); + late final _spine_bone_data_set_rotationPtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_rotation'); + late final _spine_bone_data_set_rotation = _spine_bone_data_set_rotationPtr + .asFunction(); double spine_bone_data_get_scale_x( spine_bone_data data, @@ -3571,8 +4272,10 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_scale_xPtr = - _lookup>('spine_bone_data_get_scale_x'); - late final _spine_bone_data_get_scale_x = _spine_bone_data_get_scale_xPtr.asFunction(); + _lookup>( + 'spine_bone_data_get_scale_x'); + late final _spine_bone_data_get_scale_x = _spine_bone_data_get_scale_xPtr + .asFunction(); void spine_bone_data_set_scale_x( spine_bone_data data, @@ -3584,9 +4287,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_scale_xPtr = - _lookup>('spine_bone_data_set_scale_x'); - late final _spine_bone_data_set_scale_x = _spine_bone_data_set_scale_xPtr.asFunction(); + late final _spine_bone_data_set_scale_xPtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_scale_x'); + late final _spine_bone_data_set_scale_x = _spine_bone_data_set_scale_xPtr + .asFunction(); double spine_bone_data_get_scale_y( spine_bone_data data, @@ -3597,8 +4302,10 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_scale_yPtr = - _lookup>('spine_bone_data_get_scale_y'); - late final _spine_bone_data_get_scale_y = _spine_bone_data_get_scale_yPtr.asFunction(); + _lookup>( + 'spine_bone_data_get_scale_y'); + late final _spine_bone_data_get_scale_y = _spine_bone_data_get_scale_yPtr + .asFunction(); void spine_bone_data_set_scale_y( spine_bone_data data, @@ -3610,9 +4317,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_scale_yPtr = - _lookup>('spine_bone_data_set_scale_y'); - late final _spine_bone_data_set_scale_y = _spine_bone_data_set_scale_yPtr.asFunction(); + late final _spine_bone_data_set_scale_yPtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_scale_y'); + late final _spine_bone_data_set_scale_y = _spine_bone_data_set_scale_yPtr + .asFunction(); double spine_bone_data_get_shear_x( spine_bone_data data, @@ -3623,8 +4332,10 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_shear_xPtr = - _lookup>('spine_bone_data_get_shear_x'); - late final _spine_bone_data_get_shear_x = _spine_bone_data_get_shear_xPtr.asFunction(); + _lookup>( + 'spine_bone_data_get_shear_x'); + late final _spine_bone_data_get_shear_x = _spine_bone_data_get_shear_xPtr + .asFunction(); void spine_bone_data_set_shear_x( spine_bone_data data, @@ -3636,9 +4347,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_shear_xPtr = - _lookup>('spine_bone_data_set_shear_x'); - late final _spine_bone_data_set_shear_x = _spine_bone_data_set_shear_xPtr.asFunction(); + late final _spine_bone_data_set_shear_xPtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_shear_x'); + late final _spine_bone_data_set_shear_x = _spine_bone_data_set_shear_xPtr + .asFunction(); double spine_bone_data_get_shear_y( spine_bone_data data, @@ -3649,8 +4362,10 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_shear_yPtr = - _lookup>('spine_bone_data_get_shear_y'); - late final _spine_bone_data_get_shear_y = _spine_bone_data_get_shear_yPtr.asFunction(); + _lookup>( + 'spine_bone_data_get_shear_y'); + late final _spine_bone_data_get_shear_y = _spine_bone_data_get_shear_yPtr + .asFunction(); void spine_bone_data_set_shear_y( spine_bone_data data, @@ -3662,9 +4377,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_shear_yPtr = - _lookup>('spine_bone_data_set_shear_y'); - late final _spine_bone_data_set_shear_y = _spine_bone_data_set_shear_yPtr.asFunction(); + late final _spine_bone_data_set_shear_yPtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_shear_y'); + late final _spine_bone_data_set_shear_y = _spine_bone_data_set_shear_yPtr + .asFunction(); int spine_bone_data_get_transform_mode( spine_bone_data data, @@ -3675,8 +4392,11 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_transform_modePtr = - _lookup>('spine_bone_data_get_transform_mode'); - late final _spine_bone_data_get_transform_mode = _spine_bone_data_get_transform_modePtr.asFunction(); + _lookup>( + 'spine_bone_data_get_transform_mode'); + late final _spine_bone_data_get_transform_mode = + _spine_bone_data_get_transform_modePtr + .asFunction(); void spine_bone_data_set_transform_mode( spine_bone_data data, @@ -3688,9 +4408,12 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_transform_modePtr = - _lookup>('spine_bone_data_set_transform_mode'); - late final _spine_bone_data_set_transform_mode = _spine_bone_data_set_transform_modePtr.asFunction(); + late final _spine_bone_data_set_transform_modePtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_transform_mode'); + late final _spine_bone_data_set_transform_mode = + _spine_bone_data_set_transform_modePtr + .asFunction(); int spine_bone_data_is_skin_required( spine_bone_data data, @@ -3701,8 +4424,11 @@ class SpineFlutterBindings { } late final _spine_bone_data_is_skin_requiredPtr = - _lookup>('spine_bone_data_is_skin_required'); - late final _spine_bone_data_is_skin_required = _spine_bone_data_is_skin_requiredPtr.asFunction(); + _lookup>( + 'spine_bone_data_is_skin_required'); + late final _spine_bone_data_is_skin_required = + _spine_bone_data_is_skin_requiredPtr + .asFunction(); void spine_bone_data_set_is_skin_required( spine_bone_data data, @@ -3714,10 +4440,12 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_is_skin_requiredPtr = - _lookup>('spine_bone_data_set_is_skin_required'); + late final _spine_bone_data_set_is_skin_requiredPtr = _lookup< + ffi.NativeFunction>( + 'spine_bone_data_set_is_skin_required'); late final _spine_bone_data_set_is_skin_required = - _spine_bone_data_set_is_skin_requiredPtr.asFunction(); + _spine_bone_data_set_is_skin_requiredPtr + .asFunction(); spine_color spine_bone_data_get_color( spine_bone_data data, @@ -3728,8 +4456,10 @@ class SpineFlutterBindings { } late final _spine_bone_data_get_colorPtr = - _lookup>('spine_bone_data_get_color'); - late final _spine_bone_data_get_color = _spine_bone_data_get_colorPtr.asFunction(); + _lookup>( + 'spine_bone_data_get_color'); + late final _spine_bone_data_get_color = _spine_bone_data_get_colorPtr + .asFunction(); void spine_bone_data_set_color( spine_bone_data data, @@ -3747,11 +4477,13 @@ class SpineFlutterBindings { ); } - late final _spine_bone_data_set_colorPtr = - _lookup>( - 'spine_bone_data_set_color'); + late final _spine_bone_data_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_bone_data, ffi.Float, ffi.Float, ffi.Float, + ffi.Float)>>('spine_bone_data_set_color'); late final _spine_bone_data_set_color = - _spine_bone_data_set_colorPtr.asFunction(); + _spine_bone_data_set_colorPtr.asFunction< + void Function(spine_bone_data, double, double, double, double)>(); void spine_bone_set_is_y_down( int yDown, @@ -3761,15 +4493,21 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_is_y_downPtr = _lookup>('spine_bone_set_is_y_down'); - late final _spine_bone_set_is_y_down = _spine_bone_set_is_y_downPtr.asFunction(); + late final _spine_bone_set_is_y_downPtr = + _lookup>( + 'spine_bone_set_is_y_down'); + late final _spine_bone_set_is_y_down = + _spine_bone_set_is_y_downPtr.asFunction(); int spine_bone_get_is_y_down() { return _spine_bone_get_is_y_down(); } - late final _spine_bone_get_is_y_downPtr = _lookup>('spine_bone_get_is_y_down'); - late final _spine_bone_get_is_y_down = _spine_bone_get_is_y_downPtr.asFunction(); + late final _spine_bone_get_is_y_downPtr = + _lookup>( + 'spine_bone_get_is_y_down'); + late final _spine_bone_get_is_y_down = + _spine_bone_get_is_y_downPtr.asFunction(); void spine_bone_update( spine_bone bone, @@ -3779,8 +4517,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_updatePtr = _lookup>('spine_bone_update'); - late final _spine_bone_update = _spine_bone_updatePtr.asFunction(); + late final _spine_bone_updatePtr = + _lookup>( + 'spine_bone_update'); + late final _spine_bone_update = + _spine_bone_updatePtr.asFunction(); void spine_bone_update_world_transform( spine_bone bone, @@ -3791,8 +4532,11 @@ class SpineFlutterBindings { } late final _spine_bone_update_world_transformPtr = - _lookup>('spine_bone_update_world_transform'); - late final _spine_bone_update_world_transform = _spine_bone_update_world_transformPtr.asFunction(); + _lookup>( + 'spine_bone_update_world_transform'); + late final _spine_bone_update_world_transform = + _spine_bone_update_world_transformPtr + .asFunction(); void spine_bone_update_world_transform_with( spine_bone bone, @@ -3817,10 +4561,35 @@ class SpineFlutterBindings { } late final _spine_bone_update_world_transform_withPtr = _lookup< - ffi.NativeFunction>( - 'spine_bone_update_world_transform_with'); - late final _spine_bone_update_world_transform_with = _spine_bone_update_world_transform_withPtr - .asFunction(); + ffi.NativeFunction< + ffi.Void Function( + spine_bone, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float)>>('spine_bone_update_world_transform_with'); + late final _spine_bone_update_world_transform_with = + _spine_bone_update_world_transform_withPtr.asFunction< + void Function(spine_bone, double, double, double, double, double, + double, double)>(); + + void spine_bone_update_applied_transform( + spine_bone bone, + ) { + return _spine_bone_update_applied_transform( + bone, + ); + } + + late final _spine_bone_update_applied_transformPtr = + _lookup>( + 'spine_bone_update_applied_transform'); + late final _spine_bone_update_applied_transform = + _spine_bone_update_applied_transformPtr + .asFunction(); void spine_bone_set_to_setup_pose( spine_bone bone, @@ -3830,8 +4599,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_to_setup_posePtr = _lookup>('spine_bone_set_to_setup_pose'); - late final _spine_bone_set_to_setup_pose = _spine_bone_set_to_setup_posePtr.asFunction(); + late final _spine_bone_set_to_setup_posePtr = + _lookup>( + 'spine_bone_set_to_setup_pose'); + late final _spine_bone_set_to_setup_pose = + _spine_bone_set_to_setup_posePtr.asFunction(); spine_vector spine_bone_world_to_local( spine_bone bone, @@ -3845,9 +4617,12 @@ class SpineFlutterBindings { ); } - late final _spine_bone_world_to_localPtr = - _lookup>('spine_bone_world_to_local'); - late final _spine_bone_world_to_local = _spine_bone_world_to_localPtr.asFunction(); + late final _spine_bone_world_to_localPtr = _lookup< + ffi.NativeFunction< + spine_vector Function( + spine_bone, ffi.Float, ffi.Float)>>('spine_bone_world_to_local'); + late final _spine_bone_world_to_local = _spine_bone_world_to_localPtr + .asFunction(); spine_vector spine_bone_local_to_world( spine_bone bone, @@ -3861,9 +4636,12 @@ class SpineFlutterBindings { ); } - late final _spine_bone_local_to_worldPtr = - _lookup>('spine_bone_local_to_world'); - late final _spine_bone_local_to_world = _spine_bone_local_to_worldPtr.asFunction(); + late final _spine_bone_local_to_worldPtr = _lookup< + ffi.NativeFunction< + spine_vector Function( + spine_bone, ffi.Float, ffi.Float)>>('spine_bone_local_to_world'); + late final _spine_bone_local_to_world = _spine_bone_local_to_worldPtr + .asFunction(); double spine_bone_world_to_local_rotation( spine_bone bone, @@ -3876,8 +4654,11 @@ class SpineFlutterBindings { } late final _spine_bone_world_to_local_rotationPtr = - _lookup>('spine_bone_world_to_local_rotation'); - late final _spine_bone_world_to_local_rotation = _spine_bone_world_to_local_rotationPtr.asFunction(); + _lookup>( + 'spine_bone_world_to_local_rotation'); + late final _spine_bone_world_to_local_rotation = + _spine_bone_world_to_local_rotationPtr + .asFunction(); double spine_bone_local_to_world_rotation( spine_bone bone, @@ -3890,8 +4671,11 @@ class SpineFlutterBindings { } late final _spine_bone_local_to_world_rotationPtr = - _lookup>('spine_bone_local_to_world_rotation'); - late final _spine_bone_local_to_world_rotation = _spine_bone_local_to_world_rotationPtr.asFunction(); + _lookup>( + 'spine_bone_local_to_world_rotation'); + late final _spine_bone_local_to_world_rotation = + _spine_bone_local_to_world_rotationPtr + .asFunction(); void spine_bone_rotate_world( spine_bone bone, @@ -3903,8 +4687,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_rotate_worldPtr = _lookup>('spine_bone_rotate_world'); - late final _spine_bone_rotate_world = _spine_bone_rotate_worldPtr.asFunction(); + late final _spine_bone_rotate_worldPtr = + _lookup>( + 'spine_bone_rotate_world'); + late final _spine_bone_rotate_world = _spine_bone_rotate_worldPtr + .asFunction(); double spine_bone_get_world_to_local_rotation_x( spine_bone bone, @@ -3915,9 +4702,11 @@ class SpineFlutterBindings { } late final _spine_bone_get_world_to_local_rotation_xPtr = - _lookup>('spine_bone_get_world_to_local_rotation_x'); + _lookup>( + 'spine_bone_get_world_to_local_rotation_x'); late final _spine_bone_get_world_to_local_rotation_x = - _spine_bone_get_world_to_local_rotation_xPtr.asFunction(); + _spine_bone_get_world_to_local_rotation_xPtr + .asFunction(); double spine_bone_get_world_to_local_rotation_y( spine_bone bone, @@ -3928,9 +4717,11 @@ class SpineFlutterBindings { } late final _spine_bone_get_world_to_local_rotation_yPtr = - _lookup>('spine_bone_get_world_to_local_rotation_y'); + _lookup>( + 'spine_bone_get_world_to_local_rotation_y'); late final _spine_bone_get_world_to_local_rotation_y = - _spine_bone_get_world_to_local_rotation_yPtr.asFunction(); + _spine_bone_get_world_to_local_rotation_yPtr + .asFunction(); spine_bone_data spine_bone_get_data( spine_bone bone, @@ -3940,8 +4731,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_dataPtr = _lookup>('spine_bone_get_data'); - late final _spine_bone_get_data = _spine_bone_get_dataPtr.asFunction(); + late final _spine_bone_get_dataPtr = + _lookup>( + 'spine_bone_get_data'); + late final _spine_bone_get_data = _spine_bone_get_dataPtr + .asFunction(); spine_skeleton spine_bone_get_skeleton( spine_bone bone, @@ -3951,8 +4745,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_skeletonPtr = _lookup>('spine_bone_get_skeleton'); - late final _spine_bone_get_skeleton = _spine_bone_get_skeletonPtr.asFunction(); + late final _spine_bone_get_skeletonPtr = + _lookup>( + 'spine_bone_get_skeleton'); + late final _spine_bone_get_skeleton = _spine_bone_get_skeletonPtr + .asFunction(); spine_bone spine_bone_get_parent( spine_bone bone, @@ -3962,8 +4759,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_parentPtr = _lookup>('spine_bone_get_parent'); - late final _spine_bone_get_parent = _spine_bone_get_parentPtr.asFunction(); + late final _spine_bone_get_parentPtr = + _lookup>( + 'spine_bone_get_parent'); + late final _spine_bone_get_parent = + _spine_bone_get_parentPtr.asFunction(); int spine_bone_get_num_children( spine_bone bone, @@ -3973,8 +4773,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_num_childrenPtr = _lookup>('spine_bone_get_num_children'); - late final _spine_bone_get_num_children = _spine_bone_get_num_childrenPtr.asFunction(); + late final _spine_bone_get_num_childrenPtr = + _lookup>( + 'spine_bone_get_num_children'); + late final _spine_bone_get_num_children = + _spine_bone_get_num_childrenPtr.asFunction(); ffi.Pointer spine_bone_get_children( spine_bone bone, @@ -3985,8 +4788,10 @@ class SpineFlutterBindings { } late final _spine_bone_get_childrenPtr = - _lookup Function(spine_bone)>>('spine_bone_get_children'); - late final _spine_bone_get_children = _spine_bone_get_childrenPtr.asFunction Function(spine_bone)>(); + _lookup Function(spine_bone)>>( + 'spine_bone_get_children'); + late final _spine_bone_get_children = _spine_bone_get_childrenPtr + .asFunction Function(spine_bone)>(); double spine_bone_get_x( spine_bone bone, @@ -3996,8 +4801,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_xPtr = _lookup>('spine_bone_get_x'); - late final _spine_bone_get_x = _spine_bone_get_xPtr.asFunction(); + late final _spine_bone_get_xPtr = + _lookup>( + 'spine_bone_get_x'); + late final _spine_bone_get_x = + _spine_bone_get_xPtr.asFunction(); void spine_bone_set_x( spine_bone bone, @@ -4009,8 +4817,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_xPtr = _lookup>('spine_bone_set_x'); - late final _spine_bone_set_x = _spine_bone_set_xPtr.asFunction(); + late final _spine_bone_set_xPtr = + _lookup>( + 'spine_bone_set_x'); + late final _spine_bone_set_x = + _spine_bone_set_xPtr.asFunction(); double spine_bone_get_y( spine_bone bone, @@ -4020,8 +4831,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_yPtr = _lookup>('spine_bone_get_y'); - late final _spine_bone_get_y = _spine_bone_get_yPtr.asFunction(); + late final _spine_bone_get_yPtr = + _lookup>( + 'spine_bone_get_y'); + late final _spine_bone_get_y = + _spine_bone_get_yPtr.asFunction(); void spine_bone_set_y( spine_bone bone, @@ -4033,8 +4847,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_yPtr = _lookup>('spine_bone_set_y'); - late final _spine_bone_set_y = _spine_bone_set_yPtr.asFunction(); + late final _spine_bone_set_yPtr = + _lookup>( + 'spine_bone_set_y'); + late final _spine_bone_set_y = + _spine_bone_set_yPtr.asFunction(); double spine_bone_get_rotation( spine_bone bone, @@ -4044,8 +4861,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_rotationPtr = _lookup>('spine_bone_get_rotation'); - late final _spine_bone_get_rotation = _spine_bone_get_rotationPtr.asFunction(); + late final _spine_bone_get_rotationPtr = + _lookup>( + 'spine_bone_get_rotation'); + late final _spine_bone_get_rotation = + _spine_bone_get_rotationPtr.asFunction(); void spine_bone_set_rotation( spine_bone bone, @@ -4057,8 +4877,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_rotationPtr = _lookup>('spine_bone_set_rotation'); - late final _spine_bone_set_rotation = _spine_bone_set_rotationPtr.asFunction(); + late final _spine_bone_set_rotationPtr = + _lookup>( + 'spine_bone_set_rotation'); + late final _spine_bone_set_rotation = _spine_bone_set_rotationPtr + .asFunction(); double spine_bone_get_scale_x( spine_bone bone, @@ -4068,8 +4891,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_scale_xPtr = _lookup>('spine_bone_get_scale_x'); - late final _spine_bone_get_scale_x = _spine_bone_get_scale_xPtr.asFunction(); + late final _spine_bone_get_scale_xPtr = + _lookup>( + 'spine_bone_get_scale_x'); + late final _spine_bone_get_scale_x = + _spine_bone_get_scale_xPtr.asFunction(); void spine_bone_set_scale_x( spine_bone bone, @@ -4081,8 +4907,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_scale_xPtr = _lookup>('spine_bone_set_scale_x'); - late final _spine_bone_set_scale_x = _spine_bone_set_scale_xPtr.asFunction(); + late final _spine_bone_set_scale_xPtr = + _lookup>( + 'spine_bone_set_scale_x'); + late final _spine_bone_set_scale_x = _spine_bone_set_scale_xPtr + .asFunction(); double spine_bone_get_scale_y( spine_bone bone, @@ -4092,8 +4921,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_scale_yPtr = _lookup>('spine_bone_get_scale_y'); - late final _spine_bone_get_scale_y = _spine_bone_get_scale_yPtr.asFunction(); + late final _spine_bone_get_scale_yPtr = + _lookup>( + 'spine_bone_get_scale_y'); + late final _spine_bone_get_scale_y = + _spine_bone_get_scale_yPtr.asFunction(); void spine_bone_set_scale_y( spine_bone bone, @@ -4105,8 +4937,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_scale_yPtr = _lookup>('spine_bone_set_scale_y'); - late final _spine_bone_set_scale_y = _spine_bone_set_scale_yPtr.asFunction(); + late final _spine_bone_set_scale_yPtr = + _lookup>( + 'spine_bone_set_scale_y'); + late final _spine_bone_set_scale_y = _spine_bone_set_scale_yPtr + .asFunction(); double spine_bone_get_shear_x( spine_bone bone, @@ -4116,8 +4951,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_shear_xPtr = _lookup>('spine_bone_get_shear_x'); - late final _spine_bone_get_shear_x = _spine_bone_get_shear_xPtr.asFunction(); + late final _spine_bone_get_shear_xPtr = + _lookup>( + 'spine_bone_get_shear_x'); + late final _spine_bone_get_shear_x = + _spine_bone_get_shear_xPtr.asFunction(); void spine_bone_set_shear_x( spine_bone bone, @@ -4129,8 +4967,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_shear_xPtr = _lookup>('spine_bone_set_shear_x'); - late final _spine_bone_set_shear_x = _spine_bone_set_shear_xPtr.asFunction(); + late final _spine_bone_set_shear_xPtr = + _lookup>( + 'spine_bone_set_shear_x'); + late final _spine_bone_set_shear_x = _spine_bone_set_shear_xPtr + .asFunction(); double spine_bone_get_shear_y( spine_bone bone, @@ -4140,8 +4981,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_shear_yPtr = _lookup>('spine_bone_get_shear_y'); - late final _spine_bone_get_shear_y = _spine_bone_get_shear_yPtr.asFunction(); + late final _spine_bone_get_shear_yPtr = + _lookup>( + 'spine_bone_get_shear_y'); + late final _spine_bone_get_shear_y = + _spine_bone_get_shear_yPtr.asFunction(); void spine_bone_set_shear_y( spine_bone bone, @@ -4153,8 +4997,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_shear_yPtr = _lookup>('spine_bone_set_shear_y'); - late final _spine_bone_set_shear_y = _spine_bone_set_shear_yPtr.asFunction(); + late final _spine_bone_set_shear_yPtr = + _lookup>( + 'spine_bone_set_shear_y'); + late final _spine_bone_set_shear_y = _spine_bone_set_shear_yPtr + .asFunction(); double spine_bone_get_applied_rotation( spine_bone bone, @@ -4165,8 +5012,11 @@ class SpineFlutterBindings { } late final _spine_bone_get_applied_rotationPtr = - _lookup>('spine_bone_get_applied_rotation'); - late final _spine_bone_get_applied_rotation = _spine_bone_get_applied_rotationPtr.asFunction(); + _lookup>( + 'spine_bone_get_applied_rotation'); + late final _spine_bone_get_applied_rotation = + _spine_bone_get_applied_rotationPtr + .asFunction(); void spine_bone_set_applied_rotation( spine_bone bone, @@ -4179,8 +5029,11 @@ class SpineFlutterBindings { } late final _spine_bone_set_applied_rotationPtr = - _lookup>('spine_bone_set_applied_rotation'); - late final _spine_bone_set_applied_rotation = _spine_bone_set_applied_rotationPtr.asFunction(); + _lookup>( + 'spine_bone_set_applied_rotation'); + late final _spine_bone_set_applied_rotation = + _spine_bone_set_applied_rotationPtr + .asFunction(); double spine_bone_get_a_x( spine_bone bone, @@ -4190,8 +5043,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_a_xPtr = _lookup>('spine_bone_get_a_x'); - late final _spine_bone_get_a_x = _spine_bone_get_a_xPtr.asFunction(); + late final _spine_bone_get_a_xPtr = + _lookup>( + 'spine_bone_get_a_x'); + late final _spine_bone_get_a_x = + _spine_bone_get_a_xPtr.asFunction(); void spine_bone_set_a_x( spine_bone bone, @@ -4203,8 +5059,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_a_xPtr = _lookup>('spine_bone_set_a_x'); - late final _spine_bone_set_a_x = _spine_bone_set_a_xPtr.asFunction(); + late final _spine_bone_set_a_xPtr = + _lookup>( + 'spine_bone_set_a_x'); + late final _spine_bone_set_a_x = + _spine_bone_set_a_xPtr.asFunction(); double spine_bone_get_a_y( spine_bone bone, @@ -4214,8 +5073,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_a_yPtr = _lookup>('spine_bone_get_a_y'); - late final _spine_bone_get_a_y = _spine_bone_get_a_yPtr.asFunction(); + late final _spine_bone_get_a_yPtr = + _lookup>( + 'spine_bone_get_a_y'); + late final _spine_bone_get_a_y = + _spine_bone_get_a_yPtr.asFunction(); void spine_bone_set_a_y( spine_bone bone, @@ -4227,8 +5089,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_a_yPtr = _lookup>('spine_bone_set_a_y'); - late final _spine_bone_set_a_y = _spine_bone_set_a_yPtr.asFunction(); + late final _spine_bone_set_a_yPtr = + _lookup>( + 'spine_bone_set_a_y'); + late final _spine_bone_set_a_y = + _spine_bone_set_a_yPtr.asFunction(); double spine_bone_get_a_scale_x( spine_bone bone, @@ -4238,8 +5103,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_a_scale_xPtr = _lookup>('spine_bone_get_a_scale_x'); - late final _spine_bone_get_a_scale_x = _spine_bone_get_a_scale_xPtr.asFunction(); + late final _spine_bone_get_a_scale_xPtr = + _lookup>( + 'spine_bone_get_a_scale_x'); + late final _spine_bone_get_a_scale_x = + _spine_bone_get_a_scale_xPtr.asFunction(); void spine_bone_set_a_scale_x( spine_bone bone, @@ -4252,8 +5120,10 @@ class SpineFlutterBindings { } late final _spine_bone_set_a_scale_xPtr = - _lookup>('spine_bone_set_a_scale_x'); - late final _spine_bone_set_a_scale_x = _spine_bone_set_a_scale_xPtr.asFunction(); + _lookup>( + 'spine_bone_set_a_scale_x'); + late final _spine_bone_set_a_scale_x = _spine_bone_set_a_scale_xPtr + .asFunction(); double spine_bone_get_a_scale_y( spine_bone bone, @@ -4263,8 +5133,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_a_scale_yPtr = _lookup>('spine_bone_get_a_scale_y'); - late final _spine_bone_get_a_scale_y = _spine_bone_get_a_scale_yPtr.asFunction(); + late final _spine_bone_get_a_scale_yPtr = + _lookup>( + 'spine_bone_get_a_scale_y'); + late final _spine_bone_get_a_scale_y = + _spine_bone_get_a_scale_yPtr.asFunction(); void spine_bone_set_a_scale_y( spine_bone bone, @@ -4277,8 +5150,10 @@ class SpineFlutterBindings { } late final _spine_bone_set_a_scale_yPtr = - _lookup>('spine_bone_set_a_scale_y'); - late final _spine_bone_set_a_scale_y = _spine_bone_set_a_scale_yPtr.asFunction(); + _lookup>( + 'spine_bone_set_a_scale_y'); + late final _spine_bone_set_a_scale_y = _spine_bone_set_a_scale_yPtr + .asFunction(); double spine_bone_get_a_shear_x( spine_bone bone, @@ -4288,8 +5163,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_a_shear_xPtr = _lookup>('spine_bone_get_a_shear_x'); - late final _spine_bone_get_a_shear_x = _spine_bone_get_a_shear_xPtr.asFunction(); + late final _spine_bone_get_a_shear_xPtr = + _lookup>( + 'spine_bone_get_a_shear_x'); + late final _spine_bone_get_a_shear_x = + _spine_bone_get_a_shear_xPtr.asFunction(); void spine_bone_set_a_shear_x( spine_bone bone, @@ -4302,8 +5180,10 @@ class SpineFlutterBindings { } late final _spine_bone_set_a_shear_xPtr = - _lookup>('spine_bone_set_a_shear_x'); - late final _spine_bone_set_a_shear_x = _spine_bone_set_a_shear_xPtr.asFunction(); + _lookup>( + 'spine_bone_set_a_shear_x'); + late final _spine_bone_set_a_shear_x = _spine_bone_set_a_shear_xPtr + .asFunction(); double spine_bone_get_a_shear_y( spine_bone bone, @@ -4313,8 +5193,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_a_shear_yPtr = _lookup>('spine_bone_get_a_shear_y'); - late final _spine_bone_get_a_shear_y = _spine_bone_get_a_shear_yPtr.asFunction(); + late final _spine_bone_get_a_shear_yPtr = + _lookup>( + 'spine_bone_get_a_shear_y'); + late final _spine_bone_get_a_shear_y = + _spine_bone_get_a_shear_yPtr.asFunction(); void spine_bone_set_a_shear_y( spine_bone bone, @@ -4327,8 +5210,10 @@ class SpineFlutterBindings { } late final _spine_bone_set_a_shear_yPtr = - _lookup>('spine_bone_set_a_shear_y'); - late final _spine_bone_set_a_shear_y = _spine_bone_set_a_shear_yPtr.asFunction(); + _lookup>( + 'spine_bone_set_a_shear_y'); + late final _spine_bone_set_a_shear_y = _spine_bone_set_a_shear_yPtr + .asFunction(); double spine_bone_get_a( spine_bone bone, @@ -4338,8 +5223,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_aPtr = _lookup>('spine_bone_get_a'); - late final _spine_bone_get_a = _spine_bone_get_aPtr.asFunction(); + late final _spine_bone_get_aPtr = + _lookup>( + 'spine_bone_get_a'); + late final _spine_bone_get_a = + _spine_bone_get_aPtr.asFunction(); void spine_bone_set_a( spine_bone bone, @@ -4351,8 +5239,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_aPtr = _lookup>('spine_bone_set_a'); - late final _spine_bone_set_a = _spine_bone_set_aPtr.asFunction(); + late final _spine_bone_set_aPtr = + _lookup>( + 'spine_bone_set_a'); + late final _spine_bone_set_a = + _spine_bone_set_aPtr.asFunction(); double spine_bone_get_b( spine_bone bone, @@ -4362,8 +5253,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_bPtr = _lookup>('spine_bone_get_b'); - late final _spine_bone_get_b = _spine_bone_get_bPtr.asFunction(); + late final _spine_bone_get_bPtr = + _lookup>( + 'spine_bone_get_b'); + late final _spine_bone_get_b = + _spine_bone_get_bPtr.asFunction(); void spine_bone_set_b( spine_bone bone, @@ -4375,8 +5269,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_bPtr = _lookup>('spine_bone_set_b'); - late final _spine_bone_set_b = _spine_bone_set_bPtr.asFunction(); + late final _spine_bone_set_bPtr = + _lookup>( + 'spine_bone_set_b'); + late final _spine_bone_set_b = + _spine_bone_set_bPtr.asFunction(); double spine_bone_get_c( spine_bone bone, @@ -4386,8 +5283,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_cPtr = _lookup>('spine_bone_get_c'); - late final _spine_bone_get_c = _spine_bone_get_cPtr.asFunction(); + late final _spine_bone_get_cPtr = + _lookup>( + 'spine_bone_get_c'); + late final _spine_bone_get_c = + _spine_bone_get_cPtr.asFunction(); void spine_bone_set_c( spine_bone bone, @@ -4399,8 +5299,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_cPtr = _lookup>('spine_bone_set_c'); - late final _spine_bone_set_c = _spine_bone_set_cPtr.asFunction(); + late final _spine_bone_set_cPtr = + _lookup>( + 'spine_bone_set_c'); + late final _spine_bone_set_c = + _spine_bone_set_cPtr.asFunction(); double spine_bone_get_d( spine_bone bone, @@ -4410,8 +5313,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_dPtr = _lookup>('spine_bone_get_d'); - late final _spine_bone_get_d = _spine_bone_get_dPtr.asFunction(); + late final _spine_bone_get_dPtr = + _lookup>( + 'spine_bone_get_d'); + late final _spine_bone_get_d = + _spine_bone_get_dPtr.asFunction(); void spine_bone_set_d( spine_bone bone, @@ -4423,8 +5329,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_dPtr = _lookup>('spine_bone_set_d'); - late final _spine_bone_set_d = _spine_bone_set_dPtr.asFunction(); + late final _spine_bone_set_dPtr = + _lookup>( + 'spine_bone_set_d'); + late final _spine_bone_set_d = + _spine_bone_set_dPtr.asFunction(); double spine_bone_get_world_x( spine_bone bone, @@ -4434,8 +5343,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_world_xPtr = _lookup>('spine_bone_get_world_x'); - late final _spine_bone_get_world_x = _spine_bone_get_world_xPtr.asFunction(); + late final _spine_bone_get_world_xPtr = + _lookup>( + 'spine_bone_get_world_x'); + late final _spine_bone_get_world_x = + _spine_bone_get_world_xPtr.asFunction(); void spine_bone_set_world_x( spine_bone bone, @@ -4447,8 +5359,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_world_xPtr = _lookup>('spine_bone_set_world_x'); - late final _spine_bone_set_world_x = _spine_bone_set_world_xPtr.asFunction(); + late final _spine_bone_set_world_xPtr = + _lookup>( + 'spine_bone_set_world_x'); + late final _spine_bone_set_world_x = _spine_bone_set_world_xPtr + .asFunction(); double spine_bone_get_world_y( spine_bone bone, @@ -4458,8 +5373,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_world_yPtr = _lookup>('spine_bone_get_world_y'); - late final _spine_bone_get_world_y = _spine_bone_get_world_yPtr.asFunction(); + late final _spine_bone_get_world_yPtr = + _lookup>( + 'spine_bone_get_world_y'); + late final _spine_bone_get_world_y = + _spine_bone_get_world_yPtr.asFunction(); void spine_bone_set_world_y( spine_bone bone, @@ -4471,8 +5389,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_set_world_yPtr = _lookup>('spine_bone_set_world_y'); - late final _spine_bone_set_world_y = _spine_bone_set_world_yPtr.asFunction(); + late final _spine_bone_set_world_yPtr = + _lookup>( + 'spine_bone_set_world_y'); + late final _spine_bone_set_world_y = _spine_bone_set_world_yPtr + .asFunction(); double spine_bone_get_world_rotation_x( spine_bone bone, @@ -4483,8 +5404,11 @@ class SpineFlutterBindings { } late final _spine_bone_get_world_rotation_xPtr = - _lookup>('spine_bone_get_world_rotation_x'); - late final _spine_bone_get_world_rotation_x = _spine_bone_get_world_rotation_xPtr.asFunction(); + _lookup>( + 'spine_bone_get_world_rotation_x'); + late final _spine_bone_get_world_rotation_x = + _spine_bone_get_world_rotation_xPtr + .asFunction(); double spine_bone_get_world_rotation_y( spine_bone bone, @@ -4495,8 +5419,11 @@ class SpineFlutterBindings { } late final _spine_bone_get_world_rotation_yPtr = - _lookup>('spine_bone_get_world_rotation_y'); - late final _spine_bone_get_world_rotation_y = _spine_bone_get_world_rotation_yPtr.asFunction(); + _lookup>( + 'spine_bone_get_world_rotation_y'); + late final _spine_bone_get_world_rotation_y = + _spine_bone_get_world_rotation_yPtr + .asFunction(); double spine_bone_get_world_scale_x( spine_bone bone, @@ -4506,8 +5433,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_world_scale_xPtr = _lookup>('spine_bone_get_world_scale_x'); - late final _spine_bone_get_world_scale_x = _spine_bone_get_world_scale_xPtr.asFunction(); + late final _spine_bone_get_world_scale_xPtr = + _lookup>( + 'spine_bone_get_world_scale_x'); + late final _spine_bone_get_world_scale_x = _spine_bone_get_world_scale_xPtr + .asFunction(); double spine_bone_get_world_scale_y( spine_bone bone, @@ -4517,8 +5447,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_world_scale_yPtr = _lookup>('spine_bone_get_world_scale_y'); - late final _spine_bone_get_world_scale_y = _spine_bone_get_world_scale_yPtr.asFunction(); + late final _spine_bone_get_world_scale_yPtr = + _lookup>( + 'spine_bone_get_world_scale_y'); + late final _spine_bone_get_world_scale_y = _spine_bone_get_world_scale_yPtr + .asFunction(); int spine_bone_get_is_active( spine_bone bone, @@ -4528,8 +5461,11 @@ class SpineFlutterBindings { ); } - late final _spine_bone_get_is_activePtr = _lookup>('spine_bone_get_is_active'); - late final _spine_bone_get_is_active = _spine_bone_get_is_activePtr.asFunction(); + late final _spine_bone_get_is_activePtr = + _lookup>( + 'spine_bone_get_is_active'); + late final _spine_bone_get_is_active = + _spine_bone_get_is_activePtr.asFunction(); void spine_bone_set_is_active( spine_bone bone, @@ -4542,8 +5478,10 @@ class SpineFlutterBindings { } late final _spine_bone_set_is_activePtr = - _lookup>('spine_bone_set_is_active'); - late final _spine_bone_set_is_active = _spine_bone_set_is_activePtr.asFunction(); + _lookup>( + 'spine_bone_set_is_active'); + late final _spine_bone_set_is_active = + _spine_bone_set_is_activePtr.asFunction(); ffi.Pointer spine_attachment_get_name( spine_attachment attachment, @@ -4554,8 +5492,10 @@ class SpineFlutterBindings { } late final _spine_attachment_get_namePtr = - _lookup Function(spine_attachment)>>('spine_attachment_get_name'); - late final _spine_attachment_get_name = _spine_attachment_get_namePtr.asFunction Function(spine_attachment)>(); + _lookup Function(spine_attachment)>>( + 'spine_attachment_get_name'); + late final _spine_attachment_get_name = _spine_attachment_get_namePtr + .asFunction Function(spine_attachment)>(); int spine_attachment_get_type( spine_attachment attachment, @@ -4565,8 +5505,11 @@ class SpineFlutterBindings { ); } - late final _spine_attachment_get_typePtr = _lookup>('spine_attachment_get_type'); - late final _spine_attachment_get_type = _spine_attachment_get_typePtr.asFunction(); + late final _spine_attachment_get_typePtr = + _lookup>( + 'spine_attachment_get_type'); + late final _spine_attachment_get_type = _spine_attachment_get_typePtr + .asFunction(); spine_attachment spine_attachment_copy( spine_attachment attachment, @@ -4576,8 +5519,11 @@ class SpineFlutterBindings { ); } - late final _spine_attachment_copyPtr = _lookup>('spine_attachment_copy'); - late final _spine_attachment_copy = _spine_attachment_copyPtr.asFunction(); + late final _spine_attachment_copyPtr = + _lookup>( + 'spine_attachment_copy'); + late final _spine_attachment_copy = _spine_attachment_copyPtr + .asFunction(); void spine_attachment_dispose( spine_attachment attachment, @@ -4587,8 +5533,11 @@ class SpineFlutterBindings { ); } - late final _spine_attachment_disposePtr = _lookup>('spine_attachment_dispose'); - late final _spine_attachment_dispose = _spine_attachment_disposePtr.asFunction(); + late final _spine_attachment_disposePtr = + _lookup>( + 'spine_attachment_dispose'); + late final _spine_attachment_dispose = _spine_attachment_disposePtr + .asFunction(); spine_vector spine_point_attachment_compute_world_position( spine_point_attachment attachment, @@ -4600,11 +5549,13 @@ class SpineFlutterBindings { ); } - late final _spine_point_attachment_compute_world_positionPtr = - _lookup>( - 'spine_point_attachment_compute_world_position'); + late final _spine_point_attachment_compute_world_positionPtr = _lookup< + ffi.NativeFunction< + spine_vector Function(spine_point_attachment, + spine_bone)>>('spine_point_attachment_compute_world_position'); late final _spine_point_attachment_compute_world_position = - _spine_point_attachment_compute_world_positionPtr.asFunction(); + _spine_point_attachment_compute_world_positionPtr.asFunction< + spine_vector Function(spine_point_attachment, spine_bone)>(); double spine_point_attachment_compute_world_rotation( spine_point_attachment attachment, @@ -4616,10 +5567,13 @@ class SpineFlutterBindings { ); } - late final _spine_point_attachment_compute_world_rotationPtr = - _lookup>('spine_point_attachment_compute_world_rotation'); + late final _spine_point_attachment_compute_world_rotationPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_point_attachment, + spine_bone)>>('spine_point_attachment_compute_world_rotation'); late final _spine_point_attachment_compute_world_rotation = - _spine_point_attachment_compute_world_rotationPtr.asFunction(); + _spine_point_attachment_compute_world_rotationPtr + .asFunction(); double spine_point_attachment_get_x( spine_point_attachment attachment, @@ -4630,8 +5584,10 @@ class SpineFlutterBindings { } late final _spine_point_attachment_get_xPtr = - _lookup>('spine_point_attachment_get_x'); - late final _spine_point_attachment_get_x = _spine_point_attachment_get_xPtr.asFunction(); + _lookup>( + 'spine_point_attachment_get_x'); + late final _spine_point_attachment_get_x = _spine_point_attachment_get_xPtr + .asFunction(); void spine_point_attachment_set_x( spine_point_attachment attachment, @@ -4643,9 +5599,12 @@ class SpineFlutterBindings { ); } - late final _spine_point_attachment_set_xPtr = - _lookup>('spine_point_attachment_set_x'); - late final _spine_point_attachment_set_x = _spine_point_attachment_set_xPtr.asFunction(); + late final _spine_point_attachment_set_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_point_attachment, + ffi.Float)>>('spine_point_attachment_set_x'); + late final _spine_point_attachment_set_x = _spine_point_attachment_set_xPtr + .asFunction(); double spine_point_attachment_get_y( spine_point_attachment attachment, @@ -4656,8 +5615,10 @@ class SpineFlutterBindings { } late final _spine_point_attachment_get_yPtr = - _lookup>('spine_point_attachment_get_y'); - late final _spine_point_attachment_get_y = _spine_point_attachment_get_yPtr.asFunction(); + _lookup>( + 'spine_point_attachment_get_y'); + late final _spine_point_attachment_get_y = _spine_point_attachment_get_yPtr + .asFunction(); void spine_point_attachment_set_y( spine_point_attachment attachment, @@ -4669,9 +5630,12 @@ class SpineFlutterBindings { ); } - late final _spine_point_attachment_set_yPtr = - _lookup>('spine_point_attachment_set_y'); - late final _spine_point_attachment_set_y = _spine_point_attachment_set_yPtr.asFunction(); + late final _spine_point_attachment_set_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_point_attachment, + ffi.Float)>>('spine_point_attachment_set_y'); + late final _spine_point_attachment_set_y = _spine_point_attachment_set_yPtr + .asFunction(); double spine_point_attachment_get_rotation( spine_point_attachment attachment, @@ -4682,9 +5646,11 @@ class SpineFlutterBindings { } late final _spine_point_attachment_get_rotationPtr = - _lookup>('spine_point_attachment_get_rotation'); + _lookup>( + 'spine_point_attachment_get_rotation'); late final _spine_point_attachment_get_rotation = - _spine_point_attachment_get_rotationPtr.asFunction(); + _spine_point_attachment_get_rotationPtr + .asFunction(); void spine_point_attachment_set_rotation( spine_point_attachment attachment, @@ -4696,10 +5662,13 @@ class SpineFlutterBindings { ); } - late final _spine_point_attachment_set_rotationPtr = - _lookup>('spine_point_attachment_set_rotation'); + late final _spine_point_attachment_set_rotationPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_point_attachment, + ffi.Float)>>('spine_point_attachment_set_rotation'); late final _spine_point_attachment_set_rotation = - _spine_point_attachment_set_rotationPtr.asFunction(); + _spine_point_attachment_set_rotationPtr + .asFunction(); spine_color spine_point_attachment_get_color( spine_point_attachment attachment, @@ -4710,9 +5679,11 @@ class SpineFlutterBindings { } late final _spine_point_attachment_get_colorPtr = - _lookup>('spine_point_attachment_get_color'); + _lookup>( + 'spine_point_attachment_get_color'); late final _spine_point_attachment_get_color = - _spine_point_attachment_get_colorPtr.asFunction(); + _spine_point_attachment_get_colorPtr + .asFunction(); void spine_point_attachment_set_color( spine_point_attachment attachment, @@ -4730,11 +5701,14 @@ class SpineFlutterBindings { ); } - late final _spine_point_attachment_set_colorPtr = - _lookup>( - 'spine_point_attachment_set_color'); + late final _spine_point_attachment_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_point_attachment, ffi.Float, ffi.Float, + ffi.Float, ffi.Float)>>('spine_point_attachment_set_color'); late final _spine_point_attachment_set_color = - _spine_point_attachment_set_colorPtr.asFunction(); + _spine_point_attachment_set_colorPtr.asFunction< + void Function( + spine_point_attachment, double, double, double, double)>(); void spine_region_attachment_update_region( spine_region_attachment attachment, @@ -4745,9 +5719,11 @@ class SpineFlutterBindings { } late final _spine_region_attachment_update_regionPtr = - _lookup>('spine_region_attachment_update_region'); + _lookup>( + 'spine_region_attachment_update_region'); late final _spine_region_attachment_update_region = - _spine_region_attachment_update_regionPtr.asFunction(); + _spine_region_attachment_update_regionPtr + .asFunction(); void spine_region_attachment_compute_world_vertices( spine_region_attachment attachment, @@ -4761,11 +5737,15 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_compute_world_verticesPtr = - _lookup)>>( - 'spine_region_attachment_compute_world_vertices'); - late final _spine_region_attachment_compute_world_vertices = _spine_region_attachment_compute_world_verticesPtr - .asFunction)>(); + late final _spine_region_attachment_compute_world_verticesPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_region_attachment, spine_slot, + ffi.Pointer)>>( + 'spine_region_attachment_compute_world_vertices'); + late final _spine_region_attachment_compute_world_vertices = + _spine_region_attachment_compute_world_verticesPtr.asFunction< + void Function( + spine_region_attachment, spine_slot, ffi.Pointer)>(); double spine_region_attachment_get_x( spine_region_attachment attachment, @@ -4776,8 +5756,10 @@ class SpineFlutterBindings { } late final _spine_region_attachment_get_xPtr = - _lookup>('spine_region_attachment_get_x'); - late final _spine_region_attachment_get_x = _spine_region_attachment_get_xPtr.asFunction(); + _lookup>( + 'spine_region_attachment_get_x'); + late final _spine_region_attachment_get_x = _spine_region_attachment_get_xPtr + .asFunction(); void spine_region_attachment_set_x( spine_region_attachment attachment, @@ -4789,10 +5771,12 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_set_xPtr = - _lookup>('spine_region_attachment_set_x'); - late final _spine_region_attachment_set_x = - _spine_region_attachment_set_xPtr.asFunction(); + late final _spine_region_attachment_set_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_region_attachment, + ffi.Float)>>('spine_region_attachment_set_x'); + late final _spine_region_attachment_set_x = _spine_region_attachment_set_xPtr + .asFunction(); double spine_region_attachment_get_y( spine_region_attachment attachment, @@ -4803,8 +5787,10 @@ class SpineFlutterBindings { } late final _spine_region_attachment_get_yPtr = - _lookup>('spine_region_attachment_get_y'); - late final _spine_region_attachment_get_y = _spine_region_attachment_get_yPtr.asFunction(); + _lookup>( + 'spine_region_attachment_get_y'); + late final _spine_region_attachment_get_y = _spine_region_attachment_get_yPtr + .asFunction(); void spine_region_attachment_set_y( spine_region_attachment attachment, @@ -4816,10 +5802,12 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_set_yPtr = - _lookup>('spine_region_attachment_set_y'); - late final _spine_region_attachment_set_y = - _spine_region_attachment_set_yPtr.asFunction(); + late final _spine_region_attachment_set_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_region_attachment, + ffi.Float)>>('spine_region_attachment_set_y'); + late final _spine_region_attachment_set_y = _spine_region_attachment_set_yPtr + .asFunction(); double spine_region_attachment_get_rotation( spine_region_attachment attachment, @@ -4830,9 +5818,11 @@ class SpineFlutterBindings { } late final _spine_region_attachment_get_rotationPtr = - _lookup>('spine_region_attachment_get_rotation'); + _lookup>( + 'spine_region_attachment_get_rotation'); late final _spine_region_attachment_get_rotation = - _spine_region_attachment_get_rotationPtr.asFunction(); + _spine_region_attachment_get_rotationPtr + .asFunction(); void spine_region_attachment_set_rotation( spine_region_attachment attachment, @@ -4844,10 +5834,13 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_set_rotationPtr = - _lookup>('spine_region_attachment_set_rotation'); + late final _spine_region_attachment_set_rotationPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_region_attachment, + ffi.Float)>>('spine_region_attachment_set_rotation'); late final _spine_region_attachment_set_rotation = - _spine_region_attachment_set_rotationPtr.asFunction(); + _spine_region_attachment_set_rotationPtr + .asFunction(); double spine_region_attachment_get_scale_x( spine_region_attachment attachment, @@ -4858,9 +5851,11 @@ class SpineFlutterBindings { } late final _spine_region_attachment_get_scale_xPtr = - _lookup>('spine_region_attachment_get_scale_x'); + _lookup>( + 'spine_region_attachment_get_scale_x'); late final _spine_region_attachment_get_scale_x = - _spine_region_attachment_get_scale_xPtr.asFunction(); + _spine_region_attachment_get_scale_xPtr + .asFunction(); void spine_region_attachment_set_scale_x( spine_region_attachment attachment, @@ -4872,10 +5867,13 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_set_scale_xPtr = - _lookup>('spine_region_attachment_set_scale_x'); + late final _spine_region_attachment_set_scale_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_region_attachment, + ffi.Float)>>('spine_region_attachment_set_scale_x'); late final _spine_region_attachment_set_scale_x = - _spine_region_attachment_set_scale_xPtr.asFunction(); + _spine_region_attachment_set_scale_xPtr + .asFunction(); double spine_region_attachment_get_scale_y( spine_region_attachment attachment, @@ -4886,9 +5884,11 @@ class SpineFlutterBindings { } late final _spine_region_attachment_get_scale_yPtr = - _lookup>('spine_region_attachment_get_scale_y'); + _lookup>( + 'spine_region_attachment_get_scale_y'); late final _spine_region_attachment_get_scale_y = - _spine_region_attachment_get_scale_yPtr.asFunction(); + _spine_region_attachment_get_scale_yPtr + .asFunction(); void spine_region_attachment_set_scale_y( spine_region_attachment attachment, @@ -4900,10 +5900,13 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_set_scale_yPtr = - _lookup>('spine_region_attachment_set_scale_y'); + late final _spine_region_attachment_set_scale_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_region_attachment, + ffi.Float)>>('spine_region_attachment_set_scale_y'); late final _spine_region_attachment_set_scale_y = - _spine_region_attachment_set_scale_yPtr.asFunction(); + _spine_region_attachment_set_scale_yPtr + .asFunction(); double spine_region_attachment_get_width( spine_region_attachment attachment, @@ -4914,9 +5917,11 @@ class SpineFlutterBindings { } late final _spine_region_attachment_get_widthPtr = - _lookup>('spine_region_attachment_get_width'); + _lookup>( + 'spine_region_attachment_get_width'); late final _spine_region_attachment_get_width = - _spine_region_attachment_get_widthPtr.asFunction(); + _spine_region_attachment_get_widthPtr + .asFunction(); void spine_region_attachment_set_width( spine_region_attachment attachment, @@ -4928,10 +5933,13 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_set_widthPtr = - _lookup>('spine_region_attachment_set_width'); + late final _spine_region_attachment_set_widthPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_region_attachment, + ffi.Float)>>('spine_region_attachment_set_width'); late final _spine_region_attachment_set_width = - _spine_region_attachment_set_widthPtr.asFunction(); + _spine_region_attachment_set_widthPtr + .asFunction(); double spine_region_attachment_get_height( spine_region_attachment attachment, @@ -4942,9 +5950,11 @@ class SpineFlutterBindings { } late final _spine_region_attachment_get_heightPtr = - _lookup>('spine_region_attachment_get_height'); + _lookup>( + 'spine_region_attachment_get_height'); late final _spine_region_attachment_get_height = - _spine_region_attachment_get_heightPtr.asFunction(); + _spine_region_attachment_get_heightPtr + .asFunction(); void spine_region_attachment_set_height( spine_region_attachment attachment, @@ -4956,10 +5966,13 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_set_heightPtr = - _lookup>('spine_region_attachment_set_height'); + late final _spine_region_attachment_set_heightPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_region_attachment, + ffi.Float)>>('spine_region_attachment_set_height'); late final _spine_region_attachment_set_height = - _spine_region_attachment_set_heightPtr.asFunction(); + _spine_region_attachment_set_heightPtr + .asFunction(); spine_color spine_region_attachment_get_color( spine_region_attachment attachment, @@ -4969,10 +5982,12 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_get_colorPtr = - _lookup>('spine_region_attachment_get_color'); + late final _spine_region_attachment_get_colorPtr = _lookup< + ffi.NativeFunction>( + 'spine_region_attachment_get_color'); late final _spine_region_attachment_get_color = - _spine_region_attachment_get_colorPtr.asFunction(); + _spine_region_attachment_get_colorPtr + .asFunction(); void spine_region_attachment_set_color( spine_region_attachment attachment, @@ -4990,11 +6005,14 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_set_colorPtr = - _lookup>( - 'spine_region_attachment_set_color'); + late final _spine_region_attachment_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_region_attachment, ffi.Float, ffi.Float, + ffi.Float, ffi.Float)>>('spine_region_attachment_set_color'); late final _spine_region_attachment_set_color = - _spine_region_attachment_set_colorPtr.asFunction(); + _spine_region_attachment_set_colorPtr.asFunction< + void Function( + spine_region_attachment, double, double, double, double)>(); ffi.Pointer spine_region_attachment_get_path( spine_region_attachment attachment, @@ -5004,10 +6022,13 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_get_pathPtr = - _lookup Function(spine_region_attachment)>>('spine_region_attachment_get_path'); + late final _spine_region_attachment_get_pathPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_region_attachment)>>('spine_region_attachment_get_path'); late final _spine_region_attachment_get_path = - _spine_region_attachment_get_pathPtr.asFunction Function(spine_region_attachment)>(); + _spine_region_attachment_get_pathPtr + .asFunction Function(spine_region_attachment)>(); /// OMITTED setPath() spine_texture_region spine_region_attachment_get_region( @@ -5018,10 +6039,13 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_get_regionPtr = - _lookup>('spine_region_attachment_get_region'); + late final _spine_region_attachment_get_regionPtr = _lookup< + ffi.NativeFunction< + spine_texture_region Function( + spine_region_attachment)>>('spine_region_attachment_get_region'); late final _spine_region_attachment_get_region = - _spine_region_attachment_get_regionPtr.asFunction(); + _spine_region_attachment_get_regionPtr + .asFunction(); /// OMITTED setRegion() spine_sequence spine_region_attachment_get_sequence( @@ -5032,10 +6056,12 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_get_sequencePtr = - _lookup>('spine_region_attachment_get_sequence'); + late final _spine_region_attachment_get_sequencePtr = _lookup< + ffi.NativeFunction>( + 'spine_region_attachment_get_sequence'); late final _spine_region_attachment_get_sequence = - _spine_region_attachment_get_sequencePtr.asFunction(); + _spine_region_attachment_get_sequencePtr + .asFunction(); /// OMITTED setSequence() int spine_region_attachment_get_num_offset( @@ -5047,9 +6073,11 @@ class SpineFlutterBindings { } late final _spine_region_attachment_get_num_offsetPtr = - _lookup>('spine_region_attachment_get_num_offset'); + _lookup>( + 'spine_region_attachment_get_num_offset'); late final _spine_region_attachment_get_num_offset = - _spine_region_attachment_get_num_offsetPtr.asFunction(); + _spine_region_attachment_get_num_offsetPtr + .asFunction(); ffi.Pointer spine_region_attachment_get_offset( spine_region_attachment attachment, @@ -5059,10 +6087,13 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_get_offsetPtr = - _lookup Function(spine_region_attachment)>>('spine_region_attachment_get_offset'); + late final _spine_region_attachment_get_offsetPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_region_attachment)>>('spine_region_attachment_get_offset'); late final _spine_region_attachment_get_offset = - _spine_region_attachment_get_offsetPtr.asFunction Function(spine_region_attachment)>(); + _spine_region_attachment_get_offsetPtr.asFunction< + ffi.Pointer Function(spine_region_attachment)>(); int spine_region_attachment_get_num_uvs( spine_region_attachment attachment, @@ -5073,9 +6104,11 @@ class SpineFlutterBindings { } late final _spine_region_attachment_get_num_uvsPtr = - _lookup>('spine_region_attachment_get_num_uvs'); + _lookup>( + 'spine_region_attachment_get_num_uvs'); late final _spine_region_attachment_get_num_uvs = - _spine_region_attachment_get_num_uvsPtr.asFunction(); + _spine_region_attachment_get_num_uvsPtr + .asFunction(); ffi.Pointer spine_region_attachment_get_uvs( spine_region_attachment attachment, @@ -5085,10 +6118,13 @@ class SpineFlutterBindings { ); } - late final _spine_region_attachment_get_uvsPtr = - _lookup Function(spine_region_attachment)>>('spine_region_attachment_get_uvs'); + late final _spine_region_attachment_get_uvsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_region_attachment)>>('spine_region_attachment_get_uvs'); late final _spine_region_attachment_get_uvs = - _spine_region_attachment_get_uvsPtr.asFunction Function(spine_region_attachment)>(); + _spine_region_attachment_get_uvsPtr.asFunction< + ffi.Pointer Function(spine_region_attachment)>(); int spine_vertex_attachment_get_world_vertices_length( spine_vertex_attachment attachment, @@ -5099,9 +6135,11 @@ class SpineFlutterBindings { } late final _spine_vertex_attachment_get_world_vertices_lengthPtr = - _lookup>('spine_vertex_attachment_get_world_vertices_length'); + _lookup>( + 'spine_vertex_attachment_get_world_vertices_length'); late final _spine_vertex_attachment_get_world_vertices_length = - _spine_vertex_attachment_get_world_vertices_lengthPtr.asFunction(); + _spine_vertex_attachment_get_world_vertices_lengthPtr + .asFunction(); void spine_vertex_attachment_compute_world_vertices( spine_vertex_attachment attachment, @@ -5115,11 +6153,15 @@ class SpineFlutterBindings { ); } - late final _spine_vertex_attachment_compute_world_verticesPtr = - _lookup)>>( - 'spine_vertex_attachment_compute_world_vertices'); - late final _spine_vertex_attachment_compute_world_vertices = _spine_vertex_attachment_compute_world_verticesPtr - .asFunction)>(); + late final _spine_vertex_attachment_compute_world_verticesPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_vertex_attachment, spine_slot, + ffi.Pointer)>>( + 'spine_vertex_attachment_compute_world_vertices'); + late final _spine_vertex_attachment_compute_world_vertices = + _spine_vertex_attachment_compute_world_verticesPtr.asFunction< + void Function( + spine_vertex_attachment, spine_slot, ffi.Pointer)>(); /// OMITTED getId() int spine_vertex_attachment_get_num_bones( @@ -5131,9 +6173,11 @@ class SpineFlutterBindings { } late final _spine_vertex_attachment_get_num_bonesPtr = - _lookup>('spine_vertex_attachment_get_num_bones'); + _lookup>( + 'spine_vertex_attachment_get_num_bones'); late final _spine_vertex_attachment_get_num_bones = - _spine_vertex_attachment_get_num_bonesPtr.asFunction(); + _spine_vertex_attachment_get_num_bonesPtr + .asFunction(); ffi.Pointer spine_vertex_attachment_get_bones( spine_vertex_attachment attachment, @@ -5143,10 +6187,13 @@ class SpineFlutterBindings { ); } - late final _spine_vertex_attachment_get_bonesPtr = - _lookup Function(spine_vertex_attachment)>>('spine_vertex_attachment_get_bones'); + late final _spine_vertex_attachment_get_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_vertex_attachment)>>('spine_vertex_attachment_get_bones'); late final _spine_vertex_attachment_get_bones = - _spine_vertex_attachment_get_bonesPtr.asFunction Function(spine_vertex_attachment)>(); + _spine_vertex_attachment_get_bonesPtr.asFunction< + ffi.Pointer Function(spine_vertex_attachment)>(); int spine_vertex_attachment_get_num_vertices( spine_vertex_attachment attachment, @@ -5157,9 +6204,11 @@ class SpineFlutterBindings { } late final _spine_vertex_attachment_get_num_verticesPtr = - _lookup>('spine_vertex_attachment_get_num_vertices'); + _lookup>( + 'spine_vertex_attachment_get_num_vertices'); late final _spine_vertex_attachment_get_num_vertices = - _spine_vertex_attachment_get_num_verticesPtr.asFunction(); + _spine_vertex_attachment_get_num_verticesPtr + .asFunction(); ffi.Pointer spine_vertex_attachment_get_vertices( spine_vertex_attachment attachment, @@ -5169,10 +6218,13 @@ class SpineFlutterBindings { ); } - late final _spine_vertex_attachment_get_verticesPtr = - _lookup Function(spine_vertex_attachment)>>('spine_vertex_attachment_get_vertices'); + late final _spine_vertex_attachment_get_verticesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function(spine_vertex_attachment)>>( + 'spine_vertex_attachment_get_vertices'); late final _spine_vertex_attachment_get_vertices = - _spine_vertex_attachment_get_verticesPtr.asFunction Function(spine_vertex_attachment)>(); + _spine_vertex_attachment_get_verticesPtr.asFunction< + ffi.Pointer Function(spine_vertex_attachment)>(); spine_attachment spine_vertex_attachment_get_timeline_attachment( spine_vertex_attachment timelineAttachment, @@ -5182,10 +6234,13 @@ class SpineFlutterBindings { ); } - late final _spine_vertex_attachment_get_timeline_attachmentPtr = - _lookup>('spine_vertex_attachment_get_timeline_attachment'); + late final _spine_vertex_attachment_get_timeline_attachmentPtr = _lookup< + ffi.NativeFunction< + spine_attachment Function(spine_vertex_attachment)>>( + 'spine_vertex_attachment_get_timeline_attachment'); late final _spine_vertex_attachment_get_timeline_attachment = - _spine_vertex_attachment_get_timeline_attachmentPtr.asFunction(); + _spine_vertex_attachment_get_timeline_attachmentPtr + .asFunction(); void spine_vertex_attachment_set_timeline_attachment( spine_vertex_attachment attachment, @@ -5197,11 +6252,13 @@ class SpineFlutterBindings { ); } - late final _spine_vertex_attachment_set_timeline_attachmentPtr = - _lookup>( - 'spine_vertex_attachment_set_timeline_attachment'); + late final _spine_vertex_attachment_set_timeline_attachmentPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_vertex_attachment, spine_attachment)>>( + 'spine_vertex_attachment_set_timeline_attachment'); late final _spine_vertex_attachment_set_timeline_attachment = - _spine_vertex_attachment_set_timeline_attachmentPtr.asFunction(); + _spine_vertex_attachment_set_timeline_attachmentPtr.asFunction< + void Function(spine_vertex_attachment, spine_attachment)>(); /// OMITTED copyTo() void spine_mesh_attachment_update_region( @@ -5213,9 +6270,11 @@ class SpineFlutterBindings { } late final _spine_mesh_attachment_update_regionPtr = - _lookup>('spine_mesh_attachment_update_region'); + _lookup>( + 'spine_mesh_attachment_update_region'); late final _spine_mesh_attachment_update_region = - _spine_mesh_attachment_update_regionPtr.asFunction(); + _spine_mesh_attachment_update_regionPtr + .asFunction(); int spine_mesh_attachment_get_hull_length( spine_mesh_attachment attachment, @@ -5226,9 +6285,11 @@ class SpineFlutterBindings { } late final _spine_mesh_attachment_get_hull_lengthPtr = - _lookup>('spine_mesh_attachment_get_hull_length'); + _lookup>( + 'spine_mesh_attachment_get_hull_length'); late final _spine_mesh_attachment_get_hull_length = - _spine_mesh_attachment_get_hull_lengthPtr.asFunction(); + _spine_mesh_attachment_get_hull_lengthPtr + .asFunction(); void spine_mesh_attachment_set_hull_length( spine_mesh_attachment attachment, @@ -5240,10 +6301,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_set_hull_lengthPtr = - _lookup>('spine_mesh_attachment_set_hull_length'); + late final _spine_mesh_attachment_set_hull_lengthPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_mesh_attachment, + ffi.Int32)>>('spine_mesh_attachment_set_hull_length'); late final _spine_mesh_attachment_set_hull_length = - _spine_mesh_attachment_set_hull_lengthPtr.asFunction(); + _spine_mesh_attachment_set_hull_lengthPtr + .asFunction(); int spine_mesh_attachment_get_num_region_uvs( spine_mesh_attachment attachment, @@ -5254,9 +6318,11 @@ class SpineFlutterBindings { } late final _spine_mesh_attachment_get_num_region_uvsPtr = - _lookup>('spine_mesh_attachment_get_num_region_uvs'); + _lookup>( + 'spine_mesh_attachment_get_num_region_uvs'); late final _spine_mesh_attachment_get_num_region_uvs = - _spine_mesh_attachment_get_num_region_uvsPtr.asFunction(); + _spine_mesh_attachment_get_num_region_uvsPtr + .asFunction(); ffi.Pointer spine_mesh_attachment_get_region_uvs( spine_mesh_attachment attachment, @@ -5266,10 +6332,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_get_region_uvsPtr = - _lookup Function(spine_mesh_attachment)>>('spine_mesh_attachment_get_region_uvs'); + late final _spine_mesh_attachment_get_region_uvsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_mesh_attachment)>>('spine_mesh_attachment_get_region_uvs'); late final _spine_mesh_attachment_get_region_uvs = - _spine_mesh_attachment_get_region_uvsPtr.asFunction Function(spine_mesh_attachment)>(); + _spine_mesh_attachment_get_region_uvsPtr + .asFunction Function(spine_mesh_attachment)>(); int spine_mesh_attachment_get_num_uvs( spine_mesh_attachment attachment, @@ -5280,8 +6349,11 @@ class SpineFlutterBindings { } late final _spine_mesh_attachment_get_num_uvsPtr = - _lookup>('spine_mesh_attachment_get_num_uvs'); - late final _spine_mesh_attachment_get_num_uvs = _spine_mesh_attachment_get_num_uvsPtr.asFunction(); + _lookup>( + 'spine_mesh_attachment_get_num_uvs'); + late final _spine_mesh_attachment_get_num_uvs = + _spine_mesh_attachment_get_num_uvsPtr + .asFunction(); ffi.Pointer spine_mesh_attachment_get_uvs( spine_mesh_attachment attachment, @@ -5291,10 +6363,12 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_get_uvsPtr = - _lookup Function(spine_mesh_attachment)>>('spine_mesh_attachment_get_uvs'); - late final _spine_mesh_attachment_get_uvs = - _spine_mesh_attachment_get_uvsPtr.asFunction Function(spine_mesh_attachment)>(); + late final _spine_mesh_attachment_get_uvsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_mesh_attachment)>>('spine_mesh_attachment_get_uvs'); + late final _spine_mesh_attachment_get_uvs = _spine_mesh_attachment_get_uvsPtr + .asFunction Function(spine_mesh_attachment)>(); int spine_mesh_attachment_get_num_triangles( spine_mesh_attachment attachment, @@ -5305,9 +6379,11 @@ class SpineFlutterBindings { } late final _spine_mesh_attachment_get_num_trianglesPtr = - _lookup>('spine_mesh_attachment_get_num_triangles'); + _lookup>( + 'spine_mesh_attachment_get_num_triangles'); late final _spine_mesh_attachment_get_num_triangles = - _spine_mesh_attachment_get_num_trianglesPtr.asFunction(); + _spine_mesh_attachment_get_num_trianglesPtr + .asFunction(); ffi.Pointer spine_mesh_attachment_get_triangles( spine_mesh_attachment attachment, @@ -5317,10 +6393,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_get_trianglesPtr = - _lookup Function(spine_mesh_attachment)>>('spine_mesh_attachment_get_triangles'); + late final _spine_mesh_attachment_get_trianglesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_mesh_attachment)>>('spine_mesh_attachment_get_triangles'); late final _spine_mesh_attachment_get_triangles = - _spine_mesh_attachment_get_trianglesPtr.asFunction Function(spine_mesh_attachment)>(); + _spine_mesh_attachment_get_trianglesPtr.asFunction< + ffi.Pointer Function(spine_mesh_attachment)>(); spine_color spine_mesh_attachment_get_color( spine_mesh_attachment attachment, @@ -5331,9 +6410,11 @@ class SpineFlutterBindings { } late final _spine_mesh_attachment_get_colorPtr = - _lookup>('spine_mesh_attachment_get_color'); + _lookup>( + 'spine_mesh_attachment_get_color'); late final _spine_mesh_attachment_get_color = - _spine_mesh_attachment_get_colorPtr.asFunction(); + _spine_mesh_attachment_get_colorPtr + .asFunction(); void spine_mesh_attachment_set_color( spine_mesh_attachment attachment, @@ -5351,11 +6432,14 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_set_colorPtr = - _lookup>( - 'spine_mesh_attachment_set_color'); + late final _spine_mesh_attachment_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_mesh_attachment, ffi.Float, ffi.Float, + ffi.Float, ffi.Float)>>('spine_mesh_attachment_set_color'); late final _spine_mesh_attachment_set_color = - _spine_mesh_attachment_set_colorPtr.asFunction(); + _spine_mesh_attachment_set_colorPtr.asFunction< + void Function( + spine_mesh_attachment, double, double, double, double)>(); ffi.Pointer spine_mesh_attachment_get_path( spine_mesh_attachment attachment, @@ -5365,10 +6449,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_get_pathPtr = - _lookup Function(spine_mesh_attachment)>>('spine_mesh_attachment_get_path'); + late final _spine_mesh_attachment_get_pathPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_mesh_attachment)>>('spine_mesh_attachment_get_path'); late final _spine_mesh_attachment_get_path = - _spine_mesh_attachment_get_pathPtr.asFunction Function(spine_mesh_attachment)>(); + _spine_mesh_attachment_get_pathPtr + .asFunction Function(spine_mesh_attachment)>(); /// OMITTED setPath() spine_texture_region spine_mesh_attachment_get_region( @@ -5379,10 +6466,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_get_regionPtr = - _lookup>('spine_mesh_attachment_get_region'); + late final _spine_mesh_attachment_get_regionPtr = _lookup< + ffi.NativeFunction< + spine_texture_region Function( + spine_mesh_attachment)>>('spine_mesh_attachment_get_region'); late final _spine_mesh_attachment_get_region = - _spine_mesh_attachment_get_regionPtr.asFunction(); + _spine_mesh_attachment_get_regionPtr + .asFunction(); /// OMITTED setRegion() spine_sequence spine_mesh_attachment_get_sequence( @@ -5393,10 +6483,12 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_get_sequencePtr = - _lookup>('spine_mesh_attachment_get_sequence'); + late final _spine_mesh_attachment_get_sequencePtr = _lookup< + ffi.NativeFunction>( + 'spine_mesh_attachment_get_sequence'); late final _spine_mesh_attachment_get_sequence = - _spine_mesh_attachment_get_sequencePtr.asFunction(); + _spine_mesh_attachment_get_sequencePtr + .asFunction(); /// OMITTED setSequence() spine_mesh_attachment spine_mesh_attachment_get_parent_mesh( @@ -5407,10 +6499,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_get_parent_meshPtr = - _lookup>('spine_mesh_attachment_get_parent_mesh'); + late final _spine_mesh_attachment_get_parent_meshPtr = _lookup< + ffi.NativeFunction< + spine_mesh_attachment Function( + spine_mesh_attachment)>>('spine_mesh_attachment_get_parent_mesh'); late final _spine_mesh_attachment_get_parent_mesh = - _spine_mesh_attachment_get_parent_meshPtr.asFunction(); + _spine_mesh_attachment_get_parent_meshPtr + .asFunction(); void spine_mesh_attachment_set_parent_mesh( spine_mesh_attachment attachment, @@ -5422,10 +6517,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_set_parent_meshPtr = - _lookup>('spine_mesh_attachment_set_parent_mesh'); + late final _spine_mesh_attachment_set_parent_meshPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_mesh_attachment, + spine_mesh_attachment)>>('spine_mesh_attachment_set_parent_mesh'); late final _spine_mesh_attachment_set_parent_mesh = - _spine_mesh_attachment_set_parent_meshPtr.asFunction(); + _spine_mesh_attachment_set_parent_meshPtr.asFunction< + void Function(spine_mesh_attachment, spine_mesh_attachment)>(); int spine_mesh_attachment_get_num_edges( spine_mesh_attachment attachment, @@ -5436,9 +6534,11 @@ class SpineFlutterBindings { } late final _spine_mesh_attachment_get_num_edgesPtr = - _lookup>('spine_mesh_attachment_get_num_edges'); + _lookup>( + 'spine_mesh_attachment_get_num_edges'); late final _spine_mesh_attachment_get_num_edges = - _spine_mesh_attachment_get_num_edgesPtr.asFunction(); + _spine_mesh_attachment_get_num_edgesPtr + .asFunction(); ffi.Pointer spine_mesh_attachment_get_edges( spine_mesh_attachment attachment, @@ -5448,10 +6548,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_get_edgesPtr = - _lookup Function(spine_mesh_attachment)>>('spine_mesh_attachment_get_edges'); + late final _spine_mesh_attachment_get_edgesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_mesh_attachment)>>('spine_mesh_attachment_get_edges'); late final _spine_mesh_attachment_get_edges = - _spine_mesh_attachment_get_edgesPtr.asFunction Function(spine_mesh_attachment)>(); + _spine_mesh_attachment_get_edgesPtr.asFunction< + ffi.Pointer Function(spine_mesh_attachment)>(); double spine_mesh_attachment_get_width( spine_mesh_attachment attachment, @@ -5462,8 +6565,11 @@ class SpineFlutterBindings { } late final _spine_mesh_attachment_get_widthPtr = - _lookup>('spine_mesh_attachment_get_width'); - late final _spine_mesh_attachment_get_width = _spine_mesh_attachment_get_widthPtr.asFunction(); + _lookup>( + 'spine_mesh_attachment_get_width'); + late final _spine_mesh_attachment_get_width = + _spine_mesh_attachment_get_widthPtr + .asFunction(); void spine_mesh_attachment_set_width( spine_mesh_attachment attachment, @@ -5475,10 +6581,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_set_widthPtr = - _lookup>('spine_mesh_attachment_set_width'); + late final _spine_mesh_attachment_set_widthPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_mesh_attachment, + ffi.Float)>>('spine_mesh_attachment_set_width'); late final _spine_mesh_attachment_set_width = - _spine_mesh_attachment_set_widthPtr.asFunction(); + _spine_mesh_attachment_set_widthPtr + .asFunction(); double spine_mesh_attachment_get_height( spine_mesh_attachment attachment, @@ -5489,8 +6598,11 @@ class SpineFlutterBindings { } late final _spine_mesh_attachment_get_heightPtr = - _lookup>('spine_mesh_attachment_get_height'); - late final _spine_mesh_attachment_get_height = _spine_mesh_attachment_get_heightPtr.asFunction(); + _lookup>( + 'spine_mesh_attachment_get_height'); + late final _spine_mesh_attachment_get_height = + _spine_mesh_attachment_get_heightPtr + .asFunction(); void spine_mesh_attachment_set_height( spine_mesh_attachment attachment, @@ -5502,10 +6614,13 @@ class SpineFlutterBindings { ); } - late final _spine_mesh_attachment_set_heightPtr = - _lookup>('spine_mesh_attachment_set_height'); + late final _spine_mesh_attachment_set_heightPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_mesh_attachment, + ffi.Float)>>('spine_mesh_attachment_set_height'); late final _spine_mesh_attachment_set_height = - _spine_mesh_attachment_set_heightPtr.asFunction(); + _spine_mesh_attachment_set_heightPtr + .asFunction(); /// OMITTED newLinkedMesh() spine_slot_data spine_clipping_attachment_get_end_slot( @@ -5516,10 +6631,13 @@ class SpineFlutterBindings { ); } - late final _spine_clipping_attachment_get_end_slotPtr = - _lookup>('spine_clipping_attachment_get_end_slot'); + late final _spine_clipping_attachment_get_end_slotPtr = _lookup< + ffi.NativeFunction< + spine_slot_data Function(spine_clipping_attachment)>>( + 'spine_clipping_attachment_get_end_slot'); late final _spine_clipping_attachment_get_end_slot = - _spine_clipping_attachment_get_end_slotPtr.asFunction(); + _spine_clipping_attachment_get_end_slotPtr + .asFunction(); void spine_clipping_attachment_set_end_slot( spine_clipping_attachment attachment, @@ -5531,10 +6649,13 @@ class SpineFlutterBindings { ); } - late final _spine_clipping_attachment_set_end_slotPtr = - _lookup>('spine_clipping_attachment_set_end_slot'); + late final _spine_clipping_attachment_set_end_slotPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_clipping_attachment, + spine_slot_data)>>('spine_clipping_attachment_set_end_slot'); late final _spine_clipping_attachment_set_end_slot = - _spine_clipping_attachment_set_end_slotPtr.asFunction(); + _spine_clipping_attachment_set_end_slotPtr.asFunction< + void Function(spine_clipping_attachment, spine_slot_data)>(); spine_color spine_clipping_attachment_get_color( spine_clipping_attachment attachment, @@ -5544,10 +6665,12 @@ class SpineFlutterBindings { ); } - late final _spine_clipping_attachment_get_colorPtr = - _lookup>('spine_clipping_attachment_get_color'); + late final _spine_clipping_attachment_get_colorPtr = _lookup< + ffi.NativeFunction>( + 'spine_clipping_attachment_get_color'); late final _spine_clipping_attachment_get_color = - _spine_clipping_attachment_get_colorPtr.asFunction(); + _spine_clipping_attachment_get_colorPtr + .asFunction(); void spine_clipping_attachment_set_color( spine_clipping_attachment attachment, @@ -5565,11 +6688,14 @@ class SpineFlutterBindings { ); } - late final _spine_clipping_attachment_set_colorPtr = - _lookup>( - 'spine_clipping_attachment_set_color'); + late final _spine_clipping_attachment_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_clipping_attachment, ffi.Float, ffi.Float, + ffi.Float, ffi.Float)>>('spine_clipping_attachment_set_color'); late final _spine_clipping_attachment_set_color = - _spine_clipping_attachment_set_colorPtr.asFunction(); + _spine_clipping_attachment_set_colorPtr.asFunction< + void Function( + spine_clipping_attachment, double, double, double, double)>(); spine_color spine_bounding_box_attachment_get_color( spine_bounding_box_attachment attachment, @@ -5579,10 +6705,13 @@ class SpineFlutterBindings { ); } - late final _spine_bounding_box_attachment_get_colorPtr = - _lookup>('spine_bounding_box_attachment_get_color'); + late final _spine_bounding_box_attachment_get_colorPtr = _lookup< + ffi.NativeFunction< + spine_color Function(spine_bounding_box_attachment)>>( + 'spine_bounding_box_attachment_get_color'); late final _spine_bounding_box_attachment_get_color = - _spine_bounding_box_attachment_get_colorPtr.asFunction(); + _spine_bounding_box_attachment_get_colorPtr + .asFunction(); void spine_bounding_box_attachment_set_color( spine_bounding_box_attachment attachment, @@ -5600,11 +6729,18 @@ class SpineFlutterBindings { ); } - late final _spine_bounding_box_attachment_set_colorPtr = - _lookup>( - 'spine_bounding_box_attachment_set_color'); - late final _spine_bounding_box_attachment_set_color = _spine_bounding_box_attachment_set_colorPtr - .asFunction(); + late final _spine_bounding_box_attachment_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_bounding_box_attachment, + ffi.Float, + ffi.Float, + ffi.Float, + ffi.Float)>>('spine_bounding_box_attachment_set_color'); + late final _spine_bounding_box_attachment_set_color = + _spine_bounding_box_attachment_set_colorPtr.asFunction< + void Function( + spine_bounding_box_attachment, double, double, double, double)>(); int spine_path_attachment_get_num_lengths( spine_path_attachment attachment, @@ -5615,9 +6751,11 @@ class SpineFlutterBindings { } late final _spine_path_attachment_get_num_lengthsPtr = - _lookup>('spine_path_attachment_get_num_lengths'); + _lookup>( + 'spine_path_attachment_get_num_lengths'); late final _spine_path_attachment_get_num_lengths = - _spine_path_attachment_get_num_lengthsPtr.asFunction(); + _spine_path_attachment_get_num_lengthsPtr + .asFunction(); ffi.Pointer spine_path_attachment_get_lengths( spine_path_attachment attachment, @@ -5627,10 +6765,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_attachment_get_lengthsPtr = - _lookup Function(spine_path_attachment)>>('spine_path_attachment_get_lengths'); + late final _spine_path_attachment_get_lengthsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_path_attachment)>>('spine_path_attachment_get_lengths'); late final _spine_path_attachment_get_lengths = - _spine_path_attachment_get_lengthsPtr.asFunction Function(spine_path_attachment)>(); + _spine_path_attachment_get_lengthsPtr + .asFunction Function(spine_path_attachment)>(); int spine_path_attachment_get_is_closed( spine_path_attachment attachment, @@ -5641,9 +6782,11 @@ class SpineFlutterBindings { } late final _spine_path_attachment_get_is_closedPtr = - _lookup>('spine_path_attachment_get_is_closed'); + _lookup>( + 'spine_path_attachment_get_is_closed'); late final _spine_path_attachment_get_is_closed = - _spine_path_attachment_get_is_closedPtr.asFunction(); + _spine_path_attachment_get_is_closedPtr + .asFunction(); void spine_path_attachment_set_is_closed( spine_path_attachment attachment, @@ -5655,10 +6798,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_attachment_set_is_closedPtr = - _lookup>('spine_path_attachment_set_is_closed'); + late final _spine_path_attachment_set_is_closedPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_attachment, + ffi.Int32)>>('spine_path_attachment_set_is_closed'); late final _spine_path_attachment_set_is_closed = - _spine_path_attachment_set_is_closedPtr.asFunction(); + _spine_path_attachment_set_is_closedPtr + .asFunction(); int spine_path_attachment_get_is_constant_speed( spine_path_attachment attachment, @@ -5669,9 +6815,11 @@ class SpineFlutterBindings { } late final _spine_path_attachment_get_is_constant_speedPtr = - _lookup>('spine_path_attachment_get_is_constant_speed'); + _lookup>( + 'spine_path_attachment_get_is_constant_speed'); late final _spine_path_attachment_get_is_constant_speed = - _spine_path_attachment_get_is_constant_speedPtr.asFunction(); + _spine_path_attachment_get_is_constant_speedPtr + .asFunction(); void spine_path_attachment_set_is_constant_speed( spine_path_attachment attachment, @@ -5683,10 +6831,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_attachment_set_is_constant_speedPtr = - _lookup>('spine_path_attachment_set_is_constant_speed'); + late final _spine_path_attachment_set_is_constant_speedPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_attachment, + ffi.Int32)>>('spine_path_attachment_set_is_constant_speed'); late final _spine_path_attachment_set_is_constant_speed = - _spine_path_attachment_set_is_constant_speedPtr.asFunction(); + _spine_path_attachment_set_is_constant_speedPtr + .asFunction(); spine_color spine_path_attachment_get_color( spine_path_attachment attachment, @@ -5697,9 +6848,11 @@ class SpineFlutterBindings { } late final _spine_path_attachment_get_colorPtr = - _lookup>('spine_path_attachment_get_color'); + _lookup>( + 'spine_path_attachment_get_color'); late final _spine_path_attachment_get_color = - _spine_path_attachment_get_colorPtr.asFunction(); + _spine_path_attachment_get_colorPtr + .asFunction(); void spine_path_attachment_set_color( spine_path_attachment attachment, @@ -5717,11 +6870,14 @@ class SpineFlutterBindings { ); } - late final _spine_path_attachment_set_colorPtr = - _lookup>( - 'spine_path_attachment_set_color'); + late final _spine_path_attachment_set_colorPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_attachment, ffi.Float, ffi.Float, + ffi.Float, ffi.Float)>>('spine_path_attachment_set_color'); late final _spine_path_attachment_set_color = - _spine_path_attachment_set_colorPtr.asFunction(); + _spine_path_attachment_set_colorPtr.asFunction< + void Function( + spine_path_attachment, double, double, double, double)>(); void spine_skin_set_attachment( spine_skin skin, @@ -5737,11 +6893,14 @@ class SpineFlutterBindings { ); } - late final _spine_skin_set_attachmentPtr = - _lookup, spine_attachment)>>( - 'spine_skin_set_attachment'); + late final _spine_skin_set_attachmentPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_skin, ffi.Int32, ffi.Pointer, + spine_attachment)>>('spine_skin_set_attachment'); late final _spine_skin_set_attachment = - _spine_skin_set_attachmentPtr.asFunction, spine_attachment)>(); + _spine_skin_set_attachmentPtr.asFunction< + void Function( + spine_skin, int, ffi.Pointer, spine_attachment)>(); spine_attachment spine_skin_get_attachment( spine_skin skin, @@ -5755,10 +6914,13 @@ class SpineFlutterBindings { ); } - late final _spine_skin_get_attachmentPtr = - _lookup)>>('spine_skin_get_attachment'); + late final _spine_skin_get_attachmentPtr = _lookup< + ffi.NativeFunction< + spine_attachment Function(spine_skin, ffi.Int32, + ffi.Pointer)>>('spine_skin_get_attachment'); late final _spine_skin_get_attachment = - _spine_skin_get_attachmentPtr.asFunction)>(); + _spine_skin_get_attachmentPtr.asFunction< + spine_attachment Function(spine_skin, int, ffi.Pointer)>(); void spine_skin_remove_attachment( spine_skin skin, @@ -5772,10 +6934,12 @@ class SpineFlutterBindings { ); } - late final _spine_skin_remove_attachmentPtr = - _lookup)>>('spine_skin_remove_attachment'); - late final _spine_skin_remove_attachment = - _spine_skin_remove_attachmentPtr.asFunction)>(); + late final _spine_skin_remove_attachmentPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_skin, ffi.Int32, + ffi.Pointer)>>('spine_skin_remove_attachment'); + late final _spine_skin_remove_attachment = _spine_skin_remove_attachmentPtr + .asFunction)>(); /// OMITTED findNamesForSlot() /// OMITTED findAttachmentsForSlot() @@ -5787,8 +6951,11 @@ class SpineFlutterBindings { ); } - late final _spine_skin_get_namePtr = _lookup Function(spine_skin)>>('spine_skin_get_name'); - late final _spine_skin_get_name = _spine_skin_get_namePtr.asFunction Function(spine_skin)>(); + late final _spine_skin_get_namePtr = + _lookup Function(spine_skin)>>( + 'spine_skin_get_name'); + late final _spine_skin_get_name = _spine_skin_get_namePtr + .asFunction Function(spine_skin)>(); void spine_skin_add_skin( spine_skin skin, @@ -5800,8 +6967,11 @@ class SpineFlutterBindings { ); } - late final _spine_skin_add_skinPtr = _lookup>('spine_skin_add_skin'); - late final _spine_skin_add_skin = _spine_skin_add_skinPtr.asFunction(); + late final _spine_skin_add_skinPtr = + _lookup>( + 'spine_skin_add_skin'); + late final _spine_skin_add_skin = _spine_skin_add_skinPtr + .asFunction(); void spine_skin_copy_skin( spine_skin skin, @@ -5813,8 +6983,11 @@ class SpineFlutterBindings { ); } - late final _spine_skin_copy_skinPtr = _lookup>('spine_skin_copy_skin'); - late final _spine_skin_copy_skin = _spine_skin_copy_skinPtr.asFunction(); + late final _spine_skin_copy_skinPtr = + _lookup>( + 'spine_skin_copy_skin'); + late final _spine_skin_copy_skin = _spine_skin_copy_skinPtr + .asFunction(); spine_skin_entries spine_skin_get_entries( spine_skin skin, @@ -5824,8 +6997,11 @@ class SpineFlutterBindings { ); } - late final _spine_skin_get_entriesPtr = _lookup>('spine_skin_get_entries'); - late final _spine_skin_get_entries = _spine_skin_get_entriesPtr.asFunction(); + late final _spine_skin_get_entriesPtr = + _lookup>( + 'spine_skin_get_entries'); + late final _spine_skin_get_entries = _spine_skin_get_entriesPtr + .asFunction(); int spine_skin_entries_get_num_entries( spine_skin_entries entries, @@ -5836,8 +7012,11 @@ class SpineFlutterBindings { } late final _spine_skin_entries_get_num_entriesPtr = - _lookup>('spine_skin_entries_get_num_entries'); - late final _spine_skin_entries_get_num_entries = _spine_skin_entries_get_num_entriesPtr.asFunction(); + _lookup>( + 'spine_skin_entries_get_num_entries'); + late final _spine_skin_entries_get_num_entries = + _spine_skin_entries_get_num_entriesPtr + .asFunction(); spine_skin_entry spine_skin_entries_get_entry( spine_skin_entries entries, @@ -5849,10 +7028,12 @@ class SpineFlutterBindings { ); } - late final _spine_skin_entries_get_entryPtr = - _lookup>('spine_skin_entries_get_entry'); - late final _spine_skin_entries_get_entry = - _spine_skin_entries_get_entryPtr.asFunction(); + late final _spine_skin_entries_get_entryPtr = _lookup< + ffi.NativeFunction< + spine_skin_entry Function( + spine_skin_entries, ffi.Int32)>>('spine_skin_entries_get_entry'); + late final _spine_skin_entries_get_entry = _spine_skin_entries_get_entryPtr + .asFunction(); void spine_skin_entries_dispose( spine_skin_entries entries, @@ -5863,8 +7044,10 @@ class SpineFlutterBindings { } late final _spine_skin_entries_disposePtr = - _lookup>('spine_skin_entries_dispose'); - late final _spine_skin_entries_dispose = _spine_skin_entries_disposePtr.asFunction(); + _lookup>( + 'spine_skin_entries_dispose'); + late final _spine_skin_entries_dispose = _spine_skin_entries_disposePtr + .asFunction(); int spine_skin_entry_get_slot_index( spine_skin_entry entry, @@ -5875,8 +7058,11 @@ class SpineFlutterBindings { } late final _spine_skin_entry_get_slot_indexPtr = - _lookup>('spine_skin_entry_get_slot_index'); - late final _spine_skin_entry_get_slot_index = _spine_skin_entry_get_slot_indexPtr.asFunction(); + _lookup>( + 'spine_skin_entry_get_slot_index'); + late final _spine_skin_entry_get_slot_index = + _spine_skin_entry_get_slot_indexPtr + .asFunction(); ffi.Pointer spine_skin_entry_get_name( spine_skin_entry entry, @@ -5887,8 +7073,10 @@ class SpineFlutterBindings { } late final _spine_skin_entry_get_namePtr = - _lookup Function(spine_skin_entry)>>('spine_skin_entry_get_name'); - late final _spine_skin_entry_get_name = _spine_skin_entry_get_namePtr.asFunction Function(spine_skin_entry)>(); + _lookup Function(spine_skin_entry)>>( + 'spine_skin_entry_get_name'); + late final _spine_skin_entry_get_name = _spine_skin_entry_get_namePtr + .asFunction Function(spine_skin_entry)>(); spine_attachment spine_skin_entry_get_attachment( spine_skin_entry entry, @@ -5899,9 +7087,11 @@ class SpineFlutterBindings { } late final _spine_skin_entry_get_attachmentPtr = - _lookup>('spine_skin_entry_get_attachment'); + _lookup>( + 'spine_skin_entry_get_attachment'); late final _spine_skin_entry_get_attachment = - _spine_skin_entry_get_attachmentPtr.asFunction(); + _spine_skin_entry_get_attachmentPtr + .asFunction(); int spine_skin_get_num_bones( spine_skin skin, @@ -5911,8 +7101,11 @@ class SpineFlutterBindings { ); } - late final _spine_skin_get_num_bonesPtr = _lookup>('spine_skin_get_num_bones'); - late final _spine_skin_get_num_bones = _spine_skin_get_num_bonesPtr.asFunction(); + late final _spine_skin_get_num_bonesPtr = + _lookup>( + 'spine_skin_get_num_bones'); + late final _spine_skin_get_num_bones = + _spine_skin_get_num_bonesPtr.asFunction(); ffi.Pointer spine_skin_get_bones( spine_skin skin, @@ -5922,9 +7115,12 @@ class SpineFlutterBindings { ); } - late final _spine_skin_get_bonesPtr = - _lookup Function(spine_skin)>>('spine_skin_get_bones'); - late final _spine_skin_get_bones = _spine_skin_get_bonesPtr.asFunction Function(spine_skin)>(); + late final _spine_skin_get_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skin)>>('spine_skin_get_bones'); + late final _spine_skin_get_bones = _spine_skin_get_bonesPtr + .asFunction Function(spine_skin)>(); int spine_skin_get_num_constraints( spine_skin skin, @@ -5935,8 +7131,10 @@ class SpineFlutterBindings { } late final _spine_skin_get_num_constraintsPtr = - _lookup>('spine_skin_get_num_constraints'); - late final _spine_skin_get_num_constraints = _spine_skin_get_num_constraintsPtr.asFunction(); + _lookup>( + 'spine_skin_get_num_constraints'); + late final _spine_skin_get_num_constraints = + _spine_skin_get_num_constraintsPtr.asFunction(); ffi.Pointer spine_skin_get_constraints( spine_skin skin, @@ -5946,10 +7144,12 @@ class SpineFlutterBindings { ); } - late final _spine_skin_get_constraintsPtr = - _lookup Function(spine_skin)>>('spine_skin_get_constraints'); - late final _spine_skin_get_constraints = - _spine_skin_get_constraintsPtr.asFunction Function(spine_skin)>(); + late final _spine_skin_get_constraintsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_skin)>>('spine_skin_get_constraints'); + late final _spine_skin_get_constraints = _spine_skin_get_constraintsPtr + .asFunction Function(spine_skin)>(); spine_skin spine_skin_create( ffi.Pointer name, @@ -5959,8 +7159,11 @@ class SpineFlutterBindings { ); } - late final _spine_skin_createPtr = _lookup)>>('spine_skin_create'); - late final _spine_skin_create = _spine_skin_createPtr.asFunction)>(); + late final _spine_skin_createPtr = + _lookup)>>( + 'spine_skin_create'); + late final _spine_skin_create = _spine_skin_createPtr + .asFunction)>(); void spine_skin_dispose( spine_skin skin, @@ -5970,8 +7173,11 @@ class SpineFlutterBindings { ); } - late final _spine_skin_disposePtr = _lookup>('spine_skin_dispose'); - late final _spine_skin_dispose = _spine_skin_disposePtr.asFunction(); + late final _spine_skin_disposePtr = + _lookup>( + 'spine_skin_dispose'); + late final _spine_skin_dispose = + _spine_skin_disposePtr.asFunction(); int spine_constraint_data_get_type( spine_constraint_data data, @@ -5982,8 +7188,11 @@ class SpineFlutterBindings { } late final _spine_constraint_data_get_typePtr = - _lookup>('spine_constraint_data_get_type'); - late final _spine_constraint_data_get_type = _spine_constraint_data_get_typePtr.asFunction(); + _lookup>( + 'spine_constraint_data_get_type'); + late final _spine_constraint_data_get_type = + _spine_constraint_data_get_typePtr + .asFunction(); ffi.Pointer spine_constraint_data_get_name( spine_constraint_data data, @@ -5993,10 +7202,13 @@ class SpineFlutterBindings { ); } - late final _spine_constraint_data_get_namePtr = - _lookup Function(spine_constraint_data)>>('spine_constraint_data_get_name'); + late final _spine_constraint_data_get_namePtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_constraint_data)>>('spine_constraint_data_get_name'); late final _spine_constraint_data_get_name = - _spine_constraint_data_get_namePtr.asFunction Function(spine_constraint_data)>(); + _spine_constraint_data_get_namePtr + .asFunction Function(spine_constraint_data)>(); int spine_constraint_data_get_order( spine_constraint_data data, @@ -6007,8 +7219,11 @@ class SpineFlutterBindings { } late final _spine_constraint_data_get_orderPtr = - _lookup>('spine_constraint_data_get_order'); - late final _spine_constraint_data_get_order = _spine_constraint_data_get_orderPtr.asFunction(); + _lookup>( + 'spine_constraint_data_get_order'); + late final _spine_constraint_data_get_order = + _spine_constraint_data_get_orderPtr + .asFunction(); void spine_constraint_data_set_order( spine_constraint_data data, @@ -6020,9 +7235,13 @@ class SpineFlutterBindings { ); } - late final _spine_constraint_data_set_orderPtr = - _lookup>('spine_constraint_data_set_order'); - late final _spine_constraint_data_set_order = _spine_constraint_data_set_orderPtr.asFunction(); + late final _spine_constraint_data_set_orderPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_constraint_data, + ffi.Uint64)>>('spine_constraint_data_set_order'); + late final _spine_constraint_data_set_order = + _spine_constraint_data_set_orderPtr + .asFunction(); int spine_constraint_data_get_is_skin_required( spine_constraint_data data, @@ -6033,9 +7252,11 @@ class SpineFlutterBindings { } late final _spine_constraint_data_get_is_skin_requiredPtr = - _lookup>('spine_constraint_data_get_is_skin_required'); + _lookup>( + 'spine_constraint_data_get_is_skin_required'); late final _spine_constraint_data_get_is_skin_required = - _spine_constraint_data_get_is_skin_requiredPtr.asFunction(); + _spine_constraint_data_get_is_skin_requiredPtr + .asFunction(); void spine_constraint_data_set_is_skin_required( spine_constraint_data data, @@ -6047,10 +7268,13 @@ class SpineFlutterBindings { ); } - late final _spine_constraint_data_set_is_skin_requiredPtr = - _lookup>('spine_constraint_data_set_is_skin_required'); + late final _spine_constraint_data_set_is_skin_requiredPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_constraint_data, + ffi.Int32)>>('spine_constraint_data_set_is_skin_required'); late final _spine_constraint_data_set_is_skin_required = - _spine_constraint_data_set_is_skin_requiredPtr.asFunction(); + _spine_constraint_data_set_is_skin_requiredPtr + .asFunction(); int spine_ik_constraint_data_get_num_bones( spine_ik_constraint_data data, @@ -6061,9 +7285,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_data_get_num_bonesPtr = - _lookup>('spine_ik_constraint_data_get_num_bones'); + _lookup>( + 'spine_ik_constraint_data_get_num_bones'); late final _spine_ik_constraint_data_get_num_bones = - _spine_ik_constraint_data_get_num_bonesPtr.asFunction(); + _spine_ik_constraint_data_get_num_bonesPtr + .asFunction(); ffi.Pointer spine_ik_constraint_data_get_bones( spine_ik_constraint_data data, @@ -6073,10 +7299,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_data_get_bonesPtr = - _lookup Function(spine_ik_constraint_data)>>('spine_ik_constraint_data_get_bones'); + late final _spine_ik_constraint_data_get_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_ik_constraint_data)>>('spine_ik_constraint_data_get_bones'); late final _spine_ik_constraint_data_get_bones = - _spine_ik_constraint_data_get_bonesPtr.asFunction Function(spine_ik_constraint_data)>(); + _spine_ik_constraint_data_get_bonesPtr.asFunction< + ffi.Pointer Function(spine_ik_constraint_data)>(); spine_bone_data spine_ik_constraint_data_get_target( spine_ik_constraint_data data, @@ -6086,10 +7315,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_data_get_targetPtr = - _lookup>('spine_ik_constraint_data_get_target'); + late final _spine_ik_constraint_data_get_targetPtr = _lookup< + ffi.NativeFunction< + spine_bone_data Function(spine_ik_constraint_data)>>( + 'spine_ik_constraint_data_get_target'); late final _spine_ik_constraint_data_get_target = - _spine_ik_constraint_data_get_targetPtr.asFunction(); + _spine_ik_constraint_data_get_targetPtr + .asFunction(); void spine_ik_constraint_data_set_target( spine_ik_constraint_data data, @@ -6101,10 +7333,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_data_set_targetPtr = - _lookup>('spine_ik_constraint_data_set_target'); + late final _spine_ik_constraint_data_set_targetPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint_data, + spine_bone_data)>>('spine_ik_constraint_data_set_target'); late final _spine_ik_constraint_data_set_target = - _spine_ik_constraint_data_set_targetPtr.asFunction(); + _spine_ik_constraint_data_set_targetPtr.asFunction< + void Function(spine_ik_constraint_data, spine_bone_data)>(); int spine_ik_constraint_data_get_bend_direction( spine_ik_constraint_data data, @@ -6115,9 +7350,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_data_get_bend_directionPtr = - _lookup>('spine_ik_constraint_data_get_bend_direction'); + _lookup>( + 'spine_ik_constraint_data_get_bend_direction'); late final _spine_ik_constraint_data_get_bend_direction = - _spine_ik_constraint_data_get_bend_directionPtr.asFunction(); + _spine_ik_constraint_data_get_bend_directionPtr + .asFunction(); void spine_ik_constraint_data_set_bend_direction( spine_ik_constraint_data data, @@ -6129,10 +7366,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_data_set_bend_directionPtr = - _lookup>('spine_ik_constraint_data_set_bend_direction'); + late final _spine_ik_constraint_data_set_bend_directionPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint_data, + ffi.Int32)>>('spine_ik_constraint_data_set_bend_direction'); late final _spine_ik_constraint_data_set_bend_direction = - _spine_ik_constraint_data_set_bend_directionPtr.asFunction(); + _spine_ik_constraint_data_set_bend_directionPtr + .asFunction(); int spine_ik_constraint_data_get_compress( spine_ik_constraint_data data, @@ -6143,9 +7383,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_data_get_compressPtr = - _lookup>('spine_ik_constraint_data_get_compress'); + _lookup>( + 'spine_ik_constraint_data_get_compress'); late final _spine_ik_constraint_data_get_compress = - _spine_ik_constraint_data_get_compressPtr.asFunction(); + _spine_ik_constraint_data_get_compressPtr + .asFunction(); void spine_ik_constraint_data_set_compress( spine_ik_constraint_data data, @@ -6157,10 +7399,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_data_set_compressPtr = - _lookup>('spine_ik_constraint_data_set_compress'); + late final _spine_ik_constraint_data_set_compressPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint_data, + ffi.Int32)>>('spine_ik_constraint_data_set_compress'); late final _spine_ik_constraint_data_set_compress = - _spine_ik_constraint_data_set_compressPtr.asFunction(); + _spine_ik_constraint_data_set_compressPtr + .asFunction(); int spine_ik_constraint_data_get_stretch( spine_ik_constraint_data data, @@ -6171,9 +7416,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_data_get_stretchPtr = - _lookup>('spine_ik_constraint_data_get_stretch'); + _lookup>( + 'spine_ik_constraint_data_get_stretch'); late final _spine_ik_constraint_data_get_stretch = - _spine_ik_constraint_data_get_stretchPtr.asFunction(); + _spine_ik_constraint_data_get_stretchPtr + .asFunction(); void spine_ik_constraint_data_set_stretch( spine_ik_constraint_data data, @@ -6185,10 +7432,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_data_set_stretchPtr = - _lookup>('spine_ik_constraint_data_set_stretch'); + late final _spine_ik_constraint_data_set_stretchPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint_data, + ffi.Int32)>>('spine_ik_constraint_data_set_stretch'); late final _spine_ik_constraint_data_set_stretch = - _spine_ik_constraint_data_set_stretchPtr.asFunction(); + _spine_ik_constraint_data_set_stretchPtr + .asFunction(); int spine_ik_constraint_data_get_uniform( spine_ik_constraint_data data, @@ -6199,9 +7449,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_data_get_uniformPtr = - _lookup>('spine_ik_constraint_data_get_uniform'); + _lookup>( + 'spine_ik_constraint_data_get_uniform'); late final _spine_ik_constraint_data_get_uniform = - _spine_ik_constraint_data_get_uniformPtr.asFunction(); + _spine_ik_constraint_data_get_uniformPtr + .asFunction(); void spine_ik_constraint_data_set_uniform( spine_ik_constraint_data data, @@ -6213,10 +7465,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_data_set_uniformPtr = - _lookup>('spine_ik_constraint_data_set_uniform'); + late final _spine_ik_constraint_data_set_uniformPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint_data, + ffi.Int32)>>('spine_ik_constraint_data_set_uniform'); late final _spine_ik_constraint_data_set_uniform = - _spine_ik_constraint_data_set_uniformPtr.asFunction(); + _spine_ik_constraint_data_set_uniformPtr + .asFunction(); double spine_ik_constraint_data_get_mix( spine_ik_constraint_data data, @@ -6227,9 +7482,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_data_get_mixPtr = - _lookup>('spine_ik_constraint_data_get_mix'); + _lookup>( + 'spine_ik_constraint_data_get_mix'); late final _spine_ik_constraint_data_get_mix = - _spine_ik_constraint_data_get_mixPtr.asFunction(); + _spine_ik_constraint_data_get_mixPtr + .asFunction(); void spine_ik_constraint_data_set_mix( spine_ik_constraint_data data, @@ -6241,10 +7498,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_data_set_mixPtr = - _lookup>('spine_ik_constraint_data_set_mix'); + late final _spine_ik_constraint_data_set_mixPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint_data, + ffi.Float)>>('spine_ik_constraint_data_set_mix'); late final _spine_ik_constraint_data_set_mix = - _spine_ik_constraint_data_set_mixPtr.asFunction(); + _spine_ik_constraint_data_set_mixPtr + .asFunction(); double spine_ik_constraint_data_get_softness( spine_ik_constraint_data data, @@ -6255,9 +7515,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_data_get_softnessPtr = - _lookup>('spine_ik_constraint_data_get_softness'); + _lookup>( + 'spine_ik_constraint_data_get_softness'); late final _spine_ik_constraint_data_get_softness = - _spine_ik_constraint_data_get_softnessPtr.asFunction(); + _spine_ik_constraint_data_get_softnessPtr + .asFunction(); void spine_ik_constraint_data_set_softness( spine_ik_constraint_data data, @@ -6269,10 +7531,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_data_set_softnessPtr = - _lookup>('spine_ik_constraint_data_set_softness'); + late final _spine_ik_constraint_data_set_softnessPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint_data, + ffi.Float)>>('spine_ik_constraint_data_set_softness'); late final _spine_ik_constraint_data_set_softness = - _spine_ik_constraint_data_set_softnessPtr.asFunction(); + _spine_ik_constraint_data_set_softnessPtr + .asFunction(); void spine_ik_constraint_update( spine_ik_constraint constraint, @@ -6283,8 +7548,10 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_updatePtr = - _lookup>('spine_ik_constraint_update'); - late final _spine_ik_constraint_update = _spine_ik_constraint_updatePtr.asFunction(); + _lookup>( + 'spine_ik_constraint_update'); + late final _spine_ik_constraint_update = _spine_ik_constraint_updatePtr + .asFunction(); int spine_ik_constraint_get_order( spine_ik_constraint constraint, @@ -6295,8 +7562,10 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_get_orderPtr = - _lookup>('spine_ik_constraint_get_order'); - late final _spine_ik_constraint_get_order = _spine_ik_constraint_get_orderPtr.asFunction(); + _lookup>( + 'spine_ik_constraint_get_order'); + late final _spine_ik_constraint_get_order = _spine_ik_constraint_get_orderPtr + .asFunction(); spine_ik_constraint_data spine_ik_constraint_get_data( spine_ik_constraint constraint, @@ -6306,10 +7575,12 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_get_dataPtr = - _lookup>('spine_ik_constraint_get_data'); - late final _spine_ik_constraint_get_data = - _spine_ik_constraint_get_dataPtr.asFunction(); + late final _spine_ik_constraint_get_dataPtr = _lookup< + ffi.NativeFunction< + spine_ik_constraint_data Function( + spine_ik_constraint)>>('spine_ik_constraint_get_data'); + late final _spine_ik_constraint_get_data = _spine_ik_constraint_get_dataPtr + .asFunction(); int spine_ik_constraint_get_num_bones( spine_ik_constraint constraint, @@ -6320,8 +7591,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_get_num_bonesPtr = - _lookup>('spine_ik_constraint_get_num_bones'); - late final _spine_ik_constraint_get_num_bones = _spine_ik_constraint_get_num_bonesPtr.asFunction(); + _lookup>( + 'spine_ik_constraint_get_num_bones'); + late final _spine_ik_constraint_get_num_bones = + _spine_ik_constraint_get_num_bonesPtr + .asFunction(); ffi.Pointer spine_ik_constraint_get_bones( spine_ik_constraint constraint, @@ -6331,10 +7605,12 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_get_bonesPtr = - _lookup Function(spine_ik_constraint)>>('spine_ik_constraint_get_bones'); - late final _spine_ik_constraint_get_bones = - _spine_ik_constraint_get_bonesPtr.asFunction Function(spine_ik_constraint)>(); + late final _spine_ik_constraint_get_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_ik_constraint)>>('spine_ik_constraint_get_bones'); + late final _spine_ik_constraint_get_bones = _spine_ik_constraint_get_bonesPtr + .asFunction Function(spine_ik_constraint)>(); spine_bone spine_ik_constraint_get_target( spine_ik_constraint constraint, @@ -6345,8 +7621,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_get_targetPtr = - _lookup>('spine_ik_constraint_get_target'); - late final _spine_ik_constraint_get_target = _spine_ik_constraint_get_targetPtr.asFunction(); + _lookup>( + 'spine_ik_constraint_get_target'); + late final _spine_ik_constraint_get_target = + _spine_ik_constraint_get_targetPtr + .asFunction(); void spine_ik_constraint_set_target( spine_ik_constraint constraint, @@ -6358,10 +7637,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_set_targetPtr = - _lookup>('spine_ik_constraint_set_target'); + late final _spine_ik_constraint_set_targetPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint, + spine_bone)>>('spine_ik_constraint_set_target'); late final _spine_ik_constraint_set_target = - _spine_ik_constraint_set_targetPtr.asFunction(); + _spine_ik_constraint_set_targetPtr + .asFunction(); int spine_ik_constraint_get_bend_direction( spine_ik_constraint constraint, @@ -6372,9 +7654,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_get_bend_directionPtr = - _lookup>('spine_ik_constraint_get_bend_direction'); + _lookup>( + 'spine_ik_constraint_get_bend_direction'); late final _spine_ik_constraint_get_bend_direction = - _spine_ik_constraint_get_bend_directionPtr.asFunction(); + _spine_ik_constraint_get_bend_directionPtr + .asFunction(); void spine_ik_constraint_set_bend_direction( spine_ik_constraint constraint, @@ -6386,10 +7670,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_set_bend_directionPtr = - _lookup>('spine_ik_constraint_set_bend_direction'); + late final _spine_ik_constraint_set_bend_directionPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint, + ffi.Int32)>>('spine_ik_constraint_set_bend_direction'); late final _spine_ik_constraint_set_bend_direction = - _spine_ik_constraint_set_bend_directionPtr.asFunction(); + _spine_ik_constraint_set_bend_directionPtr + .asFunction(); int spine_ik_constraint_get_compress( spine_ik_constraint constraint, @@ -6400,8 +7687,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_get_compressPtr = - _lookup>('spine_ik_constraint_get_compress'); - late final _spine_ik_constraint_get_compress = _spine_ik_constraint_get_compressPtr.asFunction(); + _lookup>( + 'spine_ik_constraint_get_compress'); + late final _spine_ik_constraint_get_compress = + _spine_ik_constraint_get_compressPtr + .asFunction(); void spine_ik_constraint_set_compress( spine_ik_constraint constraint, @@ -6413,9 +7703,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_set_compressPtr = - _lookup>('spine_ik_constraint_set_compress'); - late final _spine_ik_constraint_set_compress = _spine_ik_constraint_set_compressPtr.asFunction(); + late final _spine_ik_constraint_set_compressPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint, + ffi.Int32)>>('spine_ik_constraint_set_compress'); + late final _spine_ik_constraint_set_compress = + _spine_ik_constraint_set_compressPtr + .asFunction(); int spine_ik_constraint_get_stretch( spine_ik_constraint constraint, @@ -6426,8 +7720,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_get_stretchPtr = - _lookup>('spine_ik_constraint_get_stretch'); - late final _spine_ik_constraint_get_stretch = _spine_ik_constraint_get_stretchPtr.asFunction(); + _lookup>( + 'spine_ik_constraint_get_stretch'); + late final _spine_ik_constraint_get_stretch = + _spine_ik_constraint_get_stretchPtr + .asFunction(); void spine_ik_constraint_set_stretch( spine_ik_constraint constraint, @@ -6439,9 +7736,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_set_stretchPtr = - _lookup>('spine_ik_constraint_set_stretch'); - late final _spine_ik_constraint_set_stretch = _spine_ik_constraint_set_stretchPtr.asFunction(); + late final _spine_ik_constraint_set_stretchPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint, + ffi.Int32)>>('spine_ik_constraint_set_stretch'); + late final _spine_ik_constraint_set_stretch = + _spine_ik_constraint_set_stretchPtr + .asFunction(); double spine_ik_constraint_get_mix( spine_ik_constraint constraint, @@ -6452,8 +7753,10 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_get_mixPtr = - _lookup>('spine_ik_constraint_get_mix'); - late final _spine_ik_constraint_get_mix = _spine_ik_constraint_get_mixPtr.asFunction(); + _lookup>( + 'spine_ik_constraint_get_mix'); + late final _spine_ik_constraint_get_mix = _spine_ik_constraint_get_mixPtr + .asFunction(); void spine_ik_constraint_set_mix( spine_ik_constraint constraint, @@ -6465,9 +7768,12 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_set_mixPtr = - _lookup>('spine_ik_constraint_set_mix'); - late final _spine_ik_constraint_set_mix = _spine_ik_constraint_set_mixPtr.asFunction(); + late final _spine_ik_constraint_set_mixPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_ik_constraint, ffi.Float)>>('spine_ik_constraint_set_mix'); + late final _spine_ik_constraint_set_mix = _spine_ik_constraint_set_mixPtr + .asFunction(); double spine_ik_constraint_get_softness( spine_ik_constraint constraint, @@ -6478,8 +7784,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_get_softnessPtr = - _lookup>('spine_ik_constraint_get_softness'); - late final _spine_ik_constraint_get_softness = _spine_ik_constraint_get_softnessPtr.asFunction(); + _lookup>( + 'spine_ik_constraint_get_softness'); + late final _spine_ik_constraint_get_softness = + _spine_ik_constraint_get_softnessPtr + .asFunction(); void spine_ik_constraint_set_softness( spine_ik_constraint constraint, @@ -6491,10 +7800,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_set_softnessPtr = - _lookup>('spine_ik_constraint_set_softness'); + late final _spine_ik_constraint_set_softnessPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint, + ffi.Float)>>('spine_ik_constraint_set_softness'); late final _spine_ik_constraint_set_softness = - _spine_ik_constraint_set_softnessPtr.asFunction(); + _spine_ik_constraint_set_softnessPtr + .asFunction(); int spine_ik_constraint_get_is_active( spine_ik_constraint constraint, @@ -6505,8 +7817,11 @@ class SpineFlutterBindings { } late final _spine_ik_constraint_get_is_activePtr = - _lookup>('spine_ik_constraint_get_is_active'); - late final _spine_ik_constraint_get_is_active = _spine_ik_constraint_get_is_activePtr.asFunction(); + _lookup>( + 'spine_ik_constraint_get_is_active'); + late final _spine_ik_constraint_get_is_active = + _spine_ik_constraint_get_is_activePtr + .asFunction(); void spine_ik_constraint_set_is_active( spine_ik_constraint constraint, @@ -6518,10 +7833,13 @@ class SpineFlutterBindings { ); } - late final _spine_ik_constraint_set_is_activePtr = - _lookup>('spine_ik_constraint_set_is_active'); + late final _spine_ik_constraint_set_is_activePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_ik_constraint, + ffi.Int32)>>('spine_ik_constraint_set_is_active'); late final _spine_ik_constraint_set_is_active = - _spine_ik_constraint_set_is_activePtr.asFunction(); + _spine_ik_constraint_set_is_activePtr + .asFunction(); int spine_transform_constraint_data_get_num_bones( spine_transform_constraint_data data, @@ -6531,10 +7849,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_num_bonesPtr = - _lookup>('spine_transform_constraint_data_get_num_bones'); + late final _spine_transform_constraint_data_get_num_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_num_bones'); late final _spine_transform_constraint_data_get_num_bones = - _spine_transform_constraint_data_get_num_bonesPtr.asFunction(); + _spine_transform_constraint_data_get_num_bonesPtr + .asFunction(); ffi.Pointer spine_transform_constraint_data_get_bones( spine_transform_constraint_data data, @@ -6544,11 +7865,15 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_bonesPtr = - _lookup Function(spine_transform_constraint_data)>>( - 'spine_transform_constraint_data_get_bones'); + late final _spine_transform_constraint_data_get_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_bones'); late final _spine_transform_constraint_data_get_bones = - _spine_transform_constraint_data_get_bonesPtr.asFunction Function(spine_transform_constraint_data)>(); + _spine_transform_constraint_data_get_bonesPtr.asFunction< + ffi.Pointer Function( + spine_transform_constraint_data)>(); spine_bone_data spine_transform_constraint_data_get_target( spine_transform_constraint_data data, @@ -6558,10 +7883,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_targetPtr = - _lookup>('spine_transform_constraint_data_get_target'); + late final _spine_transform_constraint_data_get_targetPtr = _lookup< + ffi.NativeFunction< + spine_bone_data Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_target'); late final _spine_transform_constraint_data_get_target = - _spine_transform_constraint_data_get_targetPtr.asFunction(); + _spine_transform_constraint_data_get_targetPtr.asFunction< + spine_bone_data Function(spine_transform_constraint_data)>(); void spine_transform_constraint_data_set_target( spine_transform_constraint_data data, @@ -6573,11 +7901,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_targetPtr = - _lookup>( - 'spine_transform_constraint_data_set_target'); + late final _spine_transform_constraint_data_set_targetPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + spine_bone_data)>>('spine_transform_constraint_data_set_target'); late final _spine_transform_constraint_data_set_target = - _spine_transform_constraint_data_set_targetPtr.asFunction(); + _spine_transform_constraint_data_set_targetPtr.asFunction< + void Function(spine_transform_constraint_data, spine_bone_data)>(); double spine_transform_constraint_data_get_mix_rotate( spine_transform_constraint_data data, @@ -6587,10 +7917,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_mix_rotatePtr = - _lookup>('spine_transform_constraint_data_get_mix_rotate'); + late final _spine_transform_constraint_data_get_mix_rotatePtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_mix_rotate'); late final _spine_transform_constraint_data_get_mix_rotate = - _spine_transform_constraint_data_get_mix_rotatePtr.asFunction(); + _spine_transform_constraint_data_get_mix_rotatePtr + .asFunction(); void spine_transform_constraint_data_set_mix_rotate( spine_transform_constraint_data data, @@ -6602,11 +7935,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_mix_rotatePtr = - _lookup>( - 'spine_transform_constraint_data_set_mix_rotate'); + late final _spine_transform_constraint_data_set_mix_rotatePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Float)>>('spine_transform_constraint_data_set_mix_rotate'); late final _spine_transform_constraint_data_set_mix_rotate = - _spine_transform_constraint_data_set_mix_rotatePtr.asFunction(); + _spine_transform_constraint_data_set_mix_rotatePtr + .asFunction(); double spine_transform_constraint_data_get_mix_x( spine_transform_constraint_data data, @@ -6616,10 +7951,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_mix_xPtr = - _lookup>('spine_transform_constraint_data_get_mix_x'); + late final _spine_transform_constraint_data_get_mix_xPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_mix_x'); late final _spine_transform_constraint_data_get_mix_x = - _spine_transform_constraint_data_get_mix_xPtr.asFunction(); + _spine_transform_constraint_data_get_mix_xPtr + .asFunction(); void spine_transform_constraint_data_set_mix_x( spine_transform_constraint_data data, @@ -6631,11 +7969,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_mix_xPtr = - _lookup>( - 'spine_transform_constraint_data_set_mix_x'); + late final _spine_transform_constraint_data_set_mix_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Float)>>('spine_transform_constraint_data_set_mix_x'); late final _spine_transform_constraint_data_set_mix_x = - _spine_transform_constraint_data_set_mix_xPtr.asFunction(); + _spine_transform_constraint_data_set_mix_xPtr + .asFunction(); double spine_transform_constraint_data_get_mix_y( spine_transform_constraint_data data, @@ -6645,10 +7985,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_mix_yPtr = - _lookup>('spine_transform_constraint_data_get_mix_y'); + late final _spine_transform_constraint_data_get_mix_yPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_mix_y'); late final _spine_transform_constraint_data_get_mix_y = - _spine_transform_constraint_data_get_mix_yPtr.asFunction(); + _spine_transform_constraint_data_get_mix_yPtr + .asFunction(); void spine_transform_constraint_data_set_mix_y( spine_transform_constraint_data data, @@ -6660,11 +8003,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_mix_yPtr = - _lookup>( - 'spine_transform_constraint_data_set_mix_y'); + late final _spine_transform_constraint_data_set_mix_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Float)>>('spine_transform_constraint_data_set_mix_y'); late final _spine_transform_constraint_data_set_mix_y = - _spine_transform_constraint_data_set_mix_yPtr.asFunction(); + _spine_transform_constraint_data_set_mix_yPtr + .asFunction(); double spine_transform_constraint_data_get_mix_scale_x( spine_transform_constraint_data data, @@ -6674,10 +8019,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_mix_scale_xPtr = - _lookup>('spine_transform_constraint_data_get_mix_scale_x'); + late final _spine_transform_constraint_data_get_mix_scale_xPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_mix_scale_x'); late final _spine_transform_constraint_data_get_mix_scale_x = - _spine_transform_constraint_data_get_mix_scale_xPtr.asFunction(); + _spine_transform_constraint_data_get_mix_scale_xPtr + .asFunction(); void spine_transform_constraint_data_set_mix_scale_x( spine_transform_constraint_data data, @@ -6689,11 +8037,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_mix_scale_xPtr = - _lookup>( - 'spine_transform_constraint_data_set_mix_scale_x'); + late final _spine_transform_constraint_data_set_mix_scale_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Float)>>('spine_transform_constraint_data_set_mix_scale_x'); late final _spine_transform_constraint_data_set_mix_scale_x = - _spine_transform_constraint_data_set_mix_scale_xPtr.asFunction(); + _spine_transform_constraint_data_set_mix_scale_xPtr + .asFunction(); double spine_transform_constraint_data_get_mix_scale_y( spine_transform_constraint_data data, @@ -6703,10 +8053,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_mix_scale_yPtr = - _lookup>('spine_transform_constraint_data_get_mix_scale_y'); + late final _spine_transform_constraint_data_get_mix_scale_yPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_mix_scale_y'); late final _spine_transform_constraint_data_get_mix_scale_y = - _spine_transform_constraint_data_get_mix_scale_yPtr.asFunction(); + _spine_transform_constraint_data_get_mix_scale_yPtr + .asFunction(); void spine_transform_constraint_data_set_mix_scale_y( spine_transform_constraint_data data, @@ -6718,11 +8071,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_mix_scale_yPtr = - _lookup>( - 'spine_transform_constraint_data_set_mix_scale_y'); + late final _spine_transform_constraint_data_set_mix_scale_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Float)>>('spine_transform_constraint_data_set_mix_scale_y'); late final _spine_transform_constraint_data_set_mix_scale_y = - _spine_transform_constraint_data_set_mix_scale_yPtr.asFunction(); + _spine_transform_constraint_data_set_mix_scale_yPtr + .asFunction(); double spine_transform_constraint_data_get_mix_shear_y( spine_transform_constraint_data data, @@ -6732,10 +8087,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_mix_shear_yPtr = - _lookup>('spine_transform_constraint_data_get_mix_shear_y'); + late final _spine_transform_constraint_data_get_mix_shear_yPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_mix_shear_y'); late final _spine_transform_constraint_data_get_mix_shear_y = - _spine_transform_constraint_data_get_mix_shear_yPtr.asFunction(); + _spine_transform_constraint_data_get_mix_shear_yPtr + .asFunction(); void spine_transform_constraint_data_set_mix_shear_y( spine_transform_constraint_data data, @@ -6747,11 +8105,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_mix_shear_yPtr = - _lookup>( - 'spine_transform_constraint_data_set_mix_shear_y'); + late final _spine_transform_constraint_data_set_mix_shear_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Float)>>('spine_transform_constraint_data_set_mix_shear_y'); late final _spine_transform_constraint_data_set_mix_shear_y = - _spine_transform_constraint_data_set_mix_shear_yPtr.asFunction(); + _spine_transform_constraint_data_set_mix_shear_yPtr + .asFunction(); double spine_transform_constraint_data_get_offset_rotation( spine_transform_constraint_data data, @@ -6761,11 +8121,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_offset_rotationPtr = - _lookup>( - 'spine_transform_constraint_data_get_offset_rotation'); + late final _spine_transform_constraint_data_get_offset_rotationPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_offset_rotation'); late final _spine_transform_constraint_data_get_offset_rotation = - _spine_transform_constraint_data_get_offset_rotationPtr.asFunction(); + _spine_transform_constraint_data_get_offset_rotationPtr + .asFunction(); void spine_transform_constraint_data_set_offset_rotation( spine_transform_constraint_data data, @@ -6777,11 +8139,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_offset_rotationPtr = - _lookup>( - 'spine_transform_constraint_data_set_offset_rotation'); + late final _spine_transform_constraint_data_set_offset_rotationPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, ffi.Float)>>( + 'spine_transform_constraint_data_set_offset_rotation'); late final _spine_transform_constraint_data_set_offset_rotation = - _spine_transform_constraint_data_set_offset_rotationPtr.asFunction(); + _spine_transform_constraint_data_set_offset_rotationPtr + .asFunction(); double spine_transform_constraint_data_get_offset_x( spine_transform_constraint_data data, @@ -6791,10 +8155,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_offset_xPtr = - _lookup>('spine_transform_constraint_data_get_offset_x'); + late final _spine_transform_constraint_data_get_offset_xPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_offset_x'); late final _spine_transform_constraint_data_get_offset_x = - _spine_transform_constraint_data_get_offset_xPtr.asFunction(); + _spine_transform_constraint_data_get_offset_xPtr + .asFunction(); void spine_transform_constraint_data_set_offset_x( spine_transform_constraint_data data, @@ -6806,11 +8173,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_offset_xPtr = - _lookup>( - 'spine_transform_constraint_data_set_offset_x'); + late final _spine_transform_constraint_data_set_offset_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Float)>>('spine_transform_constraint_data_set_offset_x'); late final _spine_transform_constraint_data_set_offset_x = - _spine_transform_constraint_data_set_offset_xPtr.asFunction(); + _spine_transform_constraint_data_set_offset_xPtr + .asFunction(); double spine_transform_constraint_data_get_offset_y( spine_transform_constraint_data data, @@ -6820,10 +8189,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_offset_yPtr = - _lookup>('spine_transform_constraint_data_get_offset_y'); + late final _spine_transform_constraint_data_get_offset_yPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_offset_y'); late final _spine_transform_constraint_data_get_offset_y = - _spine_transform_constraint_data_get_offset_yPtr.asFunction(); + _spine_transform_constraint_data_get_offset_yPtr + .asFunction(); void spine_transform_constraint_data_set_offset_y( spine_transform_constraint_data data, @@ -6835,11 +8207,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_offset_yPtr = - _lookup>( - 'spine_transform_constraint_data_set_offset_y'); + late final _spine_transform_constraint_data_set_offset_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Float)>>('spine_transform_constraint_data_set_offset_y'); late final _spine_transform_constraint_data_set_offset_y = - _spine_transform_constraint_data_set_offset_yPtr.asFunction(); + _spine_transform_constraint_data_set_offset_yPtr + .asFunction(); double spine_transform_constraint_data_get_offset_scale_x( spine_transform_constraint_data data, @@ -6849,11 +8223,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_offset_scale_xPtr = - _lookup>( - 'spine_transform_constraint_data_get_offset_scale_x'); + late final _spine_transform_constraint_data_get_offset_scale_xPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_offset_scale_x'); late final _spine_transform_constraint_data_get_offset_scale_x = - _spine_transform_constraint_data_get_offset_scale_xPtr.asFunction(); + _spine_transform_constraint_data_get_offset_scale_xPtr + .asFunction(); void spine_transform_constraint_data_set_offset_scale_x( spine_transform_constraint_data data, @@ -6865,11 +8241,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_offset_scale_xPtr = - _lookup>( - 'spine_transform_constraint_data_set_offset_scale_x'); + late final _spine_transform_constraint_data_set_offset_scale_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, ffi.Float)>>( + 'spine_transform_constraint_data_set_offset_scale_x'); late final _spine_transform_constraint_data_set_offset_scale_x = - _spine_transform_constraint_data_set_offset_scale_xPtr.asFunction(); + _spine_transform_constraint_data_set_offset_scale_xPtr + .asFunction(); double spine_transform_constraint_data_get_offset_scale_y( spine_transform_constraint_data data, @@ -6879,11 +8257,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_offset_scale_yPtr = - _lookup>( - 'spine_transform_constraint_data_get_offset_scale_y'); + late final _spine_transform_constraint_data_get_offset_scale_yPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_offset_scale_y'); late final _spine_transform_constraint_data_get_offset_scale_y = - _spine_transform_constraint_data_get_offset_scale_yPtr.asFunction(); + _spine_transform_constraint_data_get_offset_scale_yPtr + .asFunction(); void spine_transform_constraint_data_set_offset_scale_y( spine_transform_constraint_data data, @@ -6895,11 +8275,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_offset_scale_yPtr = - _lookup>( - 'spine_transform_constraint_data_set_offset_scale_y'); + late final _spine_transform_constraint_data_set_offset_scale_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, ffi.Float)>>( + 'spine_transform_constraint_data_set_offset_scale_y'); late final _spine_transform_constraint_data_set_offset_scale_y = - _spine_transform_constraint_data_set_offset_scale_yPtr.asFunction(); + _spine_transform_constraint_data_set_offset_scale_yPtr + .asFunction(); double spine_transform_constraint_data_get_offset_shear_y( spine_transform_constraint_data data, @@ -6909,11 +8291,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_offset_shear_yPtr = - _lookup>( - 'spine_transform_constraint_data_get_offset_shear_y'); + late final _spine_transform_constraint_data_get_offset_shear_yPtr = _lookup< + ffi.NativeFunction< + ffi.Float Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_offset_shear_y'); late final _spine_transform_constraint_data_get_offset_shear_y = - _spine_transform_constraint_data_get_offset_shear_yPtr.asFunction(); + _spine_transform_constraint_data_get_offset_shear_yPtr + .asFunction(); void spine_transform_constraint_data_set_offset_shear_y( spine_transform_constraint_data data, @@ -6925,11 +8309,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_offset_shear_yPtr = - _lookup>( - 'spine_transform_constraint_data_set_offset_shear_y'); + late final _spine_transform_constraint_data_set_offset_shear_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, ffi.Float)>>( + 'spine_transform_constraint_data_set_offset_shear_y'); late final _spine_transform_constraint_data_set_offset_shear_y = - _spine_transform_constraint_data_set_offset_shear_yPtr.asFunction(); + _spine_transform_constraint_data_set_offset_shear_yPtr + .asFunction(); int spine_transform_constraint_data_get_is_relative( spine_transform_constraint_data data, @@ -6939,10 +8325,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_is_relativePtr = - _lookup>('spine_transform_constraint_data_get_is_relative'); + late final _spine_transform_constraint_data_get_is_relativePtr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_is_relative'); late final _spine_transform_constraint_data_get_is_relative = - _spine_transform_constraint_data_get_is_relativePtr.asFunction(); + _spine_transform_constraint_data_get_is_relativePtr + .asFunction(); void spine_transform_constraint_data_set_is_relative( spine_transform_constraint_data data, @@ -6954,11 +8343,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_is_relativePtr = - _lookup>( - 'spine_transform_constraint_data_set_is_relative'); + late final _spine_transform_constraint_data_set_is_relativePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Int32)>>('spine_transform_constraint_data_set_is_relative'); late final _spine_transform_constraint_data_set_is_relative = - _spine_transform_constraint_data_set_is_relativePtr.asFunction(); + _spine_transform_constraint_data_set_is_relativePtr + .asFunction(); int spine_transform_constraint_data_get_is_local( spine_transform_constraint_data data, @@ -6968,10 +8359,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_get_is_localPtr = - _lookup>('spine_transform_constraint_data_get_is_local'); + late final _spine_transform_constraint_data_get_is_localPtr = _lookup< + ffi.NativeFunction< + ffi.Int32 Function(spine_transform_constraint_data)>>( + 'spine_transform_constraint_data_get_is_local'); late final _spine_transform_constraint_data_get_is_local = - _spine_transform_constraint_data_get_is_localPtr.asFunction(); + _spine_transform_constraint_data_get_is_localPtr + .asFunction(); void spine_transform_constraint_data_set_is_local( spine_transform_constraint_data data, @@ -6983,11 +8377,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_data_set_is_localPtr = - _lookup>( - 'spine_transform_constraint_data_set_is_local'); + late final _spine_transform_constraint_data_set_is_localPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint_data, + ffi.Int32)>>('spine_transform_constraint_data_set_is_local'); late final _spine_transform_constraint_data_set_is_local = - _spine_transform_constraint_data_set_is_localPtr.asFunction(); + _spine_transform_constraint_data_set_is_localPtr + .asFunction(); void spine_transform_constraint_update( spine_transform_constraint constraint, @@ -6997,10 +8393,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_updatePtr = - _lookup>('spine_transform_constraint_update'); + late final _spine_transform_constraint_updatePtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_update'); late final _spine_transform_constraint_update = - _spine_transform_constraint_updatePtr.asFunction(); + _spine_transform_constraint_updatePtr + .asFunction(); int spine_transform_constraint_get_order( spine_transform_constraint constraint, @@ -7010,10 +8408,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_orderPtr = - _lookup>('spine_transform_constraint_get_order'); + late final _spine_transform_constraint_get_orderPtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_order'); late final _spine_transform_constraint_get_order = - _spine_transform_constraint_get_orderPtr.asFunction(); + _spine_transform_constraint_get_orderPtr + .asFunction(); spine_transform_constraint_data spine_transform_constraint_get_data( spine_transform_constraint constraint, @@ -7023,11 +8423,15 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_dataPtr = - _lookup>( - 'spine_transform_constraint_get_data'); + late final _spine_transform_constraint_get_dataPtr = _lookup< + ffi.NativeFunction< + spine_transform_constraint_data Function( + spine_transform_constraint)>>( + 'spine_transform_constraint_get_data'); late final _spine_transform_constraint_get_data = - _spine_transform_constraint_get_dataPtr.asFunction(); + _spine_transform_constraint_get_dataPtr.asFunction< + spine_transform_constraint_data Function( + spine_transform_constraint)>(); int spine_transform_constraint_get_num_bones( spine_transform_constraint constraint, @@ -7037,10 +8441,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_num_bonesPtr = - _lookup>('spine_transform_constraint_get_num_bones'); + late final _spine_transform_constraint_get_num_bonesPtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_num_bones'); late final _spine_transform_constraint_get_num_bones = - _spine_transform_constraint_get_num_bonesPtr.asFunction(); + _spine_transform_constraint_get_num_bonesPtr + .asFunction(); ffi.Pointer spine_transform_constraint_get_bones( spine_transform_constraint constraint, @@ -7050,10 +8456,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_bonesPtr = - _lookup Function(spine_transform_constraint)>>('spine_transform_constraint_get_bones'); + late final _spine_transform_constraint_get_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function(spine_transform_constraint)>>( + 'spine_transform_constraint_get_bones'); late final _spine_transform_constraint_get_bones = - _spine_transform_constraint_get_bonesPtr.asFunction Function(spine_transform_constraint)>(); + _spine_transform_constraint_get_bonesPtr.asFunction< + ffi.Pointer Function(spine_transform_constraint)>(); spine_bone spine_transform_constraint_get_target( spine_transform_constraint constraint, @@ -7063,10 +8472,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_targetPtr = - _lookup>('spine_transform_constraint_get_target'); + late final _spine_transform_constraint_get_targetPtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_target'); late final _spine_transform_constraint_get_target = - _spine_transform_constraint_get_targetPtr.asFunction(); + _spine_transform_constraint_get_targetPtr + .asFunction(); void spine_transform_constraint_set_target( spine_transform_constraint constraint, @@ -7078,10 +8489,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_set_targetPtr = - _lookup>('spine_transform_constraint_set_target'); + late final _spine_transform_constraint_set_targetPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint, + spine_bone)>>('spine_transform_constraint_set_target'); late final _spine_transform_constraint_set_target = - _spine_transform_constraint_set_targetPtr.asFunction(); + _spine_transform_constraint_set_targetPtr + .asFunction(); double spine_transform_constraint_get_mix_rotate( spine_transform_constraint constraint, @@ -7091,10 +8505,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_mix_rotatePtr = - _lookup>('spine_transform_constraint_get_mix_rotate'); + late final _spine_transform_constraint_get_mix_rotatePtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_mix_rotate'); late final _spine_transform_constraint_get_mix_rotate = - _spine_transform_constraint_get_mix_rotatePtr.asFunction(); + _spine_transform_constraint_get_mix_rotatePtr + .asFunction(); void spine_transform_constraint_set_mix_rotate( spine_transform_constraint constraint, @@ -7106,10 +8522,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_set_mix_rotatePtr = - _lookup>('spine_transform_constraint_set_mix_rotate'); + late final _spine_transform_constraint_set_mix_rotatePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint, + ffi.Float)>>('spine_transform_constraint_set_mix_rotate'); late final _spine_transform_constraint_set_mix_rotate = - _spine_transform_constraint_set_mix_rotatePtr.asFunction(); + _spine_transform_constraint_set_mix_rotatePtr + .asFunction(); double spine_transform_constraint_get_mix_x( spine_transform_constraint constraint, @@ -7119,10 +8538,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_mix_xPtr = - _lookup>('spine_transform_constraint_get_mix_x'); + late final _spine_transform_constraint_get_mix_xPtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_mix_x'); late final _spine_transform_constraint_get_mix_x = - _spine_transform_constraint_get_mix_xPtr.asFunction(); + _spine_transform_constraint_get_mix_xPtr + .asFunction(); void spine_transform_constraint_set_mix_x( spine_transform_constraint constraint, @@ -7134,10 +8555,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_set_mix_xPtr = - _lookup>('spine_transform_constraint_set_mix_x'); + late final _spine_transform_constraint_set_mix_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint, + ffi.Float)>>('spine_transform_constraint_set_mix_x'); late final _spine_transform_constraint_set_mix_x = - _spine_transform_constraint_set_mix_xPtr.asFunction(); + _spine_transform_constraint_set_mix_xPtr + .asFunction(); double spine_transform_constraint_get_mix_y( spine_transform_constraint constraint, @@ -7147,10 +8571,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_mix_yPtr = - _lookup>('spine_transform_constraint_get_mix_y'); + late final _spine_transform_constraint_get_mix_yPtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_mix_y'); late final _spine_transform_constraint_get_mix_y = - _spine_transform_constraint_get_mix_yPtr.asFunction(); + _spine_transform_constraint_get_mix_yPtr + .asFunction(); void spine_transform_constraint_set_mix_y( spine_transform_constraint constraint, @@ -7162,10 +8588,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_set_mix_yPtr = - _lookup>('spine_transform_constraint_set_mix_y'); + late final _spine_transform_constraint_set_mix_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint, + ffi.Float)>>('spine_transform_constraint_set_mix_y'); late final _spine_transform_constraint_set_mix_y = - _spine_transform_constraint_set_mix_yPtr.asFunction(); + _spine_transform_constraint_set_mix_yPtr + .asFunction(); double spine_transform_constraint_get_mix_scale_x( spine_transform_constraint constraint, @@ -7175,10 +8604,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_mix_scale_xPtr = - _lookup>('spine_transform_constraint_get_mix_scale_x'); + late final _spine_transform_constraint_get_mix_scale_xPtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_mix_scale_x'); late final _spine_transform_constraint_get_mix_scale_x = - _spine_transform_constraint_get_mix_scale_xPtr.asFunction(); + _spine_transform_constraint_get_mix_scale_xPtr + .asFunction(); void spine_transform_constraint_set_mix_scale_x( spine_transform_constraint constraint, @@ -7190,10 +8621,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_set_mix_scale_xPtr = - _lookup>('spine_transform_constraint_set_mix_scale_x'); + late final _spine_transform_constraint_set_mix_scale_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint, + ffi.Float)>>('spine_transform_constraint_set_mix_scale_x'); late final _spine_transform_constraint_set_mix_scale_x = - _spine_transform_constraint_set_mix_scale_xPtr.asFunction(); + _spine_transform_constraint_set_mix_scale_xPtr + .asFunction(); double spine_transform_constraint_get_mix_scale_y( spine_transform_constraint constraint, @@ -7203,10 +8637,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_mix_scale_yPtr = - _lookup>('spine_transform_constraint_get_mix_scale_y'); + late final _spine_transform_constraint_get_mix_scale_yPtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_mix_scale_y'); late final _spine_transform_constraint_get_mix_scale_y = - _spine_transform_constraint_get_mix_scale_yPtr.asFunction(); + _spine_transform_constraint_get_mix_scale_yPtr + .asFunction(); void spine_transform_constraint_set_mix_scale_y( spine_transform_constraint constraint, @@ -7218,10 +8654,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_set_mix_scale_yPtr = - _lookup>('spine_transform_constraint_set_mix_scale_y'); + late final _spine_transform_constraint_set_mix_scale_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint, + ffi.Float)>>('spine_transform_constraint_set_mix_scale_y'); late final _spine_transform_constraint_set_mix_scale_y = - _spine_transform_constraint_set_mix_scale_yPtr.asFunction(); + _spine_transform_constraint_set_mix_scale_yPtr + .asFunction(); double spine_transform_constraint_get_mix_shear_y( spine_transform_constraint constraint, @@ -7231,10 +8670,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_mix_shear_yPtr = - _lookup>('spine_transform_constraint_get_mix_shear_y'); + late final _spine_transform_constraint_get_mix_shear_yPtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_mix_shear_y'); late final _spine_transform_constraint_get_mix_shear_y = - _spine_transform_constraint_get_mix_shear_yPtr.asFunction(); + _spine_transform_constraint_get_mix_shear_yPtr + .asFunction(); void spine_transform_constraint_set_mix_shear_y( spine_transform_constraint constraint, @@ -7246,10 +8687,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_set_mix_shear_yPtr = - _lookup>('spine_transform_constraint_set_mix_shear_y'); + late final _spine_transform_constraint_set_mix_shear_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint, + ffi.Float)>>('spine_transform_constraint_set_mix_shear_y'); late final _spine_transform_constraint_set_mix_shear_y = - _spine_transform_constraint_set_mix_shear_yPtr.asFunction(); + _spine_transform_constraint_set_mix_shear_yPtr + .asFunction(); double spine_transform_constraint_get_is_active( spine_transform_constraint constraint, @@ -7259,10 +8703,12 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_get_is_activePtr = - _lookup>('spine_transform_constraint_get_is_active'); + late final _spine_transform_constraint_get_is_activePtr = _lookup< + ffi.NativeFunction>( + 'spine_transform_constraint_get_is_active'); late final _spine_transform_constraint_get_is_active = - _spine_transform_constraint_get_is_activePtr.asFunction(); + _spine_transform_constraint_get_is_activePtr + .asFunction(); void spine_transform_constraint_set_is_active( spine_transform_constraint constraint, @@ -7274,10 +8720,13 @@ class SpineFlutterBindings { ); } - late final _spine_transform_constraint_set_is_activePtr = - _lookup>('spine_transform_constraint_set_is_active'); + late final _spine_transform_constraint_set_is_activePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_transform_constraint, + ffi.Int32)>>('spine_transform_constraint_set_is_active'); late final _spine_transform_constraint_set_is_active = - _spine_transform_constraint_set_is_activePtr.asFunction(); + _spine_transform_constraint_set_is_activePtr + .asFunction(); int spine_path_constraint_data_get_num_bones( spine_path_constraint_data data, @@ -7287,10 +8736,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_num_bonesPtr = - _lookup>('spine_path_constraint_data_get_num_bones'); + late final _spine_path_constraint_data_get_num_bonesPtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_num_bones'); late final _spine_path_constraint_data_get_num_bones = - _spine_path_constraint_data_get_num_bonesPtr.asFunction(); + _spine_path_constraint_data_get_num_bonesPtr + .asFunction(); ffi.Pointer spine_path_constraint_data_get_bones( spine_path_constraint_data data, @@ -7300,11 +8751,14 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_bonesPtr = - _lookup Function(spine_path_constraint_data)>>( - 'spine_path_constraint_data_get_bones'); + late final _spine_path_constraint_data_get_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_path_constraint_data)>>( + 'spine_path_constraint_data_get_bones'); late final _spine_path_constraint_data_get_bones = - _spine_path_constraint_data_get_bonesPtr.asFunction Function(spine_path_constraint_data)>(); + _spine_path_constraint_data_get_bonesPtr.asFunction< + ffi.Pointer Function(spine_path_constraint_data)>(); spine_slot_data spine_path_constraint_data_get_target( spine_path_constraint_data data, @@ -7314,10 +8768,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_targetPtr = - _lookup>('spine_path_constraint_data_get_target'); + late final _spine_path_constraint_data_get_targetPtr = _lookup< + ffi.NativeFunction< + spine_slot_data Function(spine_path_constraint_data)>>( + 'spine_path_constraint_data_get_target'); late final _spine_path_constraint_data_get_target = - _spine_path_constraint_data_get_targetPtr.asFunction(); + _spine_path_constraint_data_get_targetPtr + .asFunction(); void spine_path_constraint_data_set_target( spine_path_constraint_data data, @@ -7329,10 +8786,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_targetPtr = - _lookup>('spine_path_constraint_data_set_target'); + late final _spine_path_constraint_data_set_targetPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + spine_slot_data)>>('spine_path_constraint_data_set_target'); late final _spine_path_constraint_data_set_target = - _spine_path_constraint_data_set_targetPtr.asFunction(); + _spine_path_constraint_data_set_targetPtr.asFunction< + void Function(spine_path_constraint_data, spine_slot_data)>(); int spine_path_constraint_data_get_position_mode( spine_path_constraint_data data, @@ -7342,10 +8802,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_position_modePtr = - _lookup>('spine_path_constraint_data_get_position_mode'); + late final _spine_path_constraint_data_get_position_modePtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_position_mode'); late final _spine_path_constraint_data_get_position_mode = - _spine_path_constraint_data_get_position_modePtr.asFunction(); + _spine_path_constraint_data_get_position_modePtr + .asFunction(); void spine_path_constraint_data_set_position_mode( spine_path_constraint_data data, @@ -7357,10 +8819,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_position_modePtr = - _lookup>('spine_path_constraint_data_set_position_mode'); + late final _spine_path_constraint_data_set_position_modePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + ffi.Int32)>>('spine_path_constraint_data_set_position_mode'); late final _spine_path_constraint_data_set_position_mode = - _spine_path_constraint_data_set_position_modePtr.asFunction(); + _spine_path_constraint_data_set_position_modePtr + .asFunction(); int spine_path_constraint_data_get_spacing_mode( spine_path_constraint_data data, @@ -7370,10 +8835,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_spacing_modePtr = - _lookup>('spine_path_constraint_data_get_spacing_mode'); + late final _spine_path_constraint_data_get_spacing_modePtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_spacing_mode'); late final _spine_path_constraint_data_get_spacing_mode = - _spine_path_constraint_data_get_spacing_modePtr.asFunction(); + _spine_path_constraint_data_get_spacing_modePtr + .asFunction(); void spine_path_constraint_data_set_spacing_mode( spine_path_constraint_data data, @@ -7385,10 +8852,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_spacing_modePtr = - _lookup>('spine_path_constraint_data_set_spacing_mode'); + late final _spine_path_constraint_data_set_spacing_modePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + ffi.Int32)>>('spine_path_constraint_data_set_spacing_mode'); late final _spine_path_constraint_data_set_spacing_mode = - _spine_path_constraint_data_set_spacing_modePtr.asFunction(); + _spine_path_constraint_data_set_spacing_modePtr + .asFunction(); int spine_path_constraint_data_get_rotate_mode( spine_path_constraint_data data, @@ -7398,10 +8868,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_rotate_modePtr = - _lookup>('spine_path_constraint_data_get_rotate_mode'); + late final _spine_path_constraint_data_get_rotate_modePtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_rotate_mode'); late final _spine_path_constraint_data_get_rotate_mode = - _spine_path_constraint_data_get_rotate_modePtr.asFunction(); + _spine_path_constraint_data_get_rotate_modePtr + .asFunction(); void spine_path_constraint_data_set_rotate_mode( spine_path_constraint_data data, @@ -7413,10 +8885,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_rotate_modePtr = - _lookup>('spine_path_constraint_data_set_rotate_mode'); + late final _spine_path_constraint_data_set_rotate_modePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + ffi.Int32)>>('spine_path_constraint_data_set_rotate_mode'); late final _spine_path_constraint_data_set_rotate_mode = - _spine_path_constraint_data_set_rotate_modePtr.asFunction(); + _spine_path_constraint_data_set_rotate_modePtr + .asFunction(); double spine_path_constraint_data_get_offset_rotation( spine_path_constraint_data data, @@ -7426,10 +8901,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_offset_rotationPtr = - _lookup>('spine_path_constraint_data_get_offset_rotation'); + late final _spine_path_constraint_data_get_offset_rotationPtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_offset_rotation'); late final _spine_path_constraint_data_get_offset_rotation = - _spine_path_constraint_data_get_offset_rotationPtr.asFunction(); + _spine_path_constraint_data_get_offset_rotationPtr + .asFunction(); void spine_path_constraint_data_set_offset_rotation( spine_path_constraint_data data, @@ -7441,11 +8918,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_offset_rotationPtr = - _lookup>( - 'spine_path_constraint_data_set_offset_rotation'); + late final _spine_path_constraint_data_set_offset_rotationPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + ffi.Float)>>('spine_path_constraint_data_set_offset_rotation'); late final _spine_path_constraint_data_set_offset_rotation = - _spine_path_constraint_data_set_offset_rotationPtr.asFunction(); + _spine_path_constraint_data_set_offset_rotationPtr + .asFunction(); double spine_path_constraint_data_get_position( spine_path_constraint_data data, @@ -7455,10 +8934,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_positionPtr = - _lookup>('spine_path_constraint_data_get_position'); + late final _spine_path_constraint_data_get_positionPtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_position'); late final _spine_path_constraint_data_get_position = - _spine_path_constraint_data_get_positionPtr.asFunction(); + _spine_path_constraint_data_get_positionPtr + .asFunction(); void spine_path_constraint_data_set_position( spine_path_constraint_data data, @@ -7470,10 +8951,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_positionPtr = - _lookup>('spine_path_constraint_data_set_position'); + late final _spine_path_constraint_data_set_positionPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + ffi.Float)>>('spine_path_constraint_data_set_position'); late final _spine_path_constraint_data_set_position = - _spine_path_constraint_data_set_positionPtr.asFunction(); + _spine_path_constraint_data_set_positionPtr + .asFunction(); double spine_path_constraint_data_get_spacing( spine_path_constraint_data data, @@ -7483,10 +8967,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_spacingPtr = - _lookup>('spine_path_constraint_data_get_spacing'); + late final _spine_path_constraint_data_get_spacingPtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_spacing'); late final _spine_path_constraint_data_get_spacing = - _spine_path_constraint_data_get_spacingPtr.asFunction(); + _spine_path_constraint_data_get_spacingPtr + .asFunction(); void spine_path_constraint_data_set_spacing( spine_path_constraint_data data, @@ -7498,10 +8984,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_spacingPtr = - _lookup>('spine_path_constraint_data_set_spacing'); + late final _spine_path_constraint_data_set_spacingPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + ffi.Float)>>('spine_path_constraint_data_set_spacing'); late final _spine_path_constraint_data_set_spacing = - _spine_path_constraint_data_set_spacingPtr.asFunction(); + _spine_path_constraint_data_set_spacingPtr + .asFunction(); double spine_path_constraint_data_get_mix_rotate( spine_path_constraint_data data, @@ -7511,10 +9000,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_mix_rotatePtr = - _lookup>('spine_path_constraint_data_get_mix_rotate'); + late final _spine_path_constraint_data_get_mix_rotatePtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_mix_rotate'); late final _spine_path_constraint_data_get_mix_rotate = - _spine_path_constraint_data_get_mix_rotatePtr.asFunction(); + _spine_path_constraint_data_get_mix_rotatePtr + .asFunction(); void spine_path_constraint_data_set_mix_rotate( spine_path_constraint_data data, @@ -7526,10 +9017,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_mix_rotatePtr = - _lookup>('spine_path_constraint_data_set_mix_rotate'); + late final _spine_path_constraint_data_set_mix_rotatePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + ffi.Float)>>('spine_path_constraint_data_set_mix_rotate'); late final _spine_path_constraint_data_set_mix_rotate = - _spine_path_constraint_data_set_mix_rotatePtr.asFunction(); + _spine_path_constraint_data_set_mix_rotatePtr + .asFunction(); double spine_path_constraint_data_get_mix_x( spine_path_constraint_data data, @@ -7539,10 +9033,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_mix_xPtr = - _lookup>('spine_path_constraint_data_get_mix_x'); + late final _spine_path_constraint_data_get_mix_xPtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_mix_x'); late final _spine_path_constraint_data_get_mix_x = - _spine_path_constraint_data_get_mix_xPtr.asFunction(); + _spine_path_constraint_data_get_mix_xPtr + .asFunction(); void spine_path_constraint_data_set_mix_x( spine_path_constraint_data data, @@ -7554,10 +9050,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_mix_xPtr = - _lookup>('spine_path_constraint_data_set_mix_x'); + late final _spine_path_constraint_data_set_mix_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + ffi.Float)>>('spine_path_constraint_data_set_mix_x'); late final _spine_path_constraint_data_set_mix_x = - _spine_path_constraint_data_set_mix_xPtr.asFunction(); + _spine_path_constraint_data_set_mix_xPtr + .asFunction(); double spine_path_constraint_data_get_mix_y( spine_path_constraint_data data, @@ -7567,10 +9066,12 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_get_mix_yPtr = - _lookup>('spine_path_constraint_data_get_mix_y'); + late final _spine_path_constraint_data_get_mix_yPtr = _lookup< + ffi.NativeFunction>( + 'spine_path_constraint_data_get_mix_y'); late final _spine_path_constraint_data_get_mix_y = - _spine_path_constraint_data_get_mix_yPtr.asFunction(); + _spine_path_constraint_data_get_mix_yPtr + .asFunction(); void spine_path_constraint_data_set_mix_y( spine_path_constraint_data data, @@ -7582,10 +9083,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_data_set_mix_yPtr = - _lookup>('spine_path_constraint_data_set_mix_y'); + late final _spine_path_constraint_data_set_mix_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint_data, + ffi.Float)>>('spine_path_constraint_data_set_mix_y'); late final _spine_path_constraint_data_set_mix_y = - _spine_path_constraint_data_set_mix_yPtr.asFunction(); + _spine_path_constraint_data_set_mix_yPtr + .asFunction(); void spine_path_constraint_update( spine_path_constraint constraint, @@ -7596,8 +9100,10 @@ class SpineFlutterBindings { } late final _spine_path_constraint_updatePtr = - _lookup>('spine_path_constraint_update'); - late final _spine_path_constraint_update = _spine_path_constraint_updatePtr.asFunction(); + _lookup>( + 'spine_path_constraint_update'); + late final _spine_path_constraint_update = _spine_path_constraint_updatePtr + .asFunction(); int spine_path_constraint_get_order( spine_path_constraint constraint, @@ -7608,8 +9114,11 @@ class SpineFlutterBindings { } late final _spine_path_constraint_get_orderPtr = - _lookup>('spine_path_constraint_get_order'); - late final _spine_path_constraint_get_order = _spine_path_constraint_get_orderPtr.asFunction(); + _lookup>( + 'spine_path_constraint_get_order'); + late final _spine_path_constraint_get_order = + _spine_path_constraint_get_orderPtr + .asFunction(); spine_path_constraint_data spine_path_constraint_get_data( spine_path_constraint constraint, @@ -7619,10 +9128,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_get_dataPtr = - _lookup>('spine_path_constraint_get_data'); + late final _spine_path_constraint_get_dataPtr = _lookup< + ffi.NativeFunction< + spine_path_constraint_data Function( + spine_path_constraint)>>('spine_path_constraint_get_data'); late final _spine_path_constraint_get_data = - _spine_path_constraint_get_dataPtr.asFunction(); + _spine_path_constraint_get_dataPtr.asFunction< + spine_path_constraint_data Function(spine_path_constraint)>(); int spine_path_constraint_get_num_bones( spine_path_constraint constraint, @@ -7633,9 +9145,11 @@ class SpineFlutterBindings { } late final _spine_path_constraint_get_num_bonesPtr = - _lookup>('spine_path_constraint_get_num_bones'); + _lookup>( + 'spine_path_constraint_get_num_bones'); late final _spine_path_constraint_get_num_bones = - _spine_path_constraint_get_num_bonesPtr.asFunction(); + _spine_path_constraint_get_num_bonesPtr + .asFunction(); ffi.Pointer spine_path_constraint_get_bones( spine_path_constraint constraint, @@ -7645,10 +9159,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_get_bonesPtr = - _lookup Function(spine_path_constraint)>>('spine_path_constraint_get_bones'); + late final _spine_path_constraint_get_bonesPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_path_constraint)>>('spine_path_constraint_get_bones'); late final _spine_path_constraint_get_bones = - _spine_path_constraint_get_bonesPtr.asFunction Function(spine_path_constraint)>(); + _spine_path_constraint_get_bonesPtr.asFunction< + ffi.Pointer Function(spine_path_constraint)>(); spine_slot spine_path_constraint_get_target( spine_path_constraint constraint, @@ -7659,9 +9176,11 @@ class SpineFlutterBindings { } late final _spine_path_constraint_get_targetPtr = - _lookup>('spine_path_constraint_get_target'); + _lookup>( + 'spine_path_constraint_get_target'); late final _spine_path_constraint_get_target = - _spine_path_constraint_get_targetPtr.asFunction(); + _spine_path_constraint_get_targetPtr + .asFunction(); void spine_path_constraint_set_target( spine_path_constraint constraint, @@ -7673,10 +9192,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_set_targetPtr = - _lookup>('spine_path_constraint_set_target'); + late final _spine_path_constraint_set_targetPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint, + spine_slot)>>('spine_path_constraint_set_target'); late final _spine_path_constraint_set_target = - _spine_path_constraint_set_targetPtr.asFunction(); + _spine_path_constraint_set_targetPtr + .asFunction(); double spine_path_constraint_get_position( spine_path_constraint constraint, @@ -7687,9 +9209,11 @@ class SpineFlutterBindings { } late final _spine_path_constraint_get_positionPtr = - _lookup>('spine_path_constraint_get_position'); + _lookup>( + 'spine_path_constraint_get_position'); late final _spine_path_constraint_get_position = - _spine_path_constraint_get_positionPtr.asFunction(); + _spine_path_constraint_get_positionPtr + .asFunction(); void spine_path_constraint_set_position( spine_path_constraint constraint, @@ -7701,10 +9225,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_set_positionPtr = - _lookup>('spine_path_constraint_set_position'); + late final _spine_path_constraint_set_positionPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint, + ffi.Float)>>('spine_path_constraint_set_position'); late final _spine_path_constraint_set_position = - _spine_path_constraint_set_positionPtr.asFunction(); + _spine_path_constraint_set_positionPtr + .asFunction(); double spine_path_constraint_get_spacing( spine_path_constraint constraint, @@ -7715,9 +9242,11 @@ class SpineFlutterBindings { } late final _spine_path_constraint_get_spacingPtr = - _lookup>('spine_path_constraint_get_spacing'); + _lookup>( + 'spine_path_constraint_get_spacing'); late final _spine_path_constraint_get_spacing = - _spine_path_constraint_get_spacingPtr.asFunction(); + _spine_path_constraint_get_spacingPtr + .asFunction(); void spine_path_constraint_set_spacing( spine_path_constraint constraint, @@ -7729,10 +9258,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_set_spacingPtr = - _lookup>('spine_path_constraint_set_spacing'); + late final _spine_path_constraint_set_spacingPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint, + ffi.Float)>>('spine_path_constraint_set_spacing'); late final _spine_path_constraint_set_spacing = - _spine_path_constraint_set_spacingPtr.asFunction(); + _spine_path_constraint_set_spacingPtr + .asFunction(); double spine_path_constraint_get_mix_rotate( spine_path_constraint constraint, @@ -7743,9 +9275,11 @@ class SpineFlutterBindings { } late final _spine_path_constraint_get_mix_rotatePtr = - _lookup>('spine_path_constraint_get_mix_rotate'); + _lookup>( + 'spine_path_constraint_get_mix_rotate'); late final _spine_path_constraint_get_mix_rotate = - _spine_path_constraint_get_mix_rotatePtr.asFunction(); + _spine_path_constraint_get_mix_rotatePtr + .asFunction(); void spine_path_constraint_set_mix_rotate( spine_path_constraint constraint, @@ -7757,10 +9291,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_set_mix_rotatePtr = - _lookup>('spine_path_constraint_set_mix_rotate'); + late final _spine_path_constraint_set_mix_rotatePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint, + ffi.Float)>>('spine_path_constraint_set_mix_rotate'); late final _spine_path_constraint_set_mix_rotate = - _spine_path_constraint_set_mix_rotatePtr.asFunction(); + _spine_path_constraint_set_mix_rotatePtr + .asFunction(); double spine_path_constraint_get_mix_x( spine_path_constraint constraint, @@ -7771,8 +9308,11 @@ class SpineFlutterBindings { } late final _spine_path_constraint_get_mix_xPtr = - _lookup>('spine_path_constraint_get_mix_x'); - late final _spine_path_constraint_get_mix_x = _spine_path_constraint_get_mix_xPtr.asFunction(); + _lookup>( + 'spine_path_constraint_get_mix_x'); + late final _spine_path_constraint_get_mix_x = + _spine_path_constraint_get_mix_xPtr + .asFunction(); void spine_path_constraint_set_mix_x( spine_path_constraint constraint, @@ -7784,10 +9324,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_set_mix_xPtr = - _lookup>('spine_path_constraint_set_mix_x'); + late final _spine_path_constraint_set_mix_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint, + ffi.Float)>>('spine_path_constraint_set_mix_x'); late final _spine_path_constraint_set_mix_x = - _spine_path_constraint_set_mix_xPtr.asFunction(); + _spine_path_constraint_set_mix_xPtr + .asFunction(); double spine_path_constraint_get_mix_y( spine_path_constraint constraint, @@ -7798,8 +9341,11 @@ class SpineFlutterBindings { } late final _spine_path_constraint_get_mix_yPtr = - _lookup>('spine_path_constraint_get_mix_y'); - late final _spine_path_constraint_get_mix_y = _spine_path_constraint_get_mix_yPtr.asFunction(); + _lookup>( + 'spine_path_constraint_get_mix_y'); + late final _spine_path_constraint_get_mix_y = + _spine_path_constraint_get_mix_yPtr + .asFunction(); void spine_path_constraint_set_mix_y( spine_path_constraint constraint, @@ -7811,10 +9357,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_set_mix_yPtr = - _lookup>('spine_path_constraint_set_mix_y'); + late final _spine_path_constraint_set_mix_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint, + ffi.Float)>>('spine_path_constraint_set_mix_y'); late final _spine_path_constraint_set_mix_y = - _spine_path_constraint_set_mix_yPtr.asFunction(); + _spine_path_constraint_set_mix_yPtr + .asFunction(); int spine_path_constraint_get_is_active( spine_path_constraint constraint, @@ -7825,9 +9374,11 @@ class SpineFlutterBindings { } late final _spine_path_constraint_get_is_activePtr = - _lookup>('spine_path_constraint_get_is_active'); + _lookup>( + 'spine_path_constraint_get_is_active'); late final _spine_path_constraint_get_is_active = - _spine_path_constraint_get_is_activePtr.asFunction(); + _spine_path_constraint_get_is_activePtr + .asFunction(); void spine_path_constraint_set_is_active( spine_path_constraint constraint, @@ -7839,10 +9390,13 @@ class SpineFlutterBindings { ); } - late final _spine_path_constraint_set_is_activePtr = - _lookup>('spine_path_constraint_set_is_active'); + late final _spine_path_constraint_set_is_activePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_path_constraint, + ffi.Int32)>>('spine_path_constraint_set_is_active'); late final _spine_path_constraint_set_is_active = - _spine_path_constraint_set_is_activePtr.asFunction(); + _spine_path_constraint_set_is_activePtr + .asFunction(); /// OMITTED copy() void spine_sequence_apply( @@ -7857,9 +9411,12 @@ class SpineFlutterBindings { ); } - late final _spine_sequence_applyPtr = - _lookup>('spine_sequence_apply'); - late final _spine_sequence_apply = _spine_sequence_applyPtr.asFunction(); + late final _spine_sequence_applyPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_sequence, spine_slot, + spine_attachment)>>('spine_sequence_apply'); + late final _spine_sequence_apply = _spine_sequence_applyPtr.asFunction< + void Function(spine_sequence, spine_slot, spine_attachment)>(); ffi.Pointer spine_sequence_get_path( spine_sequence sequence, @@ -7873,10 +9430,12 @@ class SpineFlutterBindings { ); } - late final _spine_sequence_get_pathPtr = - _lookup Function(spine_sequence, ffi.Pointer, ffi.Int32)>>('spine_sequence_get_path'); - late final _spine_sequence_get_path = - _spine_sequence_get_pathPtr.asFunction Function(spine_sequence, ffi.Pointer, int)>(); + late final _spine_sequence_get_pathPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function(spine_sequence, ffi.Pointer, + ffi.Int32)>>('spine_sequence_get_path'); + late final _spine_sequence_get_path = _spine_sequence_get_pathPtr.asFunction< + ffi.Pointer Function(spine_sequence, ffi.Pointer, int)>(); int spine_sequence_get_id( spine_sequence sequence, @@ -7886,8 +9445,11 @@ class SpineFlutterBindings { ); } - late final _spine_sequence_get_idPtr = _lookup>('spine_sequence_get_id'); - late final _spine_sequence_get_id = _spine_sequence_get_idPtr.asFunction(); + late final _spine_sequence_get_idPtr = + _lookup>( + 'spine_sequence_get_id'); + late final _spine_sequence_get_id = + _spine_sequence_get_idPtr.asFunction(); void spine_sequence_set_id( spine_sequence sequence, @@ -7899,8 +9461,11 @@ class SpineFlutterBindings { ); } - late final _spine_sequence_set_idPtr = _lookup>('spine_sequence_set_id'); - late final _spine_sequence_set_id = _spine_sequence_set_idPtr.asFunction(); + late final _spine_sequence_set_idPtr = + _lookup>( + 'spine_sequence_set_id'); + late final _spine_sequence_set_id = _spine_sequence_set_idPtr + .asFunction(); int spine_sequence_get_start( spine_sequence sequence, @@ -7910,8 +9475,11 @@ class SpineFlutterBindings { ); } - late final _spine_sequence_get_startPtr = _lookup>('spine_sequence_get_start'); - late final _spine_sequence_get_start = _spine_sequence_get_startPtr.asFunction(); + late final _spine_sequence_get_startPtr = + _lookup>( + 'spine_sequence_get_start'); + late final _spine_sequence_get_start = + _spine_sequence_get_startPtr.asFunction(); void spine_sequence_set_start( spine_sequence sequence, @@ -7924,8 +9492,10 @@ class SpineFlutterBindings { } late final _spine_sequence_set_startPtr = - _lookup>('spine_sequence_set_start'); - late final _spine_sequence_set_start = _spine_sequence_set_startPtr.asFunction(); + _lookup>( + 'spine_sequence_set_start'); + late final _spine_sequence_set_start = _spine_sequence_set_startPtr + .asFunction(); int spine_sequence_get_digits( spine_sequence sequence, @@ -7935,8 +9505,11 @@ class SpineFlutterBindings { ); } - late final _spine_sequence_get_digitsPtr = _lookup>('spine_sequence_get_digits'); - late final _spine_sequence_get_digits = _spine_sequence_get_digitsPtr.asFunction(); + late final _spine_sequence_get_digitsPtr = + _lookup>( + 'spine_sequence_get_digits'); + late final _spine_sequence_get_digits = + _spine_sequence_get_digitsPtr.asFunction(); void spine_sequence_set_digits( spine_sequence sequence, @@ -7949,8 +9522,10 @@ class SpineFlutterBindings { } late final _spine_sequence_set_digitsPtr = - _lookup>('spine_sequence_set_digits'); - late final _spine_sequence_set_digits = _spine_sequence_set_digitsPtr.asFunction(); + _lookup>( + 'spine_sequence_set_digits'); + late final _spine_sequence_set_digits = _spine_sequence_set_digitsPtr + .asFunction(); int spine_sequence_get_setup_index( spine_sequence sequence, @@ -7961,8 +9536,11 @@ class SpineFlutterBindings { } late final _spine_sequence_get_setup_indexPtr = - _lookup>('spine_sequence_get_setup_index'); - late final _spine_sequence_get_setup_index = _spine_sequence_get_setup_indexPtr.asFunction(); + _lookup>( + 'spine_sequence_get_setup_index'); + late final _spine_sequence_get_setup_index = + _spine_sequence_get_setup_indexPtr + .asFunction(); void spine_sequence_set_setup_index( spine_sequence sequence, @@ -7975,8 +9553,11 @@ class SpineFlutterBindings { } late final _spine_sequence_set_setup_indexPtr = - _lookup>('spine_sequence_set_setup_index'); - late final _spine_sequence_set_setup_index = _spine_sequence_set_setup_indexPtr.asFunction(); + _lookup>( + 'spine_sequence_set_setup_index'); + late final _spine_sequence_set_setup_index = + _spine_sequence_set_setup_indexPtr + .asFunction(); int spine_sequence_get_num_regions( spine_sequence sequence, @@ -7987,8 +9568,11 @@ class SpineFlutterBindings { } late final _spine_sequence_get_num_regionsPtr = - _lookup>('spine_sequence_get_num_regions'); - late final _spine_sequence_get_num_regions = _spine_sequence_get_num_regionsPtr.asFunction(); + _lookup>( + 'spine_sequence_get_num_regions'); + late final _spine_sequence_get_num_regions = + _spine_sequence_get_num_regionsPtr + .asFunction(); ffi.Pointer spine_sequence_get_regions( spine_sequence sequence, @@ -7998,10 +9582,12 @@ class SpineFlutterBindings { ); } - late final _spine_sequence_get_regionsPtr = - _lookup Function(spine_sequence)>>('spine_sequence_get_regions'); - late final _spine_sequence_get_regions = - _spine_sequence_get_regionsPtr.asFunction Function(spine_sequence)>(); + late final _spine_sequence_get_regionsPtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_sequence)>>('spine_sequence_get_regions'); + late final _spine_sequence_get_regions = _spine_sequence_get_regionsPtr + .asFunction Function(spine_sequence)>(); ffi.Pointer spine_texture_region_get_texture( spine_texture_region textureRegion, @@ -8011,10 +9597,13 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_get_texturePtr = - _lookup Function(spine_texture_region)>>('spine_texture_region_get_texture'); + late final _spine_texture_region_get_texturePtr = _lookup< + ffi.NativeFunction< + ffi.Pointer Function( + spine_texture_region)>>('spine_texture_region_get_texture'); late final _spine_texture_region_get_texture = - _spine_texture_region_get_texturePtr.asFunction Function(spine_texture_region)>(); + _spine_texture_region_get_texturePtr + .asFunction Function(spine_texture_region)>(); void spine_texture_region_set_texture( spine_texture_region textureRegion, @@ -8026,10 +9615,13 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_texturePtr = - _lookup)>>('spine_texture_region_set_texture'); + late final _spine_texture_region_set_texturePtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_texture_region, + ffi.Pointer)>>('spine_texture_region_set_texture'); late final _spine_texture_region_set_texture = - _spine_texture_region_set_texturePtr.asFunction)>(); + _spine_texture_region_set_texturePtr.asFunction< + void Function(spine_texture_region, ffi.Pointer)>(); double spine_texture_region_get_u( spine_texture_region textureRegion, @@ -8040,8 +9632,10 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_uPtr = - _lookup>('spine_texture_region_get_u'); - late final _spine_texture_region_get_u = _spine_texture_region_get_uPtr.asFunction(); + _lookup>( + 'spine_texture_region_get_u'); + late final _spine_texture_region_get_u = _spine_texture_region_get_uPtr + .asFunction(); void spine_texture_region_set_u( spine_texture_region textureRegion, @@ -8053,9 +9647,12 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_uPtr = - _lookup>('spine_texture_region_set_u'); - late final _spine_texture_region_set_u = _spine_texture_region_set_uPtr.asFunction(); + late final _spine_texture_region_set_uPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_texture_region, ffi.Float)>>('spine_texture_region_set_u'); + late final _spine_texture_region_set_u = _spine_texture_region_set_uPtr + .asFunction(); double spine_texture_region_get_v( spine_texture_region textureRegion, @@ -8066,8 +9663,10 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_vPtr = - _lookup>('spine_texture_region_get_v'); - late final _spine_texture_region_get_v = _spine_texture_region_get_vPtr.asFunction(); + _lookup>( + 'spine_texture_region_get_v'); + late final _spine_texture_region_get_v = _spine_texture_region_get_vPtr + .asFunction(); void spine_texture_region_set_v( spine_texture_region textureRegion, @@ -8079,9 +9678,12 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_vPtr = - _lookup>('spine_texture_region_set_v'); - late final _spine_texture_region_set_v = _spine_texture_region_set_vPtr.asFunction(); + late final _spine_texture_region_set_vPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_texture_region, ffi.Float)>>('spine_texture_region_set_v'); + late final _spine_texture_region_set_v = _spine_texture_region_set_vPtr + .asFunction(); double spine_texture_region_get_u2( spine_texture_region textureRegion, @@ -8092,8 +9694,10 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_u2Ptr = - _lookup>('spine_texture_region_get_u2'); - late final _spine_texture_region_get_u2 = _spine_texture_region_get_u2Ptr.asFunction(); + _lookup>( + 'spine_texture_region_get_u2'); + late final _spine_texture_region_get_u2 = _spine_texture_region_get_u2Ptr + .asFunction(); void spine_texture_region_set_u2( spine_texture_region textureRegion, @@ -8105,9 +9709,12 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_u2Ptr = - _lookup>('spine_texture_region_set_u2'); - late final _spine_texture_region_set_u2 = _spine_texture_region_set_u2Ptr.asFunction(); + late final _spine_texture_region_set_u2Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_texture_region, ffi.Float)>>('spine_texture_region_set_u2'); + late final _spine_texture_region_set_u2 = _spine_texture_region_set_u2Ptr + .asFunction(); double spine_texture_region_get_v2( spine_texture_region textureRegion, @@ -8118,8 +9725,10 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_v2Ptr = - _lookup>('spine_texture_region_get_v2'); - late final _spine_texture_region_get_v2 = _spine_texture_region_get_v2Ptr.asFunction(); + _lookup>( + 'spine_texture_region_get_v2'); + late final _spine_texture_region_get_v2 = _spine_texture_region_get_v2Ptr + .asFunction(); void spine_texture_region_set_v2( spine_texture_region textureRegion, @@ -8131,9 +9740,12 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_v2Ptr = - _lookup>('spine_texture_region_set_v2'); - late final _spine_texture_region_set_v2 = _spine_texture_region_set_v2Ptr.asFunction(); + late final _spine_texture_region_set_v2Ptr = _lookup< + ffi.NativeFunction< + ffi.Void Function( + spine_texture_region, ffi.Float)>>('spine_texture_region_set_v2'); + late final _spine_texture_region_set_v2 = _spine_texture_region_set_v2Ptr + .asFunction(); int spine_texture_region_get_degrees( spine_texture_region textureRegion, @@ -8144,8 +9756,11 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_degreesPtr = - _lookup>('spine_texture_region_get_degrees'); - late final _spine_texture_region_get_degrees = _spine_texture_region_get_degreesPtr.asFunction(); + _lookup>( + 'spine_texture_region_get_degrees'); + late final _spine_texture_region_get_degrees = + _spine_texture_region_get_degreesPtr + .asFunction(); void spine_texture_region_set_degrees( spine_texture_region textureRegion, @@ -8157,10 +9772,13 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_degreesPtr = - _lookup>('spine_texture_region_set_degrees'); + late final _spine_texture_region_set_degreesPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_texture_region, + ffi.Int32)>>('spine_texture_region_set_degrees'); late final _spine_texture_region_set_degrees = - _spine_texture_region_set_degreesPtr.asFunction(); + _spine_texture_region_set_degreesPtr + .asFunction(); double spine_texture_region_get_offset_x( spine_texture_region textureRegion, @@ -8171,8 +9789,11 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_offset_xPtr = - _lookup>('spine_texture_region_get_offset_x'); - late final _spine_texture_region_get_offset_x = _spine_texture_region_get_offset_xPtr.asFunction(); + _lookup>( + 'spine_texture_region_get_offset_x'); + late final _spine_texture_region_get_offset_x = + _spine_texture_region_get_offset_xPtr + .asFunction(); void spine_texture_region_set_offset_x( spine_texture_region textureRegion, @@ -8184,10 +9805,13 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_offset_xPtr = - _lookup>('spine_texture_region_set_offset_x'); + late final _spine_texture_region_set_offset_xPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_texture_region, + ffi.Float)>>('spine_texture_region_set_offset_x'); late final _spine_texture_region_set_offset_x = - _spine_texture_region_set_offset_xPtr.asFunction(); + _spine_texture_region_set_offset_xPtr + .asFunction(); double spine_texture_region_get_offset_y( spine_texture_region textureRegion, @@ -8198,8 +9822,11 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_offset_yPtr = - _lookup>('spine_texture_region_get_offset_y'); - late final _spine_texture_region_get_offset_y = _spine_texture_region_get_offset_yPtr.asFunction(); + _lookup>( + 'spine_texture_region_get_offset_y'); + late final _spine_texture_region_get_offset_y = + _spine_texture_region_get_offset_yPtr + .asFunction(); void spine_texture_region_set_offset_y( spine_texture_region textureRegion, @@ -8211,10 +9838,13 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_offset_yPtr = - _lookup>('spine_texture_region_set_offset_y'); + late final _spine_texture_region_set_offset_yPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_texture_region, + ffi.Float)>>('spine_texture_region_set_offset_y'); late final _spine_texture_region_set_offset_y = - _spine_texture_region_set_offset_yPtr.asFunction(); + _spine_texture_region_set_offset_yPtr + .asFunction(); int spine_texture_region_get_width( spine_texture_region textureRegion, @@ -8225,8 +9855,11 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_widthPtr = - _lookup>('spine_texture_region_get_width'); - late final _spine_texture_region_get_width = _spine_texture_region_get_widthPtr.asFunction(); + _lookup>( + 'spine_texture_region_get_width'); + late final _spine_texture_region_get_width = + _spine_texture_region_get_widthPtr + .asFunction(); void spine_texture_region_set_width( spine_texture_region textureRegion, @@ -8238,9 +9871,13 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_widthPtr = - _lookup>('spine_texture_region_set_width'); - late final _spine_texture_region_set_width = _spine_texture_region_set_widthPtr.asFunction(); + late final _spine_texture_region_set_widthPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_texture_region, + ffi.Int32)>>('spine_texture_region_set_width'); + late final _spine_texture_region_set_width = + _spine_texture_region_set_widthPtr + .asFunction(); int spine_texture_region_get_height( spine_texture_region textureRegion, @@ -8251,8 +9888,11 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_heightPtr = - _lookup>('spine_texture_region_get_height'); - late final _spine_texture_region_get_height = _spine_texture_region_get_heightPtr.asFunction(); + _lookup>( + 'spine_texture_region_get_height'); + late final _spine_texture_region_get_height = + _spine_texture_region_get_heightPtr + .asFunction(); void spine_texture_region_set_height( spine_texture_region textureRegion, @@ -8264,9 +9904,13 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_heightPtr = - _lookup>('spine_texture_region_set_height'); - late final _spine_texture_region_set_height = _spine_texture_region_set_heightPtr.asFunction(); + late final _spine_texture_region_set_heightPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_texture_region, + ffi.Int32)>>('spine_texture_region_set_height'); + late final _spine_texture_region_set_height = + _spine_texture_region_set_heightPtr + .asFunction(); int spine_texture_region_get_original_width( spine_texture_region textureRegion, @@ -8277,9 +9921,11 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_original_widthPtr = - _lookup>('spine_texture_region_get_original_width'); + _lookup>( + 'spine_texture_region_get_original_width'); late final _spine_texture_region_get_original_width = - _spine_texture_region_get_original_widthPtr.asFunction(); + _spine_texture_region_get_original_widthPtr + .asFunction(); void spine_texture_region_set_original_width( spine_texture_region textureRegion, @@ -8291,10 +9937,13 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_original_widthPtr = - _lookup>('spine_texture_region_set_original_width'); + late final _spine_texture_region_set_original_widthPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_texture_region, + ffi.Int32)>>('spine_texture_region_set_original_width'); late final _spine_texture_region_set_original_width = - _spine_texture_region_set_original_widthPtr.asFunction(); + _spine_texture_region_set_original_widthPtr + .asFunction(); int spine_texture_region_get_original_height( spine_texture_region textureRegion, @@ -8305,9 +9954,11 @@ class SpineFlutterBindings { } late final _spine_texture_region_get_original_heightPtr = - _lookup>('spine_texture_region_get_original_height'); + _lookup>( + 'spine_texture_region_get_original_height'); late final _spine_texture_region_get_original_height = - _spine_texture_region_get_original_heightPtr.asFunction(); + _spine_texture_region_get_original_heightPtr + .asFunction(); void spine_texture_region_set_original_height( spine_texture_region textureRegion, @@ -8319,10 +9970,13 @@ class SpineFlutterBindings { ); } - late final _spine_texture_region_set_original_heightPtr = - _lookup>('spine_texture_region_set_original_height'); + late final _spine_texture_region_set_original_heightPtr = _lookup< + ffi.NativeFunction< + ffi.Void Function(spine_texture_region, + ffi.Int32)>>('spine_texture_region_set_original_height'); late final _spine_texture_region_set_original_height = - _spine_texture_region_set_original_heightPtr.asFunction(); + _spine_texture_region_set_original_heightPtr + .asFunction(); } class spine_skeleton_wrapper extends ffi.Opaque {} @@ -8476,29 +10130,36 @@ typedef spine_bounds = ffi.Pointer; typedef spine_vector = ffi.Pointer; typedef spine_atlas = ffi.Pointer; typedef utf8 = ffi.Char; -typedef spine_skeleton_data_result = ffi.Pointer; +typedef spine_skeleton_data_result + = ffi.Pointer; typedef spine_skeleton_data = ffi.Pointer; typedef spine_bone_data = ffi.Pointer; typedef spine_slot_data = ffi.Pointer; typedef spine_skin = ffi.Pointer; typedef spine_event_data = ffi.Pointer; typedef spine_animation = ffi.Pointer; -typedef spine_ik_constraint_data = ffi.Pointer; -typedef spine_transform_constraint_data = ffi.Pointer; -typedef spine_path_constraint_data = ffi.Pointer; +typedef spine_ik_constraint_data + = ffi.Pointer; +typedef spine_transform_constraint_data + = ffi.Pointer; +typedef spine_path_constraint_data + = ffi.Pointer; typedef spine_skeleton_drawable = ffi.Pointer; typedef spine_render_command = ffi.Pointer; typedef spine_skeleton = ffi.Pointer; typedef spine_animation_state = ffi.Pointer; -typedef spine_animation_state_data = ffi.Pointer; -typedef spine_animation_state_events = ffi.Pointer; +typedef spine_animation_state_data + = ffi.Pointer; +typedef spine_animation_state_events + = ffi.Pointer; typedef spine_track_entry = ffi.Pointer; typedef spine_event = ffi.Pointer; typedef spine_bone = ffi.Pointer; typedef spine_slot = ffi.Pointer; typedef spine_attachment = ffi.Pointer; typedef spine_ik_constraint = ffi.Pointer; -typedef spine_transform_constraint = ffi.Pointer; +typedef spine_transform_constraint + = ffi.Pointer; typedef spine_path_constraint = ffi.Pointer; typedef spine_point_attachment = ffi.Pointer; typedef spine_region_attachment = ffi.Pointer; @@ -8506,8 +10167,10 @@ typedef spine_texture_region = ffi.Pointer; typedef spine_sequence = ffi.Pointer; typedef spine_vertex_attachment = ffi.Pointer; typedef spine_mesh_attachment = ffi.Pointer; -typedef spine_clipping_attachment = ffi.Pointer; -typedef spine_bounding_box_attachment = ffi.Pointer; +typedef spine_clipping_attachment + = ffi.Pointer; +typedef spine_bounding_box_attachment + = ffi.Pointer; typedef spine_path_attachment = ffi.Pointer; typedef spine_skin_entries = ffi.Pointer; typedef spine_skin_entry = ffi.Pointer; diff --git a/spine-flutter/src/spine_flutter.cpp b/spine-flutter/src/spine_flutter.cpp index 05f9f6c72..a970f6437 100644 --- a/spine-flutter/src/spine_flutter.cpp +++ b/spine-flutter/src/spine_flutter.cpp @@ -2115,6 +2115,12 @@ void spine_bone_update_world_transform_with(spine_bone bone, float x, float y, f _bone->updateWorldTransform(x, y, rotation, scaleX, scaleY, shearX, shearY); } +void spine_bone_update_applied_transform(spine_bone bone) { + if (bone == nullptr) return; + Bone *_bone = (Bone *) bone; + _bone->updateAppliedTransform(); +} + void spine_bone_set_to_setup_pose(spine_bone bone) { if (bone == nullptr) return; Bone *_bone = (Bone *) bone; diff --git a/spine-flutter/src/spine_flutter.h b/spine-flutter/src/spine_flutter.h index b0067c758..720fd2acb 100644 --- a/spine-flutter/src/spine_flutter.h +++ b/spine-flutter/src/spine_flutter.h @@ -489,6 +489,7 @@ SPINE_FLUTTER_EXPORT int32_t spine_bone_get_is_y_down(); SPINE_FLUTTER_EXPORT void spine_bone_update(spine_bone bone); SPINE_FLUTTER_EXPORT void spine_bone_update_world_transform(spine_bone bone); SPINE_FLUTTER_EXPORT void spine_bone_update_world_transform_with(spine_bone bone, float x, float y, float rotation, float scaleX, float scaleY, float shearX, float shearY); +SPINE_FLUTTER_EXPORT void spine_bone_update_applied_transform(spine_bone bone); SPINE_FLUTTER_EXPORT void spine_bone_set_to_setup_pose(spine_bone bone); SPINE_FLUTTER_EXPORT spine_vector spine_bone_world_to_local(spine_bone bone, float worldX, float worldY); SPINE_FLUTTER_EXPORT spine_vector spine_bone_local_to_world(spine_bone bone, float localX, float localY); From 634028495f1ca5396f6124efa6236ffd17a37a50 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Wed, 8 Feb 2023 13:01:13 +0100 Subject: [PATCH 08/13] [godot] Closes #2238, C# binding generator dislikes type mismatch in gettter/setter pairs. --- spine-godot/spine_godot/SpineSkeletonDataResource.cpp | 4 ++-- spine-godot/spine_godot/SpineSkeletonDataResource.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spine-godot/spine_godot/SpineSkeletonDataResource.cpp b/spine-godot/spine_godot/SpineSkeletonDataResource.cpp index 05bf832e8..901af5357 100644 --- a/spine-godot/spine_godot/SpineSkeletonDataResource.cpp +++ b/spine-godot/spine_godot/SpineSkeletonDataResource.cpp @@ -51,7 +51,7 @@ void SpineAnimationMix::_bind_methods() { SpineAnimationMix::SpineAnimationMix() : from(""), to(""), mix(0) { } -void SpineAnimationMix::set_from(const StringName &_from) { +void SpineAnimationMix::set_from(const String &_from) { this->from = _from; } @@ -59,7 +59,7 @@ String SpineAnimationMix::get_from() { return from; } -void SpineAnimationMix::set_to(const StringName &_to) { +void SpineAnimationMix::set_to(const String &_to) { this->to = _to; } diff --git a/spine-godot/spine_godot/SpineSkeletonDataResource.h b/spine-godot/spine_godot/SpineSkeletonDataResource.h index 4486817d0..97290ca62 100644 --- a/spine-godot/spine_godot/SpineSkeletonDataResource.h +++ b/spine-godot/spine_godot/SpineSkeletonDataResource.h @@ -24,11 +24,11 @@ protected: public: SpineAnimationMix(); - void set_from(const StringName &from); + void set_from(const String &from); String get_from(); - void set_to(const StringName &to); + void set_to(const String &to); String get_to(); From 085a0135a4f295f21da2125807cf00f45d512261 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Wed, 8 Feb 2023 15:34:49 +0100 Subject: [PATCH 09/13] [flutter] More core classes documentation. --- spine-flutter/lib/spine_flutter.dart | 505 +++++++++++++++++++++++---- 1 file changed, 436 insertions(+), 69 deletions(-) diff --git a/spine-flutter/lib/spine_flutter.dart b/spine-flutter/lib/spine_flutter.dart index 02baf1b7c..15456e786 100644 --- a/spine-flutter/lib/spine_flutter.dart +++ b/spine-flutter/lib/spine_flutter.dart @@ -1050,24 +1050,30 @@ class Bone { } } +/// Stores the setup pose for a [Slot]. class SlotData { final spine_slot_data _data; SlotData._(this._data); + /// The index of the slot in [Skeleton.getSlots]. int getIndex() { return _bindings.spine_slot_data_get_index(_data); } + /// The name of the slot, which is unique across all slots in the skeleton. String getName() { final Pointer value = _bindings.spine_slot_data_get_name(_data).cast(); return value.toDartString(); } + /// The bone this slot belongs to. BoneData getBoneData() { return BoneData._(_bindings.spine_slot_data_get_bone_data(_data)); } + /// The [Color] used to tint the slot's attachment. If [hasDarkColor] is true, this is used as the light color for two + /// color tinting. Color getColor() { final color = _bindings.spine_slot_data_get_color(_data); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -1078,6 +1084,8 @@ class SlotData { _bindings.spine_slot_data_set_color(_data, r, g, b, a); } + /// The dark color used to tint the slot's attachment for two color tinting, if [hasDarkColor] is true. The dark + /// color's alpha is not used. Color getDarkColor() { final color = _bindings.spine_slot_data_get_dark_color(_data); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -1088,6 +1096,7 @@ class SlotData { _bindings.spine_slot_data_set_dark_color(_data, r, g, b, a); } + /// Returns whether this slot has a dark color set for two color tinting. bool hasDarkColor() { return _bindings.spine_slot_data_has_dark_color(_data) == -1; } @@ -1096,6 +1105,7 @@ class SlotData { _bindings.spine_slot_data_set_has_dark_color(_data, hasDarkColor ? -1 : 0); } + /// The name of the attachment that is visible for this slot in the setup pose, or null if no attachment is visible. String getAttachmentName() { final Pointer value = _bindings.spine_slot_data_get_attachment_name(_data).cast(); return value.toDartString(); @@ -1107,6 +1117,7 @@ class SlotData { _allocator.free(nativeName); } + /// The [BlendMode] for drawing the slot's attachment. BlendMode getBlendMode() { return BlendMode.values[_bindings.spine_slot_data_get_blend_mode(_data)]; } @@ -1121,27 +1132,36 @@ class SlotData { } } +/// Stores a slot's current pose. Slots organize attachments for [Skeleton.getDrawOrder] purposes and provide a place to store +/// state for an attachment. State cannot be stored in an attachment itself because attachments are stateless and may be shared +/// across multiple skeletons. class Slot { final spine_slot _slot; Slot._(this._slot); + /// Sets this slot to the setup pose. void setToSetupPose() { _bindings.spine_slot_set_to_setup_pose(_slot); } + /// The slot's setup pose data. SlotData getData() { return SlotData._(_bindings.spine_slot_get_data(_slot)); } + /// The bone this slot belongs to. Bone getBone() { return Bone._(_bindings.spine_slot_get_bone(_slot)); } + /// The skeleton this slot belongs to. Skeleton getSkeleton() { return Skeleton._(_bindings.spine_slot_get_skeleton(_slot)); } + /// The color used to tint the slot's attachment. If [hasDarkColor] is true, this is used as the light color for two + /// color tinting. Color getColor() { final color = _bindings.spine_slot_get_color(_slot); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -1152,6 +1172,8 @@ class Slot { _bindings.spine_slot_set_color(_slot, color.r, color.g, color.b, color.a); } + /// The dark color used to tint the slot's attachment for two color tinting, if [hasDarkColor] is true. The dark + /// color's alpha is not used. Color getDarkColor() { final color = _bindings.spine_slot_get_dark_color(_slot); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -1162,10 +1184,12 @@ class Slot { _bindings.spine_slot_set_dark_color(_slot, color.r, color.g, color.b, color.a); } + /// Returns whether this slot has a dark color set for two color tinting. bool hasDarkColor() { return _bindings.spine_slot_has_dark_color(_slot) == -1; } + /// The current attachment for the slot, or null if the slot has no attachment. Attachment? getAttachment() { final attachment = _bindings.spine_slot_get_attachment(_slot); if (attachment.address == nullptr.address) return null; @@ -1181,6 +1205,8 @@ class Slot { return getData().getName(); } + /// The index of the texture region to display when the slot's attachment has a [Sequence]. -1 represents the + /// [Sequence.getSetupIndex]. int getSequenceIndex() { return _bindings.spine_slot_get_sequence_index(_slot); } @@ -1190,6 +1216,8 @@ class Slot { } } +/// A region within a texture, given in normalized texture coordinates of the top left ([getU], [getV]) and +/// bottom left ([getU2], [getV2]) corner of the region within the texture. class TextureRegion { final spine_texture_region _region; @@ -1292,6 +1320,7 @@ class TextureRegion { } } +/// Stores a sequence of [TextureRegion] instances that will switched through when set on an attachment. class Sequence { final spine_sequence _sequence; @@ -1353,6 +1382,7 @@ class Sequence { } } +/// Attachment types. enum AttachmentType { region(0), mesh(1), @@ -1366,16 +1396,19 @@ enum AttachmentType { const AttachmentType(this.value); } +/// The base class for all attachments. abstract class Attachment { final T _attachment; Attachment._(this._attachment); + /// The attachment's name. String getName() { Pointer name = _bindings.spine_attachment_get_name(_attachment.cast()).cast(); return name.toString(); } + /// The attachment's type. AttachmentType getType() { final type = _bindings.spine_attachment_get_type(_attachment.cast()); return AttachmentType.values[type]; @@ -1399,6 +1432,8 @@ abstract class Attachment { } } + /// Returns a copy of the attachment. Copied attachments need to be disposed manually + /// when no longer in use via the [dispose] method. Attachment copy() { return _toSubclass(_bindings.spine_attachment_copy(_attachment.cast())); } @@ -1408,9 +1443,17 @@ abstract class Attachment { } } +/// An attachment that displays a textured quadrilateral. +/// +/// See [Region attachments](http://esotericsoftware.com/spine-regions) in the Spine User Guide. class RegionAttachment extends Attachment { RegionAttachment._(spine_region_attachment attachment) : super._(attachment); + /// Transforms and returns the attachment's four vertices to world coordinates. If the attachment has a [Sequence], the region may + /// be changed. + /// + /// See [World transforms](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine + /// Runtimes Guide. List computeWorldVertices(Slot slot) { Pointer vertices = _allocator.allocate(4 * 8).cast(); _bindings.spine_region_attachment_compute_world_vertices(_attachment, slot._slot, vertices); @@ -1419,6 +1462,7 @@ class RegionAttachment extends Attachment { return result; } + /// The local x translation. double getX() { return _bindings.spine_region_attachment_get_x(_attachment); } @@ -1427,6 +1471,7 @@ class RegionAttachment extends Attachment { _bindings.spine_region_attachment_set_x(_attachment, x); } + /// The local y translation. double getY() { return _bindings.spine_region_attachment_get_y(_attachment); } @@ -1435,6 +1480,7 @@ class RegionAttachment extends Attachment { _bindings.spine_region_attachment_set_y(_attachment, y); } + /// The local rotation. double getRotation() { return _bindings.spine_region_attachment_get_rotation(_attachment); } @@ -1443,6 +1489,7 @@ class RegionAttachment extends Attachment { _bindings.spine_region_attachment_set_rotation(_attachment, rotation); } + /// The local scaleX. double getScaleX() { return _bindings.spine_region_attachment_get_scale_x(_attachment); } @@ -1451,6 +1498,7 @@ class RegionAttachment extends Attachment { _bindings.spine_region_attachment_set_scale_x(_attachment, scaleX); } + /// The local scaleY. double getScaleY() { return _bindings.spine_region_attachment_get_scale_y(_attachment); } @@ -1459,6 +1507,7 @@ class RegionAttachment extends Attachment { _bindings.spine_region_attachment_set_scale_x(_attachment, scaleY); } + /// The width of the region attachment in Spine. double getWidth() { return _bindings.spine_region_attachment_get_width(_attachment); } @@ -1467,6 +1516,7 @@ class RegionAttachment extends Attachment { _bindings.spine_region_attachment_set_width(_attachment, width); } + /// The height of the region attachment in Spine. double getHeight() { return _bindings.spine_region_attachment_get_height(_attachment); } @@ -1502,6 +1552,9 @@ class RegionAttachment extends Attachment { return Sequence._(sequence); } + /// For each of the 4 vertices, a pair of `x,y` values that is the local position of the vertex. + /// + /// See [updateRegion]. Float32List getOffset() { final num = _bindings.spine_region_attachment_get_num_offset(_attachment); final offset = _bindings.spine_region_attachment_get_offset(_attachment); @@ -1515,9 +1568,16 @@ class RegionAttachment extends Attachment { } } +/// Base class for an attachment with vertices that are transformed by one or more bones and can be deformed by a slot's +/// [Slot.getDeform]. class VertexAttachment extends Attachment { VertexAttachment._(T attachment) : super._(attachment); + /// Transforms and returns the attachment's local [getVertices] to world coordinates. If the slot's [Slot.getDeform] is + /// not empty, it is used to deform the vertices. + + /// See [World transforms](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine + /// Runtimes Guide. List computeWorldVertices(Slot slot) { final worldVerticesLength = _bindings.spine_vertex_attachment_get_world_vertices_length(_attachment.cast()); Pointer vertices = _allocator.allocate(4 * worldVerticesLength).cast(); @@ -1527,18 +1587,26 @@ class VertexAttachment extends Attachment { return result; } + /// The bones which affect the [getVertices]. The array entries are, for each vertex, the number of bones affecting + /// the vertex followed by that many bone indices, which is the index of the bone in [Skeleton.getBones]. Will be null + /// if this attachment has no weights. Int32List getBones() { final num = _bindings.spine_vertex_attachment_get_num_bones(_attachment.cast()); final bones = _bindings.spine_vertex_attachment_get_bones(_attachment.cast()); return bones.asTypedList(num); } + /// The vertex positions in the bone's coordinate system. For a non-weighted attachment, the values are `x,y` + /// entries for each vertex. For a weighted attachment, the values are `x,y,weight` entries for each bone affecting + /// each vertex. Float32List getVertices() { final num = _bindings.spine_vertex_attachment_get_num_vertices(_attachment.cast()); final vertices = _bindings.spine_vertex_attachment_get_vertices(_attachment.cast()); return vertices.asTypedList(num); } + /// Timelines for the timeline attachment are also applied to this attachment. May return `null` if not + /// attachment-specific timelines should be applied. Attachment? getTimelineAttachment() { final attachment = _bindings.spine_vertex_attachment_get_timeline_attachment(_attachment.cast()); if (_attachment.address == nullptr.address) return null; @@ -1551,13 +1619,20 @@ class VertexAttachment extends Attachment { } } +/// An attachment that displays a textured mesh. A mesh has hull vertices and internal vertices within the hull. Holes are not +/// supported. Each vertex has UVs (texture coordinates) and triangles are used to map an image on to the mesh. +/// +/// See [Mesh attachments](http://esotericsoftware.com/spine-meshes) in the Spine User Guide. class MeshAttachment extends VertexAttachment { MeshAttachment._(spine_mesh_attachment attachment) : super._(attachment.cast()); + /// Calculates texture coordinates returned by [getUVs] using the coordinates returned by [getRegionUVs] and region. Must be called if + /// the region, the region's properties, or the [getRegionUVs] are changed. void updateRegion() { _bindings.spine_mesh_attachment_update_region(_attachment); } + /// The number of entries at the beginning of {@link #vertices} that make up the mesh hull. int getHullLength() { return _bindings.spine_mesh_attachment_get_hull_length(_attachment); } @@ -1566,18 +1641,23 @@ class MeshAttachment extends VertexAttachment { _bindings.spine_mesh_attachment_set_hull_length(_attachment, hullLength); } + /// The UV pair for each vertex, normalized within the texture region. Float32List getRegionUVs() { final num = _bindings.spine_mesh_attachment_get_num_region_uvs(_attachment); final uvs = _bindings.spine_mesh_attachment_get_region_uvs(_attachment); return uvs.asTypedList(num); } + /// The UV pair for each vertex, normalized within the entire texture. + /// + /// See [updateRegion]. Float32List getUVs() { final num = _bindings.spine_mesh_attachment_get_num_uvs(_attachment); final uvs = _bindings.spine_mesh_attachment_get_uvs(_attachment); return uvs.asTypedList(num); } + /// Triplets of vertex indices which describe the mesh's triangulation. Uint16List getTriangles() { final num = _bindings.spine_mesh_attachment_get_num_triangles(_attachment); final triangles = _bindings.spine_mesh_attachment_get_triangles(_attachment); @@ -1611,6 +1691,9 @@ class MeshAttachment extends VertexAttachment { return Sequence._(sequence); } + /// The parent mesh if this is a linked mesh, else null. A linked mesh shares the bones, vertices, + /// region UVs, triangles, hull length, edges, width, and height with the + /// parent mesh, but may have a different name or path (and therefore a different texture). MeshAttachment? getParentMesh() { final parent = _bindings.spine_mesh_attachment_get_parent_mesh(_attachment); if (parent.address == nullptr.address) return null; @@ -1621,12 +1704,15 @@ class MeshAttachment extends VertexAttachment { _bindings.spine_mesh_attachment_set_parent_mesh(_attachment, parentMesh == null ? nullptr : parentMesh._attachment); } + /// Vertex index pairs describing edges for controlling triangulation, or be null if nonessential data was not exported. Mesh + /// triangles will never cross edges. Triangulation is not performed at runtime. Uint16List getEdges() { final num = _bindings.spine_mesh_attachment_get_num_edges(_attachment); final edges = _bindings.spine_mesh_attachment_get_edges(_attachment); return edges.asTypedList(num); } + /// The width of the mesh's image, or zero if nonessential data was not exported. double getWidth() { return _bindings.spine_mesh_attachment_get_width(_attachment); } @@ -1635,6 +1721,7 @@ class MeshAttachment extends VertexAttachment { _bindings.spine_mesh_attachment_set_width(_attachment, width); } + /// The height of the mesh's image, or zero if nonessential data was not exported. double getHeight() { return _bindings.spine_mesh_attachment_get_height(_attachment); } @@ -1644,9 +1731,12 @@ class MeshAttachment extends VertexAttachment { } } +/// An attachment with vertices that make up a polygon used for clipping the rendering of other attachments. class ClippingAttachment extends VertexAttachment { ClippingAttachment._(spine_clipping_attachment attachment) : super._(attachment.cast()); + /// Clipping is performed between the clipping attachment's slot and the end slot. If null clipping is done until the end of + /// the skeleton's rendering. SlotData? getEndSlot() { final endSlot = _bindings.spine_clipping_attachment_get_end_slot(_attachment); if (endSlot.address == nullptr.address) return null; @@ -1657,6 +1747,8 @@ class ClippingAttachment extends VertexAttachment { _bindings.spine_clipping_attachment_set_end_slot(_attachment, endSlot == null ? nullptr : endSlot._data); } + /// The color of the clipping attachment as it was in Spine, or a default color if nonessential data was not exported. Clipping + /// attachments are not usually rendered at runtime. Color getColor() { final color = _bindings.spine_clipping_attachment_get_color(_attachment); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -1668,9 +1760,16 @@ class ClippingAttachment extends VertexAttachment { } } +/// An attachment with vertices that make up a polygon. Can be used for hit detection, creating physics bodies, spawning particle +/// effects, and more. +/// +/// See [SkeletonBounds] and [Bounding boxes](http://esotericsoftware.com/spine-bounding-boxes) in the Spine User +/// Guide. class BoundingBoxAttachment extends VertexAttachment { BoundingBoxAttachment._(spine_bounding_box_attachment attachment) : super._(attachment); + /// The color of the bounding box as it was in Spine, or a default color if nonessential data was not exported. Bounding boxes + /// are not usually rendered at runtime. Color getColor() { final color = _bindings.spine_bounding_box_attachment_get_color(_attachment); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -1682,15 +1781,20 @@ class BoundingBoxAttachment extends VertexAttachment { PathAttachment._(spine_path_attachment attachment) : super._(attachment); + /// The lengths along the path in the setup pose from the start of the path to the end of each Bezier curve. Float32List getLengths() { final num = _bindings.spine_path_attachment_get_num_lengths(_attachment); final lengths = _bindings.spine_path_attachment_get_lengths(_attachment); return lengths.asTypedList(num); } + /// If true, the start and end knots are connected. bool isClosed() { return _bindings.spine_path_attachment_get_is_closed(_attachment) == -1; } @@ -1699,6 +1803,8 @@ class PathAttachment extends VertexAttachment { _bindings.spine_path_attachment_set_is_closed(_attachment, isClosed ? -1 : 0); } + /// If true, additional calculations are performed to make computing positions along the path more accurate and movement along + /// the path have a constant speed. bool isConstantSpeed() { return _bindings.spine_path_attachment_get_is_constant_speed(_attachment) == -1; } @@ -1707,6 +1813,8 @@ class PathAttachment extends VertexAttachment { _bindings.spine_path_attachment_set_is_constant_speed(_attachment, isClosed ? -1 : 0); } + /// The color of the path as it was in Spine, or a default color if nonessential data was not exported. Paths are not usually + /// rendered at runtime. Color getColor() { final color = _bindings.spine_path_attachment_get_color(_attachment); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -1718,6 +1826,11 @@ class PathAttachment extends VertexAttachment { } } +/// An attachment which is a single point and a rotation. This can be used to spawn projectiles, particles, etc. A bone can be +/// used in similar ways, but a PointAttachment is slightly less expensive to compute and can be hidden, shown, and placed in a +/// skin. +/// +/// See [Point Attachments](http://esotericsoftware.com/spine-point-attachments) in the Spine User Guide. class PointAttachment extends Attachment { PointAttachment._(spine_point_attachment attachment) : super._(attachment); @@ -1756,6 +1869,8 @@ class PointAttachment extends Attachment { _bindings.spine_point_attachment_set_x(_attachment, rotation); } + /// The color of the point attachment as it was in Spine, or a default clor if nonessential data was not exported. Point + /// attachments are not usually rendered at runtime. Color getColor() { final color = _bindings.spine_point_attachment_get_color(_attachment); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -1767,6 +1882,7 @@ class PointAttachment extends Attachment { } } +/// An entry storing the attachment to be used for a specific slot within [Skin]. class SkinEntry { final int slotIndex; final String name; @@ -1775,12 +1891,21 @@ class SkinEntry { SkinEntry(this.slotIndex, this.name, this.attachment); } +/// Stores attachments by slot index and attachment name. +/// +/// Skins constructed manually via the `Skin(String name)` constructor must be manually disposed via the [dipose] method if they +/// are no longer used. +/// +/// See [SkeletonData.defaultSkin], [Skeleton.getSkin}, and [Runtime skins](http://esotericsoftware.com/spine-runtime-skins) in the +/// Spine Runtimes Guide. class Skin { late final bool _isCustomSkin; late final spine_skin _skin; Skin._(this._skin) : _isCustomSkin = false; + /// Constructs a new empty skin using the given [name]. Skins constructed this way must be manually disposed via the [dispose] method + /// if they are no longer used. Skin(String name) { final nativeName = name.toNativeUtf8(allocator: _allocator); _skin = _bindings.spine_skin_create(nativeName.cast()); @@ -1788,17 +1913,20 @@ class Skin { _isCustomSkin = true; } + /// Diposes this skin. void dispose() { if (!_isCustomSkin) return; _bindings.spine_skin_dispose(_skin); } + /// Adds an attachment to the skin for the specified slot index and name. void setAttachment(int slotIndex, String name, Attachment? attachment) { final nativeName = name.toNativeUtf8(allocator: _allocator); _bindings.spine_skin_set_attachment(_skin, slotIndex, nativeName.cast(), attachment == null ? nullptr : attachment._attachment.cast()); _allocator.free(nativeName); } + /// Returns the attachment for the specified slot index and name, or null. Attachment? getAttachment(int slotIndex, String name) { final nativeName = name.toNativeUtf8(allocator: _allocator); final attachment = _bindings.spine_skin_get_attachment(_skin, slotIndex, nativeName.cast()); @@ -1807,21 +1935,25 @@ class Skin { return Attachment._toSubclass(attachment); } + /// Removes the attachment in the skin for the specified slot index and name, if any. void removeAttachment(int slotIndex, String name) { final nativeName = name.toNativeUtf8(allocator: _allocator); _bindings.spine_skin_remove_attachment(_skin, slotIndex, nativeName.cast()); _allocator.free(nativeName); } + /// The skin's name, which is unique across all skins in the skeleton. String getName() { Pointer name = _bindings.spine_skin_get_name(_skin).cast(); return name.toDartString(); } + /// Adds all attachments, bones, and constraints from the specified skin to this skin. void addSkin(Skin other) { _bindings.spine_skin_add_skin(_skin, other._skin); } + /// Returns all entries in this skin. List getEntries() { List result = []; final entries = _bindings.spine_skin_get_entries(_skin); @@ -1871,21 +2003,27 @@ class Skin { return constraints; } + /// Adds all bones and constraints and copies of all attachments from the specified skin to this skin. Mesh attachments are not + /// copied, instead a new linked mesh is created. The attachment copies can be modified without affecting the originals. void copy(Skin other) { _bindings.spine_skin_copy_skin(_skin, other._skin); } } +/// The base class for all constraint datas. class ConstraintData { final T _data; ConstraintData._(this._data); + /// The constraint's name, which is unique across all constraints in the skeleton of the same type. String getName() { final Pointer name = _bindings.spine_constraint_data_get_name(_data.cast()).cast(); return name.toDartString(); } + /// The ordinal of this constraint for the order a skeleton's constraints will be applied by + /// [Skeleton.updateWorldTransform]. int getOrder() { return _bindings.spine_constraint_data_get_order(_data.cast()); } @@ -1894,6 +2032,10 @@ class ConstraintData { _bindings.spine_constraint_data_set_order(_data.cast(), order); } + /// When true, [Skeleton.updateWorldTransform] only updates this constraint if the skin returned by [Skeleton.getSkin] contains + /// this constraint. + /// + /// See [Skin.getConstraints]. bool isSkinRequired() { return _bindings.spine_constraint_data_get_is_skin_required(_data.cast()) == 1; } @@ -1903,9 +2045,13 @@ class ConstraintData { } } +/// Stores the setup pose for an [IkConstraint]. +/// +/// See [IK constraints](http://esotericsoftware.com/spine-ik-constraints) in the Spine User Guide. class IkConstraintData extends ConstraintData { IkConstraintData._(spine_ik_constraint_data data) : super._(data); + /// The bones that are constrained by this IK constraint. List getBones() { final List result = []; final numBones = _bindings.spine_ik_constraint_data_get_num_bones(_data); @@ -1916,6 +2062,7 @@ class IkConstraintData extends ConstraintData { return result; } + /// The bone that is the IK target. BoneData getTarget() { return BoneData._(_bindings.spine_ik_constraint_data_get_target(_data)); } @@ -1924,6 +2071,7 @@ class IkConstraintData extends ConstraintData { _bindings.spine_ik_constraint_data_set_target(_data, target._data); } + /// For two bone IK, controls the bend direction of the IK bones, either 1 or -1. int getBendDirection() { return _bindings.spine_ik_constraint_data_get_bend_direction(_data); } @@ -1932,6 +2080,7 @@ class IkConstraintData extends ConstraintData { _bindings.spine_ik_constraint_data_set_bend_direction(_data, bendDirection); } + /// For one bone IK, when true and the target is too close, the bone is scaled to reach it. bool getCompress() { return _bindings.spine_ik_constraint_data_get_compress(_data) == -1; } @@ -1940,6 +2089,10 @@ class IkConstraintData extends ConstraintData { _bindings.spine_ik_constraint_data_set_compress(_data, compress ? -1 : 0); } + /// When true and the target is out of range, the parent bone is scaled to reach it. + /// + /// For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if [getSoftness] is + /// > 0, and 3) if the parent bone has local nonuniform scale, stretch is not applied. bool getStretch() { return _bindings.spine_ik_constraint_data_get_stretch(_data) == -1; } @@ -1948,6 +2101,7 @@ class IkConstraintData extends ConstraintData { _bindings.spine_ik_constraint_data_set_stretch(_data, stretch ? -1 : 0); } + /// When true and [getCompress] or [getStretch] is used, the bone is scaled on both the X and Y axes. bool getUniform() { return _bindings.spine_ik_constraint_data_get_uniform(_data) == -1; } @@ -1956,6 +2110,9 @@ class IkConstraintData extends ConstraintData { _bindings.spine_ik_constraint_data_set_uniform(_data, uniform ? -1 : 0); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + /// + /// For two bone IK: if the parent bone has local nonuniform scale, the child bone's local Y translation is set to 0. double getMix() { return _bindings.spine_ik_constraint_data_get_mix(_data); } @@ -1964,6 +2121,8 @@ class IkConstraintData extends ConstraintData { _bindings.spine_ik_constraint_data_set_mix(_data, mix); } + /// For two bone IK, the target bone's distance from the maximum reach of the bones where rotation begins to slow. The bones + /// will not straighten completely until the target is this far out of range. double getSoftness() { return _bindings.spine_ik_constraint_data_get_softness(_data); } @@ -1973,11 +2132,16 @@ class IkConstraintData extends ConstraintData { } } +/// Stores the current pose for an IK constraint. An IK constraint adjusts the rotation of 1 or 2 constrained bones so the tip of +/// the last bone is as close to the target bone as possible. +///

+/// See IK constraints in the Spine User Guide. class IkConstraint { final spine_ik_constraint _constraint; IkConstraint._(this._constraint); + /// Applies the constraint to the constrained bones. void update() { _bindings.spine_ik_constraint_update(_constraint); } @@ -1986,10 +2150,12 @@ class IkConstraint { return _bindings.spine_ik_constraint_get_order(_constraint); } + /// The IK constraint's setup pose data. IkConstraintData getData() { return IkConstraintData._(_bindings.spine_ik_constraint_get_data(_constraint)); } + /// The bones that will be modified by this IK constraint. List getBones() { List result = []; final num = _bindings.spine_ik_constraint_get_num_bones(_constraint); @@ -2000,6 +2166,7 @@ class IkConstraint { return result; } + /// The bone that is the IK target. Bone getTarget() { return Bone._(_bindings.spine_ik_constraint_get_target(_constraint)); } @@ -2008,6 +2175,7 @@ class IkConstraint { _bindings.spine_ik_constraint_set_target(_constraint, target._bone); } + /// For two bone IK, controls the bend direction of the IK bones, either 1 or -1. int getBendDirection() { return _bindings.spine_ik_constraint_get_bend_direction(_constraint); } @@ -2016,6 +2184,7 @@ class IkConstraint { _bindings.spine_ik_constraint_set_bend_direction(_constraint, bendDirection); } + /// For one bone IK, when true and the target is too close, the bone is scaled to reach it. bool getCompress() { return _bindings.spine_ik_constraint_get_compress(_constraint) == -1; } @@ -2024,6 +2193,10 @@ class IkConstraint { _bindings.spine_ik_constraint_set_compress(_constraint, compress ? -1 : 0); } + /// When true and the target is out of range, the parent bone is scaled to reach it. + /// + /// For two bone IK: 1) the child bone's local Y translation is set to 0, 2) stretch is not applied if [getSoftness] is + /// > 0, and 3) if the parent bone has local nonuniform scale, stretch is not applied. bool getStretch() { return _bindings.spine_ik_constraint_get_stretch(_constraint) == -1; } @@ -2032,6 +2205,9 @@ class IkConstraint { _bindings.spine_ik_constraint_set_stretch(_constraint, stretch ? -1 : 0); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. + /// + /// For two bone IK: if the parent bone has local nonuniform scale, the child bone's local Y translation is set to 0. double getMix() { return _bindings.spine_ik_constraint_get_mix(_constraint); } @@ -2040,6 +2216,8 @@ class IkConstraint { _bindings.spine_ik_constraint_set_mix(_constraint, mix); } + /// For two bone IK, the target bone's distance from the maximum reach of the bones where rotation begins to slow. The bones + /// will not straighten completely until the target is this far out of range. double getSoftness() { return _bindings.spine_ik_constraint_get_softness(_constraint); } @@ -2057,9 +2235,13 @@ class IkConstraint { } } +/// Stores the setup pose for a {@link TransformConstraint}. +/// +/// See [Transform constraints](http://esotericsoftware.com/spine-transform-constraints) in the Spine User Guide. class TransformConstraintData extends ConstraintData { TransformConstraintData._(spine_transform_constraint_data data) : super._(data); + /// The bones that will be modified by this transform constraint. List getBones() { final List result = []; final numBones = _bindings.spine_transform_constraint_data_get_num_bones(_data); @@ -2070,6 +2252,7 @@ class TransformConstraintData extends ConstraintData getBones() { List result = []; final num = _bindings.spine_transform_constraint_get_num_bones(_constraint); @@ -2218,6 +2421,7 @@ class TransformConstraint { return result; } + /// The target bone whose world transform will be copied to the constrained bones. Bone getTarget() { return Bone._(_bindings.spine_transform_constraint_get_target(_constraint)); } @@ -2226,6 +2430,7 @@ class TransformConstraint { _bindings.spine_transform_constraint_set_target(_constraint, target._bone); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. double getMixRotate() { return _bindings.spine_transform_constraint_get_mix_rotate(_constraint); } @@ -2234,6 +2439,7 @@ class TransformConstraint { _bindings.spine_transform_constraint_set_mix_rotate(_constraint, mixRotate); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained translation X. double getMixX() { return _bindings.spine_transform_constraint_get_mix_x(_constraint); } @@ -2242,6 +2448,7 @@ class TransformConstraint { _bindings.spine_transform_constraint_set_mix_x(_constraint, mixX); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. double getMixY() { return _bindings.spine_transform_constraint_get_mix_y(_constraint); } @@ -2250,6 +2457,7 @@ class TransformConstraint { _bindings.spine_transform_constraint_set_mix_y(_constraint, mixY); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained scale X. double getMixScaleX() { return _bindings.spine_transform_constraint_get_mix_scale_x(_constraint); } @@ -2258,6 +2466,7 @@ class TransformConstraint { _bindings.spine_transform_constraint_set_mix_scale_x(_constraint, mixScaleX); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained scale X. double getMixScaleY() { return _bindings.spine_transform_constraint_get_mix_scale_y(_constraint); } @@ -2266,6 +2475,7 @@ class TransformConstraint { _bindings.spine_transform_constraint_set_mix_scale_y(_constraint, mixScaleY); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained shear Y. double getMixShearY() { return _bindings.spine_transform_constraint_get_mix_shear_y(_constraint); } @@ -2283,9 +2493,13 @@ class TransformConstraint { } } +/// Stores the setup pose for a [PathConstraint]. +/// +/// See [Path constraints](http://esotericsoftware.com/spine-path-constraints) in the Spine User Guide. class PathConstraintData extends ConstraintData { PathConstraintData._(spine_path_constraint_data data) : super._(data); + /// The bones that will be modified by this path constraint. List getBones() { final List result = []; final numBones = _bindings.spine_path_constraint_data_get_num_bones(_data); @@ -2296,6 +2510,7 @@ class PathConstraintData extends ConstraintData { return result; } + /// The slot whose path attachment will be used to constrained the bones. SlotData getTarget() { return SlotData._(_bindings.spine_path_constraint_data_get_target(_data)); } @@ -2304,6 +2519,7 @@ class PathConstraintData extends ConstraintData { _bindings.spine_path_constraint_data_set_target(_data, target._data); } + /// The mode for positioning the first bone on the path. PositionMode getPositionMode() { return PositionMode.values[_bindings.spine_path_constraint_data_get_position_mode(_data)]; } @@ -2312,6 +2528,7 @@ class PathConstraintData extends ConstraintData { _bindings.spine_path_constraint_data_set_position_mode(_data, positionMode.value); } + /// The mode for positioning the bones after the first bone on the path. SpacingMode getSpacingMode() { return SpacingMode.values[_bindings.spine_path_constraint_data_get_spacing_mode(_data)]; } @@ -2320,6 +2537,7 @@ class PathConstraintData extends ConstraintData { _bindings.spine_path_constraint_data_set_spacing_mode(_data, spacingMode.value); } + /// The mode for adjusting the rotation of the bones. RotateMode getRotateMode() { return RotateMode.values[_bindings.spine_path_constraint_data_get_rotate_mode(_data)]; } @@ -2328,6 +2546,7 @@ class PathConstraintData extends ConstraintData { _bindings.spine_path_constraint_data_set_rotate_mode(_data, rotateMode.value); } + /// An offset added to the constrained bone rotation. double getOffsetRotation() { return _bindings.spine_path_constraint_data_get_offset_rotation(_data); } @@ -2336,6 +2555,7 @@ class PathConstraintData extends ConstraintData { _bindings.spine_path_constraint_data_set_offset_rotation(_data, offsetRotation); } + /// The position along the path. double getPosition() { return _bindings.spine_path_constraint_data_get_position(_data); } @@ -2344,6 +2564,7 @@ class PathConstraintData extends ConstraintData { _bindings.spine_path_constraint_data_set_position(_data, position); } + /// The spacing between bones. double getSpacing() { return _bindings.spine_path_constraint_data_get_spacing(_data); } @@ -2352,6 +2573,7 @@ class PathConstraintData extends ConstraintData { _bindings.spine_path_constraint_data_set_spacing(_data, spacing); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. double getMixRotate() { return _bindings.spine_path_constraint_data_get_mix_rotate(_data); } @@ -2360,6 +2582,7 @@ class PathConstraintData extends ConstraintData { _bindings.spine_path_constraint_data_set_mix_rotate(_data, mixRotate); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained translation X. double getMixX() { return _bindings.spine_path_constraint_data_get_mix_x(_data); } @@ -2368,6 +2591,7 @@ class PathConstraintData extends ConstraintData { _bindings.spine_path_constraint_data_set_mix_x(_data, mixX); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. double getMixY() { return _bindings.spine_path_constraint_data_get_mix_x(_data); } @@ -2377,11 +2601,16 @@ class PathConstraintData extends ConstraintData { } } +/// Stores the current pose for a path constraint. A path constraint adjusts the rotation, translation, and scale of the +/// constrained bones so they follow a [PathAttachment]. +/// +/// See [Path constraints](http://esotericsoftware.com/spine-path-constraints) in the Spine User Guide. class PathConstraint { final spine_path_constraint _constraint; PathConstraint._(this._constraint); + /// Applies the constraint to the constrained bones. void update() { _bindings.spine_path_constraint_update(_constraint); } @@ -2390,6 +2619,7 @@ class PathConstraint { return _bindings.spine_path_constraint_get_order(_constraint); } + /// The bones that will be modified by this path constraint. List getBones() { List result = []; final num = _bindings.spine_path_constraint_get_num_bones(_constraint); @@ -2400,6 +2630,7 @@ class PathConstraint { return result; } + /// The slot whose path attachment will be used to constrained the bones. Slot getTarget() { return Slot._(_bindings.spine_path_constraint_get_target(_constraint)); } @@ -2408,6 +2639,7 @@ class PathConstraint { _bindings.spine_path_constraint_set_target(_constraint, target._slot); } + /// The position along the path. double getPosition() { return _bindings.spine_path_constraint_get_position(_constraint); } @@ -2416,6 +2648,7 @@ class PathConstraint { _bindings.spine_path_constraint_set_position(_constraint, position); } + /// The spacing between bones. double getSpacing() { return _bindings.spine_path_constraint_get_spacing(_constraint); } @@ -2424,6 +2657,7 @@ class PathConstraint { _bindings.spine_path_constraint_set_spacing(_constraint, spacing); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained rotation. double getMixRotate() { return _bindings.spine_path_constraint_get_mix_rotate(_constraint); } @@ -2432,6 +2666,7 @@ class PathConstraint { _bindings.spine_path_constraint_set_mix_rotate(_constraint, mixRotate); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained translation X. double getMixX() { return _bindings.spine_path_constraint_get_mix_x(_constraint); } @@ -2440,6 +2675,7 @@ class PathConstraint { _bindings.spine_path_constraint_set_mix_x(_constraint, mixX); } + /// A percentage (0-1) that controls the mix between the constrained and unconstrained translation Y. double getMixY() { return _bindings.spine_path_constraint_get_mix_y(_constraint); } @@ -2457,27 +2693,39 @@ class PathConstraint { } } +/// Stores the current pose for a skeleton. +/// +/// See [Instance objects](http://esotericsoftware.com/spine-runtime-architecture#Instance-objects) in the Spine +/// Runtimes Guide. class Skeleton { final spine_skeleton _skeleton; Skeleton._(this._skeleton); - /// Caches information about bones and constraints. Must be called if bones, constraints or weighted path attachments are added - /// or removed. + /// Caches information about bones and constraints. Must be called if the [getSkin] is modified or if bones, + /// constraints, or weighted path attachments are added or removed. void updateCache() { _bindings.spine_skeleton_update_cache(_skeleton); } - /// Updates the world transform for each bone and applies constraints. + /// Updates the world transform for each bone and applies all constraints. + /// + /// See [World transforms](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine + /// Runtimes Guide. void updateWorldTransform() { _bindings.spine_skeleton_update_world_transform(_skeleton); } + /// Temporarily sets the root bone as a child of the specified bone, then updates the world transform for each bone and applies + /// all constraints. + /// + /// See [World transforms](http://esotericsoftware.com/spine-runtime-skeletons#World-transforms) in the Spine + /// Runtimes Guide. void updateWorldTransformBone(Bone parent) { _bindings.spine_skeleton_update_world_transform_bone(_skeleton, parent._bone); } - /// Sets the bones, constraints, and slots to their setup pose values. + /// Sets the bones, constraints, slots, and draw order to their setup pose values. void setToSetupPose() { _bindings.spine_skeleton_set_to_setup_pose(_skeleton); } @@ -2487,10 +2735,13 @@ class Skeleton { _bindings.spine_skeleton_set_bones_to_setup_pose(_skeleton); } + /// Sets the slots and draw order to their setup pose values. void setSlotsToSetupPose() { _bindings.spine_skeleton_set_slots_to_setup_pose(_skeleton); } + /// Finds a bone by comparing each bone's name. It is more efficient to cache the results of this method than to call it + /// repeatedly. Bone? findBone(String boneName) { final nameNative = boneName.toNativeUtf8(allocator: _allocator); final bone = _bindings.spine_skeleton_find_bone(_skeleton, nameNative.cast()); @@ -2499,6 +2750,8 @@ class Skeleton { return Bone._(bone); } + /// Finds a slot by comparing each slot's name. It is more efficient to cache the results of this method than to call it + /// repeatedly. Slot? findSlot(String slotName) { final nameNative = slotName.toNativeUtf8(allocator: _allocator); final slot = _bindings.spine_skeleton_find_slot(_skeleton, nameNative.cast()); @@ -2507,23 +2760,35 @@ class Skeleton { return Slot._(slot); } - /// Attachments from the new skin are attached if the corresponding attachment from the old skin was attached. - /// If there was no old skin, each slot's setup mode attachment is attached from the new skin. - /// After changing the skin, the visible attachments can be reset to those attached in the setup pose by calling - /// See Skeleton::setSlotsToSetupPose() - /// Also, often AnimationState::apply(Skeleton&) is called before the next time the - /// skeleton is rendered to allow any attachment keys in the current animation(s) to hide or show attachments from the new skin. - /// @param skinName May be NULL. + + /// Sets a skin by name. + /// + /// See [setSkin]. void setSkinByName(String skinName) { final nameNative = skinName.toNativeUtf8(allocator: _allocator); _bindings.spine_skeleton_set_skin_by_name(_skeleton, nameNative.cast()); _allocator.free(nameNative); } + + /// Sets the skin used to look up attachments before looking in the default skin (see [SkeletonData.getDefaultSkin]). If the + /// skin is changed, [updateCache] is called. + /// + /// Attachments from the new skin are attached if the corresponding attachment from the old skin was attached. If there was no + /// old skin, each slot's setup mode attachment is attached from the new skin. + /// + /// After changing the skin, the visible attachments can be reset to those attached in the setup pose by calling + /// [setSlotsToSetupPose]. Also, often [AnimationState.apply] is called before the next time the + /// skeleton is rendered to allow any attachment keys in the current animation(s) to hide or show attachments from the new + /// skin. void setSkin(Skin skin) { _bindings.spine_skeleton_set_skin(_skeleton, skin._skin); } + /// Finds an attachment by looking in the currently set skin (see [getSkin]) and default skin (see [SkeletonData.getDefaultSkin]) using + /// the slot name and attachment name. + /// + /// See [getAttachment]. Attachment? getAttachmentByName(String slotName, String attachmentName) { final slotNameNative = slotName.toNativeUtf8(allocator: _allocator); final attachmentNameNative = attachmentName.toNativeUtf8(allocator: _allocator); @@ -2534,6 +2799,10 @@ class Skeleton { return Attachment._toSubclass(attachment); } + /// Finds an attachment by looking in the currently set skin (see [getSkin]) and default skin (see [SkeletonData.getDefaultSkin]) using the + /// slot index and attachment name. First the skin is checked and if the attachment was not found, the default skin is checked. + /// + /// See [Runtime skins](http://esotericsoftware.com/spine-runtime-skins) in the Spine Runtimes Guide. Attachment? getAttachment(int slotIndex, String attachmentName) { final attachmentNameNative = attachmentName.toNativeUtf8(allocator: _allocator); final attachment = _bindings.spine_skeleton_get_attachment(_skeleton, slotIndex, attachmentNameNative.cast()); @@ -2542,6 +2811,8 @@ class Skeleton { return Attachment._toSubclass(attachment); } + /// A convenience method to set an attachment by finding the slot with [findSlot], finding the attachment with + /// [getAttachment], then setting the slot's attachment. The [attachmentName] may be an empty string to clear the slot's attachment. void setAttachment(String slotName, String attachmentName) { final slotNameNative = slotName.toNativeUtf8(allocator: _allocator); final attachmentNameNative = attachmentName.toNativeUtf8(allocator: _allocator); @@ -2550,6 +2821,8 @@ class Skeleton { _allocator.free(attachmentNameNative); } + /// Finds an IK constraint by comparing each IK constraint's name. It is more efficient to cache the results of this method + /// than to call it repeatedly. IkConstraint? findIkConstraint(String constraintName) { final nameNative = constraintName.toNativeUtf8(allocator: _allocator); final constraint = _bindings.spine_skeleton_find_ik_constraint(_skeleton, nameNative.cast()); @@ -2558,6 +2831,8 @@ class Skeleton { return IkConstraint._(constraint); } + /// Finds a transform constraint by comparing each transform constraint's name. It is more efficient to cache the results of + /// this method than to call it repeatedly. TransformConstraint? findTransformConstraint(String constraintName) { final nameNative = constraintName.toNativeUtf8(allocator: _allocator); final constraint = _bindings.spine_skeleton_find_transform_constraint(_skeleton, nameNative.cast()); @@ -2566,6 +2841,8 @@ class Skeleton { return TransformConstraint._(constraint); } + /// Finds a path constraint by comparing each path constraint's name. It is more efficient to cache the results of this method + /// than to call it repeatedly. PathConstraint? findPathConstraint(String constraintName) { final nameNative = constraintName.toNativeUtf8(allocator: _allocator); final constraint = _bindings.spine_skeleton_find_path_constraint(_skeleton, nameNative.cast()); @@ -2575,11 +2852,6 @@ class Skeleton { } /// Returns the axis aligned bounding box (AABB) of the region and mesh attachments for the current pose. - /// @param outX The horizontal distance between the skeleton origin and the left side of the AABB. - /// @param outY The vertical distance between the skeleton origin and the bottom side of the AABB. - /// @param outWidth The width of the AABB - /// @param outHeight The height of the AABB. - /// @param outVertexBuffer Reference to hold a Vector of floats. This method will assign it with new floats as needed. Bounds getBounds() { final nativeBounds = _bindings.spine_skeleton_get_bounds(_skeleton); final bounds = Bounds(_bindings.spine_bounds_get_x(nativeBounds), _bindings.spine_bounds_get_y(nativeBounds), @@ -2588,18 +2860,21 @@ class Skeleton { return bounds; } + /// Returns the root bone, or null if the skeleton has no bones. Bone? getRootBone() { final bone = _bindings.spine_skeleton_get_root_bone(_skeleton); if (bone.address == nullptr.address) return null; return Bone._(bone); } + /// The skeleton's setup pose data. SkeletonData? getData() { final data = _bindings.spine_skeleton_get_data(_skeleton); if (data.address == nullptr.address) return null; return SkeletonData._(data); } + /// The skeleton's bones, sorted parent first. The root bone is always the first bone. List getBones() { final List bones = []; final numBones = _bindings.spine_skeleton_get_num_bones(_skeleton); @@ -2610,6 +2885,7 @@ class Skeleton { return bones; } + /// The skeleton's slots. List getSlots() { final List slots = []; final numSlots = _bindings.spine_skeleton_get_num_slots(_skeleton); @@ -2620,6 +2896,7 @@ class Skeleton { return slots; } + /// The skeleton's slots in the order they should be drawn. The returned array may be modified to change the draw order. List getDrawOrder() { final List slots = []; final numSlots = _bindings.spine_skeleton_get_num_draw_order(_skeleton); @@ -2630,6 +2907,7 @@ class Skeleton { return slots; } + /// The skeleton's IK constraints. List getIkConstraints() { final List constraints = []; final numConstraints = _bindings.spine_skeleton_get_num_ik_constraints(_skeleton); @@ -2640,6 +2918,7 @@ class Skeleton { return constraints; } + /// The skeleton's path constraints. List getPathConstraints() { final List constraints = []; final numConstraints = _bindings.spine_skeleton_get_num_path_constraints(_skeleton); @@ -2650,6 +2929,7 @@ class Skeleton { return constraints; } + /// The skeleton's transform constraints. List getTransformConstraints() { final List constraints = []; final numConstraints = _bindings.spine_skeleton_get_num_transform_constraints(_skeleton); @@ -2660,12 +2940,14 @@ class Skeleton { return constraints; } + /// The skeleton's current skin. Skin? getSkin() { final skin = _bindings.spine_skeleton_get_skin(_skeleton); if (skin.address == nullptr.address) return null; return Skin._(skin); } + /// The color to tint all the skeleton's attachments. Color getColor() { final color = _bindings.spine_skeleton_get_color(_skeleton); return Color(_bindings.spine_color_get_r(color), _bindings.spine_color_get_g(color), _bindings.spine_color_get_b(color), @@ -2676,10 +2958,16 @@ class Skeleton { _bindings.spine_skeleton_set_color(_skeleton, color.r, color.g, color.b, color.a); } + /// Sets the skeleton X and Y position, which is added to the root bone worldX and worldY position. + /// + /// Bones that do not inherit translation are still affected by this property. void setPosition(double x, double y) { _bindings.spine_skeleton_set_position(_skeleton, x, y); } + /// Sets the skeleton X position, which is added to the root bone worldX position. + /// + /// Bones that do not inherit translation are still affected by this property. double getX() { return _bindings.spine_skeleton_get_x(_skeleton); } @@ -2688,6 +2976,9 @@ class Skeleton { _bindings.spine_skeleton_set_x(_skeleton, x); } + /// Sets the skeleton Y position, which is added to the root bone worldY position. + ///

+ /// Bones that do not inherit translation are still affected by this property. double getY() { return _bindings.spine_skeleton_get_x(_skeleton); } @@ -2696,6 +2987,9 @@ class Skeleton { _bindings.spine_skeleton_set_y(_skeleton, y); } + /// Scales the entire skeleton on the X axis. + /// + /// Bones that do not inherit scale are still affected by this property. double getScaleX() { return _bindings.spine_skeleton_get_scale_x(_skeleton); } @@ -2704,6 +2998,9 @@ class Skeleton { _bindings.spine_skeleton_set_scale_x(_skeleton, scaleX); } + /// Scales the entire skeleton on the Y axis. + /// + /// Bones that do not inherit scale are still affected by this property. double getScaleY() { return _bindings.spine_skeleton_get_scale_x(_skeleton); } @@ -2713,25 +3010,48 @@ class Skeleton { } } +/// Stores a list of timelines to animate a skeleton's pose over time. class Animation { final spine_animation _animation; Animation._(this._animation); + /// The animation's name, which is unique across all animations in the skeleton. String getName() { final Pointer value = _bindings.spine_animation_get_name(_animation).cast(); return value.toDartString(); } + /// The duration of the animation in seconds, which is usually the highest time of all frames in the timeline. The duration is + /// used to know when it has completed and when it should loop back to the start. double getDuration() { return _bindings.spine_animation_get_duration(_animation); } } +/// Controls how timeline values are mixed with setup pose values or current pose values when a timeline is applied with +/// alpha < 1. enum MixBlend { + /// Transitions from the setup value to the timeline value (the current value is not used). Before the first frame, the + /// setup value is set. setup(0), + /// Transitions from the current value to the timeline value. Before the first frame, transitions from the current value to + /// the setup value. Timelines which perform instant transitions, such as {@link DrawOrderTimeline} or + /// {@link AttachmentTimeline}, use the setup value before the first frame. + ///

+ /// first is intended for the first animations applied, not for animations layered on top of those. first(1), + /// Transitions from the current value to the timeline value. No change is made before the first frame (the current value is + /// kept until the first frame). + ///

+ /// replace is intended for animations layered on top of others, not for the first animations applied. replace(2), + /// Transitions from the current value to the current value plus the timeline value. No change is made before the first + /// frame (the current value is kept until the first frame). + ///

+ /// add is intended for animations layered on top of others, not for the first animations applied. Properties + /// set by additive animations must be set manually or by another animation before applying the additive animations, else the + /// property values will increase each time the additive animations are applied. add(3); final int value; @@ -2739,13 +3059,18 @@ enum MixBlend { const MixBlend(this.value); } +/// Stores settings and other state for the playback of an animation on an [AnimationState] track. +/// +/// References to a track entry must not be kept after the dispose [EventType] is reported to [AnimationStateListener]. class TrackEntry { final spine_track_entry _entry; final AnimationState _state; TrackEntry._(this._entry, this._state); - /// The index of the track where this entry is either current or queued. + /// The index of the track where this track entry is either current or queued. + /// + /// See [AnimationState.getCurrent]. int getTtrackIndex() { return _bindings.spine_track_entry_get_track_index(_entry); } @@ -2755,7 +3080,8 @@ class TrackEntry { return Animation._(_bindings.spine_track_entry_get_animation(_entry)); } - /// If true, the animation will repeat. If false, it will not, instead its last frame is applied if played beyond its duration. + /// If true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its + /// duration. bool getLoop() { return _bindings.spine_track_entry_get_loop(_entry) == -1; } @@ -2764,17 +3090,17 @@ class TrackEntry { _bindings.spine_track_entry_set_loop(_entry, loop ? -1 : 0); } - /// If true, when mixing from the previous animation to this animation, the previous animation is applied as normal instead - /// of being mixed out. + + /// Seconds to postpone playing the animation. When this track entry is the current track entry, delay + /// postpones incrementing the [getTrackTime]. When this track entry is queued, delay is the time from + /// the start of the previous animation to when this track entry will become the current track entry (ie when the previous + /// track entry [getTrackTime] >= this track entry's delay). /// - /// When mixing between animations that key the same property, if a lower track also keys that property then the value will - /// briefly dip toward the lower track value during the mix. This happens because the first animation mixes from 100% to 0% - /// while the second animation mixes from 0% to 100%. Setting holdPrevious to true applies the first animation - /// at 100% during the mix so the lower track value is overwritten. Such dipping does not occur on the lowest track which - /// keys the property, only when a higher track also keys the property. + /// [getTimeScale] affects the delay. /// - /// Snapping will occur if holdPrevious is true and this animation does not key all the same properties as the - /// previous animation. + /// When using [AnimationState.addAnimation] with a delay <= 0, the delay + /// is set using the mix duration from the [AnimationStateData]. If [getMixDuration] is set afterward, the delay + /// may need to be adjusted. bool getHoldPrevious() { return _bindings.spine_track_entry_get_hold_previous(_entry) == -1; } @@ -2783,6 +3109,7 @@ class TrackEntry { _bindings.spine_track_entry_set_hold_previous(_entry, holdPrevious ? -1 : 0); } + /// If true, the animation will be applied in reverse. Events are not fired when an animation is applied in reverse. bool getReverse() { return _bindings.spine_track_entry_get_reverse(_entry) == -1; } @@ -2791,6 +3118,11 @@ class TrackEntry { _bindings.spine_track_entry_set_reverse(_entry, reverse ? -1 : 0); } + /// If true, mixing rotation between tracks always uses the shortest rotation direction. If the rotation is animated, the + /// shortest rotation direction may change during the mix. + /// + /// If false, the shortest rotation direction is remembered when the mix starts and the same direction is used for the rest + /// of the mix. Defaults to false. bool getShortestRotation() { return _bindings.spine_track_entry_get_shortest_rotation(_entry) == 1; } @@ -2799,9 +3131,16 @@ class TrackEntry { _bindings.spine_track_entry_set_shortest_rotation(_entry, shortestRotation ? -1 : 0); } - /// Seconds to postpone playing the animation. When a track entry is the current track entry, delay postpones incrementing - /// the track time. When a track entry is queued, delay is the time from the start of the previous animation to when the - /// track entry will become the current track entry. + /// Seconds to postpone playing the animation. When this track entry is the current track entry, delay + /// postpones incrementing the [getTrackTime]. When this track entry is queued, delay is the time from + /// the start of the previous animation to when this track entry will become the current track entry (ie when the previous + /// track entry [getTrackTime] >= this track entry's delay). + /// + /// [getTimeScale] affects the delay. + /// + /// When using [AnimationState.addAnimation] with a delay <= 0, the delay + /// is set using the mix duration from the [AnimationStateData]. If [getMixDuration] is set afterward, the delay + /// may need to be adjusted. double getDelay() { return _bindings.spine_track_entry_get_delay(_entry); } @@ -2811,7 +3150,8 @@ class TrackEntry { } /// Current time in seconds this track entry has been the current track entry. The track time determines - /// TrackEntry.AnimationTime. The track time can be set to start the animation at a time other than 0, without affecting looping. + /// [getAnimationTime]. The track time can be set to start the animation at a time other than 0, without affecting + /// looping. double getTrackTime() { return _bindings.spine_track_entry_get_track_time(_entry); } @@ -2820,13 +3160,13 @@ class TrackEntry { _bindings.spine_track_entry_set_track_time(_entry, trackTime); } - /// The track time in seconds when this animation will be removed from the track. Defaults to the animation duration for - /// non-looping animations and to int.MaxValue for looping animations. If the track end time is reached and no - /// other animations are queued for playback, and mixing from any previous animations is complete, properties keyed by the animation, - /// are set to the setup pose and the track is cleared. + /// The track time in seconds when this animation will be removed from the track. Defaults to the highest possible float + /// value, meaning the animation will be applied until a new animation is set or the track is cleared. If the track end time + /// is reached, no other animations are queued for playback, and mixing from any previous animations is complete, then the + /// properties keyed by the animation are set to the setup pose and the track is cleared. /// - /// It may be desired to use AnimationState.addEmptyAnimation(int, float, float) to mix the properties back to the - /// setup pose over time, rather than have it happen instantly. + /// It may be desired to use [AnimationState.addEmptyAnimation] rather than have the animation + /// abruptly cease being applied. double getTrackEnd() { return _bindings.spine_track_entry_get_track_end(_entry); } @@ -2837,8 +3177,8 @@ class TrackEntry { /// Seconds when this animation starts, both initially and after looping. Defaults to 0. /// - /// When changing the animation start time, it often makes sense to set TrackEntry.AnimationLast to the same value to - /// prevent timeline keys before the start time from triggering. + /// When changing the animationStart time, it often makes sense to set [getAnimationLast] to the same + /// value to prevent timeline keys before the start time from triggering. double getAnimationStart() { return _bindings.spine_track_entry_get_animation_start(_entry); } @@ -2848,7 +3188,7 @@ class TrackEntry { } /// Seconds for the last frame of this animation. Non-looping animations won't play past this time. Looping animations will - /// loop back to TrackEntry.AnimationStart at this time. Defaults to the animation duration. + /// loop back to [getAnimationStart] at this time. Defaults to the animation [Animation.getDuration]. double getAnimationEnd() { return _bindings.spine_track_entry_get_animation_end(_entry); } @@ -2858,8 +3198,9 @@ class TrackEntry { } /// The time in seconds this animation was last applied. Some timelines use this for one-time triggers. Eg, when this - /// animation is applied, event timelines will fire all events between the animation last time (exclusive) and animation time - /// (inclusive). Defaults to -1 to ensure triggers on frame 0 happen the first time this animation is applied. + /// animation is applied, event timelines will fire all events between the animationLast time (exclusive) and + /// animationTime (inclusive). Defaults to -1 to ensure triggers on frame 0 happen the first time this animation + /// is applied. double getAnimationLast() { return _bindings.spine_track_entry_get_animation_last(_entry); } @@ -2868,14 +3209,29 @@ class TrackEntry { _bindings.spine_track_entry_set_animation_last(_entry, animationLast); } - /// Uses TrackEntry.TrackTime to compute the animation time between TrackEntry.AnimationStart. and - /// TrackEntry.AnimationEnd. When the track time is 0, the animation time is equal to the animation start time. + /// Uses [getTrackTime] to compute the animationTime. When the trackTime is 0, the + /// animationTime is equal to the animationStart time. + ///

+ /// The animationTime is between [getAnimationStart] and [getAnimationEnd], except if this + /// track entry is non-looping and [getAnimationEnd] is >= to the animation [Animation.getDuration], then + /// animationTime continues to increase past [getAnimationEnd]. double getAnimationTime() { return _bindings.spine_track_entry_get_animation_time(_entry); } - /// Multiplier for the delta time when the animation state is updated, causing time for this animation to play slower or + /// Multiplier for the delta time when this track entry is updated, causing time for this animation to pass slower or /// faster. Defaults to 1. + /// + /// Values < 0 are not supported. To play an animation in reverse, use [getReverse]. + /// + /// [getMixTime] is not affected by track entry time scale, so [getMixDuration] may need to be adjusted to + /// match the animation speed. + /// + /// When using [AnimationState.addAnimation] with a delay <= 0, the + /// [getDelay] is set using the mix duration from the [AnimationStateData], assuming time scale to be 1. If + /// the time scale is not 1, the delay may need to be adjusted. + /// + /// See [AnimationState.getTimeScale] for affecting all animations. double getTimeScale() { return _bindings.spine_track_entry_get_time_scale(_entry); } @@ -2884,12 +3240,12 @@ class TrackEntry { _bindings.spine_track_entry_set_time_scale(_entry, timeScale); } - /// Values less than 1 mix this animation with the last skeleton pose. Defaults to 1, which overwrites the last skeleton pose with - /// this animation. + /// Values < 1 mix this animation with the skeleton's current pose (usually the pose resulting from lower tracks). Defaults + /// to 1, which overwrites the skeleton's current pose with this animation. /// - /// Typically track 0 is used to completely pose the skeleton, then alpha can be used on higher tracks. It doesn't make sense - /// to use alpha on track 0 if the skeleton pose is from the last frame render. - double getAlpha() { + /// Typically track 0 is used to completely pose the skeleton, then alpha is used on higher tracks. It doesn't make sense to + /// use alpha on track 0 if the skeleton pose is from the last frame render. + Future getAlpha() async { return _bindings.spine_track_entry_get_alpha(_entry); } @@ -2897,8 +3253,9 @@ class TrackEntry { _bindings.spine_track_entry_set_alpha(_entry, alpha); } - /// When the mix percentage (mix time / mix duration) is less than the event threshold, event timelines for the animation - /// being mixed out will be applied. Defaults to 0, so event timelines are not applied for an animation being mixed out. + /// When the mix percentage ([getMixTime] / [getMixDuration]) is less than the + /// eventThreshold, event timelines are applied while this animation is being mixed out. Defaults to 0, so event + /// timelines are not applied while this animation is being mixed out. double getEventThreshold() { return _bindings.spine_track_entry_get_event_threshold(_entry); } @@ -2907,9 +3264,9 @@ class TrackEntry { _bindings.spine_track_entry_set_event_threshold(_entry, eventThreshold); } - /// When the mix percentage (mix time / mix duration) is less than the attachment threshold, attachment timelines for the - /// animation being mixed out will be applied. Defaults to 0, so attachment timelines are not applied for an animation being - /// mixed out. + /// When the mix percentage ([getMixTime] / [getMixDuration]) is less than the + /// attachmentThreshold, attachment timelines are applied while this animation is being mixed out. Defaults to + /// 0, so attachment timelines are not applied while this animation is being mixed out. double getAttachmentThreshold() { return _bindings.spine_track_entry_get_attachment_threshold(_entry); } @@ -2918,9 +3275,9 @@ class TrackEntry { _bindings.spine_track_entry_set_attachment_threshold(_entry, attachmentThreshold); } - /// When the mix percentage (mix time / mix duration) is less than the draw order threshold, draw order timelines for the - /// animation being mixed out will be applied. Defaults to 0, so draw order timelines are not applied for an animation being - /// mixed out. + /// When the mix percentage ([getMixTime] / [getMixDuration]) is less than the + /// drawOrderThreshold, draw order timelines are applied while this animation is being mixed out. Defaults to 0, + /// so draw order timelines are not applied while this animation is being mixed out. double getDrawOrderThreshold() { return _bindings.spine_track_entry_get_draw_order_threshold(_entry); } @@ -2929,7 +3286,10 @@ class TrackEntry { _bindings.spine_track_entry_set_draw_order_threshold(_entry, drawOrderThreshold); } - /// The animation queued to start after this animation, or null. + /// The animation queued to start after this animation, or null if there is none. next makes up a doubly linked + /// list. + /// + /// See [AnimationState.clearNext] to truncate the list. TrackEntry? getNext() { final next = _bindings.spine_track_entry_get_next(_entry); if (next.address == nullptr.address) return null; @@ -2941,8 +3301,8 @@ class TrackEntry { return _bindings.spine_track_entry_is_complete(_entry) == -1; } - /// Seconds from 0 to the mix duration when mixing from the previous animation to this animation. May be slightly more than - /// TrackEntry.MixDuration when the mix is complete. + /// Seconds from 0 to the [getMixDuration] when mixing from the previous animation to this animation. May be + /// slightly more than mixDuration when the mix is complete. double getMixTime() { return _bindings.spine_track_entry_get_mix_time(_entry); } @@ -2951,14 +3311,21 @@ class TrackEntry { _bindings.spine_track_entry_set_mix_time(_entry, mixTime); } - /// Seconds for mixing from the previous animation to this animation. Defaults to the value provided by - /// AnimationStateData based on the animation before this animation (if any). - /// - /// The mix duration can be set manually rather than use the value from AnimationStateData.GetMix. - /// In that case, the mixDuration must be set before AnimationState.update(float) is next called. - /// - /// When using AnimationState::addAnimation(int, Animation, bool, float) with a delay - /// less than or equal to 0, note the Delay is set using the mix duration from the AnimationStateData + /// Seconds for mixing from the previous animation to this animation. Defaults to the value provided by AnimationStateData + /// {@link AnimationStateData#getMix(Animation, Animation)} based on the animation before this animation (if any). + ///

+ /// A mix duration of 0 still mixes out over one frame to provide the track entry being mixed out a chance to revert the + /// properties it was animating. A mix duration of 0 can be set at any time to end the mix on the next + /// {@link AnimationState#update(float) update}. + ///

+ /// The mixDuration can be set manually rather than use the value from + /// {@link AnimationStateData#getMix(Animation, Animation)}. In that case, the mixDuration can be set for a new + /// track entry only before {@link AnimationState#update(float)} is first called. + ///

+ /// When using {@link AnimationState#addAnimation(int, Animation, boolean, float)} with a delay <= 0, the + /// {@link #getDelay()} is set using the mix duration from the {@link AnimationStateData}. If mixDuration is set + /// afterward, the delay may need to be adjusted. For example: + /// entry.delay = entry.previous.getTrackComplete() - entry.mixDuration; double getMixDuration() { return _bindings.spine_track_entry_get_mix_duration(_entry); } From 4263beea50e12c59a86c75b5c464f16e0589b806 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Thu, 9 Feb 2023 09:08:29 +0100 Subject: [PATCH 10/13] [flutter] More doc comments for core API. --- spine-flutter/lib/spine_flutter.dart | 216 ++++++++++++++---- .../spine/AnimationState.java | 6 +- 2 files changed, 170 insertions(+), 52 deletions(-) diff --git a/spine-flutter/lib/spine_flutter.dart b/spine-flutter/lib/spine_flutter.dart index 15456e786..faec23182 100644 --- a/spine-flutter/lib/spine_flutter.dart +++ b/spine-flutter/lib/spine_flutter.dart @@ -3311,19 +3311,19 @@ class TrackEntry { _bindings.spine_track_entry_set_mix_time(_entry, mixTime); } - /// Seconds for mixing from the previous animation to this animation. Defaults to the value provided by AnimationStateData - /// {@link AnimationStateData#getMix(Animation, Animation)} based on the animation before this animation (if any). - ///

+ /// Seconds for mixing from the previous animation to this animation. Defaults to the value provided by + /// [AnimationStateData.getMix] based on the animation before this animation (if any). + /// /// A mix duration of 0 still mixes out over one frame to provide the track entry being mixed out a chance to revert the /// properties it was animating. A mix duration of 0 can be set at any time to end the mix on the next - /// {@link AnimationState#update(float) update}. - ///

+ /// [AnimationState.update]. + /// /// The mixDuration can be set manually rather than use the value from - /// {@link AnimationStateData#getMix(Animation, Animation)}. In that case, the mixDuration can be set for a new - /// track entry only before {@link AnimationState#update(float)} is first called. + /// [AnimationStateData.getMix]. In that case, the mixDuration can be set for a new + /// track entry only before [AnimationState.update] is first called. ///

- /// When using {@link AnimationState#addAnimation(int, Animation, boolean, float)} with a delay <= 0, the - /// {@link #getDelay()} is set using the mix duration from the {@link AnimationStateData}. If mixDuration is set + /// When using [AnimationState.addAnimation] with a delay <= 0, the + /// [getDelay] is set using the mix duration from the [AnimationStateData]. If mixDuration is set /// afterward, the delay may need to be adjusted. For example: /// entry.delay = entry.previous.getTrackComplete() - entry.mixDuration; double getMixDuration() { @@ -3334,6 +3334,12 @@ class TrackEntry { _bindings.spine_track_entry_set_mix_duration(_entry, mixDuration); } + /// Controls how properties keyed in the animation are mixed with lower tracks. Defaults to [MixBlend.replace]. + /// + /// Track entries on track 0 ignore this setting and always use {@link MixBlend#first}. + /// + /// The mixBlend can be set for a new track entry only before [AnimationState.apply] is first + /// called. MixBlend getMixBlend() { return MixBlend.values[_bindings.spine_track_entry_get_mix_blend(_entry)]; } @@ -3342,16 +3348,16 @@ class TrackEntry { _bindings.spine_track_entry_set_mix_blend(_entry, mixBlend.value); } - /// The track entry for the previous animation when mixing from the previous animation to this animation, or NULL if no - /// mixing is currently occuring. When mixing from multiple animations, MixingFrom makes up a double linked list with MixingTo. + /// The track entry for the previous animation when mixing from the previous animation to this animation, or null if no + /// mixing is currently occurring. When mixing from multiple animations, mixingFrom makes up a linked list. TrackEntry? getMixingFrom() { final from = _bindings.spine_track_entry_get_mixing_from(_entry); if (from.address == nullptr.address) return null; return TrackEntry._(from, _state); } - /// The track entry for the next animation when mixing from this animation, or NULL if no mixing is currently occuring. - /// When mixing from multiple animations, MixingTo makes up a double linked list with MixingFrom. + /// The track entry for the next animation when mixing from this animation to the next animation, or null if no mixing is + /// currently occurring. When mixing to multiple animations, mixingTo makes up a linked list. TrackEntry? getMixingTo() { final to = _bindings.spine_track_entry_get_mixing_to(_entry); if (to.address == nullptr.address) return null; @@ -3369,22 +3375,62 @@ class TrackEntry { _bindings.spine_track_entry_reset_rotation_directions(_entry); } + /// If this track entry is non-looping, the track time in seconds when [getAnimationEnd] is reached, or the current + /// [getTrackTime] if it has already been reached. If this track entry is looping, the track time when this + /// animation will reach its next [getAnimationEnd] (the next loop completion). double getTrackComplete() { return _bindings.spine_track_entry_get_track_complete(_entry); } + /// The listener for events generated by this track entry, or null. + /// + /// A track entry returned from [AnimationState.setAnimation] is already the current animation + /// for the track, so the track entry listener will not be called for [EventType.start]. void setListener(AnimationStateListener? listener) { _state._setTrackEntryListener(_entry, listener); } } -enum EventType { start, interrupt, end, complete, dispose, event } +/// The event type passed to [AnimationStateListener] +enum EventType { + /// Emitted when [TrackEntry] has been set as the current entry. [EventType.end] will occur when this entry will no + /// longer be applied. + start, + /// Emitted when another entry has replaced the current entry. This entry may continue being applied for + /// mixing. + interrupt, + /// Emitted when this entry will never be applied again. This only occurs if this entry has previously been set as the + /// current entry ([EventType.start] was emitted). + end, + /// Emitted every time the current entry's animation completes a loop. This may occur during mixing (after + /// [EventType.interrupted] is emitted). + /// + /// If [TrackEntry.getMixingTo] of the entry reported by the event is not null, the entry is mixing out (it is not the current entry). + /// + /// Because this event is triggered at the end of [AnimationState.apply], any animations set in response to + /// the event won't be applied until the next time the [AnimationState] is applied. + complete, + /// Emitted when this entry will be disposed. This may occur without the entry ever being set as the current entry. + /// + /// References to the entry should not be kept after dispose is called, as it may be destroyed or reused. + dispose, + /// Invoked when the current entry's animation triggers an event. This may occur during mixing (after + /// [EventType.interrupt] is emitted), see [TrackEntry.getEventThreshold]. + /// + /// Because this event is triggered at the end of [AnimationState.apply], any animations set in response to + /// the event won't be applied until the next time the [AnimationState] is applied. + event +} +/// Stores the setup pose values for an [Event]. +/// +/// See Events in the Spine User Guide. class EventData { final spine_event_data _data; EventData._(this._data); + /// The name of the event, which is unique across all events in the skeleton. String getName() { final Pointer value = _bindings.spine_event_data_get_name(_data).cast(); return value.toDartString(); @@ -3439,15 +3485,21 @@ class EventData { } } +/// Stores the current pose values for an {@link Event}. +/// +/// See [AnimationStateListener], [EventType.event], and +/// Events in the Spine User Guide. class Event { final spine_event _event; Event._(this._event); + /// The events's setup pose data. EventData getData() { return EventData._(_bindings.spine_event_get_data(_event)); } + /// The animation time this event was keyed. double getTime() { return _bindings.spine_event_get_time(_event); } @@ -3496,13 +3548,22 @@ class Event { } } +/// The callback to implement for receiving [TrackEntry] events. It is always safe to call [AnimationState] methods when receiving +/// events. +/// +/// TrackEntry events are collected during [AnimationState.update] and [AnimationState.apply] and +/// fired only after those methods are finished. +/// +/// See [TrackEntry.setListener] and [AnimationState.setListener]. typedef AnimationStateListener = void Function(EventType type, TrackEntry entry, Event? event); +/// Stores mix (crossfade) durations to be applied when {@link AnimationState} animations are changed. class AnimationStateData { final spine_animation_state_data _data; AnimationStateData._(this._data); + /// The SkeletonData to look up animations when they are specified by name. SkeletonData getSkeletonData() { return SkeletonData._(_bindings.spine_animation_state_data_get_skeleton_data(_data)); } @@ -3515,6 +3576,9 @@ class AnimationStateData { _bindings.spine_animation_state_data_set_default_mix(_data, defaultMix); } + /// Sets a mix duration by animation name. + /// + /// See [setMix]. void setMixByName(String fromName, String toName, double duration) { final fromNative = fromName.toNativeUtf8(allocator: _allocator); final toNative = toName.toNativeUtf8(allocator: _allocator); @@ -3523,6 +3587,8 @@ class AnimationStateData { _allocator.free(toNative); } + /// Returns the mix duration to use when changing from the specified animation to the other, or the [getDefaultMix] if + /// no mix duration has been set. double getMixByName(String fromName, String toName) { final fromNative = fromName.toNativeUtf8(allocator: _allocator); final toNative = toName.toNativeUtf8(allocator: _allocator); @@ -3532,19 +3598,29 @@ class AnimationStateData { return duration; } - void setMix(Animation from, Animation to, double duration) { + /// Sets the mix duration when changing from the specified animation to the other. + /// + /// See [TrackEntry.mixDuration]. + Future setMix(Animation from, Animation to, double duration) async { _bindings.spine_animation_state_data_set_mix(_data, from._animation, to._animation, duration); } + /// Returns the mix duration to use when changing from the specified animation to the other, or the [getDefaultMix] if + /// no mix duration has been set. double getMix(Animation from, Animation to) { return _bindings.spine_animation_state_data_get_mix(_data, from._animation, to._animation); } + /// Removes all mix durations. void clear() { _bindings.spine_animation_state_data_clear(_data); } } +/// Applies animations over time, queues animations for later playback, mixes (crossfading) between animations, and applies +/// multiple animations on top of each other (layering). +/// +/// See Applying Animations in the Spine Runtimes Guide. class AnimationState { final spine_animation_state _state; final spine_animation_state_events _events; @@ -3561,8 +3637,7 @@ class AnimationState { } } - /// Increments the track entry times, setting queued animations as current if needed - /// @param delta delta time + /// Increments each track entry [TrackEntry.getTrackTime], setting queued animations as current if needed. void update(double delta) { _bindings.spine_animation_state_update(_state, delta); @@ -3608,33 +3683,33 @@ class AnimationState { _bindings.spine_animation_state_events_reset(_events); } - /// Poses the skeleton using the track entry animations. There are no side effects other than invoking listeners, so the - /// animation state can be applied to multiple skeletons to pose them identically. + /// Poses the skeleton using the track entry animations. The animation state is not changed, so can be applied to multiple + /// skeletons to pose them identically. + /// + /// Returns true if any animations were applied. void apply(Skeleton skeleton) { _bindings.spine_animation_state_apply(_state, skeleton._skeleton); } - /// Removes all animations from all tracks, leaving skeletons in their previous pose. - /// It may be desired to use AnimationState.setEmptyAnimations(float) to mix the skeletons back to the setup pose, - /// rather than leaving them in their previous pose. + /// Removes all animations from all tracks, leaving skeletons in their current pose. + /// + /// It may be desired to use [setEmptyAnimations] to mix the skeletons back to the setup pose, + /// rather than leaving them in their current pose. void clearTracks() { _bindings.spine_animation_state_clear_tracks(_state); } - /// Removes all animations from the tracks, leaving skeletons in their previous pose. - /// It may be desired to use AnimationState.setEmptyAnimations(float) to mix the skeletons back to the setup pose, - /// rather than leaving them in their previous pose. + /// Removes all animations from the track, leaving skeletons in their current pose. + /// + /// It may be desired to use [setEmptyAnimations] to mix the skeletons back to the setup pose, + /// rather than leaving them in their current pose. void clearTrack(int trackIndex) { _bindings.spine_animation_state_clear_track(_state, trackIndex); } - /// Sets the current animation for a track, discarding any queued animations. - /// @param loop If true, the animation will repeat. - /// If false, it will not, instead its last frame is applied if played beyond its duration. - /// In either case TrackEntry.TrackEnd determines when the track is cleared. - /// @return - /// A track entry to allow further customization of animation playback. References to the track entry must not be kept - /// after AnimationState.Dispose. + /// Sets an animation by name. + /// + /// See [setAnimation]. TrackEntry setAnimationByName(int trackIndex, String animationName, bool loop) { final animation = animationName.toNativeUtf8(allocator: _allocator); final entry = _bindings.spine_animation_state_set_animation_by_name(_state, trackIndex, animation.cast(), loop ? -1 : 0); @@ -3643,20 +3718,23 @@ class AnimationState { return TrackEntry._(entry, this); } + /// Sets the current [animation] for a track at [trackIndex], discarding any queued animations. If the formerly current track entry was never + /// applied to a skeleton, it is replaced (not mixed from). + /// + /// If [loop] is true, the animation will repeat. If false it will not, instead its last frame is applied if played beyond its + /// duration. In either case [TrackEntry.getTrackEnd] determines when the track is cleared. + /// + /// Returns a track entry to allow further customization of animation playback. References to the track entry must not be kept + /// after the [EventType.dispose] event occurs. TrackEntry setAnimation(int trackIndex, Animation animation, bool loop) { final entry = _bindings.spine_animation_state_set_animation(_state, trackIndex, animation._animation, loop ? -1 : 0); if (entry.address == nullptr.address) throw Exception("Couldn't set animation ${animation.getName()}"); return TrackEntry._(entry, this); } - /// Adds an animation to be played delay seconds after the current or last queued animation - /// for a track. If the track is empty, it is equivalent to calling setAnimation. - /// @param delay - /// Seconds to begin this animation after the start of the previous animation. May be <= 0 to use the animation - /// duration of the previous track minus any mix duration plus the negative delay. + /// Queues an animation by name. /// - /// @return A track entry to allow further customization of animation playback. References to the track entry must not be kept - /// after AnimationState.Dispose + /// See [addAnimation]. TrackEntry addAnimationByName(int trackIndex, String animationName, bool loop, double delay) { final animation = animationName.toNativeUtf8(allocator: _allocator); final entry = _bindings.spine_animation_state_add_animation_by_name(_state, trackIndex, animation.cast(), loop ? -1 : 0, delay); @@ -3665,47 +3743,82 @@ class AnimationState { return TrackEntry._(entry, this); } + /// Adds an [animation] to be played after the current or last queued animation for a track at [trackIndex]. If the track is empty, it is + /// equivalent to calling [setAnimation]. + /// + /// If [delay] > 0, sets [TrackEntry.getDelay]. If [delay] <= 0, the delay set is the duration of the previous track entry + /// minus any mix duration (from the [AnimationStateData]) plus the specified delay (ie the mix + /// ends at (delay = 0) or before (delay < 0) the previous track entry duration). If the + /// previous entry is looping, its next loop completion is used instead of its duration. + /// + /// Returns a track entry to allow further customization of animation playback. References to the track entry must not be kept + /// after the [EventType.dispose] event occurs. TrackEntry addAnimation(int trackIndex, Animation animation, bool loop, double delay) { final entry = _bindings.spine_animation_state_add_animation(_state, trackIndex, animation._animation, loop ? -1 : 0, delay); if (entry.address == nullptr.address) throw Exception("Couldn't add animation ${animation.getName()}"); return TrackEntry._(entry, this); } - /// Sets an empty animation for a track, discarding any queued animations, and mixes to it over the specified mix duration. + /// Sets an empty animation for a track at [trackIndex], discarding any queued animations, and sets the track entry's + /// [TrackEntry.getMixDuration] to [mixDuration]. An empty animation has no timelines and serves as a placeholder for mixing in or out. + /// + /// Mixing out is done by setting an empty animation with a mix duration using either [setEmptyAnimation], + /// [setEmptyAnimations], or [addEmptyAnimation]. Mixing to an empty animation causes + /// the previous animation to be applied less and less over the mix duration. Properties keyed in the previous animation + /// transition to the value from lower tracks or to the setup pose value if no lower tracks key the property. A mix duration of + /// 0 still mixes out over one frame. + /// + /// Mixing in is done by first setting an empty animation, then adding an animation using + /// [addAnimation] with the desired delay (an empty animation has a duration of 0) and on + /// the returned track entry, set the [TrackEntry.setMixDuration]. Mixing from an empty animation causes the new + /// animation to be applied more and more over the mix duration. Properties keyed in the new animation transition from the value + /// from lower tracks or from the setup pose value if no lower tracks key the property to the value keyed in the new + /// animation. TrackEntry setEmptyAnimation(int trackIndex, double mixDuration) { final entry = _bindings.spine_animation_state_set_empty_animation(_state, trackIndex, mixDuration); return TrackEntry._(entry, this); } - /// Adds an empty animation to be played after the current or last queued animation for a track, and mixes to it over the - /// specified mix duration. - /// @return - /// A track entry to allow further customization of animation playback. References to the track entry must not be kept after AnimationState.Dispose. + /// Adds an empty animation to be played after the current or last queued animation for a track, and sets the track entry's + /// [TrackEntry.getMixDuration]. If the track is empty, it is equivalent to calling + /// [setEmptyAnimation]. /// - /// @param trackIndex Track number. - /// @param mixDuration Mix duration. - /// @param delay Seconds to begin this animation after the start of the previous animation. May be <= 0 to use the animation - /// duration of the previous track minus any mix duration plus the negative delay. + /// See [setEmptyAnimation]. + /// + /// If [delay] > 0, sets [TrackEntry.getDelay]. If <= 0, the delay set is the duration of the previous track entry + /// minus any mix duration plus the specified delay (ie the mix ends at (delay = 0) or + /// before (delay < 0) the previous track entry duration). If the previous entry is looping, its next + /// loop completion is used instead of its duration. + /// + /// Returns a track entry to allow further customization of animation playback. References to the track entry must not be kept + /// after the [EventType.dispose] event occurs. TrackEntry addEmptyAnimation(int trackIndex, double mixDuration, double delay) { final entry = _bindings.spine_animation_state_add_empty_animation(_state, trackIndex, mixDuration, delay); return TrackEntry._(entry, this); } + /// Returns the track entry for the animation currently playing on the track, or null if no animation is currently playing. TrackEntry? getCurrent(int trackIndex) { final entry = _bindings.spine_animation_state_get_current(_state, trackIndex); if (entry.address == nullptr.address) return null; return TrackEntry._(entry, this); } + /// Returns the number of tracks that have animations queued. int getNumTracks() { return _bindings.spine_animation_state_get_num_tracks(_state); } - /// Sets an empty animation for every track, discarding any queued animations, and mixes to it over the specified mix duration. + /// Sets an empty animation for every track, discarding any queued animations, and mixes to it over the specified mix + /// duration. void setEmptyAnimations(double mixDuration) { _bindings.spine_animation_state_set_empty_animations(_state, mixDuration); } + /// Multiplier for the delta time when the animation state is updated, causing time for all animations and mixes to play slower + /// or faster. Defaults to 1. + /// + /// See [TrackEntry.getTimeScale] for affecting a single animation. double getTimeScale() { return _bindings.spine_animation_state_get_time_scale(_state); } @@ -3714,10 +3827,15 @@ class AnimationState { _bindings.spine_animation_state_set_time_scale(_state, timeScale); } + /// The [AnimationStateData] to look up mix durations. AnimationStateData getData() { return AnimationStateData._(_bindings.spine_animation_state_get_data(_state)); } + /// The listener for events generated for all tracks managed by the AnimationState, or null. + /// + /// A track entry returned from [setAnimation] is already the current animation + /// for the track, so the track entry listener will not be called for [EventType.start]. void setListener(AnimationStateListener? listener) { _stateListener = listener; } diff --git a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java index 958aaab77..a7d12e3b8 100644 --- a/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java +++ b/spine-libgdx/spine-libgdx/src/com/esotericsoftware/spine/AnimationState.java @@ -847,7 +847,7 @@ public class AnimationState { this.timeScale = timeScale; } - /** The AnimationStateData to look up mix durations. */ + /** The {@link AnimationStateData} to look up mix durations. */ public AnimationStateData getData () { return data; } @@ -1199,13 +1199,13 @@ public class AnimationState { } /** The track entry for the previous animation when mixing from the previous animation to this animation, or null if no - * mixing is currently occuring. When mixing from multiple animations, mixingFrom makes up a linked list. */ + * mixing is currently occurring. When mixing from multiple animations, mixingFrom makes up a linked list. */ public @Null TrackEntry getMixingFrom () { return mixingFrom; } /** The track entry for the next animation when mixing from this animation to the next animation, or null if no mixing is - * currently occuring. When mixing to multiple animations, mixingTo makes up a linked list. */ + * currently occurring. When mixing to multiple animations, mixingTo makes up a linked list. */ public @Null TrackEntry getMixingTo () { return mixingTo; } From b424cb811d9ff6a46f34644a4e8502f38e1f85de Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Thu, 9 Feb 2023 12:05:15 +0100 Subject: [PATCH 11/13] [flutter] More doc comments for core API. --- spine-flutter/lib/spine_flutter.dart | 86 +++++++++++++++++++++++----- 1 file changed, 72 insertions(+), 14 deletions(-) diff --git a/spine-flutter/lib/spine_flutter.dart b/spine-flutter/lib/spine_flutter.dart index faec23182..161e11983 100644 --- a/spine-flutter/lib/spine_flutter.dart +++ b/spine-flutter/lib/spine_flutter.dart @@ -206,7 +206,6 @@ class SkeletonData { return data; } - /// Loads a [SkeletonData] from the file [skeletonFile] in the root bundle or the optionally provided [bundle]. /// Uses the provided [atlas] to resolve attachment images. /// @@ -339,7 +338,6 @@ class SkeletonData { return EventData._(event); } - /// The skeleton's animations. List getAnimations() { final List events = []; @@ -2760,7 +2758,6 @@ class Skeleton { return Slot._(slot); } - /// Sets a skin by name. /// /// See [setSkin]. @@ -2770,7 +2767,6 @@ class Skeleton { _allocator.free(nameNative); } - /// Sets the skin used to look up attachments before looking in the default skin (see [SkeletonData.getDefaultSkin]). If the /// skin is changed, [updateCache] is called. /// @@ -3035,17 +3031,20 @@ enum MixBlend { /// Transitions from the setup value to the timeline value (the current value is not used). Before the first frame, the /// setup value is set. setup(0), + /// Transitions from the current value to the timeline value. Before the first frame, transitions from the current value to /// the setup value. Timelines which perform instant transitions, such as {@link DrawOrderTimeline} or /// {@link AttachmentTimeline}, use the setup value before the first frame. ///

/// first is intended for the first animations applied, not for animations layered on top of those. first(1), + /// Transitions from the current value to the timeline value. No change is made before the first frame (the current value is /// kept until the first frame). ///

/// replace is intended for animations layered on top of others, not for the first animations applied. replace(2), + /// Transitions from the current value to the current value plus the timeline value. No change is made before the first /// frame (the current value is kept until the first frame). ///

@@ -3090,7 +3089,6 @@ class TrackEntry { _bindings.spine_track_entry_set_loop(_entry, loop ? -1 : 0); } - /// Seconds to postpone playing the animation. When this track entry is the current track entry, delay /// postpones incrementing the [getTrackTime]. When this track entry is queued, delay is the time from /// the start of the previous animation to when this track entry will become the current track entry (ie when the previous @@ -3396,12 +3394,15 @@ enum EventType { /// Emitted when [TrackEntry] has been set as the current entry. [EventType.end] will occur when this entry will no /// longer be applied. start, + /// Emitted when another entry has replaced the current entry. This entry may continue being applied for /// mixing. interrupt, + /// Emitted when this entry will never be applied again. This only occurs if this entry has previously been set as the /// current entry ([EventType.start] was emitted). end, + /// Emitted every time the current entry's animation completes a loop. This may occur during mixing (after /// [EventType.interrupted] is emitted). /// @@ -3410,10 +3411,12 @@ enum EventType { /// Because this event is triggered at the end of [AnimationState.apply], any animations set in response to /// the event won't be applied until the next time the [AnimationState] is applied. complete, + /// Emitted when this entry will be disposed. This may occur without the entry ever being set as the current entry. /// /// References to the entry should not be kept after dispose is called, as it may be destroyed or reused. dispose, + /// Invoked when the current entry's animation triggers an event. This may occur during mixing (after /// [EventType.interrupt] is emitted), see [TrackEntry.getEventThreshold]. /// @@ -3841,6 +3844,25 @@ class AnimationState { } } +/// A SkeletonDrawable bundles loading, updating, and rendering an [Atlas], [Skeleton], and [AnimationState] +/// into a single easy to use class. +/// +/// Use the [fromAsset], [fromFile], or [fromHttp] methods to construct a SkeletonDrawable. To have +/// multiple skeleton drawable instances share the same [Atlas] and [SkeletonData], use the constructor. +/// +/// You can then directly access the [atlas], [skeletonData], [skeleton], [animationStateData], and [animationState] +/// to query and animate the skeleton. Use the [AnimationState] to queue animations on one or more tracks +/// via [AnimationState.setAnimation] or [AnimationState.addAnimation]. +/// +/// To update the [AnimationState] and apply it to the [Skeleton] call the [update] function, providing it +/// a delta time in seconds to advance the animations. +/// +/// To render the current pose of the [Skeleton], use the rendering methods [render], [renderToCanvas], [renderToPictureRecorder], +/// [renderToPng], or [renderToRawImageData], depending on your needs. +/// +/// When the skeleton drawable is no longer needed, call the [dispose] method to release its resources. If +/// the skeleton drawable was constructed from a shared [Atlas] and [SkeletonData], make sure to dispose the +/// atlas and skeleton data as well, if no skeleton drawable references them anymore. class SkeletonDrawable { final Atlas atlas; final SkeletonData skeletonData; @@ -3851,6 +3873,9 @@ class SkeletonDrawable { final bool _ownsAtlasAndSkeletonData; bool _disposed; + /// Constructs a new skeleton drawable from the given (possibly shared) [Atlas] and [SkeletonData]. If + /// the atlas and skeleton data are not shared, the drawable can take ownership by passing true for [_ownsAtlasAndSkeletonData]. + /// In that case a call to [dispose] will also dispose the atlas and skeleton data. SkeletonDrawable(this.atlas, this.skeletonData, this._ownsAtlasAndSkeletonData) : _disposed = false { _drawable = _bindings.spine_skeleton_drawable_create(skeletonData._data); skeleton = Skeleton._(_bindings.spine_skeleton_drawable_get_skeleton(_drawable)); @@ -3860,6 +3885,10 @@ class SkeletonDrawable { skeleton.updateWorldTransform(); } + /// Constructs a new skeleton drawable from the [atlasFile] and [skeletonFile] from the root asset bundle + /// or the optionally provided [bundle]. + /// + /// Throws an exception in case the data could not be loaded. static Future fromAsset(String atlasFile, String skeletonFile, {AssetBundle? bundle}) async { bundle ??= rootBundle; var atlas = await Atlas.fromAsset(atlasFile, bundle: bundle); @@ -3867,18 +3896,27 @@ class SkeletonDrawable { return SkeletonDrawable(atlas, skeletonData, true); } + /// Constructs a new skeleton drawable from the [atlasFile] and [skeletonFile]. + /// + /// Throws an exception in case the data could not be loaded. static Future fromFile(String atlasFile, String skeletonFile) async { var atlas = await Atlas.fromFile(atlasFile); var skeletonData = await SkeletonData.fromFile(atlas, skeletonFile); return SkeletonDrawable(atlas, skeletonData, true); } - static Future fromHttp(String atlasFile, String skeletonFile) async { - var atlas = await Atlas.fromHttp(atlasFile); - var skeletonData = await SkeletonData.fromHttp(atlas, skeletonFile); + /// Constructs a new skeleton drawable from the [atlasUrl] and [skeletonUrl]. + /// + /// Throws an exception in case the data could not be loaded. + static Future fromHttp(String atlasUrl, String skeletonUrl) async { + var atlas = await Atlas.fromHttp(atlasUrl); + var skeletonData = await SkeletonData.fromHttp(atlas, skeletonUrl); return SkeletonDrawable(atlas, skeletonData, true); } + /// Updates the [AnimationState] using the [delta] time given in seconds, applies the + /// animation state to the [Skeleton] and updates the world transforms of the skeleton + /// to calculate its current pose. void update(double delta) { if (_disposed) return; animationState.update(delta); @@ -3886,6 +3924,8 @@ class SkeletonDrawable { skeleton.updateWorldTransform(); } + /// Renders to current skeleton pose to a list of [RenderCommand] instances. The render commands + /// can be rendered via [Canvas.drawVertices]. List render() { if (_disposed) return []; spine_render_command nativeCmd = _bindings.spine_skeleton_drawable_render(_drawable); @@ -3898,6 +3938,8 @@ class SkeletonDrawable { return commands; } + /// Renders the skeleton drawable's current pose to the given [canvas]. Does not perform any + /// scaling or fitting. void renderToCanvas(Canvas canvas) { var commands = render(); for (final cmd in commands) { @@ -3905,13 +3947,15 @@ class SkeletonDrawable { } } - PictureRecorder renderToPictureRecorder(double width, double height) { + /// Renders the skeleton drawable's current pose to a [PictureRecorder] with the given [width] and [height]. + /// Uses [bgColor], a 32-bit ARGB color value, to paint the background. + /// Scales and centers the skeleton to fit the within the bounds of [width] and [height]. + PictureRecorder renderToPictureRecorder(double width, double height, int bgColor) { var bounds = skeleton.getBounds(); var scale = 1 / (bounds.width > bounds.height ? bounds.width / width : bounds.height / height); var recorder = PictureRecorder(); var canvas = Canvas(recorder); - var bgColor = Random().nextInt(0xffffffff) | 0xff0000000; var paint = Paint() ..color = material.Color(bgColor) ..style = PaintingStyle.fill; @@ -3924,14 +3968,20 @@ class SkeletonDrawable { return recorder; } - Future renderToPng(double width, double height) async { - final recorder = renderToPictureRecorder(width, height); + /// Renders the skeleton drawable's current pose to a PNG encoded in a [Uint8List], with the given [width] and [height]. + /// Uses [bgColor], a 32-bit ARGB color value, to paint the background. + /// Scales and centers the skeleton to fit the within the bounds of [width] and [height]. + Future renderToPng(double width, double height, int bgColor) async { + final recorder = renderToPictureRecorder(width, height, bgColor); final image = await recorder.endRecording().toImage(width.toInt(), height.toInt()); return (await image.toByteData(format: ImageByteFormat.png))!.buffer.asUint8List(); } - Future renderToRawImageData(double width, double height) async { - final recorder = renderToPictureRecorder(width, height); + /// Renders the skeleton drawable's current pose to a [RawImageData], with the given [width] and [height]. + /// Uses [bgColor], a 32-bit ARGB color value, to paint the background. + /// Scales and centers the skeleton to fit the within the bounds of [width] and [height]. + Future renderToRawImageData(double width, double height, int bgColor) async { + final recorder = renderToPictureRecorder(width, height, bgColor); var rawImageData = (await (await recorder.endRecording().toImage(width.toInt(), height.toInt())).toByteData(format: ImageByteFormat.rawRgba))! .buffer @@ -3939,6 +3989,9 @@ class SkeletonDrawable { return RawImageData(rawImageData, width.toInt(), height.toInt()); } + /// Disposes the skeleton drawable's resources. If the skeleton drawable owns the atlas + /// and skeleton data, they are disposed as well. Must be called when the skeleton drawable + /// is no longer in use. void dispose() { if (_disposed) return; _disposed = true; @@ -3950,6 +4003,9 @@ class SkeletonDrawable { } } +/// Stores the vertices, indices, and atlas page index to be used for rendering one or more attachments +/// of a [Skeleton] to a [Canvas]. See the implementation of [SkeletonDrawable.renderToCanvas] on how to use this data to render it to a +/// [Canvas]. class RenderCommand { late final Vertices vertices; late final int atlasPageIndex; @@ -3988,6 +4044,8 @@ class RenderCommand { } } +/// Renders debug information for a [SkeletonDrawable], like bone locations, to a [Canvas]. +/// See [DebugRenderer.render]. class DebugRenderer { const DebugRenderer(); From 147439fe95174f4d619f29219337e03905c210f0 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Thu, 9 Feb 2023 12:48:32 +0100 Subject: [PATCH 12/13] [flutter] Rename SpineWidget factory methods, complete doc comments. --- .../example/lib/animation_state_events.dart | 2 +- .../example/lib/debug_rendering.dart | 2 +- spine-flutter/example/lib/dress_up.dart | 4 +- spine-flutter/example/lib/ik_following.dart | 6 +- .../example/lib/pause_play_animation.dart | 2 +- .../example/lib/simple_animation.dart | 2 +- spine-flutter/lib/spine_flutter.dart | 1 - spine-flutter/lib/spine_widget.dart | 134 +++++++++++++++--- 8 files changed, 121 insertions(+), 32 deletions(-) diff --git a/spine-flutter/example/lib/animation_state_events.dart b/spine-flutter/example/lib/animation_state_events.dart index 70bb4231f..51b1a885a 100644 --- a/spine-flutter/example/lib/animation_state_events.dart +++ b/spine-flutter/example/lib/animation_state_events.dart @@ -33,7 +33,7 @@ class AnimationStateEvents extends StatelessWidget { appBar: AppBar(title: const Text('Spineboy')), body: Column(children: [ const Text("See output in console!"), - Expanded(child: SpineWidget.asset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller)) + Expanded(child: SpineWidget.fromAsset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller)) ])); } } diff --git a/spine-flutter/example/lib/debug_rendering.dart b/spine-flutter/example/lib/debug_rendering.dart index 7d20b4650..3216140d1 100644 --- a/spine-flutter/example/lib/debug_rendering.dart +++ b/spine-flutter/example/lib/debug_rendering.dart @@ -17,7 +17,7 @@ class DebugRendering extends StatelessWidget { return Scaffold( appBar: AppBar(title: const Text('Debug Renderer')), - body: SpineWidget.asset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller), + body: SpineWidget.fromAsset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller), ); } } diff --git a/spine-flutter/example/lib/dress_up.dart b/spine-flutter/example/lib/dress_up.dart index a62cbaeaf..9ac9d5ed0 100644 --- a/spine-flutter/example/lib/dress_up.dart +++ b/spine-flutter/example/lib/dress_up.dart @@ -29,7 +29,7 @@ class DressUpState extends State { skeleton.setSkin(skin); skeleton.setToSetupPose(); skeleton.updateWorldTransform(); - _skinImages[skin.getName()] = await drawable.renderToRawImageData(thumbnailSize, thumbnailSize); + _skinImages[skin.getName()] = await drawable.renderToRawImageData(thumbnailSize, thumbnailSize, 0xffffffff); _selectedSkins[skin.getName()] = false; } _toggleSkin("full-skins/girl"); @@ -87,7 +87,7 @@ class DressUpState extends State { }).toList()), ), Expanded( - child: SpineWidget.drawable( + child: SpineWidget.fromDrawable( _drawable, controller, boundsProvider: SkinAndAnimationBounds(skins: ["full-skins/girl"]), diff --git a/spine-flutter/example/lib/ik_following.dart b/spine-flutter/example/lib/ik_following.dart index b05875090..40277e8bd 100644 --- a/spine-flutter/example/lib/ik_following.dart +++ b/spine-flutter/example/lib/ik_following.dart @@ -25,7 +25,9 @@ class IkFollowingState extends State { if (worldPosition == null) return; var bone = controller.skeleton.findBone("crosshair"); if (bone == null) return; - var position = bone.getParent()?.worldToLocal(worldPosition.dx, worldPosition.dy) ?? Vec2(0, 0); + var parent = bone.getParent(); + if (parent == null) return; + var position = parent.worldToLocal(worldPosition.dx, worldPosition.dy); bone.setX(position.x); bone.setY(position.y); }); @@ -44,7 +46,7 @@ class IkFollowingState extends State { body: GestureDetector( onPanDown: (drag) => _updateBonePosition(drag.localPosition), onPanUpdate: (drag) => _updateBonePosition(drag.localPosition), - child: SpineWidget.asset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller), + child: SpineWidget.fromAsset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller), )); } } diff --git a/spine-flutter/example/lib/pause_play_animation.dart b/spine-flutter/example/lib/pause_play_animation.dart index beb69b323..8eca6633a 100644 --- a/spine-flutter/example/lib/pause_play_animation.dart +++ b/spine-flutter/example/lib/pause_play_animation.dart @@ -33,7 +33,7 @@ class PlayPauseAnimationState extends State { return Scaffold( appBar: AppBar(title: const Text('Play/Pause')), - body: SpineWidget.asset( + body: SpineWidget.fromAsset( "assets/dragon.atlas", "assets/dragon-ess.skel", controller, diff --git a/spine-flutter/example/lib/simple_animation.dart b/spine-flutter/example/lib/simple_animation.dart index 666b8ba84..d113f90eb 100644 --- a/spine-flutter/example/lib/simple_animation.dart +++ b/spine-flutter/example/lib/simple_animation.dart @@ -14,7 +14,7 @@ class SimpleAnimation extends StatelessWidget { return Scaffold( appBar: AppBar(title: const Text('Simple Animation')), - body: SpineWidget.asset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller), + body: SpineWidget.fromAsset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller), // body: SpineWidget.file( "/Users/badlogic/workspaces/spine-runtimes/examples/spineboy/export/spineboy.atlas", "/Users/badlogic/workspaces/spine-runtimes/examples/spineboy/export/spineboy-pro.skel", controller), // body: const SpineWidget.http("https://marioslab.io/dump/spineboy/spineboy.atlas", "https://marioslab.io/dump/spineboy/spineboy-pro.json"), ); diff --git a/spine-flutter/lib/spine_flutter.dart b/spine-flutter/lib/spine_flutter.dart index 161e11983..0aaa4ee13 100644 --- a/spine-flutter/lib/spine_flutter.dart +++ b/spine-flutter/lib/spine_flutter.dart @@ -1,6 +1,5 @@ import 'dart:convert' as convert; import 'dart:io'; -import 'dart:math'; import 'dart:typed_data'; import 'dart:ui'; diff --git a/spine-flutter/lib/spine_widget.dart b/spine-flutter/lib/spine_widget.dart index 943eb0a82..5248bb88c 100644 --- a/spine-flutter/lib/spine_widget.dart +++ b/spine-flutter/lib/spine_widget.dart @@ -7,6 +7,27 @@ import 'package:flutter/widgets.dart'; import 'spine_flutter.dart'; +/// Controls how the skeleton of a [SpineWidget] is animated and rendered. +/// +/// Upon initialization of a [SpineWidget] the provided [onInitialized] callback method is called once. This method can be used +/// to setup the initial animation(s) of the skeleton, among other things. +/// +/// After initialization is complete, the [SpineWidget] is rendered at the screen refresh rate. In each frame, +/// the [AnimationState] is updated and applied to the [Skeleton]. +/// +/// Next the optionally provided method [onBeforeUpdateWorldTransforms] is called, which can modify the +/// skeleton before its current pose is calculated using [Skeleton.updateWorldTransforms]. After +/// [Skeleton.updateWorldTransforms] has completed, the optional [onAfterUpdateWorldTransforms] method is +/// called, which can modify the current pose before rendering the skeleton. +/// +/// Before the skeleton's current pose is rendered by the [SpineWidget] the optional [onBeforePaint] is called, +/// which allows rendering backgrounds or other objects that should go behind the skeleton on the [Canvas]. The +/// [SpineWidget] then renderes the skeleton's current pose, and finally calls the optional [onAfterPaint], which +/// can render additional objects on top of the skeleton. +/// +/// The underlying [Atlas], [SkeletonData], [Skeleton], [AnimationStateData], [AnimationState], and [SkeletonDrawable] +/// can be accessed through their respective getters to inspect and/or modify the skeleton and its associated data. Accessing +/// this data is only allowed if the [SpineWidget] and its data have been initialized and have not been disposed yet. class SpineWidgetController { SkeletonDrawable? _drawable; double _offsetX = 0, _offsetY = 0, _scaleX = 1, _scaleY = 1; @@ -16,6 +37,8 @@ class SpineWidgetController { final void Function(SpineWidgetController controller, Canvas canvas)? onBeforePaint; final void Function(SpineWidgetController controller, Canvas canvas, List commands)? onAfterPaint; + /// Constructs a new [SpineWidget] controller. See the class documentation of [SpineWidgetController] for information on + /// the optional arguments. SpineWidgetController( {this.onInitialized, this.onBeforeUpdateWorldTransforms, this.onAfterUpdateWorldTransforms, this.onBeforePaint, this.onAfterPaint}); @@ -25,31 +48,38 @@ class SpineWidgetController { onInitialized?.call(this); } + /// The [Atlas] from which images to render the skeleton are sourced. Atlas get atlas { if (_drawable == null) throw Exception("Controller is not initialized yet."); return _drawable!.atlas; } + /// The setup-pose data used by the skeleton. SkeletonData get skeletonData { if (_drawable == null) throw Exception("Controller is not initialized yet."); return _drawable!.skeletonData; } + /// The mixing information used by the [AnimationState] AnimationStateData get animationStateData { if (_drawable == null) throw Exception("Controller is not initialized yet."); return _drawable!.animationStateData; } + /// The [AnimationState] used to manage animations that are being applied to the + /// skeleton. AnimationState get animationState { if (_drawable == null) throw Exception("Controller is not initialized yet."); return _drawable!.animationState; } + /// The [Skeleton] Skeleton get skeleton { if (_drawable == null) throw Exception("Controller is not initialized yet."); return _drawable!.skeleton; } + /// The [SkeletonDrawable] SkeletonDrawable get drawable { if (_drawable == null) throw Exception("Controller is not initialized yet."); return _drawable!; @@ -62,6 +92,9 @@ class SpineWidgetController { _scaleY = scaleY; } + /// Transforms the coordinates given in the [SpineWidget] coordinate system in [position] to + /// the skeleton coordinate system. See the `ik_following.dart` example how to use this + /// to move a bone based on user touch input. Offset toSkeletonCoordinates(Offset position) { var x = position.dx; var y = position.dy; @@ -69,14 +102,18 @@ class SpineWidgetController { } } -enum AssetType { asset, file, http, drawable } +enum _AssetType { asset, file, http, drawable } +/// Base class for bounds providers. A bounds provider calculates the axis aligned bounding box +/// used to scale and fit a skeleton inside the bounds of a [SpineWidget]. abstract class BoundsProvider { const BoundsProvider(); Bounds computeBounds(SkeletonDrawable drawable); } +/// A [BoundsProvider] that calculates the bounding box of the skeleton based on the visible +/// attachments in the setup pose. class SetupPoseBounds extends BoundsProvider { const SetupPoseBounds(); @@ -86,6 +123,7 @@ class SetupPoseBounds extends BoundsProvider { } } +/// A [BoundsProvider] that returns fixed bounds. class RawBounds extends BoundsProvider { final double x, y, width, height; @@ -97,11 +135,17 @@ class RawBounds extends BoundsProvider { } } +/// A [BoundsProvider] that calculates the bounding box needed for a combination of skins +/// and an animation. class SkinAndAnimationBounds extends BoundsProvider { final List skins; final String? animation; final double stepTime; + /// Constructs a new provider that will use the given [skins] and [animation] to calculate + /// the bounding box of the skeleton. If no skins are given, the default skin is used. + /// The [stepTime], given in seconds, defines at what interval the bounds should be sampled + /// across the entire animation. SkinAndAnimationBounds({List? skins, this.animation, this.stepTime = 0.1}) : skins = skins == null || skins.isEmpty ? ["default"] : skins; @@ -151,15 +195,15 @@ class SkinAndAnimationBounds extends BoundsProvider { } } -class ComputedBounds extends BoundsProvider { - @override - Bounds computeBounds(SkeletonDrawable drawable) { - return Bounds(0, 0, 0, 0); - } -} - +/// A [StatefulWidget] to display a Spine skeleton. The skeleton can be loaded from an asset bundle ([SpineWidget.fromAsset], +/// local files [SpineWidget.fromFile], URLs [SpineWidget.fromHttp], or a pre-loaded [SkeletonDrawable] ([SpineWidget.fromDrawable]). +/// +/// The skeleton displayed by a `SpineWidget` can be controlled via a [SpineWidgetController]. +/// +/// The size of the widget can be derived from the bounds provided by a [BoundsProvider]. If the widget is not sized by the bounds +/// computed by the [BoundsProvider], the widget will use the computed bounds to fit the skeleton inside the widget's dimensions. class SpineWidget extends StatefulWidget { - final AssetType _assetType; + final _AssetType _assetType; final AssetBundle? _bundle; final String? _skeletonFile; final String? _atlasFile; @@ -170,9 +214,21 @@ class SpineWidget extends StatefulWidget { final BoundsProvider _boundsProvider; final bool _sizedByBounds; - SpineWidget.asset(this._atlasFile, this._skeletonFile, this._controller, + /// Constructs a new [SpineWidget] from files in the root bundle or the optionally specified [bundle]. The [_atlasFile] specifies the + /// `.atlas` file to be loaded for the images used to render the skeleton. The [_skeletonFile] specifies either a Skeleton `.json` or + /// `.skel` file containing the skeleton data. + /// + /// After initialization is complete, the provided [_controller] is invoked as per the [SpineWidgetController] semantics, to allow + /// modifying how the skeleton inside the widget is animated and rendered. + /// + /// The skeleton is fitted and aligned inside the widget as per the [fit] and [alignment] arguments. For this purpose, the skeleton + /// bounds must be computed via a [BoundsProvider]. By default, [BoxFit.contain], [Alignment.center], and a [SetupPoseBounds] provider + /// are used. + /// + /// The widget can optionally by sized by the bounds provided by the [BoundsProvider] by passing `true` for [sizedByBounds]. + SpineWidget.fromAsset(this._atlasFile, this._skeletonFile, this._controller, {AssetBundle? bundle, BoxFit? fit, Alignment? alignment, BoundsProvider? boundsProvider, bool? sizedByBounds, super.key}) - : _assetType = AssetType.asset, + : _assetType = _AssetType.asset, _fit = fit ?? BoxFit.contain, _alignment = alignment ?? Alignment.center, _boundsProvider = boundsProvider ?? const SetupPoseBounds(), @@ -180,9 +236,20 @@ class SpineWidget extends StatefulWidget { _drawable = null, _bundle = bundle ?? rootBundle; - const SpineWidget.file(this._atlasFile, this._skeletonFile, this._controller, + /// Constructs a new [SpineWidget] from files. The [_atlasFile] specifies the `.atlas` file to be loaded for the images used to render + /// the skeleton. The [_skeletonFile] specifies either a Skeleton `.json` or `.skel` file containing the skeleton data. + /// + /// After initialization is complete, the provided [_controller] is invoked as per the [SpineWidgetController] semantics, to allow + /// modifying how the skeleton inside the widget is animated and rendered. + /// + /// The skeleton is fitted and aligned inside the widget as per the [fit] and [alignment] arguments. For this purpose, the skeleton + /// bounds must be computed via a [BoundsProvider]. By default, [BoxFit.contain], [Alignment.center], and a [SetupPoseBounds] provider + /// are used. + /// + /// The widget can optionally by sized by the bounds provided by the [BoundsProvider] by passing `true` for [sizedByBounds]. + const SpineWidget.fromFile(this._atlasFile, this._skeletonFile, this._controller, {BoxFit? fit, Alignment? alignment, BoundsProvider? boundsProvider, bool? sizedByBounds, super.key}) - : _assetType = AssetType.file, + : _assetType = _AssetType.file, _bundle = null, _fit = fit ?? BoxFit.contain, _alignment = alignment ?? Alignment.center, @@ -190,9 +257,20 @@ class SpineWidget extends StatefulWidget { _sizedByBounds = sizedByBounds ?? false, _drawable = null; - const SpineWidget.http(this._atlasFile, this._skeletonFile, this._controller, + /// Constructs a new [SpineWidget] from HTTP URLs. The [_atlasFile] specifies the `.atlas` file to be loaded for the images used to render + /// the skeleton. The [_skeletonFile] specifies either a Skeleton `.json` or `.skel` file containing the skeleton data. + /// + /// After initialization is complete, the provided [_controller] is invoked as per the [SpineWidgetController] semantics, to allow + /// modifying how the skeleton inside the widget is animated and rendered. + /// + /// The skeleton is fitted and aligned inside the widget as per the [fit] and [alignment] arguments. For this purpose, the skeleton + /// bounds must be computed via a [BoundsProvider]. By default, [BoxFit.contain], [Alignment.center], and a [SetupPoseBounds] provider + /// are used. + /// + /// The widget can optionally by sized by the bounds provided by the [BoundsProvider] by passing `true` for [sizedByBounds]. + const SpineWidget.fromHttp(this._atlasFile, this._skeletonFile, this._controller, {BoxFit? fit, Alignment? alignment, BoundsProvider? boundsProvider, bool? sizedByBounds, super.key}) - : _assetType = AssetType.http, + : _assetType = _AssetType.http, _bundle = null, _fit = fit ?? BoxFit.contain, _alignment = alignment ?? Alignment.center, @@ -200,9 +278,19 @@ class SpineWidget extends StatefulWidget { _sizedByBounds = sizedByBounds ?? false, _drawable = null; - const SpineWidget.drawable(this._drawable, this._controller, + /// Constructs a new [SpineWidget] from a [SkeletonDrawable]. + /// + /// After initialization is complete, the provided [_controller] is invoked as per the [SpineWidgetController] semantics, to allow + /// modifying how the skeleton inside the widget is animated and rendered. + /// + /// The skeleton is fitted and aligned inside the widget as per the [fit] and [alignment] arguments. For this purpose, the skeleton + /// bounds must be computed via a [BoundsProvider]. By default, [BoxFit.contain], [Alignment.center], and a [SetupPoseBounds] provider + /// are used. + /// + /// The widget can optionally by sized by the bounds provided by the [BoundsProvider] by passing `true` for [sizedByBounds]. + const SpineWidget.fromDrawable(this._drawable, this._controller, {BoxFit? fit, Alignment? alignment, BoundsProvider? boundsProvider, bool? sizedByBounds, super.key}) - : _assetType = AssetType.drawable, + : _assetType = _AssetType.drawable, _bundle = null, _fit = fit ?? BoxFit.contain, _alignment = alignment ?? Alignment.center, @@ -222,7 +310,7 @@ class _SpineWidgetState extends State { @override void initState() { super.initState(); - if (widget._assetType == AssetType.drawable) { + if (widget._assetType == _AssetType.drawable) { loadDrawable(widget._drawable!); } else { loadFromAsset(widget._bundle, widget._atlasFile!, widget._skeletonFile!, widget._assetType); @@ -236,18 +324,18 @@ class _SpineWidgetState extends State { setState(() {}); } - void loadFromAsset(AssetBundle? bundle, String atlasFile, String skeletonFile, AssetType assetType) async { + void loadFromAsset(AssetBundle? bundle, String atlasFile, String skeletonFile, _AssetType assetType) async { switch (assetType) { - case AssetType.asset: + case _AssetType.asset: loadDrawable(await SkeletonDrawable.fromAsset(atlasFile, skeletonFile, bundle: bundle)); break; - case AssetType.file: + case _AssetType.file: loadDrawable(await SkeletonDrawable.fromFile(atlasFile, skeletonFile)); break; - case AssetType.http: + case _AssetType.http: loadDrawable(await SkeletonDrawable.fromHttp(atlasFile, skeletonFile)); break; - case AssetType.drawable: + case _AssetType.drawable: throw Exception("Drawable can not be loaded via loadFromAsset()."); } } From 455189c000ac1bb489a54ce946f0294ca24783b1 Mon Sep 17 00:00:00 2001 From: Mario Zechner Date: Thu, 9 Feb 2023 16:46:59 +0100 Subject: [PATCH 13/13] [flutter] Add SpineWidgetController.pause/resume/isPlaying. Can be used to stop frame updates entirely. --- .../example/lib/pause_play_animation.dart | 11 ++-- .../example/lib/simple_animation.dart | 4 +- spine-flutter/lib/spine_widget.dart | 54 +++++++++++++++++-- 3 files changed, 56 insertions(+), 13 deletions(-) diff --git a/spine-flutter/example/lib/pause_play_animation.dart b/spine-flutter/example/lib/pause_play_animation.dart index 8eca6633a..02ccf01ca 100644 --- a/spine-flutter/example/lib/pause_play_animation.dart +++ b/spine-flutter/example/lib/pause_play_animation.dart @@ -10,7 +10,6 @@ class PlayPauseAnimation extends StatefulWidget { class PlayPauseAnimationState extends State { late SpineWidgetController controller; - late bool isPlaying; @override void initState() { @@ -18,12 +17,14 @@ class PlayPauseAnimationState extends State { controller = SpineWidgetController(onInitialized: (controller) { controller.animationState.setAnimationByName(0, "flying", true); }); - isPlaying = true; } void _togglePlay() { - isPlaying = !isPlaying; - controller.animationState.setTimeScale(isPlaying ? 1 : 0); + if (controller.isPlaying) { + controller.pause(); + } else { + controller.resume(); + } setState(() {}); } @@ -41,7 +42,7 @@ class PlayPauseAnimationState extends State { ), floatingActionButton: FloatingActionButton( onPressed: _togglePlay, - child: Icon(isPlaying ? Icons.pause : Icons.play_arrow), + child: Icon(controller.isPlaying ? Icons.pause : Icons.play_arrow), ), ); } diff --git a/spine-flutter/example/lib/simple_animation.dart b/spine-flutter/example/lib/simple_animation.dart index d113f90eb..07c9cdb6f 100644 --- a/spine-flutter/example/lib/simple_animation.dart +++ b/spine-flutter/example/lib/simple_animation.dart @@ -14,9 +14,7 @@ class SimpleAnimation extends StatelessWidget { return Scaffold( appBar: AppBar(title: const Text('Simple Animation')), - body: SpineWidget.fromAsset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller), - // body: SpineWidget.file( "/Users/badlogic/workspaces/spine-runtimes/examples/spineboy/export/spineboy.atlas", "/Users/badlogic/workspaces/spine-runtimes/examples/spineboy/export/spineboy-pro.skel", controller), - // body: const SpineWidget.http("https://marioslab.io/dump/spineboy/spineboy.atlas", "https://marioslab.io/dump/spineboy/spineboy-pro.json"), + body: SpineWidget.fromAsset("assets/spineboy.atlas", "assets/spineboy-pro.skel", controller) ); } } diff --git a/spine-flutter/lib/spine_widget.dart b/spine-flutter/lib/spine_widget.dart index 5248bb88c..46e827b67 100644 --- a/spine-flutter/lib/spine_widget.dart +++ b/spine-flutter/lib/spine_widget.dart @@ -28,9 +28,15 @@ import 'spine_flutter.dart'; /// The underlying [Atlas], [SkeletonData], [Skeleton], [AnimationStateData], [AnimationState], and [SkeletonDrawable] /// can be accessed through their respective getters to inspect and/or modify the skeleton and its associated data. Accessing /// this data is only allowed if the [SpineWidget] and its data have been initialized and have not been disposed yet. +/// +/// By default, the widget updates and renders the skeleton every frame. The [pause] method can be used to pause updating +/// and rendering the skeleton. The [resume] method resumes updating and rendering the skeleton. The [isPlaying] getter +/// reports the current state. class SpineWidgetController { SkeletonDrawable? _drawable; double _offsetX = 0, _offsetY = 0, _scaleX = 1, _scaleY = 1; + bool _isPlaying = true; + _SpineRenderObject? _renderObject = null; final void Function(SpineWidgetController controller)? onInitialized; final void Function(SpineWidgetController controller)? onBeforeUpdateWorldTransforms; final void Function(SpineWidgetController controller)? onAfterUpdateWorldTransforms; @@ -92,6 +98,10 @@ class SpineWidgetController { _scaleY = scaleY; } + void _setRenderObject(_SpineRenderObject? renderObject) { + _renderObject = renderObject; + } + /// Transforms the coordinates given in the [SpineWidget] coordinate system in [position] to /// the skeleton coordinate system. See the `ik_following.dart` example how to use this /// to move a bone based on user touch input. @@ -100,6 +110,23 @@ class SpineWidgetController { var y = position.dy; return Offset(x / _scaleX - _offsetX, y / _scaleY - _offsetY); } + + /// Pauses updating and rendering the skeleton. + void pause() { + _isPlaying = false; + } + + /// Resumes updating and rendering the skeleton. + void resume() { + _isPlaying = true; + _renderObject?._stopwatch.reset(); + _renderObject?._stopwatch.start(); + _renderObject?._scheduleFrame(); + } + + bool get isPlaying { + return _isPlaying; + } } enum _AssetType { asset, file, http, drawable } @@ -391,6 +418,7 @@ class _SpineRenderObject extends RenderBox { Alignment _alignment; Bounds _bounds; bool _sizedByBounds; + bool _disposed = false; _SpineRenderObject(this._skeletonDrawable, this._controller, this._fit, this._alignment, this._bounds, this._sizedByBounds); @@ -493,22 +521,39 @@ class _SpineRenderObject extends RenderBox { void attach(rendering.PipelineOwner owner) { super.attach(owner); _stopwatch.start(); + SchedulerBinding.instance.scheduleFrameCallback(_beginFrame); + _controller._setRenderObject(this); } @override void detach() { _stopwatch.stop(); super.detach(); + _controller._setRenderObject(null); + } + + @override + void dispose() { + super.dispose(); + _disposed = true; + } + + void _scheduleFrame() { + SchedulerBinding.instance.scheduleFrameCallback(_beginFrame); } void _beginFrame(Duration duration) { + if (_disposed) return; _deltaTime = _stopwatch.elapsedTicks / _stopwatch.frequency; _stopwatch.reset(); _stopwatch.start(); - _controller.onBeforeUpdateWorldTransforms?.call(_controller); - _skeletonDrawable.update(_deltaTime); - _controller.onAfterUpdateWorldTransforms?.call(_controller); - markNeedsPaint(); + if (_controller.isPlaying) { + _controller.onBeforeUpdateWorldTransforms?.call(_controller); + _skeletonDrawable.update(_deltaTime); + _controller.onAfterUpdateWorldTransforms?.call(_controller); + markNeedsPaint(); + _scheduleFrame(); + } } void _setCanvasTransform(Canvas canvas, Offset offset) { @@ -568,6 +613,5 @@ class _SpineRenderObject extends RenderBox { _controller.onAfterPaint?.call(_controller, canvas, commands); canvas.restore(); - SchedulerBinding.instance.scheduleFrameCallback(_beginFrame); } }