Lines Matching refs:loader

80 typedef SvgNode* (*FactoryMethod)(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned…
81 typedef SvgStyleGradient* (*GradientFactoryMethod)(SvgLoaderData* loader, const char* buf, unsigned…
362 static void _parseDashArray(SvgLoaderData* loader, const char *str, SvgDash* dash) in _PARSE_TAG()
377 …parsedValue = (sqrtf(powf(loader->svgParse->global.w, 2) + powf(loader->svgParse->global.h, 2)) / … in _PARSE_TAG()
955 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseSvgNode() local
956 SvgNode* node = loader->svgParse->node; in _attrParseSvgNode()
960 doc->w = _toFloat(loader->svgParse, value, SvgParserLengthType::Horizontal); in _attrParseSvgNode()
967 doc->h = _toFloat(loader->svgParse, value, SvgParserLengthType::Vertical); in _attrParseSvgNode()
979 loader->svgParse->global.h = doc->vh; in _attrParseSvgNode()
981 loader->svgParse->global.w = doc->vw; in _attrParseSvgNode()
983 loader->svgParse->global.y = doc->vy; in _attrParseSvgNode()
985 loader->svgParse->global.x = doc->vx; in _attrParseSvgNode()
992 loader->svgParse->global.x = loader->svgParse->global.y = 0.0f; in _attrParseSvgNode()
993 loader->svgParse->global.w = loader->svgParse->global.h = 1.0f; in _attrParseSvgNode()
998 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseSvgNode()
1004 return _parseStyleAttr(loader, key, value, false); in _attrParseSvgNode()
1027 static void _handleColorAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleColorAttr() argument
1036 static void _handleFillAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleFillAttr() argument
1044 static void _handleStrokeAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleStrokeAttr() argument
1052 static void _handleStrokeOpacityAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* v… in _handleStrokeOpacityAttr() argument
1058 static void _handleStrokeDashArrayAttr(SvgLoaderData* loader, SvgNode* node, const char* value) in _handleStrokeDashArrayAttr() argument
1061 _parseDashArray(loader, value, &node->style->stroke.dash); in _handleStrokeDashArrayAttr()
1064 static void _handleStrokeDashOffsetAttr(SvgLoaderData* loader, SvgNode* node, const char* value) in _handleStrokeDashOffsetAttr() argument
1067 …node->style->stroke.dash.offset = _toFloat(loader->svgParse, value, SvgParserLengthType::Horizonta… in _handleStrokeDashOffsetAttr()
1070 static void _handleStrokeWidthAttr(SvgLoaderData* loader, SvgNode* node, const char* value) in _handleStrokeWidthAttr() argument
1073 node->style->stroke.width = _toFloat(loader->svgParse, value, SvgParserLengthType::Diagonal); in _handleStrokeWidthAttr()
1077 static void _handleStrokeLineCapAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* v… in _handleStrokeLineCapAttr() argument
1084 static void _handleStrokeLineJoinAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* … in _handleStrokeLineJoinAttr() argument
1090 static void _handleStrokeMiterlimitAttr(SvgLoaderData* loader, SvgNode* node, const char* value) in _handleStrokeMiterlimitAttr() argument
1107 static void _handleFillRuleAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleFillRuleAttr() argument
1114 static void _handleOpacityAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleOpacityAttr() argument
1121 static void _handleFillOpacityAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* val… in _handleFillOpacityAttr() argument
1128 static void _handleTransformAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleTransformAttr() argument
1134 static void _handleClipPathAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleClipPathAttr() argument
1145 static void _handleMaskAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleMaskAttr() argument
1156 static void _handleMaskTypeAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleMaskTypeAttr() argument
1162 static void _handleDisplayAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) in _handleDisplayAttr() argument
1174 static void _handlePaintOrderAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* valu… in _handlePaintOrderAttr() argument
1181 static void _handleCssClassAttr(SvgLoaderData* loader, SvgNode* node, const char* value) in _handleCssClassAttr() argument
1191 if (auto cssNode = cssFindStyleNode(loader->cssStyle, *cssClass, node->type)) { in _handleCssClassAttr()
1195 if (auto cssNode = cssFindStyleNode(loader->cssStyle, *cssClass)) { in _handleCssClassAttr()
1200 if (!cssClassFound) _postpone(loader->nodesToStyle, node, *cssClass); in _handleCssClassAttr()
1204 typedef void (*styleMethod)(SvgLoaderData* loader, SvgNode* node, const char* value);
1240 SvgLoaderData* loader = (SvgLoaderData*)data; in _parseStyleAttr() local
1241 SvgNode* node = loader->svgParse->node; in _parseStyleAttr()
1263 styleTags[i].tagHandler(loader, node, value); in _parseStyleAttr()
1267 styleTags[i].tagHandler(loader, node, value); in _parseStyleAttr()
1292 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseGNode() local
1293 SvgNode* node = loader->svgParse->node; in _attrParseGNode()
1296 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseGNode()
1303 _handleCssClassAttr(loader, node, value); in _attrParseGNode()
1305 _handleClipPathAttr(loader, node, value); in _attrParseGNode()
1307 _handleMaskAttr(loader, node, value); in _attrParseGNode()
1309 return _parseStyleAttr(loader, key, value, false); in _attrParseGNode()
1320 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseClipPathNode() local
1321 SvgNode* node = loader->svgParse->node; in _attrParseClipPathNode()
1325 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseClipPathNode()
1332 _handleCssClassAttr(loader, node, value); in _attrParseClipPathNode()
1336 return _parseStyleAttr(loader, key, value, false); in _attrParseClipPathNode()
1344 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseMaskNode() local
1345 SvgNode* node = loader->svgParse->node; in _attrParseMaskNode()
1349 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseMaskNode()
1356 _handleCssClassAttr(loader, node, value); in _attrParseMaskNode()
1362 return _parseStyleAttr(loader, key, value, false); in _attrParseMaskNode()
1370 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseCssStyleNode() local
1371 SvgNode* node = loader->svgParse->node; in _attrParseCssStyleNode()
1377 return _parseStyleAttr(loader, key, value, false); in _attrParseCssStyleNode()
1385 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseSymbolNode() local
1386 SvgNode* node = loader->svgParse->node; in _attrParseSymbolNode()
1394 symbol->w = _toFloat(loader->svgParse, value, SvgParserLengthType::Horizontal); in _attrParseSymbolNode()
1397 symbol->h = _toFloat(loader->svgParse, value, SvgParserLengthType::Vertical); in _attrParseSymbolNode()
1465 static SvgNode* _createDefsNode(TVG_UNUSED SvgLoaderData* loader, TVG_UNUSED SvgNode* parent, const… in _createDefsNode() argument
1467 if (loader->def && loader->doc->node.doc.defs) return loader->def; in _createDefsNode()
1470 loader->def = node; in _createDefsNode()
1471 loader->doc->node.doc.defs = node; in _createDefsNode()
1476 static SvgNode* _createGNode(TVG_UNUSED SvgLoaderData* loader, SvgNode* parent, const char* buf, un… in _createGNode() argument
1478 loader->svgParse->node = _createNode(parent, SvgNodeType::G); in _createGNode()
1479 if (!loader->svgParse->node) return nullptr; in _createGNode()
1481 func(buf, bufLength, _attrParseGNode, loader); in _createGNode()
1482 return loader->svgParse->node; in _createGNode()
1486 static SvgNode* _createSvgNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned bu… in _createSvgNode() argument
1488 loader->svgParse->node = _createNode(parent, SvgNodeType::Doc); in _createSvgNode()
1489 if (!loader->svgParse->node) return nullptr; in _createSvgNode()
1490 SvgDocNode* doc = &(loader->svgParse->node->node.doc); in _createSvgNode()
1492 loader->svgParse->global.w = 1.0f; in _createSvgNode()
1493 loader->svgParse->global.h = 1.0f; in _createSvgNode()
1498 func(buf, bufLength, _attrParseSvgNode, loader); in _createSvgNode()
1502 loader->svgParse->global.w = doc->w; in _createSvgNode()
1505 loader->svgParse->global.h = doc->h; in _createSvgNode()
1508 return loader->svgParse->node; in _createSvgNode()
1512 static SvgNode* _createMaskNode(SvgLoaderData* loader, SvgNode* parent, TVG_UNUSED const char* buf,… in _createMaskNode() argument
1514 loader->svgParse->node = _createNode(parent, SvgNodeType::Mask); in _createMaskNode()
1515 if (!loader->svgParse->node) return nullptr; in _createMaskNode()
1517 loader->svgParse->node->node.mask.userSpace = true; in _createMaskNode()
1518 loader->svgParse->node->node.mask.type = SvgMaskType::Luminance; in _createMaskNode()
1520 func(buf, bufLength, _attrParseMaskNode, loader); in _createMaskNode()
1522 return loader->svgParse->node; in _createMaskNode()
1526 static SvgNode* _createClipPathNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsign… in _createClipPathNode() argument
1528 loader->svgParse->node = _createNode(parent, SvgNodeType::ClipPath); in _createClipPathNode()
1529 if (!loader->svgParse->node) return nullptr; in _createClipPathNode()
1531 loader->svgParse->node->style->display = false; in _createClipPathNode()
1532 loader->svgParse->node->node.clip.userSpace = true; in _createClipPathNode()
1534 func(buf, bufLength, _attrParseClipPathNode, loader); in _createClipPathNode()
1536 return loader->svgParse->node; in _createClipPathNode()
1540 static SvgNode* _createCssStyleNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsign… in _createCssStyleNode() argument
1542 loader->svgParse->node = _createNode(parent, SvgNodeType::CssStyle); in _createCssStyleNode()
1543 if (!loader->svgParse->node) return nullptr; in _createCssStyleNode()
1545 func(buf, bufLength, _attrParseCssStyleNode, loader); in _createCssStyleNode()
1547 return loader->svgParse->node; in _createCssStyleNode()
1551 static SvgNode* _createSymbolNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned… in _createSymbolNode() argument
1553 loader->svgParse->node = _createNode(parent, SvgNodeType::Symbol); in _createSymbolNode()
1554 if (!loader->svgParse->node) return nullptr; in _createSymbolNode()
1556 loader->svgParse->node->node.symbol.align = AspectRatioAlign::XMidYMid; in _createSymbolNode()
1557 loader->svgParse->node->node.symbol.meetOrSlice = AspectRatioMeetOrSlice::Meet; in _createSymbolNode()
1558 loader->svgParse->node->node.symbol.overflowVisible = false; in _createSymbolNode()
1560 loader->svgParse->node->node.symbol.hasViewBox = false; in _createSymbolNode()
1561 loader->svgParse->node->node.symbol.hasWidth = false; in _createSymbolNode()
1562 loader->svgParse->node->node.symbol.hasHeight = false; in _createSymbolNode()
1563 loader->svgParse->node->node.symbol.vx = 0.0f; in _createSymbolNode()
1564 loader->svgParse->node->node.symbol.vy = 0.0f; in _createSymbolNode()
1566 func(buf, bufLength, _attrParseSymbolNode, loader); in _createSymbolNode()
1568 return loader->svgParse->node; in _createSymbolNode()
1574 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParsePathNode() local
1575 SvgNode* node = loader->svgParse->node; in _attrParsePathNode()
1583 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParsePathNode()
1585 _handleClipPathAttr(loader, node, value); in _attrParsePathNode()
1587 _handleMaskAttr(loader, node, value); in _attrParsePathNode()
1592 _handleCssClassAttr(loader, node, value); in _attrParsePathNode()
1594 return _parseStyleAttr(loader, key, value, false); in _attrParsePathNode()
1600 static SvgNode* _createPathNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned b… in _createPathNode() argument
1602 loader->svgParse->node = _createNode(parent, SvgNodeType::Path); in _createPathNode()
1604 if (!loader->svgParse->node) return nullptr; in _createPathNode()
1606 func(buf, bufLength, _attrParsePathNode, loader); in _createPathNode()
1608 return loader->svgParse->node; in _createPathNode()
1630 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseCircleNode() local
1631 SvgNode* node = loader->svgParse->node; in _attrParseCircleNode()
1639 … *((float*)(array + circleTags[i].offset)) = _toFloat(loader->svgParse, value, circleTags[i].type); in _attrParseCircleNode()
1645 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseCircleNode()
1647 _handleClipPathAttr(loader, node, value); in _attrParseCircleNode()
1649 _handleMaskAttr(loader, node, value); in _attrParseCircleNode()
1654 _handleCssClassAttr(loader, node, value); in _attrParseCircleNode()
1656 return _parseStyleAttr(loader, key, value, false); in _attrParseCircleNode()
1662 static SvgNode* _createCircleNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned… in _createCircleNode() argument
1664 loader->svgParse->node = _createNode(parent, SvgNodeType::Circle); in _createCircleNode()
1666 if (!loader->svgParse->node) return nullptr; in _createCircleNode()
1668 func(buf, bufLength, _attrParseCircleNode, loader); in _createCircleNode()
1669 return loader->svgParse->node; in _createCircleNode()
1692 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseEllipseNode() local
1693 SvgNode* node = loader->svgParse->node; in _attrParseEllipseNode()
1701 …*((float*)(array + ellipseTags[i].offset)) = _toFloat(loader->svgParse, value, ellipseTags[i].type… in _attrParseEllipseNode()
1710 _handleCssClassAttr(loader, node, value); in _attrParseEllipseNode()
1712 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseEllipseNode()
1714 _handleClipPathAttr(loader, node, value); in _attrParseEllipseNode()
1716 _handleMaskAttr(loader, node, value); in _attrParseEllipseNode()
1718 return _parseStyleAttr(loader, key, value, false); in _attrParseEllipseNode()
1724 static SvgNode* _createEllipseNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigne… in _createEllipseNode() argument
1726 loader->svgParse->node = _createNode(parent, SvgNodeType::Ellipse); in _createEllipseNode()
1728 if (!loader->svgParse->node) return nullptr; in _createEllipseNode()
1730 func(buf, bufLength, _attrParseEllipseNode, loader); in _createEllipseNode()
1731 return loader->svgParse->node; in _createEllipseNode()
1751 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParsePolygonNode() local
1752 SvgNode* node = loader->svgParse->node; in _attrParsePolygonNode()
1761 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParsePolygonNode()
1763 _handleClipPathAttr(loader, node, value); in _attrParsePolygonNode()
1765 _handleMaskAttr(loader, node, value); in _attrParsePolygonNode()
1770 _handleCssClassAttr(loader, node, value); in _attrParsePolygonNode()
1772 return _parseStyleAttr(loader, key, value, false); in _attrParsePolygonNode()
1778 static SvgNode* _createPolygonNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigne… in _createPolygonNode() argument
1780 loader->svgParse->node = _createNode(parent, SvgNodeType::Polygon); in _createPolygonNode()
1782 if (!loader->svgParse->node) return nullptr; in _createPolygonNode()
1784 func(buf, bufLength, _attrParsePolygonNode, loader); in _createPolygonNode()
1785 return loader->svgParse->node; in _createPolygonNode()
1789 static SvgNode* _createPolylineNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsign… in _createPolylineNode() argument
1791 loader->svgParse->node = _createNode(parent, SvgNodeType::Polyline); in _createPolylineNode()
1793 if (!loader->svgParse->node) return nullptr; in _createPolylineNode()
1795 func(buf, bufLength, _attrParsePolygonNode, loader); in _createPolylineNode()
1796 return loader->svgParse->node; in _createPolylineNode()
1820 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseRectNode() local
1821 SvgNode* node = loader->svgParse->node; in _attrParseRectNode()
1830 … *((float*)(array + rectTags[i].offset)) = _toFloat(loader->svgParse, value, rectTags[i].type); in _attrParseRectNode()
1846 _handleCssClassAttr(loader, node, value); in _attrParseRectNode()
1848 ret = simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseRectNode()
1850 _handleClipPathAttr(loader, node, value); in _attrParseRectNode()
1852 _handleMaskAttr(loader, node, value); in _attrParseRectNode()
1854 ret = _parseStyleAttr(loader, key, value, false); in _attrParseRectNode()
1861 static SvgNode* _createRectNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned b… in _createRectNode() argument
1863 loader->svgParse->node = _createNode(parent, SvgNodeType::Rect); in _createRectNode()
1865 if (!loader->svgParse->node) return nullptr; in _createRectNode()
1867 loader->svgParse->node->node.rect.hasRx = loader->svgParse->node->node.rect.hasRy = false; in _createRectNode()
1869 func(buf, bufLength, _attrParseRectNode, loader); in _createRectNode()
1870 return loader->svgParse->node; in _createRectNode()
1893 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseLineNode() local
1894 SvgNode* node = loader->svgParse->node; in _attrParseLineNode()
1902 … *((float*)(array + lineTags[i].offset)) = _toFloat(loader->svgParse, value, lineTags[i].type); in _attrParseLineNode()
1911 _handleCssClassAttr(loader, node, value); in _attrParseLineNode()
1913 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseLineNode()
1915 _handleClipPathAttr(loader, node, value); in _attrParseLineNode()
1917 _handleMaskAttr(loader, node, value); in _attrParseLineNode()
1919 return _parseStyleAttr(loader, key, value, false); in _attrParseLineNode()
1925 static SvgNode* _createLineNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned b… in _createLineNode() argument
1927 loader->svgParse->node = _createNode(parent, SvgNodeType::Line); in _createLineNode()
1929 if (!loader->svgParse->node) return nullptr; in _createLineNode()
1931 func(buf, bufLength, _attrParseLineNode, loader); in _createLineNode()
1932 return loader->svgParse->node; in _createLineNode()
1963 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseImageNode() local
1964 SvgNode* node = loader->svgParse->node; in _attrParseImageNode()
1972 … *((float*)(array + imageTags[i].offset)) = _toFloat(loader->svgParse, value, imageTags[i].type); in _attrParseImageNode()
1984 _handleCssClassAttr(loader, node, value); in _attrParseImageNode()
1986 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseImageNode()
1988 _handleClipPathAttr(loader, node, value); in _attrParseImageNode()
1990 _handleMaskAttr(loader, node, value); in _attrParseImageNode()
1994 return _parseStyleAttr(loader, key, value); in _attrParseImageNode()
2000 static SvgNode* _createImageNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned … in _createImageNode() argument
2002 loader->svgParse->node = _createNode(parent, SvgNodeType::Image); in _createImageNode()
2004 if (!loader->svgParse->node) return nullptr; in _createImageNode()
2006 func(buf, bufLength, _attrParseImageNode, loader); in _createImageNode()
2007 return loader->svgParse->node; in _createImageNode()
2074 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseUseNode() local
2075 SvgNode *defs, *nodeFrom, *node = loader->svgParse->node; in _attrParseUseNode()
2083 … *((float*)(array + useTags[i].offset)) = _toFloat(loader->svgParse, value, useTags[i].type); in _attrParseUseNode()
2097 if (!_findParentById(node, id, loader->doc)) { in _attrParseUseNode()
2108 _postpone(loader->cloneNodes, node, id); in _attrParseUseNode()
2117 static SvgNode* _createUseNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned bu… in _createUseNode() argument
2119 loader->svgParse->node = _createNode(parent, SvgNodeType::Use); in _createUseNode()
2121 if (!loader->svgParse->node) return nullptr; in _createUseNode()
2123 loader->svgParse->node->node.use.isWidthSet = false; in _createUseNode()
2124 loader->svgParse->node->node.use.isHeightSet = false; in _createUseNode()
2126 func(buf, bufLength, _attrParseUseNode, loader); in _createUseNode()
2127 return loader->svgParse->node; in _createUseNode()
2146 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseTextNode() local
2147 SvgNode* node = loader->svgParse->node; in _attrParseTextNode()
2156 … *((float*)(array + textTags[i].offset)) = _toFloat(loader->svgParse, value, textTags[i].type); in _attrParseTextNode()
2165 return simpleXmlParseW3CAttribute(value, strlen(value), _parseStyleAttr, loader); in _attrParseTextNode()
2167 _handleClipPathAttr(loader, node, value); in _attrParseTextNode()
2169 _handleMaskAttr(loader, node, value); in _attrParseTextNode()
2174 _handleCssClassAttr(loader, node, value); in _attrParseTextNode()
2176 return _parseStyleAttr(loader, key, value, false); in _attrParseTextNode()
2182 static SvgNode* _createTextNode(SvgLoaderData* loader, SvgNode* parent, const char* buf, unsigned b… in _createTextNode() argument
2184 loader->svgParse->node = _createNode(parent, SvgNodeType::Text); in _createTextNode()
2185 if (!loader->svgParse->node) return nullptr; in _createTextNode()
2188 loader->svgParse->node->node.text.fontSize = 10.0f; in _createTextNode()
2189 loader->svgParse->node->node.text.fontFamily = nullptr; in _createTextNode()
2190 loader->svgParse->node->node.text.text = nullptr; in _createTextNode()
2192 func(buf, bufLength, _attrParseTextNode, loader); in _createTextNode()
2194 return loader->svgParse->node; in _createTextNode()
2266 static void _handleRadialCxAttr(SvgLoaderData* loader, SvgRadialGradient* radial, const char* value) in _handleRadialCxAttr() argument
2268 radial->cx = _gradientToFloat(loader->svgParse, value, radial->isCxPercentage); in _handleRadialCxAttr()
2269 if (!loader->svgParse->gradient.parsedFx) { in _handleRadialCxAttr()
2276 static void _handleRadialCyAttr(SvgLoaderData* loader, SvgRadialGradient* radial, const char* value) in _handleRadialCyAttr() argument
2278 radial->cy = _gradientToFloat(loader->svgParse, value, radial->isCyPercentage); in _handleRadialCyAttr()
2279 if (!loader->svgParse->gradient.parsedFy) { in _handleRadialCyAttr()
2286 static void _handleRadialFxAttr(SvgLoaderData* loader, SvgRadialGradient* radial, const char* value) in _handleRadialFxAttr() argument
2288 radial->fx = _gradientToFloat(loader->svgParse, value, radial->isFxPercentage); in _handleRadialFxAttr()
2289 loader->svgParse->gradient.parsedFx = true; in _handleRadialFxAttr()
2293 static void _handleRadialFyAttr(SvgLoaderData* loader, SvgRadialGradient* radial, const char* value) in _handleRadialFyAttr() argument
2295 radial->fy = _gradientToFloat(loader->svgParse, value, radial->isFyPercentage); in _handleRadialFyAttr()
2296 loader->svgParse->gradient.parsedFy = true; in _handleRadialFyAttr()
2300 static void _handleRadialFrAttr(SvgLoaderData* loader, SvgRadialGradient* radial, const char* value) in _handleRadialFrAttr() argument
2302 radial->fr = _gradientToFloat(loader->svgParse, value, radial->isFrPercentage); in _handleRadialFrAttr()
2306 static void _handleRadialRAttr(SvgLoaderData* loader, SvgRadialGradient* radial, const char* value) in _handleRadialRAttr() argument
2308 radial->r = _gradientToFloat(loader->svgParse, value, radial->isRPercentage); in _handleRadialRAttr()
2312 static void _recalcRadialCxAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool userSpace) in _recalcRadialCxAttr() argument
2314 if (userSpace && !radial->isCxPercentage) radial->cx = radial->cx / loader->svgParse->global.w; in _recalcRadialCxAttr()
2318 static void _recalcRadialCyAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool userSpace) in _recalcRadialCyAttr() argument
2320 if (userSpace && !radial->isCyPercentage) radial->cy = radial->cy / loader->svgParse->global.h; in _recalcRadialCyAttr()
2324 static void _recalcRadialFxAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool userSpace) in _recalcRadialFxAttr() argument
2326 if (userSpace && !radial->isFxPercentage) radial->fx = radial->fx / loader->svgParse->global.w; in _recalcRadialFxAttr()
2330 static void _recalcRadialFyAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool userSpace) in _recalcRadialFyAttr() argument
2332 if (userSpace && !radial->isFyPercentage) radial->fy = radial->fy / loader->svgParse->global.h; in _recalcRadialFyAttr()
2336 static void _recalcRadialFrAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool userSpace) in _recalcRadialFrAttr() argument
2339 …isFrPercentage) radial->fr = radial->fr / (sqrtf(powf(loader->svgParse->global.h, 2) + powf(loader in _recalcRadialFrAttr()
2343 static void _recalcRadialRAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool userSpace) in _recalcRadialRAttr() argument
2346 …l->isRPercentage) radial->r = radial->r / (sqrtf(powf(loader->svgParse->global.h, 2) + powf(loader in _recalcRadialRAttr()
2350 static void _recalcInheritedRadialCxAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool use… in _recalcInheritedRadialCxAttr() argument
2353 if (userSpace) radial->cx /= loader->svgParse->global.w; in _recalcInheritedRadialCxAttr()
2354 else radial->cx *= loader->svgParse->global.w; in _recalcInheritedRadialCxAttr()
2359 static void _recalcInheritedRadialCyAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool use… in _recalcInheritedRadialCyAttr() argument
2362 if (userSpace) radial->cy /= loader->svgParse->global.h; in _recalcInheritedRadialCyAttr()
2363 else radial->cy *= loader->svgParse->global.h; in _recalcInheritedRadialCyAttr()
2368 static void _recalcInheritedRadialFxAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool use… in _recalcInheritedRadialFxAttr() argument
2371 if (userSpace) radial->fx /= loader->svgParse->global.w; in _recalcInheritedRadialFxAttr()
2372 else radial->fx *= loader->svgParse->global.w; in _recalcInheritedRadialFxAttr()
2377 static void _recalcInheritedRadialFyAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool use… in _recalcInheritedRadialFyAttr() argument
2380 if (userSpace) radial->fy /= loader->svgParse->global.h; in _recalcInheritedRadialFyAttr()
2381 else radial->fy *= loader->svgParse->global.h; in _recalcInheritedRadialFyAttr()
2386 static void _recalcInheritedRadialFrAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool use… in _recalcInheritedRadialFrAttr() argument
2389 …if (userSpace) radial->fr /= sqrtf(powf(loader->svgParse->global.h, 2) + powf(loader->svgParse->gl… in _recalcInheritedRadialFrAttr()
2390 …else radial->fr *= sqrtf(powf(loader->svgParse->global.h, 2) + powf(loader->svgParse->global.w, 2)… in _recalcInheritedRadialFrAttr()
2395 static void _recalcInheritedRadialRAttr(SvgLoaderData* loader, SvgRadialGradient* radial, bool user… in _recalcInheritedRadialRAttr() argument
2398 …if (userSpace) radial->r /= sqrtf(powf(loader->svgParse->global.h, 2) + powf(loader->svgParse->glo… in _recalcInheritedRadialRAttr()
2399 …else radial->r *= sqrtf(powf(loader->svgParse->global.h, 2) + powf(loader->svgParse->global.w, 2))… in _recalcInheritedRadialRAttr()
2452 typedef void (*radialMethod)(SvgLoaderData* loader, SvgRadialGradient* radial, const char* value);
2454 typedef void (*radialMethodRecalc)(SvgLoaderData* loader, SvgRadialGradient* radial, bool userSpace…
2484 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseRadialGradientNode() local
2485 SvgStyleGradient* grad = loader->svgParse->styleGrad; in _attrParseRadialGradientNode()
2491 radialTags[i].tagHandler(loader, radial, value); in _attrParseRadialGradientNode()
2519 static SvgStyleGradient* _createRadialGradient(SvgLoaderData* loader, const char* buf, unsigned buf… in _createRadialGradient() argument
2522 loader->svgParse->styleGrad = grad; in _createRadialGradient()
2548 loader->svgParse->gradient.parsedFx = false; in _createRadialGradient()
2549 loader->svgParse->gradient.parsedFy = false; in _createRadialGradient()
2551 _attrParseRadialGradientNode, loader); in _createRadialGradient()
2554 radialTags[i].tagRecalc(loader, grad->radial, grad->userSpace); in _createRadialGradient()
2557 return loader->svgParse->styleGrad; in _createRadialGradient()
2563 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseStopsStyle() local
2564 auto stop = &loader->svgParse->gradStop; in _attrParseStopsStyle()
2568 loader->svgParse->flags = (loader->svgParse->flags | SvgStopStyleFlags::StopOpacity); in _attrParseStopsStyle()
2571 loader->svgParse->flags = (loader->svgParse->flags | SvgStopStyleFlags::StopColor); in _attrParseStopsStyle()
2583 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseStops() local
2584 auto stop = &loader->svgParse->gradStop; in _attrParseStops()
2589 if (!(loader->svgParse->flags & SvgStopStyleFlags::StopOpacity)) { in _attrParseStops()
2593 if (!(loader->svgParse->flags & SvgStopStyleFlags::StopColor)) { in _attrParseStops()
2606 static void _handleLinearX1Attr(SvgLoaderData* loader, SvgLinearGradient* linear, const char* value) in _handleLinearX1Attr() argument
2608 linear->x1 = _gradientToFloat(loader->svgParse, value, linear->isX1Percentage); in _handleLinearX1Attr()
2612 static void _handleLinearY1Attr(SvgLoaderData* loader, SvgLinearGradient* linear, const char* value) in _handleLinearY1Attr() argument
2614 linear->y1 = _gradientToFloat(loader->svgParse, value, linear->isY1Percentage); in _handleLinearY1Attr()
2618 static void _handleLinearX2Attr(SvgLoaderData* loader, SvgLinearGradient* linear, const char* value) in _handleLinearX2Attr() argument
2620 linear->x2 = _gradientToFloat(loader->svgParse, value, linear->isX2Percentage); in _handleLinearX2Attr()
2624 static void _handleLinearY2Attr(SvgLoaderData* loader, SvgLinearGradient* linear, const char* value) in _handleLinearY2Attr() argument
2626 linear->y2 = _gradientToFloat(loader->svgParse, value, linear->isY2Percentage); in _handleLinearY2Attr()
2630 static void _recalcLinearX1Attr(SvgLoaderData* loader, SvgLinearGradient* linear, bool userSpace) in _recalcLinearX1Attr() argument
2632 if (userSpace && !linear->isX1Percentage) linear->x1 = linear->x1 / loader->svgParse->global.w; in _recalcLinearX1Attr()
2636 static void _recalcLinearY1Attr(SvgLoaderData* loader, SvgLinearGradient* linear, bool userSpace) in _recalcLinearY1Attr() argument
2638 if (userSpace && !linear->isY1Percentage) linear->y1 = linear->y1 / loader->svgParse->global.h; in _recalcLinearY1Attr()
2642 static void _recalcLinearX2Attr(SvgLoaderData* loader, SvgLinearGradient* linear, bool userSpace) in _recalcLinearX2Attr() argument
2644 if (userSpace && !linear->isX2Percentage) linear->x2 = linear->x2 / loader->svgParse->global.w; in _recalcLinearX2Attr()
2648 static void _recalcLinearY2Attr(SvgLoaderData* loader, SvgLinearGradient* linear, bool userSpace) in _recalcLinearY2Attr() argument
2650 if (userSpace && !linear->isY2Percentage) linear->y2 = linear->y2 / loader->svgParse->global.h; in _recalcLinearY2Attr()
2654 static void _recalcInheritedLinearX1Attr(SvgLoaderData* loader, SvgLinearGradient* linear, bool use… in _recalcInheritedLinearX1Attr() argument
2657 if (userSpace) linear->x1 /= loader->svgParse->global.w; in _recalcInheritedLinearX1Attr()
2658 else linear->x1 *= loader->svgParse->global.w; in _recalcInheritedLinearX1Attr()
2663 static void _recalcInheritedLinearX2Attr(SvgLoaderData* loader, SvgLinearGradient* linear, bool use… in _recalcInheritedLinearX2Attr() argument
2666 if (userSpace) linear->x2 /= loader->svgParse->global.w; in _recalcInheritedLinearX2Attr()
2667 else linear->x2 *= loader->svgParse->global.w; in _recalcInheritedLinearX2Attr()
2672 static void _recalcInheritedLinearY1Attr(SvgLoaderData* loader, SvgLinearGradient* linear, bool use… in _recalcInheritedLinearY1Attr() argument
2675 if (userSpace) linear->y1 /= loader->svgParse->global.h; in _recalcInheritedLinearY1Attr()
2676 else linear->y1 *= loader->svgParse->global.h; in _recalcInheritedLinearY1Attr()
2681 static void _recalcInheritedLinearY2Attr(SvgLoaderData* loader, SvgLinearGradient* linear, bool use… in _recalcInheritedLinearY2Attr() argument
2684 if (userSpace) linear->y2 /= loader->svgParse->global.h; in _recalcInheritedLinearY2Attr()
2685 else linear->y2 *= loader->svgParse->global.h; in _recalcInheritedLinearY2Attr()
2722 typedef void (*Linear_Method)(SvgLoaderData* loader, SvgLinearGradient* linear, const char* value);
2724 typedef void (*Linear_Method_Recalc)(SvgLoaderData* loader, SvgLinearGradient* linear, bool userSpa…
2752 SvgLoaderData* loader = (SvgLoaderData*)data; in _attrParseLinearGradientNode() local
2753 SvgStyleGradient* grad = loader->svgParse->styleGrad; in _attrParseLinearGradientNode()
2759 linear_tags[i].tagHandler(loader, linear, value); in _attrParseLinearGradientNode()
2787 static SvgStyleGradient* _createLinearGradient(SvgLoaderData* loader, const char* buf, unsigned buf… in _createLinearGradient() argument
2790 loader->svgParse->styleGrad = grad; in _createLinearGradient()
2807 simpleXmlParseAttributes(buf, bufLength, _attrParseLinearGradientNode, loader); in _createLinearGradient()
2810 linear_tags[i].tagRecalc(loader, grad->linear, grad->userSpace); in _createLinearGradient()
2813 return loader->svgParse->styleGrad; in _createLinearGradient()
2860 static void _inheritGradient(SvgLoaderData* loader, SvgStyleGradient* to, SvgStyleGradient* from) in _inheritGradient() argument
2888 linear_tags[i].tagRecalc(loader, to->linear, to->userSpace); in _inheritGradient()
2893 linear_tags[i].tagInheritedRecalc(loader, to->linear, to->userSpace); in _inheritGradient()
2905 radialTags[i].tagRecalc(loader, to->radial, to->userSpace); in _inheritGradient()
2916 radialTags[i].tagInheritedRecalc(loader, to->radial, to->userSpace); in _inheritGradient()
3267 static void _svgLoaderParserXmlClose(SvgLoaderData* loader, const char* content, unsigned int lengt… in _svgLoaderParserXmlClose() argument
3288 loader->stack.pop(); in _svgLoaderParserXmlClose()
3295 loader->currentGraphicsNode = nullptr; in _svgLoaderParserXmlClose()
3296 if (!strncmp(tagName, "text", 4)) loader->openedTag = OpenedTagType::Other; in _svgLoaderParserXmlClose()
3297 loader->stack.pop(); in _svgLoaderParserXmlClose()
3302 loader->level--; in _svgLoaderParserXmlClose()
3306 static void _svgLoaderParserXmlOpen(SvgLoaderData* loader, const char* content, unsigned int length… in _svgLoaderParserXmlOpen() argument
3315 loader->level++; in _svgLoaderParserXmlOpen()
3338 if (!loader->doc) { in _svgLoaderParserXmlOpen()
3340 node = method(loader, nullptr, attrs, attrsLength, simpleXmlParseAttributes); in _svgLoaderParserXmlOpen()
3341 loader->doc = node; in _svgLoaderParserXmlOpen()
3344 if (loader->stack.count > 0) parent = loader->stack.last(); in _svgLoaderParserXmlOpen()
3345 else parent = loader->doc; in _svgLoaderParserXmlOpen()
3349 if (!loader->cssStyle) { in _svgLoaderParserXmlOpen()
3350 node = method(loader, nullptr, attrs, attrsLength, simpleXmlParseAttributes); in _svgLoaderParserXmlOpen()
3351 loader->cssStyle = node; in _svgLoaderParserXmlOpen()
3352 loader->doc->node.doc.style = node; in _svgLoaderParserXmlOpen()
3353 loader->openedTag = OpenedTagType::Style; in _svgLoaderParserXmlOpen()
3356 node = method(loader, parent, attrs, attrsLength, simpleXmlParseAttributes); in _svgLoaderParserXmlOpen()
3362 loader->stack.push(node); in _svgLoaderParserXmlOpen()
3365 if (loader->stack.count > 0) parent = loader->stack.last(); in _svgLoaderParserXmlOpen()
3366 else parent = loader->doc; in _svgLoaderParserXmlOpen()
3367 node = method(loader, parent, attrs, attrsLength, simpleXmlParseAttributes); in _svgLoaderParserXmlOpen()
3369 if (!strcmp(tagName, "text")) loader->openedTag = OpenedTagType::Text; in _svgLoaderParserXmlOpen()
3370 auto defs = _createDefsNode(loader, nullptr, nullptr, 0, nullptr); in _svgLoaderParserXmlOpen()
3371 loader->stack.push(defs); in _svgLoaderParserXmlOpen()
3372 loader->currentGraphicsNode = node; in _svgLoaderParserXmlOpen()
3376 gradient = gradientMethod(loader, attrs, attrsLength); in _svgLoaderParserXmlOpen()
3383 if (loader->def && loader->doc->node.doc.defs) { in _svgLoaderParserXmlOpen()
3384 loader->def->node.defs.gradients.push(gradient); in _svgLoaderParserXmlOpen()
3386 loader->gradients.push(gradient); in _svgLoaderParserXmlOpen()
3388 loader->latestGradient = gradient; in _svgLoaderParserXmlOpen()
3390 if (!loader->latestGradient) { in _svgLoaderParserXmlOpen()
3395 loader->svgParse->gradStop = {0.0f, 0, 0, 0, 255}; in _svgLoaderParserXmlOpen()
3396 loader->svgParse->flags = SvgStopStyleFlags::StopDefault; in _svgLoaderParserXmlOpen()
3397 simpleXmlParseAttributes(attrs, attrsLength, _attrParseStops, loader); in _svgLoaderParserXmlOpen()
3398 loader->latestGradient->stops.push(loader->svgParse->gradStop); in _svgLoaderParserXmlOpen()
3405 static void _svgLoaderParserText(SvgLoaderData* loader, const char* content, unsigned int length) in _svgLoaderParserText() argument
3407 auto text = &loader->svgParse->node->node.text; in _svgLoaderParserText()
3412 static void _svgLoaderParserXmlCssStyle(SvgLoaderData* loader, const char* content, unsigned int le… in _svgLoaderParserXmlCssStyle() argument
3425 …if ((node = method(loader, loader->cssStyle, attrs, attrsLength, simpleXmlParseW3CAttribute))) nod… in _svgLoaderParserXmlCssStyle()
3427 …if ((node = method(loader, loader->cssStyle, attrs, attrsLength, simpleXmlParseW3CAttribute))) nod… in _svgLoaderParserXmlCssStyle()
3433 …if ((node = _createCssStyleNode(loader, loader->cssStyle, attrs, attrsLength, simpleXmlParseW3CAtt… in _svgLoaderParserXmlCssStyle()
3444 loader->openedTag = OpenedTagType::Other; in _svgLoaderParserXmlCssStyle()
3450 SvgLoaderData* loader = (SvgLoaderData*)data; in _svgLoaderParser() local
3454 _svgLoaderParserXmlOpen(loader, content, length, false); in _svgLoaderParser()
3458 _svgLoaderParserXmlOpen(loader, content, length, true); in _svgLoaderParser()
3462 _svgLoaderParserXmlClose(loader, content, length); in _svgLoaderParser()
3467 …if (loader->openedTag == OpenedTagType::Style) _svgLoaderParserXmlCssStyle(loader, content, length… in _svgLoaderParser()
3468 … else if (loader->openedTag == OpenedTagType::Text) _svgLoaderParserText(loader, content, length); in _svgLoaderParser()
3541 static SvgStyleGradient* _gradientDup(SvgLoaderData* loader, Array<SvgStyleGradient*>* gradients, c… in _gradientDup() argument
3559 _inheritGradient(loader, result, *gradList); in _gradientDup()
3570 static void _updateGradient(SvgLoaderData* loader, SvgNode* node, Array<SvgStyleGradient*>* gradien… in _updateGradient() argument
3575 _updateGradient(loader, *child, gradients); in _updateGradient()
3579 auto newGrad = _gradientDup(loader, gradients, node->style->fill.paint.url); in _updateGradient()
3589 auto newGrad = _gradientDup(loader, gradients, node->style->stroke.paint.url); in _updateGradient()
3703 static bool _svgLoaderParserForValidCheckXmlOpen(SvgLoaderData* loader, const char* content, unsign… in _svgLoaderParserForValidCheckXmlOpen() argument
3711 loader->level++; in _svgLoaderParserForValidCheckXmlOpen()
3730 if (!loader->doc) { in _svgLoaderParserForValidCheckXmlOpen()
3732 node = method(loader, nullptr, attrs, attrsLength, simpleXmlParseAttributes); in _svgLoaderParserForValidCheckXmlOpen()
3733 loader->doc = node; in _svgLoaderParserForValidCheckXmlOpen()
3734 loader->stack.push(node); in _svgLoaderParserForValidCheckXmlOpen()
3744 SvgLoaderData* loader = (SvgLoaderData*)data; in _svgLoaderParserForValidCheck() local
3751 res = _svgLoaderParserForValidCheckXmlOpen(loader, content, length); in _svgLoaderParserForValidCheck()