summaryrefslogtreecommitdiffstats
path: root/modules/svg/register_types.cpp
diff options
context:
space:
mode:
authorK. S. Ernest (iFire) Lee <ernest.lee@chibifire.com>2022-01-13 13:54:19 +0100
committerRémi Verschelde <rverschelde@gmail.com>2022-01-14 15:49:39 +0100
commit8d02759c720c3a91663e56979273feabad1dc051 (patch)
treeb939f28feb3224d4c4d2e39d12ef191157e2664b /modules/svg/register_types.cpp
parent9b3535a33a1dda541a3a39e7786b8428fadbff6c (diff)
downloadredot-engine-8d02759c720c3a91663e56979273feabad1dc051.tar.gz
Use ThorVG instead of NanoSVG for importing SVGs
ThorVG is a platform-independent portable library for drawing vector-based scene and animation. Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
Diffstat (limited to 'modules/svg/register_types.cpp')
-rw-r--r--modules/svg/register_types.cpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/modules/svg/register_types.cpp b/modules/svg/register_types.cpp
index 1560af95c3..a4341c6f1e 100644
--- a/modules/svg/register_types.cpp
+++ b/modules/svg/register_types.cpp
@@ -32,13 +32,23 @@
#include "image_loader_svg.h"
+#include <thorvg.h>
+
static ImageLoaderSVG *image_loader_svg = nullptr;
void register_svg_types() {
+ tvg::CanvasEngine tvgEngine = tvg::CanvasEngine::Sw;
+ if (tvg::Initializer::init(tvgEngine, 0) != tvg::Result::Success) {
+ return;
+ }
image_loader_svg = memnew(ImageLoaderSVG);
ImageLoader::add_image_format_loader(image_loader_svg);
}
void unregister_svg_types() {
+ if (!image_loader_svg) {
+ return;
+ }
memdelete(image_loader_svg);
+ tvg::Initializer::term(tvg::CanvasEngine::Sw);
}