@shopify/react-native-skia 1.7.6 → 1.7.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (364) 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.map +1 -1
  11. package/lib/commonjs/dom/nodes/datatypes/Circle.d.ts +2 -3
  12. package/lib/commonjs/dom/nodes/datatypes/Circle.js +11 -6
  13. package/lib/commonjs/dom/nodes/datatypes/Circle.js.map +1 -1
  14. package/lib/commonjs/dom/nodes/datatypes/Enum.js +1 -0
  15. package/lib/commonjs/dom/nodes/datatypes/Enum.js.map +1 -1
  16. package/lib/commonjs/dom/nodes/datatypes/Fitting.js +1 -10
  17. package/lib/commonjs/dom/nodes/datatypes/Fitting.js.map +1 -1
  18. package/lib/commonjs/dom/nodes/datatypes/Gradient.js +3 -2
  19. package/lib/commonjs/dom/nodes/datatypes/Gradient.js.map +1 -1
  20. package/lib/commonjs/dom/nodes/datatypes/Path.js +4 -1
  21. package/lib/commonjs/dom/nodes/datatypes/Path.js.map +1 -1
  22. package/lib/commonjs/dom/nodes/datatypes/Radius.js +1 -0
  23. package/lib/commonjs/dom/nodes/datatypes/Radius.js.map +1 -1
  24. package/lib/commonjs/dom/nodes/datatypes/Rect.d.ts +3 -1
  25. package/lib/commonjs/dom/nodes/datatypes/Rect.js +17 -7
  26. package/lib/commonjs/dom/nodes/datatypes/Rect.js.map +1 -1
  27. package/lib/commonjs/dom/nodes/datatypes/Transform.d.ts +2 -1
  28. package/lib/commonjs/dom/nodes/datatypes/Transform.js +32 -1
  29. package/lib/commonjs/dom/nodes/datatypes/Transform.js.map +1 -1
  30. package/lib/commonjs/dom/nodes/drawings/Box.js +4 -5
  31. package/lib/commonjs/dom/nodes/drawings/Box.js.map +1 -1
  32. package/lib/commonjs/dom/nodes/drawings/CircleNode.js +1 -1
  33. package/lib/commonjs/dom/nodes/drawings/CircleNode.js.map +1 -1
  34. package/lib/commonjs/dom/types/DeclarationContext.d.ts +4 -4
  35. package/lib/commonjs/dom/types/DeclarationContext.js +8 -2
  36. package/lib/commonjs/dom/types/DeclarationContext.js.map +1 -1
  37. package/lib/commonjs/external/reanimated/renderHelpers.d.ts +2 -0
  38. package/lib/commonjs/external/reanimated/renderHelpers.js +11 -6
  39. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  40. package/lib/commonjs/renderer/HostConfig.js +8 -4
  41. package/lib/commonjs/renderer/HostConfig.js.map +1 -1
  42. package/lib/commonjs/renderer/__tests__/setup.d.ts +2 -3
  43. package/lib/commonjs/renderer/processors/Animations/Animations.d.ts +1 -2
  44. package/lib/commonjs/renderer/processors/Animations/Animations.js.map +1 -1
  45. package/lib/commonjs/renderer/typeddash.js +5 -1
  46. package/lib/commonjs/renderer/typeddash.js.map +1 -1
  47. package/lib/commonjs/skia/__tests__/setup.d.ts +0 -3
  48. package/lib/commonjs/skia/types/Path/Path.js +5 -1
  49. package/lib/commonjs/skia/types/Path/Path.js.map +1 -1
  50. package/lib/commonjs/skia/types/Shader/Shader.js +8 -6
  51. package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
  52. package/lib/commonjs/sksg/Container.d.ts +19 -0
  53. package/lib/commonjs/sksg/Container.js +102 -0
  54. package/lib/commonjs/sksg/Container.js.map +1 -0
  55. package/lib/commonjs/sksg/DrawingContext.d.ts +16 -0
  56. package/lib/commonjs/sksg/DrawingContext.js +186 -0
  57. package/lib/commonjs/sksg/DrawingContext.js.map +1 -0
  58. package/lib/commonjs/sksg/HostConfig.d.ts +19 -0
  59. package/lib/commonjs/sksg/HostConfig.js +168 -0
  60. package/lib/commonjs/sksg/HostConfig.js.map +1 -0
  61. package/lib/commonjs/sksg/Reconciler.d.ts +17 -0
  62. package/lib/commonjs/sksg/Reconciler.js +54 -0
  63. package/lib/commonjs/sksg/Reconciler.js.map +1 -0
  64. package/lib/commonjs/sksg/__tests__/MockDeclaration.d.ts +57 -0
  65. package/lib/commonjs/sksg/nodes/Node.d.ts +7 -0
  66. package/lib/commonjs/sksg/nodes/Node.js +6 -0
  67. package/lib/commonjs/sksg/nodes/Node.js.map +1 -0
  68. package/lib/commonjs/sksg/nodes/colorFilters.d.ts +7 -0
  69. package/lib/commonjs/sksg/nodes/colorFilters.js +55 -0
  70. package/lib/commonjs/sksg/nodes/colorFilters.js.map +1 -0
  71. package/lib/commonjs/sksg/nodes/context.d.ts +3 -0
  72. package/lib/commonjs/sksg/nodes/context.js +448 -0
  73. package/lib/commonjs/sksg/nodes/context.js.map +1 -0
  74. package/lib/commonjs/sksg/nodes/drawings.d.ts +31 -0
  75. package/lib/commonjs/sksg/nodes/drawings.js +361 -0
  76. package/lib/commonjs/sksg/nodes/drawings.js.map +1 -0
  77. package/lib/commonjs/sksg/nodes/imageFilters.d.ts +14 -0
  78. package/lib/commonjs/sksg/nodes/imageFilters.js +135 -0
  79. package/lib/commonjs/sksg/nodes/imageFilters.js.map +1 -0
  80. package/lib/commonjs/sksg/nodes/index.d.ts +3 -0
  81. package/lib/commonjs/sksg/nodes/index.js +39 -0
  82. package/lib/commonjs/sksg/nodes/index.js.map +1 -0
  83. package/lib/commonjs/sksg/nodes/paint.d.ts +2 -0
  84. package/lib/commonjs/sksg/nodes/paint.js +80 -0
  85. package/lib/commonjs/sksg/nodes/paint.js.map +1 -0
  86. package/lib/commonjs/sksg/nodes/pathEffects.d.ts +8 -0
  87. package/lib/commonjs/sksg/nodes/pathEffects.js +84 -0
  88. package/lib/commonjs/sksg/nodes/pathEffects.js.map +1 -0
  89. package/lib/commonjs/sksg/nodes/shaders.d.ts +10 -0
  90. package/lib/commonjs/sksg/nodes/shaders.js +156 -0
  91. package/lib/commonjs/sksg/nodes/shaders.js.map +1 -0
  92. package/lib/commonjs/sksg/nodes/utils.d.ts +3 -0
  93. package/lib/commonjs/sksg/nodes/utils.js +25 -0
  94. package/lib/commonjs/sksg/nodes/utils.js.map +1 -0
  95. package/lib/commonjs/views/SkiaPictureView.js +0 -2
  96. package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
  97. package/lib/commonjs/views/types.d.ts +2 -2
  98. package/lib/commonjs/views/types.js.map +1 -1
  99. package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
  100. package/lib/module/dom/nodes/datatypes/Circle.d.ts +2 -3
  101. package/lib/module/dom/nodes/datatypes/Circle.js +12 -6
  102. package/lib/module/dom/nodes/datatypes/Circle.js.map +1 -1
  103. package/lib/module/dom/nodes/datatypes/Enum.js +2 -0
  104. package/lib/module/dom/nodes/datatypes/Enum.js.map +1 -1
  105. package/lib/module/dom/nodes/datatypes/Fitting.js +2 -10
  106. package/lib/module/dom/nodes/datatypes/Fitting.js.map +1 -1
  107. package/lib/module/dom/nodes/datatypes/Gradient.js +4 -2
  108. package/lib/module/dom/nodes/datatypes/Gradient.js.map +1 -1
  109. package/lib/module/dom/nodes/datatypes/Path.js +5 -1
  110. package/lib/module/dom/nodes/datatypes/Path.js.map +1 -1
  111. package/lib/module/dom/nodes/datatypes/Radius.js +2 -0
  112. package/lib/module/dom/nodes/datatypes/Radius.js.map +1 -1
  113. package/lib/module/dom/nodes/datatypes/Rect.d.ts +3 -1
  114. package/lib/module/dom/nodes/datatypes/Rect.js +14 -5
  115. package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
  116. package/lib/module/dom/nodes/datatypes/Transform.d.ts +2 -1
  117. package/lib/module/dom/nodes/datatypes/Transform.js +31 -0
  118. package/lib/module/dom/nodes/datatypes/Transform.js.map +1 -1
  119. package/lib/module/dom/nodes/drawings/Box.js +1 -2
  120. package/lib/module/dom/nodes/drawings/Box.js.map +1 -1
  121. package/lib/module/dom/nodes/drawings/CircleNode.js +1 -1
  122. package/lib/module/dom/nodes/drawings/CircleNode.js.map +1 -1
  123. package/lib/module/dom/types/DeclarationContext.d.ts +4 -4
  124. package/lib/module/dom/types/DeclarationContext.js +9 -2
  125. package/lib/module/dom/types/DeclarationContext.js.map +1 -1
  126. package/lib/module/external/reanimated/renderHelpers.d.ts +2 -0
  127. package/lib/module/external/reanimated/renderHelpers.js +8 -4
  128. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  129. package/lib/module/renderer/HostConfig.js +8 -4
  130. package/lib/module/renderer/HostConfig.js.map +1 -1
  131. package/lib/module/renderer/__tests__/setup.d.ts +2 -3
  132. package/lib/module/renderer/processors/Animations/Animations.d.ts +1 -2
  133. package/lib/module/renderer/processors/Animations/Animations.js.map +1 -1
  134. package/lib/module/renderer/typeddash.js +5 -1
  135. package/lib/module/renderer/typeddash.js.map +1 -1
  136. package/lib/module/skia/__tests__/setup.d.ts +0 -3
  137. package/lib/module/skia/types/Path/Path.js +5 -1
  138. package/lib/module/skia/types/Path/Path.js.map +1 -1
  139. package/lib/module/skia/types/Shader/Shader.js +9 -6
  140. package/lib/module/skia/types/Shader/Shader.js.map +1 -1
  141. package/lib/module/sksg/Container.d.ts +19 -0
  142. package/lib/module/sksg/Container.js +94 -0
  143. package/lib/module/sksg/Container.js.map +1 -0
  144. package/lib/module/sksg/DrawingContext.d.ts +16 -0
  145. package/lib/module/sksg/DrawingContext.js +180 -0
  146. package/lib/module/sksg/DrawingContext.js.map +1 -0
  147. package/lib/module/sksg/HostConfig.d.ts +19 -0
  148. package/lib/module/sksg/HostConfig.js +161 -0
  149. package/lib/module/sksg/HostConfig.js.map +1 -0
  150. package/lib/module/sksg/Reconciler.d.ts +17 -0
  151. package/lib/module/sksg/Reconciler.js +46 -0
  152. package/lib/module/sksg/Reconciler.js.map +1 -0
  153. package/lib/module/sksg/__tests__/MockDeclaration.d.ts +57 -0
  154. package/lib/module/sksg/nodes/Node.d.ts +7 -0
  155. package/lib/module/sksg/nodes/Node.js +2 -0
  156. package/lib/module/sksg/nodes/Node.js.map +1 -0
  157. package/lib/module/sksg/nodes/colorFilters.d.ts +7 -0
  158. package/lib/module/sksg/nodes/colorFilters.js +44 -0
  159. package/lib/module/sksg/nodes/colorFilters.js.map +1 -0
  160. package/lib/module/sksg/nodes/context.d.ts +3 -0
  161. package/lib/module/sksg/nodes/context.js +443 -0
  162. package/lib/module/sksg/nodes/context.js.map +1 -0
  163. package/lib/module/sksg/nodes/drawings.d.ts +31 -0
  164. package/lib/module/sksg/nodes/drawings.js +334 -0
  165. package/lib/module/sksg/nodes/drawings.js.map +1 -0
  166. package/lib/module/sksg/nodes/imageFilters.d.ts +14 -0
  167. package/lib/module/sksg/nodes/imageFilters.js +122 -0
  168. package/lib/module/sksg/nodes/imageFilters.js.map +1 -0
  169. package/lib/module/sksg/nodes/index.d.ts +3 -0
  170. package/lib/module/sksg/nodes/index.js +4 -0
  171. package/lib/module/sksg/nodes/index.js.map +1 -0
  172. package/lib/module/sksg/nodes/paint.d.ts +2 -0
  173. package/lib/module/sksg/nodes/paint.js +74 -0
  174. package/lib/module/sksg/nodes/paint.js.map +1 -0
  175. package/lib/module/sksg/nodes/pathEffects.d.ts +8 -0
  176. package/lib/module/sksg/nodes/pathEffects.js +72 -0
  177. package/lib/module/sksg/nodes/pathEffects.js.map +1 -0
  178. package/lib/module/sksg/nodes/shaders.d.ts +10 -0
  179. package/lib/module/sksg/nodes/shaders.js +142 -0
  180. package/lib/module/sksg/nodes/shaders.js.map +1 -0
  181. package/lib/module/sksg/nodes/utils.d.ts +3 -0
  182. package/lib/module/sksg/nodes/utils.js +18 -0
  183. package/lib/module/sksg/nodes/utils.js.map +1 -0
  184. package/lib/module/views/SkiaPictureView.js +0 -2
  185. package/lib/module/views/SkiaPictureView.js.map +1 -1
  186. package/lib/module/views/types.d.ts +2 -2
  187. package/lib/module/views/types.js.map +1 -1
  188. package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Circle.d.ts +1 -1
  189. package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Rect.d.ts +2 -0
  190. package/lib/typescript/lib/commonjs/dom/nodes/datatypes/Transform.d.ts +1 -0
  191. package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +2 -0
  192. package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +3 -1
  193. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +16 -0
  194. package/lib/typescript/lib/commonjs/sksg/DrawingContext.d.ts +26 -0
  195. package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +50 -0
  196. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +16 -0
  197. package/lib/typescript/lib/commonjs/sksg/nodes/Node.d.ts +1 -0
  198. package/lib/typescript/lib/commonjs/sksg/nodes/colorFilters.d.ts +7 -0
  199. package/lib/typescript/lib/commonjs/sksg/nodes/context.d.ts +2 -0
  200. package/lib/typescript/lib/commonjs/sksg/nodes/drawings.d.ts +23 -0
  201. package/lib/typescript/lib/commonjs/sksg/nodes/imageFilters.d.ts +10 -0
  202. package/lib/typescript/lib/commonjs/sksg/nodes/index.d.ts +1 -0
  203. package/lib/typescript/lib/commonjs/sksg/nodes/paint.d.ts +2 -0
  204. package/lib/typescript/lib/commonjs/sksg/nodes/pathEffects.d.ts +8 -0
  205. package/lib/typescript/lib/commonjs/sksg/nodes/shaders.d.ts +10 -0
  206. package/lib/typescript/lib/commonjs/sksg/nodes/utils.d.ts +3 -0
  207. package/lib/typescript/lib/module/dom/nodes/datatypes/Circle.d.ts +1 -1
  208. package/lib/typescript/lib/module/dom/nodes/datatypes/Rect.d.ts +2 -0
  209. package/lib/typescript/lib/module/dom/nodes/datatypes/Transform.d.ts +1 -0
  210. package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +2 -0
  211. package/lib/typescript/lib/module/mock/index.d.ts +4 -1
  212. package/lib/typescript/lib/module/renderer/HostConfig.d.ts +3 -1
  213. package/lib/typescript/lib/module/sksg/Container.d.ts +15 -0
  214. package/lib/typescript/lib/module/sksg/DrawingContext.d.ts +26 -0
  215. package/lib/typescript/lib/module/sksg/HostConfig.d.ts +49 -0
  216. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +15 -0
  217. package/lib/typescript/lib/module/sksg/nodes/colorFilters.d.ts +6 -0
  218. package/lib/typescript/lib/module/sksg/nodes/context.d.ts +1 -0
  219. package/lib/typescript/lib/module/sksg/nodes/drawings.d.ts +22 -0
  220. package/lib/typescript/lib/module/sksg/nodes/imageFilters.d.ts +9 -0
  221. package/lib/typescript/lib/module/sksg/nodes/index.d.ts +3 -0
  222. package/lib/typescript/lib/module/sksg/nodes/paint.d.ts +1 -0
  223. package/lib/typescript/lib/module/sksg/nodes/pathEffects.d.ts +7 -0
  224. package/lib/typescript/lib/module/sksg/nodes/shaders.d.ts +9 -0
  225. package/lib/typescript/lib/module/sksg/nodes/utils.d.ts +2 -0
  226. package/lib/typescript/src/dom/nodes/datatypes/Circle.d.ts +2 -3
  227. package/lib/typescript/src/dom/nodes/datatypes/Rect.d.ts +3 -1
  228. package/lib/typescript/src/dom/nodes/datatypes/Transform.d.ts +2 -1
  229. package/lib/typescript/src/dom/types/DeclarationContext.d.ts +4 -4
  230. package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +2 -0
  231. package/lib/typescript/src/renderer/__tests__/setup.d.ts +2 -3
  232. package/lib/typescript/src/renderer/processors/Animations/Animations.d.ts +1 -2
  233. package/lib/typescript/src/skia/__tests__/setup.d.ts +0 -3
  234. package/lib/typescript/src/sksg/Container.d.ts +19 -0
  235. package/lib/typescript/src/sksg/DrawingContext.d.ts +16 -0
  236. package/lib/typescript/src/sksg/HostConfig.d.ts +19 -0
  237. package/lib/typescript/src/sksg/Reconciler.d.ts +17 -0
  238. package/lib/typescript/src/sksg/__tests__/MockDeclaration.d.ts +57 -0
  239. package/lib/typescript/src/sksg/nodes/Node.d.ts +7 -0
  240. package/lib/typescript/src/sksg/nodes/colorFilters.d.ts +7 -0
  241. package/lib/typescript/src/sksg/nodes/context.d.ts +3 -0
  242. package/lib/typescript/src/sksg/nodes/drawings.d.ts +31 -0
  243. package/lib/typescript/src/sksg/nodes/imageFilters.d.ts +14 -0
  244. package/lib/typescript/src/sksg/nodes/index.d.ts +3 -0
  245. package/lib/typescript/src/sksg/nodes/paint.d.ts +2 -0
  246. package/lib/typescript/src/sksg/nodes/pathEffects.d.ts +8 -0
  247. package/lib/typescript/src/sksg/nodes/shaders.d.ts +10 -0
  248. package/lib/typescript/src/sksg/nodes/utils.d.ts +3 -0
  249. package/lib/typescript/src/views/types.d.ts +2 -2
  250. package/libs/{ios → apple}/libskia.xcframework/Info.plist +15 -0
  251. package/libs/{ios → apple}/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  252. package/libs/{ios → apple}/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  253. package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
  254. package/libs/{ios → apple}/libskottie.xcframework/Info.plist +20 -5
  255. package/libs/{ios → apple}/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  256. package/libs/{ios → apple}/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  257. package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
  258. package/libs/{ios → apple}/libskparagraph.xcframework/Info.plist +20 -5
  259. package/libs/{ios → apple}/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  260. package/libs/{ios → apple}/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  261. package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
  262. package/libs/{ios → apple}/libsksg.xcframework/Info.plist +15 -0
  263. package/libs/{ios → apple}/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  264. package/libs/{ios → apple}/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  265. package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
  266. package/libs/{ios → apple}/libskshaper.xcframework/Info.plist +20 -5
  267. package/libs/{ios → apple}/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  268. package/libs/{ios → apple}/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  269. package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
  270. package/libs/{ios → apple}/libskunicode_core.xcframework/Info.plist +18 -3
  271. package/libs/{ios → apple}/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
  272. package/libs/{ios → apple}/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  273. package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
  274. package/libs/{ios → apple}/libskunicode_libgrapheme.xcframework/Info.plist +15 -0
  275. package/libs/{ios → apple}/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  276. package/libs/{ios → apple}/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  277. package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
  278. package/libs/{ios → apple}/libsvg.xcframework/Info.plist +15 -0
  279. package/libs/{ios → apple}/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  280. package/libs/{ios → apple}/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  281. package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
  282. package/package.json +3 -3
  283. package/react-native-skia.podspec +9 -9
  284. package/src/__tests__/setup.ts +1 -1
  285. package/src/__tests__/snapshots/sksg/breathe-0.png +0 -0
  286. package/src/__tests__/snapshots/sksg/breathe.png +0 -0
  287. package/src/__tests__/snapshots/sksg/simple.png +0 -0
  288. package/src/__tests__/snapshots/sksg/simple2.png +0 -0
  289. package/src/dom/nodes/JsiSkDOM.ts +2 -1
  290. package/src/dom/nodes/datatypes/Circle.ts +7 -5
  291. package/src/dom/nodes/datatypes/Enum.ts +2 -0
  292. package/src/dom/nodes/datatypes/Fitting.ts +2 -5
  293. package/src/dom/nodes/datatypes/Gradient.ts +4 -7
  294. package/src/dom/nodes/datatypes/Path.ts +5 -2
  295. package/src/dom/nodes/datatypes/Radius.ts +2 -0
  296. package/src/dom/nodes/datatypes/Rect.ts +40 -6
  297. package/src/dom/nodes/datatypes/Transform.ts +29 -1
  298. package/src/dom/nodes/drawings/Box.ts +1 -29
  299. package/src/dom/nodes/drawings/CircleNode.ts +1 -1
  300. package/src/dom/types/DeclarationContext.ts +12 -2
  301. package/src/external/reanimated/renderHelpers.ts +8 -4
  302. package/src/renderer/HostConfig.ts +10 -4
  303. package/src/renderer/__tests__/documentation/shapes/Box.spec.tsx +2 -2
  304. package/src/renderer/__tests__/setup.tsx +17 -15
  305. package/src/renderer/processors/Animations/Animations.ts +1 -5
  306. package/src/renderer/typeddash.ts +4 -2
  307. package/src/skia/__tests__/setup.ts +1 -51
  308. package/src/skia/types/Path/Path.ts +4 -2
  309. package/src/skia/types/Shader/Shader.ts +7 -4
  310. package/src/sksg/Container.ts +102 -0
  311. package/src/sksg/DrawingContext.ts +221 -0
  312. package/src/sksg/HostConfig.ts +287 -0
  313. package/src/sksg/Reconciler.ts +59 -0
  314. package/src/sksg/__tests__/Declarations.spec.tsx +235 -0
  315. package/src/sksg/__tests__/MockDeclaration.ts +140 -0
  316. package/src/sksg/__tests__/Simple.spec.tsx +148 -0
  317. package/src/sksg/nodes/Node.ts +8 -0
  318. package/src/sksg/nodes/colorFilters.ts +60 -0
  319. package/src/sksg/nodes/context.ts +489 -0
  320. package/src/sksg/nodes/drawings.ts +393 -0
  321. package/src/sksg/nodes/imageFilters.ts +183 -0
  322. package/src/sksg/nodes/index.ts +3 -0
  323. package/src/sksg/nodes/paint.ts +75 -0
  324. package/src/sksg/nodes/pathEffects.ts +95 -0
  325. package/src/sksg/nodes/shaders.ts +203 -0
  326. package/src/sksg/nodes/utils.ts +23 -0
  327. package/src/views/SkiaPictureView.tsx +0 -2
  328. package/src/views/types.ts +2 -2
  329. package/lib/commonjs/dom/__tests__/Shaders.spec.d.ts +0 -1
  330. package/lib/commonjs/renderer/__tests__/SkiaDOM.spec.d.ts +0 -1
  331. package/lib/module/dom/__tests__/Compose.spec.d.ts +0 -1
  332. package/lib/module/dom/__tests__/Demos.spec.d.ts +0 -1
  333. package/lib/module/dom/__tests__/DrawingContext.spec.d.ts +0 -1
  334. package/lib/module/dom/__tests__/Drawings.spec.d.ts +0 -1
  335. package/lib/module/dom/__tests__/Group.spec.d.ts +0 -1
  336. package/lib/module/dom/__tests__/Paint.spec.d.ts +0 -1
  337. package/lib/module/dom/__tests__/RenderNodes.spec.d.ts +0 -1
  338. package/lib/module/dom/__tests__/Shaders.spec.d.ts +0 -1
  339. package/lib/module/renderer/__tests__/SkiaDOM.spec.d.ts +0 -1
  340. package/lib/typescript/src/dom/__tests__/Compose.spec.d.ts +0 -1
  341. package/lib/typescript/src/dom/__tests__/Demos.spec.d.ts +0 -1
  342. package/lib/typescript/src/dom/__tests__/DrawingContext.spec.d.ts +0 -1
  343. package/lib/typescript/src/dom/__tests__/Drawings.spec.d.ts +0 -1
  344. package/lib/typescript/src/dom/__tests__/Group.spec.d.ts +0 -1
  345. package/lib/typescript/src/dom/__tests__/Paint.spec.d.ts +0 -1
  346. package/lib/typescript/src/dom/__tests__/RenderNodes.spec.d.ts +0 -1
  347. package/lib/typescript/src/dom/__tests__/Shaders.spec.d.ts +0 -1
  348. package/lib/typescript/src/renderer/__tests__/SkiaDOM.spec.d.ts +0 -1
  349. package/src/dom/__tests__/Compose.spec.tsx +0 -42
  350. package/src/dom/__tests__/Demos.spec.tsx +0 -145
  351. package/src/dom/__tests__/DrawingContext.spec.tsx +0 -99
  352. package/src/dom/__tests__/Drawings.spec.tsx +0 -95
  353. package/src/dom/__tests__/Group.spec.tsx +0 -132
  354. package/src/dom/__tests__/Paint.spec.tsx +0 -100
  355. package/src/dom/__tests__/RenderNodes.spec.tsx +0 -44
  356. package/src/dom/__tests__/Shaders.spec.tsx +0 -123
  357. package/src/renderer/__tests__/SkiaDOM.spec.tsx +0 -46
  358. /package/lib/commonjs/{dom/__tests__/Compose.spec.d.ts → sksg/__tests__/Declarations.spec.d.ts} +0 -0
  359. /package/lib/commonjs/{dom/__tests__/Demos.spec.d.ts → sksg/__tests__/Simple.spec.d.ts} +0 -0
  360. /package/lib/{commonjs/dom/__tests__/DrawingContext.spec.d.ts → module/sksg/__tests__/Declarations.spec.d.ts} +0 -0
  361. /package/lib/{commonjs/dom/__tests__/Drawings.spec.d.ts → module/sksg/__tests__/Simple.spec.d.ts} +0 -0
  362. /package/lib/{commonjs/dom/__tests__/Group.spec.d.ts → typescript/lib/module/sksg/nodes/Node.d.ts} +0 -0
  363. /package/lib/{commonjs/dom/__tests__/Paint.spec.d.ts → typescript/src/sksg/__tests__/Declarations.spec.d.ts} +0 -0
  364. /package/lib/{commonjs/dom/__tests__/RenderNodes.spec.d.ts → typescript/src/sksg/__tests__/Simple.spec.d.ts} +0 -0
