@react-native-ohos/react-native-svg 15.12.1-rc.1 → 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 (350) hide show
  1. package/LICENSE +21 -21
  2. package/README.OpenSource +10 -10
  3. package/README.md +13 -13
  4. package/css/package.json +5 -5
  5. package/harmony/svg/BuildProfile.ets +1 -1
  6. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/.ts_checker_cache +3052 -0
  7. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/.tsbuildinfo +1 -0
  8. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/.tsbuildinfo.linter +1 -0
  9. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/compileInfo.json +1 -0
  10. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/RNSVGImageModule.ts-7c464e69f4a700eeeaae44cf66ca5fd3b3e84299010d5c3a5643612ba1a48d70.msgpack +0 -0
  11. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/RNSVGRenderableModule.ts-c2df5206c2aa9e868b7f24f706a131fff1236faaff78688ffdeec3ce25bf5d91.msgpack +0 -0
  12. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/RNSVGSvgViewModule.ts-b9a699770b693eeaa2eb98307323dc9087e44afc9c01b08d222555636b3fac0d.msgpack +0 -0
  13. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/SvgPackage.ts-08ac57d81b1742792af8813eac27abe5eca1a5714b1a5b76f97436b13abe48e4.msgpack +0 -0
  14. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/index.ets-0e520bf323178f6f973ec12f44622042dcdd19e5032efd9bd02ac5606fb58275.msgpack +0 -0
  15. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/modules/ts.ts-1d50b47087f159616212dd3c5ecd04a204a5be09940b7dbba77a59e3a66499c2.msgpack +0 -0
  16. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/other/pkgName2SourceRoots.msgpack +1 -0
  17. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/compiler.cache/plugins/plugins.msgpack +0 -0
  18. package/harmony/svg/build/default/cache/default/default@HarCompileArkTS/esmodule/debug/dep_info.json +1 -0
  19. package/harmony/svg/build/default/cache/default/default@PackageHar/BuildProfile.ets +17 -0
  20. package/harmony/svg/build/default/cache/default/default@PackageHar/ResourceTable.txt +1 -0
  21. package/harmony/svg/build/default/cache/default/default@PackageHar/build-profile.json5 +9 -0
  22. package/harmony/svg/build/default/cache/default/default@PackageHar/hvigorfile.ts +2 -0
  23. package/harmony/svg/build/default/cache/default/default@PackageHar/index.ets +7 -0
  24. package/harmony/svg/build/default/cache/default/default@PackageHar/oh-package-lock.json5 +19 -0
  25. package/harmony/svg/build/default/cache/default/default@PackageHar/oh-package.json5 +1 -0
  26. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/Attribute.h +52 -0
  27. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/CMakeLists.txt +32 -0
  28. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/FallbackProps.h +0 -0
  29. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/FontHolderBase.cpp +22 -0
  30. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/FontHolderBase.h +54 -0
  31. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SVGPackage.cpp +135 -0
  32. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SVGPackage.h +157 -0
  33. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgArkUINode.cpp +78 -0
  34. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgArkUINode.h +51 -0
  35. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgBaseAttribute.h +83 -0
  36. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgCircle.cpp +29 -0
  37. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgCircle.h +29 -0
  38. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgClipPath.h +22 -0
  39. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgContext.cpp +56 -0
  40. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgContext.h +71 -0
  41. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgDefs.h +46 -0
  42. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgEllipse.cpp +32 -0
  43. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgEllipse.h +34 -0
  44. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgFilter.cpp +505 -0
  45. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgFilter.h +112 -0
  46. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignObjectNode.cpp +86 -0
  47. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignObjectNode.h +81 -0
  48. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignObjectNodeDelegate.h +30 -0
  49. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgForeignProps.h +39 -0
  50. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGradient.cpp +117 -0
  51. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGradient.h +49 -0
  52. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGraphic.cpp +553 -0
  53. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGraphic.h +77 -0
  54. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGroup.cpp +93 -0
  55. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgGroup.h +41 -0
  56. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgHost.cpp +27 -0
  57. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgHost.h +38 -0
  58. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgImage.cpp +168 -0
  59. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgImage.h +52 -0
  60. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgLine.cpp +28 -0
  61. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgLine.h +32 -0
  62. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMarker.cpp +61 -0
  63. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMarker.h +86 -0
  64. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMask.cpp +72 -0
  65. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgMask.h +68 -0
  66. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgNode.cpp +395 -0
  67. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgNode.h +377 -0
  68. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPath.cpp +42 -0
  69. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPath.h +29 -0
  70. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPattern.cpp +77 -0
  71. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgPattern.h +64 -0
  72. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgQuote.h +87 -0
  73. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgRect.cpp +58 -0
  74. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgRect.h +33 -0
  75. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSvg.cpp +83 -0
  76. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSvg.h +52 -0
  77. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSymbol.cpp +25 -0
  78. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgSymbol.h +37 -0
  79. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTSpan.cpp +501 -0
  80. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTSpan.h +101 -0
  81. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgText.cpp +48 -0
  82. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgText.h +29 -0
  83. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTextPath.cpp +35 -0
  84. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgTextPath.h +51 -0
  85. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgUse.cpp +65 -0
  86. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgUse.h +46 -0
  87. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgViewManager.cpp +36 -0
  88. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/SvgViewManager.h +37 -0
  89. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/TextBase.cpp +20 -0
  90. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/TextBase.h +114 -0
  91. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGBaseComponentInstance.h +212 -0
  92. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.cpp +31 -0
  93. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGCircleComponentInstance.h +27 -0
  94. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.cpp +23 -0
  95. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGClipPathComponentInstance.h +27 -0
  96. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.cpp +23 -0
  97. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGDefsComponentInstance.h +28 -0
  98. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.cpp +27 -0
  99. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGEllipseComponentInstance.h +27 -0
  100. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.cpp +40 -0
  101. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.h +48 -0
  102. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.cpp +33 -0
  103. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.h +48 -0
  104. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.cpp +39 -0
  105. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.h +55 -0
  106. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.cpp +33 -0
  107. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.h +49 -0
  108. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.cpp +34 -0
  109. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.h +48 -0
  110. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.cpp +35 -0
  111. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.h +46 -0
  112. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.cpp +199 -0
  113. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.h +48 -0
  114. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.cpp +93 -0
  115. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.h +55 -0
  116. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.cpp +32 -0
  117. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.h +31 -0
  118. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGImageComponentInstance.cpp +103 -0
  119. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGImageComponentInstance.h +43 -0
  120. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLineComponentInstance.cpp +27 -0
  121. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLineComponentInstance.h +27 -0
  122. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.cpp +30 -0
  123. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGLinearGradientComponentInstance.h +28 -0
  124. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.cpp +35 -0
  125. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMarkerComponentInstance.h +27 -0
  126. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.cpp +30 -0
  127. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGMaskComponentInstance.h +27 -0
  128. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPathComponentInstance.cpp +33 -0
  129. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPathComponentInstance.h +29 -0
  130. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.cpp +40 -0
  131. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGPatternComponentInstance.h +27 -0
  132. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.cpp +32 -0
  133. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRadialGradientComponentInstance.h +28 -0
  134. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRectComponentInstance.cpp +36 -0
  135. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGRectComponentInstance.h +27 -0
  136. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.cpp +124 -0
  137. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.h +56 -0
  138. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.cpp +30 -0
  139. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGSymbolComponentInstance.h +27 -0
  140. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.cpp +27 -0
  141. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTSpanComponentInstance.h +27 -0
  142. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextComponentInstance.cpp +25 -0
  143. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextComponentInstance.h +27 -0
  144. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.cpp +32 -0
  145. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGTextPathComponentInstance.h +27 -0
  146. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGUseComponentInstance.cpp +32 -0
  147. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/componentInstances/RNSVGUseComponentInstance.h +32 -0
  148. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/HttpTaskProcessor.cpp +266 -0
  149. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/HttpTaskProcessor.h +88 -0
  150. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/ImageSourceResolver.cpp +134 -0
  151. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/ImageSourceResolver.h +93 -0
  152. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/downloadUtils/LRUCache.h +98 -0
  153. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Brush.cpp +50 -0
  154. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Brush.h +52 -0
  155. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/GlyPathBag.cpp +20 -0
  156. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/GlyPathBag.h +31 -0
  157. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Matrix.cpp +100 -0
  158. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Matrix.h +68 -0
  159. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Path.cpp +173 -0
  160. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Path.h +127 -0
  161. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Pen.cpp +57 -0
  162. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Pen.h +59 -0
  163. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Rect.cpp +47 -0
  164. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Rect.h +56 -0
  165. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/RoundRect.cpp +24 -0
  166. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/RoundRect.h +39 -0
  167. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/ShaderEffect.cpp +37 -0
  168. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/ShaderEffect.h +51 -0
  169. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TextStyle.cpp +49 -0
  170. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TextStyle.h +41 -0
  171. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Typography.cpp +9 -0
  172. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/Typography.h +25 -0
  173. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TypographyStyle.cpp +31 -0
  174. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/drawing/TypographyStyle.h +41 -0
  175. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGCircleJSIBinder.h +54 -0
  176. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGClipPathJSIBinder.h +54 -0
  177. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGDefsJSIBinder.h +38 -0
  178. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGEllipseJSIBinder.h +55 -0
  179. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeBlendJSIBinder.h +26 -0
  180. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeColorMatrixJSIBinder.h +26 -0
  181. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeCompositeJSIBinder.h +30 -0
  182. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeFloodJSIBinder.h +26 -0
  183. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeGaussianBlurJSIBinder.h +27 -0
  184. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFeOffsetJSIBinder.h +26 -0
  185. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGFilterJSIBinder.h +44 -0
  186. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGForeignObjectJSIBinder.h +57 -0
  187. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGGroupJSIBinder.h +54 -0
  188. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGImageJSIBinder.h +58 -0
  189. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGLineJSIBinder.h +55 -0
  190. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGLinearGradientJSIBinder.h +45 -0
  191. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGMarkerJSIBinder.h +66 -0
  192. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGMaskJSIBinder.h +60 -0
  193. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGPathJSIBinder.h +52 -0
  194. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGPatternJSIBinder.h +67 -0
  195. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGRadialGradientJSIBinder.h +47 -0
  196. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGRectJSIBinder.h +57 -0
  197. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewAndroidJSIBinder.h +67 -0
  198. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGSvgViewJSIBinder.h +36 -0
  199. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGSymbolJSIBinder.h +60 -0
  200. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGTSpanJSIBinder.h +66 -0
  201. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGTextJSIBinder.h +65 -0
  202. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGTextPathJSIBinder.h +71 -0
  203. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/RNOH/generated/components/RNSVGUseJSIBinder.h +56 -0
  204. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/ComponentDescriptors.h +48 -0
  205. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.cpp +20 -0
  206. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/EventEmitters.h +253 -0
  207. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.cpp +977 -0
  208. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.h +1280 -0
  209. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.cpp +45 -0
  210. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/ShadowNodes.h +331 -0
  211. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/States.cpp +18 -0
  212. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/generated/react/renderer/components/react_native_svg/States.h +441 -0
  213. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Color.cpp +458 -0
  214. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Color.h +144 -0
  215. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Decoration.cpp +41 -0
  216. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Decoration.h +483 -0
  217. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Dimension.cpp +64 -0
  218. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Dimension.h +257 -0
  219. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Font.cpp +166 -0
  220. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Font.h +163 -0
  221. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Offset.h +119 -0
  222. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/PaintState.h +240 -0
  223. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Rect.h +423 -0
  224. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/Size.h +246 -0
  225. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/SvgPaintState.h +452 -0
  226. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/TextProperties.cpp +91 -0
  227. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/TextProperties.h +56 -0
  228. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/properties/ViewBox.h +108 -0
  229. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageComponentDescriptor.h +41 -0
  230. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageShadowNode.cpp +62 -0
  231. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageShadowNode.h +63 -0
  232. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageState.cpp +17 -0
  233. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/svgImage/RNSVGImageState.h +58 -0
  234. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGImageModule.cpp +83 -0
  235. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGImageModule.h +32 -0
  236. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGRenderableModule.cpp +101 -0
  237. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGRenderableModule.h +32 -0
  238. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGSvgViewModule.cpp +71 -0
  239. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/turboModules/RNSVGSvgViewModule.h +32 -0
  240. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/DynamicUtils.h +55 -0
  241. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/FilterManager.h +190 -0
  242. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/GlyphContext.cpp +221 -0
  243. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/GlyphContext.h +106 -0
  244. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/LinearMap.h +69 -0
  245. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/PathParserUtils.cpp +591 -0
  246. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/PathParserUtils.h +93 -0
  247. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/StringUtils.cpp +134 -0
  248. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/StringUtils.h +644 -0
  249. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgAttributesParser.cpp +239 -0
  250. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgAttributesParser.h +277 -0
  251. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgMarkerPositionUtils.h +200 -0
  252. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/SvgUtils.h +176 -0
  253. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/TextPathHelper.cpp +94 -0
  254. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/cpp/utils/TextPathHelper.h +61 -0
  255. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/RNSVGImageModule.ts +21 -0
  256. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/RNSVGRenderableModule.ts +16 -0
  257. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/RNSVGSvgViewModule.ts +18 -0
  258. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/ets/SvgPackage.ts +58 -0
  259. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/module.json +30 -0
  260. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/resources/base/element/string.json +8 -0
  261. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/resources/en_US/element/string.json +8 -0
  262. package/harmony/svg/build/default/cache/default/default@PackageHar/src/main/resources/zh_CN/element/string.json +8 -0
  263. package/harmony/svg/build/default/cache/default/default@PackageHar/ts.ts +8 -0
  264. package/harmony/svg/build/default/generated/pm/default/oh-package.json5 +1 -0
  265. package/harmony/svg/build/default/generated/r/default/ResourceTable.h +24 -0
  266. package/harmony/svg/build/default/intermediates/loader/default/loader.json +26 -0
  267. package/harmony/svg/build/default/intermediates/merge_profile/default/module.json +27 -0
  268. package/harmony/svg/build/default/intermediates/patch/default/base_native_libs.json +1 -0
  269. package/harmony/svg/build/default/intermediates/process_profile/default/module.json +30 -0
  270. package/harmony/svg/build/default/intermediates/res/default/ResourceTable.txt +1 -0
  271. package/harmony/svg/build/default/intermediates/res/default/ark_module.json +1 -0
  272. package/harmony/svg/build/default/intermediates/res/default/ids_map/id_defined.json +7 -0
  273. package/harmony/svg/build/default/intermediates/res/default/module.json +28 -0
  274. package/harmony/svg/build/default/intermediates/res/default/opt-compression.json +1 -0
  275. package/harmony/svg/build/default/intermediates/res/default/resConfig.json +1 -0
  276. package/harmony/svg/build/default/intermediates/res/default/resources/rawfile/rnoh.profdata +0 -0
  277. package/harmony/svg/build/default/intermediates/res/default/resources.index +0 -0
  278. package/harmony/svg/build/default/outputs/default/svg.har +0 -0
  279. package/harmony/svg/build-profile.json5 +9 -9
  280. package/harmony/svg/hvigorfile.ts +1 -1
  281. package/harmony/svg/index.ets +6 -6
  282. package/harmony/svg/oh-package.json5 +13 -13
  283. package/harmony/svg/src/main/cpp/CMakeLists.txt +1 -1
  284. package/harmony/svg/src/main/cpp/SVGPackage.h +4 -0
  285. package/harmony/svg/src/main/cpp/SvgArkUINode.cpp +3 -0
  286. package/harmony/svg/src/main/cpp/SvgArkUINode.h +15 -9
  287. package/harmony/svg/src/main/cpp/SvgFilter.cpp +505 -505
  288. package/harmony/svg/src/main/cpp/SvgFilter.h +112 -112
  289. package/harmony/svg/src/main/cpp/SvgForeignObjectNode.cpp +86 -0
  290. package/harmony/svg/src/main/cpp/SvgForeignObjectNode.h +81 -0
  291. package/harmony/svg/src/main/cpp/SvgForeignObjectNodeDelegate.h +30 -0
  292. package/harmony/svg/src/main/cpp/SvgForeignProps.h +39 -0
  293. package/harmony/svg/src/main/cpp/SvgGradient.cpp +1 -0
  294. package/harmony/svg/src/main/cpp/SvgGroup.cpp +8 -1
  295. package/harmony/svg/src/main/cpp/SvgNode.cpp +109 -3
  296. package/harmony/svg/src/main/cpp/SvgNode.h +43 -13
  297. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.cpp +40 -40
  298. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeBlendComponentInstance.h +48 -48
  299. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.cpp +33 -33
  300. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeColorMatrixComponentInstance.h +48 -48
  301. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.cpp +39 -39
  302. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeCompositeComponentInstance.h +55 -55
  303. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.cpp +33 -33
  304. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeFloodComponentInstance.h +49 -49
  305. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.cpp +34 -34
  306. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeGaussianBlurComponentInstance.h +48 -48
  307. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.cpp +35 -35
  308. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFeOffsetComponentInstance.h +45 -45
  309. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.cpp +198 -198
  310. package/harmony/svg/src/main/cpp/componentInstances/RNSVGFilterComponentInstance.h +48 -48
  311. package/harmony/svg/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.cpp +93 -0
  312. package/harmony/svg/src/main/cpp/componentInstances/RNSVGForeignObjectComponentInstance.h +55 -0
  313. package/harmony/svg/src/main/cpp/componentInstances/RNSVGGroupComponentInstance.h +8 -4
  314. package/harmony/svg/src/main/cpp/componentInstances/RNSVGImageComponentInstance.cpp +4 -1
  315. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.cpp +38 -0
  316. package/harmony/svg/src/main/cpp/componentInstances/RNSVGSvgViewComponentInstance.h +11 -2
  317. package/harmony/svg/src/main/cpp/downloadUtils/HttpTaskProcessor.cpp +69 -10
  318. package/harmony/svg/src/main/cpp/downloadUtils/ImageSourceResolver.cpp +54 -26
  319. package/harmony/svg/src/main/cpp/downloadUtils/ImageSourceResolver.h +6 -10
  320. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeBlendJSIBinder.h +26 -26
  321. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeColorMatrixJSIBinder.h +26 -26
  322. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeCompositeJSIBinder.h +30 -30
  323. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeFloodJSIBinder.h +26 -26
  324. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeGaussianBlurJSIBinder.h +26 -26
  325. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFeOffsetJSIBinder.h +26 -26
  326. package/harmony/svg/src/main/cpp/generated/RNOH/generated/components/RNSVGFilterJSIBinder.h +44 -44
  327. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.cpp +977 -977
  328. package/harmony/svg/src/main/cpp/generated/react/renderer/components/react_native_svg/Props.h +1280 -1280
  329. package/harmony/svg/src/main/cpp/properties/Dimension.h +14 -0
  330. package/harmony/svg/src/main/cpp/turboModules/RNSVGImageModule.cpp +30 -1
  331. package/harmony/svg/src/main/cpp/utils/DynamicUtils.h +55 -55
  332. package/harmony/svg/src/main/cpp/utils/FilterManager.h +190 -190
  333. package/harmony/svg/src/main/ets/RNSVGImageModule.ts +21 -21
  334. package/harmony/svg/src/main/ets/RNSVGRenderableModule.ts +16 -16
  335. package/harmony/svg/src/main/ets/RNSVGSvgViewModule.ts +18 -18
  336. package/harmony/svg/src/main/ets/SvgPackage.ts +57 -57
  337. package/harmony/svg/src/main/module.json5 +7 -7
  338. package/harmony/svg/src/main/resources/base/element/string.json +8 -8
  339. package/harmony/svg/src/main/resources/en_US/element/string.json +8 -8
  340. package/harmony/svg/src/main/resources/zh_CN/element/string.json +8 -8
  341. package/harmony/svg/ts.ts +7 -7
  342. package/harmony/svg.har +0 -0
  343. package/lib/commonjs/css/index.js.map +1 -1
  344. package/lib/commonjs/index.js.map +1 -1
  345. package/lib/module/css/index.js.map +1 -1
  346. package/lib/module/index.js.map +1 -1
  347. package/package.json +53 -54
  348. package/src/css/index.tsx +19 -19
  349. package/src/index.tsx +2 -2
  350. package/tsconfig.json +11 -11
