From 801896cf8ffd8a94972f955997bb1f0a1a1a3869 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Fri, 4 Sep 2020 19:34:28 +0900 Subject: [PATCH] SvgLoader: Add Mask, ClipPath nodees as dummy. Mask and clippath TAG are not supported yet. If this TAG is used, the Child TAG declared with this TAG may cause problems. To prevent that, declare them as Unknown types until they are supported. (display=none) --- src/loaders/svg/tvgSvgLoader.cpp | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index adcec7dc..fae811c5 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -1002,6 +1002,25 @@ static SvgNode* _createSvgNode(SvgLoaderData* loader, SvgNode* parent, const cha } +static SvgNode* _createMaskNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned bufLength) +{ + loader->svgParse->node = _createNode(parent, SvgNodeType::Unknown); + + loader->svgParse->node->display = false; + + return loader->svgParse->node; +} + + +static SvgNode* _createClipPathNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned bufLength) +{ + loader->svgParse->node = _createNode(parent, SvgNodeType::Unknown); + + loader->svgParse->node->display = false; + + return loader->svgParse->node; +} + static bool _attrParsePathNode(void* data, const char* key, const char* value) { SvgLoaderData* loader = (SvgLoaderData*)data; @@ -1538,7 +1557,9 @@ static constexpr struct } groupTags[] = { {"defs", sizeof("defs"), _createDefsNode}, {"g", sizeof("g"), _createGNode}, - {"svg", sizeof("svg"), _createSvgNode} + {"svg", sizeof("svg"), _createSvgNode}, + {"mask", sizeof("mask"), _createMaskNode}, + {"clipPath", sizeof("clipPath"), _createClipPathNode} }; @@ -1918,7 +1939,9 @@ static constexpr struct } popArray[] = { {"g", sizeof("g")}, {"svg", sizeof("svg")}, - {"defs", sizeof("defs")} + {"defs", sizeof("defs")}, + {"mask", sizeof("mask")}, + {"clipPath", sizeof("clipPath")} };