chore: rename Viewer_destroyOnRenderThread method and cleanup unused SwapChain parameter in render threa

This commit is contained in:
Nick Fisher
2024-10-22 12:42:19 +08:00
parent ac25475155
commit 9d961af8ed
3 changed files with 19 additions and 26 deletions

View File

@@ -142,17 +142,6 @@ external void Viewer_setViewRenderable(
bool renderable,
);
@ffi.Native<
ffi.Void Function(ffi.Pointer<TViewer>, ffi.Pointer<ffi.Char>, ffi.Float,
ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>)>(isLeaf: true)
external void Viewer_loadIblRenderThread(
ffi.Pointer<TViewer> viewer,
ffi.Pointer<ffi.Char> iblPath,
double intensity,
ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> onComplete,
);
@ffi.Native<
ffi.Void Function(
ffi.Pointer<TViewer>,
@@ -240,7 +229,7 @@ external void load_skybox(
@ffi.Native<
ffi.Void Function(
ffi.Pointer<TViewer>, ffi.Pointer<ffi.Char>, ffi.Float)>(isLeaf: true)
external void load_ibl(
external void Viewer_loadIbl(
ffi.Pointer<TViewer> viewer,
ffi.Pointer<ffi.Char> iblPath,
double intensity,
@@ -1337,6 +1326,11 @@ external void Viewer_createOnRenderThread(
callback,
);
@ffi.Native<ffi.Void Function(ffi.Pointer<TViewer>)>(isLeaf: true)
external void Viewer_destroyOnRenderThread(
ffi.Pointer<TViewer> viewer,
);
@ffi.Native<
ffi.Void Function(
ffi.Pointer<TViewer>,
@@ -1427,6 +1421,16 @@ external void Viewer_requestFrameRenderThread(
ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> onComplete,
);
@ffi.Native<
ffi.Void Function(ffi.Pointer<TViewer>, ffi.Pointer<ffi.Char>, ffi.Float,
ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>>)>(isLeaf: true)
external void Viewer_loadIblRenderThread(
ffi.Pointer<TViewer> viewer,
ffi.Pointer<ffi.Char> iblPath,
double intensity,
ffi.Pointer<ffi.NativeFunction<ffi.Void Function()>> onComplete,
);
@ffi.Native<
ffi.Void Function(
ffi.Pointer<TView>, ffi.Pointer<TEngine>, ffi.Int)>(isLeaf: true)
@@ -1442,11 +1446,6 @@ external void View_setBloomRenderThread(
double bloom,
);
@ffi.Native<ffi.Void Function(ffi.Pointer<TViewer>)>(isLeaf: true)
external void destroy_filament_viewer_render_thread(
ffi.Pointer<TViewer> viewer,
);
@ffi.Native<FilamentRenderCallback Function(FilamentRenderCallback)>(
isLeaf: true)
external FilamentRenderCallback make_render_callback_fn_pointer(

View File

@@ -27,6 +27,7 @@ extern "C"
void (*renderCallback)(void *const renderCallbackOwner),
void *const renderCallbackOwner,
void (*callback)(TViewer *viewer));
EMSCRIPTEN_KEEPALIVE void Viewer_destroyOnRenderThread(TViewer *viewer);
EMSCRIPTEN_KEEPALIVE void Viewer_createSwapChainRenderThread(TViewer *viewer, void *const surface, void (*onComplete)(TSwapChain*));
EMSCRIPTEN_KEEPALIVE void Viewer_createHeadlessSwapChainRenderThread(TViewer *viewer, uint32_t width, uint32_t height, void (*onComplete)(TSwapChain*));
EMSCRIPTEN_KEEPALIVE void Viewer_destroySwapChainRenderThread(TViewer *viewer, TSwapChain* swapChain, void (*onComplete)());
@@ -35,11 +36,9 @@ extern "C"
EMSCRIPTEN_KEEPALIVE void Viewer_captureRenderTargetRenderThread(TViewer *viewer, TView* view, TSwapChain* swapChain, TRenderTarget* renderTarget, uint8_t* out, void (*onComplete)());
EMSCRIPTEN_KEEPALIVE void Viewer_requestFrameRenderThread(TViewer *viewer, void(*onComplete)());
EMSCRIPTEN_KEEPALIVE void Viewer_loadIblRenderThread(TViewer *viewer, const char *iblPath, float intensity, void(*onComplete)());
EMSCRIPTEN_KEEPALIVE void View_setToneMappingRenderThread(TView *tView, TEngine *tEngine, thermion::ToneMapping toneMapping);
EMSCRIPTEN_KEEPALIVE void View_setBloomRenderThread(TView *tView, double bloom);
EMSCRIPTEN_KEEPALIVE void destroy_filament_viewer_render_thread(TViewer *viewer);
FilamentRenderCallback make_render_callback_fn_pointer(FilamentRenderCallback);
EMSCRIPTEN_KEEPALIVE void set_rendering_render_thread(TViewer *viewer, bool rendering, void(*onComplete)());

View File

@@ -27,7 +27,6 @@ public:
~RenderLoop()
{
_stop = true;
swapChain = nullptr;
_cv.notify_one();
t->join();
}
@@ -125,7 +124,6 @@ public:
{
std::packaged_task<void()> lambda([=]() mutable
{
swapChain = nullptr;
_viewer = nullptr;
destroy_filament_viewer(reinterpret_cast<TViewer*>(viewer)); });
auto fut = add_task(lambda);
@@ -158,9 +156,6 @@ public:
return ret;
}
public:
TSwapChain *swapChain;
private:
void(*_requestFrameRenderCallback)() = nullptr;
bool _stop = false;
@@ -200,7 +195,7 @@ extern "C"
renderCallback, renderCallbackOwner, callback);
}
EMSCRIPTEN_KEEPALIVE void destroy_filament_viewer_render_thread(TViewer *viewer)
EMSCRIPTEN_KEEPALIVE void Viewer_destroyOnRenderThread(TViewer *viewer)
{
_rl->destroyViewer((FilamentViewer *)viewer);
delete _rl;