From 92047fae556a334d71e78d82f8c6f601a9536a01 Mon Sep 17 00:00:00 2001 From: mgrudzinska Date: Sun, 20 Mar 2022 18:27:34 +0100 Subject: [PATCH 01/16] svg_loader: symbol node without any viewbox/width/height info handled properly Change-Id: I60a720306fa6c2ae06aa87e7666abba7289dab6d --- src/loaders/svg/tvgSvgLoader.cpp | 9 +++++++++ src/loaders/svg/tvgSvgLoaderCommon.h | 3 +++ src/loaders/svg/tvgSvgSceneBuilder.cpp | 16 +++++++++------- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index a0b6332..674fbb9 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -1145,10 +1145,13 @@ static bool _attrParseSymbolNode(void* data, const char* key, const char* value) if (!strcmp(key, "viewBox")) { if (!_parseNumber(&value, &symbol->vx) || !_parseNumber(&value, &symbol->vy)) return false; if (!_parseNumber(&value, &symbol->vw) || !_parseNumber(&value, &symbol->vh)) return false; + symbol->hasViewBox = true; } else if (!strcmp(key, "width")) { symbol->w = _toFloat(loader->svgParse, value, SvgParserLengthType::Horizontal); + symbol->hasWidth = true; } else if (!strcmp(key, "height")) { symbol->h = _toFloat(loader->svgParse, value, SvgParserLengthType::Vertical); + symbol->hasHeight = true; } else if (!strcmp(key, "preserveAspectRatio")) { if (!strcmp(value, "none")) symbol->preserveAspect = false; } else if (!strcmp(key, "overflow")) { @@ -1306,6 +1309,12 @@ static SvgNode* _createSymbolNode(SvgLoaderData* loader, SvgNode* parent, const loader->svgParse->node->node.symbol.preserveAspect = true; loader->svgParse->node->node.symbol.overflowVisible = false; + loader->svgParse->node->node.symbol.hasViewBox = false; + loader->svgParse->node->node.symbol.hasWidth = false; + loader->svgParse->node->node.symbol.hasHeight = false; + loader->svgParse->node->node.symbol.vx = 0.0f; + loader->svgParse->node->node.symbol.vy = 0.0f; + func(buf, bufLength, _attrParseSymbolNode, loader); return loader->svgParse->node; diff --git a/src/loaders/svg/tvgSvgLoaderCommon.h b/src/loaders/svg/tvgSvgLoaderCommon.h index 1f25e82..dc9ed55 100644 --- a/src/loaders/svg/tvgSvgLoaderCommon.h +++ b/src/loaders/svg/tvgSvgLoaderCommon.h @@ -173,6 +173,9 @@ struct SvgSymbolNode float vx, vy, vw, vh; bool preserveAspect; bool overflowVisible; + bool hasViewBox; + bool hasWidth; + bool hasHeight; }; struct SvgUseNode diff --git a/src/loaders/svg/tvgSvgSceneBuilder.cpp b/src/loaders/svg/tvgSvgSceneBuilder.cpp index 90705f2..a3f34fd 100644 --- a/src/loaders/svg/tvgSvgSceneBuilder.cpp +++ b/src/loaders/svg/tvgSvgSceneBuilder.cpp @@ -576,15 +576,17 @@ static unique_ptr _useBuildHelper(const SvgNode* node, const Box& vBox, c if (node->node.use.symbol) { auto symbol = node->node.use.symbol->node.symbol; - auto width = symbol.w; + auto width = (symbol.hasWidth ? symbol.w : vBox.w); if (node->node.use.isWidthSet) width = node->node.use.w; - auto height = symbol.h; + auto height = (symbol.hasHeight ? symbol.h : vBox.h);; if (node->node.use.isHeightSet) height = node->node.use.h; + auto vw = (symbol.hasViewBox ? symbol.vw : width); + auto vh = (symbol.hasViewBox ? symbol.vh : height); Matrix mViewBox = {1, 0, 0, 0, 1, 0, 0, 0, 1}; - if ((!mathEqual(width, symbol.vw) || !mathEqual(height, symbol.vh)) && symbol.vw > 0 && symbol.vh > 0) { - auto sx = width / symbol.vw; - auto sy = height / symbol.vh; + if ((!mathEqual(width, vw) || !mathEqual(height, vh)) && vw > 0 && vh > 0) { + auto sx = width / vw; + auto sy = height / vh; if (symbol.preserveAspect) { if (sx < sy) sy = sx; else sx = sy; @@ -592,8 +594,8 @@ static unique_ptr _useBuildHelper(const SvgNode* node, const Box& vBox, c auto tvx = symbol.vx * sx; auto tvy = symbol.vy * sy; - auto tvw = symbol.vw * sx; - auto tvh = symbol.vh * sy; + auto tvw = vw * sx; + auto tvh = vh * sy; tvy -= (symbol.h - tvh) * 0.5f; tvx -= (symbol.w - tvw) * 0.5f; mViewBox = {sx, 0, -tvx, 0, sy, -tvy, 0, 0, 1}; -- 2.7.4 From 79700b1a348141724305d7bfae1f23a917369e07 Mon Sep 17 00:00:00 2001 From: mgrudzinska Date: Tue, 22 Mar 2022 23:50:24 +0100 Subject: [PATCH 02/16] sw_engine: fixing oveflow An overflow occurred for big shapes with a dashed stroke, since a contour end points were stored as the uint16 type (instead of the uint32 type). Change-Id: Ibb50aab2dd8114aa615714f05e8a564365f7efe7 --- src/lib/sw_engine/tvgSwCommon.h | 6 +++--- src/lib/sw_engine/tvgSwImage.cpp | 2 +- src/lib/sw_engine/tvgSwShape.cpp | 2 +- src/lib/sw_engine/tvgSwStroke.cpp | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/lib/sw_engine/tvgSwCommon.h b/src/lib/sw_engine/tvgSwCommon.h index be7042d..157fdb8 100644 --- a/src/lib/sw_engine/tvgSwCommon.h +++ b/src/lib/sw_engine/tvgSwCommon.h @@ -99,9 +99,9 @@ struct SwSize struct SwOutline { SwPoint* pts; //the outline's points - uint16_t ptsCnt; //number of points in the glyph - uint16_t reservedPtsCnt; - uint16_t* cntrs; //the contour end points + uint32_t ptsCnt; //number of points in the glyph + uint32_t reservedPtsCnt; + uint32_t* cntrs; //the contour end points uint16_t cntrsCnt; //number of contours in glyph uint16_t reservedCntrsCnt; uint8_t* types; //curve type diff --git a/src/lib/sw_engine/tvgSwImage.cpp b/src/lib/sw_engine/tvgSwImage.cpp index f24d2d6..c02e28b 100644 --- a/src/lib/sw_engine/tvgSwImage.cpp +++ b/src/lib/sw_engine/tvgSwImage.cpp @@ -46,7 +46,7 @@ static bool _genOutline(SwImage* image, const Matrix* transform, SwMpool* mpool, if (outline->reservedCntrsCnt < 1) { outline->reservedCntrsCnt = 1; - outline->cntrs = static_cast(realloc(outline->cntrs, outline->reservedCntrsCnt * sizeof(uint16_t))); + outline->cntrs = static_cast(realloc(outline->cntrs, outline->reservedCntrsCnt * sizeof(uint32_t))); outline->closed = static_cast(realloc(outline->closed, outline->reservedCntrsCnt * sizeof(bool))); outline->closed[0] = true; } diff --git a/src/lib/sw_engine/tvgSwShape.cpp b/src/lib/sw_engine/tvgSwShape.cpp index 2a2c6a1..e5b540b 100644 --- a/src/lib/sw_engine/tvgSwShape.cpp +++ b/src/lib/sw_engine/tvgSwShape.cpp @@ -64,7 +64,7 @@ static bool _growOutlineContour(SwOutline& outline, uint32_t n) { if (outline.reservedCntrsCnt >= outline.cntrsCnt + n) return false; outline.reservedCntrsCnt = outline.cntrsCnt + n; - outline.cntrs = static_cast(realloc(outline.cntrs, outline.reservedCntrsCnt * sizeof(uint16_t))); + outline.cntrs = static_cast(realloc(outline.cntrs, outline.reservedCntrsCnt * sizeof(uint32_t))); return true; } diff --git a/src/lib/sw_engine/tvgSwStroke.cpp b/src/lib/sw_engine/tvgSwStroke.cpp index 04aa9a3..fa213cc 100644 --- a/src/lib/sw_engine/tvgSwStroke.cpp +++ b/src/lib/sw_engine/tvgSwStroke.cpp @@ -780,7 +780,7 @@ static void _exportBorderOutline(const SwStroke& stroke, SwOutline* outline, uin auto src = border->tags; auto tags = outline->types + outline->ptsCnt; auto cntrs = outline->cntrs + outline->cntrsCnt; - uint16_t idx = outline->ptsCnt; + auto idx = outline->ptsCnt; while (cnt > 0) { @@ -921,7 +921,7 @@ SwOutline* strokeExportOutline(SwStroke* stroke, SwMpool* mpool, unsigned tid) outline->reservedPtsCnt = ptsCnt; } if (outline->reservedCntrsCnt < cntrsCnt) { - outline->cntrs = static_cast(realloc(outline->cntrs, sizeof(uint16_t) * cntrsCnt)); + outline->cntrs = static_cast(realloc(outline->cntrs, sizeof(uint32_t) * cntrsCnt)); outline->reservedCntrsCnt = cntrsCnt; } -- 2.7.4 From 2d249a6a9267cb8e876a74c77bee838e30932ce5 Mon Sep 17 00:00:00 2001 From: mgrudzinska Date: Sun, 3 Apr 2022 22:32:26 +0200 Subject: [PATCH 03/16] svg_loader: fixing segf when passing a nullptr to strcmp This occurred when a gradient has no 'id' attribute. Change-Id: I8b4204a657e4ea6fd298bcbfd244a09a46f05d11 --- src/loaders/svg/tvgSvgLoader.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index 674fbb9..cb056c4 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -2872,7 +2872,7 @@ static SvgStyleGradient* _gradientDup(Array* gradients, const auto gradList = gradients->data; for (uint32_t i = 0; i < gradients->count; ++i) { - if (!strcmp((*gradList)->id, id)) { + if ((*gradList)->id && !strcmp((*gradList)->id, id)) { result = _cloneGradient(*gradList); break; } @@ -2882,7 +2882,7 @@ static SvgStyleGradient* _gradientDup(Array* gradients, const if (result && result->ref) { gradList = gradients->data; for (uint32_t i = 0; i < gradients->count; ++i) { - if (!strcmp((*gradList)->id, result->ref)) { + if ((*gradList)->id && !strcmp((*gradList)->id, result->ref)) { if (result->stops.count == 0) _cloneGradStops(result->stops, (*gradList)->stops); //TODO: Properly inherit other property break; -- 2.7.4 From fd1b1d8463f579370ae682b7599d16d02d98410d Mon Sep 17 00:00:00 2001 From: mgrudzinska Date: Mon, 4 Apr 2022 00:02:43 +0200 Subject: [PATCH 04/16] svg_loader: fixing color parsing Color given in percentages, ex."rgb(10%,20%,30%)", was incorrectly parsed. Change-Id: I0f81796c2b4e548564a5cb6ea1d374f706112245 --- src/loaders/svg/tvgSvgLoader.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index cb056c4..9843ea7 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -337,7 +337,10 @@ static unsigned char _parserColor(const char* value, char** end) r = svgUtilStrtof(value, end); *end = _skipSpace(*end, nullptr); - if (**end == '%') r = 255 * r / 100; + if (**end == '%') { + r = 255 * r / 100; + (*end)++; + } *end = _skipSpace(*end, nullptr); if (r < 0 || r > 255) { -- 2.7.4 From a19784f3f70f093e22f266db82c8c6f3fc50bca2 Mon Sep 17 00:00:00 2001 From: mgrudzinska Date: Sun, 3 Apr 2022 23:33:35 +0200 Subject: [PATCH 05/16] svg_loader: clearing the parser stop flags Change-Id: I60a2969df2b7105309d58751c1b4f80f34ca7f1d --- src/loaders/svg/tvgSvgLoader.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index 9843ea7..9013529 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -2732,6 +2732,7 @@ static void _svgLoaderParserXmlOpen(SvgLoaderData* loader, const char* content, } /* default value for opacity */ loader->svgParse->gradStop = {0.0f, 0, 0, 0, 255}; + loader->svgParse->flags = SvgStopStyleFlags::StopDefault; simpleXmlParseAttributes(attrs, attrsLength, _attrParseStops, loader); loader->latestGradient->stops.push(loader->svgParse->gradStop); } else if (!isIgnoreUnsupportedLogElements(tagName)) { -- 2.7.4 From 1680a521036bb45649df1e81e2dd2e9e764f3d21 Mon Sep 17 00:00:00 2001 From: projectitis Date: Wed, 6 Apr 2022 19:21:43 +1200 Subject: [PATCH 06/16] Updated branding Change-Id: I8e56322864b0085aa49dd52eb7e0941d4d82a103 --- README.md | 22 +++++++++++++++++++--- logo/256/thorvg-banner-clear.png | Bin 0 -> 6586 bytes logo/256/thorvg-banner-reverse-clear.png | Bin 0 -> 7070 bytes logo/256/thorvg-banner-reverse.png | Bin 0 -> 8013 bytes logo/256/thorvg-banner.png | Bin 0 -> 8438 bytes logo/256/thorvg-icon-clear.png | Bin 0 -> 3535 bytes logo/256/thorvg-icon-reverse-clear.png | Bin 0 -> 3718 bytes logo/256/thorvg-icon-reverse.png | Bin 0 -> 3884 bytes logo/256/thorvg-icon.png | Bin 0 -> 4150 bytes logo/256/thorvg-logo-clear.png | Bin 0 -> 5220 bytes logo/256/thorvg-logo-reverse-clear.png | Bin 0 -> 5603 bytes logo/256/thorvg-logo-reverse.png | Bin 0 -> 6425 bytes logo/256/thorvg-logo.png | Bin 0 -> 6637 bytes logo/512/thorvg-banner-clear.png | Bin 0 -> 12190 bytes logo/512/thorvg-banner-reverse-clear.png | Bin 0 -> 13173 bytes logo/512/thorvg-banner-reverse.png | Bin 0 -> 15091 bytes logo/512/thorvg-banner.png | Bin 0 -> 16171 bytes logo/512/thorvg-icon-clear.png | Bin 0 -> 5593 bytes logo/512/thorvg-icon-reverse-clear.png | Bin 0 -> 5902 bytes logo/512/thorvg-icon-reverse.png | Bin 0 -> 6192 bytes logo/512/thorvg-icon.png | Bin 0 -> 6854 bytes logo/512/thorvg-logo-clear.png | Bin 0 -> 9033 bytes logo/512/thorvg-logo-reverse-clear.png | Bin 0 -> 9818 bytes logo/512/thorvg-logo-reverse.png | Bin 0 -> 11169 bytes logo/512/thorvg-logo.png | Bin 0 -> 11660 bytes logo/thorvg-banner-clear.svg | 19 +++++++++++++++++++ logo/thorvg-banner-reverse-clear.svg | 19 +++++++++++++++++++ logo/thorvg-banner-reverse.svg | 22 ++++++++++++++++++++++ logo/thorvg-banner.svg | 22 ++++++++++++++++++++++ logo/thorvg-icon-clear.svg | 9 +++++++++ logo/thorvg-icon-reverse-clear.svg | 9 +++++++++ logo/thorvg-icon-reverse.svg | 10 ++++++++++ logo/thorvg-icon.svg | 10 ++++++++++ logo/thorvg-logo-clear.svg | 19 +++++++++++++++++++ logo/thorvg-logo-reverse-clear.svg | 19 +++++++++++++++++++ logo/thorvg-logo-reverse.svg | 20 ++++++++++++++++++++ logo/thorvg-logo.svg | 20 ++++++++++++++++++++ 37 files changed, 217 insertions(+), 3 deletions(-) create mode 100644 logo/256/thorvg-banner-clear.png create mode 100644 logo/256/thorvg-banner-reverse-clear.png create mode 100644 logo/256/thorvg-banner-reverse.png create mode 100644 logo/256/thorvg-banner.png create mode 100644 logo/256/thorvg-icon-clear.png create mode 100644 logo/256/thorvg-icon-reverse-clear.png create mode 100644 logo/256/thorvg-icon-reverse.png create mode 100644 logo/256/thorvg-icon.png create mode 100644 logo/256/thorvg-logo-clear.png create mode 100644 logo/256/thorvg-logo-reverse-clear.png create mode 100644 logo/256/thorvg-logo-reverse.png create mode 100644 logo/256/thorvg-logo.png create mode 100644 logo/512/thorvg-banner-clear.png create mode 100644 logo/512/thorvg-banner-reverse-clear.png create mode 100644 logo/512/thorvg-banner-reverse.png create mode 100644 logo/512/thorvg-banner.png create mode 100644 logo/512/thorvg-icon-clear.png create mode 100644 logo/512/thorvg-icon-reverse-clear.png create mode 100644 logo/512/thorvg-icon-reverse.png create mode 100644 logo/512/thorvg-icon.png create mode 100644 logo/512/thorvg-logo-clear.png create mode 100644 logo/512/thorvg-logo-reverse-clear.png create mode 100644 logo/512/thorvg-logo-reverse.png create mode 100644 logo/512/thorvg-logo.png create mode 100644 logo/thorvg-banner-clear.svg create mode 100644 logo/thorvg-banner-reverse-clear.svg create mode 100644 logo/thorvg-banner-reverse.svg create mode 100644 logo/thorvg-banner.svg create mode 100644 logo/thorvg-icon-clear.svg create mode 100644 logo/thorvg-icon-reverse-clear.svg create mode 100644 logo/thorvg-icon-reverse.svg create mode 100644 logo/thorvg-icon.svg create mode 100644 logo/thorvg-logo-clear.svg create mode 100644 logo/thorvg-logo-reverse-clear.svg create mode 100644 logo/thorvg-logo-reverse.svg create mode 100644 logo/thorvg-logo.svg diff --git a/README.md b/README.md index 57eff7e..92b268c 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,7 @@ # ThorVG -

- -

+![ThorVG logo](/logo/256/thorvg-logo.png?raw=true "ThorVG") ThorVG is a platform-independent portable library for drawing vector-based scenes and animation. It's open-source software that is freely used by a variety of software platforms and applications. ThorVG provides neat and easy APIs. Its library has no dependencies and keeps a super compact size. It serves as the vector graphics engine for Tizen OS that powers many products.

@@ -54,6 +52,7 @@ ThorVG has the threading mechanism so that it tries to acquire the next scenes w - [API Bindings](#api-bindings) - [Dependencies](#dependencies) - [Issues or Feature Requests](#issues-or-feature-requests) +- [Branding](#branding) [](#contents)
@@ -358,3 +357,20 @@ The ThorVG core has no dependencies. However, ThorVG has optional feature extens
## Issues or Feature Requests For support, please reach us in [Gitter](https://gitter.im/thorvg/community). + +[Back to contents](#contents) +
+
+## Branding +Various versions of the logo are available in the [logo](/logo/) folder. +Please feel free to use these logos when referencing or linking to ThorVG. +Using the logo without cropping (to maintain breathing space) is preferred. + +### Logo +![ThorVG logo](/logo/256/thorvg-logo.png?raw=true "ThorVG" | height=50) + +### Icon +![ThorVG icon](/logo/256/thorvg-icon.png?raw=true "ThorVG" | height=50) + +### Banner +![ThorVG banner](/logo/256/thorvg-banner.png?raw=true "ThorVG" | height=50) diff --git a/logo/256/thorvg-banner-clear.png b/logo/256/thorvg-banner-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..bb510e325569ae6abd85e38f7678532fe0d42668 GIT binary patch literal 6586 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 literal 0 HcmV?d00001 diff --git a/logo/256/thorvg-icon-clear.png b/logo/256/thorvg-icon-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..51078b3df9bb2a20f477cfab1595cc808a2a1875 GIT binary patch literal 3535 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 Q{z<%#4|1Tq;SHLX<9~v~q2W zVzEM{BDxT{Zd)pEQj-)#h47xC?eez!zJI(spO2Z}?|h%<``n-NvCqZHdV##AJOBU- zY;7!P0DwY{C_qjM`Ds@&H2?rF9_M z4p#_9P%tyRAaa&G#$(VkB5*JTXR~ZqhMGt z%m?xK@bGY4I0?rS1mX>hjg9dHBA!UZA`)0(Bp0SfV7bB-5{g+43rNTiu=y~X$3;sx z>HfShn1aC|IQkPglku6GA12_;Ff$o=hy#T{Tv&)Vz!~7bmWLwPU%cT8Kcx#v9A1JT z;)HL+VRpdZh)a;~#Q7{9%oDPB{LfB(W8yRXog$L%zgCH$^Z!cN(eb~FhlG3+h7h(C zA&L7`gl~NM(}2)Dk`Li&kdPN9U_h24Bzr4n5+}(E=)#VGI9?WPB&kBA8WarCko+I0 z_urxBJPuFbhO{9>!5GXaNpc6;hR_2cPc{=~ePR0oI6&OM?+}T1oG?i{cyQTBJj5?- zUSBW@#)ydj%8>V8LZ52^&iLoZV^bLq0fiS~7BaO@tlMd7Wm%L;O z&?Za<2(w`hG;^Ds3MvPlz0F=ZY{@8q96C3Uf{DN~p#XXq2gYoGSv-L#5X)xpxL5%s zf&@ay1TUE)4*L_?%Fz801l@MAZj4eT@(y8Ab^e3F%pf;IXjRG3DC&25^#p!DuuHk zNx%JVUh!W?^QU(v`0xCm4gRZ@g6PdYLsk{C^YEXS9&-7-HX$yuD+S0>4DM%Pk;S{4 zjkLsftpEVJ2g455*w3LVCDhi}f7q+bqSKXEZq~_BjwP!r`(~@#&dnv?e5%tI`oPkH zBfW)6Eg$xH?weighm}jj?9KPm|AV#enaXl%6OQzDkQW}`<6RO@vfETSYEJfSja5Z; z?_gei8gbQ%A}Vb-opY9SYM5Zy_>7`XdKlHbxuRuqedd#STT%9VhW6$JN%z|JiaTS2 z-lXso(o!0JYKfy{`nY_!)4_nE4UIked50?ae6^yGYvFqjtv2V@4Ji1!FR#|3B zX}fynMQ!w_jl?x61P4q{zw>ZjIDV@$3sqvO)v#T0-EXHZKpMW*@vbKE)vGTwdAxa> zKp0s*zR6O!%xpmBgs(^W?>HaM#%H;jojE$cI5lNDT)VGVZjn7Hlc|22GSTy_4|Q$e zjYoG$rQ#*Q}j!g zcU{&v{3O-D^^9#(W~h2BHd%M?l5z_ps)OYMtBtnhC1`%GmOM6>uF+PN^P@L-C03zM zcg>nKr`^*(XlrxX?5fZw4R4>dq&uoMt)Ihrc(JOm&>EEPAAZ$SGthnB_hLlojvYSW z?OGxaMI@1|t*r9g{HS$xbrlsAM!bg~CnqZ5qxmErN<~E_dU6~pyO+1e&j7#e;_0HI zmoHwVE&SDDUmHrDsbR(AormS)TwGj+UfwHPVVzz%Vw3?zkC`RM5AwCO2rq|w@T z&yl6kXn)+lkA2VQJk&WrTVrZko11G6N?+^j=y2b*OI(BKtzK3-a^l*X|g5^P*EnxcJ7|5JvHHvYQmjC8?UAfCFA4cnwpwgr@NSw;#a zMlbiu2JC)GNm+QlyGAs)S&WwR6bRl_hYe&NKc2rQ&hK5qV^e`pxE=(%io91Wo!gsv z@}vmN%FWGfqpC9`==j9M?OV5sMpq>DbI4mFBdg#>TeC)to(hwy~ihuguS26+Q;qwg*?wt?cgV z+T`h3SWsXWc-2H|x0#hyJe(-)eHke8!FBi6CD_~BSMna=vZQyF-Q$o*q&B_&N(cF& zgu33Ls7u)S~SNF^6>+45GMndlYHrP{BnVpSZPM_-SgTaLO_?(EXEGCPkyZL=$pCb2GSow4!Qh`4>V^U375VWk;+ zWEHIjRt2#`YgAv~uf!|K)lXO3`*j`(wUCjO&0q06zqq)0P~`03U?V%vF-eLr-SBAQ z{p*1jFY?^ttWZk&>A0=L>0zbKYLB0_{2X2D3;raEz4~~c>S~8*_?)`5iyb9m$PA24 zsjjYm_3)B@mcK!@T6RT+2N+x65X~>gNnhAGL7vW{S%imI!g1H1(_%_XOA{2A*%h`b zOB0eB8mz=};P_DQo@2X|TK)Cwe>~p&?%m-11zKbqS>?K;aaC(GQ3ZvC&RL*NmQ;U^ zE9x+vO7-qpAfDdQ(V?+vB3aSj`aDuwZAuh#A7zbM(aM!8*OJMJA$CU@ z{UJAL<;M}tc>0p{qN1`gH&Cum>;>d^^!4R+4~&lOXrrPX+7WFT85z;b-$MtwuwwLq zJRYL*;hK%Cue* zvLNn`TM=uhbjl`U&AU0}(F^2P+RK(`q&B+w`YvnH7hK!!;2Lv7Bi_~BePx!EYn_TN zaS5rq$tC8-kUDhi6mW2OVzRxx9a%GmYG`6SedOIcyF#-LmzcfCBD1xgJ(ZW+%$~wT zqJ;_yHic#|BJe}}RqyuOGSXg&^B3bXKGrD8sUqjgmoLZ1%ZSxtmK3%l|Cszxyfbt7 zDz~*N19gP;Mv(kfj>-|{G+kFHfmKyikp@znE7e9Vfz=-WJo5g1 z`jI2UqXq*x!1Rl$$q5e+4@A**(V|6eZf$N6pMEDCkVPSmABP-L9^#0Lu{jrL)s&9u(gn(`P}zp^K(Q;p+An1mtOoplP+I;R^xV|OLnoGGnYKTF l&T^kx`cJ+bXSmS)Q*&ZQ>M{3{8V^Vw*jhSSoZILZ`){;t`aS>v literal 0 HcmV?d00001 diff --git a/logo/256/thorvg-icon.png b/logo/256/thorvg-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..e3a4a938c7501e50f00e23abab031ae2d8fc9a83 GIT binary patch literal 4150 zcmds4XIK;I79LoTCMBStxJrn+R+111LLeX{EO3<~MM4t;8Inkni767JG!?;uEV{BQ z;-Y{eE?`*@6)B>~sz|W}lrGH>REoHu2zL@(%XRnOKlj(pGkIpd?>*-|=R0kl?DO() z(bhE91OPzW&6Vs807~$y5}>XOKOX8im;-<+h3QKXP~6uO!XY-AN`t~cw1~}xaR9J$ z5OJyDk)Qw>2GW@vBI;FX1q#We5mEklcdR>?1TvVeVjk!t_V5iCM~2(bP!9H*b|L~y zzy<|Wq=?Pp@ChO!O2JEj-{spF6jC7~h$NyY?p{a|!~>CdG#-sb*=r*0c(e$DH~ISy z%J7PaVh99W0tOQm6@`wnKtnt_#@xon27|?6a5ytq!i>M2BcO`RIQ+$OiWv?v$Pec+ zxdJA{LCQI)VUSQjM4@0D`GK4k{*jw2E=wb zGPkj^GQ*)~EWn8)z`D$c?PRI|mcn7-dd6CsVXb`4tqFKbf`!d0a~uJSRWK{0;r^jf z1=Rl~FYf}R9W9(7U6d{PB@<2yATvbGrV?+cK&fj(<+}}((2jn5)F2$npUn)g0 zKzW`0Z9FlbpXN{R>@Z*XKXdrcMhUDpvj>kTc-CP)4m)`9aa@8Nct-NzVVEODnZW}$ zo(Y%2S0w-d%TtA^rR%CF zGD|hc(XnXQ?|JCSg3V^?`%y`!DXX3`to!v%9c$4Rqc5PSy=?&(_FDXFW62oF%D-Wk zfl|{>+Kpb(jqi!uF5W(y^{d6HVJyC;pJ-^&F1{aFT>suSy;~zhY2EIjq^vEfU2a{{ z$Gf(S9O5P(K6E>weh)D{*lWD*Q8*ZbxAE(PjudmbbMo0$g}!rZ&QaVV1E||=Ua}&b zC(2SL^y#QIMu(ftBncirXeeL#Iqcwu$=TS|?I}hk(U-EmkBMCon|8ftANdT=lVh&<;5|ap{SM;=+)rhRZI|=&Yu|ziYHT)Ju@|G&bB*KU zb7V|Y)bQ{jzrSvwZ0;tCk#)+cQ>S95Gz6!|Ngf_`N0xc!V=@vn#Xz3#z~scJ}l{A5OR+I#x@b#--v zLaj&d9RkW@r#FR!u-~Uw9fyen;Z3cV1$wdb=Fflf8@>M4tvzFUt9>_Z+Js77zGB72 zMTb2klWOZg5R8qD_3$_(2XV)C4t2(l?Vq5;YK`hHv^AX$uy+2P~cFvrKRPq?%@-* zQGvQQCfl!X4=0+Q$e&%gHDhFCL}b_A))wOHODj{As@TO1zMJ2vYhYl|#kHQJ8Q_pQ zURqVe^F%z(^7_luN@MJHDV{)McY9P!T;oWNMszJM7{g zuR2nalcOg_s>O(m^Pv@-<_kB()g1*zz!VmbKkB-~K4$Xgqp=13*05)Id~!<4yOGnV z)TD~(9agrswl+2sZ^vXcDJB&=Cq^m?Pm@s_0s{xSyWcVr)GjFhn3fhZIo|jarZ~sw zS*~Yh*v00y(x^;_*z$~&QdfPYgUQL-+S&o%Ofmn>)G~SbbE>2tC+d)*`O9TcWI<;8a~*Em_qAU#(?3 z)^sL{Rm2%7IwtlkqT_~;kT%#zfqzc6KA^@5&=|kbxKim`+ieFOaxFIm1w|4~7aj%n z@87SpkU%SQLMW+JOCRPIEL(o=>{;~@jLH&D!uZl->o@xQ%Zp6c+~9eT{z3IEIAE zd1XwG@<1CF8Iv`+WH+wzFQn+k&zAz<*4(*sM>;StAd_|1e}~Ug8@iY0lM9c5rp87@ zPwB=BbJROyC50g^?d|q?`8Y_V)uUa338Jc3E{I7Ah9AeDJqxoxvty|#00lP{ zoI7`ElTwFX99=PLIu|Gp^gZ#i>5?tG#t-p>5p>TY8zYeJ7`3_EPK%y6u!T0f zoZQ?Ru_}%X*k2J1hd~e~YG1@+FXqtPW>?UZSC$L)3k=?&l#bip-c3) z4?jy7Gpy;_m{egJ*E`g8Gm&9we4sk!#3hFCk*-p$GcfDSnKSzPZYihCXK&eJY+~|9 z?^cb?Xr0?QJUUnc*%@8;}5E_B+w>)-h4Y`*{i literal 0 HcmV?d00001 diff --git a/logo/256/thorvg-logo-clear.png b/logo/256/thorvg-logo-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..13ed3aba9ffca4573d10c14827b58176cce22a6b GIT binary patch literal 5220 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 NG`GRt-sN@le*iX$p=|&F literal 0 HcmV?d00001 diff --git a/logo/256/thorvg-logo-reverse-clear.png b/logo/256/thorvg-logo-reverse-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..559934faaf51916d4acf6ab5364d0e522df41efd GIT binary patch literal 5603 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 Q|C@EPcOzcj9K7d$04Tv|?*IS* literal 0 HcmV?d00001 diff --git a/logo/256/thorvg-logo-reverse.png b/logo/256/thorvg-logo-reverse.png new file mode 100644 index 0000000000000000000000000000000000000000..8adbfbada1ae062e191939fc307cfdb84b588963 GIT binary patch literal 6425 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 ItJ#JA57MIWg#Z8m literal 0 HcmV?d00001 diff --git a/logo/256/thorvg-logo.png b/logo/256/thorvg-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..2c496a8de691486fb4d36d8c0a3b0fdb73838ae6 GIT binary patch literal 6637 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 literal 0 HcmV?d00001 diff --git a/logo/512/thorvg-banner-clear.png b/logo/512/thorvg-banner-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..a3c8f7e8a2be03540b5066ea92e28a6b546eb495 GIT binary patch literal 12190 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 literal 0 HcmV?d00001 diff --git a/logo/512/thorvg-banner-reverse.png b/logo/512/thorvg-banner-reverse.png new file mode 100644 index 0000000000000000000000000000000000000000..e22a8e6c6f78cba0ddb9c863339e09faef515b74 GIT binary patch literal 15091 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 literal 0 HcmV?d00001 diff --git a/logo/512/thorvg-banner.png b/logo/512/thorvg-banner.png new file mode 100644 index 0000000000000000000000000000000000000000..166468bed3a90d89cb93567305c758629bd3e6aa GIT binary patch literal 16171 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 I96s^C02Nx92><{9 literal 0 HcmV?d00001 diff --git a/logo/512/thorvg-icon-clear.png b/logo/512/thorvg-icon-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..02f00f4bf3f5bf67b43f70339f3a97043439c933 GIT binary patch literal 5593 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:a(-e4F141Em0QSs`tIi@?1?#&5-W& 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 literal 0 HcmV?d00001 diff --git a/logo/512/thorvg-icon.png b/logo/512/thorvg-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..4b2cb62eebae5829e90b7b7653226a0690d329f0 GIT binary patch literal 6854 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 literal 0 HcmV?d00001 diff --git a/logo/512/thorvg-logo-clear.png b/logo/512/thorvg-logo-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..0bea553f4b535d14ad879af2b0b99250d19e348b GIT binary patch literal 9033 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 F{|^wLIGF$d literal 0 HcmV?d00001 diff --git a/logo/512/thorvg-logo-reverse-clear.png b/logo/512/thorvg-logo-reverse-clear.png new file mode 100644 index 0000000000000000000000000000000000000000..fff8e4bbd6728297e60f3bc0fcedd35d123378cb GIT binary patch literal 9818 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 jfhj! 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

9k!GT~;=M&o`(gLP3d*HLaGVK~bfOD=%L0czu zzIzno2-pBvpvhXWB&k|YlYzQHOY8cZm!=l?N2(dE?@7-=G6c_Z@bdPKfK#sKo~=AR zkaw76eWxCl%w80Wqmvqhasg89kDikJn=g0m**~|kQaH^04nTQhW21q&435P*YYU>` zv=U^{neHMz{6WQ|&wKG-R`Pf^LH`(@)=zH@h7-TI%|73$juRVSfY|W*CA~_&S}2rb zdg{`ehjxhU!7w95{o6j1?Gt!(fE`E_Qod8>0d|g!59fQlKYwHng7Y=6G3`7`kR|}6 z&zJdbjV9n!9WR3_fZ`MsoQCv!TiP_uuqpA>D(m)IM9HoQTGrE`p#)Ig=j7w!sy>}W zUgj~Ntf^TCbRytQ;W|XgNe~iZ<=cCEgMl`{NugA5-90`d(_E{Gsi~72$y!=kuWC&* z0SnxAR9SN{)+3{qkZMR}dftP#MVmF}H4oLXKW$Uh$OB9?5_Odj$oBW>-f2q$F0_P!l8AMUAXB z(!@!@E00W8o|%e0zTS=?yLCzb7a$85U-GJKmDi3?^D3&({1&UiaaPvQ*@m^XHGnfF ziznYAA!UX@*v!6Jj9G4Z>kCo_mu0bst)*rBII0Ft47Y&jCN5X7Z+z|e;21Ahadj}sczTkN?y(0fvUBsr^Guafl^A5OtA!nqP~DJmWK4&JR%U< zieKxKMDFeDk&(B{kpV|LG*5sBXCSKyGM>b#h9O9qtUz~t7L$MIBXIoE0!R*q zus9*!1$yH$SfwyYHWW@c=#C!c!)06MJdwsdfrBF-j;BBas*<3k8L$fAsdK8N9nLE* zEj4RgzI=J5aCC#Hb^|0}ejN5Lw+@j=%ub**xkirsGPJTfMn^~D7~nyWLh^sm80+iL zwV7G_Om%p|5rBywO8acQ1RoENMqkH+3xOZAWsOcyQy}9&6`4<8Dt_?-clPW}E~ALJ zNmwnEC{Q(T!2zfHXYKMNw2uqqfrXmq#?RsGtH7!GUFjVg9~7cr0f)fNDH?v`Uj|zB z6nZN|E5mNx1ciabSXZVx0qzda(gLr2W!T978V*C?7(KuahzW{?#jRH^4}D|wd6*&; zRbHmLpJAYA-`H|We!2;RX|b}+r!Pn!-~e&-7|y3@YkUB zh|zd{gLC?+ISbbw6*9!Z+uPd}K>5J~Ge9SKIXMsz^eaPx@1OC3nh_8gPLiV4y}>IX m#muiz{#&;Czxr3PU@5eyBJ=XLQ;ryE546;DRdbbXuKW*hl6`mp literal 0 HcmV?d00001 diff --git a/logo/512/thorvg-logo.png b/logo/512/thorvg-logo.png new file mode 100644 index 0000000000000000000000000000000000000000..41cf3afcdc0b0b1b57ad3e5b66488fd18db8381f GIT binary patch literal 11660 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 + + + + + + + + + + + + + + + + + + diff --git a/logo/thorvg-banner-reverse-clear.svg b/logo/thorvg-banner-reverse-clear.svg new file mode 100644 index 0000000..913046c --- /dev/null +++ b/logo/thorvg-banner-reverse-clear.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/logo/thorvg-banner-reverse.svg b/logo/thorvg-banner-reverse.svg new file mode 100644 index 0000000..44537c0 --- /dev/null +++ b/logo/thorvg-banner-reverse.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/thorvg-banner.svg b/logo/thorvg-banner.svg new file mode 100644 index 0000000..515cb1e --- /dev/null +++ b/logo/thorvg-banner.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/logo/thorvg-icon-clear.svg b/logo/thorvg-icon-clear.svg new file mode 100644 index 0000000..20b3e2b --- /dev/null +++ b/logo/thorvg-icon-clear.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/logo/thorvg-icon-reverse-clear.svg b/logo/thorvg-icon-reverse-clear.svg new file mode 100644 index 0000000..c4eddbe --- /dev/null +++ b/logo/thorvg-icon-reverse-clear.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/logo/thorvg-icon-reverse.svg b/logo/thorvg-icon-reverse.svg new file mode 100644 index 0000000..5123f52 --- /dev/null +++ b/logo/thorvg-icon-reverse.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/logo/thorvg-icon.svg b/logo/thorvg-icon.svg new file mode 100644 index 0000000..483f88d --- /dev/null +++ b/logo/thorvg-icon.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/logo/thorvg-logo-clear.svg b/logo/thorvg-logo-clear.svg new file mode 100644 index 0000000..a59088b --- /dev/null +++ b/logo/thorvg-logo-clear.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/logo/thorvg-logo-reverse-clear.svg b/logo/thorvg-logo-reverse-clear.svg new file mode 100644 index 0000000..15430f9 --- /dev/null +++ b/logo/thorvg-logo-reverse-clear.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/logo/thorvg-logo-reverse.svg b/logo/thorvg-logo-reverse.svg new file mode 100644 index 0000000..8332cf5 --- /dev/null +++ b/logo/thorvg-logo-reverse.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/logo/thorvg-logo.svg b/logo/thorvg-logo.svg new file mode 100644 index 0000000..236cf42 --- /dev/null +++ b/logo/thorvg-logo.svg @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + -- 2.7.4 From 94351a6a105abbaad73ec5e4b4d10f7f09d874b2 Mon Sep 17 00:00:00 2001 From: projectitis Date: Wed, 6 Apr 2022 19:24:04 +1200 Subject: [PATCH 07/16] Fix readme Change-Id: I5886887965217cd3478dbcac42e354f55607f27f --- README.md | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 92b268c..eb7722a 100644 --- a/README.md +++ b/README.md @@ -362,15 +362,13 @@ For support, please reach us in [Gitter](https://gitter.im/thorvg/community).

## Branding -Various versions of the logo are available in the [logo](/logo/) folder. -Please feel free to use these logos when referencing or linking to ThorVG. -Using the logo without cropping (to maintain breathing space) is preferred. +Various versions of the logo are available in the [logo](/logo/) folder. Please feel free to use these logos when referencing or linking to ThorVG. Using the logo without cropping (to maintain breathing space) is preferred. Examples: ### Logo -![ThorVG logo](/logo/256/thorvg-logo.png?raw=true "ThorVG" | height=50) +![ThorVG logo](/logo/256/thorvg-logo.png?raw=true "ThorVG") ![ThorVG logo](/logo/256/thorvg-logo-reverse.png?raw=true "ThorVG") ### Icon -![ThorVG icon](/logo/256/thorvg-icon.png?raw=true "ThorVG" | height=50) +![ThorVG icon](/logo/256/thorvg-icon.png?raw=true "ThorVG") ![ThorVG icon](/logo/256/thorvg-icon-reverse.png?raw=true "ThorVG") ### Banner -![ThorVG banner](/logo/256/thorvg-banner.png?raw=true "ThorVG" | height=50) +![ThorVG banner](/logo/256/thorvg-banner.png?raw=true "ThorVG") ![ThorVG banner](/logo/256/thorvg-banner-reverse.png?raw=true "ThorVG") -- 2.7.4 From 406647f087e055f32aedbf92fb045c7f14ed40d9 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Thu, 7 Apr 2022 23:04:44 +0900 Subject: [PATCH 08/16] Update README.md Change-Id: I1ff83a0d72fa00dc9129ca65f381fc9025a3f450 --- README.md | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/README.md b/README.md index eb7722a..730bf4c 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ [![Build Windows](https://github.com/Samsung/thorvg/actions/workflows/build_win.yml/badge.svg?branch=master&event=push)](https://github.com/Samsung/thorvg/actions/workflows/build_win.yml) # ThorVG - -![ThorVG logo](/logo/256/thorvg-logo.png?raw=true "ThorVG") - +

+ +

ThorVG is a platform-independent portable library for drawing vector-based scenes and animation. It's open-source software that is freely used by a variety of software platforms and applications. ThorVG provides neat and easy APIs. Its library has no dependencies and keeps a super compact size. It serves as the vector graphics engine for Tizen OS that powers many products.

The following list shows primitives that are supported by ThorVG:
@@ -52,7 +52,6 @@ ThorVG has the threading mechanism so that it tries to acquire the next scenes w - [API Bindings](#api-bindings) - [Dependencies](#dependencies) - [Issues or Feature Requests](#issues-or-feature-requests) -- [Branding](#branding) [](#contents)
@@ -357,18 +356,3 @@ The ThorVG core has no dependencies. However, ThorVG has optional feature extens
## Issues or Feature Requests For support, please reach us in [Gitter](https://gitter.im/thorvg/community). - -[Back to contents](#contents) -
-
-## Branding -Various versions of the logo are available in the [logo](/logo/) folder. Please feel free to use these logos when referencing or linking to ThorVG. Using the logo without cropping (to maintain breathing space) is preferred. Examples: - -### Logo -![ThorVG logo](/logo/256/thorvg-logo.png?raw=true "ThorVG") ![ThorVG logo](/logo/256/thorvg-logo-reverse.png?raw=true "ThorVG") - -### Icon -![ThorVG icon](/logo/256/thorvg-icon.png?raw=true "ThorVG") ![ThorVG icon](/logo/256/thorvg-icon-reverse.png?raw=true "ThorVG") - -### Banner -![ThorVG banner](/logo/256/thorvg-banner.png?raw=true "ThorVG") ![ThorVG banner](/logo/256/thorvg-banner-reverse.png?raw=true "ThorVG") -- 2.7.4 From f978e10e82083e60f5545c73fb98815f70251084 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Wed, 4 May 2022 10:23:20 +0900 Subject: [PATCH 09/16] svg_loader: Fix invaild '<' nested check When Type is DOCTYPE, Child Entities start with '<'. This condition is valid when general Elements (svg, g, path etc) are used. Add a Doctype check to if condition. (There can be various cases related to '<' nested case. But for now, I only add Doctype considering the side effect.) Change-Id: I205a900ac4765d6017f6ddc68c52907e932ce333 --- src/loaders/svg/tvgXmlParser.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/loaders/svg/tvgXmlParser.cpp b/src/loaders/svg/tvgXmlParser.cpp index a12689c..cee97af 100644 --- a/src/loaders/svg/tvgXmlParser.cpp +++ b/src/loaders/svg/tvgXmlParser.cpp @@ -388,7 +388,7 @@ bool simpleXmlParse(const char* buf, unsigned bufLength, bool strip, simpleXMLCb if (p) { //Invalid case: '<' nested - if (*p == '<') return false; + if (*p == '<' && type != SimpleXMLType::Doctype) return false; const char *start, *end; start = itr + 1 + toff; -- 2.7.4 From 1efc48eb518a41f183e31c28530e91a9c8e17e50 Mon Sep 17 00:00:00 2001 From: JunsuChoi Date: Fri, 6 May 2022 09:53:00 +0900 Subject: [PATCH 10/16] svg2png: Add more error message types Add a message according to the returned Result type. Change-Id: Ic456f871c48970a7c480e85efa33a219a44ad908 --- src/bin/svg2png/svg2png.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/bin/svg2png/svg2png.cpp b/src/bin/svg2png/svg2png.cpp index 5a2d344..849ed47 100644 --- a/src/bin/svg2png/svg2png.cpp +++ b/src/bin/svg2png/svg2png.cpp @@ -69,9 +69,16 @@ public: //Picture auto picture = tvg::Picture::gen(); - if (picture->load(path) != tvg::Result::Success) { + tvg::Result result = picture->load(path); + if (result == tvg::Result::Unknown) { cout << "Error: Couldn't load image " << path << endl; return 1; + } else if (result == tvg::Result::InvalidArguments) { + cout << "Error: Couldn't load image(Invalid path or invalid SVG image) : " << path << endl; + return 1; + } else if (result == tvg::Result::NonSupport) { + cout << "Error: Couldn't load image(Not supported extension) : " << path << endl; + return 1; } if (w == 0 || h == 0) { -- 2.7.4 From 41b9094de834fbe360245b88557c52afd83af51c Mon Sep 17 00:00:00 2001 From: jykeon Date: Tue, 7 Mar 2023 11:09:28 +0900 Subject: [PATCH 11/16] Bump up 0.8.1 Change-Id: I300e33fe476248deb6055d3c9057e203343d278e Signed-off-by: jykeon --- packaging/thorvg.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packaging/thorvg.spec b/packaging/thorvg.spec index 760f3d1..5e88a02 100644 --- a/packaging/thorvg.spec +++ b/packaging/thorvg.spec @@ -1,6 +1,6 @@ Name: thorvg Summary: Thor Vector Graphics Library -Version: 0.8.0 +Version: 0.8.1 Release: 1 Group: Graphics System/Rendering Engine License: MIT -- 2.7.4 From bb02880cdd3132fd3e97e34b053fcc9953892c27 Mon Sep 17 00:00:00 2001 From: mundusnine Date: Thu, 12 May 2022 12:28:21 -0400 Subject: [PATCH 12/16] Fix on FreeBSD Fix compile errors on FreeBSD. - alloca is defined in stdlib.h on [freeBSD](https://www.freebsd.org/cgi/man.cgi?alloca) Issue in [godot](https://cirrus-ci.com/task/5485473287110656?logs=build#L657) Change-Id: I074c7cfedb798f4d033e562309498f1b701860be --- src/loaders/svg/tvgXmlParser.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/loaders/svg/tvgXmlParser.cpp b/src/loaders/svg/tvgXmlParser.cpp index cee97af..c373da2 100644 --- a/src/loaders/svg/tvgXmlParser.cpp +++ b/src/loaders/svg/tvgXmlParser.cpp @@ -26,6 +26,8 @@ #ifdef _WIN32 #include +#elif __FreeBSD__ + #include #else #include #endif -- 2.7.4 From 99d425f0389c5998b59d44652cbcb78ad75f44fd Mon Sep 17 00:00:00 2001 From: Peter Vullings Date: Sat, 14 May 2022 03:17:30 +1200 Subject: [PATCH 13/16] Improve support for clang-cl on windows * Better support for clang-cl on windows * Fix runtime error caused by removing unwind tables Change-Id: If794b2d1db46c1353bc3b9c391656ff6fa0c6c32 --- src/meson.build | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/src/meson.build b/src/meson.build index 26aba33..a2d4d23 100644 --- a/src/meson.build +++ b/src/meson.build @@ -1,7 +1,19 @@ compiler_flags = ['-DTVG_BUILD'] - +override_options = [] cc = meson.get_compiler('cpp') -if (cc.get_id() != 'msvc') +if (cc.get_id() == 'clang-cl') + if simd_type == 'avx' + compiler_flags += ['/clang:-mavx'] + endif + if simd_type == 'neon' + compiler_flags += ['/clang:-mfpu=neon'] + endif + if get_option('b_sanitize') == 'none' + override_options += ['cpp_eh=none','cpp_rtti=false'] + compiler_flags += ['/clang:-fno-math-errno', + '/clang:-Woverloaded-virtual', '/clang:-Wno-unused-value', '-Wno-deprecated-declarations'] + endif +elif (cc.get_id() != 'msvc') if simd_type == 'avx' compiler_flags += ['-mavx'] endif @@ -36,6 +48,7 @@ thorvg_lib = library( install : true, cpp_args : compiler_flags, gnu_symbol_visibility : 'hidden', + override_options : override_options ) thorvg_dep = declare_dependency( -- 2.7.4 From 1277c105a33638e443e5d1bb00632890e94848c3 Mon Sep 17 00:00:00 2001 From: Hermet Park Date: Tue, 17 May 2022 21:54:40 +0900 Subject: [PATCH 14/16] fix FreeBSD compile issue. alloca is defined in stdlib.h on [freeBSD](https://www.freebsd.org/cgi/man.cgi?alloca) additional fix to 75c1314ab0297f59cc26b7876d7b60e751d4d85c Change-Id: I45f281d100a6daaa911752a9d709da0e504b505d --- src/lib/sw_engine/tvgSwRaster.cpp | 9 +++++++++ src/loaders/tvg/tvgTvgBinInterpreter.cpp | 2 ++ src/savers/tvg/tvgTvgSaver.cpp | 2 ++ 3 files changed, 13 insertions(+) diff --git a/src/lib/sw_engine/tvgSwRaster.cpp b/src/lib/sw_engine/tvgSwRaster.cpp index e3deebe..bf1c10a 100644 --- a/src/lib/sw_engine/tvgSwRaster.cpp +++ b/src/lib/sw_engine/tvgSwRaster.cpp @@ -19,6 +19,15 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ + +#ifdef _WIN32 + #include +#elif __FreeBSD__ + #include +#else + #include +#endif + #include "tvgMath.h" #include "tvgRender.h" #include "tvgSwCommon.h" diff --git a/src/loaders/tvg/tvgTvgBinInterpreter.cpp b/src/loaders/tvg/tvgTvgBinInterpreter.cpp index 2b85342..62a75ec 100644 --- a/src/loaders/tvg/tvgTvgBinInterpreter.cpp +++ b/src/loaders/tvg/tvgTvgBinInterpreter.cpp @@ -23,6 +23,8 @@ #ifdef _WIN32 #include +#elif __FreeBSD__ + #include #else #include #endif diff --git a/src/savers/tvg/tvgTvgSaver.cpp b/src/savers/tvg/tvgTvgSaver.cpp index aa54d21..adf8583 100644 --- a/src/savers/tvg/tvgTvgSaver.cpp +++ b/src/savers/tvg/tvgTvgSaver.cpp @@ -28,6 +28,8 @@ #ifdef _WIN32 #include +#elif __FreeBSD__ + #include #else #include #endif -- 2.7.4 From 6a4c9edb7bf37763ca1fec030f8a2bbd0feaf066 Mon Sep 17 00:00:00 2001 From: Martin Liska Date: Mon, 23 May 2022 12:11:23 +0200 Subject: [PATCH 15/16] Fix building with GCC 13. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Fixes the following error: ../src/lib/tvgLzw.h:27:5: error: ‘uint8_t’ does not name a type Change-Id: Ibfc07d633be35634d0662b866c291781c2e7bf6a --- src/lib/tvgLzw.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/lib/tvgLzw.h b/src/lib/tvgLzw.h index 1bd5c61..8e165bd 100644 --- a/src/lib/tvgLzw.h +++ b/src/lib/tvgLzw.h @@ -22,10 +22,12 @@ #ifndef _TVG_LZW_H_ #define _TVG_LZW_H_ +#include + namespace tvg { uint8_t* lzwEncode(const uint8_t* uncompressed, uint32_t uncompressedSizeBytes, uint32_t* compressedSizeBytes, uint32_t* compressedSizeBits); uint8_t* lzwDecode(const uint8_t* compressed, uint32_t compressedSizeBytes, uint32_t compressedSizeBits, uint32_t uncompressedSizeBytes); } -#endif //_TVG_LZW_H \ No newline at end of file +#endif //_TVG_LZW_H -- 2.7.4 From 80bdbf4ebb5e4ba5ec83dbb52bee27ae1b5b8d86 Mon Sep 17 00:00:00 2001 From: =?utf8?q?R=C3=A9mi=20Verschelde?= Date: Mon, 23 May 2022 19:30:42 +0200 Subject: [PATCH 16/16] Cleanup FreeBSD preprocessor checks (if vs ifdef) Should be equivalent but checking if the value is defined (`#ifdef`) is cleaner than checking if it is set to something different from 0 (`#if`). Change-Id: Ia6ae21fdf9f211ebd9ca1199e77794077c5ac23e --- src/lib/sw_engine/tvgSwRaster.cpp | 4 ++-- src/loaders/svg/tvgXmlParser.cpp | 4 ++-- src/loaders/tvg/tvgTvgBinInterpreter.cpp | 4 ++-- src/savers/tvg/tvgTvgSaver.cpp | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lib/sw_engine/tvgSwRaster.cpp b/src/lib/sw_engine/tvgSwRaster.cpp index bf1c10a..156ce55 100644 --- a/src/lib/sw_engine/tvgSwRaster.cpp +++ b/src/lib/sw_engine/tvgSwRaster.cpp @@ -22,8 +22,8 @@ #ifdef _WIN32 #include -#elif __FreeBSD__ - #include +#elif defined(__FreeBSD__) + #include #else #include #endif diff --git a/src/loaders/svg/tvgXmlParser.cpp b/src/loaders/svg/tvgXmlParser.cpp index c373da2..a644306 100644 --- a/src/loaders/svg/tvgXmlParser.cpp +++ b/src/loaders/svg/tvgXmlParser.cpp @@ -26,8 +26,8 @@ #ifdef _WIN32 #include -#elif __FreeBSD__ - #include +#elif defined(__FreeBSD__) + #include #else #include #endif diff --git a/src/loaders/tvg/tvgTvgBinInterpreter.cpp b/src/loaders/tvg/tvgTvgBinInterpreter.cpp index 62a75ec..66de860 100644 --- a/src/loaders/tvg/tvgTvgBinInterpreter.cpp +++ b/src/loaders/tvg/tvgTvgBinInterpreter.cpp @@ -23,8 +23,8 @@ #ifdef _WIN32 #include -#elif __FreeBSD__ - #include +#elif defined(__FreeBSD__) + #include #else #include #endif diff --git a/src/savers/tvg/tvgTvgSaver.cpp b/src/savers/tvg/tvgTvgSaver.cpp index adf8583..fca313b 100644 --- a/src/savers/tvg/tvgTvgSaver.cpp +++ b/src/savers/tvg/tvgTvgSaver.cpp @@ -28,8 +28,8 @@ #ifdef _WIN32 #include -#elif __FreeBSD__ - #include +#elif defined(__FreeBSD__) + #include #else #include #endif -- 2.7.4