pass shared NameComponentManager to gltfio AssetLoader

This commit is contained in:
Nick Fisher
2025-05-31 11:21:57 +08:00
parent 7f0ec01937
commit 2f7f363db9
9 changed files with 52 additions and 19 deletions

View File

@@ -82,12 +82,9 @@ class FFIAsset extends ThermionAsset {
final childEntities = await getChildEntities();
var names = <String?>[];
for (final entity in childEntities) {
var name = NameComponentManager_getName(app.nameComponentManager, entity);
if (name == nullptr) {
names.add(null);
} else {
names.add(name.cast<Utf8>().toDartString());
}
var name = await FilamentApp.instance!.getNameForEntity(entity);
names.add(name);
}
return names;
}

View File

@@ -85,9 +85,9 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
config.stereoscopicEyeCount,
config.disableHandleUseAfterFreeCheck,
cb));
final nameComponentManager = NameComponentManager_create();
final gltfAssetLoader = await withPointerCallback<TGltfAssetLoader>(
(cb) => GltfAssetLoader_createRenderThread(engine, nullptr, cb));
(cb) => GltfAssetLoader_createRenderThread(engine, nullptr, nameComponentManager, cb));
final renderer = await withPointerCallback<TRenderer>(
(cb) => Engine_createRendererRenderThread(engine, cb));
final ubershaderMaterialProvider =
@@ -101,7 +101,7 @@ class FFIFilamentApp extends FilamentApp<Pointer> {
RenderThread_setRenderTicker(renderTicker);
final nameComponentManager = NameComponentManager_create();
FilamentApp.instance = FFIFilamentApp(
engine,