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