@shopify/react-native-skia 1.7.5 → 1.7.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (384) hide show
  1. package/android/cpp/rnskia-android/OpenGLWindowContext.h +8 -1
  2. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +4 -4
  3. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.h +2 -2
  4. package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseView.java +13 -0
  5. package/android/src/main/java/com/shopify/reactnative/skia/SkiaTextureView.java +24 -1
  6. package/cpp/rnskia/RNSkJsiViewApi.h +0 -3
  7. package/cpp/rnskia/RNSkView.h +6 -6
  8. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.h +2 -2
  9. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +2 -2
  10. package/lib/commonjs/dom/nodes/JsiSkDOM.js +2 -2
  11. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
  12. package/lib/commonjs/dom/nodes/datatypes/Circle.d.ts +2 -3
  13. package/lib/commonjs/dom/nodes/datatypes/Circle.js +11 -6
  14. package/lib/commonjs/dom/nodes/datatypes/Circle.js.map +1 -1
  15. package/lib/commonjs/dom/nodes/datatypes/Enum.js +1 -0
  16. package/lib/commonjs/dom/nodes/datatypes/Enum.js.map +1 -1
  17. package/lib/commonjs/dom/nodes/datatypes/Fitting.js +1 -10
  18. package/lib/commonjs/dom/nodes/datatypes/Fitting.js.map +1 -1
  19. package/lib/commonjs/dom/nodes/datatypes/Gradient.js +3 -2
  20. package/lib/commonjs/dom/nodes/datatypes/Gradient.js.map +1 -1
  21. package/lib/commonjs/dom/nodes/datatypes/Path.js +4 -1
  22. package/lib/commonjs/dom/nodes/datatypes/Path.js.map +1 -1
  23. package/lib/commonjs/dom/nodes/datatypes/Radius.js +1 -0
  24. package/lib/commonjs/dom/nodes/datatypes/Radius.js.map +1 -1
  25. package/lib/commonjs/dom/nodes/datatypes/Rect.d.ts +3 -1
  26. package/lib/commonjs/dom/nodes/datatypes/Rect.js +17 -7
  27. package/lib/commonjs/dom/nodes/datatypes/Rect.js.map +1 -1
  28. package/lib/commonjs/dom/nodes/datatypes/Transform.d.ts +2 -1
  29. package/lib/commonjs/dom/nodes/datatypes/Transform.js +32 -1
  30. package/lib/commonjs/dom/nodes/datatypes/Transform.js.map +1 -1
  31. package/lib/commonjs/dom/nodes/drawings/Box.js +4 -5
  32. package/lib/commonjs/dom/nodes/drawings/Box.js.map +1 -1
  33. package/lib/commonjs/dom/nodes/drawings/CircleNode.js +1 -1
  34. package/lib/commonjs/dom/nodes/drawings/CircleNode.js.map +1 -1
  35. package/lib/commonjs/dom/types/DeclarationContext.d.ts +4 -4
  36. package/lib/commonjs/dom/types/DeclarationContext.js +8 -2
  37. package/lib/commonjs/dom/types/DeclarationContext.js.map +1 -1
  38. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +2 -0
  39. package/lib/commonjs/external/reanimated/renderHelpers.js +11 -6
  40. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  41. package/lib/commonjs/renderer/HostConfig.js +8 -4
  42. package/lib/commonjs/renderer/HostConfig.js.map +1 -1
  43. package/lib/commonjs/renderer/__tests__/setup.d.ts +2 -3
  44. package/lib/commonjs/renderer/processors/Animations/Animations.d.ts +1 -2
  45. package/lib/commonjs/renderer/processors/Animations/Animations.js.map +1 -1
  46. package/lib/commonjs/renderer/typeddash.js +5 -1
  47. package/lib/commonjs/renderer/typeddash.js.map +1 -1
  48. package/lib/commonjs/skia/__tests__/setup.d.ts +0 -3
  49. package/lib/commonjs/skia/types/Path/Path.js +5 -1
  50. package/lib/commonjs/skia/types/Path/Path.js.map +1 -1
  51. package/lib/commonjs/skia/types/RRect.d.ts +1 -1
  52. package/lib/commonjs/skia/types/RRect.js +7 -3
  53. package/lib/commonjs/skia/types/RRect.js.map +1 -1
  54. package/lib/commonjs/skia/types/Shader/Shader.js +8 -6
  55. package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
  56. package/lib/commonjs/skia/web/JsiSkParagraphStyle.js +1 -1
  57. package/lib/commonjs/skia/web/JsiSkParagraphStyle.js.map +1 -1
  58. package/lib/commonjs/sksg/Container.d.ts +19 -0
  59. package/lib/commonjs/sksg/Container.js +102 -0
  60. package/lib/commonjs/sksg/Container.js.map +1 -0
  61. package/lib/commonjs/sksg/DrawingContext.d.ts +16 -0
  62. package/lib/commonjs/sksg/DrawingContext.js +186 -0
  63. package/lib/commonjs/sksg/DrawingContext.js.map +1 -0
  64. package/lib/commonjs/sksg/HostConfig.d.ts +19 -0
  65. package/lib/commonjs/sksg/HostConfig.js +168 -0
  66. package/lib/commonjs/sksg/HostConfig.js.map +1 -0
  67. package/lib/commonjs/sksg/Reconciler.d.ts +17 -0
  68. package/lib/commonjs/sksg/Reconciler.js +54 -0
  69. package/lib/commonjs/sksg/Reconciler.js.map +1 -0
  70. package/lib/commonjs/sksg/__tests__/MockDeclaration.d.ts +57 -0
  71. package/lib/commonjs/sksg/nodes/Node.d.ts +7 -0
  72. package/lib/commonjs/sksg/nodes/Node.js +6 -0
  73. package/lib/commonjs/sksg/nodes/Node.js.map +1 -0
  74. package/lib/commonjs/sksg/nodes/colorFilters.d.ts +7 -0
  75. package/lib/commonjs/sksg/nodes/colorFilters.js +55 -0
  76. package/lib/commonjs/sksg/nodes/colorFilters.js.map +1 -0
  77. package/lib/commonjs/sksg/nodes/context.d.ts +3 -0
  78. package/lib/commonjs/sksg/nodes/context.js +448 -0
  79. package/lib/commonjs/sksg/nodes/context.js.map +1 -0
  80. package/lib/commonjs/sksg/nodes/drawings.d.ts +31 -0
  81. package/lib/commonjs/sksg/nodes/drawings.js +361 -0
  82. package/lib/commonjs/sksg/nodes/drawings.js.map +1 -0
  83. package/lib/commonjs/sksg/nodes/imageFilters.d.ts +14 -0
  84. package/lib/commonjs/sksg/nodes/imageFilters.js +135 -0
  85. package/lib/commonjs/sksg/nodes/imageFilters.js.map +1 -0
  86. package/lib/commonjs/sksg/nodes/index.d.ts +3 -0
  87. package/lib/commonjs/sksg/nodes/index.js +39 -0
  88. package/lib/commonjs/sksg/nodes/index.js.map +1 -0
  89. package/lib/commonjs/sksg/nodes/paint.d.ts +2 -0
  90. package/lib/commonjs/sksg/nodes/paint.js +80 -0
  91. package/lib/commonjs/sksg/nodes/paint.js.map +1 -0
  92. package/lib/commonjs/sksg/nodes/pathEffects.d.ts +8 -0
  93. package/lib/commonjs/sksg/nodes/pathEffects.js +84 -0
  94. package/lib/commonjs/sksg/nodes/pathEffects.js.map +1 -0
  95. package/lib/commonjs/sksg/nodes/shaders.d.ts +10 -0
  96. package/lib/commonjs/sksg/nodes/shaders.js +156 -0
  97. package/lib/commonjs/sksg/nodes/shaders.js.map +1 -0
  98. package/lib/commonjs/sksg/nodes/utils.d.ts +3 -0
  99. package/lib/commonjs/sksg/nodes/utils.js +25 -0
  100. package/lib/commonjs/sksg/nodes/utils.js.map +1 -0
  101. package/lib/commonjs/views/SkiaDomView.js +3 -1
  102. package/lib/commonjs/views/SkiaDomView.js.map +1 -1
  103. package/lib/commonjs/views/SkiaPictureView.js +0 -2
  104. package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
  105. package/lib/commonjs/views/types.d.ts +2 -2
  106. package/lib/commonjs/views/types.js.map +1 -1
  107. package/lib/module/dom/nodes/JsiSkDOM.js +2 -2
  108. package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
  109. package/lib/module/dom/nodes/datatypes/Circle.d.ts +2 -3
  110. package/lib/module/dom/nodes/datatypes/Circle.js +12 -6
  111. package/lib/module/dom/nodes/datatypes/Circle.js.map +1 -1
  112. package/lib/module/dom/nodes/datatypes/Enum.js +2 -0
  113. package/lib/module/dom/nodes/datatypes/Enum.js.map +1 -1
  114. package/lib/module/dom/nodes/datatypes/Fitting.js +2 -10
  115. package/lib/module/dom/nodes/datatypes/Fitting.js.map +1 -1
  116. package/lib/module/dom/nodes/datatypes/Gradient.js +4 -2
  117. package/lib/module/dom/nodes/datatypes/Gradient.js.map +1 -1
  118. package/lib/module/dom/nodes/datatypes/Path.js +5 -1
  119. package/lib/module/dom/nodes/datatypes/Path.js.map +1 -1
  120. package/lib/module/dom/nodes/datatypes/Radius.js +2 -0
  121. package/lib/module/dom/nodes/datatypes/Radius.js.map +1 -1
  122. package/lib/module/dom/nodes/datatypes/Rect.d.ts +3 -1
  123. package/lib/module/dom/nodes/datatypes/Rect.js +14 -5
  124. package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
  125. package/lib/module/dom/nodes/datatypes/Transform.d.ts +2 -1
  126. package/lib/module/dom/nodes/datatypes/Transform.js +31 -0
  127. package/lib/module/dom/nodes/datatypes/Transform.js.map +1 -1
  128. package/lib/module/dom/nodes/drawings/Box.js +1 -2
  129. package/lib/module/dom/nodes/drawings/Box.js.map +1 -1
  130. package/lib/module/dom/nodes/drawings/CircleNode.js +1 -1
  131. package/lib/module/dom/nodes/drawings/CircleNode.js.map +1 -1
  132. package/lib/module/dom/types/DeclarationContext.d.ts +4 -4
  133. package/lib/module/dom/types/DeclarationContext.js +9 -2
  134. package/lib/module/dom/types/DeclarationContext.js.map +1 -1
  135. package/lib/module/external/reanimated/renderHelpers.d.ts +2 -0
  136. package/lib/module/external/reanimated/renderHelpers.js +8 -4
  137. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  138. package/lib/module/renderer/HostConfig.js +8 -4
  139. package/lib/module/renderer/HostConfig.js.map +1 -1
  140. package/lib/module/renderer/__tests__/setup.d.ts +2 -3
  141. package/lib/module/renderer/processors/Animations/Animations.d.ts +1 -2
  142. package/lib/module/renderer/processors/Animations/Animations.js.map +1 -1
  143. package/lib/module/renderer/typeddash.js +5 -1
  144. package/lib/module/renderer/typeddash.js.map +1 -1
  145. package/lib/module/skia/__tests__/setup.d.ts +0 -3
  146. package/lib/module/skia/types/Path/Path.js +5 -1
  147. package/lib/module/skia/types/Path/Path.js.map +1 -1
  148. package/lib/module/skia/types/RRect.d.ts +1 -1
  149. package/lib/module/skia/types/RRect.js +7 -3
  150. package/lib/module/skia/types/RRect.js.map +1 -1
  151. package/lib/module/skia/types/Shader/Shader.js +9 -6
  152. package/lib/module/skia/types/Shader/Shader.js.map +1 -1
  153. package/lib/module/skia/web/JsiSkParagraphStyle.js +1 -1
  154. package/lib/module/skia/web/JsiSkParagraphStyle.js.map +1 -1
  155. package/lib/module/sksg/Container.d.ts +19 -0
  156. package/lib/module/sksg/Container.js +94 -0
  157. package/lib/module/sksg/Container.js.map +1 -0
  158. package/lib/module/sksg/DrawingContext.d.ts +16 -0
  159. package/lib/module/sksg/DrawingContext.js +180 -0
  160. package/lib/module/sksg/DrawingContext.js.map +1 -0
  161. package/lib/module/sksg/HostConfig.d.ts +19 -0
  162. package/lib/module/sksg/HostConfig.js +161 -0
  163. package/lib/module/sksg/HostConfig.js.map +1 -0
  164. package/lib/module/sksg/Reconciler.d.ts +17 -0
  165. package/lib/module/sksg/Reconciler.js +46 -0
  166. package/lib/module/sksg/Reconciler.js.map +1 -0
  167. package/lib/module/sksg/__tests__/MockDeclaration.d.ts +57 -0
  168. package/lib/module/sksg/nodes/Node.d.ts +7 -0
  169. package/lib/module/sksg/nodes/Node.js +2 -0
  170. package/lib/module/sksg/nodes/Node.js.map +1 -0
  171. package/lib/module/sksg/nodes/colorFilters.d.ts +7 -0
  172. package/lib/module/sksg/nodes/colorFilters.js +44 -0
  173. package/lib/module/sksg/nodes/colorFilters.js.map +1 -0
  174. package/lib/module/sksg/nodes/context.d.ts +3 -0
  175. package/lib/module/sksg/nodes/context.js +443 -0
  176. package/lib/module/sksg/nodes/context.js.map +1 -0
  177. package/lib/module/sksg/nodes/drawings.d.ts +31 -0
  178. package/lib/module/sksg/nodes/drawings.js +334 -0
  179. package/lib/module/sksg/nodes/drawings.js.map +1 -0
  180. package/lib/module/sksg/nodes/imageFilters.d.ts +14 -0
  181. package/lib/module/sksg/nodes/imageFilters.js +122 -0
  182. package/lib/module/sksg/nodes/imageFilters.js.map +1 -0
  183. package/lib/module/sksg/nodes/index.d.ts +3 -0
  184. package/lib/module/sksg/nodes/index.js +4 -0
  185. package/lib/module/sksg/nodes/index.js.map +1 -0
  186. package/lib/module/sksg/nodes/paint.d.ts +2 -0
  187. package/lib/module/sksg/nodes/paint.js +74 -0
  188. package/lib/module/sksg/nodes/paint.js.map +1 -0
  189. package/lib/module/sksg/nodes/pathEffects.d.ts +8 -0
  190. package/lib/module/sksg/nodes/pathEffects.js +72 -0
  191. package/lib/module/sksg/nodes/pathEffects.js.map +1 -0
  192. package/lib/module/sksg/nodes/shaders.d.ts +10 -0
  193. package/lib/module/sksg/nodes/shaders.js +142 -0
  194. package/lib/module/sksg/nodes/shaders.js.map +1 -0
  195. package/lib/module/sksg/nodes/utils.d.ts +3 -0
  196. package/lib/module/sksg/nodes/utils.js +18 -0
  197. package/lib/module/sksg/nodes/utils.js.map +1 -0
  198. package/lib/module/views/SkiaDomView.js +3 -1
  199. package/lib/module/views/SkiaDomView.js.map +1 -1
  200. package/lib/module/views/SkiaPictureView.js +0 -2
  201. package/lib/module/views/SkiaPictureView.js.map +1 -1
  202. package/lib/module/views/types.d.ts +2 -2
  203. package/lib/module/views/types.js.map +1 -1
  204. package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Circle.d.ts +1 -1
  205. package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Rect.d.ts +2 -0
  206. package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Transform.d.ts +1 -0
  207. package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +2 -0
  208. package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +3 -1
  209. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +16 -0
  210. package/lib/typescript/lib/commonjs/sksg/DrawingContext.d.ts +26 -0
  211. package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +50 -0
  212. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +16 -0
  213. package/lib/typescript/lib/commonjs/sksg/nodes/Node.d.ts +1 -0
  214. package/lib/typescript/lib/commonjs/sksg/nodes/colorFilters.d.ts +7 -0
  215. package/lib/typescript/lib/commonjs/sksg/nodes/context.d.ts +2 -0
  216. package/lib/typescript/lib/commonjs/sksg/nodes/drawings.d.ts +23 -0
  217. package/lib/typescript/lib/commonjs/sksg/nodes/imageFilters.d.ts +10 -0
  218. package/lib/typescript/lib/commonjs/sksg/nodes/index.d.ts +1 -0
  219. package/lib/typescript/lib/commonjs/sksg/nodes/paint.d.ts +2 -0
  220. package/lib/typescript/lib/commonjs/sksg/nodes/pathEffects.d.ts +8 -0
  221. package/lib/typescript/lib/commonjs/sksg/nodes/shaders.d.ts +10 -0
  222. package/lib/typescript/lib/commonjs/sksg/nodes/utils.d.ts +3 -0
  223. package/lib/typescript/lib/module/dom/nodes/datatypes/Circle.d.ts +1 -1
  224. package/lib/typescript/lib/module/dom/nodes/datatypes/Rect.d.ts +2 -0
  225. package/lib/typescript/lib/module/dom/nodes/datatypes/Transform.d.ts +1 -0
  226. package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +2 -0
  227. package/lib/typescript/lib/module/mock/index.d.ts +4 -1
  228. package/lib/typescript/lib/module/renderer/HostConfig.d.ts +3 -1
  229. package/lib/typescript/lib/module/sksg/Container.d.ts +15 -0
  230. package/lib/typescript/lib/module/sksg/DrawingContext.d.ts +26 -0
  231. package/lib/typescript/lib/module/sksg/HostConfig.d.ts +49 -0
  232. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +15 -0
  233. package/lib/typescript/lib/module/sksg/nodes/colorFilters.d.ts +6 -0
  234. package/lib/typescript/lib/module/sksg/nodes/context.d.ts +1 -0
  235. package/lib/typescript/lib/module/sksg/nodes/drawings.d.ts +22 -0
  236. package/lib/typescript/lib/module/sksg/nodes/imageFilters.d.ts +9 -0
  237. package/lib/typescript/lib/module/sksg/nodes/index.d.ts +3 -0
  238. package/lib/typescript/lib/module/sksg/nodes/paint.d.ts +1 -0
  239. package/lib/typescript/lib/module/sksg/nodes/pathEffects.d.ts +7 -0
  240. package/lib/typescript/lib/module/sksg/nodes/shaders.d.ts +9 -0
  241. package/lib/typescript/lib/module/sksg/nodes/utils.d.ts +2 -0
  242. package/lib/typescript/src/dom/nodes/datatypes/Circle.d.ts +2 -3
  243. package/lib/typescript/src/dom/nodes/datatypes/Rect.d.ts +3 -1
  244. package/lib/typescript/src/dom/nodes/datatypes/Transform.d.ts +2 -1
  245. package/lib/typescript/src/dom/types/DeclarationContext.d.ts +4 -4
  246. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +2 -0
  247. package/lib/typescript/src/renderer/__tests__/setup.d.ts +2 -3
  248. package/lib/typescript/src/renderer/processors/Animations/Animations.d.ts +1 -2
  249. package/lib/typescript/src/skia/__tests__/setup.d.ts +0 -3
  250. package/lib/typescript/src/skia/types/RRect.d.ts +1 -1
  251. package/lib/typescript/src/sksg/Container.d.ts +19 -0
  252. package/lib/typescript/src/sksg/DrawingContext.d.ts +16 -0
  253. package/lib/typescript/src/sksg/HostConfig.d.ts +19 -0
  254. package/lib/typescript/src/sksg/Reconciler.d.ts +17 -0
  255. package/lib/typescript/src/sksg/__tests__/MockDeclaration.d.ts +57 -0
  256. package/lib/typescript/src/sksg/nodes/Node.d.ts +7 -0
  257. package/lib/typescript/src/sksg/nodes/colorFilters.d.ts +7 -0
  258. package/lib/typescript/src/sksg/nodes/context.d.ts +3 -0
  259. package/lib/typescript/src/sksg/nodes/drawings.d.ts +31 -0
  260. package/lib/typescript/src/sksg/nodes/imageFilters.d.ts +14 -0
  261. package/lib/typescript/src/sksg/nodes/index.d.ts +3 -0
  262. package/lib/typescript/src/sksg/nodes/paint.d.ts +2 -0
  263. package/lib/typescript/src/sksg/nodes/pathEffects.d.ts +8 -0
  264. package/lib/typescript/src/sksg/nodes/shaders.d.ts +10 -0
  265. package/lib/typescript/src/sksg/nodes/utils.d.ts +3 -0
  266. package/lib/typescript/src/views/types.d.ts +2 -2
  267. package/libs/{ios → apple}/libskia.xcframework/Info.plist +15 -0
  268. package/libs/{ios → apple}/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  269. package/libs/{ios → apple}/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  270. package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
  271. package/libs/{ios → apple}/libskottie.xcframework/Info.plist +20 -5
  272. package/libs/{ios → apple}/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  273. package/libs/{ios → apple}/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  274. package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
  275. package/libs/{ios → apple}/libskparagraph.xcframework/Info.plist +20 -5
  276. package/libs/{ios → apple}/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  277. package/libs/{ios → apple}/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  278. package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
  279. package/libs/{ios → apple}/libsksg.xcframework/Info.plist +15 -0
  280. package/libs/{ios → apple}/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  281. package/libs/{ios → apple}/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  282. package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
  283. package/libs/{ios → apple}/libskshaper.xcframework/Info.plist +20 -5
  284. package/libs/{ios → apple}/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  285. package/libs/{ios → apple}/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  286. package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
  287. package/libs/{ios → apple}/libskunicode_core.xcframework/Info.plist +18 -3
  288. package/libs/{ios → apple}/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
  289. package/libs/{ios → apple}/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  290. package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
  291. package/libs/{ios → apple}/libskunicode_libgrapheme.xcframework/Info.plist +15 -0
  292. package/libs/{ios → apple}/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  293. package/libs/{ios → apple}/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  294. package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
  295. package/libs/{ios → apple}/libsvg.xcframework/Info.plist +15 -0
  296. package/libs/{ios → apple}/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  297. package/libs/{ios → apple}/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  298. package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
  299. package/package.json +3 -3
  300. package/react-native-skia.podspec +9 -9
  301. package/src/__tests__/setup.ts +1 -1
  302. package/src/__tests__/snapshots/sksg/breathe-0.png +0 -0
  303. package/src/__tests__/snapshots/sksg/breathe.png +0 -0
  304. package/src/__tests__/snapshots/sksg/simple.png +0 -0
  305. package/src/__tests__/snapshots/sksg/simple2.png +0 -0
  306. package/src/dom/nodes/JsiSkDOM.ts +2 -4
  307. package/src/dom/nodes/datatypes/Circle.ts +7 -5
  308. package/src/dom/nodes/datatypes/Enum.ts +2 -0
  309. package/src/dom/nodes/datatypes/Fitting.ts +2 -5
  310. package/src/dom/nodes/datatypes/Gradient.ts +4 -7
  311. package/src/dom/nodes/datatypes/Path.ts +5 -2
  312. package/src/dom/nodes/datatypes/Radius.ts +2 -0
  313. package/src/dom/nodes/datatypes/Rect.ts +40 -6
  314. package/src/dom/nodes/datatypes/Transform.ts +29 -1
  315. package/src/dom/nodes/drawings/Box.ts +1 -29
  316. package/src/dom/nodes/drawings/CircleNode.ts +1 -1
  317. package/src/dom/types/DeclarationContext.ts +12 -2
  318. package/src/external/reanimated/renderHelpers.ts +8 -4
  319. package/src/renderer/HostConfig.ts +10 -4
  320. package/src/renderer/__tests__/documentation/shapes/Box.spec.tsx +2 -2
  321. package/src/renderer/__tests__/setup.tsx +17 -15
  322. package/src/renderer/processors/Animations/Animations.ts +1 -5
  323. package/src/renderer/typeddash.ts +4 -2
  324. package/src/skia/__tests__/setup.ts +1 -51
  325. package/src/skia/types/Path/Path.ts +4 -2
  326. package/src/skia/types/RRect.ts +9 -3
  327. package/src/skia/types/Shader/Shader.ts +7 -4
  328. package/src/skia/web/JsiSkParagraphStyle.ts +1 -3
  329. package/src/sksg/Container.ts +102 -0
  330. package/src/sksg/DrawingContext.ts +221 -0
  331. package/src/sksg/HostConfig.ts +287 -0
  332. package/src/sksg/Reconciler.ts +59 -0
  333. package/src/sksg/__tests__/Declarations.spec.tsx +235 -0
  334. package/src/sksg/__tests__/MockDeclaration.ts +140 -0
  335. package/src/sksg/__tests__/Simple.spec.tsx +148 -0
  336. package/src/sksg/nodes/Node.ts +8 -0
  337. package/src/sksg/nodes/colorFilters.ts +60 -0
  338. package/src/sksg/nodes/context.ts +489 -0
  339. package/src/sksg/nodes/drawings.ts +393 -0
  340. package/src/sksg/nodes/imageFilters.ts +183 -0
  341. package/src/sksg/nodes/index.ts +3 -0
  342. package/src/sksg/nodes/paint.ts +75 -0
  343. package/src/sksg/nodes/pathEffects.ts +95 -0
  344. package/src/sksg/nodes/shaders.ts +203 -0
  345. package/src/sksg/nodes/utils.ts +23 -0
  346. package/src/views/SkiaDomView.tsx +3 -1
  347. package/src/views/SkiaPictureView.tsx +0 -2
  348. package/src/views/types.ts +2 -2
  349. package/lib/commonjs/dom/__tests__/Shaders.spec.d.ts +0 -1
  350. package/lib/commonjs/renderer/__tests__/SkiaDOM.spec.d.ts +0 -1
  351. package/lib/module/dom/__tests__/Compose.spec.d.ts +0 -1
  352. package/lib/module/dom/__tests__/Demos.spec.d.ts +0 -1
  353. package/lib/module/dom/__tests__/DrawingContext.spec.d.ts +0 -1
  354. package/lib/module/dom/__tests__/Drawings.spec.d.ts +0 -1
  355. package/lib/module/dom/__tests__/Group.spec.d.ts +0 -1
  356. package/lib/module/dom/__tests__/Paint.spec.d.ts +0 -1
  357. package/lib/module/dom/__tests__/RenderNodes.spec.d.ts +0 -1
  358. package/lib/module/dom/__tests__/Shaders.spec.d.ts +0 -1
  359. package/lib/module/renderer/__tests__/SkiaDOM.spec.d.ts +0 -1
  360. package/lib/typescript/src/dom/__tests__/Compose.spec.d.ts +0 -1
  361. package/lib/typescript/src/dom/__tests__/Demos.spec.d.ts +0 -1
  362. package/lib/typescript/src/dom/__tests__/DrawingContext.spec.d.ts +0 -1
  363. package/lib/typescript/src/dom/__tests__/Drawings.spec.d.ts +0 -1
  364. package/lib/typescript/src/dom/__tests__/Group.spec.d.ts +0 -1
  365. package/lib/typescript/src/dom/__tests__/Paint.spec.d.ts +0 -1
  366. package/lib/typescript/src/dom/__tests__/RenderNodes.spec.d.ts +0 -1
  367. package/lib/typescript/src/dom/__tests__/Shaders.spec.d.ts +0 -1
  368. package/lib/typescript/src/renderer/__tests__/SkiaDOM.spec.d.ts +0 -1
  369. package/src/dom/__tests__/Compose.spec.tsx +0 -42
  370. package/src/dom/__tests__/Demos.spec.tsx +0 -145
  371. package/src/dom/__tests__/DrawingContext.spec.tsx +0 -99
  372. package/src/dom/__tests__/Drawings.spec.tsx +0 -95
  373. package/src/dom/__tests__/Group.spec.tsx +0 -132
  374. package/src/dom/__tests__/Paint.spec.tsx +0 -100
  375. package/src/dom/__tests__/RenderNodes.spec.tsx +0 -44
  376. package/src/dom/__tests__/Shaders.spec.tsx +0 -123
  377. package/src/renderer/__tests__/SkiaDOM.spec.tsx +0 -46
  378. /package/lib/commonjs/{dom/__tests__/Compose.spec.d.ts → sksg/__tests__/Declarations.spec.d.ts} +0 -0
  379. /package/lib/commonjs/{dom/__tests__/Demos.spec.d.ts → sksg/__tests__/Simple.spec.d.ts} +0 -0
  380. /package/lib/{commonjs/dom/__tests__/DrawingContext.spec.d.ts → module/sksg/__tests__/Declarations.spec.d.ts} +0 -0
  381. /package/lib/{commonjs/dom/__tests__/Drawings.spec.d.ts → module/sksg/__tests__/Simple.spec.d.ts} +0 -0
  382. /package/lib/{commonjs/dom/__tests__/Group.spec.d.ts → typescript/lib/module/sksg/nodes/Node.d.ts} +0 -0
  383. /package/lib/{commonjs/dom/__tests__/Paint.spec.d.ts → typescript/src/sksg/__tests__/Declarations.spec.d.ts} +0 -0
  384. /package/lib/{commonjs/dom/__tests__/RenderNodes.spec.d.ts → typescript/src/sksg/__tests__/Simple.spec.d.ts} +0 -0
