From 342a53ae7bd1ade9f46ae12c8b3d84a07c54df39 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Mon, 17 Mar 2025 16:53:06 +0800 Subject: [PATCH] add View_setScene and rename View_updateViewport to View_setViewport --- thermion_dart/native/include/c_api/TView.h | 5 ++--- thermion_dart/native/src/c_api/TView.cpp | 9 ++++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/thermion_dart/native/include/c_api/TView.h b/thermion_dart/native/include/c_api/TView.h index a42d226b..5c1c60ee 100644 --- a/thermion_dart/native/include/c_api/TView.h +++ b/thermion_dart/native/include/c_api/TView.h @@ -34,10 +34,9 @@ enum TQualityLevel { // View EMSCRIPTEN_KEEPALIVE TViewport View_getViewport(TView *view); -EMSCRIPTEN_KEEPALIVE void View_updateViewport(TView *view, uint32_t width, uint32_t height); +EMSCRIPTEN_KEEPALIVE void View_setViewport(TView *view, uint32_t width, uint32_t height); EMSCRIPTEN_KEEPALIVE void View_setRenderTarget(TView *view, TRenderTarget *renderTarget); EMSCRIPTEN_KEEPALIVE void View_setFrustumCullingEnabled(TView *view, bool enabled); -EMSCRIPTEN_KEEPALIVE void View_updateViewport(TView* tView, uint32_t width, uint32_t height); EMSCRIPTEN_KEEPALIVE void View_setRenderTarget(TView* tView, TRenderTarget* tRenderTarget); EMSCRIPTEN_KEEPALIVE TRenderTarget *View_getRenderTarget(TView* tView); EMSCRIPTEN_KEEPALIVE void View_setFrustumCullingEnabled(TView* tView, bool enabled); @@ -57,7 +56,7 @@ EMSCRIPTEN_KEEPALIVE void View_setStencilBufferEnabled(TView *tView, bool enable EMSCRIPTEN_KEEPALIVE bool View_isStencilBufferEnabled(TView *tView); EMSCRIPTEN_KEEPALIVE void View_setDitheringEnabled(TView *tView, bool enabled); EMSCRIPTEN_KEEPALIVE bool View_isDitheringEnabled(TView *tView); - +EMSCRIPTEN_KEEPALIVE void View_setScene(TView *tView, TScene *tScene); typedef void (*PickCallback)(uint32_t requestId, EntityId entityId, float depth, float fragX, float fragY, float fragZ); EMSCRIPTEN_KEEPALIVE void View_pick(TView* tView, uint32_t requestId, uint32_t x, uint32_t y, PickCallback callback); diff --git a/thermion_dart/native/src/c_api/TView.cpp b/thermion_dart/native/src/c_api/TView.cpp index 7518a06e..aa8d12c2 100644 --- a/thermion_dart/native/src/c_api/TView.cpp +++ b/thermion_dart/native/src/c_api/TView.cpp @@ -29,7 +29,7 @@ using namespace filament; return tvp; } - EMSCRIPTEN_KEEPALIVE void View_updateViewport(TView *tView, uint32_t width, uint32_t height) + EMSCRIPTEN_KEEPALIVE void View_setViewport(TView *tView, uint32_t width, uint32_t height) { auto view = reinterpret_cast(tView); view->setViewport({0, 0, width, height}); @@ -195,6 +195,7 @@ using namespace filament; auto *view = reinterpret_cast(tView); return view->getDithering() == Dithering::TEMPORAL; } + EMSCRIPTEN_KEEPALIVE void View_setRenderQuality(TView *tView, TQualityLevel qualityLevel) { auto view = reinterpret_cast(tView); RenderQuality rq; @@ -202,6 +203,12 @@ using namespace filament; view->setRenderQuality(rq); } + EMSCRIPTEN_KEEPALIVE void View_setScene(TView *tView, TScene *tScene) { + auto *view = reinterpret_cast(tView); + auto *scene = reinterpret_cast(tScene); + view->setScene(scene); + } + #ifdef __cplusplus }