From 9bec96f160185f4cc2750d12c8bf84ddb6fb1c0d Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Tue, 22 Oct 2024 12:42:19 +0800 Subject: [PATCH] chore: rename Viewer_destroyOnRenderThread method and cleanup unused SwapChain parameter in render threa --- .../viewer/src/ffi/src/thermion_dart.g.dart | 33 +++++++++---------- .../include/ThermionDartRenderThreadApi.h | 5 ++- .../src/ThermionDartRenderThreadApi.cpp | 7 +--- 3 files changed, 19 insertions(+), 26 deletions(-) diff --git a/thermion_dart/lib/src/viewer/src/ffi/src/thermion_dart.g.dart b/thermion_dart/lib/src/viewer/src/ffi/src/thermion_dart.g.dart index 19600d8a..36ebc3a1 100644 --- a/thermion_dart/lib/src/viewer/src/ffi/src/thermion_dart.g.dart +++ b/thermion_dart/lib/src/viewer/src/ffi/src/thermion_dart.g.dart @@ -142,17 +142,6 @@ external void Viewer_setViewRenderable( bool renderable, ); -@ffi.Native< - ffi.Void Function(ffi.Pointer, ffi.Pointer, ffi.Float, - ffi.Pointer>)>(isLeaf: true) -external void Viewer_loadIblRenderThread( - ffi.Pointer viewer, - ffi.Pointer iblPath, - double intensity, - ffi.Pointer> onComplete, -); - - @ffi.Native< ffi.Void Function( ffi.Pointer, @@ -240,7 +229,7 @@ external void load_skybox( @ffi.Native< ffi.Void Function( ffi.Pointer, ffi.Pointer, ffi.Float)>(isLeaf: true) -external void load_ibl( +external void Viewer_loadIbl( ffi.Pointer viewer, ffi.Pointer iblPath, double intensity, @@ -1337,6 +1326,11 @@ external void Viewer_createOnRenderThread( callback, ); +@ffi.Native)>(isLeaf: true) +external void Viewer_destroyOnRenderThread( + ffi.Pointer viewer, +); + @ffi.Native< ffi.Void Function( ffi.Pointer, @@ -1427,6 +1421,16 @@ external void Viewer_requestFrameRenderThread( ffi.Pointer> onComplete, ); +@ffi.Native< + ffi.Void Function(ffi.Pointer, ffi.Pointer, ffi.Float, + ffi.Pointer>)>(isLeaf: true) +external void Viewer_loadIblRenderThread( + ffi.Pointer viewer, + ffi.Pointer iblPath, + double intensity, + ffi.Pointer> onComplete, +); + @ffi.Native< ffi.Void Function( ffi.Pointer, ffi.Pointer, ffi.Int)>(isLeaf: true) @@ -1442,11 +1446,6 @@ external void View_setBloomRenderThread( double bloom, ); -@ffi.Native)>(isLeaf: true) -external void destroy_filament_viewer_render_thread( - ffi.Pointer viewer, -); - @ffi.Native( isLeaf: true) external FilamentRenderCallback make_render_callback_fn_pointer( diff --git a/thermion_dart/native/include/ThermionDartRenderThreadApi.h b/thermion_dart/native/include/ThermionDartRenderThreadApi.h index 4b7979b3..dccf748c 100644 --- a/thermion_dart/native/include/ThermionDartRenderThreadApi.h +++ b/thermion_dart/native/include/ThermionDartRenderThreadApi.h @@ -27,6 +27,7 @@ extern "C" void (*renderCallback)(void *const renderCallbackOwner), void *const renderCallbackOwner, void (*callback)(TViewer *viewer)); + EMSCRIPTEN_KEEPALIVE void Viewer_destroyOnRenderThread(TViewer *viewer); EMSCRIPTEN_KEEPALIVE void Viewer_createSwapChainRenderThread(TViewer *viewer, void *const surface, void (*onComplete)(TSwapChain*)); EMSCRIPTEN_KEEPALIVE void Viewer_createHeadlessSwapChainRenderThread(TViewer *viewer, uint32_t width, uint32_t height, void (*onComplete)(TSwapChain*)); EMSCRIPTEN_KEEPALIVE void Viewer_destroySwapChainRenderThread(TViewer *viewer, TSwapChain* swapChain, void (*onComplete)()); @@ -35,11 +36,9 @@ extern "C" EMSCRIPTEN_KEEPALIVE void Viewer_captureRenderTargetRenderThread(TViewer *viewer, TView* view, TSwapChain* swapChain, TRenderTarget* renderTarget, uint8_t* out, void (*onComplete)()); EMSCRIPTEN_KEEPALIVE void Viewer_requestFrameRenderThread(TViewer *viewer, void(*onComplete)()); EMSCRIPTEN_KEEPALIVE void Viewer_loadIblRenderThread(TViewer *viewer, const char *iblPath, float intensity, void(*onComplete)()); + EMSCRIPTEN_KEEPALIVE void View_setToneMappingRenderThread(TView *tView, TEngine *tEngine, thermion::ToneMapping toneMapping); EMSCRIPTEN_KEEPALIVE void View_setBloomRenderThread(TView *tView, double bloom); - - - EMSCRIPTEN_KEEPALIVE void destroy_filament_viewer_render_thread(TViewer *viewer); FilamentRenderCallback make_render_callback_fn_pointer(FilamentRenderCallback); EMSCRIPTEN_KEEPALIVE void set_rendering_render_thread(TViewer *viewer, bool rendering, void(*onComplete)()); diff --git a/thermion_dart/native/src/ThermionDartRenderThreadApi.cpp b/thermion_dart/native/src/ThermionDartRenderThreadApi.cpp index 227e629d..434eacd7 100644 --- a/thermion_dart/native/src/ThermionDartRenderThreadApi.cpp +++ b/thermion_dart/native/src/ThermionDartRenderThreadApi.cpp @@ -27,7 +27,6 @@ public: ~RenderLoop() { _stop = true; - swapChain = nullptr; _cv.notify_one(); t->join(); } @@ -125,7 +124,6 @@ public: { std::packaged_task lambda([=]() mutable { - swapChain = nullptr; _viewer = nullptr; destroy_filament_viewer(reinterpret_cast(viewer)); }); auto fut = add_task(lambda); @@ -158,9 +156,6 @@ public: return ret; } -public: - TSwapChain *swapChain; - private: void(*_requestFrameRenderCallback)() = nullptr; bool _stop = false; @@ -200,7 +195,7 @@ extern "C" renderCallback, renderCallbackOwner, callback); } - EMSCRIPTEN_KEEPALIVE void destroy_filament_viewer_render_thread(TViewer *viewer) + EMSCRIPTEN_KEEPALIVE void Viewer_destroyOnRenderThread(TViewer *viewer) { _rl->destroyViewer((FilamentViewer *)viewer); delete _rl;