From 48d9d6751b39253e6725d15ba16d91cd6eae5f7a Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Thu, 12 Jun 2025 11:36:08 +0800 Subject: [PATCH] render() method on viewer now requires a SwapChain argument --- .../viewer/src/ffi/src/thermion_viewer_ffi.dart | 17 ++++++++--------- .../src/viewer/src/thermion_viewer_base.dart | 2 +- 2 files changed, 9 insertions(+), 10 deletions(-) diff --git a/thermion_dart/lib/src/viewer/src/ffi/src/thermion_viewer_ffi.dart b/thermion_dart/lib/src/viewer/src/ffi/src/thermion_viewer_ffi.dart index 46fd95d5..a0d92698 100644 --- a/thermion_dart/lib/src/viewer/src/ffi/src/thermion_viewer_ffi.dart +++ b/thermion_dart/lib/src/viewer/src/ffi/src/thermion_viewer_ffi.dart @@ -122,15 +122,14 @@ class ThermionViewerFFI extends ThermionViewer { /// /// @override - Future render() async { - await withVoidCallback( - (requestId, cb) => RenderTicker_renderRenderThread( - app.renderTicker, - 0.toBigInt, - requestId, - cb, - ), - ); + Future render(SwapChain swapchain) async { + await withBoolCallback((cb) => Renderer_beginFrameRenderThread( + app.renderer, (swapchain as FFISwapChain).swapChain, 0.toBigInt, cb)); + + await withVoidCallback((requestId, cb) => + Renderer_renderRenderThread(app.renderer, view.view, requestId, cb)); + await withVoidCallback((requestId, cb) => + Renderer_endFrameRenderThread(app.renderer, requestId, cb)); await FilamentApp.instance!.flush(); } diff --git a/thermion_dart/lib/src/viewer/src/thermion_viewer_base.dart b/thermion_dart/lib/src/viewer/src/thermion_viewer_base.dart index f27fc849..2d3a44e7 100644 --- a/thermion_dart/lib/src/viewer/src/thermion_viewer_base.dart +++ b/thermion_dart/lib/src/viewer/src/thermion_viewer_base.dart @@ -42,7 +42,7 @@ abstract class ThermionViewer { /// /// Render a single frame immediately. /// - Future render(); + Future render(SwapChain swapChain); /// ///