Compare commits

..

470 Commits

Author SHA1 Message Date
Nick Fisher
d4a3985a65 chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.10
 - thermion_flutter@0.2.1-dev.9
 - thermion_flutter_ffi@0.2.1-dev.9
 - thermion_flutter_platform_interface@0.2.1-dev.9
 - thermion_flutter_web@0.2.0
2024-10-23 14:46:40 +08:00
Nick Fisher
d73e723003 feat: set SCALE2:InputAction.ZOOM by default 2024-10-23 14:45:48 +08:00
Nick Fisher
02c3876131 doc: update camera_manipulation example project and docs 2024-10-23 14:45:48 +08:00
Nick Fisher
641ed45b59 doc: add camera_manipulation example project 2024-10-23 14:45:48 +08:00
Nick Fisher
aa7306fc4c feat: track zoom delta for DelegateInputHandler 2024-10-23 14:45:48 +08:00
Nick Fisher
d8296f85bf feat: set InputType.SCALE1 to ROTATE by default for DelegateInputHandler.fixedOrbit 2024-10-23 14:45:47 +08:00
Nick Fisher
b96dda26c0 chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.9
 - thermion_flutter@0.2.1-dev.8
 - thermion_flutter_ffi@0.2.1-dev.8
 - thermion_flutter_web@0.1.1
 - thermion_flutter_platform_interface@0.2.1-dev.8
