refactor: add createGizmoRenderThread

This commit is contained in:
Nick Fisher committed 2025-01-07 08:25:48 +08:00
1 parent 5e88a710ae
commit 8a894f7e88
2 files changed
+23

No files matched your search

@@ -55,6 +55,13 @@ namespace thermion
EMSCRIPTEN_KEEPALIVE void load_skybox_render_thread(TViewer *viewer, const char *skyboxPath, void (*onComplete)());
EMSCRIPTEN_KEEPALIVE void remove_skybox_render_thread(TViewer *viewer);
EMSCRIPTEN_KEEPALIVE TGizmo *SceneManager_createGizmoRenderThread(
TSceneManager *tSceneManager,
TView *tView,
TScene *tScene,
void (*onComplete)(TGizmo*)
);
EMSCRIPTEN_KEEPALIVE void SceneManager_createGeometryRenderThread(
TSceneManager *sceneManager,
float *vertices,
@@ -536,6 +536,22 @@ extern "C"
return nullptr;
}
EMSCRIPTEN_KEEPALIVE TGizmo *SceneManager_createGizmoRenderThread(
TSceneManager *tSceneManager,
TView *tView,
TScene *tScene,
void (*onComplete)(TGizmo*)
) {
std::packaged_task<void()> lambda(
[=]() mutable
{
auto *gizmo = SceneManager_createGizmo(tSceneManager, tView, tScene);
onComplete(gizmo);
});
auto fut = _rl->add_task(lambda);
return nullptr;
}
EMSCRIPTEN_KEEPALIVE void *SceneManager_destroyAssetRenderThread(TSceneManager *tSceneManager, TSceneAsset *tSceneAsset, void (*callback)())
{
std::packaged_task<void()> lambda(