track geometry assets internally to ensure they are destroyed when destroyAssets is called

This commit is contained in:
Nick Fisher
2025-06-02 10:09:58 +08:00
parent 4fb85eb45a
commit 70e2933c4b

View File

@@ -647,17 +647,24 @@ class ThermionViewerFFI extends ThermionViewer {
/// ///
/// ///
@override @override
Future<ThermionAsset> createGeometry(Geometry geometry, Future<ThermionAsset> createGeometry(
{List<MaterialInstance>? materialInstances, Geometry geometry, {
List<MaterialInstance>? materialInstances,
bool keepData = false, bool keepData = false,
bool addToScene = true}) async { bool addToScene = true,
final asset = await FilamentApp.instance!.createGeometry( }) async {
geometry, animationManager, materialInstances: materialInstances) final asset =
await FilamentApp.instance!.createGeometry(
geometry,
animationManager,
materialInstances: materialInstances,
)
as FFIAsset; as FFIAsset;
_assets.add(asset);
if (addToScene) { if (addToScene) {
await scene.add(asset); await scene.add(asset);
} }
return asset; return asset;
} }