From 70e2933c4bce1caad443c97c760eaaa905c78dea Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Mon, 2 Jun 2025 10:09:58 +0800 Subject: [PATCH] track geometry assets internally to ensure they are destroyed when destroyAssets is called --- .../src/ffi/src/thermion_viewer_ffi.dart | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/thermion_dart/lib/src/viewer/src/ffi/src/thermion_viewer_ffi.dart b/thermion_dart/lib/src/viewer/src/ffi/src/thermion_viewer_ffi.dart index 6f08e4ea..0cfae7da 100644 --- a/thermion_dart/lib/src/viewer/src/ffi/src/thermion_viewer_ffi.dart +++ b/thermion_dart/lib/src/viewer/src/ffi/src/thermion_viewer_ffi.dart @@ -647,17 +647,24 @@ class ThermionViewerFFI extends ThermionViewer { /// /// @override - Future createGeometry(Geometry geometry, - {List? materialInstances, - bool keepData = false, - bool addToScene = true}) async { - final asset = await FilamentApp.instance!.createGeometry( - geometry, animationManager, materialInstances: materialInstances) - as FFIAsset; - + Future createGeometry( + Geometry geometry, { + List? materialInstances, + bool keepData = false, + bool addToScene = true, + }) async { + final asset = + await FilamentApp.instance!.createGeometry( + geometry, + animationManager, + materialInstances: materialInstances, + ) + as FFIAsset; + _assets.add(asset); if (addToScene) { await scene.add(asset); } + return asset; }