Commit Graph

64 Commits

Author SHA1 Message Date
Nick Fisher
ab4743da90 pass keepData flag to instances of FFIAsset when creating geometry 2025-06-04 11:14:02 +08:00
Nick Fisher
7406662853 add nullptr check when loading gltf assets 2025-06-04 11:13:39 +08:00
Nick Fisher
aa2f19442b surround frame request hooks with try/catch, and add a check to avoid concurrency exceptions when adding/removing hooks 2025-06-04 11:13:15 +08:00
Nick Fisher
1d697037c0 gltf animation names are immutable, so cache these in a local copy in FFIAsset 2025-06-04 11:10:45 +08:00
Nick Fisher
c024efb8cd store reference to keepData in each FFIAsset and throw exception if an instance is attempted to be created when keepData is false 2025-06-04 11:09:28 +08:00
Nick Fisher
c484eeb37f when destroying an asset, remove/destroy instances before destroying the parent asset 2025-06-04 11:07:21 +08:00
Nick Fisher
28aef7e5cc when destroying assets, remove animation component in FilamentApp, not viewer 2025-06-02 14:58:52 +08:00
Nick Fisher
7141a01101 use render thread method for resetting to rest pose 2025-06-02 11:52:41 +08:00
Nick Fisher
059926fe98 add generateMipmapsRenderThread 2025-06-02 10:44:45 +08:00
Nick Fisher
4fb85eb45a don't throw exception on failure to remove animation component 2025-05-31 21:58:32 +08:00
Nick Fisher
afecacfcf0 getChildEntity in FFIAsset should invoke FilamentApp method, not direct binding method 2025-05-31 11:25:24 +08:00
Nick Fisher
2f7f363db9 pass shared NameComponentManager to gltfio AssetLoader 2025-05-31 11:21:57 +08:00
Nick Fisher
5f9a7bb959 remove errant comment 2025-05-29 22:30:00 +08:00
Nick Fisher
86894cf583 add alpha/requireAlpha argument when decoding images
remove size checks from setImage (we are assuming the caller knows the correct size)
This also adds some monkey-patch methods to js_interop to convert Float32List to a UInt8List (but use this with care, because it will only work for emscripten-allocated objects)
2025-05-29 22:26:42 +08:00
Nick Fisher
94eacec27e Texture improvements: generateMipmaps(), add levels to createTexture, tests to check auto mip level selection 2025-05-29 18:38:57 +08:00
Nick Fisher
d298b0d091 add decodeToTexture static helper method to Texture 2025-05-28 10:47:21 +08:00
Nick Fisher
4a7a366fc6 add setTransform/getWorldTransform to FilamentApp 2025-05-28 10:47:00 +08:00
Nick Fisher
1e812ebe93 allow directly creating an entity and setting transform 2025-05-24 16:33:58 +08:00
Nick Fisher
81fb0fb583 add setFogOptions 2025-05-24 15:05:03 +08:00
Nick Fisher
4505cbe325 add missing setExposure methods + reinstate camera tests 2025-05-24 10:51:56 +08:00
Nick Fisher
195a625738 when getMaterialInstance/setMaterialInstance are called, if entity is not renderable, return false
if no entity is passed, iterate through all entities and use the first renderable entity
2025-05-23 16:27:38 +08:00
Nick Fisher
a31f11151e check for beginFrame returning false in project() and correctly calculate numChannels/channelSize 2025-05-22 15:19:03 +08:00
Nick Fisher
10136c8cde use flush() instead of directly calling executeRenderThread (wasm) or flushAndWait (native) 2025-05-22 15:18:19 +08:00
Nick Fisher
c712804bb1 add createLight method to FilamentApp 2025-05-22 15:09:36 +08:00
Nick Fisher
1b3d46533c remove unnecessary import 2025-05-22 15:08:02 +08:00
Nick Fisher
5733bc125b add addEntity method to Scene 2025-05-22 15:07:43 +08:00
Nick Fisher
943de8f77b add createCamera method to FilamentApp 2025-05-22 15:07:23 +08:00
Nick Fisher
1fb68b20e9 separate Gltf/Morph/BoneAnimationComponentManager definitions
move gltf animation instantiation to GltfAnimationComponentManager (this helps ensure we are creating the component on the correct entity)
2025-05-20 14:57:26 +08:00
Nick Fisher
11ff6c9053 remove TMaterialKey struct and pass directly as function params 2025-05-18 15:11:50 +08:00
Nick Fisher
760ae8ed8b add makeInt32List method (to create an Int32List actually backed by heap-allocated memory 2025-05-18 15:09:05 +08:00
Nick Fisher
25ada92574 add View_pickRenderThread method (only used in WASM builds so we can proxy the callback to the main thread 2025-05-18 15:09:05 +08:00
Nick Fisher
dc5cdcb7e1 update all void callbacks to accept an integer requestId 2025-05-18 15:08:47 +08:00
Nick Fisher
826a22f348 wip 2025-05-18 15:08:45 +08:00
Nick Fisher
ee306549d8 rename relativeResourcePath to resourceUri
move resource loader from viewer to FilamentApp
2025-05-17 21:51:51 +08:00
Nick Fisher
d3ec825688 rename relativeResourcePath to resourceUri
move resource loader from viewer to FilamentApp
2025-05-17 21:50:58 +08:00
Nick Fisher
fe11479b08 remove relativeResourcePath from gltf resource loading;
all external resources should be added on the Dart side, Filament should never attempt to load these directly from the filesystem.
relativeResourcePath (called gltfPath on the Filament side) is only used for desktop loading, so this is now irrelevant.
Note that Filament must be compiled with GLTFIO_USE_FILESYSTEM=0
2025-05-17 21:48:18 +08:00
Nick Fisher
c98e604e76 split animation components into GltfAnimation/MorphAnimation/BoneAnimation 2025-05-17 10:11:55 +08:00
Nick Fisher
671949a5cd transformToUnitCube returns bool (false when transform instance can't be found) 2025-05-10 09:03:46 +08:00
Nick Fisher
cedcb45484 feat!: change default near/far to 0.1/100.0 2025-05-08 17:27:49 +08:00
Nick Fisher
2f16908992 feat! js_interop improvements 2025-05-07 17:06:38 +08:00
Nick Fisher
63e2dcd0ca add getter for Aabb3 directly (getBoundingBox) on ThermionAsset 2025-05-07 16:53:16 +08:00
Nick Fisher
c66dc40bab separate getter/create method for boundingBoxAsset 2025-04-19 09:47:18 +08:00
Nick Fisher
2b6693a826 change default PixelDataType to FLOAT for capture() 2025-04-17 13:32:35 +08:00
Nick Fisher
6b008bd433 change setBoundingBoxVisibility to getBoundingBoxAsset 2025-04-17 13:31:47 +08:00
Nick Fisher
c3e583ac5a make swapChain an optional parameter when calling capture() (if not specified, first swapchain will be used) 2025-04-16 17:23:55 +08:00
Nick Fisher
48654f0e8f documentation 2025-04-16 17:23:55 +08:00
Nick Fisher
a772b86f09 export light options and layers 2025-04-16 17:23:53 +08:00
Nick Fisher
5097373a22 export layers in package 2025-04-16 13:59:06 +08:00
Nick Fisher
585e0ad087 move pick() to View 2025-04-16 13:30:31 +08:00
Nick Fisher
9d593b8c3b add getHorizontalFieldOfView/getVerticalFieldOfView methods to (Dart) Camera class 2025-04-16 13:29:24 +08:00