@@ -0,0 +1,489 @@
1
+ "worklet";
2
+ /* eslint-disable @typescript-eslint/no-explicit-any */
3
+ import { composeDeclarations, NodeType } from "../../dom/types";
4
+ import type {
5
+ BlendProps,
6
+ DeclarationContext,
7
+ DrawingNodeProps,
8
+ } from "../../dom/types";
9
+ import type { DrawingContext } from "../DrawingContext";
10
+ import { BlendMode } from "../../skia/types";
11
+ import type {
12
+ SkPathEffect,
13
+ SkColorFilter,
14
+ SkImageFilter,
15
+ } from "../../skia/types";
16
+ import { enumKey } from "../../dom/nodes";
17
+
18
+ import type { Node } from "./Node";
19
+ import {
20
+ drawAtlas,
21
+ drawBox,
22
+ drawBoxShadow,
23
+ drawCircle,
24
+ drawDiffRect,
25
+ drawFill,
26
+ drawGlyphs,
27
+ drawImage,
28
+ drawImageSVG,
29
+ drawLine,
30
+ drawOval,
31
+ drawParagraph,
32
+ drawPatch,
33
+ drawPath,
34
+ drawPicture,
35
+ drawPoints,
36
+ drawRect,
37
+ drawRRect,
38
+ drawText,
39
+ drawTextBlob,
40
+ drawTextPath,
41
+ drawVertices,
42
+ } from "./drawings";
43
+ import {
44
+ declareLerpColorFilter,
45
+ makeBlendColorFilter,
46
+ makeLinearToSRGBGammaColorFilter,
47
+ makeLumaColorFilter,
48
+ makeMatrixColorFilter,
49
+ makeSRGBToLinearGammaColorFilter,
50
+ } from "./colorFilters";
51
+ import {
52
+ declareBlendImageFilter,
53
+ declareBlurMaskFilter,
54
+ declareDisplacementMapImageFilter,
55
+ makeBlurImageFilter,
56
+ makeDropShadowImageFilter,
57
+ makeMorphologyImageFilter,
58
+ makeOffsetImageFilter,
59
+ makeRuntimeShaderImageFilter,
60
+ } from "./imageFilters";
61
+ import { materialize } from "./utils";
62
+ import {
63
+ declareColorShader,
64
+ declareFractalNoiseShader,
65
+ declareImageShader,
66
+ declareLinearGradientShader,
67
+ declareRadialGradientShader,
68
+ declareShader,
69
+ declareSweepGradientShader,
70
+ declareTurbulenceShader,
71
+ declareTwoPointConicalGradientShader,
72
+ } from "./shaders";
73
+ import { declarePaint } from "./paint";
74
+ import {
75
+ declareSumPathEffect,
76
+ makeCornerPathEffect,
77
+ makeDashPathEffect,
78
+ makeDiscretePathEffect,
79
+ makeLine2DPathEffect,
80
+ makePath1DPathEffect,
81
+ makePath2DPathEffect,
82
+ } from "./pathEffects";
83
+
84
+ interface ContextProcessingResult {
85
+ shouldRestoreMatrix: boolean;
86
+ shouldRestorePaint: boolean;
87
+ }
88
+
89
+ function composeColorFilters(
90
+ ctx: DeclarationContext,
91
+ cf: SkColorFilter,
92
+ processChildren: () => void
93
+ ) {
94
+ const { Skia } = ctx;
95
+ ctx.save();
96
+ processChildren();
97
+ const cf1 = ctx.colorFilters.popAllAsOne();
98
+ ctx.restore();
99
+ ctx.colorFilters.push(cf1 ? Skia.ColorFilter.MakeCompose(cf, cf1) : cf);
100
+ }
101
+
102
+ function composePathEffects(
103
+ ctx: DeclarationContext,
104
+ pe: SkPathEffect,
105
+ processChildren: () => void
106
+ ) {
107
+ const { Skia } = ctx;
108
+ ctx.save();
109
+ processChildren();
110
+ const pe1 = ctx.pathEffects.popAllAsOne();
111
+ ctx.restore();
112
+ ctx.pathEffects.push(pe1 ? Skia.PathEffect.MakeCompose(pe, pe1) : pe);
113
+ }
114
+
115
+ function composeImageFilters(
116
+ ctx: DeclarationContext,
117
+ imgf1: SkImageFilter,
118
+ processChildren: () => void
119
+ ) {
120
+ const { Skia } = ctx;
121
+ ctx.save();
122
+ processChildren();
123
+ let imgf2 = ctx.imageFilters.popAllAsOne();
124
+ const cf = ctx.colorFilters.popAllAsOne();
125
+ ctx.restore();
126
+ if (cf) {
127
+ imgf2 = Skia.ImageFilter.MakeCompose(
128
+ imgf2 ?? null,
129
+ Skia.ImageFilter.MakeColorFilter(cf, null)
130
+ );
131
+ }
132
+ const imgf = imgf2 ? Skia.ImageFilter.MakeCompose(imgf1, imgf2) : imgf1;
133
+ ctx.imageFilters.push(imgf);
134
+ }
135
+
136
+ function processDeclarations(ctx: DeclarationContext, node: Node<any>) {
137
+ const processChildren = () =>
138
+ node.children.forEach((child) => processDeclarations(ctx, child));
139
+ const { type } = node;
140
+ const props = materialize(node.props);
141
+ switch (type) {
142
+ // Mask Filter
143
+ case NodeType.BlurMaskFilter: {
144
+ declareBlurMaskFilter(ctx, props);
145
+ break;
146
+ }
147
+ // Color Filters
148
+ case NodeType.LerpColorFilter: {
149
+ node.children.forEach((child) => processDeclarations(ctx, child));
150
+ declareLerpColorFilter(ctx, props);
151
+ break;
152
+ }
153
+ case NodeType.Blend: {
154
+ node.children.forEach((child) => processDeclarations(ctx, child));
155
+ const { Skia } = ctx;
156
+ const blend = BlendMode[enumKey(props.mode as BlendProps["mode"])];
157
+ // Blend ImageFilters
158
+ const imageFilters = ctx.imageFilters.popAll();
159
+ if (imageFilters.length > 0) {
160
+ const composer = Skia.ImageFilter.MakeBlend.bind(
161
+ Skia.ImageFilter,
162
+ blend
163
+ );
164
+ ctx.imageFilters.push(composeDeclarations(imageFilters, composer));
165
+ }
166
+ // Blend Shaders
167
+ const shaders = ctx.shaders.popAll();
168
+ if (shaders.length > 0) {
169
+ const composer = Skia.Shader.MakeBlend.bind(Skia.Shader, blend);
170
+ ctx.shaders.push(composeDeclarations(shaders, composer));
171
+ }
172
+ break;
173
+ }
174
+ case NodeType.BlendColorFilter: {
175
+ const cf = makeBlendColorFilter(ctx, props);
176
+ composeColorFilters(ctx, cf, processChildren);
177
+ break;
178
+ }
179
+ case NodeType.SRGBToLinearGammaColorFilter: {
180
+ const cf = makeSRGBToLinearGammaColorFilter(ctx);
181
+ composeColorFilters(ctx, cf, processChildren);
182
+ break;
183
+ }
184
+ case NodeType.LinearToSRGBGammaColorFilter: {
185
+ const cf = makeLinearToSRGBGammaColorFilter(ctx);
186
+ composeColorFilters(ctx, cf, processChildren);
187
+ break;
188
+ }
189
+ case NodeType.MatrixColorFilter: {
190
+ const cf = makeMatrixColorFilter(ctx, props);
191
+ composeColorFilters(ctx, cf, processChildren);
192
+ break;
193
+ }
194
+ case NodeType.LumaColorFilter: {
195
+ const cf = makeLumaColorFilter(ctx);
196
+ composeColorFilters(ctx, cf, processChildren);
197
+ break;
198
+ }
199
+ // Shaders
200
+ case NodeType.Shader: {
201
+ node.children.forEach((child) => processDeclarations(ctx, child));
202
+ declareShader(ctx, props);
203
+ break;
204
+ }
205
+ case NodeType.ImageShader: {
206
+ declareImageShader(ctx, props);
207
+ break;
208
+ }
209
+ case NodeType.ColorShader: {
210
+ declareColorShader(ctx, props);
211
+ break;
212
+ }
213
+ case NodeType.Turbulence: {
214
+ declareTurbulenceShader(ctx, props);
215
+ break;
216
+ }
217
+ case NodeType.FractalNoise: {
218
+ declareFractalNoiseShader(ctx, props);
219
+ break;
220
+ }
221
+ case NodeType.LinearGradient: {
222
+ declareLinearGradientShader(ctx, props);
223
+ break;
224
+ }
225
+ case NodeType.RadialGradient: {
226
+ declareRadialGradientShader(ctx, props);
227
+ break;
228
+ }
229
+ case NodeType.SweepGradient: {
230
+ declareSweepGradientShader(ctx, props);
231
+ break;
232
+ }
233
+ case NodeType.TwoPointConicalGradient: {
234
+ declareTwoPointConicalGradientShader(ctx, props);
235
+ break;
236
+ }
237
+ // Image Filters
238
+ case NodeType.BlurImageFilter: {
239
+ const imgf = makeBlurImageFilter(ctx, props);
240
+ composeImageFilters(ctx, imgf, processChildren);
241
+ break;
242
+ }
243
+ case NodeType.OffsetImageFilter: {
244
+ const imgf = makeOffsetImageFilter(ctx, props);
245
+ composeImageFilters(ctx, imgf, processChildren);
246
+ break;
247
+ }
248
+ case NodeType.DisplacementMapImageFilter: {
249
+ node.children.forEach((child) => processDeclarations(ctx, child));
250
+ declareDisplacementMapImageFilter(ctx, props);
251
+ break;
252
+ }
253
+ case NodeType.DropShadowImageFilter: {
254
+ const imgf = makeDropShadowImageFilter(ctx, props);
255
+ composeImageFilters(ctx, imgf, processChildren);
256
+ break;
257
+ }
258
+ case NodeType.MorphologyImageFilter: {
259
+ const imgf = makeMorphologyImageFilter(ctx, props);
260
+ composeImageFilters(ctx, imgf, processChildren);
261
+ break;
262
+ }
263
+ case NodeType.BlendImageFilter: {
264
+ node.children.forEach((child) => processDeclarations(ctx, child));
265
+ declareBlendImageFilter(ctx, props);
266
+ break;
267
+ }
268
+ case NodeType.RuntimeShaderImageFilter: {
269
+ const imgf = makeRuntimeShaderImageFilter(ctx, props);
270
+ composeImageFilters(ctx, imgf, processChildren);
271
+ break;
272
+ }
273
+ // Path Effects
274
+ case NodeType.SumPathEffect: {
275
+ node.children.forEach((child) => processDeclarations(ctx, child));
276
+ declareSumPathEffect(ctx);
277
+ break;
278
+ }
279
+ case NodeType.CornerPathEffect: {
280
+ const pf = makeCornerPathEffect(ctx, props);
281
+ composePathEffects(ctx, pf, processChildren);
282
+ break;
283
+ }
284
+ case NodeType.Path1DPathEffect: {
285
+ const pf = makePath1DPathEffect(ctx, props);
286
+ composePathEffects(ctx, pf, processChildren);
287
+ break;
288
+ }
289
+ case NodeType.Path2DPathEffect: {
290
+ const pf = makePath2DPathEffect(ctx, props);
291
+ composePathEffects(ctx, pf, processChildren);
292
+ break;
293
+ }
294
+ case NodeType.Line2DPathEffect: {
295
+ const pf = makeLine2DPathEffect(ctx, props);
296
+ composePathEffects(ctx, pf, processChildren);
297
+ break;
298
+ }
299
+ case NodeType.DashPathEffect: {
300
+ const pf = makeDashPathEffect(ctx, props);
301
+ composePathEffects(ctx, pf, processChildren);
302
+ break;
303
+ }
304
+ case NodeType.DiscretePathEffect: {
305
+ const pf = makeDiscretePathEffect(ctx, props);
306
+ composePathEffects(ctx, pf, processChildren);
307
+ break;
308
+ }
309
+ // Paint
310
+ case NodeType.Paint:
311
+ node.children.forEach((child) => processDeclarations(ctx, child));
312
+ declarePaint(ctx, props);
313
+ break;
314
+ default:
315
+ console.log("Unknown declaration node: ", type);
316
+ }
317
+ }
318
+
319
+ const preProcessContext = (
320
+ ctx: DrawingContext,
321
+ props: DrawingNodeProps,
322
+ node: Node<any>
323
+ ) => {
324
+ const shouldRestoreMatrix = ctx.processMatrixAndClipping(props, props.layer);
325
+ ctx.declCtx.save();
326
+ node.children.forEach((child) => {
327
+ if (child.isDeclaration) {
328
+ processDeclarations(ctx.declCtx, child);
329
+ }
330
+ });
331
+ const shouldRestorePaint = ctx.processPaint(props);
332
+ ctx.declCtx.restore();
333
+ return { shouldRestoreMatrix, shouldRestorePaint };
334
+ };
335
+
336
+ const postProcessContext = (
337
+ ctx: DrawingContext,
338
+ { shouldRestoreMatrix, shouldRestorePaint }: ContextProcessingResult
339
+ ) => {
340
+ if (shouldRestoreMatrix) {
341
+ ctx.canvas.restore();
342
+ }
343
+ if (shouldRestorePaint) {
344
+ ctx.restore();
345
+ }
346
+ };
347
+
348
+ const drawBackdropFilter = (ctx: DrawingContext, node: Node) => {
349
+ const { canvas, Skia } = ctx;
350
+ const child = node.children[0];
351
+ let imageFilter: SkImageFilter | null = null;
352
+ if (child.isDeclaration) {
353
+ ctx.declCtx.save();
354
+ processDeclarations(ctx.declCtx, child);
355
+ const imgf = ctx.declCtx.imageFilters.pop();
356
+ if (imgf) {
357
+ imageFilter = imgf;
358
+ } else {
359
+ const cf = ctx.declCtx.colorFilters.pop();
360
+ if (cf) {
361
+ imageFilter = Skia.ImageFilter.MakeColorFilter(cf, null);
362
+ }
363
+ }
364
+ ctx.declCtx.restore();
365
+ }
366
+ canvas.saveLayer(undefined, null, imageFilter);
367
+ canvas.restore();
368
+ };
369
+
370
+ export function draw(ctx: DrawingContext, node: Node<any>) {
371
+ // Special mixed nodes
372
+ if (node.type === NodeType.BackdropFilter) {
373
+ drawBackdropFilter(ctx, node);
374
+ return;
375
+ }
376
+ if (node.type === NodeType.Layer) {
377
+ let hasLayer = false;
378
+ const [layer, ...children] = node.children;
379
+ if (layer.isDeclaration) {
380
+ const { declCtx } = ctx;
381
+ declCtx.save();
382
+ processDeclarations(ctx.declCtx, layer);
383
+ const paint = declCtx.paints.pop();
384
+ declCtx.restore();
385
+ if (paint) {
386
+ hasLayer = true;
387
+ ctx.canvas.saveLayer(paint);
388
+ }
389
+ }
390
+ children.map((child) => {
391
+ if (!child.isDeclaration) {
392
+ draw(ctx, child);
393
+ }
394
+ });
395
+ if (hasLayer) {
396
+ ctx.canvas.restore();
397
+ }
398
+ return;
399
+ }
400
+ const { type, props: rawProps, children } = node;
401
+ // Regular nodes
402
+ const props = materialize(rawProps);
403
+ const result = preProcessContext(ctx, props, node);
404
+ const paints = ctx.getLocalPaints();
405
+ paints.forEach((paint) => {
406
+ const lctx = { paint, Skia: ctx.Skia, canvas: ctx.canvas };
407
+ switch (type) {
408
+ case NodeType.Box:
409
+ drawBox(lctx, props, node.children);
410
+ break;
411
+ case NodeType.BoxShadow:
412
+ drawBoxShadow(lctx, props);
413
+ break;
414
+ case NodeType.Image:
415
+ drawImage(lctx, props);
416
+ break;
417
+ case NodeType.Points:
418
+ drawPoints(lctx, props);
419
+ break;
420
+ case NodeType.Path:
421
+ drawPath(lctx, props);
422
+ break;
423
+ case NodeType.Rect:
424
+ drawRect(lctx, props);
425
+ break;
426
+ case NodeType.RRect:
427
+ drawRRect(lctx, props);
428
+ break;
429
+ case NodeType.Oval:
430
+ drawOval(lctx, props);
431
+ break;
432
+ case NodeType.Line:
433
+ drawLine(lctx, props);
434
+ break;
435
+ case NodeType.Patch:
436
+ drawPatch(lctx, props);
437
+ break;
438
+ case NodeType.Vertices:
439
+ drawVertices(lctx, props);
440
+ break;
441
+ case NodeType.DiffRect:
442
+ drawDiffRect(lctx, props);
443
+ break;
444
+ case NodeType.Text:
445
+ drawText(lctx, props);
446
+ break;
447
+ case NodeType.TextPath:
448
+ drawTextPath(lctx, props);
449
+ break;
450
+ case NodeType.TextBlob:
451
+ drawTextBlob(lctx, props);
452
+ break;
453
+ case NodeType.Glyphs:
454
+ drawGlyphs(lctx, props);
455
+ break;
456
+ case NodeType.Picture:
457
+ drawPicture(lctx, props);
458
+ break;
459
+ case NodeType.ImageSVG:
460
+ drawImageSVG(lctx, props);
461
+ break;
462
+ case NodeType.Paragraph:
463
+ drawParagraph(lctx, props);
464
+ break;
465
+ case NodeType.Atlas:
466
+ drawAtlas(lctx, props);
467
+ break;
468
+ case NodeType.Circle:
469
+ drawCircle(lctx, props);
470
+ break;
471
+ case NodeType.Fill:
472
+ drawFill(lctx, props);
473
+ break;
474
+ case NodeType.Group:
475
+ // TODO: do nothing
476
+ break;
477
+ default:
478
+ if (!node.isDeclaration) {
479
+ console.warn(`Unsupported node type: ${type}`);
480
+ }
481
+ }
482
+ });
483
+ children.forEach((child) => {
484
+ if (!child.isDeclaration) {
485
+ draw(ctx, child);
486
+ }
487
+ });
488
+ postProcessContext(ctx, result);
489
+ }