diff --git a/thermion_dart/lib/src/filament/src/implementation/ffi_filament_app.dart b/thermion_dart/lib/src/filament/src/implementation/ffi_filament_app.dart index 797b809e..2379b81e 100644 --- a/thermion_dart/lib/src/filament/src/implementation/ffi_filament_app.dart +++ b/thermion_dart/lib/src/filament/src/implementation/ffi_filament_app.dart @@ -923,8 +923,7 @@ class FFIFilamentApp extends FilamentApp { } var gltfResourceLoader = await withPointerCallback( - (cb) => - GltfResourceLoader_createRenderThread(engine, nullptr.cast(), cb)); + (cb) => GltfResourceLoader_createRenderThread(engine, cb)); final gizmo = await withPointerCallback((cb) { Gizmo_createRenderThread( diff --git a/thermion_dart/native/include/c_api/TGltfResourceLoader.h b/thermion_dart/native/include/c_api/TGltfResourceLoader.h index 12067c72..e2a5a2dd 100644 --- a/thermion_dart/native/include/c_api/TGltfResourceLoader.h +++ b/thermion_dart/native/include/c_api/TGltfResourceLoader.h @@ -8,7 +8,7 @@ extern "C" { #endif -EMSCRIPTEN_KEEPALIVE TGltfResourceLoader *GltfResourceLoader_create(TEngine *tEngine, const char *relativeResourcePath); +EMSCRIPTEN_KEEPALIVE TGltfResourceLoader *GltfResourceLoader_create(TEngine *tEngine); EMSCRIPTEN_KEEPALIVE void GltfResourceLoader_destroy(TEngine *tEngine, TGltfResourceLoader *tGltfResourceLoader); EMSCRIPTEN_KEEPALIVE bool GltfResourceLoader_asyncBeginLoad(TGltfResourceLoader *tGltfResourceLoader, TFilamentAsset *tFilamentAsset); EMSCRIPTEN_KEEPALIVE void GltfResourceLoader_asyncUpdateLoad(TGltfResourceLoader *tGltfResourceLoader); diff --git a/thermion_dart/native/include/c_api/ThermionDartRenderThreadApi.h b/thermion_dart/native/include/c_api/ThermionDartRenderThreadApi.h index f67097e7..67227b3d 100644 --- a/thermion_dart/native/include/c_api/ThermionDartRenderThreadApi.h +++ b/thermion_dart/native/include/c_api/ThermionDartRenderThreadApi.h @@ -260,7 +260,7 @@ namespace thermion void AnimationManager_resetToRestPoseRenderThread(TAnimationManager *tAnimationManager, EntityId entityId, VoidCallback onComplete); void GltfAssetLoader_createRenderThread(TEngine *tEngine, TMaterialProvider *tMaterialProvider, void (*callback)(TGltfAssetLoader *)); - void GltfResourceLoader_createRenderThread(TEngine *tEngine, const char* relativeResourcePath, void (*callback)(TGltfResourceLoader *)); + void GltfResourceLoader_createRenderThread(TEngine *tEngine, void (*callback)(TGltfResourceLoader *)); void GltfResourceLoader_destroyRenderThread(TEngine *tEngine, TGltfResourceLoader *tResourceLoader, VoidCallback onComplete); void GltfResourceLoader_loadResourcesRenderThread(TGltfResourceLoader *tGltfResourceLoader, TFilamentAsset *tFilamentAsset, void (*callback)(bool)); void GltfResourceLoader_addResourceDataRenderThread(TGltfResourceLoader *tGltfResourceLoader, const char *uri, uint8_t *data, size_t length, VoidCallback onComplete); diff --git a/thermion_dart/native/src/c_api/TGltfResourceLoader.cpp b/thermion_dart/native/src/c_api/TGltfResourceLoader.cpp index b5c700f1..5811da8a 100644 --- a/thermion_dart/native/src/c_api/TGltfResourceLoader.cpp +++ b/thermion_dart/native/src/c_api/TGltfResourceLoader.cpp @@ -37,11 +37,10 @@ namespace thermion #endif -EMSCRIPTEN_KEEPALIVE TGltfResourceLoader *GltfResourceLoader_create(TEngine *tEngine, const char *relativeResourcePath) { +EMSCRIPTEN_KEEPALIVE TGltfResourceLoader *GltfResourceLoader_create(TEngine *tEngine) { auto *engine = reinterpret_cast(tEngine); auto *gltfResourceLoader = new gltfio::ResourceLoader({ .engine = engine, - .gltfPath = relativeResourcePath }); auto stbDecoder = gltfio::createStbProvider(engine); auto ktxDecoder = gltfio::createKtx2Provider(engine); @@ -60,7 +59,9 @@ EMSCRIPTEN_KEEPALIVE void GltfResourceLoader_destroy(TEngine *tEngine, TGltfReso EMSCRIPTEN_KEEPALIVE void GltfResourceLoader_addResourceData(TGltfResourceLoader *tGltfResourceLoader, const char *uri, uint8_t *data, size_t length) { TRACE("Adding data (length %d) for glTF resource URI %s", length, uri); auto *gltfResourceLoader = reinterpret_cast(tGltfResourceLoader); - gltfResourceLoader->addResourceData(uri, { data, length}); + gltfResourceLoader->addResourceData(uri, { + data, + length}); } EMSCRIPTEN_KEEPALIVE bool GltfResourceLoader_loadResources(TGltfResourceLoader *tGltfResourceLoader, TFilamentAsset *tFilamentAsset) { diff --git a/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp b/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp index ad261caa..21352abf 100644 --- a/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp +++ b/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp @@ -1018,11 +1018,11 @@ EMSCRIPTEN_KEEPALIVE void SceneAsset_createFromFilamentAssetRenderThread( auto fut = _renderThread->add_task(lambda); } - EMSCRIPTEN_KEEPALIVE void GltfResourceLoader_createRenderThread(TEngine *tEngine, const char* relativeResourcePath, void (*callback)(TGltfResourceLoader *)) { + EMSCRIPTEN_KEEPALIVE void GltfResourceLoader_createRenderThread(TEngine *tEngine, void (*callback)(TGltfResourceLoader *)) { std::packaged_task lambda( [=]() mutable { - auto loader = GltfResourceLoader_create(tEngine, relativeResourcePath); + auto loader = GltfResourceLoader_create(tEngine); PROXY(callback(loader)); }); auto fut = _renderThread->add_task(lambda);