Compare commits
933 Commits
thermion_f
...
thermion_f
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
071a6c8bd3 | ||
|
|
bfdda4a7cc | ||
|
|
91d653b288 | ||
|
|
54d7c4087e | ||
|
|
b88ed80ecd | ||
|
|
bbba889080 | ||
|
|
2f1c2fdd9f | ||
|
|
cee5631064 | ||
|
|
e22a0aec4d | ||
|
|
c40faeb888 | ||
|
|
f666b36e43 | ||
|
|
965be02891 | ||
|
|
a760e0e594 | ||
|
|
82bbb572a5 | ||
|
|
2a9158d0e0 | ||
|
|
3e29749eb4 | ||
|
|
1ac72b7c7b | ||
|
|
fb1ed9f34b | ||
|
|
07bdc028df | ||
|
|
4ed0e69321 | ||
|
|
61f8be2d62 | ||
|
|
25505c7648 | ||
|
|
7282e713ef | ||
|
|
d76882f194 | ||
|
|
d24c55033b | ||
|
|
64a163a6d6 | ||
|
|
f4e2a4bdc6 | ||
|
|
420193a7e2 | ||
|
|
99b79b4f16 | ||
|
|
d6b2e8f8d3 | ||
|
|
014e1bfbcd | ||
|
|
343f3cfd61 | ||
|
|
db3ec6b194 | ||
|
|
063a0b7ca7 | ||
|
|
5fe91f95db | ||
|
|
46cfc6e72f | ||
|
|
f71874cbf7 | ||
|
|
c793de7aba | ||
|
|
ac3550a27c | ||
|
|
b61e7df4ec | ||
|
|
1665a9698f | ||
|
|
53bfd894b1 | ||
|
|
f2cd165ee0 | ||
|
|
8947f7c819 | ||
|
|
8402619b97 | ||
|
|
5c955d15db | ||
|
|
e01072ff00 | ||
|
|
e3fe7aaa88 | ||
|
|
ff5ac01a1d | ||
|
|
5dac06d335 | ||
|
|
a8d21fe316 | ||
|
|
d784efa44a | ||
|
|
b2a4955d54 | ||
|
|
02d7a0acfd | ||
|
|
ee5c08f795 | ||
|
|
d7debf981c | ||
|
|
2b4a73f355 | ||
|
|
06b20ec6fc | ||
|
|
a3b6d60e16 | ||
|
|
37608a8fbe | ||
|
|
2713286ca5 | ||
|
|
6f648702e9 | ||
|
|
5e17e0c6d1 | ||
|
|
0fcc44bff8 | ||
|
|
f65324e555 | ||
|
|
1ba4b2a5be | ||
|
|
de4733edf1 | ||
|
|
75936c75d0 | ||
|
|
6f6ee807cf | ||
|
|
7a1ce5c281 | ||
|
|
d4a3985a65 | ||
|
|
d73e723003 | ||
|
|
02c3876131 | ||
|
|
641ed45b59 | ||
|
|
aa7306fc4c | ||
|
|
d8296f85bf | ||
|
|
b96dda26c0 | ||
|
|
3ba16e019c | ||
|
|
12f97cf78f | ||
|
|
219dfa801f | ||
|
|
1826c23692 | ||
|
|
b5dd62a614 | ||
|
|
59e7d7c7c3 | ||
|
|
e66cb35899 | ||
|
|
d9aa90350c | ||
|
|
4a9d28e59d | ||
|
|
636e1961dd | ||
|
|
ff27652fb6 | ||
|
|
3b6285cff8 | ||
|
|
0d865977b4 | ||
|
|
a6872f5a77 | ||
|
|
d26d786f67 | ||
|
|
71aa4be3b1 | ||
|
|
70507a5919 | ||
|
|
b99886095b | ||
|
|
8dabe08792 | ||
|
|
de4fd3b8d0 | ||
|
|
7778afe3ec | ||
|
|
f817406dbc | ||
|
|
a16e3fcd3c | ||
|
|
2bbaff5f15 | ||
|
|
18023f1606 | ||
|
|
707793c6b2 | ||
|
|
f080720712 | ||
|
|
cf7d8e45f4 | ||
|
|
a5c3d7b215 | ||
|
|
68053b0f5a | ||
|
|
39762c8132 | ||
|
|
e27a8ee601 | ||
|
|
0a10dc426b | ||
|
|
53ee466fb6 | ||
|
|
33acc73ab7 | ||
|
|
dbbb4d7123 | ||
|
|
de39af13d0 | ||
|
|
9244009350 | ||
|
|
bb10a75f0e | ||
|
|
6cf4efdf31 | ||
|
|
83fe74253f | ||
|
|
4be95072fd | ||
|
|
9a8c245e31 | ||
|
|
f2e0f32054 | ||
|
|
a6c9ee60a9 | ||
|
|
9cef768dfc | ||
|
|
75d5fb2f8d | ||
|
|
e417756971 | ||
|
|
9d961af8ed | ||
|
|
ac25475155 | ||
|
|
983228a8ac | ||
|
|
6e627d8f9f | ||
|
|
dd82d5d3e7 | ||
|
|
df319f007f | ||
|
|
880551aaa3 | ||
|
|
b8c76a16cc | ||
|
|
a52f835288 | ||
|
|
bd9295bc90 | ||
|
|
a43ee8fa3a | ||
|
|
d8a42a4136 | ||
|
|
e2d11014d0 | ||
|
|
6d1e56caac | ||
|
|
c322c6aff9 | ||
|
|
7631aec796 | ||
|
|
033e863750 | ||
|
|
05b96c6972 | ||
|
|
9fc26a2078 | ||
|
|
c894925db1 | ||
|
|
b0da2f63a8 | ||
|
|
1c05793f03 | ||
|
|
bd123ba2f1 | ||
|
|
4aad34ce93 | ||
|
|
b2bd8ee66f | ||
|
|
018434ea57 | ||
|
|
71c230552d | ||
|
|
2a4b440db2 | ||
|
|
22eeb492b0 | ||
|
|
19a1bc0f1d | ||
|
|
58010dafde | ||
|
|
6e64cc3617 | ||
|
|
056ba55f1c | ||
|
|
abd1fdefca | ||
|
|
1fc3807fa8 | ||
|
|
ae91e09943 | ||
|
|
5087cc48f5 | ||
|
|
f7da303d29 | ||
|
|
f90bc7b165 | ||
|
|
9a1354d287 | ||
|
|
b3721122f0 | ||
|
|
3c9ee7f82f | ||
|
|
6ec57d02fd | ||
|
|
99f0bb8468 | ||
|
|
a6738a8493 | ||
|
|
17d6ca9459 | ||
|
|
11fa485440 | ||
|
|
3e67b64b90 | ||
|
|
021180dbe3 | ||
|
|
4f012662e6 | ||
|
|
4adcf7bca5 | ||
|
|
8ddaf24a94 | ||
|
|
50ed0bdfda | ||
|
|
e1efd5e4e0 | ||
|
|
fbd54a2a09 | ||
|
|
22020d8607 | ||
|
|
767aa88930 | ||
|
|
3596723d3d | ||
|
|
03ab646713 | ||
|
|
a5ca6132f0 | ||
|
|
ef5b12af4f | ||
|
|
11f668e163 | ||
|
|
bb303f98d2 | ||
|
|
56061e6471 | ||
|
|
faabe2f2a2 | ||
|
|
6dd09a12da | ||
|
|
68ccd983a0 | ||
|
|
89cdf5e52d | ||
|
|
dc27396c6f | ||
|
|
e2eb1137d2 | ||
|
|
b5d47ae2a5 | ||
|
|
c2b1d8660e | ||
|
|
b2024d38b5 | ||
|
|
589201ad39 | ||
|
|
34c0d87703 | ||
|
|
f71078e112 | ||
|
|
fb8c82d838 | ||
|
|
41432a07ed | ||
|
|
2408104bd0 | ||
|
|
d1cd68cda6 | ||
|
|
3dffaddfe8 | ||
|
|
f023810859 | ||
|
|
256d5d4eb1 | ||
|
|
7edbf8fc8d | ||
|
|
2a20075797 | ||
|
|
c91cbeba1a | ||
|
|
9da4710d54 | ||
|
|
2d1ee3bbbe | ||
|
|
758704d464 | ||
|
|
9639caf019 | ||
|
|
0d45365ba3 | ||
|
|
c19a1b3154 | ||
|
|
ac45bd2963 | ||
|
|
f2d94878da | ||
|
|
532eadf434 | ||
|
|
673842acbc | ||
|
|
aaca5ad372 | ||
|
|
f6906ac3fd | ||
|
|
38a5395c78 | ||
|
|
85dcd5a5b9 | ||
|
|
92fbe2e5d5 | ||
|
|
779d5cba1c | ||
|
|
f4217401e2 | ||
|
|
e99bf6b14b | ||
|
|
84775f7e2a | ||
|
|
8c6bc456a8 | ||
|
|
d58d8bbc35 | ||
|
|
0738f32751 | ||
|
|
110962cc37 | ||
|
|
70e529605c | ||
|
|
aa02e04091 | ||
|
|
a670ce1cf0 | ||
|
|
f552e61157 | ||
|
|
e397b68060 | ||
|
|
cb5580d770 | ||
|
|
0cd4ecf701 | ||
|
|
46291d4a63 | ||
|
|
1344d1c424 | ||
|
|
bb0f3d417f | ||
|
|
0f6d02a83f | ||
|
|
56e00c9c55 | ||
|
|
943ca26eae | ||
|
|
8e1c611e92 | ||
|
|
ed5f23faf2 | ||
|
|
60bd7498ea | ||
|
|
ab1de78b74 | ||
|
|
493d547c7b | ||
|
|
7bcfd0f805 | ||
|
|
3e1b151488 | ||
|
|
820ad7cb28 | ||
|
|
686b4800aa | ||
|
|
cb7828820d | ||
|
|
a6d457f664 | ||
|
|
fd95c634f1 | ||
|
|
df0a744cc9 | ||
|
|
af55ef56c9 | ||
|
|
6c6991f0a9 | ||
|
|
d248a85aee | ||
|
|
64642204fc | ||
|
|
5bb84618c3 | ||
|
|
fc5cce71b7 | ||
|
|
b00aa0696f | ||
|
|
02aa14d7b7 | ||
|
|
f9dfb68e9f | ||
|
|
208eb4ad06 | ||
|
|
5608abdf79 | ||
|
|
2e404f2087 | ||
|
|
024201a7b7 | ||
|
|
7dde3b5d27 | ||
|
|
834726b49e | ||
|
|
204f8204f1 | ||
|
|
3cf4790148 | ||
|
|
180f3f08dc | ||
|
|
67698775a3 | ||
|
|
22f97beeaa | ||
|
|
9f98f21d38 | ||
|
|
94ff71281f | ||
|
|
4a96df1574 | ||
|
|
80448d4a24 | ||
|
|
257c4b29f2 | ||
|
|
3f9db33340 | ||
|
|
2c42fbd38d | ||
|
|
8eca3ec76b | ||
|
|
0b64bc580d | ||
|
|
ce2266d0ed | ||
|
|
60530fad6b | ||
|
|
b8f94ed8a9 | ||
|
|
330b1ca5d8 | ||
|
|
40a7f86cef | ||
|
|
a9b3050265 | ||
|
|
b7e64b3abe | ||
|
|
56baa44c99 | ||
|
|
357d815489 | ||
|
|
e542855639 | ||
|
|
6fc3f49152 | ||
|
|
e67c77b322 | ||
|
|
c3291f672e | ||
|
|
176036402a | ||
|
|
9d5488b82d | ||
|
|
a2618dab31 | ||
|
|
bb46241f98 | ||
|
|
ff7fee2d94 | ||
|
|
9a23a24bd3 | ||
|
|
a62762be92 | ||
|
|
60dbc4ffd6 | ||
|
|
773077ab9c | ||
|
|
679d208c8d | ||
|
|
19bec9a9cf | ||
|
|
a7f6ae19f0 | ||
|
|
475f90d224 | ||
|
|
285c9016d7 | ||
|
|
5923d07abc | ||
|
|
91cece81fb | ||
|
|
b714d421f6 | ||
|
|
20852c7ae5 | ||
|
|
f18f04734d | ||
|
|
2eb7cc286b | ||
|
|
ae91e3e2c1 | ||
|
|
d73b437104 | ||
|
|
04b9d9e400 | ||
|
|
6e7741706e | ||
|
|
af0ee0584d | ||
|
|
cabed69c48 | ||
|
|
2832686193 | ||
|
|
d7149c8282 | ||
|
|
571c7e60aa | ||
|
|
a434829a6c | ||
|
|
60b8716315 | ||
|
|
7aba6d15b7 | ||
|
|
48ada59a2f | ||
|
|
c5aa1abb30 | ||
|
|
daeedd6f73 | ||
|
|
cac80159ff | ||
|
|
a5cb23c32e | ||
|
|
0f5b7e5e6d | ||
|
|
12aaebd154 | ||
|
|
8899d4b960 | ||
|
|
1ba91a1fd6 | ||
|
|
c34d89affd | ||
|
|
e07a4fac97 | ||
|
|
76428b2e70 | ||
|
|
78a0763ad7 | ||
|
|
32591f5af7 | ||
|
|
c1898b97c9 | ||
|
|
5c82b6351c | ||
|
|
14f62a6427 | ||
|
|
2a30a6f2e1 | ||
|
|
7b96ee0d9c | ||
|
|
5994908197 | ||
|
|
d6c3badbba | ||
|
|
9aa9e84bc0 | ||
|
|
f3637eab3f | ||
|
|
9f9ee09f9c | ||
|
|
08b986c5e3 | ||
|
|
c8f6c2582b | ||
|
|
ae1c8dbdfc | ||
|
|
3b5c91b15c | ||
|
|
7a6e9cd598 | ||
|
|
6a8f0bda09 | ||
|
|
05305aa27d | ||
|
|
ae59288b1f | ||
|
|
7269a5e527 | ||
|
|
02dffaade5 | ||
|
|
9686650987 | ||
|
|
eefa3cbe98 | ||
|
|
0a4b5c8676 | ||
|
|
dff3cc21fa | ||
|
|
d7bb0e492c | ||
|
|
af92c26124 | ||
|
|
d1ffa246a9 | ||
|
|
4e7b79f98d | ||
|
|
9cff791ce5 | ||
|
|
fdb2d75cf0 | ||
|
|
825c6e1a80 | ||
|
|
ec9366d72b | ||
|
|
ff304ad3d4 | ||
|
|
b71ba411fd | ||
|
|
dfe7b4e6c6 | ||
|
|
96e2de6de1 | ||
|
|
d4d4dc4fd7 | ||
|
|
2ccbb4c0c4 | ||
|
|
709b098054 | ||
|
|
53ff6c72f0 | ||
|
|
8044adcc50 | ||
|
|
9b91da3798 | ||
|
|
286910e722 | ||
|
|
8fe4322536 | ||
|
|
a7005d13df | ||
|
|
8ca4205d2c | ||
|
|
af30b27724 | ||
|
|
2d688e74f2 | ||
|
|
0a4e3501dc | ||
|
|
1b50ca2b57 | ||
|
|
b454bbd662 | ||
|
|
1480920938 | ||
|
|
65a6231f23 | ||
|
|
4b70116754 | ||
|
|
e136b0a9f1 | ||
|
|
e45cc0267f | ||
|
|
d17cce2ca4 | ||
|
|
c93cc296a0 | ||
|
|
f63d42a75b | ||
|
|
1ae7be0846 | ||
|
|
c3388f2a48 | ||
|
|
4909f4395d | ||
|
|
2a8122e280 | ||
|
|
937eaaaaa1 | ||
|
|
f0974509bf | ||
|
|
0d71b0d8fe | ||
|
|
cf0a76c343 | ||
|
|
0f5b90998e | ||
|
|
8963b79db0 | ||
|
|
dc0a698330 | ||
|
|
6e54ed096f | ||
|
|
a552c11983 | ||
|
|
1bdf6888c6 | ||
|
|
f69fcbb783 | ||
|
|
6771431038 | ||
|
|
712568d118 | ||
|
|
4916c4cc50 | ||
|
|
8ed26c72e2 | ||
|
|
919010235c | ||
|
|
580d795054 | ||
|
|
329193f2f2 | ||
|
|
b20acaec6f | ||
|
|
516d420a1e | ||
|
|
b92b34a8ad | ||
|
|
7d7596bbdd | ||
|
|
acac2dba90 | ||
|
|
727ac7d9df | ||
|
|
2fc54ae343 | ||
|
|
e04cd0488e | ||
|
|
f867e21647 | ||
|
|
ec27935d81 | ||
|
|
08ae0387a9 | ||
|
|
ca69c783d3 | ||
|
|
12198dd6df | ||
|
|
d1fbbe1167 | ||
|
|
65e79b0d07 | ||
|
|
9fb9df1843 | ||
|
|
b15166a599 | ||
|
|
bf81dfe806 | ||
|
|
f588b3b6e7 | ||
|
|
c29db74b1d | ||
|
|
213fc3da91 | ||
|
|
ab4f721914 | ||
|
|
8ac9876ec3 | ||
|
|
4fbc113fcb | ||
|
|
4d3d744cd6 | ||
|
|
21416fa8c8 | ||
|
|
f2f973bf00 | ||
|
|
0c655dbfd4 | ||
|
|
ebac947c92 | ||
|
|
ce85a9d0b1 | ||
|
|
f114ca33d5 | ||
|
|
850628f7f6 | ||
|
|
8681d58ffb | ||
|
|
8f2cd5a353 | ||
|
|
f6f12e2566 | ||
|
|
3512ed6da3 | ||
|
|
4a29a77a78 | ||
|
|
aa17962936 | ||
|
|
10cab8dcb4 | ||
|
|
0a720fae72 | ||
|
|
0153b5be22 | ||
|
|
479a9ead03 | ||
|
|
b207a48175 | ||
|
|
9e3311c6f9 | ||
|
|
88257c7e03 | ||
|
|
a30e2f295f | ||
|
|
96ad9dee18 | ||
|
|
8800195c2c | ||
|
|
74b7c938a8 | ||
|
|
3dcacfe631 | ||
|
|
bf02406bf4 | ||
|
|
4371dbda3c | ||
|
|
c6640cef96 | ||
|
|
11ca6972c6 | ||
|
|
e235d22c7c | ||
|
|
512d74568a | ||
|
|
617c2ba578 | ||
|
|
5476c6248c | ||
|
|
916366bd10 | ||
|
|
5e66893719 | ||
|
|
16964b4987 | ||
|
|
73846ffa9b | ||
|
|
d5824239f5 | ||
|
|
c4270fc918 | ||
|
|
a29a1605a7 | ||
|
|
22868a594f | ||
|
|
aed64a27e8 | ||
|
|
2b338a63ba | ||
|
|
cda4027f83 | ||
|
|
7814269e15 | ||
|
|
e2175db7cb | ||
|
|
f1828b0c92 | ||
|
|
5cf9fab4f2 | ||
|
|
c3764df4e2 | ||
|
|
a2a1033701 | ||
|
|
2536f7fc6f | ||
|
|
b6fe78b82c | ||
|
|
f8cddf0bce | ||
|
|
2c7a32b47e | ||
|
|
e6dd4c6cfe | ||
|
|
fb756fe9ba | ||
|
|
c21e890b48 | ||
|
|
3720aa98df | ||
|
|
640aa7854a | ||
|
|
9689690730 | ||
|
|
a08620d7c9 | ||
|
|
fdbdc8e3f3 | ||
|
|
071d3b3023 | ||
|
|
f6b12d946a | ||
|
|
11572b4939 | ||
|
|
0c75b9a994 | ||
|
|
ed44aad076 | ||
|
|
6dc00bff74 | ||
|
|
5f2407baeb | ||
|
|
45f41f3cf7 | ||
|
|
0c29d61a35 | ||
|
|
58e549e3b3 | ||
|
|
2ae4f6b338 | ||
|
|
e28e41c1d9 | ||
|
|
05dfe51260 | ||
|
|
ec6e94f4ca | ||
|
|
bdb332bd79 | ||
|
|
9295dfc7c1 | ||
|
|
fb4bee4801 | ||
|
|
8b7c2aa48d | ||
|
|
9bec96f160 | ||
|
|
cb517c907d | ||
|
|
a6f5e59cbb | ||
|
|
9420143a36 | ||
|
|
eb8835b63a | ||
|
|
f9468db266 | ||
|
|
1135ba054c | ||
|
|
8f7509a23f | ||
|
|
cba9ee98ad | ||
|
|
0ec0fef8f3 | ||
|
|
a348562f56 | ||
|
|
392a606bbc | ||
|
|
440bed4485 | ||
|
|
a321966e5b | ||
|
|
f180c1018f | ||
|
|
f267aa6dc6 | ||
|
|
1c74e83c2c | ||
|
|
099a895eb6 | ||
|
|
3b810f84da | ||
|
|
10f2c7d36b | ||
|
|
5b849638de | ||
|
|
857fd6f782 | ||
|
|
29edec63ab | ||
|
|
c6afc4756a | ||
|
|
365657cf88 | ||
|
|
5441dedcf4 | ||
|
|
254b6d8af2 | ||
|
|
1459aea5cf | ||
|
|
80d8525671 | ||
|
|
389a165ed3 | ||
|
|
d8f309d21b | ||
|
|
ee983ddfaa | ||
|
|
c1cdd37e9d | ||
|
|
646f05933d | ||
|
|
3f854a7f27 | ||
|
|
740dbea8bd | ||
|
|
95a44936ac | ||
|
|
9deafc7371 | ||
|
|
c1af7e374d | ||
|
|
cd71db72be | ||
|
|
a9d90f966b | ||
|
|
1a323ca551 | ||
|
|
2d85e191bc | ||
|
|
1b971a859c | ||
|
|
78b697d1c2 | ||
|
|
9da2ce6672 | ||
|
|
39fabd501d | ||
|
|
3f1867dd6f | ||
|
|
68d29041b0 | ||
|
|
b300e86962 | ||
|
|
562ecf2ee5 | ||
|
|
d294938a2c | ||
|
|
027cf23069 | ||
|
|
c4598637bb | ||
|
|
8a94b6a334 | ||
|
|
c80c163212 | ||
|
|
921a994eb6 | ||
|
|
65e60da288 | ||
|
|
661185083e | ||
|
|
a2a26555e2 | ||
|
|
7f11250b79 | ||
|
|
a6d2f2ecf9 | ||
|
|
399d447eec | ||
|
|
fb6204e47c | ||
|
|
566856c8fb | ||
|
|
d29dd207b6 | ||
|
|
e20489900d | ||
|
|
567a268ded | ||
|
|
6a57d242f9 | ||
|
|
41e0851d70 | ||
|
|
95b378348c | ||
|
|
1309bf7c6e | ||
|
|
2531b507b0 | ||
|
|
16dc0419e2 | ||
|
|
4e7ec6bfb4 | ||
|
|
035ad48fe4 | ||
|
|
ff7c582157 | ||
|
|
0876a91e17 | ||
|
|
a2d3c1d73e | ||
|
|
1a721deee6 | ||
|
|
4355d9c83f | ||
|
|
239891c400 | ||
|
|
ac10aa0a1e | ||
|
|
7ecf414a47 | ||
|
|
87c96d06a4 | ||
|
|
26a8d9c6b5 | ||
|
|
947a77f619 | ||
|
|
c850513b7f | ||
|
|
c47d827139 | ||
|
|
a2684ae47d | ||
|
|
2b1339b560 | ||
|
|
59aec2bcc9 | ||
|
|
61d1581b96 | ||
|
|
8e47332ce8 | ||
|
|
ffe8bee98b | ||
|
|
1e07486017 | ||
|
|
58da196876 | ||
|
|
78af155a6d | ||
|
|
d7e1b3d7ba | ||
|
|
877eae35cd | ||
|
|
87846b68de | ||
|
|
6581ee8a2a | ||
|
|
951064e657 | ||
|
|
68ebf945a5 | ||
|
|
153817e859 | ||
|
|
ba0bc54fa7 | ||
|
|
9b99975017 | ||
|
|
e6a6862ba4 | ||
|
|
b7d3e9191a | ||
|
|
b461b2c5db | ||
|
|
8f7f48bcaa | ||
|
|
7dc8e394f7 | ||
|
|
f5c8faa5c3 | ||
|
|
c84b4010d1 | ||
|
|
b720c1294f | ||
|
|
d442ab5ce6 | ||
|
|
61fdf300f4 | ||
|
|
4dabca9160 | ||
|
|
85d6946645 | ||
|
|
4b1d8ce729 | ||
|
|
c52b0084ce | ||
|
|
8db725d8bd | ||
|
|
c67d1cbbc4 | ||
|
|
3ea4062e33 | ||
|
|
65e99b9212 | ||
|
|
e83193ba0d | ||
|
|
835338ef63 | ||
|
|
57872d2e40 | ||
|
|
b5a7996769 | ||
|
|
ddbb4ec5c6 | ||
|
|
7cb3080596 | ||
|
|
f6c91294aa | ||
|
|
412d333525 | ||
|
|
378dede02d | ||
|
|
0e3db2635f | ||
|
|
77147cbafd | ||
|
|
43e5fd7766 | ||
|
|
fc3ca3d6b3 | ||
|
|
51f52bb71b | ||
|
|
033c3f632d | ||
|
|
6d862ef36a | ||
|
|
f816274fb9 | ||
|
|
0816286696 | ||
|
|
b421df5e2f | ||
|
|
f6a136643d | ||
|
|
b5e278183a | ||
|
|
8e85042e37 | ||
|
|
f943756624 | ||
|
|
92814aed56 | ||
|
|
e8a1b976e1 | ||
|
|
ef48dbce30 | ||
|
|
196cc6b980 | ||
|
|
1788c74d4c | ||
|
|
74e808d1dc | ||
|
|
72dacc5b21 | ||
|
|
ebdaf65b89 | ||
|
|
fa43149c98 | ||
|
|
e8ae7193ee | ||
|
|
aa21c0fb76 | ||
|
|
10826466a4 | ||
|
|
3b2d7d8c47 | ||
|
|
212443cb8e | ||
|
|
523141d54b | ||
|
|
d8a0859f16 | ||
|
|
c70cc9abb5 | ||
|
|
66b626e605 | ||
|
|
4b28119318 | ||
|
|
666506aed0 | ||
|
|
a55f63a428 | ||
|
|
fb441e151c | ||
|
|
82d85386c0 | ||
|
|
242b2f6faa | ||
|
|
31d31dd583 | ||
|
|
f6077012b1 | ||
|
|
18bb45dcd8 | ||
|
|
10b919e4f4 | ||
|
|
98cedf821c | ||
|
|
729f72e768 | ||
|
|
d01861e949 | ||
|
|
adec48f253 | ||
|
|
27a8ce18d5 | ||
|
|
4b740a9f5a | ||
|
|
0b34b4546e | ||
|
|
c17919cd97 | ||
|
|
462f1f02bf | ||
|
|
ddc433a126 | ||
|
|
ab649e860d | ||
|
|
676ddc3773 | ||
|
|
7d2cf3f91b | ||
|
|
492d41d756 | ||
|
|
191c2fd709 | ||
|
|
027fc9ae04 | ||
|
|
b73d0e1e96 | ||
|
|
315f2b63b9 | ||
|
|
ad205679cb | ||
|
|
6ef8d19e94 | ||
|
|
6b0f25ca59 | ||
|
|
820d341f67 | ||
|
|
70f904d54c | ||
|
|
aee607908d | ||
|
|
c99c57e24d | ||
|
|
00d75be479 | ||
|
|
3a9bd31919 | ||
|
|
51be1bce39 | ||
|
|
822b8e14c1 | ||
|
|
2ab30a7933 | ||
|
|
1be8a5e862 | ||
|
|
98d61fa1b3 | ||
|
|
5b3d16a316 | ||
|
|
b6863828b4 | ||
|
|
98fefd0e52 | ||
|
|
d476d78e2b | ||
|
|
98113fb79f | ||
|
|
90827ff012 | ||
|
|
44078ba2e0 | ||
|
|
866219ee2e | ||
|
|
d785bd6b7e | ||
|
|
3e4e6653a8 | ||
|
|
8d250e2664 | ||
|
|
d455cea29e | ||
|
|
374e8eb910 | ||
|
|
833fc74b4c | ||
|
|
62417bfebd | ||
|
|
abc9ecbeee | ||
|
|
a1f71ab459 | ||
|
|
d123929fb4 | ||
|
|
141827c59c | ||
|
|
9fbcc9edaf | ||
|
|
83d9c5be30 | ||
|
|
6aadbbc3d0 | ||
|
|
d5bc865cf4 | ||
|
|
d766733489 | ||
|
|
f51c640d17 | ||
|
|
66f10b598a | ||
|
|
59957650aa | ||
|
|
d43fbd8964 | ||
|
|
f5de4349bf | ||
|
|
f67e1a021d | ||
|
|
33f2c5fbf7 | ||
|
|
6a7bde930d | ||
|
|
b827a2142b | ||
|
|
8bd2416bad | ||
|
|
3684eb248c | ||
|
|
9077632d1b | ||
|
|
d40261ae29 | ||
|
|
77dbb574c7 | ||
|
|
89a660144e | ||
|
|
7554af5d41 | ||
|
|
4b742fea2d | ||
|
|
a6c6cff8b6 | ||
|
|
5813753ef9 | ||
|
|
cf0dad2631 | ||
|
|
cfddb99a8b | ||
|
|
845d5bf223 | ||
|
|
dbbd972909 | ||
|
|
aba3ba24af | ||
|
|
81c27dde9f | ||
|
|
476b552fd0 | ||
|
|
5c4d5d4b9d | ||
|
|
ae5ef2c286 | ||
|
|
b0f3c8a087 | ||
|
|
43fc7ffc65 | ||
|
|
ee24fca20e | ||
|
|
a00fdbe042 | ||
|
|
c2eb28a8f5 | ||
|
|
4c6c20f3de | ||
|
|
b2ae8135c6 | ||
|
|
aecde97200 | ||
|
|
331caccc22 | ||
|
|
63e2b74bb1 | ||
|
|
433f03161c | ||
|
|
6ec84b6249 | ||
|
|
29b6a48816 | ||
|
|
00755fd417 | ||
|
|
9c5156e41a | ||
|
|
226c45ee2e | ||
|
|
e04390b2fe | ||
|
|
9a87eb4d9b | ||
|
|
2284d9d081 | ||
|
|
cf61369a8d | ||
|
|
4e14bd2396 | ||
|
|
0798d5c071 | ||
|
|
80d5b1d23f | ||
|
|
0bd87288d1 | ||
|
|
51e06c2eb9 | ||
|
|
b29663923d | ||
|
|
f57a323cda | ||
|
|
03ffe85113 | ||
|
|
4edc8aa85b | ||
|
|
04ecb4d56f | ||
|
|
0ac0a92024 | ||
|
|
ae1e14ddb7 | ||
|
|
aa246ab63a | ||
|
|
d4350d7d99 | ||
|
|
f07fe6084a | ||
|
|
4e29055a20 | ||
|
|
6d0c06a853 | ||
|
|
abe6e1fcb8 | ||
|
|
683105c4f7 | ||
|
|
6f2331582c | ||
|
|
f0f97e310c | ||
|
|
2331f2c31a | ||
|
|
704b7f6734 | ||
|
|
7ac7ae43ab | ||
|
|
d52b23d6b5 | ||
|
|
8b17916cd9 | ||
|
|
4a0f4e3ac8 | ||
|
|
85116f43a2 | ||
|
|
3ecb8920ea | ||
|
|
8923d97129 | ||
|
|
375e1cc887 | ||
|
|
78dcbc8bb9 | ||
|
|
a3f7b98bf7 | ||
|
|
12b61e8767 | ||
|
|
0e3b014c2c | ||
|
|
10db8c39f3 | ||
|
|
371bcb3706 | ||
|
|
714c575409 | ||
|
|
c0941e3b7f | ||
|
|
026acb7467 | ||
|
|
3c05cc6a43 | ||
|
|
f1a2926bdf | ||
|
|
88e8a138ac | ||
|
|
53d0301828 | ||
|
|
b10fec1963 | ||
|
|
08e1eb7778 | ||
|
|
d6713c090c | ||
|
|
497ecbf881 | ||
|
|
6f7d03737e | ||
|
|
ad60c6bbe1 | ||
|
|
92fdda722b | ||
|
|
3cc876f972 | ||
|
|
7d1e706045 | ||
|
|
11756fcedd | ||
|
|
2e1f2cd56d | ||
|
|
c08611b2c3 | ||
|
|
f87f89427d | ||
|
|
c3319ebbf3 | ||
|
|
f7b765c5d0 | ||
|
|
9512b74008 | ||
|
|
5a3517f953 | ||
|
|
731c4981c9 | ||
|
|
8f20a8a859 | ||
|
|
7693a0fe14 | ||
|
|
98c3676fdf | ||
|
|
d7664a9746 | ||
|
|
d868fd6970 | ||
|
|
300396b97e | ||
|
|
1d8faa70a1 | ||
|
|
1051b1bb0e | ||
|
|
c367824041 | ||
|
|
81cedf0d43 | ||
|
|
16c6203b97 | ||
|
|
3e1d785f58 | ||
|
|
b7c0eeb7b4 | ||
|
|
fd31b4dcad | ||
|
|
41bf9ededa | ||
|
|
d745712650 | ||
|
|
1df732be7c | ||
|
|
8b413eca52 | ||
|
|
3597077d39 | ||
|
|
7704a06601 | ||
|
|
7b3ad027bf | ||
|
|
cde3af08aa | ||
|
|
7418fb867d | ||
|
|
ce71e09f65 | ||
|
|
7a362411b1 | ||
|
|
e95dfe4671 | ||
|
|
e7b79bb6b9 | ||
|
|
59bc309f5b | ||
|
|
d2fb40f317 | ||
|
|
5dec13f00b | ||
|
|
7464c05483 | ||
|
|
7b97b2e6c3 | ||
|
|
168f46cf56 | ||
|
|
5622b0ce9f | ||
|
|
c7a0b2f5cc | ||
|
|
7546b2a6c5 | ||
|
|
e363c82f2d | ||
|
|
b9643dbd94 | ||
|
|
2664e08eb3 | ||
|
|
733ba7d439 | ||
|
|
2255be3a86 | ||
|
|
03f8e2e353 | ||
|
|
be1bf3f3ca | ||
|
|
5f1334660e | ||
|
|
ec381f43ef | ||
|
|
eba843535b | ||
|
|
4fa286bd60 | ||
|
|
7293b0f8dd | ||
|
|
0279ee1985 | ||
|
|
83053c60f9 | ||
|
|
ad28e5484c | ||
|
|
b91d629b90 | ||
|
|
96df3a0f35 | ||
|
|
de8fb5e2d0 | ||
|
|
51d79c7626 | ||
|
|
f7c22d2480 | ||
|
|
b117a4a19c |
395
.gitattributes
vendored
@@ -1,395 +0,0 @@
|
||||
thermion_dart/native/lib/macos/debug/libbackendtest_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libgeometry_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libsdl2.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmathio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmatdbg_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libspirv-cross-msl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libimageio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libOGLCompiler.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-diff.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilamat_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmathio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libassimp.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmatlang.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmatdbg_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/swift/ThermionDartTexture.h filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilamat_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbasis_encoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libimgui.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libimageio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbackend_test.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgetopt.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgtest.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmatdbg_resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libpng.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmatdbg_resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libsuzanne-resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgeometry_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmath.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libpng16.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbenchmark_main.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbluegl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/swift/build.sh filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libbluegl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libpng.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libglslang.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbenchmark.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgltf-demo-resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-lint.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilagui.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libsample-resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libOSDependent.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libspirv-cross-glsl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libgltfio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libpng.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libgltfio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libmatdbg.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libspirv-cross-core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilagui.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmath.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/swift/libdartfilamenttexture.dylib filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-link.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libz.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmatdbg.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/swift filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libSPIRV-Tools-reduce.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/debug/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/ios/libimageio.a filter=lfs diff=lfs merge=lfs -text
|
||||
materials/Makefile filter=lfs diff=lfs merge=lfs -text
|
||||
materials/gizmo.filamat filter=lfs diff=lfs merge=lfs -text
|
||||
materials/gizmo.mat filter=lfs diff=lfs merge=lfs -text
|
||||
materials/image.filamat filter=lfs diff=lfs merge=lfs -text
|
||||
materials/image.mat filter=lfs diff=lfs merge=lfs -text
|
||||
materials/unlit_fade.mat filter=lfs diff=lfs merge=lfs -text
|
||||
materials/unlit_opaque.mat filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64 filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86 filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/arm64-v8a/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/armeabi-v7a/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86_64/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/android/x86/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/thermion_dart.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/main.unopt.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/main.wasm filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/thermion_dart.js filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_flutter_federated/thermion_flutter/example/web/thermion_dart.worker.js filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmatdbg_resources.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libuberarchive.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libbasis_transcoder.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libcivetweb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libgltfio_core.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libimage.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libviewer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libvkshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilagui.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilamat_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libshaders.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libtinyexr.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmeshoptimizer.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libcamutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilamat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libibl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmikktspace.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libuberzlib.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libutils.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libzstd.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilaflat.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilamat_lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libgltfio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libimageio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libgeometry_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libbluevk.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libdracodec.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilabridge.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilameshio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libktxreader.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmatdbg.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmathio.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libsmol-v.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libbackend.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libbluegl.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilament.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libgeometry.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libstb.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libpng.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libfilament-iblprefilter.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libibl-lite.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmatdbg_combined.a filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/native/lib/macos/release/libmath.a filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/default_env/default_env_skybox.ktx filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.gltf filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/Boden_baseColor.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet.bin filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet.gltf filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic1.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/default_env filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/Boden_metallicRoughness.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor3.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic4.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/README.md filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/default_env/default_env_ibl.ktx filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.blend filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal1.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic3.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/background.ktx filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/scene.bin filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor4.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal4.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.blend1 filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/solidcolor.mat filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/body_baseColor.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/body_emissive.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_occlusionRoughnessMetallic2.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/solidcolor.filamat filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/scene.gltf filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal2.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/texture_test.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_normal3.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/Boden_normal.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/body_normal.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/material_metallicRoughness.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor2.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/shapes/shapes.bin filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/body_metallicRoughness.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/material_baseColor.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/BusterDrone/textures/material_normal.jpg filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/FlightHelmet/FlightHelmet_baseColor1.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/assets/background.png filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
thermion_dart/test/assets/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/1.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/App.framework/Versions/A/Resources/flutter_assets/assets/3.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/macos/Build/Products/Debug/example.app/Contents/Frameworks/App.framework/Versions/A/Resources/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/assets/debug/flutter_assets/assets/shapes/shapes.glb filter=lfs diff=lfs merge=lfs -text
|
||||
examples/flutter/example/build/app/intermediates/flutter/debug/flutter_assets/assets/2.glb filter=lfs diff=lfs merge=lfs -text
|
||||
106
.github/workflows/dart.yml
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
# This workflow uses actions that are not certified by GitHub.
|
||||
# They are provided by a third-party and are governed by
|
||||
# separate terms of service, privacy policy, and support
|
||||
# documentation.
|
||||
name: Dart
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "develop" ]
|
||||
pull_request:
|
||||
branches: [ "develop" ]
|
||||
|
||||
jobs:
|
||||
thermion_dart:
|
||||
name: thermion_dart
|
||||
runs-on: windows-2019
|
||||
defaults:
|
||||
run:
|
||||
working-directory: thermion_dart # Adjust this path
|
||||
shell: bash # This helps ensure consistent behavior across platforms
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
# Enable debug logging for Actions
|
||||
- name: Enable debug logging
|
||||
run: echo "ACTIONS_STEP_DEBUG=true" >> $GITHUB_ENV
|
||||
|
||||
# Setup Visual Studio environment
|
||||
- name: Setup MSVC
|
||||
uses: ilammy/msvc-dev-cmd@v1
|
||||
with:
|
||||
arch: x64
|
||||
- uses: subosito/flutter-action@v2
|
||||
with:
|
||||
flutter-version: '3.26.0-0.1.pre' # Specify Flutter version
|
||||
channel: 'master' # or 'beta', 'dev', 'master'
|
||||
cache: true # Caches dependencies between runs
|
||||
architecture: x64 # Explicitly specify x64 architecture
|
||||
- name: Install dependencies
|
||||
run: flutter pub get # even though this is a Dart package, it has as dev_dependency on objective_c for testing which for some reason has a Flutter dependency
|
||||
|
||||
# Ensure Visual C++ runtime is available
|
||||
- name: Install Visual C++ redistributable
|
||||
run: |
|
||||
choco install visualstudio2019-workload-vctools -y
|
||||
choco install vcredist140 -y
|
||||
|
||||
# Uncomment this step to verify the use of 'dart format' on each commit.
|
||||
# - name: Verify formatting
|
||||
# run: dart format --output=none --set-exit-if-changed .
|
||||
|
||||
#- name: Analyze project source
|
||||
# run: dart analyze
|
||||
|
||||
- name: Build and Test
|
||||
shell: cmd
|
||||
run: |
|
||||
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"
|
||||
dart --enable-experiment=native-assets test test/dummy_tests.dart
|
||||
|
||||
# Upload logs on failure
|
||||
- name: Upload logs
|
||||
if: failure() || steps.build.outcome == 'failure'
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: build-logs
|
||||
path: |
|
||||
D:\a\thermion\thermion\thermion_dart\.dart_tool\thermion_dart\log\build.log
|
||||
# /Users/runner/work/thermion/thermion/thermion_dart//.dart_tool/thermion_dart/log/build.log
|
||||
retention-days: 5
|
||||
|
||||
# Capture crash dumps if they exist
|
||||
- name: Collect crash dumps
|
||||
if: failure()
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: crash-dumps
|
||||
path: |
|
||||
${{ runner.temp }}/*.dmp
|
||||
${{ env.LOCALAPPDATA }}/Temp/*.dmp
|
||||
${{ env.LOCALAPPDATA }}/CrashDumps/*.dmp
|
||||
|
||||
# thermion_flutter:
|
||||
# name: thermion_flutter
|
||||
# runs-on: macos-13
|
||||
# defaults:
|
||||
# run:
|
||||
# working-directory: thermion_flutter/thermion_flutter # Adjust this path
|
||||
|
||||
# steps:
|
||||
# - uses: actions/checkout@v4
|
||||
|
||||
# - uses: dart-lang/setup-dart@9a04e6d73cca37bd455e0608d7e5092f881fd603
|
||||
|
||||
# - name: Install dependencies
|
||||
# run: dart pub get
|
||||
|
||||
# # Uncomment this step to verify the use of 'dart format' on each commit.
|
||||
# # - name: Verify formatting
|
||||
# # run: dart format --output=none --set-exit-if-changed .
|
||||
|
||||
# - name: Analyze project source
|
||||
# run: dart analyze
|
||||
|
||||
# - name: Run tests
|
||||
# run: dart --enable-experiment=native-assets test
|
||||
1363
CHANGELOG.md
@@ -1,38 +0,0 @@
|
||||
# Thermion
|
||||
Thermion is a package for creating 3D applications with Dart and/or Flutter.
|
||||
|
||||
## Overview
|
||||
|
||||
### Packages
|
||||
The two most relevant Thermion packages are:- [thermion_dart], which contains all the code needed to create a viewer, - [thermion_flutter], which is a Flutter-only package that contains all the logic necessary to create/embed a rendering surface inside a Flutter app.
|
||||
By decoupling the Flutter-specific components from the Dart-only components, Thermion can be used for rendering in both Flutter and non-Flutter applications. As far as the latter is concerned, Thermion ships with examples for Javascript/WASM/HTML, and for CLI/headless mode on MacOS.
|
||||
|
||||
### pubspec.yaml
|
||||
If you are creating a Flutter application, add [thermion_flutter] as a dependency to your `pubspec.yaml`.
|
||||
```$ cd /path/to/your/flutter/project$ flutter pub add thermion_flutter```
|
||||
|
||||
### ThermionFlutterPlugin
|
||||
Create an instance of `ThermionFlutterPlugin` in your app.
|
||||
```dart
|
||||
class _MyAppState extends State<MyApp> {
|
||||
late ThermionFlutterPlugin _thermionFlutterPlugin; late Future<ThermionViewer> _thermionViewer;
|
||||
void initState() { _thermionFlutterPlugin = ThermionFlutterPlugin(); _thermionViewer = _thermionFlutterPlugin.createViewer(); }}```
|
||||
`ThermionFlutterPlugin` is a singleton, and mostly just handles creating a 3D rendering surface that can be embedded in a Flutter widget hierarchy. [ThermionViewer] is the interface for actually interacting with the scene (loading assets, manipulating the camera, and so on). Call `createViewer` on `ThermionFlutterPlugin` to obtain a reference to `ThermionViewer` (which is also a singleton).
|
||||
Note: `ThermionFlutterPlugin` and `ThermionViewer` were designed as separate classes so we can use `ThermionViewer` in non-Flutter apps.
|
||||
### ThermionWidget
|
||||
On most platforms[0], [ThermionWidget] is the widget where your rendered content (i.e. your viewport) will appear. This can be any size; the 3D viewport will be scaled to fit the dimensions on this widget. On most platforms, a [ThermionWidget] can be positioned above or below any other widget in the hierarchy and the Z-order will be preserved.
|
||||
```class _MyAppState extends State<MyApp> {
|
||||
late ThermionFlutterPlugin _thermionFlutterPlugin; late Future<ThermionViewer> _thermionViewer;
|
||||
void initState() { _thermionFlutterPlugin = ThermionFlutterPlugin(); _thermionViewer = _thermionFlutterPlugin.createViewer(); } Widget build(BuildContext context) { return Stack(children:[ Positioned.fill( child:ThermionWidget( plugin:_thermionFlutterPlugin ) ) ]); }}```
|
||||
|
||||
[0] Currently, the rendering surface on Windows and Web will always appear at the bottom of the application. You still need a ThermionWidget, but this only keeps track of the dimensions of your viewport and punches a transparent hole in the hierarchy; the actual rendering surface is attached beneath the Flutter window.
|
||||
`ThermionWidget` will not display the rendering surface (even an empty one) until the call to `createViewer` has been completed.
|
||||
- by default a Container will be rendered with solid red. If you want to change this, pass a widget as the initial paramer to the ThermionWidget constructor.on the second frame, ThermionWidget will pass its dimensions/pixel ratio to the FilamentController
|
||||
|
||||
You can then call createViewer to create:the rendering surface (on most platforms, a backing texture that will be registered with Flutter for use in a Texture widget)a rendering threada ThermionViewerFFI and an AssetManager, which will allow you to load assets/cameras/lighting/etc via the FilamentControllerafter an indeterminate number of frames, FilamentController will notify ThermionWidget when a rendering surface is available the viewportThermionWidget will replace the default initial Widget with the viewport (which will initially be solid black or white, depending on your platform).IMPORTANT: there will be a delay between adding a ThermionWidget, calling createViewer and the actual rendering viewport becoming available. This is why we fill ThermionWidget with red - to make it abundantly clear that you need to handle this asynchronous delay appropriately. Once createViewer has completed, the viewport is available for rendering.
|
||||
Currently, the initial widget will also be displayed whenever the viewport is resized (including changing orientation on mobile and drag-to-resize on desktop). You probably want to change this from the default red.
|
||||
Congratulations! You now have a scene. It's completely empty, so you probably want to add something visible.
|
||||
|
||||
|
||||
|
||||
|
||||
12
Makefile
@@ -12,6 +12,7 @@ flutter-example-web: dart-web-clean dart-web
|
||||
flutter-example-macos:
|
||||
cd thermion_flutter_federated/thermion_flutter/example/web && flutter run -d macos
|
||||
swift-bindings:
|
||||
swiftc -c thermion_flutter/thermion_flutter/macos/Classes/ThermionTexture.swift -module-name swift_module -emit-objc-header-path thermion_dart/native/include/generated/ThermionTextureSwiftObjCAPI.h -emit-library -o thermion_dart/test/libThermionTextureSwift.dylib
|
||||
cd thermion_dart/ && dart --enable-experiment=native-assets run ffigen --config ffigen/swift.yaml
|
||||
bindings:
|
||||
cd thermion_dart/ && dart --enable-experiment=native-assets run ffigen --config ffigen/native.yaml
|
||||
@@ -22,10 +23,13 @@ bindings:
|
||||
#
|
||||
materials: FORCE
|
||||
@echo "Using Filament build from ${FILAMENT_PATH}"
|
||||
${FILAMENT_PATH}/matc -a opengl -a metal -o materials/image.filamat materials/image.mat
|
||||
$(FILAMENT_PATH)/resgen -c -p image -x ios/include/material/ materials/image.filamat
|
||||
$(FILAMENT_PATH)/matc -a opengl -a metal -o materials/gizmo.filamat materials/gizmo.mat
|
||||
$(FILAMENT_PATH)/resgen -c -p gizmo -x ios/include/material/ materials/gizmo.filamat
|
||||
@for material in unlit image unlit_fixed_size grid; do \
|
||||
${FILAMENT_PATH}/matc -a opengl -a metal -o materials/$$material.filamat materials/$$material.mat; \
|
||||
$(FILAMENT_PATH)/resgen -c -p $$material -x thermion_dart/native/include/material/ materials/$$material.filamat; \
|
||||
echo '#include "'$$material'.h"' | cat - thermion_dart/native/include/material/$$material.c > thermion_dart/native/include/material/$$material.c.new; \
|
||||
mv thermion_dart/native/include/material/$$material.c.new thermion_dart/native/include/material/$$material.c; \
|
||||
done
|
||||
|
||||
#rm materials/*.filamat
|
||||
|
||||
FORCE: ;
|
||||
|
||||
67
README.md
@@ -1,14 +1,14 @@
|
||||

|
||||
|
||||
<p align="center">
|
||||
<a href="https://docs.page/nmfisher/thermion/quickstart">Quickstart (Flutter)</a> •
|
||||
<a href="https://docs.page/nmfisher/thermion">Documentation</a> •
|
||||
<a href="https://docs.page/nmfisher/thermion/examples">Showcase</a> •
|
||||
<a href="https://thermion.dev/quickstart">Quickstart (Flutter)</a> •
|
||||
<a href="https://thermion.dev/">Documentation</a> •
|
||||
<a href="https://thermion.dev/showcase">Showcase</a> •
|
||||
<a href="https://dartpad.thermion.dev/">Playground</a> •
|
||||
<a href="https://discord.gg/h2VdDK3EAQ">Discord</a>
|
||||
</p>
|
||||
|
||||
## Cross-platform 3D engine for Dart and Flutter.
|
||||
## Cross-platform 3D toolkit for Dart and Flutter.
|
||||
|
||||
<a href="https://pub.dev/packages/thermion_dart"><img src="https://img.shields.io/pub/v/thermion_dart?label=pub.dev&labelColor=333940&logo=dart&color=00589B" alt="pub"></a>
|
||||
<a href="https://github.com/nmfisher/thermion"><img src="https://img.shields.io/github/stars/nmfisher/flutter_filament?style=flat&label=stars&labelColor=333940&color=8957e5&logo=github" alt="github"></a>
|
||||
@@ -22,9 +22,66 @@
|
||||
- camera/entity manipulation with mouse (desktop) and gestures (mobile)
|
||||
- skinning + morph animations
|
||||
|
||||
### Quickstart (Flutter)
|
||||
|
||||
From the command line:
|
||||
|
||||
```bash
|
||||
flutter channel master
|
||||
flutter upgrade
|
||||
flutter config --enable-native-assets
|
||||
```
|
||||
|
||||
In your Flutter app:
|
||||
|
||||
```dart
|
||||
_thermionViewer = await ThermionFlutterPlugin.createViewer();
|
||||
|
||||
// Geometry and models are represented as "entities". Here, we load a glTF
|
||||
// file containing a plain cube.
|
||||
// By default, all paths are treated as asset paths. To load from a file
|
||||
// instead, use file:// URIs.
|
||||
var entity =
|
||||
await _thermionViewer!.loadGlb("assets/cube.glb", keepData: true);
|
||||
|
||||
// Thermion uses a right-handed coordinate system where +Y is up and -Z is
|
||||
// "into" the screen.
|
||||
// By default, the camera is located at (0,0,0) looking at (0,0,-1); this
|
||||
// would place it directly inside the cube we just loaded.
|
||||
//
|
||||
// Let's move the camera to (0,0,10) to ensure the cube is visible in the
|
||||
// viewport.
|
||||
await _thermionViewer!.setCameraPosition(0, 0, 10);
|
||||
|
||||
// Without a light source, your scene will be totally black. Let's load a skybox
|
||||
// (a cubemap image that is rendered behind everything else in the scene)
|
||||
// and an image-based indirect light that has been precomputed from the same
|
||||
// skybox.
|
||||
await _thermionViewer!.loadSkybox("assets/default_env_skybox.ktx");
|
||||
await _thermionViewer!.loadIbl("assets/default_env_ibl.ktx");
|
||||
|
||||
// Finally, you need to explicitly enable rendering. Setting rendering to
|
||||
// false is designed to allow you to pause rendering to conserve battery life
|
||||
await _thermionViewer!.setRendering(true);
|
||||
```
|
||||
|
||||
and then in your widget tree:
|
||||
```dart
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children: [
|
||||
if (_thermionViewer != null)
|
||||
Positioned.fill(
|
||||
child: ThermionWidget(
|
||||
viewer: _thermionViewer!,
|
||||
)),
|
||||
]);
|
||||
}
|
||||
```
|
||||
|
||||
### Sponsors, Contributors & Acknowledgments
|
||||
|
||||
Thermion uses the [Filament](https://github.com/google/filament) physically based rendering package under the hood.
|
||||
Thermion uses the [Filament](https://github.com/google/filament) Physically Based Rendering engine under the hood.
|
||||
|
||||
Special thanks to [odd-io](https://github.com/odd-io/) for sponsoring work on supporting Windows, raycasting, testing and documentation.
|
||||
|
||||
|
||||
@@ -8,13 +8,16 @@
|
||||
[
|
||||
["Overview", "/"],
|
||||
["Quick Start", "/quickstart"],
|
||||
["Playground", "https://dartpad.thermion.dev"]
|
||||
["Camera Manipulation", "/camera_manipulation"]
|
||||
]
|
||||
],
|
||||
["Misc.", [
|
||||
["Playground", "https://dartpad.thermion.dev"],
|
||||
["Showcase", "/showcase"],
|
||||
["Windows", "/windows"],
|
||||
["Android", "/android"],
|
||||
["Contributing", "/contributing"]
|
||||
["Contributing", "/contributing"],
|
||||
["Discord", "https://discord.gg/h2VdDK3EAQ"]
|
||||
]]
|
||||
]
|
||||
|
||||
|
||||
@@ -1,5 +1,19 @@
|
||||
## Android
|
||||
|
||||
### Min SDK version
|
||||
|
||||
Thermion requires Android SDK version 22, so change your `app/android/build.gradle` to match this version or higher:
|
||||
|
||||
```groovy
|
||||
defaultConfig {
|
||||
...
|
||||
minSdk = 22
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
### Shrink/Minify Resources
|
||||
|
||||
In release mode, you must add the following to your `app/build.gradle`:
|
||||
|
||||
```
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
# Another Page
|
||||
63
docs/camera_manipulation.mdx
Normal file
@@ -0,0 +1,63 @@
|
||||
## Camera Manipulation (Flutter)
|
||||
|
||||
> You can find the entire project below in the [flutter/quickstart](https://github.com/nmfisher/thermion/examples/flutter/camera_manipulation) folder.
|
||||
|
||||
A `ThermionListenerWidget` is one option for manipulating the camera with an input device (e.g. mouse or touchscreen gestures).
|
||||
|
||||
This will generally wrap a `ThermionWidget`, meaning the entire viewport will act as a receiver for gesture events.
|
||||
|
||||
> You can position this independently (for example, stacked vertically beneath the viewport), but this will not translate picking queries correctly.
|
||||
|
||||
```
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children: [
|
||||
if (_thermionViewer != null)
|
||||
Positioned.fill(
|
||||
child: ThermionListenerWidget(
|
||||
inputHandler:
|
||||
DelegateInputHandler.fixedOrbit(_thermionViewer!)
|
||||
..setActionForType(InputType.MMB_HOLD_AND_MOVE, InputAction.ROTATE)
|
||||
..setActionForType(InputType.SCALE1, InputAction.ROTATE)
|
||||
..setActionForType(InputType.SCALE2, InputAction.ZOOM)
|
||||
..setActionForType(InputType.SCROLLWHEEL, InputAction.ZOOM),
|
||||
child: ThermionWidget(
|
||||
viewer: _thermionViewer!,
|
||||
))),
|
||||
]);
|
||||
```
|
||||
|
||||
`ThermionListenerWidget` is a very simple widget; it simply forwards pointer, gesture and keyboard events to the provided [InputHandler], which must decide how to interpret those events.
|
||||
|
||||
For example, one [InputHandler] implementation might interpret mouse pointer movement as "rotate the camera", whereas a separate implementation might interpret it as "translate this specific entity".
|
||||
|
||||
Thermion provides two default InputHandler implementations for manipulating the camera: [DelegateInputHandler.fixedOrbit] and [DelegateInputHandler.flight].
|
||||
|
||||
[DelegateInputHandler.fixedOrbit] will rotate the camera in a fixed orbit around a target point (the origin, by default), and also allow zooming in/out (subject to a minimum distance, which is configurable).
|
||||
|
||||
By default, [DelegateInputHandler.fixedOrbit] will:
|
||||
- rotate the camera when the middle mouse button is held and the pointer is moved (on desktop), and when a single swipe left/right/up/down is detected (on mobile)
|
||||
- zoom the camera when the scroll wheel is scrolled up/down (on desktop), and when a pinch gesture is detected (on mobile)
|
||||
|
||||
You can change the action for a specific input type by calling `setActionForType`; for example, if you wanted to rotate the camera by moving the mouse pointer while holding the left mouse button, you would call:
|
||||
|
||||
```
|
||||
setActionForType(InputType.LMB_HOLD_AND_MOVE, InputAction.ROTATE)
|
||||
```
|
||||
|
||||
See the [InputType] and [InputAction] enums for available input types and actions.
|
||||
|
||||
[DelegateInputHandler.flight] will translate keyboard and mouse/touchscreen gestures to free flight camera manipulation.
|
||||
|
||||
By default:
|
||||
- holding the middle mouse button will control the pitch/roll/yaw of the camera
|
||||
- holding the left mouse button will pan the camera left/right/up/down
|
||||
- the middle mouse button will zoom/dolly the camera in/out
|
||||
- the WASD keys will pan the camera left/right/up/down and dolly the camera forward/backward
|
||||
|
||||
If these don't exactly fit your use case, you can create your own [InputHandler] implementation. If you think it would be useful to other users, please feel free to submit a PR for your implementation to be included in the base Thermion package.
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
## Contributing
|
||||
|
||||
Thermion is an open source project and we welcome all contributions from every level of experience.
|
||||
Thermion is an open source project and all contributions are welcome, no matter the level of experience.
|
||||
|
||||
Please [join us on Discord](https://discord.gg/h2VdDK3EAQ) if you'd like some guidance or just want to chat.
|
||||
|
||||
##
|
||||
Note that the Thermion project uses [Melos](https://melos.invertase.dev/) to manage the repository.
|
||||
|
||||
We are now using [Melos](https://melos.invertase.dev/) to manage the repository. This lets us auto-generate changelogs & versioning from commit messages, so if you wish to submit a PR, please use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
|
||||
This lets us auto-generate changelogs & versioning from commit messages, so if you wish to submit a PR, please use [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/).
|
||||
|
||||
|
||||
@@ -1,8 +0,0 @@
|
||||
# Examples
|
||||
Thermion is a package for creating 3D applications with Dart and/or Flutter.
|
||||
|
||||
## Polyvox
|
||||
|
||||
iOS app
|
||||
|
||||
## Nick Fisher (Personal Website)
|
||||
BIN
docs/images/dartpad.thermion.dev_.png
Normal file
|
After Width: | Height: | Size: 489 KiB |
BIN
docs/images/nick-fisher.com.png
Normal file
|
After Width: | Height: | Size: 936 KiB |
@@ -4,6 +4,10 @@ Thermion is a framework for creating cross-platform 3D applications with Dart an
|
||||
|
||||
## Overview
|
||||
|
||||
Below is a general overview of how the Thermion packages are structured to ensure a clean separation between the general Dart components, and the Flutter specific components.
|
||||
|
||||
If you want a more detailed explanation of how to start rendering 3D content inside a Flutter app, [click here to view the quickstart page](/quickstart).
|
||||
|
||||
### Package structure
|
||||
|
||||
Thermion is divided into two packages:
|
||||
@@ -18,8 +22,39 @@ For example, Thermion ships with examples for rendering with Dart only (no Flutt
|
||||
|
||||
### ThermionViewer (`thermion_dart`)
|
||||
|
||||
// TODO
|
||||
The ThermionViewer class provides an API for creating and interacting with 3D scenes powered by the Filament rendering engine.
|
||||
|
||||
It allows loading 3D models in glTF format, adding lights and a skybox, manipulating the camera, animating objects, and more.
|
||||
|
||||
Key functionalities include:
|
||||
- Scene Management: Load and manipulate entities, lights, skyboxes, and background elements within a 3D scene.
|
||||
- Rendering Control: Manage rendering loop, frame rate, and post-processing effects like tone mapping and bloom.
|
||||
- Camera Control: Position and orient the camera, adjust focal length, and control exposure settings.
|
||||
- Animation: Play, pause, and manipulate skeletal and morph target animations.
|
||||
- Entity Manipulation: Transform entities (position, rotation, scale), set material properties, and manage parent-child relationships.
|
||||
- Collision Detection (experimental): Add collision components to entities and test for collisions within the scene.
|
||||
- Input Handling: Interact with the scene using touch gestures for panning, rotating, and zooming.
|
||||
- Developers use the ThermionViewer class to build and control the behavior of their 3D applications.
|
||||
|
||||
### ThermionFlutterPlugin
|
||||
|
||||
The ThermionFlutterPlugin class handles the platform-specific initialization required to embed a Filament rendering surface within a Flutter Widget.
|
||||
|
||||
This includes creating a texture and managing the application lifecycle to pause rendering when the app is inactive.
|
||||
|
||||
You will generally only need to interact with `ThermionFlutterPlugin` directly to create or dispose of a ThermionViewer.
|
||||
|
||||
### ThermionWidget (`thermion_flutter`)
|
||||
|
||||
// TODO
|
||||
`ThermionWidget` is a Flutter widget that displays the 3D content rendered by a ThermionViewer.
|
||||
|
||||
It handles creating and managing the underlying platform-specific texture that Filament renders to, and provides a way to embed this texture within the Flutter widget tree.
|
||||
|
||||
Key features of ThermionWidget include:
|
||||
- Texture Management: It creates, resizes, and destroys the ThermionFlutterTexture used to display the rendered content from the ThermionViewer.
|
||||
- Platform Adaption: It handles platform-specific differences, such as texture coordinate systems, to ensure consistent rendering across different platforms.
|
||||
- Initialization Handling: Displays a placeholder (configurable via the initial property) while the Filament texture is being initialized, providing a smoother user experience.
|
||||
- Seamless Integration: Integrates seamlessly within the Flutter widget tree, allowing developers to combine 2D and 3D content easily.
|
||||
- Resize Handling: It listens for resize events and automatically resizes the underlying texture to match, ensuring the 3D content scales correctly.
|
||||
|
||||
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
## Quickstart (Flutter)
|
||||
|
||||
> You can find the entire project below in the [examples/flutter/quickstart](examples/flutter/quickstart) folder of the repository.
|
||||
> You can find the entire project below in the [flutter/quickstart](https://github.com/nmfisher/thermion_examples/tree/master/flutter/quickstart) folder of the `thermion_examples` repository.
|
||||
|
||||
1. Switch to Flutter master channel, create a new project, then add `thermion_flutter` as a dependency
|
||||
1. Switch to Flutter master channel, upgrade Flutter, create a new project, then add `thermion_flutter` as a dependency
|
||||
|
||||
```bash
|
||||
$ flutter channel master
|
||||
$ flutter upgrade
|
||||
$ flutter config --enable-native-assets
|
||||
$ flutter create thermion_sample_project && cd thermion_sample_project
|
||||
$ flutter pub add thermion_flutter
|
||||
@@ -13,7 +14,7 @@ $ flutter pub add thermion_flutter
|
||||
|
||||
2. If running on iOS or MacOS, change the minimum deployment target to OSX 13
|
||||
|
||||
<Accordion title="Click to iOS/MacOS instructions">
|
||||
<Accordion title="Click to open iOS/MacOS instructions">
|
||||
|
||||
Make sure the `platform` entry refers to `13.0` in your Podfile.
|
||||
|
||||
@@ -70,18 +71,21 @@ class _MyAppState extends State<MyApp> {
|
||||
|
||||
class _MyAppState extends State<MyApp> {
|
||||
|
||||
late ThermionFlutterPlugin _thermionFlutterPlugin;
|
||||
late Future<ThermionViewer> _thermionViewer;
|
||||
ThermionViewer? _thermionViewer;
|
||||
void initState() {
|
||||
_thermionFlutterPlugin = ThermionFlutterPlugin();
|
||||
_thermionViewer = _thermionFlutterPlugin.initialize();
|
||||
_thermionFlutterPlugin.createViewer().then((viewer) {
|
||||
setState(() {
|
||||
_thermionViewer = viewer;
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children:[
|
||||
if(_thermionViewer != null)
|
||||
Positioned.fill(
|
||||
child:ThermionWidget(
|
||||
plugin:_thermionFlutterPlugin
|
||||
plugin:_thermionViewer!
|
||||
)
|
||||
)
|
||||
]);
|
||||
@@ -104,11 +108,12 @@ class _MyAppState extends State<MyApp> {
|
||||
|
||||
Widget build(BuildContext context) {
|
||||
return Stack(children:[
|
||||
if(_thermionViewer != null)
|
||||
Positioned.fill(
|
||||
child:ThermionWidget(
|
||||
plugin:_thermionFlutterPlugin
|
||||
plugin:_thermionViewer!
|
||||
)
|
||||
),
|
||||
),
|
||||
if (!_loaded)
|
||||
Center(
|
||||
child: ElevatedButton(
|
||||
@@ -208,4 +213,4 @@ $ flutter run -d macos
|
||||
|
||||

|
||||
|
||||
Your first Thermion project is complete!
|
||||
Your first Thermion project is complete!
|
||||
|
||||
23
docs/showcase.mdx
Normal file
@@ -0,0 +1,23 @@
|
||||
## Showcase
|
||||
|
||||
## DartPad Playground
|
||||
|
||||
A custom DartPad that lets you experiment with Thermion from your browser (currently, only Chrome is supported).
|
||||
|
||||
[](https://dartpad.thermion.dev)
|
||||
|
||||
## mixreel (Flutter/Web)
|
||||
|
||||
Create 3D worlds and translate to AI video.
|
||||
|
||||
[](https://mixreel.ai)
|
||||
|
||||
|
||||
## Nick Fisher
|
||||
|
||||
My personal website, where I create an interactive clone of myself with Avaturn & Cartesia (no Flutter, made with Thermion and the [Jaspr Dart UI framework](https://github.com/schultek/jaspr)).
|
||||
|
||||
[](https://nick-fisher.com)
|
||||
|
||||
|
||||
|
||||
@@ -1,32 +1,6 @@
|
||||
## Windows
|
||||
|
||||
## CMakeLists
|
||||
|
||||
You will need to disable the `/WX` compiler flag.
|
||||
|
||||
In your project, open the `windows/CMakeList.txt` file and find the following line:
|
||||
|
||||
`target_compile_options(${TARGET} PRIVATE /W4 /WX /wd"4100")`
|
||||
|
||||
Delete the `/WX`:
|
||||
|
||||
`target_compile_options(${TARGET} PRIVATE /W4 /wd"4100")`
|
||||
|
||||
|
||||
## pubspec.yaml
|
||||
|
||||
On Windows, you will need to add a custom version of `native_toolchain_c` to your `dependency_overrides`. This is currently needed to link static libraries when building a DLL.
|
||||
|
||||
```
|
||||
dependency_overrides:
|
||||
native_toolchain_c:
|
||||
git:
|
||||
url: https://github.com/nmfisher/native.git
|
||||
path: pkgs/native_toolchain_c
|
||||
ref: windows_dll_fix
|
||||
```
|
||||
|
||||
This will eventually be fixed upstream in the `native_toolchain_c` package, so this should be a short-term/temporary issue only.
|
||||
If you're not a Thermion developer, you can ignore this.
|
||||
|
||||
## ANGLE build (not currently working)
|
||||
To support embedding GPU textures in Flutter (rather than copying to a CPU pixel buffer on every frame), we need to build a slightly customized version of Filament that uses GLES on Windows (rather than the default, which uses OpenGL).
|
||||
|
||||
5
examples/README.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Thermion Examples
|
||||
|
||||
This repository contains example Dart and Flutter projects for the Thermion rendering toolkit.
|
||||
|
||||
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4a1d72d69da8b933bde5453ef2000612b561f8ddfa536a7ad89288ef11eb876d
|
||||
size 1624
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:fe0151ced8fd8609f9692f3d62dbd30890dada97cb6995572e37c7e7b4440d86
|
||||
size 21304
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0f8b793f6513cf83f80ce9c63c7b51d329908b1991f17ca642911634b15b32de
|
||||
size 34172
|
||||
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 531 KiB |
|
Before Width: | Height: | Size: 129 B After Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 856 KiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 193 KiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 3.7 MiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 500 KiB |
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 614 KiB |
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 457 KiB |
@@ -1,3 +1,755 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7b05a4cf63ea1c614a9385cdb902c62bad324eccbb87a6c9e3370da2b6f36f2d
|
||||
size 14565
|
||||
{
|
||||
"accessors": [
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 24408,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 8468,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 8468,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 8468,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 8468,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.131662,
|
||||
0.137638986,
|
||||
0.10078799
|
||||
],
|
||||
"min": [
|
||||
-0.131333,
|
||||
-0.028128,
|
||||
-0.137763992
|
||||
]
|
||||
},
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 65688,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 12552,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 12552,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 12552,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 12552,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.11722149,
|
||||
0.196387976,
|
||||
0.132422984
|
||||
],
|
||||
"min": [
|
||||
-0.11722149,
|
||||
-0.196387976,
|
||||
-0.132422984
|
||||
]
|
||||
},
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 2208,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 436,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 436,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 436,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 436,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.09527509,
|
||||
0.114654,
|
||||
-0.08429489
|
||||
],
|
||||
"min": [
|
||||
-0.0952748954,
|
||||
0.0551489964,
|
||||
-0.14295499
|
||||
]
|
||||
},
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 60288,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 17186,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 17186,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 17186,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 17186,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.1572095,
|
||||
0.2716865,
|
||||
0.162181988
|
||||
],
|
||||
"min": [
|
||||
-0.1572095,
|
||||
-0.2716865,
|
||||
-0.162181988
|
||||
]
|
||||
},
|
||||
{
|
||||
"componentType": 5123,
|
||||
"count": 131574,
|
||||
"type": "SCALAR"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 24148,
|
||||
"type": "VEC2"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 24148,
|
||||
"type": "VEC3"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 24148,
|
||||
"type": "VEC4"
|
||||
},
|
||||
{
|
||||
"componentType": 5126,
|
||||
"count": 24148,
|
||||
"type": "VEC3",
|
||||
"max": [
|
||||
0.1504075,
|
||||
0.328366965,
|
||||
0.173673
|
||||
],
|
||||
"min": [
|
||||
-0.1504075,
|
||||
-0.328366965,
|
||||
-0.173673
|
||||
]
|
||||
}
|
||||
],
|
||||
"asset": {
|
||||
"generator": "glTF Tools for Unity",
|
||||
"version": "2.0"
|
||||
},
|
||||
"bufferViews": [
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 0,
|
||||
"byteLength": 59806
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 59808,
|
||||
"byteLength": 99674
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 159484,
|
||||
"byteLength": 4875
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 164360,
|
||||
"byteLength": 133545
|
||||
},
|
||||
{
|
||||
"buffer": 0,
|
||||
"byteOffset": 297908,
|
||||
"byteLength": 203914
|
||||
}
|
||||
],
|
||||
"buffers": [
|
||||
{
|
||||
"name": "FlightHelmet",
|
||||
"byteLength": 501824,
|
||||
"uri": "FlightHelmet.bin"
|
||||
}
|
||||
],
|
||||
"images": [
|
||||
{
|
||||
"name": "FlightHelmet_baseColor",
|
||||
"uri": "FlightHelmet_baseColor.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal",
|
||||
"uri": "FlightHelmet_normal.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_baseColor1",
|
||||
"uri": "FlightHelmet_baseColor1.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic1",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic1.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal1",
|
||||
"uri": "FlightHelmet_normal1.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_baseColor2",
|
||||
"uri": "FlightHelmet_baseColor2.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic2",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic2.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal2",
|
||||
"uri": "FlightHelmet_normal2.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_baseColor3",
|
||||
"uri": "FlightHelmet_baseColor3.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic3",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic3.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal3",
|
||||
"uri": "FlightHelmet_normal3.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_baseColor4",
|
||||
"uri": "FlightHelmet_baseColor4.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_occlusionRoughnessMetallic4",
|
||||
"uri": "FlightHelmet_occlusionRoughnessMetallic4.png"
|
||||
},
|
||||
{
|
||||
"name": "FlightHelmet_normal4",
|
||||
"uri": "FlightHelmet_normal4.png"
|
||||
}
|
||||
],
|
||||
"meshes": [
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 1,
|
||||
"NORMAL": 2,
|
||||
"TANGENT": 3,
|
||||
"POSITION": 4
|
||||
},
|
||||
"indices": 0,
|
||||
"material": 0,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 0,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "GlassPlastic_low"
|
||||
},
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 6,
|
||||
"NORMAL": 7,
|
||||
"TANGENT": 8,
|
||||
"POSITION": 9
|
||||
},
|
||||
"indices": 5,
|
||||
"material": 1,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 1,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "LeatherParts_low"
|
||||
},
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 11,
|
||||
"NORMAL": 12,
|
||||
"TANGENT": 13,
|
||||
"POSITION": 14
|
||||
},
|
||||
"indices": 10,
|
||||
"material": 2,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 2,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "Lenses_low"
|
||||
},
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 16,
|
||||
"NORMAL": 17,
|
||||
"TANGENT": 18,
|
||||
"POSITION": 19
|
||||
},
|
||||
"indices": 15,
|
||||
"material": 3,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 3,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "MetalParts_low"
|
||||
},
|
||||
{
|
||||
"primitives": [
|
||||
{
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 21,
|
||||
"NORMAL": 22,
|
||||
"TANGENT": 23,
|
||||
"POSITION": 24
|
||||
},
|
||||
"indices": 20,
|
||||
"material": 4,
|
||||
"mode": 4,
|
||||
"extensions": {
|
||||
"KHR_draco_mesh_compression": {
|
||||
"bufferView": 4,
|
||||
"attributes": {
|
||||
"TEXCOORD_0": 0,
|
||||
"NORMAL": 1,
|
||||
"TANGENT": 2,
|
||||
"POSITION": 3
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
"name": "RubberWood_low"
|
||||
}
|
||||
],
|
||||
"materials": [
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 0,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 1,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 2,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 1,
|
||||
"texCoord": 0
|
||||
},
|
||||
"name": "GlassPlasticMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": false
|
||||
},
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 3,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 4,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 5,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 4,
|
||||
"texCoord": 0
|
||||
},
|
||||
"name": "LeatherPartsMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": false
|
||||
},
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 6,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 7,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 8,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 7,
|
||||
"texCoord": 0
|
||||
},
|
||||
"alphaMode": "BLEND",
|
||||
"name": "LensesMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"doubleSided": false
|
||||
},
|
||||
{
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 9,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 10,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 11,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 10,
|
||||
"texCoord": 0
|
||||
},
|
||||
"name": "MetalPartsMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE",
|
||||
"doubleSided": false
|
||||
},
|
||||
{
|
||||
"doubleSided": true,
|
||||
"pbrMetallicRoughness": {
|
||||
"baseColorTexture": {
|
||||
"index": 12,
|
||||
"texCoord": 0
|
||||
},
|
||||
"metallicRoughnessTexture": {
|
||||
"index": 13,
|
||||
"texCoord": 0
|
||||
},
|
||||
"baseColorFactor": [
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1
|
||||
],
|
||||
"metallicFactor": 1,
|
||||
"roughnessFactor": 1
|
||||
},
|
||||
"normalTexture": {
|
||||
"index": 14,
|
||||
"texCoord": 0
|
||||
},
|
||||
"occlusionTexture": {
|
||||
"index": 13,
|
||||
"texCoord": 0
|
||||
},
|
||||
"name": "RubberWoodMat",
|
||||
"emissiveFactor": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"alphaMode": "OPAQUE"
|
||||
}
|
||||
],
|
||||
"nodes": [
|
||||
{
|
||||
"mesh": 0,
|
||||
"name": "GlassPlastic_low"
|
||||
},
|
||||
{
|
||||
"mesh": 1,
|
||||
"translation": [
|
||||
0.000434499962,
|
||||
0.032592997,
|
||||
0.011676996
|
||||
],
|
||||
"name": "LeatherParts_low",
|
||||
"rotation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"scale": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"mesh": 2,
|
||||
"name": "Lenses_low"
|
||||
},
|
||||
{
|
||||
"mesh": 3,
|
||||
"translation": [
|
||||
0.0331545,
|
||||
-0.1488645,
|
||||
-0.0242879968
|
||||
],
|
||||
"name": "MetalParts_low",
|
||||
"rotation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"scale": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"mesh": 4,
|
||||
"translation": [
|
||||
-0.00190849893,
|
||||
-0.111985,
|
||||
-0.013313001
|
||||
],
|
||||
"name": "RubberWood_low",
|
||||
"rotation": [
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1
|
||||
],
|
||||
"scale": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
]
|
||||
},
|
||||
{
|
||||
"children": [
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4
|
||||
],
|
||||
"rotation": [
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"name": "FlightHelmet",
|
||||
"translation": [
|
||||
0,
|
||||
0,
|
||||
0
|
||||
],
|
||||
"scale": [
|
||||
1,
|
||||
1,
|
||||
1
|
||||
]
|
||||
}
|
||||
],
|
||||
"scene": 0,
|
||||
"scenes": [
|
||||
{
|
||||
"nodes": [
|
||||
5
|
||||
]
|
||||
}
|
||||
],
|
||||
"textures": [
|
||||
{
|
||||
"source": 0
|
||||
},
|
||||
{
|
||||
"source": 1
|
||||
},
|
||||
{
|
||||
"source": 2
|
||||
},
|
||||
{
|
||||
"source": 3
|
||||
},
|
||||
{
|
||||
"source": 4
|
||||
},
|
||||
{
|
||||
"source": 5
|
||||
},
|
||||
{
|
||||
"source": 6
|
||||
},
|
||||
{
|
||||
"source": 7
|
||||
},
|
||||
{
|
||||
"source": 8
|
||||
},
|
||||
{
|
||||
"source": 9
|
||||
},
|
||||
{
|
||||
"source": 10
|
||||
},
|
||||
{
|
||||
"source": 11
|
||||
},
|
||||
{
|
||||
"source": 12
|
||||
},
|
||||
{
|
||||
"source": 13
|
||||
},
|
||||
{
|
||||
"source": 14
|
||||
}
|
||||
],
|
||||
"extensionsRequired": [
|
||||
"KHR_draco_mesh_compression"
|
||||
],
|
||||
"extensionsUsed": [
|
||||
"KHR_draco_mesh_compression"
|
||||
]
|
||||
}
|
||||
|
||||
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 2.6 MiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 5.1 MiB |
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 806 KiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 2.9 MiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 3.8 MiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 3.0 MiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 5.4 MiB |
|
Before Width: | Height: | Size: 130 B After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 3.5 MiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 3.5 MiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 4.4 MiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 5.1 MiB |
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 737 KiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 3.6 MiB |
|
Before Width: | Height: | Size: 132 B After Width: | Height: | Size: 4.3 MiB |
@@ -1,3 +1,16 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0bc81c711f74fdfd2ef56e34d747383444a3ab6a1ee52fe62cb5838e59b0be56
|
||||
size 545
|
||||
# Flight Helmet
|
||||
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## License Information
|
||||
|
||||
Donated by Microsoft for glTF testing
|
||||
|
||||
[](http://creativecommons.org/publicdomain/zero/1.0/)
|
||||
To the extent possible under law, Microsoft has waived all copyright and related or neighboring rights to this asset.
|
||||
|
||||
Draco compression was done via Cesium tools on 27-03-2020 as follows.
|
||||
|
||||
gltf-pipeline -i FlightHelmet.gltf -o FlightHelmet.gltf -d -s --keep-unused-elements
|
||||
|
||||
|
Before Width: | Height: | Size: 131 B After Width: | Height: | Size: 572 KiB |
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0245800fa846c2a3c15cb1d2aa6ded86fcf8355e568907dcd50e073c589f85d6
|
||||
size 2095464
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:40379fcd881ca3729b0fa057f66b8fedbd8ab92b8e407bc3a4fd17c1a2b6e75e
|
||||
size 1572932
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:5821c53850d84c5b2d0b39ad28e6cde94d8fc7e1bbb97d5d898c40733e2d4e99
|
||||
size 107424
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:d9134594e40a4bad7601d0396bb5f2a7600656bda5d815b3cb2e855ba6c6c5e4
|
||||
size 1263808
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:ab0cada556723be0d138d7b1cadb5e315a273524db0468e0c4255d8d2b0c1c2d
|
||||
size 1222992
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6c58d82602dc9b4dabb63f378fecd7ecb9eaf6f5da5746552ec42dde4ec211d7
|
||||
size 121104
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0c1d3eac0151a58c3f36bea0f636691559612fd2d5ce21bb3551d43e86043e26
|
||||
size 36741
|
||||
@@ -1,3 +0,0 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b58c687c2687f5b3b576e4f5672981fde5657519f51dd331e6e671634c77640f
|
||||
size 29920
|
||||
@@ -1,3 +1,14 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2033d3f7f8e0af983d8ab237737b45db2ed476b9283c6b0fda6a6954e1a72dea
|
||||
size 294
|
||||
material {
|
||||
name : SolidColor,
|
||||
shadingModel : unlit,
|
||||
culling : none,
|
||||
featureLevel : 1,
|
||||
vertexDomain: object
|
||||
}
|
||||
|
||||
fragment {
|
||||
void material(inout MaterialInputs material) {
|
||||
prepareMaterial(material);
|
||||
material.baseColor = vec4(0.1f, 0.5f, 0.9f, 1.0f);
|
||||
}
|
||||
}
|
||||
|
||||
3
examples/dart/cli_macos/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
# https://dart.dev/guides/libraries/private-files
|
||||
# Created by `dart pub`
|
||||
.dart_tool/
|
||||
@@ -1,3 +0,0 @@
|
||||
## 1.0.0
|
||||
|
||||
- Initial version.
|
||||
@@ -1,2 +0,0 @@
|
||||
A sample command-line application with an entrypoint in `bin/`, library code
|
||||
in `lib/`, and example unit test in `test/`.
|
||||
@@ -1,30 +0,0 @@
|
||||
# This file configures the static analysis results for your project (errors,
|
||||
# warnings, and lints).
|
||||
#
|
||||
# This enables the 'recommended' set of lints from `package:lints`.
|
||||
# This set helps identify many issues that may lead to problems when running
|
||||
# or consuming Dart code, and enforces writing Dart using a single, idiomatic
|
||||
# style and format.
|
||||
#
|
||||
# If you want a smaller set of lints you can change this to specify
|
||||
# 'package:lints/core.yaml'. These are just the most critical lints
|
||||
# (the recommended set includes the core lints).
|
||||
# The core lints are also what is used by pub.dev for scoring packages.
|
||||
|
||||
include: package:lints/recommended.yaml
|
||||
|
||||
# Uncomment the following section to specify additional rules.
|
||||
|
||||
# linter:
|
||||
# rules:
|
||||
# - camel_case_types
|
||||
|
||||
# analyzer:
|
||||
# exclude:
|
||||
# - path/to/excluded/files/**
|
||||
|
||||
# For more information about the core and recommended set of lints, see
|
||||
# https://dart.dev/go/core-lints
|
||||
|
||||
# For additional information about configuring this file, see
|
||||
# https://dart.dev/guides/language/analysis-options
|
||||
@@ -1 +0,0 @@
|
||||
../../../assets
|
||||
@@ -1,46 +0,0 @@
|
||||
import 'dart:io';
|
||||
import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart';
|
||||
import 'package:thermion_dart/thermion_dart/swift/swift_bindings.g.dart';
|
||||
import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart';
|
||||
import 'package:thermion_dart/thermion_dart/utils/dart_resources.dart';
|
||||
import 'package:ffi/ffi.dart';
|
||||
import 'package:thermion_dart/thermion_dart.dart';
|
||||
|
||||
void main() async {
|
||||
var scriptDir = File(Platform.script.toFilePath()).parent.path;
|
||||
final lib = ThermionDartTexture1(
|
||||
DynamicLibrary.open("$scriptDir/libthermion_swift.dylib"));
|
||||
final object = ThermionDartTexture.new1(lib);
|
||||
object.initWithWidth_height_(500, 500);
|
||||
|
||||
final resourceLoader = calloc<ResourceLoaderWrapper>(1);
|
||||
var loadToOut = NativeCallable<
|
||||
Void Function(Pointer<Char>,
|
||||
Pointer<ResourceBuffer>)>.listener(DartResourceLoader.loadResource);
|
||||
|
||||
resourceLoader.ref.loadToOut = loadToOut.nativeFunction;
|
||||
var freeResource = NativeCallable<Void Function(ResourceBuffer)>.listener(
|
||||
DartResourceLoader.freeResource);
|
||||
resourceLoader.ref.freeResource = freeResource.nativeFunction;
|
||||
|
||||
var viewer = ThermionViewerFFI(resourceLoader: resourceLoader.cast<Void>());
|
||||
|
||||
await viewer.initialized;
|
||||
await viewer.createSwapChain(500, 500);
|
||||
await viewer.createRenderTarget(500, 500, object.metalTextureAddress);
|
||||
await viewer.updateViewportAndCameraProjection(500, 500);
|
||||
|
||||
var outDir = Directory("$scriptDir/output");
|
||||
if (outDir.existsSync()) {
|
||||
outDir.deleteSync(recursive: true);
|
||||
}
|
||||
outDir.createSync();
|
||||
|
||||
await viewer.setRecordingOutputDirectory(outDir.path);
|
||||
await viewer.setRecording(true);
|
||||
await viewer.loadSkybox(
|
||||
"file:///$scriptDir/assets/default_env/default_env_skybox.ktx");
|
||||
await Future.delayed(Duration(milliseconds: 16));
|
||||
await viewer.render();
|
||||
await viewer.dispose();
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
../../../../thermion_dart/native/lib/macos/swift/libthermion_swift.dylib
|
||||
|
Before Width: | Height: | Size: 46 KiB |
@@ -1,18 +0,0 @@
|
||||
name: example_cli
|
||||
description: A sample command-line application.
|
||||
version: 1.0.0
|
||||
# repository: https://github.com/my_org/my_repo
|
||||
|
||||
environment:
|
||||
sdk: ^3.3.0
|
||||
|
||||
# Add regular dependencies here.
|
||||
dependencies:
|
||||
thermion_dart:
|
||||
path: ../../../thermion_dart
|
||||
ffi:
|
||||
|
||||
dev_dependencies:
|
||||
ffigen: ^11.0.0
|
||||
lints: ^3.0.0
|
||||
test: ^1.24.0
|
||||
@@ -1,8 +0,0 @@
|
||||
import 'package:example_cli/example_cli.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
test('calculate', () {
|
||||
expect(calculate(), 42);
|
||||
});
|
||||
}
|
||||
3
examples/dart/cli_wasm/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
# https://dart.dev/guides/libraries/private-files
|
||||
# Created by `dart pub`
|
||||
.dart_tool/
|
||||
@@ -1,3 +0,0 @@
|
||||
## 1.0.0
|
||||
|
||||
- Initial version.
|
||||
@@ -1,2 +0,0 @@
|
||||
A sample command-line application with an entrypoint in `bin/`, library code
|
||||
in `lib/`, and example unit test in `test/`.
|
||||
@@ -1,30 +0,0 @@
|
||||
# This file configures the static analysis results for your project (errors,
|
||||
# warnings, and lints).
|
||||
#
|
||||
# This enables the 'recommended' set of lints from `package:lints`.
|
||||
# This set helps identify many issues that may lead to problems when running
|
||||
# or consuming Dart code, and enforces writing Dart using a single, idiomatic
|
||||
# style and format.
|
||||
#
|
||||
# If you want a smaller set of lints you can change this to specify
|
||||
# 'package:lints/core.yaml'. These are just the most critical lints
|
||||
# (the recommended set includes the core lints).
|
||||
# The core lints are also what is used by pub.dev for scoring packages.
|
||||
|
||||
include: package:lints/recommended.yaml
|
||||
|
||||
# Uncomment the following section to specify additional rules.
|
||||
|
||||
# linter:
|
||||
# rules:
|
||||
# - camel_case_types
|
||||
|
||||
# analyzer:
|
||||
# exclude:
|
||||
# - path/to/excluded/files/**
|
||||
|
||||
# For more information about the core and recommended set of lints, see
|
||||
# https://dart.dev/go/core-lints
|
||||
|
||||
# For additional information about configuring this file, see
|
||||
# https://dart.dev/guides/language/analysis-options
|
||||
4
examples/dart/cli_wasm/bin/.gitignore
vendored
@@ -1,4 +0,0 @@
|
||||
example_cli.mjs
|
||||
example_cli.wasm
|
||||
example_cli.unopt.wasm
|
||||
node_modules/**/*
|
||||
@@ -1,98 +0,0 @@
|
||||
MAIN
|
||||
initializing
|
||||
gto uberarchive ptr
|
||||
create void ptr callback
|
||||
resolve
|
||||
try
|
||||
done, returning
|
||||
created
|
||||
got promise [object Promise]
|
||||
got fn ptr address 2720
|
||||
Calling create_filament_viewer_ffi
|
||||
Call complete
|
||||
Created viewer, waiting for initialization
|
||||
Creating WebGL context.
|
||||
Created WebGL context 2.0
|
||||
Made WebGL context current
|
||||
FEngine (32 bits) created at 0x1937d0 (threading is disabled)
|
||||
|
||||
[stack-gl], [ANGLE], [OpenGL ES 3.0 (WebGL 1.0 stack-gl 8.0.2)], [OpenGL ES GLSL ES 1.00 (WebGL GLSL ES 1.0 stack-gl)]
|
||||
|
||||
Feature level: 1
|
||||
Active workarounds:
|
||||
|
||||
Backend feature level: 1
|
||||
|
||||
FEngine feature level: 1
|
||||
|
||||
Set frame interval to 16.666666
|
||||
Setting tone mapping to ACES
|
||||
Bloom is disabled on WebGL builds as it causes instability with certain drivers. setBloom will be ignored
|
||||
View created
|
||||
Camera aperture 16.000000 shutter 0.008000 sensitivity 100.000000
|
||||
Created ubershader provider.
|
||||
Added imageEntity 6
|
||||
Got void ptr callback
|
||||
Set viewer to true
|
||||
Created viewer 1652064
|
||||
Initialied
|
||||
Loading GLB from buffer of length 116948
|
||||
Loaded glb
|
||||
Entities : [10, 11, 12]
|
||||
entityName : Cone
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
morph targets : [Key 1, Key 2, Key 3, Key 4, Key 5, Key 6, Key 7, Key 8]
|
||||
entityName : Cube
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
morph targets : [Key 1, Key 2]
|
||||
entityName : Cylinder
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
Getting morpht arget names
|
||||
No insdtance
|
||||
Using asset instance
|
||||
morph targets : [Key 1, Key 2, Key 3, Key 4]
|
||||
@@ -1,33 +0,0 @@
|
||||
import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart';
|
||||
import 'package:thermion_dart/thermion_dart.dart';
|
||||
import 'package:animation_tools_dart/animation_tools_dart.dart';
|
||||
|
||||
void main(List<String> args) async {
|
||||
final resourceLoader = thermion_dart_web_get_resource_loader_wrapper();
|
||||
var viewer = ThermionViewerFFI(resourceLoader: resourceLoader.cast<Void>());
|
||||
viewer.initialized.then((_) async {
|
||||
var entity = await viewer.loadGlb(
|
||||
"/Users/nickfisher/Documents/polyvox/apps/packages/thermion_flutter/thermion_flutter_federated/thermion_flutter/example/assets/shapes/shapes.glb");
|
||||
var entities = await viewer.getChildEntities(entity, true);
|
||||
for (final childEntity in entities) {
|
||||
final childName = await viewer.getNameForEntity(childEntity);
|
||||
var morphTargetNames =
|
||||
await viewer.getMorphTargetNames(entity, childEntity!);
|
||||
if (morphTargetNames.isNotEmpty) {
|
||||
await viewer.setMorphTargetWeights(
|
||||
childEntity, List<double>.filled(morphTargetNames.length, 1.0));
|
||||
}
|
||||
var animationData = MorphAnimationData(
|
||||
List.generate(
|
||||
10, (_) => List<double>.filled(morphTargetNames.length, 1.0)),
|
||||
morphTargetNames);
|
||||
|
||||
await viewer.setMorphAnimationData(entity, animationData,
|
||||
targetMeshNames: [childName!]);
|
||||
}
|
||||
});
|
||||
|
||||
while (true) {
|
||||
await Future.delayed(Duration(seconds: 1));
|
||||
}
|
||||
}
|
||||
@@ -1,123 +0,0 @@
|
||||
const fs = require('node:fs');
|
||||
const thermion_dart = require("./thermion_dart.js")
|
||||
const GLctx = require('gl')(100, 100, { preserveDrawingBuffer: true })
|
||||
|
||||
// queueMicrotask = (func) => {
|
||||
// func();
|
||||
// }
|
||||
// read('thermion_dart.wasm', 'binary')
|
||||
// const exports = {};
|
||||
// const module = {};
|
||||
|
||||
const wasmBuffer = fs.readFileSync('thermion_dart.wasm');
|
||||
|
||||
var dartFilamentModulePromise = WebAssembly.compile(wasmBuffer);
|
||||
let globalDf;
|
||||
thermion_dart({
|
||||
dartFilamentResolveCallback: (cb, data) => {
|
||||
const fn = globalDf.wasmTable.get(cb);
|
||||
if(data) {
|
||||
fn(data);
|
||||
} else {
|
||||
fn();
|
||||
}
|
||||
},
|
||||
ctx:GLctx}).then((df) => {
|
||||
globalDf = df;
|
||||
createVoidCallback = () => {
|
||||
let res; //placeholder for resolver callback, outside of promise
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
res = resolve;
|
||||
});
|
||||
try {
|
||||
const callback = () => {
|
||||
try {
|
||||
res({});
|
||||
} catch(err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
const fnPtr = df.addFunction(callback, 'v');
|
||||
return [promise, fnPtr];
|
||||
} catch(err) {
|
||||
console.log(err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
createIntCallback = () => {
|
||||
let res;
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
res = resolve;
|
||||
});
|
||||
try {
|
||||
const callback = (val) => {
|
||||
try {
|
||||
res(val);
|
||||
} catch(err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
const fnPtr = df.addFunction(callback, 'vi');
|
||||
return [promise, fnPtr];
|
||||
} catch(err) {
|
||||
console.log(err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
createVoidPointerCallback = () => {
|
||||
console.log("create void ptr callback");
|
||||
let res; //placeholder for resolver callback, outside of promise
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
console.log("resolve");
|
||||
res = resolve;
|
||||
});
|
||||
try {
|
||||
console.log("try");
|
||||
const callback = (voidPtr) => {
|
||||
try {
|
||||
res(voidPtr);
|
||||
} catch(err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
const fnPtr = df.addFunction(callback, 'vi');
|
||||
console.log("done, returning");
|
||||
return [promise, fnPtr];
|
||||
} catch(err) {
|
||||
console.log(err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
createBoolCallback = () => {
|
||||
let res; //placeholder for resolver callback, outside of promise
|
||||
|
||||
const promise = new Promise((resolve, reject) => {
|
||||
res = resolve;
|
||||
});
|
||||
try {
|
||||
const callback = (val) => {
|
||||
try {
|
||||
res(val);
|
||||
} catch(err) {
|
||||
console.log(err);
|
||||
}
|
||||
}
|
||||
const fnPtr = df.addFunction(callback, 'vi');
|
||||
return [promise, fnPtr];
|
||||
} catch(err) {
|
||||
console.log(err);
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
import('./example_cli.mjs').then((dart2wasm_runtime) => {
|
||||
var dartModulePromise = WebAssembly.compile(fs.readFileSync('./example_cli.wasm'));
|
||||
const imports = {"thermion_dart": df, "ctx": GLctx};
|
||||
dart2wasm_runtime.instantiate(dartModulePromise, imports).then((moduleInstance) => {
|
||||
dart2wasm_runtime.invoke(moduleInstance);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// // dartModulePromise.then((dartModule) => { console.log(dartModule.exports); dart2wasm_runtime.invoke(dartModule, imports);}); });
|
||||
1559
examples/dart/cli_wasm/bin/package-lock.json
generated
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"gl": "^8.0.2"
|
||||
}
|
||||
}
|
||||
@@ -1 +0,0 @@
|
||||
../../../native/web/build/build/out/dart_filament.js
|
||||
@@ -1 +0,0 @@
|
||||
../../../native/web/build/build/out/dart_filament.wasm
|
||||
@@ -1 +0,0 @@
|
||||
../../../native/web/build/build/out/dart_filament.worker.js
|
||||
@@ -1,18 +0,0 @@
|
||||
name: example_cli
|
||||
description: A sample command-line application.
|
||||
version: 1.0.0
|
||||
# repository: https://github.com/my_org/my_repo
|
||||
|
||||
environment:
|
||||
sdk: ^3.3.0
|
||||
|
||||
# Add regular dependencies here.
|
||||
dependencies:
|
||||
thermion_dart:
|
||||
path: ../../
|
||||
ffi:
|
||||
|
||||
dev_dependencies:
|
||||
ffigen: ^11.0.0
|
||||
lints: ^3.0.0
|
||||
test: ^1.24.0
|
||||
@@ -1,8 +0,0 @@
|
||||
import 'package:example_cli/example_cli.dart';
|
||||
import 'package:test/test.dart';
|
||||
|
||||
void main() {
|
||||
test('calculate', () {
|
||||
expect(calculate(), 42);
|
||||
});
|
||||
}
|
||||
3
examples/dart/web_wasm/.gitignore
vendored
@@ -1,3 +0,0 @@
|
||||
# https://dart.dev/guides/libraries/private-files
|
||||
# Created by `dart pub`
|
||||
.dart_tool/
|
||||
@@ -1,3 +0,0 @@
|
||||
## 1.0.0
|
||||
|
||||
- Initial version.
|
||||
@@ -1,2 +0,0 @@
|
||||
A sample command-line application with an entrypoint in `bin/`, library code
|
||||
in `lib/`, and example unit test in `test/`.
|
||||
@@ -1,30 +0,0 @@
|
||||
# This file configures the static analysis results for your project (errors,
|
||||
# warnings, and lints).
|
||||
#
|
||||
# This enables the 'recommended' set of lints from `package:lints`.
|
||||
# This set helps identify many issues that may lead to problems when running
|
||||
# or consuming Dart code, and enforces writing Dart using a single, idiomatic
|
||||
# style and format.
|
||||
#
|
||||
# If you want a smaller set of lints you can change this to specify
|
||||
# 'package:lints/core.yaml'. These are just the most critical lints
|
||||
# (the recommended set includes the core lints).
|
||||
# The core lints are also what is used by pub.dev for scoring packages.
|
||||
|
||||
include: package:lints/recommended.yaml
|
||||
|
||||
# Uncomment the following section to specify additional rules.
|
||||
|
||||
# linter:
|
||||
# rules:
|
||||
# - camel_case_types
|
||||
|
||||
# analyzer:
|
||||
# exclude:
|
||||
# - path/to/excluded/files/**
|
||||
|
||||
# For more information about the core and recommended set of lints, see
|
||||
# https://dart.dev/go/core-lints
|
||||
|
||||
# For additional information about configuring this file, see
|
||||
# https://dart.dev/guides/language/analysis-options
|
||||
@@ -1,16 +0,0 @@
|
||||
# Flight Helmet
|
||||
|
||||
## Screenshot
|
||||
|
||||

|
||||
|
||||
## License Information
|
||||
|
||||
Donated by Microsoft for glTF testing
|
||||
|
||||
[](http://creativecommons.org/publicdomain/zero/1.0/)
|
||||
To the extent possible under law, Microsoft has waived all copyright and related or neighboring rights to this asset.
|
||||
|
||||
Draco compression was done via Cesium tools on 27-03-2020 as follows.
|
||||
|
||||
gltf-pipeline -i FlightHelmet.gltf -o FlightHelmet.gltf -d -s --keep-unused-elements
|
||||
@@ -1 +0,0 @@
|
||||
../../../../flutter_filament_federated/flutter_filament/example/assets
|
||||
@@ -1,57 +0,0 @@
|
||||
import 'dart:js_interop';
|
||||
import 'dart:js_interop_unsafe';
|
||||
import 'package:thermion_dart/thermion_dart/compatibility/compatibility.dart';
|
||||
import 'package:thermion_dart/thermion_dart/thermion_viewer_ffi.dart';
|
||||
import 'package:web/web.dart';
|
||||
|
||||
void main(List<String> arguments) async {
|
||||
var fc = FooChar();
|
||||
|
||||
final canvas = document.getElementById("canvas") as HTMLCanvasElement;
|
||||
canvas.width = window.innerWidth;
|
||||
canvas.height = window.innerHeight;
|
||||
|
||||
var resourceLoader = thermion_dart_web_get_resource_loader_wrapper();
|
||||
|
||||
var viewer = ThermionViewerFFI(resourceLoader: resourceLoader);
|
||||
|
||||
var mousedown = (JSObject event) {
|
||||
var x = event.getProperty("clientX".toJS) as JSNumber;
|
||||
var y = event.getProperty("clientY".toJS) as JSNumber;
|
||||
viewer.rotateStart(x.toDartDouble, y.toDartDouble);
|
||||
};
|
||||
|
||||
canvas.addEventListener("mousedown", mousedown.toJS);
|
||||
|
||||
var mousemove = (JSObject event) {
|
||||
var x = event.getProperty("clientX".toJS) as JSNumber;
|
||||
var y = event.getProperty("clientY".toJS) as JSNumber;
|
||||
viewer.rotateUpdate(x.toDartDouble, y.toDartDouble);
|
||||
};
|
||||
|
||||
canvas.addEventListener("mousemove", mousemove.toJS);
|
||||
|
||||
var mouseup = (JSObject event) {
|
||||
viewer.rotateEnd();
|
||||
};
|
||||
|
||||
canvas.addEventListener("mouseup", mousedown.toJS);
|
||||
|
||||
await viewer.initialized;
|
||||
var width = window.innerWidth;
|
||||
var height = window.innerHeight;
|
||||
await viewer.createSwapChain(width.toDouble(), height.toDouble());
|
||||
await viewer.setBackgroundColor(0.0, 1.0, 1.0, 1.0);
|
||||
await viewer.loadSkybox("assets/default_env_skybox.ktx");
|
||||
await viewer.loadIbl("assets/default_env_ibl.ktx");
|
||||
await viewer.loadGltf("assets/FlightHelmet.gltf", "assets");
|
||||
await viewer.updateViewportAndCameraProjection(
|
||||
width.toDouble(), height.toDouble());
|
||||
await viewer.setPostProcessing(true);
|
||||
await viewer.setRendering(true);
|
||||
|
||||
while (true) {
|
||||
await Future.delayed(Duration(milliseconds: 16));
|
||||
}
|
||||
print("Finisehd!");
|
||||
}
|
||||
@@ -1,249 +0,0 @@
|
||||
let buildArgsList;
|
||||
|
||||
// `modulePromise` is a promise to the `WebAssembly.module` object to be
|
||||
// instantiated.
|
||||
// `importObjectPromise` is a promise to an object that contains any additional
|
||||
// imports needed by the module that aren't provided by the standard runtime.
|
||||
// The fields on this object will be merged into the importObject with which
|
||||
// the module will be instantiated.
|
||||
// This function returns a promise to the instantiated module.
|
||||
export const instantiate = async (modulePromise, importObjectPromise) => {
|
||||
let dartInstance;
|
||||
|
||||
function stringFromDartString(string) {
|
||||
const totalLength = dartInstance.exports.$stringLength(string);
|
||||
let result = '';
|
||||
let index = 0;
|
||||
while (index < totalLength) {
|
||||
let chunkLength = Math.min(totalLength - index, 0xFFFF);
|
||||
const array = new Array(chunkLength);
|
||||
for (let i = 0; i < chunkLength; i++) {
|
||||
array[i] = dartInstance.exports.$stringRead(string, index++);
|
||||
}
|
||||
result += String.fromCharCode(...array);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
function stringToDartString(string) {
|
||||
const length = string.length;
|
||||
let range = 0;
|
||||
for (let i = 0; i < length; i++) {
|
||||
range |= string.codePointAt(i);
|
||||
}
|
||||
if (range < 256) {
|
||||
const dartString = dartInstance.exports.$stringAllocate1(length);
|
||||
for (let i = 0; i < length; i++) {
|
||||
dartInstance.exports.$stringWrite1(dartString, i, string.codePointAt(i));
|
||||
}
|
||||
return dartString;
|
||||
} else {
|
||||
const dartString = dartInstance.exports.$stringAllocate2(length);
|
||||
for (let i = 0; i < length; i++) {
|
||||
dartInstance.exports.$stringWrite2(dartString, i, string.charCodeAt(i));
|
||||
}
|
||||
return dartString;
|
||||
}
|
||||
}
|
||||
|
||||
// Prints to the console
|
||||
function printToConsole(value) {
|
||||
if (typeof dartPrint == "function") {
|
||||
dartPrint(value);
|
||||
return;
|
||||
}
|
||||
if (typeof console == "object" && typeof console.log != "undefined") {
|
||||
console.log(value);
|
||||
return;
|
||||
}
|
||||
if (typeof print == "function") {
|
||||
print(value);
|
||||
return;
|
||||
}
|
||||
|
||||
throw "Unable to print message: " + js;
|
||||
}
|
||||
|
||||
// Converts a Dart List to a JS array. Any Dart objects will be converted, but
|
||||
// this will be cheap for JSValues.
|
||||
function arrayFromDartList(constructor, list) {
|
||||
const length = dartInstance.exports.$listLength(list);
|
||||
const array = new constructor(length);
|
||||
for (let i = 0; i < length; i++) {
|
||||
array[i] = dartInstance.exports.$listRead(list, i);
|
||||
}
|
||||
return array;
|
||||
}
|
||||
|
||||
buildArgsList = function(list) {
|
||||
const dartList = dartInstance.exports.$makeStringList();
|
||||
for (let i = 0; i < list.length; i++) {
|
||||
dartInstance.exports.$listAdd(dartList, stringToDartString(list[i]));
|
||||
}
|
||||
return dartList;
|
||||
}
|
||||
|
||||
// A special symbol attached to functions that wrap Dart functions.
|
||||
const jsWrappedDartFunctionSymbol = Symbol("JSWrappedDartFunction");
|
||||
|
||||
function finalizeWrapper(dartFunction, wrapped) {
|
||||
wrapped.dartFunction = dartFunction;
|
||||
wrapped[jsWrappedDartFunctionSymbol] = true;
|
||||
return wrapped;
|
||||
}
|
||||
|
||||
// Imports
|
||||
const dart2wasm = {
|
||||
|
||||
_18: f => finalizeWrapper(f,x0 => dartInstance.exports._18(f,x0)),
|
||||
_19: f => finalizeWrapper(f,x0 => dartInstance.exports._19(f,x0)),
|
||||
_75: (x0,x1) => x0.getElementById(x1),
|
||||
_76: f => finalizeWrapper(f,x0 => dartInstance.exports._76(f,x0)),
|
||||
_77: (x0,x1,x2) => x0.addEventListener(x1,x2),
|
||||
_78: f => finalizeWrapper(f,x0 => dartInstance.exports._78(f,x0)),
|
||||
_79: f => finalizeWrapper(f,x0 => dartInstance.exports._79(f,x0)),
|
||||
_1499: (x0,x1) => x0.width = x1,
|
||||
_1501: (x0,x1) => x0.height = x1,
|
||||
_1878: () => globalThis.window,
|
||||
_1920: x0 => x0.innerWidth,
|
||||
_1921: x0 => x0.innerHeight,
|
||||
_6854: () => globalThis.document,
|
||||
_12721: () => globalThis.createBoolCallback(),
|
||||
_12722: () => globalThis.createVoidPointerCallback(),
|
||||
_12723: () => globalThis.createVoidCallback(),
|
||||
_12727: v => stringToDartString(v.toString()),
|
||||
_12743: () => {
|
||||
let stackString = new Error().stack.toString();
|
||||
let frames = stackString.split('\n');
|
||||
let drop = 2;
|
||||
if (frames[0] === 'Error') {
|
||||
drop += 1;
|
||||
}
|
||||
return frames.slice(drop).join('\n');
|
||||
},
|
||||
_12762: s => stringToDartString(JSON.stringify(stringFromDartString(s))),
|
||||
_12763: s => printToConsole(stringFromDartString(s)),
|
||||
_12777: (ms, c) =>
|
||||
setTimeout(() => dartInstance.exports.$invokeCallback(c),ms),
|
||||
_12781: (c) =>
|
||||
queueMicrotask(() => dartInstance.exports.$invokeCallback(c)),
|
||||
_12783: (a, i) => a.push(i),
|
||||
_12794: a => a.length,
|
||||
_12796: (a, i) => a[i],
|
||||
_12797: (a, i, v) => a[i] = v,
|
||||
_12799: a => a.join(''),
|
||||
_12809: (s, p, i) => s.indexOf(p, i),
|
||||
_12812: (o, start, length) => new Uint8Array(o.buffer, o.byteOffset + start, length),
|
||||
_12813: (o, start, length) => new Int8Array(o.buffer, o.byteOffset + start, length),
|
||||
_12814: (o, start, length) => new Uint8ClampedArray(o.buffer, o.byteOffset + start, length),
|
||||
_12815: (o, start, length) => new Uint16Array(o.buffer, o.byteOffset + start, length),
|
||||
_12816: (o, start, length) => new Int16Array(o.buffer, o.byteOffset + start, length),
|
||||
_12817: (o, start, length) => new Uint32Array(o.buffer, o.byteOffset + start, length),
|
||||
_12818: (o, start, length) => new Int32Array(o.buffer, o.byteOffset + start, length),
|
||||
_12821: (o, start, length) => new Float32Array(o.buffer, o.byteOffset + start, length),
|
||||
_12822: (o, start, length) => new Float64Array(o.buffer, o.byteOffset + start, length),
|
||||
_12827: (o) => new DataView(o.buffer, o.byteOffset, o.byteLength),
|
||||
_12831: Function.prototype.call.bind(Object.getOwnPropertyDescriptor(DataView.prototype, 'byteLength').get),
|
||||
_12832: (b, o) => new DataView(b, o),
|
||||
_12834: Function.prototype.call.bind(DataView.prototype.getUint8),
|
||||
_12836: Function.prototype.call.bind(DataView.prototype.getInt8),
|
||||
_12838: Function.prototype.call.bind(DataView.prototype.getUint16),
|
||||
_12840: Function.prototype.call.bind(DataView.prototype.getInt16),
|
||||
_12842: Function.prototype.call.bind(DataView.prototype.getUint32),
|
||||
_12844: Function.prototype.call.bind(DataView.prototype.getInt32),
|
||||
_12850: Function.prototype.call.bind(DataView.prototype.getFloat32),
|
||||
_12852: Function.prototype.call.bind(DataView.prototype.getFloat64),
|
||||
_12873: o => o === undefined,
|
||||
_12874: o => typeof o === 'boolean',
|
||||
_12875: o => typeof o === 'number',
|
||||
_12877: o => typeof o === 'string',
|
||||
_12880: o => o instanceof Int8Array,
|
||||
_12881: o => o instanceof Uint8Array,
|
||||
_12882: o => o instanceof Uint8ClampedArray,
|
||||
_12883: o => o instanceof Int16Array,
|
||||
_12884: o => o instanceof Uint16Array,
|
||||
_12885: o => o instanceof Int32Array,
|
||||
_12886: o => o instanceof Uint32Array,
|
||||
_12887: o => o instanceof Float32Array,
|
||||
_12888: o => o instanceof Float64Array,
|
||||
_12889: o => o instanceof ArrayBuffer,
|
||||
_12890: o => o instanceof DataView,
|
||||
_12891: o => o instanceof Array,
|
||||
_12892: o => typeof o === 'function' && o[jsWrappedDartFunctionSymbol] === true,
|
||||
_12896: (l, r) => l === r,
|
||||
_12897: o => o,
|
||||
_12898: o => o,
|
||||
_12899: o => o,
|
||||
_12900: b => !!b,
|
||||
_12901: o => o.length,
|
||||
_12904: (o, i) => o[i],
|
||||
_12905: f => f.dartFunction,
|
||||
_12906: l => arrayFromDartList(Int8Array, l),
|
||||
_12907: l => arrayFromDartList(Uint8Array, l),
|
||||
_12908: l => arrayFromDartList(Uint8ClampedArray, l),
|
||||
_12909: l => arrayFromDartList(Int16Array, l),
|
||||
_12910: l => arrayFromDartList(Uint16Array, l),
|
||||
_12911: l => arrayFromDartList(Int32Array, l),
|
||||
_12912: l => arrayFromDartList(Uint32Array, l),
|
||||
_12913: l => arrayFromDartList(Float32Array, l),
|
||||
_12914: l => arrayFromDartList(Float64Array, l),
|
||||
_12915: (data, length) => {
|
||||
const view = new DataView(new ArrayBuffer(length));
|
||||
for (let i = 0; i < length; i++) {
|
||||
view.setUint8(i, dartInstance.exports.$byteDataGetUint8(data, i));
|
||||
}
|
||||
return view;
|
||||
},
|
||||
_12916: l => arrayFromDartList(Array, l),
|
||||
_12917: stringFromDartString,
|
||||
_12918: stringToDartString,
|
||||
_12921: l => new Array(l),
|
||||
_12925: (o, p) => o[p],
|
||||
_12929: o => String(o),
|
||||
_12930: (p, s, f) => p.then(s, f),
|
||||
_12949: (o, p) => o[p]
|
||||
};
|
||||
|
||||
const baseImports = {
|
||||
dart2wasm: dart2wasm,
|
||||
|
||||
|
||||
Math: Math,
|
||||
Date: Date,
|
||||
Object: Object,
|
||||
Array: Array,
|
||||
Reflect: Reflect,
|
||||
};
|
||||
|
||||
const jsStringPolyfill = {
|
||||
"charCodeAt": (s, i) => s.charCodeAt(i),
|
||||
"compare": (s1, s2) => {
|
||||
if (s1 < s2) return -1;
|
||||
if (s1 > s2) return 1;
|
||||
return 0;
|
||||
},
|
||||
"concat": (s1, s2) => s1 + s2,
|
||||
"equals": (s1, s2) => s1 === s2,
|
||||
"fromCharCode": (i) => String.fromCharCode(i),
|
||||
"length": (s) => s.length,
|
||||
"substring": (s, a, b) => s.substring(a, b),
|
||||
};
|
||||
|
||||
dartInstance = await WebAssembly.instantiate(await modulePromise, {
|
||||
...baseImports,
|
||||
...(await importObjectPromise),
|
||||
"wasm:js-string": jsStringPolyfill,
|
||||
});
|
||||
|
||||
return dartInstance;
|
||||
}
|
||||
|
||||
// Call the main function for the instantiated module
|
||||
// `moduleInstance` is the instantiated dart2wasm module
|
||||
// `args` are any arguments that should be passed into the main function.
|
||||
export const invoke = (moduleInstance, ...args) => {
|
||||
const dartMain = moduleInstance.exports.$getMain();
|
||||
const dartArgs = buildArgsList(args);
|
||||
moduleInstance.exports.$invokeMain(dartMain, dartArgs);
|
||||
}
|
||||
|
||||