internal: add destroyRenderTargetRenderThread
This commit is contained in:
@@ -93,19 +93,10 @@ class ThermionViewerFFI extends ThermionViewer {
|
|||||||
_logger.info(
|
_logger.info(
|
||||||
"Viewer is being (or has been) disposed; this will clean up all render targets.");
|
"Viewer is being (or has been) disposed; this will clean up all render targets.");
|
||||||
} else {
|
} else {
|
||||||
Viewer_destroyRenderTarget(_viewer!, renderTarget.renderTarget);
|
await withVoidCallback((cb) {
|
||||||
}
|
Viewer_destroyRenderTargetRenderThread(
|
||||||
}
|
_viewer!, renderTarget.renderTarget, cb);
|
||||||
|
});
|
||||||
///
|
|
||||||
///
|
|
||||||
///
|
|
||||||
Future setRenderTarget(FFIRenderTarget? renderTarget) async {
|
|
||||||
final view = (await getViewAt(0)) as FFIView;
|
|
||||||
if (renderTarget != null) {
|
|
||||||
View_setRenderTarget(view.view, renderTarget.renderTarget);
|
|
||||||
} else {
|
|
||||||
View_setRenderTarget(view.view, nullptr);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1769,8 +1760,7 @@ class ThermionViewerFFI extends ThermionViewer {
|
|||||||
_sceneManager!, material.pointer, cb);
|
_sceneManager!, material.pointer, cb);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
_grid =
|
_grid = FFIAsset(ptr, _sceneManager!, _engine!, _unlitMaterialProvider!);
|
||||||
FFIAsset(ptr, _sceneManager!, _engine!, _unlitMaterialProvider!);
|
|
||||||
}
|
}
|
||||||
await _grid!.addToScene();
|
await _grid!.addToScene();
|
||||||
await setLayerVisibility(VisibilityLayers.OVERLAY, true);
|
await setLayerVisibility(VisibilityLayers.OVERLAY, true);
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ namespace thermion
|
|||||||
EMSCRIPTEN_KEEPALIVE void Viewer_requestFrameRenderThread(TViewer *viewer, 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 Viewer_loadIblRenderThread(TViewer *viewer, const char *iblPath, float intensity, void (*onComplete)());
|
||||||
EMSCRIPTEN_KEEPALIVE void Viewer_createRenderTargetRenderThread(TViewer *viewer, intptr_t texture, uint32_t width, uint32_t height, void (*onComplete)(TRenderTarget *));
|
EMSCRIPTEN_KEEPALIVE void Viewer_createRenderTargetRenderThread(TViewer *viewer, intptr_t texture, uint32_t width, uint32_t height, void (*onComplete)(TRenderTarget *));
|
||||||
|
EMSCRIPTEN_KEEPALIVE void Viewer_destroyRenderTargetRenderThread(TViewer *viewer, TRenderTarget *tRenderTarget, void (*onComplete)());
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void Engine_buildMaterialRenderThread(TEngine *tEngine, const uint8_t* materialData, size_t length, void (*onComplete)(TMaterial *));
|
EMSCRIPTEN_KEEPALIVE void Engine_buildMaterialRenderThread(TEngine *tEngine, const uint8_t* materialData, size_t length, void (*onComplete)(TMaterial *));
|
||||||
EMSCRIPTEN_KEEPALIVE void Engine_destroyMaterialRenderThread(TEngine *tEngine, TMaterial *tMaterial, void (*onComplete)());
|
EMSCRIPTEN_KEEPALIVE void Engine_destroyMaterialRenderThread(TEngine *tEngine, TMaterial *tMaterial, void (*onComplete)());
|
||||||
|
|||||||
@@ -279,6 +279,16 @@ extern "C"
|
|||||||
auto fut = _rl->add_task(lambda);
|
auto fut = _rl->add_task(lambda);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EMSCRIPTEN_KEEPALIVE void Viewer_destroyRenderTargetRenderThread(TViewer *tViewer, TRenderTarget *tRenderTarget, void (*onComplete)()) {
|
||||||
|
std::packaged_task<void()> lambda(
|
||||||
|
[=]() mutable
|
||||||
|
{
|
||||||
|
Viewer_destroyRenderTarget(tViewer, tRenderTarget);
|
||||||
|
onComplete();
|
||||||
|
});
|
||||||
|
auto fut = _rl->add_task(lambda);
|
||||||
|
}
|
||||||
|
|
||||||
EMSCRIPTEN_KEEPALIVE void Engine_buildMaterialRenderThread(TEngine *tEngine, const uint8_t *materialData, size_t length, void (*onComplete)(TMaterial *))
|
EMSCRIPTEN_KEEPALIVE void Engine_buildMaterialRenderThread(TEngine *tEngine, const uint8_t *materialData, size_t length, void (*onComplete)(TMaterial *))
|
||||||
{
|
{
|
||||||
std::packaged_task<void()> lambda(
|
std::packaged_task<void()> lambda(
|
||||||
|
|||||||
Reference in New Issue
Block a user