wasm: fix thorvg wasm binding

Fixed initialization and termination of the engine in wasm binding
This commit is contained in:
Sergii Liebodkin 2025-04-24 12:58:56 +00:00 committed by Hermet Park
parent e24c743ab3
commit 37cffba620

View file

@ -54,13 +54,13 @@ struct TvgSwEngine : TvgEngineMethod
~TvgSwEngine() ~TvgSwEngine()
{ {
std::free(buffer); std::free(buffer);
Initializer::term(tvg::CanvasEngine::Sw); Initializer::term();
retrieveFont(); retrieveFont();
} }
Canvas* init(string&) override Canvas* init(string&) override
{ {
Initializer::init(0, tvg::CanvasEngine::Sw); Initializer::init(0);
loadFont(); loadFont();
return SwCanvas::gen(); return SwCanvas::gen();
} }
@ -97,7 +97,7 @@ struct TvgWgEngine : TvgEngineMethod
~TvgWgEngine() ~TvgWgEngine()
{ {
wgpuSurfaceRelease(surface); wgpuSurfaceRelease(surface);
Initializer::term(tvg::CanvasEngine::Wg); Initializer::term();
retrieveFont(); retrieveFont();
} }
@ -112,7 +112,7 @@ struct TvgWgEngine : TvgEngineMethod
surfaceDesc.nextInChain = &canvasDesc.chain; surfaceDesc.nextInChain = &canvasDesc.chain;
surface = wgpuInstanceCreateSurface(instance, &surfaceDesc); surface = wgpuInstanceCreateSurface(instance, &surfaceDesc);
Initializer::init(0, tvg::CanvasEngine::Wg); Initializer::init(0);
loadFont(); loadFont();
return WgCanvas::gen(); return WgCanvas::gen();
} }
@ -191,7 +191,7 @@ struct TvgGLEngine : TvgEngineMethod
~TvgGLEngine() ~TvgGLEngine()
{ {
if (context) { if (context) {
Initializer::term(tvg::CanvasEngine::Gl); Initializer::term();
emscripten_webgl_destroy_context(context); emscripten_webgl_destroy_context(context);
context = 0; context = 0;
} }
@ -215,7 +215,7 @@ struct TvgGLEngine : TvgEngineMethod
emscripten_webgl_make_context_current(context); emscripten_webgl_make_context_current(context);
if (Initializer::init(0, tvg::CanvasEngine::Gl) != Result::Success) return nullptr; if (Initializer::init(0) != Result::Success) return nullptr;
loadFont(); loadFont();
return GlCanvas::gen(); return GlCanvas::gen();