2024-10-23 14:45:47 +08:00
Nick Fisher
3ba16e019c chore: add quickstart .metadata 2024-10-23 14:45:47 +08:00
Nick Fisher
12f97cf78f chore: test cleanup 2024-10-23 14:45:47 +08:00
Nick Fisher
219dfa801f chore: test cleanup 2024-10-23 14:45:47 +08:00
Nick Fisher
1826c23692 chore: test cleanup 2024-10-23 14:45:47 +08:00
Nick Fisher
b5dd62a614 doc: add BUILDING.md with Windows instructions 2024-10-23 14:45:47 +08:00
Nick Fisher
59e7d7c7c3 chore!: View.getCamera returns Future<Camera> 2024-10-23 14:45:47 +08:00
Nick Fisher
e66cb35899 fix:move createUnlitMaterialInstance and createGeometry to render thread 2024-10-23 14:45:47 +08:00
Nick Fisher
d9aa90350c feat: produce debug symbols on Windows 2024-10-23 14:45:47 +08:00
Nick Fisher
4a9d28e59d fix:move createUnlitMaterialInstance and createGeometry to render thread 2024-10-23 14:45:47 +08:00
Nick Fisher
636e1961dd fix:move createUnlitMaterialInstance and createGeometry to render thread 2024-10-23 14:45:47 +08:00
Nick Fisher
ff27652fb6 chore: rename SceneManager* methods 2024-10-23 14:45:47 +08:00
Nick Fisher
3b6285cff8 fix: dont calculate surface orientation for non-triangle geometry 2024-10-23 14:45:47 +08:00
Nick Fisher
0d865977b4 chore: test cleanup 2024-10-23 14:45:47 +08:00
Nick Fisher
a6872f5a77 cleanup tests 2024-10-23 14:45:46 +08:00
Nick Fisher
d26d786f67 fix!: (windows) add flushAndWait call to capture() to prevent stalling on Windows; use provided buffer as pixelBuffer rather than duplicate allocation 2024-10-23 14:45:46 +08:00
Nick Fisher
71aa4be3b1 fix!: add meshoptimizer lib on Windows 2024-10-23 14:45:46 +08:00
Nick Fisher
70507a5919 fix!: Dart-only release mode builds on Window 2024-10-23 14:45:46 +08:00
Nick Fisher
b99886095b fix: fix all Windows warnings so apps will compile with /WX 2024-10-23 14:45:46 +08:00
Nick Fisher
8dabe08792 feat: (flutter) (windows) add DestroyRenderingSurface method 2024-10-23 14:45:46 +08:00
Nick Fisher
de4fd3b8d0 feat: (flutter) (windows) add DestroyRenderingSurface method 2024-10-23 14:45:46 +08:00
Nick Fisher
7778afe3ec feat: (flutter) (windows) add DestroyRenderingSurface method 2024-10-23 14:45:46 +08:00
Nick Fisher
f817406dbc feat: (flutter) (windows) add Destroy() to BackingWindow 2024-10-23 14:45:46 +08:00
Nick Fisher
a16e3fcd3c chore: cleanup thermion_flutter pubspec.yaml 2024-10-23 14:45:46 +08:00
Nick Fisher
2bbaff5f15 chore: cleanup quickstart pubspec.yaml 2024-10-23 14:45:46 +08:00
Nick Fisher
18023f1606 chore: cleanup thermion_flutter_ffi pubspec 2024-10-23 14:45:46 +08:00
Nick Fisher
707793c6b2 chore: rearrange thermion_flutter_ffi src dir 2024-10-23 14:45:44 +08:00
Nick Fisher
f080720712 chore: update quickstart for Windows 2024-10-23 14:45:23 +08:00
Nick Fisher
cf7d8e45f4 doc: add camera_manipulation 2024-10-23 14:45:23 +08:00
Nick Fisher
a5c3d7b215 feat: simplify FixedOrbitCameraRotationDelegate 2024-10-23 14:45:23 +08:00
Nick Fisher
68053b0f5a rename gestureHandler to inputHandler 2024-10-23 14:45:23 +08:00
Nick Fisher
39762c8132 chore: update quickstart 2024-10-23 14:45:23 +08:00
Nick Fisher
e27a8ee601 doc: update README 2024-10-23 14:45:23 +08:00
Nick Fisher
0a10dc426b fix: on resize, destroy swapchain if destroySwapChainOnResize is true 2024-10-23 14:45:23 +08:00
Nick Fisher
53ee466fb6 chore: update quickstart android project files 2024-10-23 14:45:23 +08:00
Nick Fisher
33acc73ab7 chore: add flutter quickstart example, assets and update README 2024-10-23 14:45:23 +08:00
Nick Fisher
dbbb4d7123 fix: add listener in ThermionFlutterTextureBackedPlatform to unset viewer on dispose 2024-10-23 14:45:22 +08:00
Nick Fisher
de39af13d0 fix: add listener in ThermionFlutterMethodChannelInterface to unset viewer on dispose 2024-10-23 14:45:22 +08:00
Nick Fisher
9244009350 fix: clean up destruction logic for FlutterPlatformTexture 2024-10-23 14:45:22 +08:00
Nick Fisher
bb10a75f0e fix: use internal Set for determining first ThermionTextureWidget to call requestFrame and cleanup destruction logic 2024-10-23 14:45:22 +08:00
Nick Fisher
6cf4efdf31 chore: await future in ThermionFlutterPlugin 2024-10-23 14:45:22 +08:00
Nick Fisher
83fe74253f chore: remove destroy() methods from FFIRenderTarget/FFISwapChain, implement destroyRenderTarget/destroySwapChain and clean up ThermionViewerFFI disposal 2024-10-23 14:45:22 +08:00
Nick Fisher
4be95072fd chore: update stubbed methods 2024-10-23 14:45:22 +08:00
Nick Fisher
9a8c245e31 chore: add destroySwapChain/destroyRenderTarget methods to Dart vieer and allow setting null renderTarget 2024-10-23 14:45:22 +08:00
Nick Fisher
f2e0f32054 chore: remove destroy() methods from RenderTarget and SwapChain (these need to be managed by Viewer to handle instances where the viewer itself has been disposed 2024-10-23 14:45:22 +08:00
Nick Fisher
a6c9ee60a9 fix: set View render target to nullptr if Dart renderTarget is null 2024-10-23 14:45:21 +08:00
Nick Fisher
9cef768dfc docs: add quickstart to README 2024-10-23 14:45:21 +08:00
Nick Fisher
75d5fb2f8d docs: remove Windows native_toolchain_c fixes from docs 2024-10-23 14:45:21 +08:00
Nick Fisher
e417756971 fix: set render target to null for each view and then destroy render targets when viewer disposed 2024-10-23 14:45:21 +08:00
Nick Fisher
9d961af8ed chore: rename Viewer_destroyOnRenderThread method and cleanup unused SwapChain parameter in render threa 2024-10-23 14:45:21 +08:00
Nick Fisher
ac25475155 chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.8
 - thermion_flutter_web@0.1.0+9
 - thermion_flutter@0.2.1-dev.7
 - thermion_flutter_platform_interface@0.2.1-dev.7
 - thermion_flutter_ffi@0.2.1-dev.7
2024-10-23 14:45:21 +08:00
Nick Fisher
983228a8ac fix: move ThermionWin32.h to include 2024-10-23 14:45:21 +08:00
Nick Fisher
6e627d8f9f chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.7
 - thermion_flutter_web@0.1.0+8
 - thermion_flutter@0.2.1-dev.6
 - thermion_flutter_platform_interface@0.2.1-dev.6
 - thermion_flutter_ffi@0.2.1-dev.6
2024-10-23 14:45:21 +08:00
Nick Fisher
dd82d5d3e7 Windows embedder fixes 2024-10-23 14:45:21 +08:00
Nick Fisher
df319f007f cleanup 2024-10-23 14:45:21 +08:00
Nick Fisher
880551aaa3 cleanup 2024-10-23 14:45:21 +08:00
Nick Fisher
b8c76a16cc (flutter) set view renderable on Windows 2024-10-23 14:45:21 +08:00
Nick Fisher
a52f835288 move standalone Windows file to extras 2024-10-23 14:45:21 +08:00
Nick Fisher
bd9295bc90 cleanup 2024-10-23 14:45:21 +08:00
Nick Fisher
a43ee8fa3a don't call endFrame() if no views were rendered 2024-10-23 14:45:21 +08:00
Nick Fisher
d8a42a4136 add files to run standalone Windows 2024-10-23 14:45:21 +08:00
Nick Fisher
e2d11014d0 fix Windows build.dart to avoid native_assets fork; add implementations for ThermionFlutterWindows 2024-10-23 14:45:20 +08:00
Nick Fisher
6d1e56caac mobile gesture handler 2024-10-23 14:45:20 +08:00
Nick Fisher
c322c6aff9 chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.6
 - thermion_flutter_web@0.1.0+7
 - thermion_flutter_platform_interface@0.2.1-dev.5
 - thermion_flutter@0.2.1-dev.5
 - thermion_flutter_ffi@0.2.1-dev.5
2024-10-23 14:45:20 +08:00
Nick Fisher
7631aec796 add native_assets_cli to dependencies 2024-10-23 14:45:20 +08:00
Nick Fisher
033e863750 chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.5
 - thermion_flutter_platform_interface@0.2.1-dev.4
 - thermion_flutter_web@0.1.0+6
 - thermion_flutter@0.2.1-dev.4
 - thermion_flutter_ffi@0.2.1-dev.4
2024-10-23 14:45:20 +08:00
Nick Fisher
05b96c6972 add animation tests 2024-10-23 14:45:20 +08:00
Nick Fisher
9fc26a2078 update cube test asset with morph targets 2024-10-23 14:45:20 +08:00
Nick Fisher
c894925db1 update cube test asset with morph targets 2024-10-23 14:45:20 +08:00
Nick Fisher
b0da2f63a8 update tests 2024-10-23 14:45:20 +08:00
Nick Fisher
1c05793f03 bump animation_tools_dart dependency 2024-10-23 14:45:20 +08:00
Nick Fisher
bd123ba2f1 bump animation_tools_dart dependency 2024-10-23 14:45:20 +08:00
Nick Fisher
4aad34ce93 add pick to view tests 2024-10-23 14:45:20 +08:00
Nick Fisher
b2bd8ee66f add fall-through for InputAction.ZOOM for Third Person camera delegate 2024-10-23 14:45:20 +08:00
Nick Fisher
018434ea57 move zoom delta to InputAction.ZOOM for FreeFlight rotation delegate 2024-10-23 14:45:20 +08:00
Nick Fisher
71c230552d move zoom delta to InputAction.ZOOM for FixedOrbit rotation delegate 2024-10-23 14:45:20 +08:00
Nick Fisher
2a4b440db2 pass through sensitivity options in DelegateGestureHandler and implement cameraUpdated 2024-10-23 14:45:20 +08:00
Nick Fisher
22eeb492b0 rearrange package folders 2024-10-23 14:45:19 +08:00
Nick Fisher
19a1bc0f1d add stubbed methods 2024-10-23 14:45:19 +08:00
Nick Fisher
58010dafde add InputAction.ZOOM 2024-10-23 14:45:19 +08:00
Nick Fisher
6e64cc3617 add DefaultPickDelegate 2024-10-23 14:45:19 +08:00
Nick Fisher
056ba55f1c use condition_variable for render thread requestFrame as well as tasks 2024-10-23 14:45:19 +08:00
Nick Fisher
abd1fdefca rearrange utils dir 2024-10-23 14:45:19 +08:00
Nick Fisher
1fc3807fa8 add Axis class and rearrange utils dir 2024-10-23 14:45:19 +08:00
Nick Fisher
ae91e09943 add option for async loading glTF resources 2024-10-23 14:45:19 +08:00
Nick Fisher
5087cc48f5 return View when picking, use uint32_t for morphIndices 2024-10-23 14:45:19 +08:00
Nick Fisher
f7da303d29 set bloom enabled by default, but 0 strength 2024-10-23 14:45:19 +08:00
Nick Fisher
f90bc7b165 chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.4
 - thermion_flutter_web@0.1.0+5
 - thermion_flutter@0.2.1-dev.3
 - thermion_flutter_platform_interface@0.2.1-dev.3
 - thermion_flutter_ffi@0.2.1-dev.3
2024-10-23 14:45:19 +08:00
Nick Fisher
9a1354d287 chore: make pub.dev happy 2024-10-23 14:45:19 +08:00
Nick Fisher
b3721122f0 chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.3
 - thermion_flutter_web@0.1.0+4
 - thermion_flutter@0.2.1-dev.2
 - thermion_flutter_platform_interface@0.2.1-dev.2
 - thermion_flutter_ffi@0.2.1-dev.2
2024-10-23 14:45:19 +08:00
Nick Fisher
3c9ee7f82f chore: make pub.dev happy 2024-10-23 14:45:19 +08:00
Nick Fisher
6ec57d02fd chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.2
 - thermion_flutter_web@0.1.0+3
 - thermion_flutter_ffi@0.2.1-dev.1
 - thermion_flutter@0.2.1-dev.1
 - thermion_flutter_platform_interface@0.2.1-dev.1
2024-10-23 14:45:19 +08:00
Nick Fisher
99f0bb8468 chore: make pub.dev happy 2024-10-23 14:45:18 +08:00
Nick Fisher
a6738a8493 chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.1
 - thermion_flutter_web@0.1.0+2
 - thermion_flutter@0.2.1-dev.0
 - thermion_flutter_platform_interface@0.2.1-dev.0
 - thermion_flutter_ffi@0.2.1-dev.0
2024-10-23 14:45:18 +08:00
Nick Fisher
17d6ca9459 chore: move swift bindings to test folder to make pub.dev happy 2024-10-23 14:45:18 +08:00
Nick Fisher
11fa485440 chore(release): publish packages
- thermion_dart@0.2.1-dev.0.0.0
 - thermion_flutter@0.2.1-dev.0.0.0
 - thermion_flutter_ffi@0.2.1-dev.0.0.0
 - thermion_flutter_platform_interface@0.2.1-dev.0.0.0
 - thermion_flutter_web@0.1.0+1
2024-10-23 14:45:18 +08:00
Nick Fisher
3e67b64b90 chore(release): publish packages
- thermion_dart@0.2.0
 - thermion_flutter@0.2.0
 - thermion_flutter_ffi@0.2.0
 - thermion_flutter_platform_interface@0.2.0
 - thermion_flutter_web@0.1.0
2024-10-23 14:45:18 +08:00
Nick Fisher
021180dbe3 chore(release): publish packages
- thermion_dart@0.2.0-dev.8.0.0
 - thermion_flutter@0.2.0-dev.8.0.0
 - thermion_flutter_ffi@0.2.0-dev.8.0.0
 - thermion_flutter_platform_interface@0.2.0-dev.8.0.0
 - thermion_flutter_web@0.1.0-dev.8.0.0
2024-10-23 14:45:18 +08:00
Nick Fisher
4f012662e6 feat: camera and resizing improvements 2024-10-23 14:45:18 +08:00
Nick Fisher
4adcf7bca5 chore: remove EMSCRIPTEN ifdefs in *RenderThread methods (no longer used) 2024-10-23 14:45:18 +08:00
Nick Fisher
8ddaf24a94 chore: cleanup 2024-10-23 14:45:18 +08:00
Nick Fisher
50ed0bdfda feat: support multiple ThermionWidget on Android 2024-10-23 14:45:18 +08:00
Nick Fisher
e1efd5e4e0 feat: use imported texture on iOS 2024-10-23 14:45:18 +08:00
Nick Fisher
fbd54a2a09 feat: working implementation of multiple widgets on macos 2024-10-23 14:45:14 +08:00
Nick Fisher
22020d8607 refactor: continual refactor to support multiple render targets 2024-10-23 14:45:04 +08:00
Nick Fisher
767aa88930 chore: upgrade Swift interop gen 2024-10-23 14:45:04 +08:00
Nick Fisher
3596723d3d chore: refactoring and cleanup for Gizmo 2024-10-23 14:45:04 +08:00
Nick Fisher
03ab646713 feat: more work on multiple views/swapchains 2024-10-23 14:45:04 +08:00
Nick Fisher
a5ca6132f0 refactor!: refactor to support multiple Views/Render Targets 2024-10-23 14:45:04 +08:00
Nick Fisher
ef5b12af4f feat!: big refactor to support multiple swapchains 2024-10-23 14:45:04 +08:00
Nick Fisher
11f668e163 chore: don't keep superfluous handle to rtDepth and rtColor 2024-10-23 14:45:04 +08:00
Nick Fisher
bb303f98d2 chore: cleanup 2024-10-23 14:45:04 +08:00
Nick Fisher
56061e6471 chore: update bindings 2024-10-23 14:45:04 +08:00
Nick Fisher
faabe2f2a2 feat: add rendering check to ThermionWidget ticker 2024-10-23 14:45:04 +08:00
Nick Fisher
6dd09a12da fix!: replace queuePosition/Rotation with queueTransforms 2024-10-23 14:45:04 +08:00
Nick Fisher
68ccd983a0 fix!: replace queuePosition/Rotation with queueTransforms 2024-10-23 14:45:04 +08:00
Nick Fisher
89cdf5e52d feat: add setParameterFloat2 method 2024-10-23 14:45:04 +08:00
Nick Fisher
dc27396c6f feat: add setParameterFloat2 method 2024-10-23 14:45:03 +08:00
Nick Fisher
e2eb1137d2 refactor!: remove RenderThread methods no longer needed 2024-10-23 14:45:03 +08:00
Nick Fisher
b5d47ae2a5 fix!: replace queuePosition/Rotation with queueTransforms 2024-10-23 14:45:03 +08:00
Nick Fisher
c2b1d8660e fix!: replace queuePosition/Rotation with queueTransforms 2024-10-23 14:45:03 +08:00
Nick Fisher
b2024d38b5 feat: add uvScale to unlit material 2024-10-23 14:45:03 +08:00
Nick Fisher
589201ad39 feat: add ThirdPersonCameraDelegate 2024-10-23 14:45:03 +08:00
Nick Fisher
34c0d87703 feat!: set baseColorIndex to -1 by default in unlit materialss 2024-10-23 14:45:03 +08:00
Nick Fisher
f71078e112 chore: update tests 2024-10-23 14:45:03 +08:00
Nick Fisher
fb8c82d838 add ThirdPersonCameraDelegate 2024-10-23 14:45:03 +08:00
Nick Fisher
41432a07ed chore: getter for native camera view matrix 2024-10-23 14:45:03 +08:00
Nick Fisher
2408104bd0 more camera work 2024-10-23 14:45:03 +08:00
Nick Fisher
d1cd68cda6 more camera work 2024-10-23 14:45:03 +08:00
Nick Fisher
3dffaddfe8 chore: rearrange library/export structure 2024-10-23 14:45:03 +08:00
Nick Fisher
f023810859 chore: camera transform tests 2024-10-23 14:45:03 +08:00
Nick Fisher
256d5d4eb1 feat: set camera model matrix directly 2024-10-23 14:45:03 +08:00
Nick Fisher
7edbf8fc8d chore: rearrange library dirs, gesture handler improvements 2024-10-23 14:45:02 +08:00
Nick Fisher
2a20075797 chore: import cleanup 2024-10-23 14:45:02 +08:00
Nick Fisher
c91cbeba1a chore: rearrange flutter gesture/widget directory structure 2024-10-23 14:45:02 +08:00
Nick Fisher
9da4710d54 chore: rearrange flutter gesture/widget directory structure 2024-10-23 14:45:02 +08:00
Nick Fisher
2d1ee3bbbe chore: rename thermion_flutter src dir 2024-10-23 14:45:02 +08:00
Nick Fisher
758704d464 renaming/refactoring and allow creating new cameras 2024-10-23 14:45:02 +08:00
Nick Fisher
9639caf019 feat: expose more camera methods 2024-10-23 14:45:02 +08:00
Nick Fisher
0d45365ba3 chore(release): publish packages
- thermion_dart@0.2.0-dev.7.0
 - thermion_flutter_web@0.1.0-dev.7.0
 - thermion_flutter@0.2.0-dev.7.0
 - thermion_flutter_platform_interface@0.2.0-dev.7.0
 - thermion_flutter_ffi@0.2.0-dev.7.0
2024-10-23 14:45:02 +08:00
Nick Fisher
c19a1b3154 fix!: fix min SDK for thermion_dart 2024-10-23 14:45:02 +08:00
Nick Fisher
ac45bd2963 chore(release): publish packages
- thermion_dart@0.2.0-dev.6.0
 - thermion_flutter_web@0.1.0-dev.6.0
 - thermion_flutter@0.2.0-dev.6.0
 - thermion_flutter_platform_interface@0.2.0-dev.6.0
 - thermion_flutter_ffi@0.2.0-dev.6.0
2024-10-23 14:45:02 +08:00
Nick Fisher
f2d94878da chore!: cleanup deleted export 2024-10-23 14:45:02 +08:00
Nick Fisher
532eadf434 chore(release): publish packages
- thermion_flutter@0.2.0-dev.6.0
2024-10-23 14:45:02 +08:00
Nick Fisher
673842acbc chore!: remove superseded HardwareKeyboard* classes 2024-10-23 14:45:02 +08:00
Nick Fisher
aaca5ad372 chore(release): publish packages
- thermion_dart@0.2.0-dev.5.0
 - thermion_flutter_web@0.1.0-dev.5.0
 - thermion_flutter@0.2.0-dev.5.0
 - thermion_flutter_platform_interface@0.2.0-dev.5.0
 - thermion_flutter_ffi@0.2.0-dev.5.0
2024-10-23 14:45:02 +08:00
Nick Fisher
f6906ac3fd chore!: remove EntityTransformController (requires replacement) 2024-10-23 14:45:02 +08:00
Nick Fisher
38a5395c78 chore(release): publish packages
- thermion_dart@0.2.0-dev.4.0
 - thermion_flutter_web@0.1.0-dev.4.0
 - thermion_flutter@0.2.0-dev.4.0
 - thermion_flutter_platform_interface@0.2.0-dev.4.0
 - thermion_flutter_ffi@0.2.0-dev.4.0
2024-10-23 14:45:01 +08:00
Nick Fisher
85dcd5a5b9 fix!: (web/wasm) free pick callbacks on dispose 2024-10-23 14:45:01 +08:00
Nick Fisher
92fbe2e5d5 chore!: restructure viewer folders as libraries to only export the public interface 2024-10-23 14:45:01 +08:00
Nick Fisher
779d5cba1c chore(release): publish packages
- thermion_flutter@0.2.0-dev.3.0
2024-10-23 14:45:01 +08:00
Nick Fisher
f4217401e2 chore: add path to dev deps 2024-10-23 14:45:01 +08:00
Nick Fisher
e99bf6b14b chore!: (flutter) cleanup for pub.dev publishing 2024-10-23 14:45:01 +08:00
Nick Fisher
84775f7e2a fix!: remove EntityControllerMouseWidget (replace with GestureHandler) 2024-10-23 14:45:01 +08:00
Nick Fisher
8c6bc456a8 chore(release): publish packages
- thermion_flutter@0.2.0-dev.2.0
2024-10-23 14:45:01 +08:00
Nick Fisher
d58d8bbc35 chore: (flutter) web packaging fixes (use logger) 2024-10-23 14:45:01 +08:00
Nick Fisher
0738f32751 chore: (flutter) web packaging fixes 2024-10-23 14:45:01 +08:00
Nick Fisher
110962cc37 chore: (flutter) web packaging fixes 2024-10-23 14:45:01 +08:00
Nick Fisher
70e529605c chore: (flutter) add package:web to flutter deps 2024-10-23 14:45:01 +08:00
Nick Fisher
aa02e04091 chore!: remove EntityListWidget - will replace with new Scene 2024-10-23 14:45:01 +08:00
Nick Fisher
a670ce1cf0 chore(release): publish packages
- thermion_dart@0.2.0-dev.1.0
 - thermion_flutter@0.2.0-dev.1.0
 - thermion_flutter_ffi@0.2.0-dev.1.0
 - thermion_flutter_platform_interface@0.2.0-dev.1.0
 - thermion_flutter_web@0.1.0-dev.1.0
2024-10-23 14:45:01 +08:00
Nick Fisher
f552e61157 rename Android plugin class in pubspec.yaml 2024-10-23 14:45:01 +08:00
Nick Fisher
e397b68060 add namespace for build.gradle 2024-10-23 14:45:00 +08:00
Nick Fisher
cb5580d770 add namespace for AndroidManifest.xml 2024-10-23 14:45:00 +08:00
Nick Fisher
0cd4ecf701 rename Android package/paths 2024-10-23 14:45:00 +08:00
Nick Fisher
46291d4a63 (flutter) provide nicer implementation of FixedOrbitCameraRotationDelegate 2024-10-23 14:45:00 +08:00
Nick Fisher
1344d1c424 (flutter) update FreeFlight camera delegate 2024-10-23 14:45:00 +08:00
Nick Fisher
bb0f3d417f add PickDelegate to DelegateGestureHandler 2024-10-23 14:45:00 +08:00
Nick Fisher
0f6d02a83f add PICK_ENTITY to GestureAction 2024-10-23 14:45:00 +08:00
Nick Fisher
56e00c9c55 add background color tests 2024-10-23 14:45:00 +08:00
Nick Fisher
943ca26eae normalize direction in addLight 2024-10-23 14:45:00 +08:00
Nick Fisher
8e1c611e92 set clearOptions to true 2024-10-23 14:45:00 +08:00
Nick Fisher
ed5f23faf2 introduce stronger native typing, camera projection/culling methods, update tests 2024-10-23 14:45:00 +08:00
Nick Fisher
60bd7498ea (flutter) use scheduleFrameCallback to invoke requestFrame to match Flutter/vsync 2024-10-23 14:45:00 +08:00
Nick Fisher
ab1de78b74 rename from *FFI to *RenderThread, return bool from render() to check frame timings, update render loop to wait on condition variable, add requestFrame() method 2024-10-23 14:45:00 +08:00
Nick Fisher
493d547c7b add Dart Camera type 2024-10-23 14:45:00 +08:00
Nick Fisher
7bcfd0f805 rename CameraPtr to TCamera and use named arguments for setCameraLensProjection 2024-10-23 14:45:00 +08:00
Nick Fisher
3e1b151488 move MaterialInstance methods to own class 2024-10-23 14:45:00 +08:00
Nick Fisher
820ad7cb28 rename setLayerEnabled to setLayerVisibility, add setVisibilityLayer method 2024-10-23 14:45:00 +08:00
Nick Fisher
686b4800aa add PickDelegate 2024-10-23 14:44:59 +08:00
Nick Fisher
cb7828820d add ThermionPickResult typedef 2024-10-23 14:44:59 +08:00
Nick Fisher
a6d457f664 update bindings 2024-10-23 14:44:59 +08:00
Nick Fisher
fd95c634f1 add setMaterialDepthWrite method 2024-10-23 14:44:59 +08:00
Nick Fisher
df0a744cc9 add setMaterialDepthWrite method 2024-10-23 14:44:59 +08:00
Nick Fisher
af55ef56c9 update tests 2024-10-23 14:44:59 +08:00
Nick Fisher
6c6991f0a9 update stub 2024-10-23 14:44:59 +08:00
Nick Fisher
d248a85aee add createUnlitMaterialInstance, setMaterialPropertyInt methods to viewer interface 2024-10-23 14:44:59 +08:00
Nick Fisher
64642204fc update bindings 2024-10-23 14:44:59 +08:00
Nick Fisher
5bb84618c3 replace some async methods with futures, fix setMaterialProperty4, update unproject, setMaterialPropertyInt, createUnlitMaterialInstance 2024-10-23 14:44:59 +08:00
Nick Fisher
fc5cce71b7 export geometry from thermion_dart 2024-10-23 14:44:59 +08:00
Nick Fisher
b00aa0696f remove image.mat from LFS 2024-10-23 14:44:59 +08:00
Nick Fisher
02aa14d7b7 remove image.mat from LFS 2024-10-23 14:44:59 +08:00
Nick Fisher
f9dfb68e9f update built unlit material 2024-10-23 14:44:59 +08:00
Nick Fisher
208eb4ad06 remove old default paramsf rom UnlitMaterialProvider 2024-10-23 14:44:59 +08:00
Nick Fisher
5608abdf79 add setMaterialProperty for int, add create_unlit_material_instance, use double4 instead of float4 2024-10-23 14:44:59 +08:00
Nick Fisher
2e404f2087 add setMaterialProperty for int, add create_unlit_material_instance 2024-10-23 14:44:59 +08:00
Nick Fisher
024201a7b7 set default layer for loadGlb to 0,. add setMaterialProperty for int, add SceneManager::createUnlitMaterialInstance 2024-10-23 14:44:58 +08:00
Nick Fisher
7dde3b5d27 add base color/texture to unlit 2024-10-23 14:44:58 +08:00
Nick Fisher
834726b49e set default layer for loadGlb to 0,. add setMaterialProperty for int 2024-10-23 14:44:58 +08:00
Nick Fisher
204f8204f1 change float4 to double4 2024-10-23 14:44:58 +08:00
Nick Fisher
3cf4790148 update tests 2024-10-23 14:44:58 +08:00
Nick Fisher
180f3f08dc update unproject texture to accept input texture 2024-10-23 14:44:58 +08:00
Nick Fisher
67698775a3 update unproject texture to accept input texture 2024-10-23 14:44:58 +08:00
Nick Fisher
22f97beeaa update unproject texture to accept input texture 2024-10-23 14:44:58 +08:00
Nick Fisher
9f98f21d38 update unproject texture to accept input texture 2024-10-23 14:44:58 +08:00
Nick Fisher
94ff71281f don't call clearBackgroundImage when setBackgroundImage is called (would deadlock) 2024-10-23 14:44:58 +08:00
Nick Fisher
4a96df1574 set default material for geometry to baseColorIndex 0 2024-10-23 14:44:58 +08:00
Nick Fisher
80448d4a24 depth pre-pass when projecting texture 2024-10-23 14:44:58 +08:00
Nick Fisher
257c4b29f2 add spot constructor 2024-10-23 14:44:58 +08:00
Nick Fisher
3f9db33340 add test cube texture image 2024-10-23 14:44:58 +08:00
Nick Fisher
2c42fbd38d update test 2024-10-23 14:44:58 +08:00
Nick Fisher
8eca3ec76b add image methods to test helper 2024-10-23 14:44:58 +08:00
Nick Fisher
0b64bc580d update showcase 2024-10-23 14:44:58 +08:00
Nick Fisher
ce2266d0ed test updates 2024-10-23 14:44:57 +08:00
Nick Fisher
60530fad6b widget updates 2024-10-23 14:44:57 +08:00
Nick Fisher
b8f94ed8a9 increase min Dart SDK to 3.5 for .address FFI accessors 2024-10-23 14:44:57 +08:00
Nick Fisher
330b1ca5d8 update ffigen with new headers 2024-10-23 14:44:57 +08:00
Nick Fisher
40a7f86cef fixes for createMaterialInstance 2024-10-23 14:44:57 +08:00
Nick Fisher
a9b3050265 gesture detector fixes 2024-10-23 14:44:57 +08:00
Nick Fisher
b7e64b3abe ThermionViewer: add create/destroy materialinstance, add MaterialInstance property to createGeometry, priority/layer to loadGlbFromBuffer 2024-10-23 14:44:57 +08:00
Nick Fisher
56baa44c99 widget cleanup 2024-10-23 14:44:57 +08:00
Nick Fisher
357d815489 use TMaterialInstance for FFI API, add priority/layer params to load_glb_from_buffer 2024-10-23 14:44:57 +08:00
Nick Fisher
e542855639 add priority/layer to FFI viewer, use struct for model matrix, add createUbershaderMaterialInstance and destroyMaterialInstance 2024-10-23 14:44:57 +08:00
Nick Fisher
6fc3f49152 update bindings 2024-10-23 14:44:57 +08:00
Nick Fisher
e67c77b322 use SceneManager::LAYERS enum for Overlay, set priority/layer in loadGlbFromBuffer, add create/destroy material instance 2024-10-23 14:44:57 +08:00
Nick Fisher
c3291f672e use SceneManager::LAYERS enum for Overlay 2024-10-23 14:44:57 +08:00
Nick Fisher
176036402a use SceneManager::LAYERS enum for gizmo 2024-10-23 14:44:57 +08:00
Nick Fisher
9d5488b82d add priority/layer to load_glb_from_buffer 2024-10-23 14:44:57 +08:00
Nick Fisher
a2618dab31 native types, add create/destroy material instance, add SceneManager::LAYERS enum 2024-10-23 14:44:57 +08:00
Nick Fisher
bb46241f98 refactor: native types 2024-10-23 14:44:57 +08:00
Nick Fisher
ff7fee2d94 refactor: native types 2024-10-23 14:44:57 +08:00
Nick Fisher
9a23a24bd3 refactor: move native types to own header, add methods for create/destroy material instance, add priority/layer to load_glb_from_buffer 2024-10-23 14:44:56 +08:00
Nick Fisher
a62762be92 refactor: Dart types 2024-10-23 14:44:56 +08:00
Nick Fisher
60dbc4ffd6 add texture methods (including unproject) 2024-10-23 14:44:39 +08:00
Nick Fisher
773077ab9c don't store gizmo material in LFS 2024-10-23 14:44:39 +08:00
Nick Fisher
679d208c8d test update 2024-10-23 14:44:39 +08:00
Nick Fisher
19bec9a9cf restructure viewer/types/helper folders, remove old WASM/web FFI interop, add SceneUpdated stream 2024-10-23 14:44:39 +08:00
Nick Fisher
a7f6ae19f0 update tests 2024-10-23 14:44:39 +08:00
Nick Fisher
475f90d224 restructure viewer/types/helper folders, remove old WASM/web FFI interop, add SceneUpdated stream 2024-10-23 14:44:39 +08:00
Nick Fisher
285c9016d7 gesture handler & delegate improvements 2024-10-23 14:44:39 +08:00
Nick Fisher
5923d07abc allow setting material property by name 2024-10-23 14:44:39 +08:00
Nick Fisher
91cece81fb (flutter) export delegate gesture handler 2024-10-23 14:44:38 +08:00
Nick Fisher
b714d421f6 remove using namespace filament* 2024-10-23 14:44:38 +08:00
Nick Fisher
20852c7ae5 update bindings 2024-10-23 14:44:38 +08:00
Nick Fisher
f18f04734d allow setting material property by name 2024-10-23 14:44:38 +08:00
Nick Fisher
2eb7cc286b remove using namespace filament* 2024-10-23 14:44:38 +08:00
Nick Fisher
ae91e3e2c1 geometry receives/casts shadows by default 2024-10-23 14:44:38 +08:00
Nick Fisher
d73b437104 gesture handler improvements 2024-10-23 14:44:38 +08:00
Nick Fisher
04b9d9e400 remove superseded desktop/mobile gesture detector widget 2024-10-23 14:44:38 +08:00
Nick Fisher
6e7741706e add pan camera implementation and fix velocity timer 2024-10-23 14:44:38 +08:00
Nick Fisher
af0ee0584d add delegate-based implementations for gesture handlers 2024-10-23 14:44:38 +08:00
Nick Fisher
cabed69c48 remove double sided from HighlightOverlay material 2024-10-23 14:44:38 +08:00
Nick Fisher
2832686193 adjust gizmo size 2024-10-23 14:44:38 +08:00
Nick Fisher
d7149c8282 fix setCameraModelMatrix4 2024-10-23 14:44:38 +08:00
Nick Fisher
571c7e60aa update bindings 2024-10-23 14:44:38 +08:00
Nick Fisher
a434829a6c initialize viewportDimensions to (0,0) in ThermionViewer 2024-10-23 14:44:38 +08:00
Nick Fisher
60b8716315 fix winding order in GeometryHelper 2024-10-23 14:44:38 +08:00
Nick Fisher
7aba6d15b7 reduce size of gizmo 2024-10-23 14:44:37 +08:00
Nick Fisher
48ada59a2f remove logging 2024-10-23 14:44:37 +08:00
Nick Fisher
c5aa1abb30 culling fixes for HighlightOverlay 2024-10-23 14:44:37 +08:00
Nick Fisher
daeedd6f73 add v2 gesture handlers 2024-10-23 14:44:37 +08:00
Nick Fisher
cac80159ff add v2 gesture handlers 2024-10-23 14:44:37 +08:00
Nick Fisher
a5cb23c32e chore!: rename controller to viewer in gesture detector widgets 2024-10-23 14:44:37 +08:00
Nick Fisher
0f5b7e5e6d update material building in Makefile 2024-10-23 14:44:37 +08:00
Nick Fisher
12aaebd154 update test 2024-10-23 14:44:37 +08:00
Nick Fisher
8899d4b960 use opaque CameraPtr to set camera matrices/properties/etc 2024-10-23 14:44:37 +08:00
Nick Fisher
1ba91a1fd6 rename getBoundingBox to getViewportBoundingBox and add camera methods 2024-10-23 14:44:37 +08:00
Nick Fisher
c34d89affd rename getBoundingBox to getViewportBoundingBox 2024-10-23 14:44:37 +08:00
Nick Fisher
e07a4fac97 explicitly mark type of Camera for Gizmo 2024-10-23 14:44:37 +08:00
Nick Fisher
76428b2e70 use opaque CameraPtr to set camera matrices/properties/etc 2024-10-23 14:44:37 +08:00
Nick Fisher
78a0763ad7 remove camera methods from FilamentViewer 2024-10-23 14:44:37 +08:00
Nick Fisher
32591f5af7 remove camera methods from FilamentViewer 2024-10-23 14:44:37 +08:00
Nick Fisher
c1898b97c9 use opaque CameraPtr to set camera matrices/properties/etc 2024-10-23 14:44:37 +08:00
Nick Fisher
5c82b6351c mark all ffigen functions as leaf 2024-10-23 14:44:37 +08:00
Nick Fisher
14f62a6427 remove update_viewport_and_camera_projection_ffi 2024-10-23 14:44:36 +08:00
Nick Fisher
2a30a6f2e1 remove update_viewport_and_camera_projection_ffi 2024-10-23 14:44:36 +08:00
Nick Fisher
7b96ee0d9c add matrix helper 2024-10-23 14:44:36 +08:00
Nick Fisher
5994908197 update stubbed ThermionViewer methods 2024-10-23 14:44:36 +08:00
Nick Fisher
d6c3badbba remove unused get_camera_position method 2024-10-23 14:44:36 +08:00
Nick Fisher
9aa9e84bc0 update stub ThermionViewer 2024-10-23 14:44:36 +08:00
Nick Fisher
f3637eab3f update bindings 2024-10-23 14:44:36 +08:00
Nick Fisher
9f9ee09f9c add loadGlbFromBuffer implementation to ThermionViewerFFI 2024-10-23 14:44:36 +08:00
Nick Fisher
08b986c5e3 add createGeometryWithNormals to SceneManager 2024-10-23 14:44:36 +08:00
Nick Fisher
c8f6c2582b add createGeometryWithNormals to SceneManager 2024-10-23 14:44:36 +08:00
Nick Fisher
ae1c8dbdfc add normals to CustomGeometry implementation 2024-10-23 14:44:36 +08:00
Nick Fisher
3b5c91b15c add normals to CustomGeometry interface 2024-10-23 14:44:36 +08:00
Nick Fisher
7a6e9cd598 HighlightOverlay fixes 2024-10-23 14:44:36 +08:00
Nick Fisher
6a8f0bda09 don't set stencil highlight in Gizmo 2024-10-23 14:44:36 +08:00
Nick Fisher
05305aa27d add create_geometry_with_normals method 2024-10-23 14:44:36 +08:00
Nick Fisher
ae59288b1f add create_geometry_with_normals method 2024-10-23 14:44:36 +08:00
Nick Fisher
7269a5e527 add create_geometry_with_normals_ffi method, switch load_glb_from_buffer type to uint8_t for Dart leaf compat and add keepData param 2024-10-23 14:44:36 +08:00
Nick Fisher
02dffaade5 add create_geometry_with_normals_ffi method, switch load_glb_from_buffer type to uint8_t for Dart leaf compat and add keepData param 2024-10-23 14:44:35 +08:00
Nick Fisher
9686650987 update test helpers 2024-10-23 14:44:35 +08:00
Nick Fisher
eefa3cbe98 (flutter) add experimental GestureHandler widget and decouple from ThermionGestureDetectorDesktop 2024-10-23 14:44:35 +08:00
Nick Fisher
0a4b5c8676 (flutter) add experimental GestureHandler widget and decouple from ThermionGestureDetectorDesktop 2024-10-23 14:44:35 +08:00
Nick Fisher
dff3cc21fa add loadGlbFromBuffer method and normals param to ThermionViewer 2024-10-23 14:44:35 +08:00
Nick Fisher
d7bb0e492c (flutter) set enablePicking to false by default in ThermionGestureDetector 2024-10-23 14:44:35 +08:00
Nick Fisher
af92c26124 (flutter) add const FlutterWebOptions 2024-10-23 14:44:35 +08:00
Nick Fisher
d1ffa246a9 (flutter) add CameraOrientationWidget 2024-10-23 14:44:35 +08:00
Nick Fisher
4e7b79f98d (flutter) add const constructor for flutter options 2024-10-23 14:44:35 +08:00
Nick Fisher
9cff791ce5 add GeometryHelper 2024-10-23 14:44:35 +08:00
Nick Fisher
fdb2d75cf0 (flutter) add CameraOrientationWidget 2024-10-23 14:44:35 +08:00
Nick Fisher
825c6e1a80 feat: parent the cloned entity instance when setting stencil highlight 2024-10-23 14:44:35 +08:00
Nick Fisher
ec9366d72b feat: add getAncestor method 2024-10-23 14:44:35 +08:00
Nick Fisher
ff304ad3d4 feat: add getAncestor method 2024-10-23 14:44:35 +08:00
Nick Fisher
b71ba411fd update bindings 2024-10-23 14:44:35 +08:00
Nick Fisher
dfe7b4e6c6 feat: set stencil highlight on gizmo attach 2024-10-23 14:44:35 +08:00
Nick Fisher
96e2de6de1 update tests 2024-10-23 14:44:35 +08:00
Nick Fisher
d4d4dc4fd7 feat: move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector and removeStencilHighlight 2024-10-23 14:44:34 +08:00
Nick Fisher
2ccbb4c0c4 chore: remove createGeometry method from FilamentViewer, set default view blend mode 2024-10-23 14:44:34 +08:00
Nick Fisher
709b098054 fix: properly destroy entities/material/etc in Gizmo on destruction, remove custom scene creation logic 2024-10-23 14:44:34 +08:00
Nick Fisher
53ff6c72f0 feat: move HighlightOverlay to nested class, move createGeometry to SceneManager, add queueRelativePositionUpdateFromViewportVector 2024-10-23 14:44:34 +08:00
Nick Fisher
8044adcc50 feat: add removeStencilHighlight, accept color param for setStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionDartApi 2024-10-23 14:44:34 +08:00
Nick Fisher
9b91da3798 feat: add removeStencilHighlight, queuePositionUpdateFromViewportCoords to ThermionViewer 2024-10-23 14:44:34 +08:00
Nick Fisher
286910e722 chore: delete old unlit_opaque material 2024-10-23 14:44:34 +08:00
Nick Fisher
8fe4322536 chore: rebuild unlit material 2024-10-23 14:44:34 +08:00
Nick Fisher
a7005d13df feat: add scale parameter to unlit material 2024-10-23 14:44:34 +08:00
Nick Fisher
8ca4205d2c fix: add Fence to capture() and set stencil buffer by default 2024-10-23 14:44:34 +08:00
Nick Fisher
af30b27724 test: add test cube.glb 2024-10-23 14:44:34 +08:00
Nick Fisher
2d688e74f2 chore: remove old materials Makefile 2024-10-23 14:44:34 +08:00
Nick Fisher
0a4e3501dc feat: add flag for keepData for gltf instancing, add highlightScene, add stencilHighlight method 2024-10-23 14:44:34 +08:00
Nick Fisher
1b50ca2b57 chore: minor widget fixes 2024-10-23 14:44:34 +08:00
Nick Fisher
b454bbd662 feat: add grid material 2024-10-23 14:44:34 +08:00
Nick Fisher
1480920938 feat: allow passing null options to ThermionWidget 2024-10-23 14:44:34 +08:00
Nick Fisher
65a6231f23 feat: grid uses own material 2024-10-23 14:44:33 +08:00
Nick Fisher
4b70116754 chore: clean up old commented code 2024-10-23 14:44:33 +08:00
Nick Fisher
e136b0a9f1 fix: ignore pick results directly on axis 2024-10-23 14:44:33 +08:00
Nick Fisher
e45cc0267f feat: add grid material 2024-10-23 14:44:33 +08:00
Nick Fisher
d17cce2ca4 feat: expose setLightDirection and setLightPosition 2024-10-23 14:44:33 +08:00
Nick Fisher
c93cc296a0 chore: update binding 2024-10-23 14:44:33 +08:00
Nick Fisher
f63d42a75b chore: (js) stub missing methods 2024-10-23 14:44:33 +08:00
Nick Fisher
1ae7be0846 chore: (wasm) add missing interop methods 2024-10-23 14:44:33 +08:00
Nick Fisher
c3388f2a48 feat: (flutter) (web) if importCanvasAsWidget is false, render transparency 2024-10-23 14:44:33 +08:00
Nick Fisher
4909f4395d chore: stub ThermionWidget methods 2024-10-23 14:44:33 +08:00
Nick Fisher
2a8122e280 feat: (flutter) move DPR calculation to resizeTexture and add createViewerWithOptions method to ThermionFlutterFFI 2024-10-23 14:44:33 +08:00
Nick Fisher
937eaaaaa1 fix: (flutter) pass ThermionFlutterOptions to ThermionWidget, use dpr for resizeTexture, delete unnecessary TransparencyPainter class 2024-10-23 14:44:33 +08:00
Nick Fisher
f0974509bf feat: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated 2024-10-23 14:44:33 +08:00
Nick Fisher
0d71b0d8fe feat: add createViewerWithOptions to ThermionFlutterPlugin and mark createViewer as deprecated 2024-10-23 14:44:33 +08:00
Nick Fisher
cf0a76c343 feat: (flutter) (web) use options to determine whether to create canvas, and set fixed position + offset 2024-10-23 14:44:33 +08:00
Nick Fisher
0f5b90998e test: update viewport gizmo test 2024-10-23 14:44:33 +08:00
Nick Fisher
8963b79db0 chore: (flutter) export platform interface from thermion_flutter package 2024-10-23 14:44:33 +08:00
Nick Fisher
dc0a698330 chore: stub new methods 2024-10-23 14:44:32 +08:00
Nick Fisher
6e54ed096f doc: pixelRatio 2024-10-23 14:44:32 +08:00
Nick Fisher
a552c11983 feat: add ThermionFlutterOptions classes, rename interface parameter for offsetTop and ensure pixelRatio is passed to resizeTexture 2024-10-23 14:44:32 +08:00
Nick Fisher
1bdf6888c6 fix: emscripten export visibility for add_light 2024-10-23 14:44:32 +08:00
Nick Fisher
f69fcbb783 chore: use float instead of float32_t in FilamentViewer 2024-10-23 14:44:32 +08:00
Nick Fisher
6771431038 chore: add nested PickCallbackHandler to Gizmo 2024-10-23 14:44:32 +08:00
Nick Fisher
712568d118 chore: update Makefile to add missing headers to resgen files 2024-10-23 14:44:32 +08:00
Nick Fisher
4916c4cc50 fix: (flutter/web) use window.devicePixelRatio for viewport 2024-10-23 14:44:32 +08:00
Nick Fisher
8ed26c72e2 fix: (wasm) use correct coords for pick, free memory correctly, keep pixelratio copy 2024-10-23 14:44:32 +08:00
Nick Fisher
919010235c fix: (flutter) desktop gesture detector changes for new Gizmo methods 2024-10-23 14:44:32 +08:00
Nick Fisher
580d795054 chore: Dart Gizmo class cleanup 2024-10-23 14:44:32 +08:00
Nick Fisher
329193f2f2 feat: add setGizmoVisibility/pickGizmo methods to ThermionViewer 2024-10-23 14:44:32 +08:00
Nick Fisher
b20acaec6f feat: remove gizmo view references, exclude gizmo entities from picking, add createIbl 2024-10-23 14:44:32 +08:00
Nick Fisher
516d420a1e feat: createIbl 2024-10-23 14:44:32 +08:00
Nick Fisher
b92b34a8ad chore: init SceneManager pointers to nullptr 2024-10-23 14:44:32 +08:00
Nick Fisher
7d7596bbdd fix: add more nan checks for gizmo manipulation 2024-10-23 14:44:31 +08:00
Nick Fisher
acac2dba90 feat: expose API methods for create_ibl, pick/set gizmo visibility 2024-10-23 14:44:31 +08:00
Nick Fisher
727ac7d9df feat: create transparent overlay for gizmo for easier picking 2024-10-23 14:44:31 +08:00
Nick Fisher
2fc54ae343 feat: rescale gizmo based on distance from camera 2024-10-23 14:44:31 +08:00
Nick Fisher
e04cd0488e feat: rescale gizmo based on distance from camera 2024-10-23 14:44:31 +08:00
Nick Fisher
f867e21647 fix: add check for nan NDC coordinates for viewport translation 2024-10-23 14:44:31 +08:00
Nick Fisher
ec27935d81 fix stub methods 2024-10-23 14:44:31 +08:00
Nick Fisher
08ae0387a9 add implementations to JS bridge/shim classes 2024-10-23 14:44:31 +08:00
Nick Fisher
ca69c783d3 add missing methods to wasm viewer 2024-10-23 14:44:31 +08:00
Nick Fisher
12198dd6df feat: highlight gizmo on hover 2024-10-23 14:44:31 +08:00
Nick Fisher
d1fbbe1167 add implementations to FFI viewer 2024-10-23 14:44:31 +08:00
Nick Fisher
65e79b0d07 fix!: (flutter) pass pixelRatio to createTexture 2024-10-23 14:44:31 +08:00
Nick Fisher
9fb9df1843 (flutter) (web) initialize viewer to 1x1 then resize on createTexture 2024-10-23 14:44:31 +08:00
Nick Fisher
b15166a599 feat!: (flutter) (web) upgrade package:web dep to 1.0.0 2024-10-23 14:44:31 +08:00
Nick Fisher
bf81dfe806 fix!: (flutter) pass pixelRatio to createTexture 2024-10-23 14:44:31 +08:00
Nick Fisher
f588b3b6e7 feat: expose setLayerEnabled, viewportDimensions and getCameraFov on ThermionView 2024-10-23 14:44:31 +08:00
Nick Fisher
c29db74b1d stub out new methods 2024-10-23 14:44:31 +08:00
Nick Fisher
213fc3da91 fix!: (flutter) pass pixelRatio to createTexture 2024-10-23 14:44:30 +08:00
Nick Fisher
ab4f721914 fix!: (flutter) pass pixelRatio to createTexture 2024-10-23 14:44:30 +08:00
Nick Fisher
8ac9876ec3 chore: update bindings 2024-10-23 14:44:30 +08:00
Nick Fisher
4fbc113fcb chore: add viewport test 2024-10-23 14:44:30 +08:00
Nick Fisher
4d3d744cd6 feat: layers, grid 2024-10-23 14:44:30 +08:00
Nick Fisher
21416fa8c8 feat: layers, grid 2024-10-23 14:44:30 +08:00
Nick Fisher
f2f973bf00 feat: ignore grid overlay and gizmo center when picking, implement highlighting 2024-10-23 14:44:30 +08:00
Nick Fisher
0c655dbfd4 feat: SceneManager updates (setLayer, add grid, queueRelativePositionUpdateWorld 2024-10-23 14:44:30 +08:00
Nick Fisher
ebac947c92 feat: expose set_layer_enabled, get_camera_fov and queue_relative_position_updateg_world_axis to ThermionDartApi.h 2024-10-23 14:44:30 +08:00
Nick Fisher
ce85a9d0b1 feat: add getCameraFov to FilamentViewer 2024-10-23 14:44:30 +08:00
Nick Fisher
f114ca33d5 feat: add new grid overlay files to web CmakeLists 2024-10-23 14:44:30 +08:00
Nick Fisher
850628f7f6 chore: rebuild materials 2024-10-23 14:44:30 +08:00
Nick Fisher
8681d58ffb fix: update material output path in Makefile 2024-10-23 14:44:30 +08:00
Nick Fisher
8f2cd5a353 add grid overlay 2024-10-23 14:44:30 +08:00
Nick Fisher
f6f12e2566 use inactive/active color gizmo 2024-10-23 14:44:30 +08:00
Nick Fisher
3512ed6da3 chore: don't use shader to overlay gizmo 2024-10-23 14:44:30 +08:00
Nick Fisher
4a29a77a78 feat: re-implement (native) Gizmo class, expose preserveScaling parameter for setParent, add methods for getting viewport bounding box from renderable entity 2024-10-23 14:44:29 +08:00
Nick Fisher
aa17962936 fix: (web) add emscripten guards for flushAndWait call when swapchain destroyed 2024-10-23 14:44:29 +08:00
Nick Fisher
10cab8dcb4 feat!: (web) (flutter) create canvas when createViewer is called (no longer need to manually add canvas element to web HTML) 2024-10-23 14:44:29 +08:00
Nick Fisher
0a720fae72 feat: add capture() function and expose viewportDimensions on ThermionViewer (allows easier saving of captured images to PNG) 2024-10-23 14:44:29 +08:00
Nick Fisher
0153b5be22 feat: (web) allow table growth in emscripten module for passing C-style callback function pointers 2024-10-23 14:44:29 +08:00
Nick Fisher
479a9ead03 feat: (web) add capture() method and missing camera navigation controls 2024-10-23 14:44:29 +08:00
Nick Fisher
b207a48175 feat!: resize canvas on web 2024-10-23 14:44:29 +08:00
Nick Fisher
9e3311c6f9 feat!: update web/http dependencies 2024-10-23 14:44:29 +08:00
Nick Fisher
88257c7e03 feat: download WASM module directly on web (no need to embed in index.html any more) and expose updateViewportAndCameraProjection 2024-10-23 14:44:29 +08:00
Nick Fisher
a30e2f295f feat: add startOffset parameter to gltf playAnimation 2024-10-23 14:44:29 +08:00
Nick Fisher
96ad9dee18 chore(release): publish packages
- thermion_dart@0.1.3
 - thermion_flutter_ffi@0.1.0+12
 - thermion_flutter_web@0.0.3
 - thermion_flutter_platform_interface@0.1.0+11
 - thermion_flutter@0.1.1+13
2024-10-23 14:44:29 +08:00
Nick Fisher
8800195c2c chore: remove top-level .gitattributes 2024-10-23 14:41:21 +08:00
Nick Fisher
7814269e15 Create dart.yml 2024-10-23 14:35:44 +11:00
Nick Fisher
3e1d785f58 Merge pull request #65 from nmfisher/develop
Documentation
2024-07-23 09:41:23 +08:00
Nick Fisher
fd31b4dcad docs: rename examples to showcase 2024-07-23 09:38:26 +08:00
Nick Fisher
41bf9ededa feat: add clearMorphAnimationData function 2024-07-23 09:38:26 +08:00
Hannes Hultergård
d745712650 Add example files that can be parsed by pub.dev 2024-07-23 09:38:26 +08:00
Nick Fisher
1df732be7c chore(release): publish packages
- thermion_flutter_ffi@0.1.0+11
 - thermion_flutter@0.1.1+12
2024-07-23 09:38:26 +08:00
Nick Fisher
8b413eca52 fix: add logging dependency 2024-07-23 09:38:25 +08:00
Nick Fisher
3597077d39 chore(release): publish packages
- thermion_dart@0.1.2
 - thermion_flutter_ffi@0.1.0+10
 - thermion_flutter_web@0.0.2
 - thermion_flutter@0.1.1+11
 - thermion_flutter_platform_interface@0.1.0+10
2024-07-23 09:38:25 +08:00
Nick Fisher
7704a06601 fix: manually remove leading slash for compiler path on Windows when building for Android 2024-07-23 09:38:25 +08:00
Paul Ampadu
7b3ad027bf Update quickstart.mdx 2024-07-23 09:38:25 +08:00
Nick Fisher
cde3af08aa fix: web/JS bool checks need to compare to int 2024-07-23 09:38:25 +08:00
Nick Fisher
7418fb867d feat: allow passing assetPathPrefix to ThermionViewerWasm to account for Flutter build asset paths 2024-07-23 09:38:25 +08:00
Nick Fisher
ce71e09f65 fix: shadow JS<->WASM bridge methods 2024-07-23 09:38:25 +08:00
Nick Fisher
5dec13f00b chore(release): publish packages
- thermion_dart@0.1.1+5
 - thermion_flutter_web@0.0.1+9
 - thermion_flutter@0.1.1+10
 - thermion_flutter_platform_interface@0.1.0+9
 - thermion_flutter_ffi@0.1.0+9
2024-07-04 14:44:04 +08:00
Nick Fisher
7464c05483 Merge pull request #55 from nmfisher/develop
feat: shadows, web, docs, image material
2024-07-04 16:42:25 +10:00
Nick Fisher
7b97b2e6c3 save fetched resources to IndexedDB on web 2024-07-04 14:19:37 +08:00
Nick Fisher
168f46cf56 add shadow methods to wasm/js viewers 2024-07-04 14:19:04 +08:00
Nick Fisher
5622b0ce9f chore(release): publish packages
- thermion_dart@0.1.1+4
 - thermion_flutter_web@0.0.1+8
 - thermion_flutter@0.1.1+9
 - thermion_flutter_platform_interface@0.1.0+8
 - thermion_flutter_ffi@0.1.0+8
2024-07-02 16:18:17 +08:00
Nick Fisher
c7a0b2f5cc fix: defer creating image entity/material/etc until actually requested
feat: expose shadow options
2024-07-02 16:17:36 +08:00
Nick Fisher
7546b2a6c5 Merge pull request #51 from payl-ampa/patch-1
Update quickstart.mdx - Simple link fix
2024-06-30 16:15:39 +10:00
Paul Ampadu
e363c82f2d Update quickstart.mdx
Simple link fix
2024-06-29 00:13:59 -07:00
Nick Fisher
b9643dbd94 Merge pull request #49 from nmfisher/develop
docs: Update docs
2024-06-28 00:03:18 +10:00
Nick Fisher
2664e08eb3 update README 2024-06-27 21:57:23 +08:00
Nick Fisher
733ba7d439 docs: add discord link 2024-06-27 21:52:34 +08:00
Nick Fisher
2255be3a86 Merge pull request #48 from nmfisher/develop
docs: update docs
2024-06-27 23:47:10 +10:00
Nick Fisher
03f8e2e353 docs: update docs 2024-06-27 21:46:06 +08:00
Nick Fisher
be1bf3f3ca Merge pull request #47 from nmfisher/develop
docs: update docs with sidebar links
2024-06-27 23:36:22 +10:00
Nick Fisher
5f1334660e docs: update docs with sidebar links 2024-06-27 21:35:44 +08:00
Nick Fisher
ec381f43ef Merge pull request #46 from nmfisher/develop
Documentation
2024-06-27 23:16:10 +10:00
Nick Fisher
eba843535b docs: update quickstart 2024-06-27 21:15:13 +08:00
Nick Fisher
4fa286bd60 docs: update links 2024-06-27 21:14:23 +08:00
Nick Fisher
7293b0f8dd Merge pull request #45 from nmfisher/develop
Documentation
2024-06-27 23:13:20 +10:00
Nick Fisher
0279ee1985 doc: update head README 2024-06-27 21:12:16 +08:00
Nick Fisher
83053c60f9 Merge pull request #44 from nmfisher/develop
Merge develop
2024-06-27 23:10:51 +10:00
Nick Fisher
ad28e5484c chore(release): publish packages
- thermion_dart@0.1.1+3
 - thermion_flutter@0.1.1+8
 - thermion_flutter_web@0.0.1+7
 - thermion_flutter_platform_interface@0.1.0+7
 - thermion_flutter_ffi@0.1.0+7
2024-06-27 21:06:46 +08:00
Nick Fisher
b91d629b90 docs: update homepage links and minor documentation updates 2024-06-27 21:05:44 +08:00
Nick Fisher
96df3a0f35 chore: remove binary filamat files from repo 2024-06-26 15:50:22 +10:00
Nick Fisher
de8fb5e2d0 docs: remove old GETTING_STARTED and update quickstart with new repo link 2024-06-26 15:49:11 +10:00
Nick Fisher
51d79c7626 fix: bump ffigen dependency version & regenerate bindings (and revert to ffi.Int rather than ffi.Int32) 2024-06-26 12:46:56 +08:00
Nick Fisher
f7c22d2480 docs: update quickstart 2024-06-26 12:46:56 +08:00
Nick Fisher
b117a4a19c chore: move examples to separate repository 2024-06-26 12:46:56 +08:00
Nick Fisher
4955837518 chore(release): publish packages
- thermion_dart@0.1.1+2
 - thermion_flutter@0.1.1+7
 - thermion_flutter_ffi@0.1.0+6
 - thermion_flutter_platform_interface@0.1.0+6
 - thermion_flutter_web@0.0.1+6
2024-06-26 00:12:32 +08:00
Nick Fisher
0e9cf76592 chore(release): publish packages
- thermion_dart@0.1.1-dev.0+2
 - thermion_flutter@0.1.1-dev.0+7
 - thermion_flutter_platform_interface@0.1.0-dev.0+6
 - thermion_flutter_web@0.0.1-dev.0+6
 - thermion_flutter_ffi@0.1.0-dev.0+6
2024-06-26 00:10:56 +08:00
Nick Fisher
368a341b76 docs: update custom native_toolchain ref for Windows 2024-06-26 01:59:06 +10:00
Nick Fisher
5cc41a9115 docs: update 2024-06-26 01:58:35 +10:00
Nick Fisher
368ce83380 rename thermion_filament namespace to thermion_flutter for Windows 2024-06-26 01:51:31 +10:00
Nick Fisher
683b79c9a0 fix: add ResourceBuffer header directly to Windows build so I don't have to fiddle around getting the CMake path right 2024-06-26 01:50:53 +10:00
Nick Fisher
81be5e25f7 fix: revert to std::thread (pthreads not easily available on Windows) 2024-06-26 01:50:22 +10:00
Nick Fisher
e8e1684694 fix: on Windows, pass static libs via -l rather than custom linkWith property so build.dart stays compatible between published & custom versions 2024-06-26 01:49:37 +10:00
Nick Fisher
d13ecde7b6 update Windows docs 2024-06-26 01:48:08 +10:00
Nick Fisher
08c3af405e Merge pull request #43 from nmfisher/develop
Develop
2024-06-25 21:16:31 +10:00
Nick Fisher
0571f3e653 docs: add Android & Windows pages 2024-06-25 19:04:18 +08:00
Nick Fisher
f351512a78 Merge pull request #42 from Hannnes1/license
Add root LICENSE file
2024-06-25 10:48:00 +10:00
Hannes Hultergård
315b898d7c Add root LICENSE file 2024-06-24 08:28:42 +02:00
Nick Fisher
c635bd3813 chore(release): publish packages
- thermion_dart@0.1.1+1
 - thermion_flutter@0.1.1+6
 - thermion_flutter_web@0.0.1+5
 - thermion_flutter_platform_interface@0.1.0+5
 - thermion_flutter_ffi@0.1.0+5
2024-06-22 10:29:41 +08:00
Nick Fisher
b4f9a5c2af docs: update with links to playground 2024-06-22 10:29:08 +08:00
Nick Fisher
0222ba2d6c chore(release): publish packages
- thermion_dart@0.1.1
2024-06-21 17:18:43 +08:00
Nick Fisher
a066df55f9 chore(release): publish packages
- thermion_dart@0.1.0+4
 - thermion_flutter_web@0.0.1+4
 - thermion_flutter_platform_interface@0.1.0+4
 - thermion_flutter@0.1.1+5
 - thermion_flutter_ffi@0.1.0+4
2024-06-21 16:52:19 +08:00
Nick Fisher
aa85dcfa20 fix: add dummy asset to build.dart on Linux builds so we can use the package on a Linux host 2024-06-21 16:52:10 +08:00
Nick Fisher
a3370a775f chore(release): publish packages
- thermion_dart@0.1.0+3
 - thermion_flutter_web@0.0.1+3
 - thermion_flutter@0.1.1+4
 - thermion_flutter_platform_interface@0.1.0+3
 - thermion_flutter_ffi@0.1.0+3
2024-06-21 16:21:02 +08:00
Nick Fisher
b889fddcfa fix: exit build.dart early on Linux builds so we can use the package on a Linux host 2024-06-21 16:20:42 +08:00
Nick Fisher
090c36c92b chore(release): publish packages
- thermion_dart@0.1.0+2
 - thermion_flutter_ffi@0.1.0+2
 - thermion_flutter_web@0.0.1+2
 - thermion_flutter@0.1.1+3
 - thermion_flutter_platform_interface@0.1.0+2
2024-06-21 15:24:19 +08:00
Nick Fisher
9eb2285433 refactor: rearrange some stubs/imports for easier web WASM deployment 2024-06-21 15:20:08 +08:00
579 changed files with 72600 additions and 157157 deletions

395
.gitattributes vendored
View File

@@ -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

42
.github/workflows/dart.yml vendored Normal file
View File

@@ -0,0 +1,42 @@
# 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:
build:
runs-on: macos-13
steps:
- uses: actions/checkout@v4
# Note: This workflow uses the latest stable version of the Dart SDK.
# You can specify other versions if desired, see documentation here:
# https://github.com/dart-lang/setup-dart/blob/main/README.md
# - uses: dart-lang/setup-dart@v1
- 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 .
# Consider passing '--fatal-infos' for slightly stricter analysis.
- name: Analyze project source
run: dart analyze
# Your project will need to have tests in test/ and a dependency on
# package:test for this step to succeed. Note that Flutter projects will
# want to change this to 'flutter test'.
- name: Run tests
run: dart --enable-experiment=native-assets test

File diff suppressed because it is too large Load Diff

View File

@@ -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.

201
LICENSE Normal file
View File

@@ -0,0 +1,201 @@
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2024 Nick Fisher
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

View File

@@ -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 gizmo 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: ;

View File

@@ -1,13 +1,14 @@
![Thermion Logo](docs/logo.png)
<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/examples">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>
@@ -21,9 +22,62 @@
- camera/entity manipulation with mouse (desktop) and gestures (mobile)
- skinning + morph animations
### Quickstart (Flutter)
```
flutter channel master
flutter upgrade
flutter config --enable-native-assets
```
```
_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 Flutter application:
```
@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.

View File

@@ -10,7 +10,14 @@
["Quick Start", "/quickstart"]
]
],
["Misc.", [["Contributing", "/contributing"]]]
["Misc.", [
["Playground", "https://dartpad.thermion.dev"],
["Showcase", "/showcase"],
["Windows", "/windows"],
["Android", "/android"],
["Contributing", "/contributing"],
["Discord", "https://discord.gg/h2VdDK3EAQ"]
]]
]
}

