@react-native-ohos/react-native-svg 15.0.2-rc.5 → 15.12.1-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (548) hide show
  1. package/README.OpenSource +11 -0
  2. package/README.md +13 -0
  3. package/harmony/svg/BuildProfile.ets +17 -0
  4. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/.ts_checker_cache +3052 -0
  5. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/.tsbuildinfo +1 -0
  6. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/.tsbuildinfo.linter +1 -0
  7. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/compileInfo.json +1 -0
  8. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/RNSVGImageModule.ts-7c464e69f4a700eeeaae44cf66ca5fd3b3e84299010d5c3a5643612ba1a48d70.msgpack +0 -0
  9. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/RNSVGRenderableModule.ts-c2df5206c2aa9e868b7f24f706a131fff1236faaff78688ffdeec3ce25bf5d91.msgpack +0 -0
  10. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/RNSVGSvgViewModule.ts-b9a699770b693eeaa2eb98307323dc9087e44afc9c01b08d222555636b3fac0d.msgpack +0 -0
  11. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/SvgPackage.ts-08ac57d81b1742792af8813eac27abe5eca1a5714b1a5b76f97436b13abe48e4.msgpack +0 -0
  12. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/index.ets-0e520bf323178f6f973ec12f44622042dcdd19e5032efd9bd02ac5606fb58275.msgpack +0 -0
  13. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/ts.ts-1d50b47087f159616212dd3c5ecd04a204a5be09940b7dbba77a59e3a66499c2.msgpack +0 -0
  14. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/other/pkgName2SourceRoots.msgpack +1 -0
  15. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/plugins/plugins.msgpack +0 -0
  16. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/dep_info.json +1 -0
  17. package/harmony/svg/build/default/cache/default/default@PackageHar/BuildProfile.ets +17 -0
  18. package/harmony/svg/build/default/cache/default/default@PackageHar/ResourceTable.txt +1 -0
  19. package/harmony/svg/build/default/cache/default/default@PackageHar/build-profile.json5 +9 -0
  20. package/harmony/svg/build/default/cache/default/default@PackageHar/hvigorfile.ts +2 -0
  21. package/harmony/svg/build/default/cache/default/default@PackageHar/index.ets +7 -0
  22. package/harmony/svg/build/default/cache/default/default@PackageHar/oh-package-lock.json5 +19 -0
  23. package/harmony/svg/build/default/cache/default/default@PackageHar/oh-package.json5 +1 -0
  24. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/Attribute.h +52 -0
  25. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/CMakeLists.txt +32 -0
  26. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/FallbackProps.h +0 -0
  27. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/FontHolderBase.cpp +22 -0
  28. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/FontHolderBase.h +54 -0
  29. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SVGPackage.cpp +135 -0
  30. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SVGPackage.h +157 -0
  31. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgArkUINode.cpp +78 -0
  32. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgArkUINode.h +51 -0
  33. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgBaseAttribute.h +83 -0
  34. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgCircle.cpp +29 -0
  35. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgCircle.h +29 -0
  36. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgClipPath.h +22 -0
  37. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgContext.cpp +56 -0
  38. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgContext.h +71 -0
  39. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgDefs.h +46 -0
  40. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgEllipse.cpp +32 -0
  41. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgEllipse.h +34 -0
  42. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgFilter.cpp +505 -0
  43. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgFilter.h +112 -0
  44. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignObjectNode.cpp +86 -0
  45. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignObjectNode.h +81 -0
  46. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignObjectNodeDelegate.h +30 -0
  47. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignProps.h +39 -0
  48. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGradient.cpp +117 -0
  49. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGradient.h +49 -0
  50. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGraphic.cpp +553 -0
  51. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGraphic.h +77 -0
  52. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGroup.cpp +93 -0
  53. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGroup.h +41 -0
  54. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgHost.cpp +27 -0
  55. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgHost.h +38 -0
  56. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgImage.cpp +168 -0
  57. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgImage.h +52 -0
  58. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgLine.cpp +28 -0
  59. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgLine.h +32 -0
  60. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMarker.cpp +61 -0
  61. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMarker.h +86 -0
  62. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMask.cpp +72 -0
  63. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMask.h +68 -0
  64. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgNode.cpp +395 -0
  65. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgNode.h +377 -0
  66. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPath.cpp +42 -0
  67. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPath.h +29 -0
  68. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPattern.cpp +77 -0
  69. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPattern.h +64 -0
  70. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgQuote.h +87 -0
  71. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgRect.cpp +58 -0
  72. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgRect.h +33 -0
  73. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSvg.cpp +83 -0
  74. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSvg.h +52 -0
  75. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSymbol.cpp +25 -0
  76. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSymbol.h +37 -0
  77. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTSpan.cpp +501 -0
  78. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTSpan.h +101 -0
  79. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgText.cpp +48 -0
  80. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgText.h +29 -0
  81. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTextPath.cpp +35 -0
  82. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTextPath.h +51 -0
  83. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgUse.cpp +65 -0
  84. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgUse.h +46 -0
  85. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgViewManager.cpp +36 -0
  86. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgViewManager.h +37 -0
  87. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/TextBase.cpp +20 -0
  88. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/TextBase.h +114 -0
  89. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGBaseComponentInstance.h +212 -0
  90. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.cpp +31 -0
  91. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.h +27 -0
  92. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.cpp +23 -0
  93. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.h +27 -0
  94. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.cpp +23 -0
  95. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.h +28 -0
  96. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.cpp +27 -0
  97. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.h +27 -0
  98. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.cpp +40 -0
  99. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.h +48 -0
  100. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.cpp +33 -0
  101. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.h +48 -0
  102. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.cpp +39 -0
  103. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.h +55 -0
  104. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.cpp +33 -0
  105. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.h +49 -0
  106. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.cpp +34 -0
  107. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.h +48 -0
  108. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.cpp +35 -0
  109. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.h +46 -0
  110. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.cpp +199 -0
  111. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.h +48 -0
  112. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.cpp +93 -0
  113. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.h +55 -0
  114. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.cpp +32 -0
  115. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.h +31 -0
  116. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGImageComponentInstance.cpp +103 -0
  117. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGImageComponentInstance.h +43 -0
  118. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLineComponentInstance.cpp +27 -0
  119. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLineComponentInstance.h +27 -0
  120. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.cpp +30 -0
  121. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.h +28 -0
  122. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.cpp +35 -0
  123. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.h +27 -0
  124. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.cpp +30 -0
  125. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.h +27 -0
  126. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPathComponentInstance.cpp +33 -0
  127. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPathComponentInstance.h +29 -0
  128. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.cpp +40 -0
  129. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.h +27 -0
  130. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.cpp +32 -0
  131. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.h +28 -0
  132. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRectComponentInstance.cpp +36 -0
  133. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRectComponentInstance.h +27 -0
  134. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.cpp +124 -0
  135. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.h +56 -0
  136. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.cpp +30 -0
  137. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.h +27 -0
  138. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.cpp +27 -0
  139. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.h +27 -0
  140. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextComponentInstance.cpp +25 -0
  141. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextComponentInstance.h +27 -0
  142. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.cpp +32 -0
  143. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.h +27 -0
  144. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGUseComponentInstance.cpp +32 -0
  145. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGUseComponentInstance.h +32 -0
  146. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/HttpTaskProcessor.cpp +266 -0
  147. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/HttpTaskProcessor.h +88 -0
  148. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/ImageSourceResolver.cpp +134 -0
  149. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/ImageSourceResolver.h +93 -0
  150. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/LRUCache.h +98 -0
  151. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Brush.cpp +50 -0
  152. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Brush.h +52 -0
  153. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/GlyPathBag.cpp +20 -0
  154. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/GlyPathBag.h +31 -0
  155. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Matrix.cpp +100 -0
  156. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Matrix.h +68 -0
  157. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Path.cpp +173 -0
  158. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Path.h +127 -0
  159. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Pen.cpp +57 -0
  160. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Pen.h +59 -0
  161. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Rect.cpp +47 -0
  162. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Rect.h +56 -0
  163. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/RoundRect.cpp +24 -0
  164. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/RoundRect.h +39 -0
  165. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/ShaderEffect.cpp +37 -0
  166. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/ShaderEffect.h +51 -0
  167. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TextStyle.cpp +49 -0
  168. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TextStyle.h +41 -0
  169. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Typography.cpp +9 -0
  170. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Typography.h +25 -0
  171. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TypographyStyle.cpp +31 -0
  172. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TypographyStyle.h +41 -0
  173. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGCircleJSIBinder.h +54 -0
  174. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGClipPathJSIBinder.h +54 -0
  175. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGDefsJSIBinder.h +38 -0
  176. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGEllipseJSIBinder.h +55 -0
  177. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeBlendJSIBinder.h +26 -0
  178. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeColorMatrixJSIBinder.h +26 -0
  179. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeCompositeJSIBinder.h +30 -0
  180. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeFloodJSIBinder.h +26 -0
  181. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeGaussianBlurJSIBinder.h +27 -0
  182. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeOffsetJSIBinder.h +26 -0
  183. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFilterJSIBinder.h +44 -0
  184. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGForeignObjectJSIBinder.h +57 -0
  185. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGGroupJSIBinder.h +54 -0
  186. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGImageJSIBinder.h +58 -0
  187. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGLineJSIBinder.h +55 -0
  188. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGLinearGradientJSIBinder.h +45 -0
  189. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGMarkerJSIBinder.h +66 -0
  190. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGMaskJSIBinder.h +60 -0
  191. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGPathJSIBinder.h +52 -0
  192. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGPatternJSIBinder.h +67 -0
  193. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGRadialGradientJSIBinder.h +47 -0
  194. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGRectJSIBinder.h +57 -0
  195. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewAndroidJSIBinder.h +67 -0
  196. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewJSIBinder.h +36 -0
  197. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGSymbolJSIBinder.h +60 -0
  198. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGTSpanJSIBinder.h +66 -0
  199. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGTextJSIBinder.h +65 -0
  200. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGTextPathJSIBinder.h +71 -0
  201. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGUseJSIBinder.h +56 -0
  202. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/ComponentDescriptors.h +48 -0
  203. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.cpp +20 -0
  204. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.h +253 -0
  205. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.cpp +977 -0
  206. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.h +1280 -0
  207. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.cpp +45 -0
  208. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.h +331 -0
  209. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/States.cpp +18 -0
  210. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/States.h +441 -0
  211. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Color.cpp +458 -0
  212. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Color.h +144 -0
  213. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Decoration.cpp +41 -0
  214. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Decoration.h +483 -0
  215. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Dimension.cpp +64 -0
  216. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Dimension.h +257 -0
  217. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Font.cpp +166 -0
  218. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Font.h +163 -0
  219. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Offset.h +119 -0
  220. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/PaintState.h +240 -0
  221. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Rect.h +423 -0
  222. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Size.h +246 -0
  223. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/SvgPaintState.h +452 -0
  224. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/TextProperties.cpp +91 -0
  225. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/TextProperties.h +56 -0
  226. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/ViewBox.h +108 -0
  227. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageComponentDescriptor.h +41 -0
  228. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageShadowNode.cpp +62 -0
  229. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageShadowNode.h +63 -0
  230. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageState.cpp +17 -0
  231. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageState.h +58 -0
  232. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGImageModule.cpp +83 -0
  233. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGImageModule.h +32 -0
  234. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGRenderableModule.cpp +101 -0
  235. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGRenderableModule.h +32 -0
  236. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGSvgViewModule.cpp +71 -0
  237. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGSvgViewModule.h +32 -0
  238. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/DynamicUtils.h +55 -0
  239. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/FilterManager.h +190 -0
  240. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/GlyphContext.cpp +221 -0
  241. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/GlyphContext.h +106 -0
  242. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/LinearMap.h +69 -0
  243. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/PathParserUtils.cpp +591 -0
  244. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/PathParserUtils.h +93 -0
  245. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/StringUtils.cpp +134 -0
  246. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/StringUtils.h +644 -0
  247. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgAttributesParser.cpp +239 -0
  248. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgAttributesParser.h +277 -0
  249. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgMarkerPositionUtils.h +200 -0
  250. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgUtils.h +176 -0
  251. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/TextPathHelper.cpp +94 -0
  252. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/TextPathHelper.h +61 -0
  253. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/RNSVGImageModule.ts +21 -0
  254. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/RNSVGRenderableModule.ts +16 -0
  255. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/RNSVGSvgViewModule.ts +18 -0
  256. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/SvgPackage.ts +58 -0
  257. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/module.json +30 -0
  258. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/resources/base/element/string.json +8 -0
  259. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/resources/en_US/element/string.json +8 -0
  260. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/resources/zh_CN/element/string.json +8 -0
  261. package/harmony/svg/build/default/cache/default/default@PackageHar/ts.ts +8 -0
  262. package/harmony/svg/build/default/generated/pm/default/oh-package.json5 +1 -0
  263. package/harmony/svg/build/default/generated/r/default/ResourceTable.h +24 -0
  264. package/harmony/svg/build/default/intermediates/loader/default/loader.json +26 -0
  265. package/harmony/svg/build/default/intermediates/merge_profile/default/module.json +27 -0
  266. package/harmony/svg/build/default/intermediates/patch/default/base_native_libs.json +1 -0
  267. package/harmony/svg/build/default/intermediates/process_profile/default/module.json +30 -0
  268. package/harmony/svg/build/default/intermediates/res/default/ResourceTable.txt +1 -0
  269. package/harmony/svg/build/default/intermediates/res/default/ark_module.json +1 -0
  270. package/harmony/svg/build/default/intermediates/res/default/ids_map/id_defined.json +7 -0
  271. package/harmony/svg/build/default/intermediates/res/default/module.json +28 -0
  272. package/harmony/svg/build/default/intermediates/res/default/opt-compression.json +1 -0
  273. package/harmony/svg/build/default/intermediates/res/default/resConfig.json +1 -0
  274. package/harmony/svg/build/default/intermediates/res/default/resources/rawfile/rnoh.profdata +0 -0
  275. package/harmony/svg/build/default/intermediates/res/default/resources.index +0 -0
  276. package/harmony/svg/build/default/outputs/default/svg.har +0 -0
  277. package/harmony/svg/build-profile.json5 +9 -0
  278. package/harmony/svg/hvigorfile.ts +2 -0
  279. package/harmony/svg/index.ets +7 -0
  280. package/harmony/svg/oh-package.json5 +13 -0
  281. package/harmony/svg/src/main/cpp/Attribute.h +52 -0
  282. package/harmony/svg/src/main/cpp/CMakeLists.txt +32 -0
  283. package/harmony/svg/src/main/cpp/FallbackProps.h +0 -0
  284. package/harmony/svg/src/main/cpp/FontHolderBase.cpp +22 -0
  285. package/harmony/svg/src/main/cpp/FontHolderBase.h +54 -0
  286. package/harmony/svg/src/main/cpp/SVGPackage.cpp +135 -0
  287. package/harmony/svg/src/main/cpp/SVGPackage.h +157 -0
  288. package/harmony/svg/src/main/cpp/SvgArkUINode.cpp +78 -0
  289. package/harmony/svg/src/main/cpp/SvgArkUINode.h +51 -0
  290. package/harmony/svg/src/main/cpp/SvgBaseAttribute.h +83 -0
  291. package/harmony/svg/src/main/cpp/SvgCircle.cpp +29 -0
  292. package/harmony/svg/src/main/cpp/SvgCircle.h +29 -0
  293. package/harmony/svg/src/main/cpp/SvgClipPath.h +22 -0
  294. package/harmony/svg/src/main/cpp/SvgContext.cpp +56 -0
  295. package/harmony/svg/src/main/cpp/SvgContext.h +71 -0
  296. package/harmony/svg/src/main/cpp/SvgDefs.h +46 -0
  297. package/harmony/svg/src/main/cpp/SvgEllipse.cpp +32 -0
  298. package/harmony/svg/src/main/cpp/SvgEllipse.h +34 -0
  299. package/harmony/svg/src/main/cpp/SvgFilter.cpp +505 -0
  300. package/harmony/svg/src/main/cpp/SvgFilter.h +112 -0
  301. package/harmony/svg/src/main/cpp/SvgForeignObjectNode.cpp +86 -0
  302. package/harmony/svg/src/main/cpp/SvgForeignObjectNode.h +81 -0
  303. package/harmony/svg/src/main/cpp/SvgForeignObjectNodeDelegate.h +30 -0
  304. package/harmony/svg/src/main/cpp/SvgForeignProps.h +39 -0
  305. package/harmony/svg/src/main/cpp/SvgGradient.cpp +117 -0
  306. package/harmony/svg/src/main/cpp/SvgGradient.h +49 -0
  307. package/harmony/svg/src/main/cpp/SvgGraphic.cpp +553 -0
  308. package/harmony/svg/src/main/cpp/SvgGraphic.h +77 -0
  309. package/harmony/svg/src/main/cpp/SvgGroup.cpp +93 -0
  310. package/harmony/svg/src/main/cpp/SvgGroup.h +41 -0
  311. package/harmony/svg/src/main/cpp/SvgHost.cpp +27 -0
  312. package/harmony/svg/src/main/cpp/SvgHost.h +38 -0
  313. package/harmony/svg/src/main/cpp/SvgImage.cpp +168 -0
  314. package/harmony/svg/src/main/cpp/SvgImage.h +52 -0
  315. package/harmony/svg/src/main/cpp/SvgLine.cpp +28 -0
  316. package/harmony/svg/src/main/cpp/SvgLine.h +32 -0
  317. package/harmony/svg/src/main/cpp/SvgMarker.cpp +61 -0
  318. package/harmony/svg/src/main/cpp/SvgMarker.h +86 -0
  319. package/harmony/svg/src/main/cpp/SvgMask.cpp +72 -0
  320. package/harmony/svg/src/main/cpp/SvgMask.h +68 -0
  321. package/harmony/svg/src/main/cpp/SvgNode.cpp +395 -0
  322. package/harmony/svg/src/main/cpp/SvgNode.h +377 -0
  323. package/harmony/svg/src/main/cpp/SvgPath.cpp +42 -0
  324. package/harmony/svg/src/main/cpp/SvgPath.h +29 -0
  325. package/harmony/svg/src/main/cpp/SvgPattern.cpp +77 -0
  326. package/harmony/svg/src/main/cpp/SvgPattern.h +64 -0
  327. package/harmony/svg/src/main/cpp/SvgQuote.h +87 -0
  328. package/harmony/svg/src/main/cpp/SvgRect.cpp +58 -0
  329. package/harmony/svg/src/main/cpp/SvgRect.h +33 -0
  330. package/harmony/svg/src/main/cpp/SvgSvg.cpp +83 -0
  331. package/harmony/svg/src/main/cpp/SvgSvg.h +52 -0
  332. package/harmony/svg/src/main/cpp/SvgSymbol.cpp +25 -0
  333. package/harmony/svg/src/main/cpp/SvgSymbol.h +37 -0
  334. package/harmony/svg/src/main/cpp/SvgTSpan.cpp +501 -0
  335. package/harmony/svg/src/main/cpp/SvgTSpan.h +101 -0
  336. package/harmony/svg/src/main/cpp/SvgText.cpp +48 -0
  337. package/harmony/svg/src/main/cpp/SvgText.h +29 -0
  338. package/harmony/svg/src/main/cpp/SvgTextPath.cpp +35 -0
  339. package/harmony/svg/src/main/cpp/SvgTextPath.h +51 -0
  340. package/harmony/svg/src/main/cpp/SvgUse.cpp +65 -0
  341. package/harmony/svg/src/main/cpp/SvgUse.h +46 -0
  342. package/harmony/svg/src/main/cpp/SvgViewManager.cpp +36 -0
  343. package/harmony/svg/src/main/cpp/SvgViewManager.h +37 -0
  344. package/harmony/svg/src/main/cpp/TextBase.cpp +20 -0
  345. package/harmony/svg/src/main/cpp/TextBase.h +114 -0
  346. package/harmony/svg/src/main/cpp/componentInstances/RNSVGBaseComponentInstance.h +212 -0
  347. package/harmony/svg/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.cpp +31 -0
  348. package/harmony/svg/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.h +27 -0
  349. package/harmony/svg/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.cpp +23 -0
  350. package/harmony/svg/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.h +27 -0
  351. package/harmony/svg/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.cpp +23 -0
  352. package/harmony/svg/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.h +28 -0
  353. package/harmony/svg/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.cpp +27 -0
  354. package/harmony/svg/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.h +27 -0
  355. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.cpp +40 -0
  356. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.h +48 -0
  357. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.cpp +33 -0
  358. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.h +48 -0
  359. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.cpp +39 -0
  360. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.h +55 -0
  361. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.cpp +33 -0
  362. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.h +49 -0
  363. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.cpp +34 -0
  364. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.h +48 -0
  365. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.cpp +35 -0
  366. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.h +46 -0
  367. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.cpp +199 -0
  368. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.h +48 -0
  369. package/harmony/svg/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.cpp +93 -0
  370. package/harmony/svg/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.h +55 -0
  371. package/harmony/svg/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.cpp +32 -0
  372. package/harmony/svg/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.h +31 -0
  373. package/harmony/svg/src/main/cpp/componentInstances/RNSVGImageComponentInstance.cpp +103 -0
  374. package/harmony/svg/src/main/cpp/componentInstances/RNSVGImageComponentInstance.h +43 -0
  375. package/harmony/svg/src/main/cpp/componentInstances/RNSVGLineComponentInstance.cpp +27 -0
  376. package/harmony/svg/src/main/cpp/componentInstances/RNSVGLineComponentInstance.h +27 -0
  377. package/harmony/svg/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.cpp +30 -0
  378. package/harmony/svg/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.h +28 -0
  379. package/harmony/svg/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.cpp +35 -0
  380. package/harmony/svg/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.h +27 -0
  381. package/harmony/svg/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.cpp +30 -0
  382. package/harmony/svg/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.h +27 -0
  383. package/harmony/svg/src/main/cpp/componentInstances/RNSVGPathComponentInstance.cpp +33 -0
  384. package/harmony/svg/src/main/cpp/componentInstances/RNSVGPathComponentInstance.h +29 -0
  385. package/harmony/svg/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.cpp +40 -0
  386. package/harmony/svg/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.h +27 -0
  387. package/harmony/svg/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.cpp +32 -0
  388. package/harmony/svg/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.h +28 -0
  389. package/harmony/svg/src/main/cpp/componentInstances/RNSVGRectComponentInstance.cpp +36 -0
  390. package/harmony/svg/src/main/cpp/componentInstances/RNSVGRectComponentInstance.h +27 -0
  391. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.cpp +124 -0
  392. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.h +56 -0
  393. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.cpp +30 -0
  394. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.h +27 -0
  395. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.cpp +27 -0
  396. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.h +27 -0
  397. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTextComponentInstance.cpp +25 -0
  398. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTextComponentInstance.h +27 -0
  399. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.cpp +32 -0
  400. package/harmony/svg/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.h +27 -0
  401. package/harmony/svg/src/main/cpp/componentInstances/RNSVGUseComponentInstance.cpp +32 -0
  402. package/harmony/svg/src/main/cpp/componentInstances/RNSVGUseComponentInstance.h +32 -0
  403. package/harmony/svg/src/main/cpp/downloadUtils/HttpTaskProcessor.cpp +266 -0
  404. package/harmony/svg/src/main/cpp/downloadUtils/HttpTaskProcessor.h +88 -0
  405. package/harmony/svg/src/main/cpp/downloadUtils/ImageSourceResolver.cpp +134 -0
  406. package/harmony/svg/src/main/cpp/downloadUtils/ImageSourceResolver.h +93 -0
  407. package/harmony/svg/src/main/cpp/downloadUtils/LRUCache.h +98 -0
  408. package/harmony/svg/src/main/cpp/drawing/Brush.cpp +50 -0
  409. package/harmony/svg/src/main/cpp/drawing/Brush.h +52 -0
  410. package/harmony/svg/src/main/cpp/drawing/GlyPathBag.cpp +20 -0
  411. package/harmony/svg/src/main/cpp/drawing/GlyPathBag.h +31 -0
  412. package/harmony/svg/src/main/cpp/drawing/Matrix.cpp +100 -0
  413. package/harmony/svg/src/main/cpp/drawing/Matrix.h +68 -0
  414. package/harmony/svg/src/main/cpp/drawing/Path.cpp +173 -0
  415. package/harmony/svg/src/main/cpp/drawing/Path.h +127 -0
  416. package/harmony/svg/src/main/cpp/drawing/Pen.cpp +57 -0
  417. package/harmony/svg/src/main/cpp/drawing/Pen.h +59 -0
  418. package/harmony/svg/src/main/cpp/drawing/Rect.cpp +47 -0
  419. package/harmony/svg/src/main/cpp/drawing/Rect.h +56 -0
  420. package/harmony/svg/src/main/cpp/drawing/RoundRect.cpp +24 -0
  421. package/harmony/svg/src/main/cpp/drawing/RoundRect.h +39 -0
  422. package/harmony/svg/src/main/cpp/drawing/ShaderEffect.cpp +37 -0
  423. package/harmony/svg/src/main/cpp/drawing/ShaderEffect.h +51 -0
  424. package/harmony/svg/src/main/cpp/drawing/TextStyle.cpp +49 -0
  425. package/harmony/svg/src/main/cpp/drawing/TextStyle.h +41 -0
  426. package/harmony/svg/src/main/cpp/drawing/Typography.cpp +9 -0
  427. package/harmony/svg/src/main/cpp/drawing/Typography.h +25 -0
  428. package/harmony/svg/src/main/cpp/drawing/TypographyStyle.cpp +31 -0
  429. package/harmony/svg/src/main/cpp/drawing/TypographyStyle.h +41 -0
  430. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGCircleJSIBinder.h +54 -0
  431. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGClipPathJSIBinder.h +54 -0
  432. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGDefsJSIBinder.h +38 -0
  433. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGEllipseJSIBinder.h +55 -0
  434. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeBlendJSIBinder.h +26 -0
  435. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeColorMatrixJSIBinder.h +26 -0
  436. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeCompositeJSIBinder.h +30 -0
  437. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeFloodJSIBinder.h +26 -0
  438. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeGaussianBlurJSIBinder.h +27 -0
  439. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeOffsetJSIBinder.h +26 -0
  440. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFilterJSIBinder.h +44 -0
  441. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGForeignObjectJSIBinder.h +57 -0
  442. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGGroupJSIBinder.h +54 -0
  443. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGImageJSIBinder.h +58 -0
  444. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGLineJSIBinder.h +55 -0
  445. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGLinearGradientJSIBinder.h +45 -0
  446. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGMarkerJSIBinder.h +66 -0
  447. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGMaskJSIBinder.h +60 -0
  448. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGPathJSIBinder.h +52 -0
  449. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGPatternJSIBinder.h +67 -0
  450. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGRadialGradientJSIBinder.h +47 -0
  451. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGRectJSIBinder.h +57 -0
  452. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewAndroidJSIBinder.h +67 -0
  453. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewJSIBinder.h +36 -0
  454. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGSymbolJSIBinder.h +60 -0
  455. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGTSpanJSIBinder.h +66 -0
  456. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGTextJSIBinder.h +65 -0
  457. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGTextPathJSIBinder.h +71 -0
  458. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGUseJSIBinder.h +56 -0
  459. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/ComponentDescriptors.h +48 -0
  460. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.cpp +20 -0
  461. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.h +253 -0
  462. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.cpp +977 -0
  463. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.h +1280 -0
  464. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.cpp +45 -0
  465. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.h +331 -0
  466. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/States.cpp +18 -0
  467. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/States.h +441 -0
  468. package/harmony/svg/src/main/cpp/properties/Color.cpp +458 -0
  469. package/harmony/svg/src/main/cpp/properties/Color.h +144 -0
  470. package/harmony/svg/src/main/cpp/properties/Decoration.cpp +41 -0
  471. package/harmony/svg/src/main/cpp/properties/Decoration.h +483 -0
  472. package/harmony/svg/src/main/cpp/properties/Dimension.cpp +64 -0
  473. package/harmony/svg/src/main/cpp/properties/Dimension.h +257 -0
  474. package/harmony/svg/src/main/cpp/properties/Font.cpp +166 -0
  475. package/harmony/svg/src/main/cpp/properties/Font.h +163 -0
  476. package/harmony/svg/src/main/cpp/properties/Offset.h +119 -0
  477. package/harmony/svg/src/main/cpp/properties/PaintState.h +240 -0
  478. package/harmony/svg/src/main/cpp/properties/Rect.h +423 -0
  479. package/harmony/svg/src/main/cpp/properties/Size.h +246 -0
  480. package/harmony/svg/src/main/cpp/properties/SvgPaintState.h +452 -0
  481. package/harmony/svg/src/main/cpp/properties/TextProperties.cpp +91 -0
  482. package/harmony/svg/src/main/cpp/properties/TextProperties.h +56 -0
  483. package/harmony/svg/src/main/cpp/properties/ViewBox.h +108 -0
  484. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageComponentDescriptor.h +41 -0
  485. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageShadowNode.cpp +62 -0
  486. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageShadowNode.h +63 -0
  487. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageState.cpp +17 -0
  488. package/harmony/svg/src/main/cpp/svgImage/RNSVGImageState.h +58 -0
  489. package/harmony/svg/src/main/cpp/turboModules/RNSVGImageModule.cpp +83 -0
  490. package/harmony/svg/src/main/cpp/turboModules/RNSVGImageModule.h +32 -0
  491. package/harmony/svg/src/main/cpp/turboModules/RNSVGRenderableModule.cpp +101 -0
  492. package/harmony/svg/src/main/cpp/turboModules/RNSVGRenderableModule.h +32 -0
  493. package/harmony/svg/src/main/cpp/turboModules/RNSVGSvgViewModule.cpp +71 -0
  494. package/harmony/svg/src/main/cpp/turboModules/RNSVGSvgViewModule.h +32 -0
  495. package/harmony/svg/src/main/cpp/utils/DynamicUtils.h +55 -0
  496. package/harmony/svg/src/main/cpp/utils/FilterManager.h +190 -0
  497. package/harmony/svg/src/main/cpp/utils/GlyphContext.cpp +221 -0
  498. package/harmony/svg/src/main/cpp/utils/GlyphContext.h +106 -0
  499. package/harmony/svg/src/main/cpp/utils/LinearMap.h +69 -0
  500. package/harmony/svg/src/main/cpp/utils/PathParserUtils.cpp +591 -0
  501. package/harmony/svg/src/main/cpp/utils/PathParserUtils.h +93 -0
  502. package/harmony/svg/src/main/cpp/utils/StringUtils.cpp +134 -0
  503. package/harmony/svg/src/main/cpp/utils/StringUtils.h +644 -0
  504. package/harmony/svg/src/main/cpp/utils/SvgAttributesParser.cpp +239 -0
  505. package/harmony/svg/src/main/cpp/utils/SvgAttributesParser.h +277 -0
  506. package/harmony/svg/src/main/cpp/utils/SvgMarkerPositionUtils.h +200 -0
  507. package/harmony/svg/src/main/cpp/utils/SvgUtils.h +176 -0
  508. package/harmony/svg/src/main/cpp/utils/TextPathHelper.cpp +94 -0
  509. package/harmony/svg/src/main/cpp/utils/TextPathHelper.h +61 -0
  510. package/harmony/svg/src/main/ets/RNSVGImageModule.ts +21 -0
  511. package/harmony/svg/src/main/ets/RNSVGRenderableModule.ts +16 -0
  512. package/harmony/svg/src/main/ets/RNSVGSvgViewModule.ts +18 -0
  513. package/harmony/svg/src/main/ets/SvgPackage.ts +58 -0
  514. package/harmony/svg/src/main/module.json5 +7 -0
  515. package/harmony/svg/src/main/resources/base/element/string.json +8 -0
  516. package/harmony/svg/src/main/resources/en_US/element/string.json +8 -0
  517. package/harmony/svg/src/main/resources/zh_CN/element/string.json +8 -0
  518. package/harmony/svg/ts.ts +8 -0
  519. package/harmony/svg.har +0 -0
  520. package/lib/typescript/babel.config.d.ts +8 -0
  521. package/lib/typescript/babel.config.d.ts.map +1 -0
  522. package/lib/typescript/example/babel.config.d.ts +3 -0
  523. package/lib/typescript/example/babel.config.d.ts.map +1 -0
  524. package/lib/typescript/example/contexts.d.ts +3 -0
  525. package/lib/typescript/example/contexts.d.ts.map +1 -0
  526. package/lib/typescript/example/harmony/entry/hvigorfile.d.ts +2 -0
  527. package/lib/typescript/example/harmony/entry/hvigorfile.d.ts.map +1 -0
  528. package/lib/typescript/example/harmony/hvigorfile.d.ts +2 -0
  529. package/lib/typescript/example/harmony/hvigorfile.d.ts.map +1 -0
  530. package/lib/typescript/example/index.d.ts +2 -0
  531. package/lib/typescript/example/index.d.ts.map +1 -0
  532. package/lib/typescript/example/jest.config.d.ts +3 -0
  533. package/lib/typescript/example/jest.config.d.ts.map +1 -0
  534. package/lib/typescript/example/metro.config.d.ts +3 -0
  535. package/lib/typescript/example/metro.config.d.ts.map +1 -0
  536. package/lib/typescript/example/react-native.config.d.ts +3 -0
  537. package/lib/typescript/example/react-native.config.d.ts.map +1 -0
  538. package/lib/typescript/example/scripts/create-build-profile.d.ts +2 -0
  539. package/lib/typescript/example/scripts/create-build-profile.d.ts.map +1 -0
  540. package/lib/typescript/example/src/index.d.ts +3 -0
  541. package/lib/typescript/example/src/index.d.ts.map +1 -0
  542. package/lib/typescript/src/css/index.d.ts.map +1 -0
  543. package/lib/typescript/src/index.d.ts.map +1 -0
  544. package/package.json +10 -15
  545. package/lib/typescript/css/index.d.ts.map +0 -1
  546. package/lib/typescript/index.d.ts.map +0 -1
  547. /package/lib/typescript/{css → src/css}/index.d.ts +0 -0
  548. /package/lib/typescript/{index.d.ts → src/index.d.ts} +0 -0
