Compare commits
934 Commits
| 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 | |||
| 4955837518 |
@@ -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
|
||||
@@ -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
|
||||
@@ -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,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: ;
|
||||
|
||||
@@ -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
|
||||
@@ -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)
|
||||
|
After Width: | Height: | Size: 489 KiB |
|
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!
|
||||
|
||||
@@ -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).
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
@@ -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,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);}); });
|
||||
@@ -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);
|
||||
});
|
||||
}
|
||||
@@ -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);
|
||||
}
|
||||
|
||||