View File

@@ -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`:
```

View File

@@ -1 +0,0 @@
# Another Page

View File

@@ -0,0 +1,63 @@
## Camera Manipulation (Flutter)
> You can find the entire project below in the [flutter/quickstart](https://github.com/nmfisher/thermion/examples/flutter/camera_manipulation) folder.
A `ThermionListenerWidget` is one option for manipulating the camera with an input device (e.g. mouse or touchscreen gestures).
This will generally wrap a `ThermionWidget`, meaning the entire viewport will act as a receiver for gesture events.
> You can position this independently (for example, stacked vertically beneath the viewport), but this will not translate picking queries correctly.
```
@override
Widget build(BuildContext context) {
return Stack(children: [
if (_thermionViewer != null)
Positioned.fill(
child: ThermionListenerWidget(
inputHandler:
DelegateInputHandler.fixedOrbit(_thermionViewer!)
..setActionForType(InputType.MMB_HOLD_AND_MOVE, InputAction.ROTATE)
..setActionForType(InputType.SCALE1, InputAction.ROTATE)
..setActionForType(InputType.SCALE2, InputAction.ZOOM)
..setActionForType(InputType.SCROLLWHEEL, InputAction.ZOOM),
child: ThermionWidget(
viewer: _thermionViewer!,
))),
]);
```
`ThermionListenerWidget` is a very simple widget; it simply forwards pointer, gesture and keyboard events to the provided [InputHandler], which must decide how to interpret those events.
For example, one [InputHandler] implementation might interpret mouse pointer movement as "rotate the camera", whereas a separate implementation might interpret it as "translate this specific entity".
Thermion provides two default InputHandler implementations for manipulating the camera: [DelegateInputHandler.fixedOrbit] and [DelegateInputHandler.flight].
[DelegateInputHandler.fixedOrbit] will rotate the camera in a fixed orbit around a target point (the origin, by default), and also allow zooming in/out (subject to a minimum distance, which is configurable).
By default, [DelegateInputHandler.fixedOrbit] will:
- rotate the camera when the middle mouse button is held and the pointer is moved (on desktop), and when a single swipe left/right/up/down is detected (on mobile)
- zoom the camera when the scroll wheel is scrolled up/down (on desktop), and when a pinch gesture is detected (on mobile)
You can change the action for a specific input type by calling `setActionForType`; for example, if you wanted to rotate the camera by moving the mouse pointer while holding the left mouse button, you would call:
```
setActionForType(InputType.LMB_HOLD_AND_MOVE, InputAction.ROTATE)
```
See the [InputType] and [InputAction] enums for available input types and actions.
[DelegateInputHandler.flight] will translate keyboard and mouse/touchscreen gestures to free flight camera manipulation.
By default:
- holding the middle mouse button will control the pitch/roll/yaw of the camera
- holding the left mouse button will pan the camera left/right/up/down
- the middle mouse button will zoom/dolly the camera in/out
- the WASD keys will pan the camera left/right/up/down and dolly the camera forward/backward
If these don't exactly fit your use case, you can create your own [InputHandler] implementation. If you think it would be useful to other users, please feel free to submit a PR for your implementation to be included in the base Thermion package.

View File

@@ -1,6 +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.
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/).

