From 87213e8aacb48c3a4d69a3387216990aa1dc61a5 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Thu, 9 May 2024 13:37:01 +0800 Subject: [PATCH] actually hook up set_frame_interval to FilamentViewer --- dart_filament/native/include/DartFilamentFFIApi.h | 2 +- dart_filament/native/src/DartFilamentFFIApi.cpp | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/dart_filament/native/include/DartFilamentFFIApi.h b/dart_filament/native/include/DartFilamentFFIApi.h index bd2fd5d0..39274c9c 100644 --- a/dart_filament/native/include/DartFilamentFFIApi.h +++ b/dart_filament/native/include/DartFilamentFFIApi.h @@ -31,7 +31,7 @@ extern "C" FLUTTER_PLUGIN_EXPORT void render_ffi(void *const viewer); FLUTTER_PLUGIN_EXPORT FilamentRenderCallback make_render_callback_fn_pointer(FilamentRenderCallback); FLUTTER_PLUGIN_EXPORT void set_rendering_ffi(void *const viewer, bool rendering); - FLUTTER_PLUGIN_EXPORT void set_frame_interval_ffi(float frameInterval); + FLUTTER_PLUGIN_EXPORT void set_frame_interval_ffi(void *const viewer, float frameInterval); FLUTTER_PLUGIN_EXPORT void update_viewport_and_camera_projection_ffi(void *const viewer, const uint32_t width, const uint32_t height, const float scaleFactor, void (*onComplete)()); FLUTTER_PLUGIN_EXPORT void set_background_color_ffi(void *const viewer, const float r, const float g, const float b, const float a); FLUTTER_PLUGIN_EXPORT void clear_background_image_ffi(void *const viewer); diff --git a/dart_filament/native/src/DartFilamentFFIApi.cpp b/dart_filament/native/src/DartFilamentFFIApi.cpp index 6b8da197..34582375 100644 --- a/dart_filament/native/src/DartFilamentFFIApi.cpp +++ b/dart_filament/native/src/DartFilamentFFIApi.cpp @@ -277,9 +277,12 @@ extern "C" } FLUTTER_PLUGIN_EXPORT void - set_frame_interval_ffi(float frameIntervalInMilliseconds) + set_frame_interval_ffi(void* const viewer, float frameIntervalInMilliseconds) { _rl->setFrameIntervalInMilliseconds(frameIntervalInMilliseconds); + std::packaged_task lambda([=]() mutable + { ((FilamentViewer*)viewer)->setFrameInterval(frameIntervalInMilliseconds); }); + auto fut = _rl->add_task(lambda); } FLUTTER_PLUGIN_EXPORT void render_ffi(void *const viewer)