@@ -0,0 +1,95 @@
1
+ "worklet";
2
+
3
+ import { composeDeclarations, enumKey, processPath } from "../../dom/nodes";
4
+ import type {
5
+ CornerPathEffectProps,
6
+ DashPathEffectProps,
7
+ DeclarationContext,
8
+ DiscretePathEffectProps,
9
+ Line2DPathEffectProps,
10
+ Path1DPathEffectProps,
11
+ Path2DPathEffectProps,
12
+ } from "../../dom/types";
13
+ import { Path1DEffectStyle } from "../../skia/types";
14
+
15
+ export const makeDiscretePathEffect = (
16
+ ctx: DeclarationContext,
17
+ props: DiscretePathEffectProps
18
+ ) => {
19
+ const { length, deviation, seed } = props;
20
+ return ctx.Skia.PathEffect.MakeDiscrete(length, deviation, seed);
21
+ };
22
+
23
+ export const makePath2DPathEffect = (
24
+ ctx: DeclarationContext,
25
+ props: Path2DPathEffectProps
26
+ ) => {
27
+ const { matrix } = props;
28
+ const path = processPath(ctx.Skia, props.path);
29
+ const pe = ctx.Skia.PathEffect.MakePath2D(matrix, path);
30
+ if (pe === null) {
31
+ throw new Error("Path2DPathEffect: invalid path");
32
+ }
33
+ return pe;
34
+ };
35
+
36
+ export const makeDashPathEffect = (
37
+ ctx: DeclarationContext,
38
+ props: DashPathEffectProps
39
+ ) => {
40
+ const { intervals, phase } = props;
41
+ const pe = ctx.Skia.PathEffect.MakeDash(intervals, phase);
42
+ return pe;
43
+ };
44
+
45
+ export const makeCornerPathEffect = (
46
+ ctx: DeclarationContext,
47
+ props: CornerPathEffectProps
48
+ ) => {
49
+ const { r } = props;
50
+ const pe = ctx.Skia.PathEffect.MakeCorner(r);
51
+ if (pe === null) {
52
+ throw new Error("CornerPathEffect: couldn't create path effect");
53
+ }
54
+ return pe;
55
+ };
56
+
57
+ export const declareSumPathEffect = (ctx: DeclarationContext) => {
58
+ // Note: decorateChildren functionality needs to be handled differently
59
+ const pes = ctx.pathEffects.popAll();
60
+ const pe = composeDeclarations(
61
+ pes,
62
+ ctx.Skia.PathEffect.MakeSum.bind(ctx.Skia.PathEffect)
63
+ );
64
+ ctx.pathEffects.push(pe);
65
+ };
66
+
67
+ export const makeLine2DPathEffect = (
68
+ ctx: DeclarationContext,
69
+ props: Line2DPathEffectProps
70
+ ) => {
71
+ const { width, matrix } = props;
72
+ const pe = ctx.Skia.PathEffect.MakeLine2D(width, matrix);
73
+ if (pe === null) {
74
+ throw new Error("Line2DPathEffect: could not create path effect");
75
+ }
76
+ return pe;
77
+ };
78
+
79
+ export const makePath1DPathEffect = (
80
+ ctx: DeclarationContext,
81
+ props: Path1DPathEffectProps
82
+ ) => {
83
+ const { advance, phase, style } = props;
84
+ const path = processPath(ctx.Skia, props.path);
85
+ const pe = ctx.Skia.PathEffect.MakePath1D(
86
+ path,
87
+ advance,
88
+ phase,
89
+ Path1DEffectStyle[enumKey(style)]
90
+ );
91
+ if (pe === null) {
92
+ throw new Error("Path1DPathEffect: could not create path effect");
93
+ }
94
+ return pe;
95
+ };
@@ -0,0 +1,203 @@
1
+ "worklet";
2
+
3
+ import {
4
+ enumKey,
5
+ fitRects,
6
+ getRect,
7
+ processGradientProps,
8
+ processTransformProps,
9
+ rect2rect,
10
+ } from "../../dom/nodes";
11
+ import type {
12
+ ColorProps,
13
+ DeclarationContext,
14
+ FractalNoiseProps,
15
+ ImageShaderProps,
16
+ LinearGradientProps,
17
+ RadialGradientProps,
18
+ ShaderProps,
19
+ SweepGradientProps,
20
+ TurbulenceProps,
21
+ TwoPointConicalGradientProps,
22
+ } from "../../dom/types";
23
+ import {
24
+ FilterMode,
25
+ MipmapMode,
26
+ processUniforms,
27
+ TileMode,
28
+ } from "../../skia/types";
29
+
30
+ export const declareShader = (ctx: DeclarationContext, props: ShaderProps) => {
31
+ const { source, uniforms, ...transform } = props;
32
+ const m3 = ctx.Skia.Matrix();
33
+ processTransformProps(m3, transform);
34
+ const shader = source.makeShaderWithChildren(
35
+ processUniforms(source, uniforms),
36
+ ctx.shaders.popAll(),
37
+ m3
38
+ );
39
+ ctx.shaders.push(shader);
40
+ };
41
+
42
+ export const declareColorShader = (
43
+ ctx: DeclarationContext,
44
+ props: ColorProps
45
+ ) => {
46
+ const { color } = props;
47
+ const shader = ctx.Skia.Shader.MakeColor(ctx.Skia.Color(color));
48
+ ctx.shaders.push(shader);
49
+ };
50
+
51
+ export const declareFractalNoiseShader = (
52
+ ctx: DeclarationContext,
53
+ props: FractalNoiseProps
54
+ ) => {
55
+ const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;
56
+ const shader = ctx.Skia.Shader.MakeFractalNoise(
57
+ freqX,
58
+ freqY,
59
+ octaves,
60
+ seed,
61
+ tileWidth,
62
+ tileHeight
63
+ );
64
+ ctx.shaders.push(shader);
65
+ };
66
+
67
+ export const declareTwoPointConicalGradientShader = (
68
+ ctx: DeclarationContext,
69
+ props: TwoPointConicalGradientProps
70
+ ) => {
71
+ const { startR, endR, start, end } = props;
72
+ const { colors, positions, mode, localMatrix, flags } = processGradientProps(
73
+ ctx.Skia,
74
+ props
75
+ );
76
+ const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(
77
+ start,
78
+ startR,
79
+ end,
80
+ endR,
81
+ colors,
82
+ positions,
83
+ mode,
84
+ localMatrix,
85
+ flags
86
+ );
87
+ ctx.shaders.push(shader);
88
+ };
89
+
90
+ export const declareRadialGradientShader = (
91
+ ctx: DeclarationContext,
92
+ props: RadialGradientProps
93
+ ) => {
94
+ const { c, r } = props;
95
+ const { colors, positions, mode, localMatrix, flags } = processGradientProps(
96
+ ctx.Skia,
97
+ props
98
+ );
99
+ const shader = ctx.Skia.Shader.MakeRadialGradient(
100
+ c,
101
+ r,
102
+ colors,
103
+ positions,
104
+ mode,
105
+ localMatrix,
106
+ flags
107
+ );
108
+ ctx.shaders.push(shader);
109
+ };
110
+
111
+ export const declareSweepGradientShader = (
112
+ ctx: DeclarationContext,
113
+ props: SweepGradientProps
114
+ ) => {
115
+ const { c, start, end } = props;
116
+ const { colors, positions, mode, localMatrix, flags } = processGradientProps(
117
+ ctx.Skia,
118
+ props
119
+ );
120
+ const shader = ctx.Skia.Shader.MakeSweepGradient(
121
+ c.x,
122
+ c.y,
123
+ colors,
124
+ positions,
125
+ mode,
126
+ localMatrix,
127
+ flags,
128
+ start,
129
+ end
130
+ );
131
+ ctx.shaders.push(shader);
132
+ };
133
+
134
+ export const declareLinearGradientShader = (
135
+ ctx: DeclarationContext,
136
+ props: LinearGradientProps
137
+ ) => {
138
+ const { start, end } = props;
139
+ const { colors, positions, mode, localMatrix, flags } = processGradientProps(
140
+ ctx.Skia,
141
+ props
142
+ );
143
+ const shader = ctx.Skia.Shader.MakeLinearGradient(
144
+ start,
145
+ end,
146
+ colors,
147
+ positions ?? null,
148
+ mode,
149
+ localMatrix,
150
+ flags
151
+ );
152
+ ctx.shaders.push(shader);
153
+ };
154
+
155
+ export const declareTurbulenceShader = (
156
+ ctx: DeclarationContext,
157
+ props: TurbulenceProps
158
+ ) => {
159
+ const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;
160
+ const shader = ctx.Skia.Shader.MakeTurbulence(
161
+ freqX,
162
+ freqY,
163
+ octaves,
164
+ seed,
165
+ tileWidth,
166
+ tileHeight
167
+ );
168
+ ctx.shaders.push(shader);
169
+ };
170
+
171
+ export const declareImageShader = (
172
+ ctx: DeclarationContext,
173
+ props: ImageShaderProps
174
+ ) => {
175
+ const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = props;
176
+ if (!image) {
177
+ return;
178
+ }
179
+
180
+ const rct = getRect(ctx.Skia, imageShaderProps);
181
+ const m3 = ctx.Skia.Matrix();
182
+ if (rct) {
183
+ const rects = fitRects(
184
+ fit,
185
+ { x: 0, y: 0, width: image.width(), height: image.height() },
186
+ rct
187
+ );
188
+ const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);
189
+ m3.translate(x.translateX, y.translateY);
190
+ m3.scale(sx.scaleX, sy.scaleY);
191
+ }
192
+ const lm = ctx.Skia.Matrix();
193
+ lm.concat(m3);
194
+ processTransformProps(lm, imageShaderProps);
195
+ const shader = image.makeShaderOptions(
196
+ TileMode[enumKey(tx)],
197
+ TileMode[enumKey(ty)],
198
+ FilterMode[enumKey(fm)],
199
+ MipmapMode[enumKey(mm)],
200
+ lm
201
+ );
202
+ ctx.shaders.push(shader);
203
+ };
@@ -0,0 +1,23 @@
1
+ "worklet";
2
+
3
+ import type { SharedValue } from "react-native-reanimated";
4
+
5
+ import { mapKeys } from "../../renderer/typeddash";
6
+
7
+ export const isSharedValue = <T = unknown>(
8
+ value: unknown
9
+ ): value is SharedValue<T> => {
10
+ // We cannot use `in` operator here because `value` could be a HostObject and therefore we cast.
11
+ return (value as Record<string, unknown>)?._isReanimatedSharedValue === true;
12
+ };
13
+
14
+ export const materialize = <T extends object>(props: T) => {
15
+ const result: T = Object.assign({}, props);
16
+ mapKeys(result).forEach((key) => {
17
+ const value = result[key];
18
+ if (isSharedValue(value)) {
19
+ result[key] = value.value as never;
20
+ }
21
+ });
22
+ return result;
23
+ };
@@ -38,7 +38,6 @@ export class SkiaPictureView extends React.Component<SkiaPictureViewProps> {
38
38
  }
