From c5228dff7e98029516d0786d57dcfe7a18a388c2 Mon Sep 17 00:00:00 2001 From: Nick Fisher Date: Sat, 1 Mar 2025 11:45:04 +0800 Subject: [PATCH] add enabled/strength params to setBloom, add setRenderQuality method --- thermion_dart/native/include/c_api/TView.h | 11 ++++++++++- thermion_dart/native/src/c_api/TView.cpp | 14 ++++++++++---- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/thermion_dart/native/include/c_api/TView.h b/thermion_dart/native/include/c_api/TView.h index 087a42f1..a42d226b 100644 --- a/thermion_dart/native/include/c_api/TView.h +++ b/thermion_dart/native/include/c_api/TView.h @@ -24,6 +24,14 @@ enum ToneMapping LINEAR }; +// copied from Options.h +enum TQualityLevel { + LOW, + MEDIUM, + HIGH, + ULTRA +}; + // View EMSCRIPTEN_KEEPALIVE TViewport View_getViewport(TView *view); EMSCRIPTEN_KEEPALIVE void View_updateViewport(TView *view, uint32_t width, uint32_t height); @@ -37,7 +45,8 @@ EMSCRIPTEN_KEEPALIVE void View_setPostProcessing(TView* tView, bool enabled); EMSCRIPTEN_KEEPALIVE void View_setShadowsEnabled(TView* tView, bool enabled); EMSCRIPTEN_KEEPALIVE void View_setShadowType(TView* tView, int shadowType); EMSCRIPTEN_KEEPALIVE void View_setSoftShadowOptions(TView* tView, float penumbraScale, float penumbraRatioScale); -EMSCRIPTEN_KEEPALIVE void View_setBloom(TView* tView, float strength); +EMSCRIPTEN_KEEPALIVE void View_setBloom(TView* tView, bool enabled, float strength); +EMSCRIPTEN_KEEPALIVE void View_setRenderQuality(TView* tView, TQualityLevel qualityLevel); EMSCRIPTEN_KEEPALIVE void View_setToneMapping(TView* tView, TEngine* tEngine, ToneMapping toneMapping); EMSCRIPTEN_KEEPALIVE void View_setAntiAliasing(TView *tView, bool msaa, bool fxaa, bool taa); EMSCRIPTEN_KEEPALIVE void View_setLayerEnabled(TView *tView, int layer, bool visible); diff --git a/thermion_dart/native/src/c_api/TView.cpp b/thermion_dart/native/src/c_api/TView.cpp index 37af696e..7518a06e 100644 --- a/thermion_dart/native/src/c_api/TView.cpp +++ b/thermion_dart/native/src/c_api/TView.cpp @@ -81,12 +81,12 @@ using namespace filament; view->setSoftShadowOptions(opts); } - EMSCRIPTEN_KEEPALIVE void View_setBloom(TView *tView, float strength) + EMSCRIPTEN_KEEPALIVE void View_setBloom(TView *tView, bool enabled, float strength) { auto view = reinterpret_cast(tView); #ifndef __EMSCRIPTEN__ decltype(view->getBloomOptions()) opts; - opts.enabled = true; + opts.enabled = enabled; opts.strength = strength; view->setBloomOptions(opts); #endif @@ -172,8 +172,7 @@ using namespace filament; auto view = reinterpret_cast(tView); return view->isStencilBufferEnabled(); } - - + EMSCRIPTEN_KEEPALIVE void View_pick(TView *tView, uint32_t requestId, uint32_t x, uint32_t y, PickCallback callback) { @@ -196,6 +195,13 @@ 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; + rq.hdrColorBuffer = (filament::QualityLevel)qualityLevel; + view->setRenderQuality(rq); + } + #ifdef __cplusplus }