From 91e50cf0ef0ff34449f7e18765b0e923b65f5116 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Fri, 13 Oct 2023 12:55:32 +0800 Subject: [PATCH] update macOS sources --- macos/include/PolyvoxFilamentFFIApi.h | 1 + macos/src/FilamentViewer.cpp | 4 ---- macos/src/PolyvoxFilamentFFIApi.cpp | 18 +++++++++++++++++- 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/macos/include/PolyvoxFilamentFFIApi.h b/macos/include/PolyvoxFilamentFFIApi.h index 78a024b2..7c3b6d50 100644 --- a/macos/include/PolyvoxFilamentFFIApi.h +++ b/macos/include/PolyvoxFilamentFFIApi.h @@ -17,6 +17,7 @@ typedef void (*FilamentRenderCallback)(void* const owner); FLUTTER_PLUGIN_EXPORT void* const create_filament_viewer_ffi(void* const context, void* const platform, const char* uberArchivePath, const ResourceLoaderWrapper* const loader, void (*renderCallback)(void* const renderCallbackOwner), void* const renderCallbackOwner); FLUTTER_PLUGIN_EXPORT void create_swap_chain_ffi(void* const viewer, void* const surface, uint32_t width, uint32_t height); +FLUTTER_PLUGIN_EXPORT void destroy_swap_chain_ffi(void* const viewer); FLUTTER_PLUGIN_EXPORT void create_render_target_ffi(void* const viewer, intptr_t nativeTextureId, uint32_t width, uint32_t height); FLUTTER_PLUGIN_EXPORT void destroy_filament_viewer_ffi(void* const viewer); FLUTTER_PLUGIN_EXPORT void render_ffi(void* const viewer); diff --git a/macos/src/FilamentViewer.cpp b/macos/src/FilamentViewer.cpp index b1c64a01..1c52304e 100644 --- a/macos/src/FilamentViewer.cpp +++ b/macos/src/FilamentViewer.cpp @@ -1155,10 +1155,6 @@ namespace polyvox return; } - - Log("Updating grab at %f %f", x, y); - - if (_manipulator) { _manipulator->grabUpdate(x, y); diff --git a/macos/src/PolyvoxFilamentFFIApi.cpp b/macos/src/PolyvoxFilamentFFIApi.cpp index 582bb702..b3ba8099 100644 --- a/macos/src/PolyvoxFilamentFFIApi.cpp +++ b/macos/src/PolyvoxFilamentFFIApi.cpp @@ -72,7 +72,12 @@ public: void setRendering(bool rendering) { - _rendering = rendering; + std::packaged_task lambda([&]() mutable + { + this->_rendering = rendering; + }); + auto fut = add_task(lambda); + fut.wait(); } void doRender() @@ -143,6 +148,17 @@ extern "C" fut.wait(); } + FLUTTER_PLUGIN_EXPORT void destroy_swap_chain_ffi(void* const viewer) + { + Log("Destroying swapchain"); + std::packaged_task lambda([&]() mutable + { + destroy_swap_chain(viewer); + }); + auto fut = _rl->add_task(lambda); + fut.wait(); + } + FLUTTER_PLUGIN_EXPORT void create_render_target_ffi(void* const viewer, intptr_t nativeTextureId, uint32_t width, uint32_t height) { std::packaged_task lambda([&]() mutable