@@ -0,0 +1,553 @@
1
+ /*
2
+ * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ *
6
+ * This file incorporates from the OpenHarmony project, licensed under
7
+ * the Apache License, Version 2.0. Specifically:
8
+ * - [OpenHarmony/arkui_ace_engine] (https://gitee.com/openharmony/arkui_ace_engine)
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
11
+ * use this file except in compliance with the License. You may obtain a copy
12
+ * of the License at:
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
18
+ * License for the specific language governing permissions and limitations
19
+ * under the License.
20
+ */
21
+
22
+ #include "utils/SvgMarkerPositionUtils.h"
23
+ #include "SvgMarker.h"
24
+ #include "SvgFilter.h"
25
+ #include "properties/ViewBox.h"
26
+ #include "drawing/Rect.h"
27
+ #include "SvgGraphic.h"
28
+ #include <native_drawing/drawing_bitmap.h>
29
+ #include <native_drawing/drawing_filter.h>
30
+ #include <native_drawing/drawing_image.h>
31
+ #include <native_drawing/drawing_mask_filter.h>
32
+ #include <native_drawing/drawing_path_effect.h>
33
+ #include <native_drawing/drawing_sampling_options.h>
34
+ #include <native_drawing/drawing_shader_effect.h>
35
+ #include <native_drawing/drawing_point.h>
36
+ #include <native_drawing/drawing_matrix.h>
37
+ #include <native_drawing/drawing_types.h>
38
+
39
+ namespace rnoh {
40
+ namespace svg {
41
+
42
+ constexpr int TRANSFORM_SCALE_X_INDEX = 0;
43
+ constexpr int TRANSFORM_SKEW_Y_INDEX = 1;
44
+ constexpr int TRANSFORM_SKEW_X_INDEX = 2;
45
+ constexpr int TRANSFORM_SCALE_Y_INDEX = 3;
46
+ constexpr int TRANSFORM_TRANSLATE_X_INDEX = 4;
47
+ constexpr int TRANSFORM_TRANSLATE_Y_INDEX = 5;
48
+ constexpr double MATRIX_Z_VALUE = 1.0;
49
+ constexpr int MIN_TRANSFORM_SIZE = 6;
50
+ constexpr int MAX_TRANSFORM_SIZE = 9;
51
+
52
+ void SvgGraphic::OnDraw(OH_Drawing_Canvas *canvas) {
53
+
54
+ fillBrush_.Reset();
55
+ strokePen_.Reset();
56
+ path_.Reset();
57
+ path_ = AsPath();
58
+ UpdateGradient(attributes_.fillState.GetGradient());
59
+ UpdateGradient(attributes_.strokeState.GetGradient());
60
+
61
+ if (UpdateFillStyle()) {
62
+ OnGraphicFill(canvas);
63
+ }
64
+
65
+ if (UpdateStrokeStyle()) {
66
+ OnGraphicStroke(canvas);
67
+ }
68
+
69
+ if (!attributes_.markerStart.empty() || !attributes_.markerMid.empty() || !attributes_.markerEnd.empty()) {
70
+ DrawMarker(canvas);
71
+ }
72
+ }
73
+
74
+ void SvgGraphic::OnGraphicFill(OH_Drawing_Canvas *canvas) {
75
+ auto smoothEdge = GetSmoothEdge();
76
+ bool hasCustomFilter = !attributes_.filterId.empty();
77
+
78
+ if (GreatNotEqual(smoothEdge, 0.0f) || hasCustomFilter) {
79
+ auto tmpFillBrush = fillBrush_;
80
+
81
+ // Apply smooth edge filter
82
+ if (GreatNotEqual(smoothEdge, 0.0f)) {
83
+ auto *filter = OH_Drawing_FilterCreate();
84
+ auto *maskFilter =
85
+ OH_Drawing_MaskFilterCreateBlur(OH_Drawing_BlurType::NORMAL, static_cast<double>(smoothEdge), false);
86
+ OH_Drawing_FilterSetMaskFilter(filter, maskFilter);
87
+ OH_Drawing_BrushSetFilter(tmpFillBrush.get(), filter);
88
+ OH_Drawing_FilterDestroy(filter);
89
+ OH_Drawing_MaskFilterDestroy(maskFilter);
90
+ }
91
+
92
+ // Apply custom SVG filter
93
+ if (hasCustomFilter) {
94
+ auto svgContext = GetContext();
95
+ if (svgContext) {
96
+ auto filterNode = svgContext->GetSvgNodeById(attributes_.filterId);
97
+ auto svgFilter = std::dynamic_pointer_cast<SvgFilter>(filterNode);
98
+ if (svgFilter) {
99
+ svgFilter->ApplyToBrush(tmpFillBrush);
100
+ }
101
+ }
102
+ }
103
+ OH_Drawing_CanvasAttachBrush(canvas, tmpFillBrush.get());
104
+ OH_Drawing_CanvasDrawPath(canvas, path_.get());
105
+ OH_Drawing_CanvasDetachBrush(canvas);
106
+ } else {
107
+ OH_Drawing_CanvasAttachBrush(canvas, fillBrush_.get());
108
+ OH_Drawing_CanvasDrawPath(canvas, path_.get());
109
+ OH_Drawing_CanvasDetachBrush(canvas);
110
+ }
111
+ }
112
+
113
+ // Use Pen to draw stroke
114
+ void SvgGraphic::OnGraphicStroke(OH_Drawing_Canvas *canvas) {
115
+ auto smoothEdge = GetSmoothEdge();
116
+ bool hasCustomFilter = !attributes_.filterId.empty();
117
+
118
+ if (GreatNotEqual(smoothEdge, 0.0f) || hasCustomFilter) {
119
+ auto tmpStrokePen = strokePen_;
120
+
121
+ // Apply smooth edge filter
122
+ if (GreatNotEqual(smoothEdge, 0.0f)) {
123
+ auto *filter = OH_Drawing_FilterCreate();
124
+ auto *maskFilter =
125
+ OH_Drawing_MaskFilterCreateBlur(OH_Drawing_BlurType::NORMAL, static_cast<double>(smoothEdge), false);
126
+ OH_Drawing_FilterSetMaskFilter(filter, maskFilter);
127
+ OH_Drawing_PenSetFilter(tmpStrokePen.get(), filter);
128
+ OH_Drawing_FilterDestroy(filter);
129
+ OH_Drawing_MaskFilterDestroy(maskFilter);
130
+ }
131
+
132
+ // Apply custom SVG filter
133
+ if (hasCustomFilter) {
134
+ auto svgContext = GetContext();
135
+ if (svgContext) {
136
+ auto filterNode = svgContext->GetSvgNodeById(attributes_.filterId);
137
+ auto svgFilter = std::dynamic_pointer_cast<SvgFilter>(filterNode);
138
+ if (svgFilter) {
139
+ svgFilter->ApplyToPen(tmpStrokePen);
140
+ }
141
+ }
142
+ }
143
+
144
+ OH_Drawing_CanvasAttachPen(canvas, tmpStrokePen.get());
145
+ OH_Drawing_CanvasDrawPath(canvas, path_.get());
146
+ OH_Drawing_CanvasDetachPen(canvas);
147
+ } else {
148
+ const auto &transform = attributes_.transform;
149
+ if (attributes_.strokeState.GetVectorEffect() && transform.size() >= MIN_TRANSFORM_SIZE) {
150
+ auto matrix = drawing::Matrix();
151
+ matrix.SetMatrix(transform[TRANSFORM_SCALE_X_INDEX], transform[TRANSFORM_SKEW_X_INDEX],
152
+ transform[TRANSFORM_TRANSLATE_X_INDEX] * scale_, transform[TRANSFORM_SKEW_Y_INDEX],
153
+ transform[TRANSFORM_SCALE_Y_INDEX], transform[TRANSFORM_TRANSLATE_Y_INDEX] * scale_, 0, 0,
154
+ MATRIX_Z_VALUE);
155
+ path_.Transform(matrix);
156
+ }
157
+ OH_Drawing_CanvasAttachPen(canvas, strokePen_.get());
158
+ OH_Drawing_CanvasDrawPath(canvas, path_.get());
159
+ OH_Drawing_CanvasDetachPen(canvas);
160
+ }
161
+ }
162
+
163
+ void SvgGraphic::UpdateGradient(std::optional<Gradient> &gradient) {
164
+ CHECK_NULL_VOID(gradient);
165
+ auto nodeBounds = (gradient->GetGradientUnits() == Unit::objectBoundingBox)
166
+ ? AsBounds()
167
+ : Rect(0, 0, context_->GetSvgSize().Width(), context_->GetSvgSize().Height());
168
+ if (gradient->GetType() == GradientType::LINEAR) {
169
+ const auto &linearGradient = gradient->GetLinearGradient();
170
+ auto gradientInfo = LinearGradientInfo();
171
+ if (linearGradient.x1.value().Unit() == DimensionUnit::PERCENT) {
172
+ gradientInfo.x1 = nodeBounds.Left() + linearGradient.x1->RelativeConvertToPx(nodeBounds.Width(), scale_);
173
+ } else {
174
+ gradientInfo.x1 = linearGradient.x1->RelativeConvertToPx(nodeBounds.Width(), scale_);
175
+ }
176
+ if (linearGradient.y1.value().Unit() == DimensionUnit::PERCENT) {
177
+ gradientInfo.y1 = nodeBounds.Top() + linearGradient.y1->RelativeConvertToPx(nodeBounds.Height(), scale_);
178
+ } else {
179
+ gradientInfo.y1 = linearGradient.y1->RelativeConvertToPx(nodeBounds.Height(), scale_);
180
+ }
181
+ if (linearGradient.x2.value().Unit() == DimensionUnit::PERCENT) {
182
+ gradientInfo.x2 = nodeBounds.Left() + linearGradient.x2->RelativeConvertToPx(nodeBounds.Width(), scale_);
183
+ } else {
184
+ gradientInfo.x2 = linearGradient.x2->RelativeConvertToPx(nodeBounds.Width(), scale_);
185
+ }
186
+ if (linearGradient.y2.value().Unit() == DimensionUnit::PERCENT) {
187
+ gradientInfo.y2 = nodeBounds.Top() + linearGradient.y2->RelativeConvertToPx(nodeBounds.Height(), scale_);
188
+ } else {
189
+ gradientInfo.y2 = linearGradient.y2->RelativeConvertToPx(nodeBounds.Height(), scale_);
190
+ }
191
+ gradient->SetLinearGradientInfo(gradientInfo);
192
+ }
193
+ if (gradient->GetType() == GradientType::RADIAL) {
194
+ const auto &radialGradient = gradient->GetRadialGradient();
195
+ auto gradientInfo = RadialGradientInfo();
196
+ if (radialGradient.radialCenterX.value().Unit() == DimensionUnit::PERCENT) {
197
+ gradientInfo.cx =
198
+ nodeBounds.Left() + radialGradient.radialCenterX->RelativeConvertToPx(nodeBounds.Width(), scale_);
199
+ } else {
200
+ gradientInfo.cx = radialGradient.radialCenterX->RelativeConvertToPx(nodeBounds.Width(), scale_);
201
+ }
202
+ if (radialGradient.radialCenterY.value().Unit() == DimensionUnit::PERCENT) {
203
+ gradientInfo.cy =
204
+ nodeBounds.Top() + radialGradient.radialCenterY->RelativeConvertToPx(nodeBounds.Height(), scale_);
205
+ } else {
206
+ gradientInfo.cy = radialGradient.radialCenterY->RelativeConvertToPx(nodeBounds.Height(), scale_);
207
+ }
208
+ if (radialGradient.fRadialCenterX.value().Unit() == DimensionUnit::PERCENT) {
209
+ gradientInfo.fx =
210
+ nodeBounds.Left() + radialGradient.fRadialCenterX->RelativeConvertToPx(nodeBounds.Width(), scale_);
211
+ } else {
212
+ gradientInfo.fx = radialGradient.fRadialCenterX->RelativeConvertToPx(nodeBounds.Width(), scale_);
213
+ }
214
+ if (radialGradient.fRadialCenterY.value().Unit() == DimensionUnit::PERCENT) {
215
+ gradientInfo.fy =
216
+ nodeBounds.Top() + radialGradient.fRadialCenterY->RelativeConvertToPx(nodeBounds.Height(), scale_);
217
+ } else {
218
+ gradientInfo.fy = radialGradient.fRadialCenterY->RelativeConvertToPx(nodeBounds.Height(), scale_);
219
+ }
220
+ gradientInfo.rx = radialGradient.radialHorizontalSize->RelativeConvertToPx(nodeBounds.Width(), scale_);
221
+ gradientInfo.ry = radialGradient.radialVerticalSize->RelativeConvertToPx(nodeBounds.Height(), scale_);
222
+ gradient->SetRadialGradientInfo(gradientInfo);
223
+ }
224
+ }
225
+
226
+ bool SvgGraphic::UpdateFillStyle(bool antiAlias) {
227
+ const auto &fillState_ = attributes_.fillState;
228
+ if (fillState_.GetColor() == Color::TRANSPARENT && !fillState_.GetGradient() && !fillState_.GetPatternAttr()) {
229
+ return false;
230
+ }
231
+ double curOpacity = fillState_.GetOpacity() * attributes_.opacity;
232
+ fillBrush_.SetAntiAlias(antiAlias);
233
+ if (fillState_.GetGradient().has_value()) {
234
+ SetFillGradientStyle(curOpacity);
235
+ } else if (fillState_.GetPatternAttr()) {
236
+ return SetPatternStyle();
237
+ } else {
238
+ fillBrush_.SetColor(fillState_.GetColor().BlendOpacity(curOpacity).GetValue());
239
+ }
240
+ path_.SetFillType(fillState_.GetFillRuleForDraw());
241
+ return true;
242
+ }
243
+ void SvgGraphic::SetFillGradientStyle(double opacity) {
244
+ const auto &fillState_ = attributes_.fillState;
245
+ auto gradient = fillState_.GetGradient();
246
+ CHECK_NULL_VOID(gradient);
247
+ auto gradientColors = gradient->GetColors();
248
+ if (gradientColors.empty()) {
249
+ return;
250
+ }
251
+ std::vector<float> pos;
252
+ std::vector<uint32_t> colors;
253
+ for (const auto &gradientColor : gradientColors) {
254
+ pos.push_back(static_cast<float>(gradientColor.GetDimension().Value()));
255
+ colors.push_back(
256
+ gradientColor.GetColor().BlendOpacity(gradientColor.GetOpacity()).BlendOpacity(opacity).GetValue());
257
+ }
258
+ drawing::Matrix transMatrix;
259
+ if (gradient->GetGradientTransform().size() == 9) {
260
+ transMatrix.SetMatrix(gradient->GetGradientTransform()[0], gradient->GetGradientTransform()[1],
261
+ gradient->GetGradientTransform()[2], gradient->GetGradientTransform()[3],
262
+ gradient->GetGradientTransform()[4], gradient->GetGradientTransform()[5],
263
+ gradient->GetGradientTransform()[6], gradient->GetGradientTransform()[7],
264
+ gradient->GetGradientTransform()[8]);
265
+ }
266
+ if (gradient->GetType() == GradientType::LINEAR && gradient->IsValid()) {
267
+ auto info = gradient->GetLinearGradientInfo();
268
+ OH_Drawing_Point2D ptsPoint2D[2] = {
269
+ {static_cast<float>(info.x1), static_cast<float>(info.y1)},
270
+ {static_cast<float>(info.x2), static_cast<float>(info.y2)},
271
+ };
272
+ fillBrush_.SetLinearShaderEffect(&ptsPoint2D[0], &ptsPoint2D[1], colors.data(), pos.data(), colors.size(),
273
+ static_cast<OH_Drawing_TileMode>(gradient->GetSpreadMethod()),
274
+ transMatrix.get());
275
+ }
276
+ if (gradient->GetType() == GradientType::RADIAL && gradient->IsValid()) {
277
+ auto info = gradient->GetRadialGradientInfo();
278
+ drawing::Matrix scaleMatrix;
279
+ if (info.ry < info.rx) {
280
+ scaleMatrix = drawing::Matrix::CreateScale(1, info.ry / info.rx, info.cx, info.cy);
281
+ } else {
282
+ scaleMatrix = drawing::Matrix::CreateScale(info.rx / info.ry, 1, info.cx, info.cy);
283
+ }
284
+ OH_Drawing_Point2D focal = {static_cast<float>(info.fx), static_cast<float>(info.fy)};
285
+ OH_Drawing_Point2D center = {static_cast<float>(info.cx), static_cast<float>(info.cy)};
286
+ drawing::Matrix concatMatrix;
287
+ concatMatrix = scaleMatrix.Concat(transMatrix);
288
+ fillBrush_.SetRadialShaderEffect(
289
+ &focal, 0, &center, info.rx > info.ry ? info.rx : info.ry, colors.data(), pos.data(), colors.size(),
290
+ static_cast<OH_Drawing_TileMode>(gradient->GetSpreadMethod()), concatMatrix.get());
291
+ }
292
+ }
293
+
294
+ void SvgGraphic::SetStrokeGradientStyle(double opacity) {
295
+ const auto &strokeState_ = attributes_.strokeState;
296
+ auto gradient = strokeState_.GetGradient();
297
+ CHECK_NULL_VOID(gradient);
298
+ auto gradientColors = gradient->GetColors();
299
+ if (gradientColors.empty()) {
300
+ return;
301
+ }
302
+ std::vector<float> pos;
303
+ std::vector<uint32_t> colors;
304
+ for (const auto &gradientColor : gradientColors) {
305
+ pos.push_back(static_cast<float>(gradientColor.GetDimension().Value()));
306
+ colors.push_back(
307
+ gradientColor.GetColor().BlendOpacity(gradientColor.GetOpacity()).BlendOpacity(opacity).GetValue());
308
+ }
309
+ drawing::Matrix transMatrix;
310
+ if (gradient->GetGradientTransform().size() == 9) {
311
+ transMatrix.SetMatrix(gradient->GetGradientTransform()[0], gradient->GetGradientTransform()[1],
312
+ gradient->GetGradientTransform()[2], gradient->GetGradientTransform()[3],
313
+ gradient->GetGradientTransform()[4], gradient->GetGradientTransform()[5],
314
+ gradient->GetGradientTransform()[6], gradient->GetGradientTransform()[7],
315
+ gradient->GetGradientTransform()[8]);
316
+ }
317
+ if (gradient->GetType() == GradientType::LINEAR && gradient->IsValid()) {
318
+ auto info = gradient->GetLinearGradientInfo();
319
+ OH_Drawing_Point2D ptsPoint2D[2] = {
320
+ {static_cast<float>(info.x1), static_cast<float>(info.y1)},
321
+ {static_cast<float>(info.x2), static_cast<float>(info.y2)},
322
+ };
323
+ strokePen_.SetLinearShaderEffect(&ptsPoint2D[0], &ptsPoint2D[1], colors.data(), pos.data(), colors.size(),
324
+ static_cast<OH_Drawing_TileMode>(gradient->GetSpreadMethod()),
325
+ transMatrix.get());
326
+ }
327
+ if (gradient->GetType() == GradientType::RADIAL && gradient->IsValid()) {
328
+ auto info = gradient->GetRadialGradientInfo();
329
+ drawing::Matrix scaleMatrix;
330
+ if (info.ry < info.rx) {
331
+ scaleMatrix = drawing::Matrix::CreateScale(1, info.ry / info.rx, info.cx, info.cy);
332
+ } else {
333
+ scaleMatrix = drawing::Matrix::CreateScale(info.rx / info.ry, 1, info.cx, info.cy);
334
+ }
335
+ OH_Drawing_Point2D focal = {static_cast<float>(info.fx), static_cast<float>(info.fy)};
336
+ OH_Drawing_Point2D center = {static_cast<float>(info.cx), static_cast<float>(info.cy)};
337
+ drawing::Matrix concatMatrix;
338
+ concatMatrix = scaleMatrix.Concat(transMatrix);
339
+ strokePen_.SetRadialShaderEffect(
340
+ &focal, 0, &center, info.rx > info.ry ? info.rx : info.ry, colors.data(), pos.data(), colors.size(),
341
+ static_cast<OH_Drawing_TileMode>(gradient->GetSpreadMethod()), concatMatrix.get());
342
+ }
343
+ }
344
+
345
+ bool SvgGraphic::SetPatternStyle() {
346
+ const auto &fillState_ = attributes_.fillState;
347
+ auto pattern = fillState_.GetPatternAttr();
348
+ if (pattern == nullptr) {
349
+ return false;
350
+ }
351
+ Unit patternUnits = pattern->getPatternUnits();
352
+ Unit patternContentUnits = pattern->getPatternContentUnits();
353
+
354
+ OH_Drawing_Canvas *canvas = OH_Drawing_CanvasCreate();
355
+
356
+ Dimension x_ = pattern->getX();
357
+ Dimension y_ = pattern->getY();
358
+ Dimension width_ = pattern->getWidth();
359
+ Dimension height_ = pattern->getHeight();
360
+ float mMinX = pattern->getmMinX();
361
+ float mMinY = pattern->getmMinY();
362
+ float mVbWidth = pattern->getmVbWidth();
363
+ float mVbHeight = pattern->getmVbHeight();
364
+ std::string mAlign = pattern->getmAlign();
365
+ int mMeetOrSlice = pattern->getmMeetOrSlice();
366
+
367
+ Rect nodeBounds;
368
+ float left = 0;
369
+ float top = 0;
370
+ float width;
371
+ float height;
372
+ if (patternUnits == Unit::objectBoundingBox) {
373
+ nodeBounds = AsBounds();
374
+ left = nodeBounds.Left();
375
+ top = nodeBounds.Top();
376
+ } else {
377
+ nodeBounds = GetRootViewBox();
378
+ }
379
+
380
+ width = nodeBounds.Width();
381
+ height = nodeBounds.Height();
382
+
383
+
384
+ drawing::Rect Bounds_(left, top, width + left, height + top);
385
+
386
+ float offsetwidth = Bounds_.GetWidth();
387
+ float offsetheight = Bounds_.GetHeight();
388
+
389
+ bool isObjectBox = patternUnits == Unit::objectBoundingBox;
390
+ double x = x_.FromRelative(isObjectBox, offsetwidth, scale_);
391
+ double y = y_.FromRelative(isObjectBox, offsetheight, scale_);
392
+ double w = width_.FromRelative(isObjectBox, offsetwidth, scale_);
393
+ double h = height_.FromRelative(isObjectBox, offsetheight, scale_);
394
+ if (!(w > 1 && h > 1)) {
395
+ return false;
396
+ }
397
+
398
+ OH_Drawing_Bitmap *bitmap = OH_Drawing_BitmapCreate();
399
+ OH_Drawing_BitmapFormat format = {COLOR_FORMAT_RGBA_8888, ALPHA_FORMAT_OPAQUE};
400
+
401
+ OH_Drawing_BitmapBuild(bitmap, int(w), int(h), &format);
402
+ if (OH_Drawing_BitmapGetPixels(bitmap) == nullptr) {
403
+ OH_Drawing_CanvasDestroy(canvas);
404
+ OH_Drawing_BitmapDestroy(bitmap);
405
+ return false;
406
+ }
407
+ OH_Drawing_CanvasBind(canvas, bitmap);
408
+
409
+ // set background color to white
410
+ drawing::Brush brush;
411
+ brush.SetColor(0xffffffff);
412
+ OH_Drawing_CanvasDrawBackground(canvas, brush.get());
413
+
414
+ Rect vbRect(mMinX * scale_, mMinY * scale_, (mMinX + mVbWidth) * scale_, (mMinY + mVbHeight) * scale_);
415
+ Rect eRect = Rect(x, y, w, h);
416
+ if (vbRect.IsValid()) {
417
+ drawing::Matrix viewBoxMatrix = ViewBox::getTransform(vbRect, eRect, mAlign, mMeetOrSlice);
418
+ OH_Drawing_CanvasConcatMatrix(canvas, viewBoxMatrix.get());
419
+ }
420
+
421
+ if (patternContentUnits == Unit::objectBoundingBox) {
422
+ OH_Drawing_CanvasScale(canvas, offsetwidth / scale_, offsetheight / scale_);
423
+ }
424
+
425
+ // draw child node
426
+ if (!fillState_.GetHref().empty()) {
427
+ auto svgContext = GetContext();
428
+ auto refSvgNode = svgContext->GetSvgNodeById(fillState_.GetHref());
429
+ if (refSvgNode == nullptr) {
430
+ OH_Drawing_CanvasDestroy(canvas);
431
+ OH_Drawing_BitmapDestroy(bitmap);
432
+ return false;
433
+ }
434
+ refSvgNode->Draw(canvas);
435
+ }
436
+
437
+ drawing::Matrix matrix;
438
+ if (pattern->GetPatternTransform().size() == 9) {
439
+ OH_Drawing_MatrixSetMatrix(matrix.get(), pattern->GetPatternTransform()[0], pattern->GetPatternTransform()[1],
440
+ pattern->GetPatternTransform()[2], pattern->GetPatternTransform()[3],
441
+ pattern->GetPatternTransform()[4], pattern->GetPatternTransform()[5],
442
+ pattern->GetPatternTransform()[6], pattern->GetPatternTransform()[7],
443
+ pattern->GetPatternTransform()[8]);
444
+ }
445
+
446
+ // set repeat shader
447
+ OH_Drawing_Image *image = OH_Drawing_ImageCreate();
448
+ OH_Drawing_ImageBuildFromBitmap(image, bitmap);
449
+
450
+ OH_Drawing_SamplingOptions *opt = OH_Drawing_SamplingOptionsCreate(OH_Drawing_FilterMode::FILTER_MODE_LINEAR,
451
+ OH_Drawing_MipmapMode::MIPMAP_MODE_NONE);
452
+ OH_Drawing_BrushReset(fillBrush_.get());
453
+ fillBrush_.SetImageShaderEffect(image, OH_Drawing_TileMode::REPEAT, OH_Drawing_TileMode::REPEAT, opt, matrix.get());
454
+
455
+ OH_Drawing_CanvasDestroy(canvas);
456
+ OH_Drawing_BitmapDestroy(bitmap);
457
+ OH_Drawing_ImageDestroy(image);
458
+ OH_Drawing_SamplingOptionsDestroy(opt);
459
+
460
+ return true;
461
+ }
462
+
463
+ bool SvgGraphic::UpdateStrokeStyle(bool antiAlias) {
464
+ const auto &strokeState = attributes_.strokeState;
465
+ if (!GreatNotEqual(strokeState.GetLineWidth(), 0.0)) {
466
+ return false;
467
+ }
468
+
469
+ double curOpacity = strokeState.GetOpacity() * attributes_.opacity;
470
+ if (strokeState.GetGradient()) {
471
+ SetStrokeGradientStyle(curOpacity);
472
+ } else {
473
+ strokePen_.SetColor(strokeState.GetColor().BlendOpacity(curOpacity).GetValue());
474
+ }
475
+ DLOG(INFO) << "[svg] strokeState.GetLineCap(): " << static_cast<int>(strokeState.GetLineCap());
476
+ if (strokeState.GetLineCap() == LineCapStyle::ROUND) {
477
+ strokePen_.SetLineCap(LINE_ROUND_CAP);
478
+ } else if (strokeState.GetLineCap() == LineCapStyle::SQUARE) {
479
+ strokePen_.SetLineCap(LINE_SQUARE_CAP);
480
+ } else {
481
+ strokePen_.SetLineCap(LINE_FLAT_CAP);
482
+ }
483
+ DLOG(INFO) << "[svg] strokeState.GetLineJoin(): " << static_cast<int>(strokeState.GetLineJoin());
484
+ if (strokeState.GetLineJoin() == LineJoinStyle::ROUND) {
485
+ strokePen_.SetLineJoin(LINE_ROUND_JOIN);
486
+ } else if (strokeState.GetLineJoin() == LineJoinStyle::BEVEL) {
487
+ strokePen_.SetLineJoin(LINE_BEVEL_JOIN);
488
+ } else {
489
+ strokePen_.SetLineJoin(LINE_MITER_JOIN);
490
+ }
491
+ DLOG(INFO) << "[SvgRect] OH_Drawing_PenSetWidth: " << strokeState.GetLineWidth();
492
+ strokePen_.SetWidth(strokeState.GetLineWidth());
493
+ strokePen_.SetMiterLimit(strokeState.GetMiterLimit());
494
+ strokePen_.SetAntiAlias(antiAlias);
495
+ UpdateLineDash();
496
+ return true;
497
+ }
498
+ void SvgGraphic::UpdateLineDash() {
499
+ const auto &strokeState = attributes_.strokeState;
500
+ if (!strokeState.GetStrokeDashArray().empty()) {
501
+ auto lineDashState = strokeState.GetStrokeDashArray();
502
+ float intervals[lineDashState.size()];
503
+ for (size_t i = 0; i < lineDashState.size(); ++i) {
504
+ intervals[i] = static_cast<float>(lineDashState[i]);
505
+ }
506
+ float phase = static_cast<float>(strokeState.GetStrokeDashOffset());
507
+ auto *DashPathEffect = OH_Drawing_CreateDashPathEffect(intervals, lineDashState.size(), phase);
508
+ OH_Drawing_PenSetPathEffect(strokePen_.get(), DashPathEffect);
509
+ }
510
+ }
511
+
512
+ void SvgGraphic::DrawMarker(OH_Drawing_Canvas *canvas) {
513
+ auto markerStart = std::dynamic_pointer_cast<SvgMarker>(context_->GetSvgNodeById(attributes_.markerStart));
514
+ auto markerMid = std::dynamic_pointer_cast<SvgMarker>(context_->GetSvgNodeById(attributes_.markerMid));
515
+ auto markerEnd = std::dynamic_pointer_cast<SvgMarker>(context_->GetSvgNodeById(attributes_.markerEnd));
516
+ if (!markerStart && !markerMid && !markerEnd) {
517
+ DLOG(WARNING) << "NO MARKER";
518
+ return;
519
+ }
520
+ if (elements_.empty()) {
521
+ DLOG(WARNING) << "NO path";
522
+ return;
523
+ }
524
+ std::vector<SvgMarkerPosition> positions = SvgMarkerPositionUtils::fromPath(elements_);
525
+ for (const auto &position : positions) {
526
+ RNSVGMarkerType type = position.type;
527
+ std::shared_ptr<SvgMarker> marker;
528
+ switch (type) {
529
+ case RNSVGMarkerType::kStartMarker:
530
+ marker = markerStart;
531
+ break;
532
+
533
+ case RNSVGMarkerType::kMidMarker:
534
+ marker = markerMid;
535
+ break;
536
+
537
+ case RNSVGMarkerType::kEndMarker:
538
+ marker = markerEnd;
539
+ break;
540
+ default:
541
+ break;
542
+ }
543
+ if (!marker) {
544
+ continue;
545
+ }
546
+ DLOG(INFO) << "DRAW MARKER at " << position.origin.x << " " << position.origin.y
547
+ << "] type: " << static_cast<int>(type);
548
+ marker->renderMarker(canvas, position, attributes_.strokeState.GetLineWidth());
549
+ }
550
+ }
551
+
552
+ } // namespace svg
553
+ } // namespace rnoh
@@ -0,0 +1,77 @@
1
+ /*
2
+ * Copyright (c) 2024 Huawei Device Co., Ltd. All rights reserved
3
+ * Use of this source code is governed by a MIT license that can be
4
+ * found in the LICENSE file.
5
+ *
6
+ * This file incorporates from the OpenHarmony project, licensed under
7
+ * the Apache License, Version 2.0. Specifically:
8
+ * - [OpenHarmony/arkui_ace_engine] (https://gitee.com/openharmony/arkui_ace_engine)
9
+ *
10
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
11
+ * use this file except in compliance with the License. You may obtain a copy
12
+ * of the License at:
13
+ * http://www.apache.org/licenses/LICENSE-2.0
14
+ *
15
+ * Unless required by applicable law or agreed to in writing, software
16
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
17
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
18
+ * License for the specific language governing permissions and limitations
19
+ * under the License.
20
+ */
21
+
22
+ // from ArkUI "frameworks/core/components_ng/svg/parse/svg_graphic.h"
23
+ #pragma once
24
+
25
+ #include "SvgNode.h"
26
+ #include "utils/StringUtils.h"
27
+ #include "utils/SvgMarkerPositionUtils.h"
28
+ #include "drawing/Brush.h"
29
+ #include "drawing/Path.h"
30
+ #include "drawing/Pen.h"
31
+ #include <native_drawing/drawing_brush.h>
32
+ #include <native_drawing/drawing_path_effect.h>
33
+ #include <native_drawing/drawing_pen.h>
34
+
35
+
36
+ namespace rnoh {
37
+ namespace svg {
38
+
39
+ using rnoh::drawing::Brush;
40
+ using rnoh::drawing::Pen;
41
+ using rnoh::drawing::Path;
42
+
43
+ class SvgGraphic : virtual public SvgNode {
44
+ public:
45
+ SvgGraphic() : SvgNode() {}
46
+ ~SvgGraphic() noexcept override = default;
47
+
48
+
49
+ void OnDraw(OH_Drawing_Canvas *canvas) override;
50
+ protected:
51
+ Path path_ {};
52
+ Brush fillBrush_ {};
53
+ Pen strokePen_ {};
54
+
55
+ // Use Brush to draw fill
56
+ void OnGraphicFill(OH_Drawing_Canvas *canvas);
57
+ // Use Pen to draw stroke
58
+ void OnGraphicStroke(OH_Drawing_Canvas *canvas);
59
+
60
+ bool UpdateFillStyle(bool antiAlias = true);
61
+ bool UpdateStrokeStyle(bool antiAlias = true);
62
+ void UpdateGradient(std::optional<Gradient> &gradient);
63
+ void SetFillGradientStyle(double opacity);
64
+ void SetStrokeGradientStyle(double opacity);
65
+ bool SetPatternStyle();
66
+ void UpdateLineDash();
67
+
68
+
69
+ std::vector<PathElement> elements_;
70
+
71
+ private:
72
+ void DrawMarker(OH_Drawing_Canvas *canvas);
73
+ // to be done? Color Filter;
74
+ };
75
+
76
+ } // namespace svg
77
+ } // namespace rnoh