@@ -1,112 +1,112 @@
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
-
7
- #pragma once
8
-
9
- #include "SvgNode.h"
10
- #include "drawing/Brush.h"
11
- #include "drawing/Pen.h"
12
- #include <native_drawing/drawing_canvas.h>
13
- #include <native_drawing/drawing_filter.h>
14
-
15
- namespace rnoh {
16
- namespace svg {
17
-
18
- enum class FilterType {
19
- BLUR,
20
- GAUSSIAN_BLUR,
21
- DROP_SHADOW,
22
- COLOR_MATRIX,
23
- FEOFFSET,
24
- FEFLOOD,
25
- BLEND,
26
- COMPOSITE,
27
- MERGE,
28
- UNKNOWN
29
- };
30
-
31
- struct FilterEffect {
32
- FilterType filterType = FilterType::UNKNOWN;
33
- std::vector<float> values;
34
- std::string type = "";
35
- std::string in = "SourceGraphic";
36
- std::string in2 = "";
37
- std::string result = "";
38
-
39
- std::string mode = "";
40
- std::string operator_ = "";
41
- std::string floodColor = "black";
42
- float floodOpacity = 1.0f;
43
-
44
- float dx_ = 0.0f;
45
- float dy_ = 0.0f;
46
- float stdDeviationX_ = 0.0f;
47
- float stdDeviationY_ = 0.0f;
48
- std::string edgeMode_ = "duplicate";
49
- std::string k1 = "";
50
- std::string k2 = "";
51
- std::string k3 = "";
52
- std::string k4 = "";
53
-
54
- FilterEffect() = default;
55
- FilterEffect(FilterType t, const std::vector<float>& v) : filterType(t), values(v) {}
56
- FilterEffect(FilterType t, const std::vector<float>& v, const std::string& inputSource, const std::string& inputType, const std::string& resultId)
57
- : filterType(t), values(v), in(inputSource), type(inputType), result(resultId) {}
58
- FilterEffect(FilterType t, const std::string& inputSource, const std::string& inputSource2, const std::string& blendMode, const std::string& resultId)
59
- : filterType(t), in(inputSource), in2(inputSource2), mode(blendMode), result(resultId) {}
60
- FilterEffect(FilterType t, const std::string& inputSource, const std::string& color, float opacity, const std::string& resultId)
61
- : filterType(t), in(inputSource), floodColor(color), floodOpacity(opacity), result(resultId) {}
62
- FilterEffect(FilterType t, const std::string& inputSource, float dx, float dy, const std::string& resultId)
63
- : filterType(t), in(inputSource), dx_(dx), dy_(dy), result(resultId) {}
64
- FilterEffect(FilterType t, const std::string& inputSource, const std::string& inputSource2, const std::string& op,
65
- const std::string& k1_, const std::string& k2_, const std::string& k3_, const std::string& k4_, const std::string& resultId)
66
- : filterType(t), in(inputSource), in2(inputSource2), operator_(op), k1(k1_), k2(k2_), k3(k3_), k4(k4_), result(resultId) {}
67
- FilterEffect(FilterType t, const std::string& inputSource, float stdDeviationX, float stdDeviationY, const std::string& edgeMode, const std::string& resultId)
68
- : filterType(t), in(inputSource), stdDeviationX_(stdDeviationX), stdDeviationY_(stdDeviationY), edgeMode_(edgeMode), result(resultId) {}
69
-
70
- // DropShadow specific constructor
71
- FilterEffect(FilterType t, const std::string& inputSource, float dx, float dy, float stdDeviation, const std::string& color, float opacity)
72
- : filterType(t), in(inputSource), dx_(dx), dy_(dy), stdDeviationX_(stdDeviation), floodColor(color), floodOpacity(opacity) {}
73
- };
74
-
75
- class SvgFilter : virtual public SvgNode {
76
- public:
77
- SvgFilter() : SvgNode() {}
78
- ~SvgFilter() noexcept override = default;
79
- void ApplyToBrush(rnoh::drawing::Brush& brush, const std::string& extra = "");
80
- void ApplyToPen(rnoh::drawing::Pen& pen);
81
-
82
- void AddFilterEffect(const FilterEffect& effect);
83
- void ClearFilterEffects() {
84
- effects_.clear();
85
- }
86
-
87
- void Draw(OH_Drawing_Canvas *canvas) override {}
88
- private:
89
- std::vector<FilterEffect> effects_;
90
- void ApplySingleEffectToFilter(OH_Drawing_Filter* filter, const FilterEffect& effect,
91
- rnoh::drawing::Brush* brush = nullptr, rnoh::drawing::Pen* pen = nullptr, const std::string& extra = "");
92
-
93
- OH_Drawing_ImageFilter* CreateGaussianBlurFilter(const FilterEffect& effect);
94
- OH_Drawing_MaskFilter* CreateBlurFilter(const FilterEffect& effect);
95
- OH_Drawing_ColorFilter* CreateColorMatrixFilter(const FilterEffect& effect);
96
- OH_Drawing_ShadowLayer* CreateDropShadowFilter(const FilterEffect& effect);
97
-
98
- OH_Drawing_ColorFilter* CreateMatrixFilter(const std::vector<float>& values);
99
- OH_Drawing_ColorFilter* CreateSaturateFilter(const std::vector<float>& values);
100
- OH_Drawing_ColorFilter* CreateHueRotateFilter(const std::vector<float>& values);
101
- OH_Drawing_ColorFilter* CreateLuminanceToAlphaFilter();
102
-
103
- OH_Drawing_ImageFilter* GetInputImageFilter(const std::string& inputName);
104
- OH_Drawing_ColorFilter* GetInputColorFilter(const std::string& inputName);
105
- OH_Drawing_Filter* GetInputFilter(const std::string& inputName);
106
- OH_Drawing_ColorFilter* CombineWithInputColor(OH_Drawing_ColorFilter* newFilter, const std::string& inputName);
107
- void RegisterFilterResult(const std::string& resultId, OH_Drawing_ImageFilter* imageFilter = nullptr,
108
- OH_Drawing_ColorFilter* colorFilter = nullptr, OH_Drawing_MaskFilter* maskFilter = nullptr);
109
- };
110
-
111
- } // namespace svg
112
- } // namespace rnoh
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
+
7
+ #pragma once
8
+
9
+ #include "SvgNode.h"
10
+ #include "drawing/Brush.h"
11
+ #include "drawing/Pen.h"
12
+ #include <native_drawing/drawing_canvas.h>
13
+ #include <native_drawing/drawing_filter.h>
14
+
15
+ namespace rnoh {
16
+ namespace svg {
17
+
18
+ enum class FilterType {
19
+ BLUR,
20
+ GAUSSIAN_BLUR,
21
+ DROP_SHADOW,
22
+ COLOR_MATRIX,
23
+ FEOFFSET,
24
+ FEFLOOD,
25
+ BLEND,
26
+ COMPOSITE,
27
+ MERGE,
28
+ UNKNOWN
29
+ };
30
+
31
+ struct FilterEffect {
32
+ FilterType filterType = FilterType::UNKNOWN;
33
+ std::vector<float> values;
34
+ std::string type = "";
35
+ std::string in = "SourceGraphic";
36
+ std::string in2 = "";
37
+ std::string result = "";
38
+
39
+ std::string mode = "";
40
+ std::string operator_ = "";
41
+ std::string floodColor = "black";
42
+ float floodOpacity = 1.0f;
43
+
44
+ float dx_ = 0.0f;
45
+ float dy_ = 0.0f;
46
+ float stdDeviationX_ = 0.0f;
47
+ float stdDeviationY_ = 0.0f;
48
+ std::string edgeMode_ = "duplicate";
49
+ std::string k1 = "";
50
+ std::string k2 = "";
51
+ std::string k3 = "";
52
+ std::string k4 = "";
53
+
54
+ FilterEffect() = default;
55
+ FilterEffect(FilterType t, const std::vector<float>& v) : filterType(t), values(v) {}
56
+ FilterEffect(FilterType t, const std::vector<float>& v, const std::string& inputSource, const std::string& inputType, const std::string& resultId)
57
+ : filterType(t), values(v), in(inputSource), type(inputType), result(resultId) {}
58
+ FilterEffect(FilterType t, const std::string& inputSource, const std::string& inputSource2, const std::string& blendMode, const std::string& resultId)
59
+ : filterType(t), in(inputSource), in2(inputSource2), mode(blendMode), result(resultId) {}
60
+ FilterEffect(FilterType t, const std::string& inputSource, const std::string& color, float opacity, const std::string& resultId)
61
+ : filterType(t), in(inputSource), floodColor(color), floodOpacity(opacity), result(resultId) {}
62
+ FilterEffect(FilterType t, const std::string& inputSource, float dx, float dy, const std::string& resultId)
63
+ : filterType(t), in(inputSource), dx_(dx), dy_(dy), result(resultId) {}
64
+ FilterEffect(FilterType t, const std::string& inputSource, const std::string& inputSource2, const std::string& op,
65
+ const std::string& k1_, const std::string& k2_, const std::string& k3_, const std::string& k4_, const std::string& resultId)
66
+ : filterType(t), in(inputSource), in2(inputSource2), operator_(op), k1(k1_), k2(k2_), k3(k3_), k4(k4_), result(resultId) {}
67
+ FilterEffect(FilterType t, const std::string& inputSource, float stdDeviationX, float stdDeviationY, const std::string& edgeMode, const std::string& resultId)
68
+ : filterType(t), in(inputSource), stdDeviationX_(stdDeviationX), stdDeviationY_(stdDeviationY), edgeMode_(edgeMode), result(resultId) {}
69
+
70
+ // DropShadow specific constructor
71
+ FilterEffect(FilterType t, const std::string& inputSource, float dx, float dy, float stdDeviation, const std::string& color, float opacity)
72
+ : filterType(t), in(inputSource), dx_(dx), dy_(dy), stdDeviationX_(stdDeviation), floodColor(color), floodOpacity(opacity) {}
73
+ };
74
+
75
+ class SvgFilter : virtual public SvgNode {
76
+ public:
77
+ SvgFilter() : SvgNode() {}
78
+ ~SvgFilter() noexcept override = default;
79
+ void ApplyToBrush(rnoh::drawing::Brush& brush, const std::string& extra = "");
80
+ void ApplyToPen(rnoh::drawing::Pen& pen);
81
+
82
+ void AddFilterEffect(const FilterEffect& effect);
83
+ void ClearFilterEffects() {
84
+ effects_.clear();
85
+ }
86
+
87
+ void Draw(OH_Drawing_Canvas *canvas) override {}
88
+ private:
89
+ std::vector<FilterEffect> effects_;
90
+ void ApplySingleEffectToFilter(OH_Drawing_Filter* filter, const FilterEffect& effect,
91
+ rnoh::drawing::Brush* brush = nullptr, rnoh::drawing::Pen* pen = nullptr, const std::string& extra = "");
92
+
93
+ OH_Drawing_ImageFilter* CreateGaussianBlurFilter(const FilterEffect& effect);
94
+ OH_Drawing_MaskFilter* CreateBlurFilter(const FilterEffect& effect);
95
+ OH_Drawing_ColorFilter* CreateColorMatrixFilter(const FilterEffect& effect);
96
+ OH_Drawing_ShadowLayer* CreateDropShadowFilter(const FilterEffect& effect);
97
+
98
+ OH_Drawing_ColorFilter* CreateMatrixFilter(const std::vector<float>& values);
99
+ OH_Drawing_ColorFilter* CreateSaturateFilter(const std::vector<float>& values);
100
+ OH_Drawing_ColorFilter* CreateHueRotateFilter(const std::vector<float>& values);
101
+ OH_Drawing_ColorFilter* CreateLuminanceToAlphaFilter();
102
+
103
+ OH_Drawing_ImageFilter* GetInputImageFilter(const std::string& inputName);
104
+ OH_Drawing_ColorFilter* GetInputColorFilter(const std::string& inputName);
105
+ OH_Drawing_Filter* GetInputFilter(const std::string& inputName);
106
+ OH_Drawing_ColorFilter* CombineWithInputColor(OH_Drawing_ColorFilter* newFilter, const std::string& inputName);
107
+ void RegisterFilterResult(const std::string& resultId, OH_Drawing_ImageFilter* imageFilter = nullptr,
108
+ OH_Drawing_ColorFilter* colorFilter = nullptr, OH_Drawing_MaskFilter* maskFilter = nullptr);
109
+ };
110
+
111
+ } // namespace svg
112
+ } // namespace rnoh
@@ -0,0 +1,86 @@
1
+ /*
2
+ * Copyright (c) 2025 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 "SvgForeignObjectNode.h"
23
+ #include "RNOH/arkui/NativeNodeApi.h"
24
+ #include <deviceinfo.h>
25
+ #include <info/application_target_sdk_version.h>
26
+ namespace rnoh {
27
+ namespace svg {
28
+ SvgForeignObjectNode::SvgForeignObjectNode()
29
+ : ArkUINode(NativeNodeApi::getInstance()->createNode(ArkUI_NodeType::ARKUI_NODE_STACK)) {
30
+ mStackNode.setVisibility(ArkUI_Visibility::ARKUI_VISIBILITY_HIDDEN);
31
+ mStackNode.setClip(true);
32
+ maybeThrow(NativeNodeApi::getInstance()->addChild(m_nodeHandle, mStackNode.getArkUINodeHandle()));
33
+ }
34
+
35
+ SvgForeignObjectNode::~SvgForeignObjectNode() {
36
+ if (m_NodeDelegate) {
37
+ m_NodeDelegate = nullptr;
38
+ }
39
+ _isGeneratedPixelMap = false;
40
+ }
41
+ void SvgForeignObjectNode::insertChild(ArkUINode &child, std::size_t index) { mStackNode.insertChild(child, index); }
42
+
43
+ void SvgForeignObjectNode::SetSnapHeight(Dimension height) { _height = height; }
44
+
45
+ void SvgForeignObjectNode::SetSnapWidth(Dimension width) { _width = width; }
46
+
47
+ void SvgForeignObjectNode::SetSnapPosition(Dimension x, Dimension y) {
48
+ _positionX = x;
49
+ _positionY = y;
50
+ }
51
+
52
+ void SvgForeignObjectNode::onNodeEvent(ArkUI_NodeEventType eventType, EventArgs &eventArgs) {
53
+ if (eventType == ArkUI_NodeEventType::NODE_EVENT_ON_AREA_CHANGE) {
54
+ if (m_NodeDelegate && _isGeneratedPixelMap) {
55
+ OH_PixelmapNative *pixelMap = GetNodePixelMap();
56
+ if (!pixelMap) {
57
+ LOG(ERROR) << "[svgForeignNode] get node snapshot pixelMap is null";
58
+ return;
59
+ }
60
+ _isGeneratedPixelMap = false;
61
+ ForeignProps foreignProps = {pixelMap, _width, _height, _positionX,
62
+ _positionY, _path, _clipRule, _mask, pointScaleFactor_, transform_};
63
+ m_NodeDelegate->onDrawForeignImage(foreignProps);
64
+ }
65
+ }
66
+ }
67
+
68
+ OH_PixelmapNative *SvgForeignObjectNode::GetNodePixelMap() {
69
+ #ifdef OH_CURRENT_API_VERSION
70
+ if (OH_CURRENT_API_VERSION < 15 || OH_GetSdkApiVersion() < 15) {
71
+ LOG(ERROR) << "[svgForeignNode] current sdk or rom cannot support ForeignObject";
72
+ return nullptr;
73
+ }
74
+ OH_PixelmapNative *pixelMap;
75
+ ArkUI_SnapshotOptions *options = OH_ArkUI_CreateSnapshotOptions();
76
+ OH_ArkUI_SnapshotOptions_SetScale(options, 1);
77
+ int32_t code = OH_ArkUI_GetNodeSnapshot(mStackNode.getArkUINodeHandle(), options, &pixelMap);
78
+ if (code == ARKUI_ERROR_CODE_NO_ERROR) {
79
+ return pixelMap;
80
+ }
81
+ #endif
82
+ return nullptr;
83
+ }
84
+
85
+ } // namespace svg
86
+ } // namespace rnoh
@@ -0,0 +1,81 @@
1
+ /*
2
+ * Copyright (c) 2025 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
+ #ifndef HARMONY_SVGFOREIGNOBJECTNODE_H
23
+ #define HARMONY_SVGFOREIGNOBJECTNODE_H
24
+ #include "RNOH/arkui/ArkUINode.h"
25
+ #include "RNOH/arkui/StackNode.h"
26
+ #include "SvgForeignObjectNodeDelegate.h"
27
+ #include "properties/Dimension.h"
28
+
29
+ namespace rnoh {
30
+ namespace svg {
31
+ class SvgForeignObjectNode : public ArkUINode {
32
+ public:
33
+ SvgForeignObjectNode();
34
+ ~SvgForeignObjectNode() override;
35
+ void onNodeEvent(ArkUI_NodeEventType eventType, EventArgs &eventArgs) override;
36
+ StackNode &getSnapNode() { return mStackNode; }
37
+ void insertChild(ArkUINode &child, std::size_t index);
38
+ void SetSnapPosition(Dimension x, Dimension y);
39
+ void SetSnapWidth(Dimension width);
40
+ void SetSnapHeight(Dimension height);
41
+ void SetPointScaleFactor(float pointScaleFactor) {
42
+ pointScaleFactor_ = pointScaleFactor;
43
+ }
44
+ void SetTransform(std::vector<double> transform) {
45
+ transform_ = transform;
46
+ }
47
+ void setNodeSize(float w, float h){
48
+ mStackNode.setSize({w, h});
49
+ }
50
+ OH_PixelmapNative *GetNodePixelMap();
51
+ void SetForeignNodeDelegate(SvgForeignObjectNodeDelegate *delegate) { m_NodeDelegate = delegate; };
52
+ void SetGeneratedPixelMap(bool isNeed) {
53
+ _isGeneratedPixelMap = isNeed;
54
+ }
55
+
56
+ void SetClipPath(std::string path,int clipRule) {
57
+ _path = path;
58
+ _clipRule = clipRule;
59
+ }
60
+ void SetMask(std::string mask) {
61
+ _mask = mask;
62
+ }
63
+
64
+ private:
65
+ StackNode mStackNode;
66
+ SvgForeignObjectNodeDelegate *m_NodeDelegate;
67
+ Dimension _width{0};
68
+ Dimension _height{0};
69
+ Dimension _positionX{0};
70
+ Dimension _positionY{0};
71
+ std::string _path{""};
72
+ std::string _mask{""};
73
+ std::vector<double> transform_;
74
+ int _clipRule{0};
75
+ float pointScaleFactor_{0};
76
+ bool _isGeneratedPixelMap{false}; //防止快照生成多次,导致性能影响
77
+ };
78
+
79
+ } // namespace svg
80
+ } // namespace rnoh
81
+ #endif // HARMONY_SVGFOREIGNOBJECTNODE_H
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright (c) 2025 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
+ #ifndef HARMONY_SVGFOREIGNOBJECTNODEDELEGATE_H
23
+ #define HARMONY_SVGFOREIGNOBJECTNODEDELEGATE_H
24
+ #include "SvgForeignProps.h"
25
+ class SvgForeignObjectNodeDelegate {
26
+ public:
27
+ virtual ~SvgForeignObjectNodeDelegate() = default;
28
+ virtual void onDrawForeignImage(ForeignProps props){};
29
+ };
30
+ #endif //HARMONY_SVGFOREIGNOBJECTNODEDELEGATE_H
@@ -0,0 +1,39 @@
1
+ /*
2
+ * Copyright (c) 2025 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
+ #ifndef HARMONY_FOREIGNPROPS_H
23
+ #define HARMONY_FOREIGNPROPS_H
24
+ #include "properties/Dimension.h"
25
+ #include <multimedia/image_framework/image/pixelmap_native.h>
26
+ #include <string>
27
+ struct ForeignProps {
28
+ OH_PixelmapNative *foreignPixelMap{nullptr};
29
+ rnoh::svg::Dimension width;
30
+ rnoh::svg::Dimension height;
31
+ rnoh::svg::Dimension x;
32
+ rnoh::svg::Dimension y;
33
+ std::string path;
34
+ int clipRule;
35
+ std::string mask;
36
+ float pointScaleFactor;
37
+ std::vector<double> transform;
38
+ };
39
+ #endif //HARMONY_FOREIGNPROPS_H
@@ -70,6 +70,7 @@ void SvgGradient::SetAttrRy(const std::string& ry) {
70
70
 
71
71
  void SvgGradient::SetAttrGradient(std::vector<Float> gradient) {
72
72
  auto stopCount = gradient.size() / 2;
73
+ gradientAttr_.gradient.ClearColors();
73
74
  for (auto i = 0; i < stopCount; i++) {
74
75
  auto stopIndex = i * 2;
75
76
  GradientColor gradientColor;
@@ -6,6 +6,7 @@
6
6
 
7
7
  #include "SvgGroup.h"
8
8
  #include "SvgFilter.h"
9
+ #include "drawing/Brush.h"
9
10
 
10
11
  namespace rnoh {
11
12
  namespace svg {
@@ -30,7 +31,13 @@ void SvgGroup::OnInitStyle() {
30
31
  }
31
32
 
32
33
  void SvgGroup::OnDraw(OH_Drawing_Canvas *canvas) {
33
- OnDrawTraversed(canvas);
34
+ if (attributes_.selfOpacity < 1.0) {
35
+ drawing::Brush layerBrush;
36
+ uint8_t alpha= static_cast<uint8_t>(attributes_.selfOpacity* 255);
37
+ layerBrush.SetAlpha(alpha);
38
+ OH_Drawing_CanvasSaveLayer(canvas, nullptr, layerBrush.get());
39
+ }
40
+ SvgNode::OnDraw(canvas);
34
41
  }
35
42
 
36
43
  void SvgGroup::ApplyFilterToChildren(std::shared_ptr<SvgFilter> filter) {
@@ -23,11 +23,13 @@
23
23
  #include "utils/SvgUtils.h"
24
24
  #include "SvgGradient.h"
25
25
  #include "SvgPattern.h"
26
+ #include "properties/ViewBox.h"
26
27
  #include "SvgFilter.h"
27
28
  #include <native_drawing/drawing_matrix.h>
28
29
  #include <native_drawing/drawing_path.h>
29
30
  #include <regex>
30
31
  #include <string>
32
+ #include <native_drawing/drawing_pixel_map.h>
31
33
 
32
34
  namespace rnoh {
33
35
  namespace svg {
@@ -75,6 +77,7 @@ void SvgNode::InitStyle(const SvgBaseAttribute &attr) {
75
77
  }
76
78
  }
77
79
  }
80
+ OnInitStyle();
78
81
  if (passStyle_) {
79
82
  for (auto &node : children_) {
80
83
  if (node) {
@@ -138,9 +141,8 @@ void SvgNode::OnMask(OH_Drawing_Canvas *canvas) {
138
141
  refMask->Draw(canvas);
139
142
  }
140
143
 
141
- void SvgNode::OnTransform(OH_Drawing_Canvas *canvas) {
144
+ void SvgNode::OnTransform(OH_Drawing_Canvas *canvas, std::vector<double> transform) {
142
145
  // input transfrom: (float scaleX, float skewY, float skewX, float scaleY, float transX, float transY)
143
- const auto &transform = attributes_.transform;
144
146
  /* (OH_Drawing_Matrix* , float scaleX, float skewX, float transX, float skewY, float scaleY, float transY, float
145
147
  persp0, float persp1, float persp2 )
146
148
  */