39
39
 
40
40
  componentDidUpdate(prevProps: SkiaPictureViewProps) {
41
- console.log("componentDidUpdate");
42
41
  const { picture, onSize } = this.props;
43
42
  if (picture !== prevProps.picture) {
44
43
  assertSkiaViewApi();
@@ -79,7 +78,6 @@ export class SkiaPictureView extends React.Component<SkiaPictureViewProps> {
79
78
  */
80
79
  public redraw() {
81
80
  assertSkiaViewApi();
82
- console.log("Request redraw: ", this._nativeId);
83
81
  SkiaViewApi.requestRedraw(this._nativeId);
84
82
  }
85
83
 
@@ -1,8 +1,8 @@
1
1
  import type { ViewProps } from "react-native";
2
+ import type { SharedValue } from "react-native-reanimated";
2
3
 
3
4
  import type { GroupProps, RenderNode } from "../dom/types";
4
5
  import type { SkImage, SkPicture, SkRect, SkSize } from "../skia/types";
5
- import type { SharedValueType } from "../renderer/processors/Animations/Animations";
6
6
 
7
7
  export type NativeSkiaViewProps = ViewProps & {
8
8
  debug?: boolean;
@@ -32,7 +32,7 @@ export interface SkiaBaseViewProps extends ViewProps {
32
32
  * Pass an animated value to the onSize property to get updates when
33
33
  * the Skia view is resized.
34
34
  */
35
- onSize?: SharedValueType<SkSize>;
35
+ onSize?: SharedValue<SkSize>;
36
36
 
37
37
  opaque?: boolean;
38
38
  }
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- export {};
@@ -1,42 +0,0 @@
1
- import {
2
- importSkia,
3
- width,
4
- height,
5
- loadImage,
6
- getSkDOM,
7
- } from "../../renderer/__tests__/setup";
8
- import { setupSkia } from "../../skia/__tests__/setup";
9
- import { docPath, processResult } from "../../__tests__/setup";
10
- import { JsiDrawingContext } from "../types";
11
-
12
- describe("Compose", () => {
13
- it("should compose image filters", () => {
14
- const size = width;
15
- const { surface, canvas } = setupSkia(width, height);
16
- const { Skia, rect, vec } = importSkia();
17
- const Sk = getSkDOM();
18
- const image = loadImage("skia/__tests__/assets/oslo.jpg");
19
-
20
- const root = Sk.Group();
21
- const img = Sk.Image({
22
- image,
23
- fit: "cover",
24
- rect: rect(0, 0, size, size),
25
- });
26
- root.addChild(img);
27
-
28
- const matrix = [
29
- -0.578, 0.99, 0.588, 0, 0, 0.469, 0.535, -0.003, 0, 0, 0.015, 1.69,
30
- -0.703, 0, 0, 0, 0, 0, 1, 0,
31
- ];
32
- const cf = Sk.MatrixColorFilter({ matrix });
33
-
34
- const blur = Sk.BlurImageFilter({ blur: vec(10, 10), mode: "decal" });
35
- blur.addChild(cf);
36
- root.addChild(blur);
37
-
38
- const ctx = new JsiDrawingContext(Skia, canvas);
39
- root.render(ctx);
40
- processResult(surface, docPath("image-filters/composing.png"));
41
- });
42
- });
@@ -1,145 +0,0 @@
1
- import {
2
- importSkia,
3
- width,
4
- height,
5
- getSkDOM,
6
- } from "../../renderer/__tests__/setup";
7
- import { setupSkia } from "../../skia/__tests__/setup";
8
- import { processResult } from "../../__tests__/setup";
9
- import { JsiDrawingContext } from "../types";
10
-
11
- describe("Drawings", () => {
12
- it("Apple Breathe Demo", () => {
13
- const { surface, canvas } = setupSkia(width, height);
14
- const { Skia, vec, polar2Canvas } = importSkia();
15
- const Sk = getSkDOM();
16
- const c = vec(width / 2, height / 2);
17
- const c1 = Skia.Color("#61bea2");
18
- const c2 = Skia.Color("#529ca0");
19
- const R = width / 4;
20
- const color = Skia.Color("rgb(36,43,56)");
21
- const root = Sk.Group({ color });
22
- root.addChild(Sk.Fill());
23
- const rings = Sk.Group({
24
- blendMode: "screen",
25
- });
26
- const blur = Sk.BlurMaskFilter({
27
- blur: 10,
28
- style: "solid",
29
- respectCTM: true,
30
- });
31
- rings.addChild(blur);
32
- for (let i = 0; i < 6; i++) {
33
- const theta = (i * (2 * Math.PI)) / 6;
34
- const matrix = Skia.Matrix();
35
- const { x, y } = polar2Canvas({ theta, radius: R }, { x: 0, y: 0 });
36
- matrix.translate(x, y);
37
- const ring = Sk.Group({
38
- matrix,
39
- color: i % 2 ? c1 : c2,
40
- });
41
- ring.addChild(Sk.Circle({ c, r: R }));
42
- rings.addChild(ring);
43
- }
44
- root.addChild(rings);
45
- const ctx = new JsiDrawingContext(Skia, canvas);
46
- root.render(ctx);
47
- processResult(surface, "snapshots/demos/breathe.png");
48
- });
49
-
50
- it("Apple Breathe Demo with the new API", () => {
51
- const { surface, canvas } = setupSkia(width, height);
52
- const { Skia, vec, polar2Canvas } = importSkia();
53
- const Sk = getSkDOM();
54
- const c = vec(width / 2, height / 2);
55
- const c1 = Skia.Color("#61bea2");
56
- const c2 = Skia.Color("#529ca0");
57
- const R = width / 4;
58
- const color = Skia.Color("rgb(36,43,56)");
59
- const root = Sk.Group({ color });
60
- root.addChild(Sk.Fill());
61
- const rings = Sk.Group({
62
- blendMode: "screen",
63
- });
64
- const blur = Sk.BlurMaskFilter({
65
- blur: 10,
66
- style: "solid",
67
- respectCTM: true,
68
- });
69
- rings.addChild(blur);
70
- for (let i = 0; i < 6; i++) {
71
- const theta = (i * (2 * Math.PI)) / 6;
72
- const matrix = Skia.Matrix();
73
- const { x, y } = polar2Canvas({ theta, radius: R }, { x: 0, y: 0 });
74
- matrix.translate(x, y);
75
- rings.addChild(Sk.Circle({ c, r: R, matrix, color: i % 2 ? c1 : c2 }));
76
- }
77
- root.addChild(rings);
78
- const ctx = new JsiDrawingContext(Skia, canvas);
79
- root.render(ctx);
80
- processResult(surface, "snapshots/demos/breathe.png");
81
- });
82
-
83
- it("Apple Breathe Demo with animations", () => {
84
- const { surface, canvas } = setupSkia(width, height);
85
- const { Skia, vec, polar2Canvas } = importSkia();
86
- const Sk = getSkDOM();
87
- const c = vec(width / 2, height / 2);
88
- const c1 = Skia.Color("#61bea2");
89
- const c2 = Skia.Color("#529ca0");
90
- const R = width / 4;
91
- const color = Skia.Color("rgb(36,43,56)");
92
- const root = Sk.Group({ color });
93
- root.addChild(Sk.Fill());
94
- const rings = Sk.Group({
95
- blendMode: "screen",
96
- });
97
- const blur = Sk.BlurMaskFilter({
98
- blur: 10,
99
- style: "solid",
100
- respectCTM: true,
101
- });
102
- rings.addChild(blur);
103
- for (let i = 0; i < 6; i++) {
104
- const theta = (i * (2 * Math.PI)) / 6;
105
- const matrix = Skia.Matrix();
106
- const { x, y } = polar2Canvas({ theta, radius: R }, { x: 0, y: 0 });
107
- matrix.translate(x, y);
108
- rings.addChild(Sk.Circle({ c, r: R, matrix, color: i % 2 ? c1 : c2 }));
109
- }
110
- root.addChild(rings);
111
- const ctx = new JsiDrawingContext(Skia, canvas);
112
- root.render(ctx);
113
- processResult(surface, "snapshots/demos/breathe.png");
114
-
115
- blur.setProp("blur", 0);
116
- root.setProp("transform", [
117
- { translateX: c.x },
118
- { translateY: c.y },
119
- { rotate: Math.PI / 4 },
120
- { translateX: -c.x },
121
- { translateY: -c.y },
122
- ]);
123
- for (let i = 0; i < 6; i++) {
124
- const theta = (i * (2 * Math.PI)) / 6;
125
- const matrix = Skia.Matrix();
126
- const scale = 0.5;
127
- const { x, y } = polar2Canvas({ theta, radius: 0.5 * R }, { x: 0, y: 0 });
128
- matrix.translate(x, y);
129
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
130
- const ring = rings.children()[i + 1] as any;
131
- ring.setProp("matrix", undefined);
132
- ring.setProp("transform", [
133
- { translateX: c.x },
134
- { translateY: c.y },
135
- { translateX: x },
136
- { translateY: y },
137
- { scale },
138
- { translateX: -c.x },
139
- { translateY: -c.y },
140
- ]);
141
- }
142
- root.render(ctx);
143
- processResult(surface, "snapshots/demos/breathe2.png");
144
- });
145
- });