From 426d6c4ed6e7df22564a11faf424662c96748ad3 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Wed, 16 Apr 2025 19:07:55 +0800 Subject: [PATCH] use render thread methods for all async gltf loading --- .../src/c_api/ThermionDartRenderThreadApi.cpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp b/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp index 7fd16368..31011c44 100644 --- a/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp +++ b/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp @@ -1008,6 +1008,28 @@ EMSCRIPTEN_KEEPALIVE void SceneAsset_createFromFilamentAssetRenderThread( }); auto fut = _renderThread->add_task(lambda); } + + EMSCRIPTEN_KEEPALIVE void GltfResourceLoader_asyncUpdateLoadRenderThread( + TGltfResourceLoader *tGltfResourceLoader) { + std::packaged_task lambda( + [=]() mutable + { + GltfResourceLoader_asyncUpdateLoad(tGltfResourceLoader); + }); + auto fut = _renderThread->add_task(lambda); + } + + EMSCRIPTEN_KEEPALIVE void GltfResourceLoader_asyncGetLoadProgressRenderThread( + TGltfResourceLoader *tGltfResourceLoader, + void (*callback)(float)) { + std::packaged_task lambda( + [=]() mutable + { + auto result = GltfResourceLoader_asyncGetLoadProgress(tGltfResourceLoader); + callback(result); + }); + auto fut = _renderThread->add_task(lambda); + } EMSCRIPTEN_KEEPALIVE void GltfAssetLoader_loadRenderThread( TEngine *tEngine,