@@ -189,7 +191,7 @@ void SvgNode::Draw(OH_Drawing_Canvas *canvas) {
189
191
  const auto count = OH_Drawing_CanvasGetSaveCount(canvas);
190
192
  OH_Drawing_CanvasSave(canvas);
191
193
  if (!attributes_.transform.empty()) {
192
- OnTransform(canvas);
194
+ OnTransform(canvas, attributes_.transform);
193
195
  }
194
196
  if (!hrefClipPath_.empty()) {
195
197
  OnClipPath(canvas);
@@ -204,6 +206,13 @@ void SvgNode::Draw(OH_Drawing_Canvas *canvas) {
204
206
  // on marker
205
207
 
206
208
  OnDrawTraversed(canvas);
209
+
210
+ if (_foreignPropsArray.size() > 0) {
211
+ for (ForeignProps _foreignProps : _foreignPropsArray) {
212
+ DrawForeignPixelMap(canvas, _foreignProps);
213
+ }
214
+ _foreignPropsArray.clear();
215
+ }
207
216
  OH_Drawing_CanvasRestoreToCount(canvas, count);
208
217
  }
209
218
 
@@ -285,5 +294,102 @@ double SvgNode::getCanvasDiagonal() {
285
294
  canvasDiagonal_ = sqrt(powX + powY) * M_SQRT1_2l;
286
295
  return canvasDiagonal_;
287
296
  }
297
+
298
+ void SvgNode::DrawForeignClip(OH_Drawing_Canvas *canvas,const std::string &id,int clipRule) {
299
+ if (!context_) {
300
+ DLOG(INFO) << "[svgForeignNode] NO CONTEXT";
301
+ return;
302
+ }
303
+ auto refSvgNode = context_->GetSvgNodeById(id);
304
+ if (!refSvgNode) {
305
+ DLOG(WARNING) << "[svgForeignNode] clipPath: SvgNode is null!";
306
+ return;
307
+ };
308
+ auto clipPath = refSvgNode->AsPath();
309
+ drawing::Path::FillType fillType = clipRule == 0
310
+ ? OH_Drawing_PathFillType::PATH_FILL_TYPE_EVEN_ODD
311
+ : OH_Drawing_PathFillType::PATH_FILL_TYPE_WINDING;
312
+ clipPath.SetFillType(fillType);
313
+ OH_Drawing_CanvasClipPath(canvas, clipPath.get(), OH_Drawing_CanvasClipOp::INTERSECT, true);
314
+ }
315
+
316
+ void SvgNode::DrawForeignMask(OH_Drawing_Canvas *canvas, const std::string &id) {
317
+ if (!context_) {
318
+ DLOG(INFO) << "[svgForeignNode] NO CONTEXT";
319
+ return;
320
+ }
321
+ auto refMask = context_->GetSvgNodeById(id);
322
+ if (!refMask) {
323
+ return;
324
+ };
325
+ refMask->Draw(canvas);
326
+ }
327
+
328
+ void SvgNode::DrawForeignPixelMap(OH_Drawing_Canvas *canvas, ForeignProps _foreignProps) {
329
+ if (!_foreignProps.foreignPixelMap) {
330
+ DLOG(INFO) << "[svgForeignNode] foreignPixelMap is null";
331
+ return;
332
+ }
333
+ if (!_foreignProps.transform.empty()) {
334
+ OnTransform(canvas, _foreignProps.transform);
335
+ }
336
+ if (!_foreignProps.path.empty()) {
337
+ DrawForeignClip(canvas,_foreignProps.path, _foreignProps.clipRule);
338
+ }
339
+
340
+ if (!_foreignProps.mask.empty()) {
341
+ DrawForeignMask(canvas,_foreignProps.mask);
342
+ }
343
+ double postionX = _foreignProps.x.ParsePropsToPx(OH_Drawing_CanvasGetWidth(canvas), _foreignProps.pointScaleFactor);
344
+ double postionY = _foreignProps.y.ParsePropsToPx(OH_Drawing_CanvasGetHeight(canvas), _foreignProps.pointScaleFactor);
345
+ double foreignW = _foreignProps.width.ParsePropsToPx(OH_Drawing_CanvasGetWidth(canvas), _foreignProps.pointScaleFactor);
346
+ double foreignH = _foreignProps.height.ParsePropsToPx(OH_Drawing_CanvasGetHeight(canvas), _foreignProps.pointScaleFactor);
347
+ OH_Pixelmap_ImageInfo *imageInfo;
348
+ OH_PixelmapImageInfo_Create(&imageInfo);
349
+
350
+ OH_PixelmapNative_GetImageInfo(_foreignProps.foreignPixelMap, imageInfo);
351
+ uint32_t originalWidth = 0, originalHeight = 0;
352
+ OH_PixelmapImageInfo_GetWidth(imageInfo, &originalWidth);
353
+ OH_PixelmapImageInfo_GetHeight(imageInfo, &originalHeight);
354
+ OH_PixelmapImageInfo_Release(imageInfo);
355
+
356
+ if (originalWidth == 0 || originalHeight == 0) {
357
+ DLOG(WARNING) << "[svgForeignNode] Invalid pixelmap size";
358
+ OH_PixelmapNative_Release(_foreignProps.foreignPixelMap);
359
+ return;
360
+ }
361
+ float originalRelWidth = originalWidth > foreignW ? foreignW : originalWidth;
362
+ float originalRelHeight = originalHeight > foreignH ? foreignH : originalHeight;
363
+ DLOG(INFO) << "[svgForeignNode] DrawForeignPixelMap start , foreignH:" << foreignH << ";originalHeight:" << originalHeight <<";originalRelHeight:" << originalRelHeight;
364
+ OH_Drawing_PixelMap *ohPixelMap = OH_Drawing_PixelMapGetFromOhPixelMapNative(_foreignProps.foreignPixelMap);
365
+ if (!ohPixelMap) {
366
+ DLOG(WARNING) << "[svgForeignNode] Failed to get OH_Drawing_PixelMap";
367
+ OH_PixelmapNative_Release(_foreignProps.foreignPixelMap);
368
+ return;
369
+ }
370
+
371
+ OH_Drawing_CanvasSave(canvas);
372
+
373
+ OH_Drawing_CanvasTranslate(canvas, postionX, postionY);
374
+
375
+ OH_Drawing_CanvasScale(canvas, 1, 1);
376
+
377
+ OH_Drawing_Rect *srcRect = OH_Drawing_RectCreate(0, 0, originalRelWidth, originalRelHeight);
378
+ OH_Drawing_Rect *dstRect = OH_Drawing_RectCreate(0, 0, originalRelWidth, originalRelHeight);
379
+ OH_Drawing_SamplingOptions *sampling = OH_Drawing_SamplingOptionsCreate(FILTER_MODE_LINEAR, MIPMAP_MODE_LINEAR);
380
+ OH_Drawing_CanvasDrawPixelMapRect(canvas, ohPixelMap, srcRect, dstRect, sampling);
381
+
382
+
383
+ OH_Drawing_CanvasRestore(canvas);
384
+ OH_Drawing_PixelMapDissolve(ohPixelMap);
385
+ OH_PixelmapNative_Release(_foreignProps.foreignPixelMap);
386
+ OH_Drawing_RectDestroy(srcRect);
387
+ OH_Drawing_RectDestroy(dstRect);
388
+ OH_Drawing_SamplingOptionsDestroy(sampling);
389
+
390
+ _foreignProps.foreignPixelMap = nullptr;
391
+ DLOG(INFO) << "[svgForeignNode] DrawForeignPixelMap end";
392
+ }
393
+
288
394
  } // namespace svg
289
395
  } // namespace rnoh