From d41f29c06dc0c2e1ee85a862fe700c83c776f433 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Mon, 23 Jun 2025 12:43:40 +0800 Subject: [PATCH] (web) after capture is called on emscripten builds, request the render thread to exit/resume to yield to the browser so the frame is committed --- .../native/src/c_api/ThermionDartRenderThreadApi.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp b/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp index 4709565f..be17d6c1 100644 --- a/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp +++ b/thermion_dart/native/src/c_api/ThermionDartRenderThreadApi.cpp @@ -350,7 +350,13 @@ extern "C" [=]() mutable { Engine_execute(tEngine); - PROXY(onComplete(requestId)); + std::packaged_task callback( + [=]() mutable + { + PROXY(onComplete(requestId)); + }); + _renderThread->add_task(callback); + _renderThread->restart(); }); auto fut = _renderThread->add_task(lambda); }