View File

@@ -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)

Binary file not shown.

After

Width:  |  Height:  |  Size: 489 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 936 KiB

View File

@@ -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.

View File

@@ -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(
@@ -204,6 +209,8 @@ The cube still won't be visible until we add a light to the scene and tell Therm
$ flutter run -d macos
```
> You may experience a noticeable delay the very first time you run the project. Don't panic, it's not frozen! This is due to the build system downloading the prebuilt Filament binaries from Cloudflare, which can take some time (particularly on Windows). These binaries will be cached after first download, so subsequent runs will be much faster (though every time you run flutter clean, the binaries will be re-downloaded).
![Screenshot of Thermion Quickstart project](images/thermion_sample_project.png)
Your first Thermion project is complete!
Your first Thermion project is complete!

23
docs/showcase.mdx Normal file
View File

@@ -0,0 +1,23 @@
## Showcase
## DartPad Playground
A custom DartPad that lets you experiment with Thermion from your browser (currently, only Chrome is supported).
[![Screenshot of Thermion Dartpad](images/dartpad.thermion.dev_.png)](https://dartpad.thermion.dev)
## mixreel (Flutter/Web)
Create 3D worlds and translate to AI video.
[![Screenshot of the mixreeel app](images/ixlabs.app_app.png)](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)).
[![Screenshot of Nick Fisher's personal website](images/nick-fisher.com.png)](https://nick-fisher.com)

View File

@@ -1,18 +1,6 @@
## Windows
## 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.
```
native_toolchain_c:
git:
url: git@github.com:nmfisher/native.git
path: pkgs/native_toolchain_c
ref: 99020084c4687be4c58c7115a167088c0441d1de
```
This will eventually be fixed upstream in the `native_toolchain_c` package, so this should be a short-term/temporary issue only.
If you're not a Thermion developer, you can ignore this.
## ANGLE build (not currently working)
To support embedding GPU textures in Flutter (rather than copying to a CPU pixel buffer on every frame), we need to build a slightly customized version of Filament that uses GLES on Windows (rather than the default, which uses OpenGL).

5
examples/README.md Normal file
View File

@@ -0,0 +1,5 @@
# Thermion Examples
This repository contains example Dart and Flutter projects for the Thermion rendering toolkit.

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4a1d72d69da8b933bde5453ef2000612b561f8ddfa536a7ad89288ef11eb876d
size 1624

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:fe0151ced8fd8609f9692f3d62dbd30890dada97cb6995572e37c7e7b4440d86
size 21304

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0f8b793f6513cf83f80ce9c63c7b51d329908b1991f17ca642911634b15b32de
size 34172

File diff suppressed because it is too large Load Diff

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 531 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 129 B

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 856 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 193 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 3.7 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 500 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 614 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 457 KiB

View File

@@ -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"
]
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 2.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 806 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 2.9 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 3.0 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 5.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 130 B

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 3.5 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 4.4 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 5.1 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 737 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 3.6 MiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 132 B

After

Width:  |  Height:  |  Size: 4.3 MiB

View File

@@ -1,3 +1,16 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0bc81c711f74fdfd2ef56e34d747383444a3ab6a1ee52fe62cb5838e59b0be56
size 545
# Flight Helmet
## Screenshot
![screenshot](screenshot/screenshot.jpg)
## License Information
Donated by Microsoft for glTF testing
[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](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

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 131 B

After

Width:  |  Height:  |  Size: 572 KiB

BIN
examples/assets/cube.glb Normal file

Binary file not shown.

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0245800fa846c2a3c15cb1d2aa6ded86fcf8355e568907dcd50e073c589f85d6
size 2095464

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:40379fcd881ca3729b0fa057f66b8fedbd8ab92b8e407bc3a4fd17c1a2b6e75e
size 1572932

Binary file not shown.

Binary file not shown.

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:5821c53850d84c5b2d0b39ad28e6cde94d8fc7e1bbb97d5d898c40733e2d4e99
size 107424

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:d9134594e40a4bad7601d0396bb5f2a7600656bda5d815b3cb2e855ba6c6c5e4
size 1263808

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ab0cada556723be0d138d7b1cadb5e315a273524db0468e0c4255d8d2b0c1c2d
size 1222992

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:6c58d82602dc9b4dabb63f378fecd7ecb9eaf6f5da5746552ec42dde4ec211d7
size 121104

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0c1d3eac0151a58c3f36bea0f636691559612fd2d5ce21bb3551d43e86043e26
size 36741

View File

@@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b58c687c2687f5b3b576e4f5672981fde5657519f51dd331e6e671634c77640f
size 29920

Binary file not shown.

View File

@@ -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);
}
}

View File

@@ -1,3 +0,0 @@
# https://dart.dev/guides/libraries/private-files
# Created by `dart pub`
.dart_tool/

View File

@@ -1,3 +0,0 @@
## 1.0.0
- Initial version.

View File

@@ -1,2 +0,0 @@
A sample command-line application with an entrypoint in `bin/`, library code
in `lib/`, and example unit test in `test/`.

View File

@@ -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

View File

@@ -1 +0,0 @@
../../../assets

View File

@@ -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();
}

View File

@@ -1 +0,0 @@
../../../../thermion_dart/native/lib/macos/swift/libthermion_swift.dylib

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -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

View File

@@ -1,8 +0,0 @@
import 'package:example_cli/example_cli.dart';
import 'package:test/test.dart';
void main() {
test('calculate', () {
expect(calculate(), 42);
});
}

View File

@@ -1,3 +0,0 @@
# https://dart.dev/guides/libraries/private-files
# Created by `dart pub`
.dart_tool/

View File

@@ -1,3 +0,0 @@
## 1.0.0
- Initial version.

View File

@@ -1,2 +0,0 @@
A sample command-line application with an entrypoint in `bin/`, library code
in `lib/`, and example unit test in `test/`.

View File

@@ -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

View File

@@ -1,4 +0,0 @@
example_cli.mjs
example_cli.wasm
example_cli.unopt.wasm
node_modules/**/*

View File

@@ -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]

View File

@@ -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));
}
}

View File

@@ -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);}); });

File diff suppressed because it is too large Load Diff

View File

@@ -1,5 +0,0 @@
{
"dependencies": {
"gl": "^8.0.2"
}
}

View File

@@ -1 +0,0 @@
../../../native/web/build/build/out/dart_filament.js

View File

@@ -1 +0,0 @@
../../../native/web/build/build/out/dart_filament.wasm

View File

@@ -1 +0,0 @@
../../../native/web/build/build/out/dart_filament.worker.js

View File

@@ -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

View File

@@ -1,8 +0,0 @@
import 'package:example_cli/example_cli.dart';
import 'package:test/test.dart';
void main() {
test('calculate', () {
expect(calculate(), 42);
});
}

View File

@@ -1,3 +0,0 @@
# https://dart.dev/guides/libraries/private-files
# Created by `dart pub`
.dart_tool/

View File

@@ -1,3 +0,0 @@
## 1.0.0
- Initial version.

View File

@@ -1,2 +0,0 @@
A sample command-line application with an entrypoint in `bin/`, library code
in `lib/`, and example unit test in `test/`.

View File

@@ -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

View File

@@ -1,16 +0,0 @@
# Flight Helmet
## Screenshot
![screenshot](screenshot/screenshot.jpg)
## License Information
Donated by Microsoft for glTF testing
[![CC0](http://i.creativecommons.org/p/zero/1.0/88x31.png)](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

View File

@@ -1 +0,0 @@
../../../../flutter_filament_federated/flutter_filament/example/assets

Some files were not shown because too many files have changed in this diff Show More