Commit Graph
100 Commits
Author SHA1 Message Date
Nick Fisher 32fe54ac09 (web) on Emscripten builds, use static global wrapper function for texture upload complete callbacks (this is needed because all callbacks need to be proxied to the main thread 2025-06-11 11:08:13 +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 f78c6f258f add test for getBoundingBox 2025-06-11 09:51:24 +08:00
Nick Fisher b0796f493f (test) move IBL tests to light_tests 2025-06-11 09:51:14 +08:00
Nick Fisher 8998f1f740 add RenderableManager_getBoundingBox 2025-06-11 09:50:48 +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 8f1da5e7bd separate skybox/ibl creation from KTX decoding 2025-06-11 09:48:17 +08:00
Nick Fisher 641d92515e move VoidCallback typedef to APIBoundaryTypes (now used outside the render thread header for texture upload callbacks) 2025-06-11 09:45:23 +08:00
Nick Fisher d447fb8e2a add RenderableManager_getBoundingBox 2025-06-11 09:44:46 +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 37c67c2da8 (macos) create render target texture with isStencil:false 2025-06-10 10:24:01 +08:00
Nick Fisher 66d3bf65fd add view test for multiple views rendering into the same render target 2025-06-10 09:08:30 +08:00
Nick Fisher dba40fb82b update instancing tests 2025-06-09 18:28:58 +08:00
Nick Fisher 95db6d7ebb update generated bindings 2025-06-09 18:28:43 +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 928517f80f update gitignore with generated Swift dylib 2025-06-09 18:25:53 +08:00
Nick Fisher 4a9b91c411 (test) update helper to add createStencilBuffer flag 2025-06-09 18:25:39 +08:00
Nick Fisher 9054879722 update Swift bindings and remove dylib from repository (should be recompiled when running via CI/CD?) 2025-06-09 18:25:18 +08:00
Nick Fisher 4c95bc5b70 (macos) add isStencil argument for creating depth texture on macOS (if true, creates texture with .depth24Unorm_stencil8 2025-06-09 18:24:15 +08:00
Nick Fisher 8866ffe210 (test) update helper to add createStencilBuffer flag 2025-06-09 18:23:22 +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 78e14574ef split stencil/depth tests from unlit material tests 2025-06-09 18:15:17 +08:00
Nick Fisher 073976b40e logging 2025-06-09 18:13:54 +08:00
Nick Fisher 6d0844f873 logging 2025-06-09 18:13:44 +08:00
Nick Fisher 983d1373ba logging 2025-06-09 18:13:35 +08:00
Nick Fisher 0dd64a07bb add helper method to convert between TStencilFace and MaterialInstance::StencilFace (not strictly necessary, but will help if something upstream changes in future 2025-06-09 18:12:17 +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 ff559997dd (web) regenerate JS bindings 2025-06-05 21:52:47 +08:00
Nick Fisher 79fea25d1b manually edit JS bindings to remove internal (Dart) struct members and fix TFogOptions 2025-06-05 16:42:28 +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 acf03ea0c7 pass TFogOptions by value, not pointer, and rearrange struct fields to minimize alignment issues 2025-06-05 16:40:53 +08:00
Nick Fisher a9553da1d4 (build) remove libpng 2025-06-05 10:12:41 +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 cc99905eb8 pass through keepData flag when creating geometry via viewer 2025-06-04 11:11:42 +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 150c0227c8 (test) remove group from asset_tests 2025-06-04 11:08:13 +08:00
Nick Fisher e594a42496 add test for create/destroy geometry instances 2025-06-04 11:07:58 +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 655ba89b0f logging 2025-06-04 11:05:19 +08:00
Nick Fisher 840f3599e7 logging 2025-06-04 11:04:52 +08:00
Nick Fisher d0da7f49f3 when destroying a SceneAsset, if the object is an instance, call destroyInstance on the owner of instance rather than deleting the object directly 2025-06-04 10:48:07 +08:00
Nick Fisher 886a4a37aa (test) log to stdout by default when using TestHelper 2025-06-04 10:46:55 +08:00
Nick Fisher 6db82d00c2 don't call removeAnimationComponent in viewer (moved to FilamentApp.destroyAsset) 2025-06-03 16:40:50 +08:00
Nick Fisher 0fb4fd0004 (web) use mimalloc as default allocator on emscripten builds and set SAFE_HEAP to 1 by default for debug builds 2025-06-03 16:40:12 +08:00
Nick Fisher e147e59d8d don't call endFrame() unless beginFrame() was called
only use condition_variable on non-emscripten builds
2025-06-03 16:39:04 +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 b1617004d7 add missing EMSCRIPTEN_KEEPALIVE from Texture_generateMipMapsRenderThread 2025-06-02 14:58:11 +08:00
Nick Fisher 32b6b1c227 (flutter) add zero size check in TextureWidget 2025-06-02 12:58:53 +08:00
Nick Fisher 1c500fe925 require dispose() on InputHandlerDelegate and update sample implementations 2025-06-02 12:58:26 +08:00
Nick Fisher 3fd15ab91b (flutter) add zero size check for texture descriptors 2025-06-02 12:58:11 +08:00
Nick Fisher 2191f9d44b require dispose() on InputHandlerDelegate and update sample implementations 2025-06-02 12:57:45 +08:00
Nick Fisher 87b63301f2 require dispose() on InputHandlerDelegate and update sample implementations 2025-06-02 12:57:22 +08:00
Nick Fisher 0d5b42c908 add Char to js_interop malloc 2025-06-02 12:15:35 +08:00
Nick Fisher 12e2dca873 change wireframe camera geometry 2025-06-02 12:14:55 +08:00
Nick Fisher 8eae6bf90c add flags to pixelBufferToPng for alpha/float 2025-06-02 12:14:40 +08:00
Nick Fisher 873244879f when batch is true in DelegateInputHandler, filter simultaneous keydown/keyup 2025-06-02 12:14:05 +08:00
Nick Fisher 2ab1732b6b add synthesized property to KeyEvent and add additional keys 2025-06-02 12:12:51 +08:00
Nick Fisher 5eb83a80b3 formatting 2025-06-02 12:08:26 +08:00
Nick Fisher 7141a01101 use render thread method for resetting to rest pose 2025-06-02 11:52:41 +08:00
Nick Fisher 24aaffda9c lock mutex when setting animations manually via AnimationManager 2025-06-02 11:52:08 +08:00
Nick Fisher 82aba605f9 add Texture_generateMipMapsRenderThread, AnimationManager_resetToRestPoseRenderThread 2025-06-02 11:51:43 +08:00
Nick Fisher 7b80723560 add Texture_generateMipMapsRenderThread, AnimationManager_resetToRestPoseRenderThread 2025-06-02 11:51:19 +08:00
Nick Fisher 39a302c23e remove comments 2025-06-02 11:50:26 +08:00
Nick Fisher 059926fe98 add generateMipmapsRenderThread 2025-06-02 10:44:45 +08:00
Nick Fisher 3c9b607109 add geometry tests for destroyAssets 2025-06-02 10:13:08 +08:00
Nick Fisher 70e2933c4b track geometry assets internally to ensure they are destroyed when destroyAssets is called 2025-06-02 10:09:58 +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 7f0ec01937 change RenderThread warning from Log to TRACE 2025-05-30 14:35:48 +08:00
Nick Fisher ccdf2ecda6 (flutter) better synchronization in ThermionTextureWidget with presentation deadline 2025-05-30 14:35:24 +08:00
Nick Fisher 5f9a7bb959 remove errant comment 2025-05-29 22:30:00 +08:00
Nick Fisher 764fea836b move tests to unlit_material_tests.dart 2025-05-29 22:29:04 +08:00
Nick Fisher 27d6bd0f4a update projection tests to use aspect-ratio other than 1 2025-05-29 22:28:50 +08:00
Nick Fisher 7e810b8265 remove old tests 2025-05-29 22:27:39 +08:00
Nick Fisher 6ad3bfab13 remove old material_tests.dart 2025-05-29 22:27:31 +08:00
Nick Fisher 5ed00164a9 (web) expose HEAPF32 2025-05-29 22:26:59 +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 c789e75af5 (web) fix casing for generateMipMaps 2025-05-29 19:27:22 +08:00
Nick Fisher 6ad76b6217 add stb_image.h 2025-05-29 19:02:35 +08:00
Nick Fisher 2e097f7ec6 (CI) run macos/web samples separately 2025-05-29 18:57:53 +08:00
Nick Fisher beeb45609c don't take reference to Builder 2025-05-29 18:57:01 +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 11f7ac459b separate material_tests into ubershader & unlit 2025-05-29 18:02:21 +08:00
Nick Fisher afd47f9b24 merge test/example assets 2025-05-29 17:58:13 +08:00
Nick Fisher aab2b0b769 (web) update emcc flags 2025-05-28 21:54:31 +08:00
Nick Fisher ffc7717149 (web) add explicit check for failure to create context 2025-05-28 21:54:03 +08:00
Nick Fisher ff5921a505 remove unused StreamBufferAdapter 2025-05-28 21:52:53 +08:00
Nick Fisher 45c7831a17 replace libpng with stb_image for Image_decode 2025-05-28 21:51:56 +08:00