Commit Graph

103 Commits

Author SHA1 Message Date
Nick Fisher
ccc0a53abc rename numInstances to initialInstances in loadGltf methods.
when initialInstances > 0, don't wait for createInstance to be called to create corresponding GltfSceneAsset
2025-06-26 10:11:29 +08:00
Nick Fisher
ed21eec66e pass through instance owner to FFIAsset so instances can be created on instances 2025-06-24 21:31:10 +08:00
Nick Fisher
d20ff0a6f1 don't require SwapChain to be passed to viewer.render - this will just render into all registered swapchains 2025-06-24 10:36:10 +08:00
Nick Fisher
c7d4d9cb33 add NativeHandle interface and refactor SwapChain to use getNativeHandle 2025-06-24 10:35:33 +08:00
Nick Fisher
9aec83fd70 throw Exception if createInstance is called on an instance and pass through isInstance/keepData flags 2025-06-24 10:22:40 +08:00
Nick Fisher
18b6b2e5f0 (web) in capture, add extra call to render a frame to flush frame callbacks 2025-06-23 12:27:05 +08:00
Nick Fisher
7e802f7b23 formatting 2025-06-23 12:25:30 +08:00
Nick Fisher
ce23b9f3cd (doc) add documentation for destroyAsset instances 2025-06-23 12:25:18 +08:00
Nick Fisher
00debf509d remove getBoundingBoxAsset and destroyBoundingBoxAsset from ThermionAsset 2025-06-23 12:17:38 +08:00
Nick Fisher
73b32f9c1e start migrating from covariant (for FFIAsset) to getNativeHandle() 2025-06-23 11:58:51 +08:00
Nick Fisher
abd1a1fd55 move bounding box asset methods from ThermionAsset to ThermionViewer 2025-06-23 11:57:15 +08:00
Nick Fisher
355999562f move Axis class to own file 2025-06-20 18:35:21 +08:00
Nick Fisher
c208972ed7 docstrings 2025-06-20 18:34:08 +08:00
Nick Fisher
3783081456 in viewer, ensure onTextureUploadComplete callbacks are passed through to KTX1Bundle.createTexture 2025-06-19 11:52:44 +08:00
Nick Fisher
9322122dac pass through keepData argument when loadGltfFromBuffer is called 2025-06-19 11:01:09 +08:00
Nick Fisher
a823718bcd fix incorrect indexing for material instances when creating an instance 2025-06-19 10:57:54 +08:00
Nick Fisher
42f9538040 implement TSkybox and use setColor method to set the background color, rather than the image 2025-06-18 13:01:25 +08:00
Nick Fisher
a29b194612 ensure highlight entities don't cast/receive shadows 2025-06-17 17:29:40 +08:00
Nick Fisher
65ca59ff22 merge native setImage with setImageWithDepth 2025-06-17 13:25:53 +08:00
Nick Fisher
b9354531b2 add cubemap methods to BackgroundImage 2025-06-17 11:26:27 +08:00
Nick Fisher
85b86c5f13 formatting 2025-06-12 11:37:45 +08:00
Nick Fisher
d8652e8709 formatting 2025-06-12 11:37:29 +08:00
Nick Fisher
fe5279f942 don't free Int32List for childEntities, stackRestore takes care of this 2025-06-12 11:37:18 +08:00
Nick Fisher
ad26fc4563 add Dart IndirectLight and Ktx1Bundle classes, and separate KTX decoding from skybox/IBL creation 2025-06-12 11:31:44 +08:00
Nick Fisher
0461bb364a use getPrimitiveCount method on FilamentApp, rather than direct FFI method 2025-06-11 09:52:57 +08:00
Nick Fisher
6362efcd61 add implementations for getPrimitiveCount/getBoundingBox on FFIFilamentApp 2025-06-11 09:50:35 +08:00
Nick Fisher
dc5c1161cc add setMaterialInstanceAt to FilamentApp interface 2025-06-11 09:50:02 +08:00
Nick Fisher
3e6f95e0bf add removeEntity method on Scene 2025-06-11 09:49:05 +08:00
Nick Fisher
f053c2f852 add removeEntity method on Scene 2025-06-11 09:48:44 +08:00
Nick Fisher
ac87420a87 add setPriority to FilamentApp interface 2025-06-10 11:49:17 +08:00
Nick Fisher
5669ac5c55 Dart wrappers for View/Scene are now stateful 2025-06-10 11:48:31 +08:00
Nick Fisher
ae9ce197c1 move setStencilHighlight/removeStencilHighlight to Scene 2025-06-10 10:27:03 +08:00
Nick Fisher
fef48940fc add implementation methods for getPrimitiveCount, setMaterialInstancesFromMap, getMaterialInstancesAsMap and setMaterialInstanceForAll 2025-06-09 18:28:33 +08:00
Nick Fisher
4086c9bd01 add interface methods for getPrimitiveCount, setMaterialInstancesFromMap, getMaterialInstancesAsMap and setMaterialInstanceForAll 2025-06-09 18:26:36 +08:00
Nick Fisher
c33eaef713 replace direct FFI View_ calls with calls to corresponding (Dart) methods on View 2025-06-09 18:18:58 +08:00
Nick Fisher
6055bd3fa7 fix FFIMaterial so it correctly translates between StencilFace (Dart) and TStencilFace (Dart FFI) enums 2025-06-09 18:10:07 +08:00
Nick Fisher
f3a576005a expose setShadowsEnabled method on View/FFIView 2025-06-09 18:09:27 +08:00
Nick Fisher
9ae7c784df pass TFogOptions by value, not pointer, and rearrange struct fields to minimize alignment issues 2025-06-05 16:41:08 +08:00
Nick Fisher
fc4686b20f add documentation for Scene 2025-06-04 17:44:24 +08:00
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