@shopify/react-native-skia 0.1.122 → 0.1.125

Sign up to get free protection for your applications and to get access to all the features.
Files changed (466) hide show
  1. package/android/CMakeLists.txt +6 -1
  2. package/android/build.gradle +1 -1
  3. package/android/cpp/jni/JniSkiaDrawView.cpp +14 -71
  4. package/android/cpp/jni/JniSkiaManager.cpp +1 -1
  5. package/android/cpp/jni/include/JniSkiaDrawView.h +18 -22
  6. package/android/cpp/jni/include/JniSkiaManager.h +4 -4
  7. package/android/cpp/rnskia-android/RNSkDrawViewImpl.cpp +68 -0
  8. package/android/cpp/rnskia-android/RNSkDrawViewImpl.h +48 -0
  9. package/android/cpp/{jni/include/JniPlatformContextWrapper.h → rnskia-android/RNSkPlatformContextImpl.h} +4 -4
  10. package/android/cpp/{jni → rnskia-android}/SkiaOpenGLRenderer.cpp +39 -54
  11. package/android/cpp/{jni/include → rnskia-android}/SkiaOpenGLRenderer.h +2 -31
  12. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaViewManager.java +1 -1
  13. package/android/src/main/java/com/shopify/reactnative/skia/SkiaDrawView.java +21 -28
  14. package/cpp/api/JsiSkApi.h +3 -1
  15. package/cpp/api/JsiSkCanvas.h +1 -1
  16. package/cpp/api/JsiSkColor.h +41 -7
  17. package/cpp/api/JsiSkColorFilterFactory.h +2 -1
  18. package/cpp/api/JsiSkImageFilter.h +0 -2
  19. package/cpp/api/JsiSkImageFilterFactory.h +37 -17
  20. package/cpp/api/JsiSkMatrix.h +44 -2
  21. package/cpp/api/JsiSkPaint.h +4 -7
  22. package/cpp/api/JsiSkRuntimeEffect.h +7 -0
  23. package/cpp/api/JsiSkRuntimeEffectFactory.h +3 -2
  24. package/cpp/api/JsiSkRuntimeShaderBuilder.h +70 -0
  25. package/cpp/api/JsiSkShaderFactory.h +2 -2
  26. package/cpp/api/JsiSkVertices.h +1 -1
  27. package/cpp/api/third_party/CSSColorParser.cpp +194 -0
  28. package/cpp/api/third_party/CSSColorParser.h +1 -191
  29. package/cpp/jsi/JsiSimpleValueWrapper.h +98 -0
  30. package/cpp/rnskia/RNSkAnimation.h +0 -2
  31. package/cpp/rnskia/RNSkDrawView.cpp +84 -126
  32. package/cpp/rnskia/RNSkDrawView.h +7 -37
  33. package/cpp/rnskia/RNSkJsiViewApi.h +8 -5
  34. package/cpp/rnskia/RNSkManager.cpp +2 -2
  35. package/cpp/rnskia/RNSkManager.h +2 -2
  36. package/cpp/rnskia/RNSkPlatformContext.h +1 -1
  37. package/cpp/rnskia/RNSkValueApi.h +6 -2
  38. package/cpp/rnskia/values/RNSkClockValue.h +18 -10
  39. package/cpp/rnskia/values/RNSkDerivedValue.h +12 -5
  40. package/cpp/rnskia/values/RNSkReadonlyValue.h +25 -17
  41. package/cpp/rnskia/values/RNSkValue.h +8 -3
  42. package/cpp/utils/RNSkTimingInfo.h +13 -1
  43. package/ios/RNSkia-iOS/PlatformContext.h +30 -4
  44. package/ios/RNSkia-iOS/RNSkDrawViewImpl.h +8 -10
  45. package/ios/RNSkia-iOS/RNSkDrawViewImpl.mm +25 -10
  46. package/ios/RNSkia-iOS/SkiaDrawView.mm +22 -20
  47. package/lib/commonjs/{values/animation → animation}/decay/decay.js +0 -0
  48. package/lib/commonjs/{values/animation → animation}/decay/decay.js.map +0 -0
  49. package/lib/commonjs/{values/animation → animation}/decay/index.js +0 -0
  50. package/lib/commonjs/{values/animation → animation}/decay/index.js.map +0 -0
  51. package/lib/commonjs/{values/animation → animation}/decay/runDecay.js +1 -1
  52. package/lib/commonjs/animation/decay/runDecay.js.map +1 -0
  53. package/lib/commonjs/{values/animation → animation}/decay/types.js +0 -0
  54. package/lib/commonjs/{values/animation → animation}/decay/types.js.map +0 -0
  55. package/lib/commonjs/{values/animation → animation}/functions/index.js +0 -0
  56. package/lib/commonjs/{values/animation → animation}/functions/index.js.map +0 -0
  57. package/lib/commonjs/animation/functions/interpolate.js +141 -0
  58. package/lib/commonjs/animation/functions/interpolate.js.map +1 -0
  59. package/lib/commonjs/animation/functions/interpolateColors.js +39 -0
  60. package/lib/commonjs/animation/functions/interpolateColors.js.map +1 -0
  61. package/lib/commonjs/{values/animation → animation}/index.js +0 -0
  62. package/lib/commonjs/{values/animation → animation}/index.js.map +0 -0
  63. package/lib/commonjs/{values/animation → animation}/spring/Spring.js +0 -0
  64. package/lib/commonjs/{values/animation → animation}/spring/Spring.js.map +0 -0
  65. package/lib/commonjs/{values/animation → animation}/spring/functions/index.js +0 -0
  66. package/lib/commonjs/{values/animation → animation}/spring/functions/index.js.map +0 -0
  67. package/lib/commonjs/{values/animation → animation}/spring/functions/spring.js +0 -0
  68. package/lib/commonjs/{values/animation → animation}/spring/functions/spring.js.map +0 -0
  69. package/lib/commonjs/{values/animation → animation}/spring/index.js +0 -0
  70. package/lib/commonjs/{values/animation → animation}/spring/index.js.map +0 -0
  71. package/lib/commonjs/{values/animation → animation}/spring/runSpring.js +0 -0
  72. package/lib/commonjs/animation/spring/runSpring.js.map +1 -0
  73. package/lib/commonjs/{values/animation → animation}/spring/types.js +0 -0
  74. package/lib/commonjs/{values/animation → animation}/spring/types.js.map +0 -0
  75. package/lib/commonjs/{values/animation → animation}/spring/useSpring.js +0 -0
  76. package/lib/commonjs/animation/spring/useSpring.js.map +1 -0
  77. package/lib/commonjs/{values/animation → animation}/timing/Easing.js +0 -0
  78. package/lib/commonjs/{values/animation → animation}/timing/Easing.js.map +0 -0
  79. package/lib/commonjs/{values/animation → animation}/timing/createTiming.js +1 -1
  80. package/lib/commonjs/animation/timing/createTiming.js.map +1 -0
  81. package/lib/commonjs/{values/animation → animation}/timing/functions/bezier.js +0 -0
  82. package/lib/commonjs/{values/animation → animation}/timing/functions/bezier.js.map +0 -0
  83. package/lib/commonjs/{values/animation → animation}/timing/functions/getResolvedParams.js +3 -3
  84. package/lib/commonjs/animation/timing/functions/getResolvedParams.js.map +1 -0
  85. package/lib/commonjs/{values/animation → animation}/timing/functions/index.js +0 -0
  86. package/lib/commonjs/{values/animation → animation}/timing/functions/index.js.map +0 -0
  87. package/lib/commonjs/{values/animation → animation}/timing/functions/timing.js +0 -0
  88. package/lib/commonjs/{values/animation → animation}/timing/functions/timing.js.map +1 -1
  89. package/lib/commonjs/{values/animation → animation}/timing/functions/types.js +0 -0
  90. package/lib/commonjs/{values/animation → animation}/timing/functions/types.js.map +0 -0
  91. package/lib/commonjs/{values/animation → animation}/timing/index.js +0 -0
  92. package/lib/commonjs/{values/animation → animation}/timing/index.js.map +0 -0
  93. package/lib/commonjs/{values/animation → animation}/timing/runTiming.js +0 -0
  94. package/lib/commonjs/animation/timing/runTiming.js.map +1 -0
  95. package/lib/commonjs/{values/animation → animation}/timing/useLoop.js +0 -0
  96. package/lib/commonjs/{values/animation → animation}/timing/useLoop.js.map +0 -0
  97. package/lib/commonjs/{values/animation → animation}/timing/useTiming.js +1 -1
  98. package/lib/commonjs/animation/timing/useTiming.js.map +1 -0
  99. package/lib/commonjs/{values/animation → animation}/types.js +0 -0
  100. package/lib/commonjs/{values/animation → animation}/types.js.map +0 -0
  101. package/lib/commonjs/index.js +13 -0
  102. package/lib/commonjs/index.js.map +1 -1
  103. package/lib/commonjs/renderer/Canvas.js +17 -8
  104. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  105. package/lib/commonjs/renderer/components/Paint.js +1 -1
  106. package/lib/commonjs/renderer/components/Paint.js.map +1 -1
  107. package/lib/commonjs/renderer/components/colorFilters/BlendColor.js.map +1 -1
  108. package/lib/commonjs/renderer/components/colorFilters/Lerp.js +1 -1
  109. package/lib/commonjs/renderer/components/colorFilters/Lerp.js.map +1 -1
  110. package/lib/commonjs/renderer/components/imageFilters/InnerShadow.js +4 -2
  111. package/lib/commonjs/renderer/components/imageFilters/InnerShadow.js.map +1 -1
  112. package/lib/commonjs/renderer/components/imageFilters/RuntimeShader.js +37 -0
  113. package/lib/commonjs/renderer/components/imageFilters/RuntimeShader.js.map +1 -0
  114. package/lib/commonjs/renderer/components/imageFilters/index.js +13 -0
  115. package/lib/commonjs/renderer/components/imageFilters/index.js.map +1 -1
  116. package/lib/commonjs/renderer/components/shaders/Gradient.js +1 -1
  117. package/lib/commonjs/renderer/components/shaders/Gradient.js.map +1 -1
  118. package/lib/commonjs/renderer/components/shaders/Shader.js +2 -2
  119. package/lib/commonjs/renderer/components/shaders/Shader.js.map +1 -1
  120. package/lib/commonjs/renderer/components/shapes/Path.js +9 -1
  121. package/lib/commonjs/renderer/components/shapes/Path.js.map +1 -1
  122. package/lib/commonjs/renderer/processors/Circles.js +3 -2
  123. package/lib/commonjs/renderer/processors/Circles.js.map +1 -1
  124. package/lib/commonjs/renderer/processors/Font.js +1 -1
  125. package/lib/commonjs/renderer/processors/Font.js.map +1 -1
  126. package/lib/commonjs/renderer/processors/Paint.js +6 -1
  127. package/lib/commonjs/renderer/processors/Paint.js.map +1 -1
  128. package/lib/commonjs/renderer/processors/Rects.js +11 -21
  129. package/lib/commonjs/renderer/processors/Rects.js.map +1 -1
  130. package/lib/commonjs/renderer/processors/math/Matrix3.js +42 -63
  131. package/lib/commonjs/renderer/processors/math/Matrix3.js.map +1 -1
  132. package/lib/commonjs/renderer/processors/math/Vector.js +4 -5
  133. package/lib/commonjs/renderer/processors/math/Vector.js.map +1 -1
  134. package/lib/commonjs/skia/Color.js +14 -38
  135. package/lib/commonjs/skia/Color.js.map +1 -1
  136. package/lib/commonjs/skia/ImageFilter/ImageFilterFactory.js.map +1 -1
  137. package/lib/commonjs/skia/Matrix.js.map +1 -1
  138. package/lib/commonjs/skia/Paint/Paint.js +13 -1
  139. package/lib/commonjs/skia/Paint/Paint.js.map +1 -1
  140. package/lib/commonjs/skia/Paint/usePaint.js +2 -4
  141. package/lib/commonjs/skia/Paint/usePaint.js.map +1 -1
  142. package/lib/commonjs/skia/Shader/useShader.js +4 -1
  143. package/lib/commonjs/skia/Shader/useShader.js.map +1 -1
  144. package/lib/commonjs/skia/Skia.js +3 -43
  145. package/lib/commonjs/skia/Skia.js.map +1 -1
  146. package/lib/commonjs/skia/SkiaApi.js +4 -0
  147. package/lib/commonjs/skia/SkiaApi.js.map +1 -0
  148. package/lib/commonjs/values/api.js +4 -6
  149. package/lib/commonjs/values/api.js.map +1 -1
  150. package/lib/commonjs/values/api.web.js +18 -0
  151. package/lib/commonjs/values/api.web.js.map +1 -0
  152. package/lib/commonjs/values/index.js +0 -13
  153. package/lib/commonjs/values/index.js.map +1 -1
  154. package/lib/commonjs/values/web/RNSkAnimation.js +46 -0
  155. package/lib/commonjs/values/web/RNSkAnimation.js.map +1 -0
  156. package/lib/commonjs/values/web/RNSkClockValue.js +75 -0
  157. package/lib/commonjs/values/web/RNSkClockValue.js.map +1 -0
  158. package/lib/commonjs/values/web/RNSkDerivedValue.js +51 -0
  159. package/lib/commonjs/values/web/RNSkDerivedValue.js.map +1 -0
  160. package/lib/commonjs/values/web/RNSkReadonlyValue.js +45 -0
  161. package/lib/commonjs/values/web/RNSkReadonlyValue.js.map +1 -0
  162. package/lib/commonjs/values/web/RNSkValue.js +73 -0
  163. package/lib/commonjs/values/web/RNSkValue.js.map +1 -0
  164. package/lib/commonjs/values/web/api.js +31 -0
  165. package/lib/commonjs/values/web/api.js.map +1 -0
  166. package/lib/commonjs/values/web/index.js +19 -0
  167. package/lib/commonjs/values/web/index.js.map +1 -0
  168. package/lib/commonjs/views/SkiaView.js +13 -10
  169. package/lib/commonjs/views/SkiaView.js.map +1 -1
  170. package/lib/commonjs/views/api.js +11 -0
  171. package/lib/commonjs/views/api.js.map +1 -0
  172. package/lib/commonjs/views/types.js.map +1 -1
  173. package/lib/module/{values/animation → animation}/decay/decay.js +0 -0
  174. package/lib/module/{values/animation → animation}/decay/decay.js.map +0 -0
  175. package/lib/module/{values/animation → animation}/decay/index.js +0 -0
  176. package/lib/module/{values/animation → animation}/decay/index.js.map +0 -0
  177. package/lib/module/{values/animation → animation}/decay/runDecay.js +1 -1
  178. package/lib/module/animation/decay/runDecay.js.map +1 -0
  179. package/lib/module/{values/animation → animation}/decay/types.js +0 -0
  180. package/lib/module/{values/animation → animation}/decay/types.js.map +0 -0
  181. package/lib/module/{values/animation → animation}/functions/index.js +0 -0
  182. package/lib/module/{values/animation → animation}/functions/index.js.map +0 -0
  183. package/lib/module/animation/functions/interpolate.js +132 -0
  184. package/lib/module/animation/functions/interpolate.js.map +1 -0
  185. package/lib/module/animation/functions/interpolateColors.js +23 -0
  186. package/lib/module/animation/functions/interpolateColors.js.map +1 -0
  187. package/lib/module/{values/animation → animation}/index.js +0 -0
  188. package/lib/module/{values/animation → animation}/index.js.map +0 -0
  189. package/lib/module/{values/animation → animation}/spring/Spring.js +0 -0
  190. package/lib/module/{values/animation → animation}/spring/Spring.js.map +0 -0
  191. package/lib/module/{values/animation → animation}/spring/functions/index.js +0 -0
  192. package/lib/module/{values/animation → animation}/spring/functions/index.js.map +0 -0
  193. package/lib/module/{values/animation → animation}/spring/functions/spring.js +0 -0
  194. package/lib/module/{values/animation → animation}/spring/functions/spring.js.map +0 -0
  195. package/lib/module/{values/animation → animation}/spring/index.js +0 -0
  196. package/lib/module/{values/animation → animation}/spring/index.js.map +0 -0
  197. package/lib/module/{values/animation → animation}/spring/runSpring.js +0 -0
  198. package/lib/module/animation/spring/runSpring.js.map +1 -0
  199. package/lib/module/{values/animation → animation}/spring/types.js +0 -0
  200. package/lib/module/{values/animation → animation}/spring/types.js.map +0 -0
  201. package/lib/module/{values/animation → animation}/spring/useSpring.js +0 -0
  202. package/lib/module/animation/spring/useSpring.js.map +1 -0
  203. package/lib/module/{values/animation → animation}/timing/Easing.js +0 -0
  204. package/lib/module/{values/animation → animation}/timing/Easing.js.map +0 -0
  205. package/lib/module/{values/animation → animation}/timing/createTiming.js +1 -1
  206. package/lib/module/animation/timing/createTiming.js.map +1 -0
  207. package/lib/module/{values/animation → animation}/timing/functions/bezier.js +0 -0
  208. package/lib/module/{values/animation → animation}/timing/functions/bezier.js.map +0 -0
  209. package/lib/module/{values/animation → animation}/timing/functions/getResolvedParams.js +3 -3
  210. package/lib/module/animation/timing/functions/getResolvedParams.js.map +1 -0
  211. package/lib/module/{values/animation → animation}/timing/functions/index.js +0 -0
  212. package/lib/module/{values/animation → animation}/timing/functions/index.js.map +0 -0
  213. package/lib/module/{values/animation → animation}/timing/functions/timing.js +0 -0
  214. package/lib/module/{values/animation → animation}/timing/functions/timing.js.map +1 -1
  215. package/lib/module/{values/animation → animation}/timing/functions/types.js +0 -0
  216. package/lib/module/{values/animation → animation}/timing/functions/types.js.map +0 -0
  217. package/lib/module/{values/animation → animation}/timing/index.js +0 -0
  218. package/lib/module/{values/animation → animation}/timing/index.js.map +0 -0
  219. package/lib/module/{values/animation → animation}/timing/runTiming.js +0 -0
  220. package/lib/module/animation/timing/runTiming.js.map +1 -0
  221. package/lib/module/{values/animation → animation}/timing/useLoop.js +0 -0
  222. package/lib/module/{values/animation → animation}/timing/useLoop.js.map +0 -0
  223. package/lib/module/{values/animation → animation}/timing/useTiming.js +1 -1
  224. package/lib/module/animation/timing/useTiming.js.map +1 -0
  225. package/lib/module/{values/animation → animation}/types.js +0 -0
  226. package/lib/module/{values/animation → animation}/types.js.map +0 -0
  227. package/lib/module/index.js +1 -0
  228. package/lib/module/index.js.map +1 -1
  229. package/lib/module/renderer/Canvas.js +12 -6
  230. package/lib/module/renderer/Canvas.js.map +1 -1
  231. package/lib/module/renderer/components/Paint.js +2 -2
  232. package/lib/module/renderer/components/Paint.js.map +1 -1
  233. package/lib/module/renderer/components/colorFilters/BlendColor.js.map +1 -1
  234. package/lib/module/renderer/components/colorFilters/Lerp.js +1 -1
  235. package/lib/module/renderer/components/colorFilters/Lerp.js.map +1 -1
  236. package/lib/module/renderer/components/imageFilters/InnerShadow.js +3 -2
  237. package/lib/module/renderer/components/imageFilters/InnerShadow.js.map +1 -1
  238. package/lib/module/renderer/components/imageFilters/RuntimeShader.js +19 -0
  239. package/lib/module/renderer/components/imageFilters/RuntimeShader.js.map +1 -0
  240. package/lib/module/renderer/components/imageFilters/index.js +1 -0
  241. package/lib/module/renderer/components/imageFilters/index.js.map +1 -1
  242. package/lib/module/renderer/components/shaders/Gradient.js +2 -2
  243. package/lib/module/renderer/components/shaders/Gradient.js.map +1 -1
  244. package/lib/module/renderer/components/shaders/Shader.js +3 -2
  245. package/lib/module/renderer/components/shaders/Shader.js.map +1 -1
  246. package/lib/module/renderer/components/shapes/Path.js +9 -2
  247. package/lib/module/renderer/components/shapes/Path.js.map +1 -1
  248. package/lib/module/renderer/processors/Circles.js +3 -2
  249. package/lib/module/renderer/processors/Circles.js.map +1 -1
  250. package/lib/module/renderer/processors/Font.js +1 -1
  251. package/lib/module/renderer/processors/Font.js.map +1 -1
  252. package/lib/module/renderer/processors/Paint.js +6 -1
  253. package/lib/module/renderer/processors/Paint.js.map +1 -1
  254. package/lib/module/renderer/processors/Rects.js +9 -21
  255. package/lib/module/renderer/processors/Rects.js.map +1 -1
  256. package/lib/module/renderer/processors/math/Matrix3.js +52 -72
  257. package/lib/module/renderer/processors/math/Matrix3.js.map +1 -1
  258. package/lib/module/renderer/processors/math/Vector.js +3 -5
  259. package/lib/module/renderer/processors/math/Vector.js.map +1 -1
  260. package/lib/module/skia/Color.js +9 -25
  261. package/lib/module/skia/Color.js.map +1 -1
  262. package/lib/module/skia/ImageFilter/ImageFilterFactory.js.map +1 -1
  263. package/lib/module/skia/Matrix.js.map +1 -1
  264. package/lib/module/skia/Paint/Paint.js +6 -0
  265. package/lib/module/skia/Paint/Paint.js.map +1 -1
  266. package/lib/module/skia/Paint/usePaint.js +2 -3
  267. package/lib/module/skia/Paint/usePaint.js.map +1 -1
  268. package/lib/module/skia/Shader/useShader.js +4 -1
  269. package/lib/module/skia/Shader/useShader.js.map +1 -1
  270. package/lib/module/skia/Skia.js +2 -44
  271. package/lib/module/skia/Skia.js.map +1 -1
  272. package/lib/module/skia/SkiaApi.js +2 -0
  273. package/lib/module/skia/SkiaApi.js.map +1 -0
  274. package/lib/module/values/api.js +4 -6
  275. package/lib/module/values/api.js.map +1 -1
  276. package/lib/module/values/api.web.js +7 -0
  277. package/lib/module/values/api.web.js.map +1 -0
  278. package/lib/module/values/index.js +0 -1
  279. package/lib/module/values/index.js.map +1 -1
  280. package/lib/module/values/web/RNSkAnimation.js +36 -0
  281. package/lib/module/values/web/RNSkAnimation.js.map +1 -0
  282. package/lib/module/values/web/RNSkClockValue.js +65 -0
  283. package/lib/module/values/web/RNSkClockValue.js.map +1 -0
  284. package/lib/module/values/web/RNSkDerivedValue.js +41 -0
  285. package/lib/module/values/web/RNSkDerivedValue.js.map +1 -0
  286. package/lib/module/values/web/RNSkReadonlyValue.js +36 -0
  287. package/lib/module/values/web/RNSkReadonlyValue.js.map +1 -0
  288. package/lib/module/values/web/RNSkValue.js +63 -0
  289. package/lib/module/values/web/RNSkValue.js.map +1 -0
  290. package/lib/module/values/web/api.js +19 -0
  291. package/lib/module/values/web/api.js.map +1 -0
  292. package/lib/module/values/web/index.js +2 -0
  293. package/lib/module/values/web/index.js.map +1 -0
  294. package/lib/module/views/SkiaView.js +1 -3
  295. package/lib/module/views/SkiaView.js.map +1 -1
  296. package/lib/module/views/api.js +4 -0
  297. package/lib/module/views/api.js.map +1 -0
  298. package/lib/module/views/types.js.map +1 -1
  299. package/lib/typescript/src/{values/animation → animation}/decay/decay.d.ts +0 -0
  300. package/lib/typescript/src/{values/animation → animation}/decay/index.d.ts +0 -0
  301. package/lib/typescript/src/{values/animation → animation}/decay/runDecay.d.ts +2 -2
  302. package/lib/typescript/src/{values/animation → animation}/decay/types.d.ts +1 -1
  303. package/lib/typescript/src/{values/animation → animation}/functions/index.d.ts +0 -0
  304. package/lib/typescript/src/animation/functions/interpolate.d.ts +11 -0
  305. package/lib/typescript/src/animation/functions/interpolateColors.d.ts +3 -0
  306. package/lib/typescript/src/{values/animation → animation}/index.d.ts +0 -0
  307. package/lib/typescript/src/{values/animation → animation}/spring/Spring.d.ts +0 -0
  308. package/lib/typescript/src/{values/animation → animation}/spring/functions/index.d.ts +0 -0
  309. package/lib/typescript/src/{values/animation → animation}/spring/functions/spring.d.ts +0 -0
  310. package/lib/typescript/src/{values/animation → animation}/spring/index.d.ts +0 -0
  311. package/lib/typescript/src/{values/animation → animation}/spring/runSpring.d.ts +1 -1
  312. package/lib/typescript/src/{values/animation → animation}/spring/types.d.ts +0 -0
  313. package/lib/typescript/src/{values/animation → animation}/spring/useSpring.d.ts +1 -1
  314. package/lib/typescript/src/{values/animation → animation}/timing/Easing.d.ts +0 -0
  315. package/lib/typescript/src/{values/animation → animation}/timing/createTiming.d.ts +2 -2
  316. package/lib/typescript/src/{values/animation → animation}/timing/functions/bezier.d.ts +0 -0
  317. package/lib/typescript/src/{values/animation → animation}/timing/functions/getResolvedParams.d.ts +0 -0
  318. package/lib/typescript/src/{values/animation → animation}/timing/functions/index.d.ts +0 -0
  319. package/lib/typescript/src/{values/animation → animation}/timing/functions/timing.d.ts +1 -1
  320. package/lib/typescript/src/{values/animation → animation}/timing/functions/types.d.ts +0 -0
  321. package/lib/typescript/src/{values/animation → animation}/timing/index.d.ts +0 -0
  322. package/lib/typescript/src/{values/animation → animation}/timing/runTiming.d.ts +1 -1
  323. package/lib/typescript/src/{values/animation → animation}/timing/useLoop.d.ts +0 -0
  324. package/lib/typescript/src/{values/animation → animation}/timing/useTiming.d.ts +1 -1
  325. package/lib/typescript/src/{values/animation → animation}/types.d.ts +5 -5
  326. package/lib/typescript/src/index.d.ts +1 -0
  327. package/lib/typescript/src/renderer/Canvas.d.ts +6 -0
  328. package/lib/typescript/src/renderer/components/colorFilters/BlendColor.d.ts +1 -1
  329. package/lib/typescript/src/renderer/components/imageFilters/RuntimeShader.d.ts +7 -0
  330. package/lib/typescript/src/renderer/components/imageFilters/index.d.ts +1 -0
  331. package/lib/typescript/src/renderer/components/shaders/Gradient.d.ts +1 -1
  332. package/lib/typescript/src/renderer/components/shaders/Shader.d.ts +2 -2
  333. package/lib/typescript/src/renderer/components/shapes/Circle.d.ts +1 -4
  334. package/lib/typescript/src/renderer/components/shapes/Path.d.ts +3 -1
  335. package/lib/typescript/src/renderer/processors/Paint.d.ts +2 -1
  336. package/lib/typescript/src/renderer/processors/Rects.d.ts +9 -41
  337. package/lib/typescript/src/renderer/processors/math/Matrix3.d.ts +1 -5
  338. package/lib/typescript/src/renderer/processors/math/Vector.d.ts +5 -17
  339. package/lib/typescript/src/skia/Color.d.ts +8 -9
  340. package/lib/typescript/src/skia/ImageFilter/ImageFilterFactory.d.ts +16 -0
  341. package/lib/typescript/src/skia/Matrix.d.ts +7 -1
  342. package/lib/typescript/src/skia/Paint/Paint.d.ts +1 -0
  343. package/lib/typescript/src/skia/RuntimeEffect/RuntimeEffect.d.ts +2 -1
  344. package/lib/typescript/src/skia/RuntimeEffect/RuntimeEffectFactory.d.ts +2 -2
  345. package/lib/typescript/src/skia/Shader/useShader.d.ts +1 -1
  346. package/lib/typescript/src/skia/Skia.d.ts +28 -95
  347. package/lib/typescript/src/skia/SkiaApi.d.ts +71 -0
  348. package/lib/typescript/src/skia/Surface/Surface.d.ts +1 -1
  349. package/lib/typescript/src/skia/Surface/SurfaceFactory.d.ts +2 -2
  350. package/lib/typescript/src/values/api.d.ts +2 -25
  351. package/lib/typescript/src/values/api.web.d.ts +2 -0
  352. package/lib/typescript/src/values/index.d.ts +0 -1
  353. package/lib/typescript/src/values/types.d.ts +24 -1
  354. package/lib/typescript/src/values/web/RNSkAnimation.d.ts +9 -0
  355. package/lib/typescript/src/values/web/RNSkClockValue.d.ts +13 -0
  356. package/lib/typescript/src/values/web/RNSkDerivedValue.d.ts +9 -0
  357. package/lib/typescript/src/values/web/RNSkReadonlyValue.d.ts +11 -0
  358. package/lib/typescript/src/values/web/RNSkValue.d.ts +14 -0
  359. package/lib/typescript/src/values/web/api.d.ts +2 -0
  360. package/lib/typescript/src/values/web/index.d.ts +1 -0
  361. package/lib/typescript/src/views/SkiaView.d.ts +3 -36
  362. package/lib/typescript/src/views/api.d.ts +5 -0
  363. package/lib/typescript/src/views/types.d.ts +32 -0
  364. package/package.json +2 -2
  365. package/src/{values/animation → animation}/decay/decay.ts +0 -0
  366. package/src/{values/animation → animation}/decay/index.ts +0 -0
  367. package/src/{values/animation → animation}/decay/runDecay.ts +2 -2
  368. package/src/{values/animation → animation}/decay/types.ts +1 -1
  369. package/src/{values/animation → animation}/functions/index.ts +0 -0
  370. package/src/animation/functions/interpolate.ts +182 -0
  371. package/src/animation/functions/interpolateColors.ts +58 -0
  372. package/src/{values/animation → animation}/index.ts +0 -0
  373. package/src/{values/animation → animation}/spring/Spring.ts +0 -0
  374. package/src/{values/animation → animation}/spring/functions/index.ts +0 -0
  375. package/src/{values/animation → animation}/spring/functions/spring.ts +0 -0
  376. package/src/{values/animation → animation}/spring/index.ts +0 -0
  377. package/src/{values/animation → animation}/spring/runSpring.ts +1 -1
  378. package/src/{values/animation → animation}/spring/types.ts +0 -0
  379. package/src/{values/animation → animation}/spring/useSpring.ts +1 -1
  380. package/src/{values/animation → animation}/timing/Easing.ts +0 -0
  381. package/src/{values/animation → animation}/timing/createTiming.ts +2 -2
  382. package/src/{values/animation → animation}/timing/functions/__tests__/timing.spec.ts +0 -0
  383. package/src/{values/animation → animation}/timing/functions/bezier.ts +0 -0
  384. package/src/{values/animation → animation}/timing/functions/getResolvedParams.ts +2 -2
  385. package/src/{values/animation → animation}/timing/functions/index.ts +0 -0
  386. package/src/{values/animation → animation}/timing/functions/timing.ts +1 -1
  387. package/src/{values/animation → animation}/timing/functions/types.ts +0 -0
  388. package/src/{values/animation → animation}/timing/index.ts +0 -0
  389. package/src/{values/animation → animation}/timing/runTiming.ts +1 -1
  390. package/src/{values/animation → animation}/timing/useLoop.ts +0 -0
  391. package/src/{values/animation → animation}/timing/useTiming.ts +2 -2
  392. package/src/{values/animation → animation}/types.ts +5 -5
  393. package/src/index.ts +1 -0
  394. package/src/renderer/Canvas.tsx +13 -6
  395. package/src/renderer/components/Paint.tsx +2 -2
  396. package/src/renderer/components/colorFilters/BlendColor.tsx +1 -1
  397. package/src/renderer/components/colorFilters/Lerp.tsx +1 -1
  398. package/src/renderer/components/imageFilters/InnerShadow.tsx +4 -2
  399. package/src/renderer/components/imageFilters/RuntimeShader.tsx +23 -0
  400. package/src/renderer/components/imageFilters/index.ts +1 -0
  401. package/src/renderer/components/shaders/Gradient.ts +2 -4
  402. package/src/renderer/components/shaders/Shader.tsx +3 -3
  403. package/src/renderer/components/shapes/Path.tsx +11 -3
  404. package/src/renderer/processors/Circles.ts +2 -1
  405. package/src/renderer/processors/Font.ts +1 -1
  406. package/src/renderer/processors/Paint.ts +5 -0
  407. package/src/renderer/processors/Rects.ts +9 -14
  408. package/src/renderer/processors/math/Matrix3.ts +24 -105
  409. package/src/renderer/processors/math/Vector.ts +3 -2
  410. package/src/skia/Color.ts +13 -27
  411. package/src/skia/ImageFilter/ImageFilterFactory.ts +20 -0
  412. package/src/skia/Matrix.ts +8 -1
  413. package/src/skia/Paint/Paint.ts +7 -0
  414. package/src/skia/Paint/usePaint.ts +2 -4
  415. package/src/skia/RuntimeEffect/RuntimeEffect.ts +3 -1
  416. package/src/skia/RuntimeEffect/RuntimeEffectFactory.ts +2 -2
  417. package/src/skia/Shader/useShader.ts +4 -1
  418. package/src/skia/Skia.ts +4 -123
  419. package/src/skia/SkiaApi.ts +86 -0
  420. package/src/skia/Surface/Surface.ts +1 -1
  421. package/src/skia/Surface/SurfaceFactory.ts +2 -2
  422. package/src/values/api.ts +3 -42
  423. package/src/values/api.web.ts +5 -0
  424. package/src/values/index.ts +0 -1
  425. package/src/values/types.ts +30 -1
  426. package/src/values/web/RNSkAnimation.ts +33 -0
  427. package/src/values/web/RNSkClockValue.ts +58 -0
  428. package/src/values/web/RNSkDerivedValue.ts +38 -0
  429. package/src/values/web/RNSkReadonlyValue.ts +32 -0
  430. package/src/values/web/RNSkValue.ts +57 -0
  431. package/src/values/web/__tests__/RNSkAnimation.spec.ts +21 -0
  432. package/src/values/web/__tests__/RNSkDerivedValue.spec.ts +15 -0
  433. package/src/values/web/__tests__/RNSkReadonlyValue.spec.ts +8 -0
  434. package/src/values/web/__tests__/RNSkValue.spec.ts +11 -0
  435. package/src/values/web/api.ts +33 -0
  436. package/src/values/web/index.ts +1 -0
  437. package/src/views/SkiaView.tsx +3 -49
  438. package/src/views/api.ts +7 -0
  439. package/src/views/types.ts +40 -0
  440. package/lib/commonjs/values/animation/decay/runDecay.js.map +0 -1
  441. package/lib/commonjs/values/animation/functions/interpolate.js +0 -139
  442. package/lib/commonjs/values/animation/functions/interpolate.js.map +0 -1
  443. package/lib/commonjs/values/animation/functions/interpolateColors.js +0 -47
  444. package/lib/commonjs/values/animation/functions/interpolateColors.js.map +0 -1
  445. package/lib/commonjs/values/animation/spring/runSpring.js.map +0 -1
  446. package/lib/commonjs/values/animation/spring/useSpring.js.map +0 -1
  447. package/lib/commonjs/values/animation/timing/createTiming.js.map +0 -1
  448. package/lib/commonjs/values/animation/timing/functions/getResolvedParams.js.map +0 -1
  449. package/lib/commonjs/values/animation/timing/runTiming.js.map +0 -1
  450. package/lib/commonjs/values/animation/timing/useTiming.js.map +0 -1
  451. package/lib/module/values/animation/decay/runDecay.js.map +0 -1
  452. package/lib/module/values/animation/functions/interpolate.js +0 -132
  453. package/lib/module/values/animation/functions/interpolate.js.map +0 -1
  454. package/lib/module/values/animation/functions/interpolateColors.js +0 -32
  455. package/lib/module/values/animation/functions/interpolateColors.js.map +0 -1
  456. package/lib/module/values/animation/spring/runSpring.js.map +0 -1
  457. package/lib/module/values/animation/spring/useSpring.js.map +0 -1
  458. package/lib/module/values/animation/timing/createTiming.js.map +0 -1
  459. package/lib/module/values/animation/timing/functions/getResolvedParams.js.map +0 -1
  460. package/lib/module/values/animation/timing/runTiming.js.map +0 -1
  461. package/lib/module/values/animation/timing/useTiming.js.map +0 -1
  462. package/lib/typescript/scripts/install-npm.d.ts +0 -1
  463. package/lib/typescript/src/values/animation/functions/interpolate.d.ts +0 -7
  464. package/lib/typescript/src/values/animation/functions/interpolateColors.d.ts +0 -3
  465. package/src/values/animation/functions/interpolate.ts +0 -169
  466. package/src/values/animation/functions/interpolateColors.ts +0 -62
@@ -18,10 +18,11 @@ public class SkiaDrawView extends TextureView implements TextureView.SurfaceText
18
18
  @DoNotStrip
19
19
  private HybridData mHybridData;
20
20
 
21
- private Surface mSurface;
21
+ @DoNotStrip
22
+ private boolean mViewRemoved;
22
23
 
23
24
  @DoNotStrip
24
- private boolean mIsRemoved = false;
25
+ private Surface mSurface;
25
26
 
26
27
  public SkiaDrawView(Context ctx) {
27
28
  super(ctx);
@@ -36,26 +37,25 @@ public class SkiaDrawView extends TextureView implements TextureView.SurfaceText
36
37
  // Texture view does not support setting the background color.
37
38
  }
38
39
 
39
- @Override
40
- protected void finalize() throws Throwable {
41
- mHybridData.resetNative();
42
- super.finalize();
40
+ public void releaseSurface() {
41
+ if(mSurface != null) {
42
+ mSurface.release();
43
+ mSurface = null;
44
+ }
45
+ // We can only reset the native side when the view was removed from screen.
46
+ // releasing the surface can also be done when the view is hidden and then
47
+ // we should only release the surface - and keep the native part around.
48
+ if(mViewRemoved) {
49
+ mHybridData.resetNative();
50
+ }
43
51
  }
44
52
 
45
-
46
- public void onRemoved() {
47
- // We'll mark the view removed since we reset the native part.
48
- // This means that none of the native methods should be called after
49
- // this point.
50
- mIsRemoved = true;
51
- mHybridData.resetNative();
53
+ void onViewRemoved() {
54
+ mViewRemoved = true;
52
55
  }
53
56
 
54
57
  @Override
55
58
  public boolean onTouchEvent(MotionEvent ev) {
56
- if(mIsRemoved) {
57
- return false;
58
- }
59
59
  int action = ev.getAction();
60
60
  int count = ev.getPointerCount();
61
61
  MotionEvent.PointerCoords r = new MotionEvent.PointerCoords();
@@ -88,30 +88,23 @@ public class SkiaDrawView extends TextureView implements TextureView.SurfaceText
88
88
 
89
89
  @Override
90
90
  public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
91
- if(mIsRemoved) {
92
- return;
93
- }
94
91
  mSurface = new Surface(surface);
95
92
  surfaceAvailable(mSurface, width, height);
96
93
  }
97
94
 
98
95
  @Override
99
96
  public void onSurfaceTextureSizeChanged(SurfaceTexture surface, int width, int height) {
100
- if(mIsRemoved) {
101
- return;
102
- }
103
97
  surfaceSizeChanged(width, height);
104
98
  }
105
99
 
106
100
  @Override
107
101
  public boolean onSurfaceTextureDestroyed(SurfaceTexture surface) {
108
- if(mIsRemoved) {
109
- return true;
110
- }
111
102
  surfaceDestroyed();
112
- mSurface.release();
113
- mSurface = null;
114
- return true;
103
+ // https://developer.android.com/reference/android/view/TextureView.SurfaceTextureListener#onSurfaceTextureDestroyed(android.graphics.SurfaceTexture)
104
+ // Invoked when the specified SurfaceTexture is about to be destroyed. If returns true,
105
+ // no rendering should happen inside the surface texture after this method is invoked.
106
+ // If returns false, the client needs to call SurfaceTexture#release().
107
+ return false;
115
108
  }
116
109
 
117
110
  @Override
@@ -39,6 +39,7 @@
39
39
  #include "JsiSkContourMeasureIter.h"
40
40
  #include "JsiSkPictureRecorder.h"
41
41
  #include "JsiSkPictureFactory.h"
42
+ #include "JsiSkRuntimeShaderBuilder.h"
42
43
  #include "JsiSkColor.h"
43
44
 
44
45
  namespace RNSkia
@@ -65,10 +66,11 @@ namespace RNSkia
65
66
  installFunction("XYWHRect", JsiSkRect::createCtor(context));
66
67
  installFunction("RRectXY", JsiSkRRect::createCtor(context));
67
68
  installFunction("Point", JsiSkPoint::createCtor(context));
69
+ installFunction("RuntimeShaderBuilder", JsiSkRuntimeShaderBuilder::createCtor(context));
68
70
  installFunction("ContourMeasureIter", JsiSkContourMeasureIter::createCtor(context));
69
71
  installFunction("MakeVertices", JsiSkVertices::createCtor(context));
70
72
  installFunction("PictureRecorder", JsiSkPictureRecorder::createCtor(context));
71
- installFunction("parseColorString", JsiSkColor::createCtor());
73
+ installFunction("Color", JsiSkColor::createCtor());
72
74
 
73
75
  // Static members
74
76
  installReadonlyProperty("FontMgr",
@@ -278,7 +278,7 @@ public:
278
278
  auto colorsSize = jsiColors.size(runtime);
279
279
  colors.reserve(colorsSize);
280
280
  for (int i = 0; i < colorsSize; i++) {
281
- SkColor color = jsiColors.getValueAtIndex(runtime, i).asNumber();
281
+ SkColor color = JsiSkColor::fromValue(runtime, jsiColors.getValueAtIndex(runtime, i));
282
282
  colors.push_back(color);
283
283
  }
284
284
  }
@@ -26,6 +26,35 @@ namespace RNSkia {
26
26
 
27
27
  ~JsiSkColor() {}
28
28
 
29
+ static jsi::Object toValue(jsi::Runtime &runtime, SkColor color) {
30
+ auto result = runtime
31
+ .global()
32
+ .getPropertyAsFunction(runtime, "Float32Array")
33
+ .callAsConstructor(runtime, 4)
34
+ .getObject(runtime);
35
+ jsi::ArrayBuffer buffer = result
36
+ .getProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
37
+ .asObject(runtime)
38
+ .getArrayBuffer(runtime);
39
+ auto bfrPtr = reinterpret_cast<float *>(buffer.data(runtime));
40
+ auto color4f = SkColor4f::FromColor(color).array();
41
+ std::copy(color4f.begin(), color4f.end(), bfrPtr);
42
+ return result;
43
+ }
44
+
45
+ static SkColor fromValue(jsi::Runtime &runtime, const jsi::Value &obj) {
46
+ const auto& object = obj.asObject(runtime);
47
+ jsi::ArrayBuffer buffer = object
48
+ .getProperty(runtime, jsi::PropNameID::forAscii(runtime, "buffer"))
49
+ .asObject(runtime)
50
+ .getArrayBuffer(runtime);
51
+ auto bfrPtr = reinterpret_cast<float *>(buffer.data(runtime));
52
+ if (bfrPtr[0] > 1 || bfrPtr[1] > 1 || bfrPtr[2] > 1 || bfrPtr[3] > 1) {
53
+ return SK_ColorBLACK;
54
+ }
55
+ return SkColorSetARGB(bfrPtr[3] * 255, bfrPtr[0] * 255, bfrPtr[1] * 255, bfrPtr[2] * 255);
56
+ }
57
+
29
58
  /**
30
59
  * Creates the function for construction a new instance of the SkColor
31
60
  * wrapper
@@ -35,14 +64,19 @@ namespace RNSkia {
35
64
  static const jsi::HostFunctionType
36
65
  createCtor() {
37
66
  return JSI_HOST_FUNCTION_LAMBDA {
38
- auto text = arguments[0].asString(runtime).utf8(runtime);
39
- auto color = CSSColorParser::parse(text);
40
- if (color.a == -1.0f) {
41
- return jsi::Value::undefined();
67
+ if (arguments[0].isNumber()) {
68
+ return JsiSkColor::toValue(runtime, arguments[0].getNumber());
69
+ } else if(arguments[0].isString()) {
70
+ auto text = arguments[0].asString(runtime).utf8(runtime);
71
+ auto color = CSSColorParser::parse(text);
72
+ if (color.a == -1.0f) {
73
+ return JsiSkColor::toValue(runtime, SK_ColorBLACK);
74
+ }
75
+ return JsiSkColor::toValue(runtime, SkColorSetARGB(color.a * 255, color.r, color.g, color.b));
76
+ } else if (arguments[0].isObject()) {
77
+ return arguments[0].getObject(runtime);
42
78
  }
43
- int a = round(color.a * 255);
44
- // Because JS numbers are unsigned we need to do this conversion
45
- return jsi::Value(static_cast<double>(SkColorSetARGB(a, color.r, color.g, color.b) >> 0));
79
+ return jsi::Value::undefined();
46
80
  };
47
81
  }
48
82
  };
@@ -2,6 +2,7 @@
2
2
 
3
3
  #include "JsiSkColorFilter.h"
4
4
  #include "JsiSkHostObjects.h"
5
+ #include "JsiSkColor.h"
5
6
  #include <jsi/jsi.h>
6
7
  #include <utility>
7
8
 
@@ -34,7 +35,7 @@ public:
34
35
  }
35
36
 
36
37
  JSI_HOST_FUNCTION(MakeBlend) {
37
- auto color = arguments[0].asNumber();
38
+ auto color = JsiSkColor::fromValue(runtime, arguments[0]);
38
39
  SkBlendMode blend = (SkBlendMode)arguments[1].asNumber();
39
40
  // Return the newly constructed object
40
41
  return jsi::Object::createFromHostObject(
@@ -5,13 +5,11 @@
5
5
 
6
6
  #include <jsi/jsi.h>
7
7
 
8
- #include "JsiSkColorFilter.h"
9
8
  #include "JsiSkHostObjects.h"
10
9
 
11
10
  #pragma clang diagnostic push
12
11
  #pragma clang diagnostic ignored "-Wdocumentation"
13
12
 
14
- #include <SkColorFilter.h>
15
13
  #include <SkImageFilters.h>
16
14
 
17
15
  #pragma clang diagnostic pop
@@ -7,11 +7,12 @@
7
7
 
8
8
  #include "JsiSkHostObjects.h"
9
9
  #include "JsiSkImageFilter.h"
10
+ #include "JsiSkRuntimeShaderBuilder.h"
10
11
 
11
12
  #pragma clang diagnostic push
12
13
  #pragma clang diagnostic ignored "-Wdocumentation"
13
14
 
14
- #include <SkColorFilter.h>
15
+ #include <SkImageFilter.h>
15
16
 
16
17
  #pragma clang diagnostic pop
17
18
 
@@ -123,7 +124,7 @@ public:
123
124
  auto dy = arguments[1].asNumber();
124
125
  auto sigmaX = arguments[2].asNumber();
125
126
  auto sigmaY = arguments[3].asNumber();
126
- auto color = arguments[4].asNumber();
127
+ auto color = JsiSkColor::fromValue(runtime, arguments[4]);
127
128
  sk_sp<SkImageFilter> input;
128
129
  if (!arguments[5].isNull() && !arguments[5].isUndefined()) {
129
130
  input = JsiSkImageFilter::fromValue(runtime, arguments[5]);
@@ -144,7 +145,7 @@ public:
144
145
  auto dy = arguments[1].asNumber();
145
146
  auto sigmaX = arguments[2].asNumber();
146
147
  auto sigmaY = arguments[3].asNumber();
147
- auto color = arguments[4].asNumber();
148
+ auto color = JsiSkColor::fromValue(runtime, arguments[4]);
148
149
  sk_sp<SkImageFilter> input;
149
150
  if (!arguments[5].isNull() && !arguments[5].isUndefined()) {
150
151
  input = JsiSkImageFilter::fromValue(runtime, arguments[5]);
@@ -195,20 +196,39 @@ public:
195
196
  getContext(), SkImageFilters::Dilate(rx, ry, std::move(input), cropRect)));
196
197
  }
197
198
 
198
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeBlur),
199
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeOffset),
200
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory,
201
- MakeColorFilter),
202
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory,
203
- MakeShader),
204
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeDisplacementMap),
205
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeCompose),
206
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeErode),
207
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeDilate),
208
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeBlend),
209
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeDropShadow),
210
- JSI_EXPORT_FUNC(JsiSkImageFilterFactory,
211
- MakeDropShadowOnly))
199
+ JSI_HOST_FUNCTION(MakeRuntimeShader) {
200
+ auto rtb = JsiSkRuntimeShaderBuilder::fromValue(runtime, arguments[0]);
201
+
202
+ const char* childName = nullptr;
203
+ if (!arguments[1].isNull() && !arguments[1].isUndefined()) {
204
+ childName = arguments[1].asString(runtime).utf8(runtime).c_str();
205
+ }
206
+
207
+ sk_sp<SkImageFilter> input;
208
+ if (!arguments[2].isNull() && !arguments[2].isUndefined()) {
209
+ input = JsiSkImageFilter::fromValue(runtime, arguments[2]);
210
+ }
211
+ return jsi::Object::createFromHostObject(
212
+ runtime,
213
+ std::make_shared<JsiSkImageFilter>(
214
+ getContext(), SkImageFilters::RuntimeShader(*rtb, childName, std::move(input)))
215
+ );
216
+ }
217
+
218
+ JSI_EXPORT_FUNCTIONS(
219
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeBlur),
220
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeOffset),
221
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeColorFilter),
222
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeShader),
223
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeDisplacementMap),
224
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeCompose),
225
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeErode),
226
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeDilate),
227
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeBlend),
228
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeDropShadow),
229
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeDropShadowOnly),
230
+ JSI_EXPORT_FUNC(JsiSkImageFilterFactory, MakeRuntimeShader)
231
+ )
212
232
 
213
233
  JsiSkImageFilterFactory(std::shared_ptr<RNSkPlatformContext> context)
214
234
  : JsiSkHostObject(std::move(context)) {}
@@ -25,9 +25,51 @@ public:
25
25
  : JsiSkWrappingSharedPtrHostObject<SkMatrix>(
26
26
  context, std::make_shared<SkMatrix>(std::move(m))) {}
27
27
 
28
+
29
+ JSI_HOST_FUNCTION(preConcat) {
30
+ auto m3 = JsiSkMatrix::fromValue(runtime, arguments[0]);
31
+ getObject()->preConcat(*m3);
32
+ return jsi::Value::undefined();
33
+ }
34
+
35
+ JSI_HOST_FUNCTION(preTranslate) {
36
+ auto x = arguments[0].asNumber();
37
+ auto y = arguments[1].asNumber();
38
+ getObject()->preTranslate(x, y);
39
+ return jsi::Value::undefined();
40
+ }
41
+
42
+ JSI_HOST_FUNCTION(preScale) {
43
+ auto x = arguments[0].asNumber();
44
+ auto y = arguments[1].asNumber();
45
+ getObject()->preScale(x, y);
46
+ return jsi::Value::undefined();
47
+ }
48
+
49
+ JSI_HOST_FUNCTION(preSkew) {
50
+ auto x = arguments[0].asNumber();
51
+ auto y = arguments[1].asNumber();
52
+ getObject()->preSkew(x, y);
53
+ return jsi::Value::undefined();
54
+ }
55
+
56
+ JSI_HOST_FUNCTION(preRotate) {
57
+ auto a = arguments[0].asNumber();
58
+ getObject()->preRotate(a);
59
+ return jsi::Value::undefined();
60
+ }
61
+
62
+ JSI_EXPORT_FUNCTIONS(
63
+ JSI_EXPORT_FUNC(JsiSkMatrix, preConcat),
64
+ JSI_EXPORT_FUNC(JsiSkMatrix, preTranslate),
65
+ JSI_EXPORT_FUNC(JsiSkMatrix, preScale),
66
+ JSI_EXPORT_FUNC(JsiSkMatrix, preSkew),
67
+ JSI_EXPORT_FUNC(JsiSkMatrix, preRotate),
68
+ )
69
+
28
70
  /**
29
- Returns the underlying object from a host object of this type
30
- */
71
+ * Returns the underlying object from a host object of this type
72
+ */
31
73
  static std::shared_ptr<SkMatrix> fromValue(jsi::Runtime &runtime,
32
74
  const jsi::Value &obj) {
33
75
  const auto& object = obj.asObject(runtime);
@@ -8,8 +8,10 @@
8
8
  #include <JsiSkHostObjects.h>
9
9
  #include <JsiSkImageFilter.h>
10
10
  #include <JsiSkMaskFilter.h>
11
+ #include <JsiSkColorFilter.h>
11
12
  #include <JsiSkPathEffect.h>
12
13
  #include <JsiSkShader.h>
14
+ #include <JsiSkColor.h>
13
15
 
14
16
  #pragma clang diagnostic push
15
17
  #pragma clang diagnostic ignored "-Wdocumentation"
@@ -38,7 +40,7 @@ public:
38
40
  }
39
41
 
40
42
  JSI_HOST_FUNCTION(getColor) {
41
- return static_cast<double>(getObject()->getColor());
43
+ return JsiSkColor::toValue(runtime, getObject()->getColor());
42
44
  }
43
45
 
44
46
  JSI_HOST_FUNCTION(getStrokeCap) {
@@ -58,7 +60,7 @@ public:
58
60
  }
59
61
 
60
62
  JSI_HOST_FUNCTION(setColor) {
61
- SkColor color = arguments[0].asNumber();
63
+ SkColor color = JsiSkColor::fromValue(runtime, arguments[0]);
62
64
  getObject()->setColor(color);
63
65
  return jsi::Value::undefined();
64
66
  }
@@ -90,11 +92,6 @@ public:
90
92
  case 1:
91
93
  getObject()->setStyle(SkPaint::kStroke_Style);
92
94
  break;
93
- // This API is expected to be deprecated
94
- // https://github.com/flutter/flutter/issues/5912
95
- // case 2:
96
- // getObject()->setStyle(SkPaint::kStrokeAndFill_Style);
97
- // break;
98
95
  }
99
96
  return jsi::Value::undefined();
100
97
  }
@@ -35,6 +35,12 @@ namespace RNSkia
35
35
  : public JsiSkWrappingSkPtrHostObject<SkRuntimeEffect>
36
36
  {
37
37
  public:
38
+
39
+ static sk_sp<SkRuntimeEffect> fromValue(jsi::Runtime &runtime, const jsi::Value &obj) {
40
+ const auto& object = obj.asObject(runtime);
41
+ return object.asHostObject<JsiSkRuntimeEffect>(runtime)->getObject();
42
+ }
43
+
38
44
  JSI_HOST_FUNCTION(makeShader)
39
45
  {
40
46
  auto uniforms = castUniforms(runtime, arguments[0]);
@@ -213,5 +219,6 @@ namespace RNSkia
213
219
  su.slot = (int)(u.offset / sizeof(float));
214
220
  return su;
215
221
  }
222
+
216
223
  };
217
224
  } // namespace RNSkia
@@ -7,7 +7,6 @@
7
7
  #include <jsi/jsi.h>
8
8
 
9
9
  #include "JsiSkRuntimeEffect.h"
10
- #include "JsiSkColorFilter.h"
11
10
  #include "JsiSkHostObjects.h"
12
11
 
13
12
  namespace RNSkia {
@@ -32,7 +31,9 @@ public:
32
31
  runtime, std::make_shared<JsiSkRuntimeEffect>(getContext(), std::move(effect)));
33
32
  }
34
33
 
35
- JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRuntimeEffectFactory, Make))
34
+ JSI_EXPORT_FUNCTIONS(
35
+ JSI_EXPORT_FUNC(JsiSkRuntimeEffectFactory, Make)
36
+ )
36
37
 
37
38
  JsiSkRuntimeEffectFactory(std::shared_ptr<RNSkPlatformContext> context)
38
39
  : JsiSkHostObject(std::move(context)) {}
@@ -0,0 +1,70 @@
1
+ #pragma once
2
+
3
+ #include <memory>
4
+ #include <utility>
5
+
6
+ #include <jsi/jsi.h>
7
+
8
+ #include "JsiSkHostObjects.h"
9
+
10
+ #pragma clang diagnostic push
11
+ #pragma clang diagnostic ignored "-Wdocumentation"
12
+
13
+ #include "JsiSkRuntimeEffect.h"
14
+ #include <SkRuntimeEffect.h>
15
+
16
+ #pragma clang diagnostic pop
17
+
18
+ namespace RNSkia {
19
+
20
+ using namespace facebook;
21
+
22
+ class JsiSkRuntimeShaderBuilder : public JsiSkWrappingSharedPtrHostObject<SkRuntimeShaderBuilder> {
23
+ public:
24
+
25
+ /**
26
+ Constructor
27
+ */
28
+ JsiSkRuntimeShaderBuilder(std::shared_ptr<RNSkPlatformContext> context, const SkRuntimeShaderBuilder &rt)
29
+ : JsiSkWrappingSharedPtrHostObject<SkRuntimeShaderBuilder>(
30
+ std::move(context), std::make_shared<SkRuntimeShaderBuilder>(rt)){}
31
+
32
+ /**
33
+ Returns the underlying object from a host object of this type
34
+ */
35
+ static std::shared_ptr<SkRuntimeShaderBuilder> fromValue(jsi::Runtime &runtime,
36
+ const jsi::Value &obj) {
37
+ const auto& object = obj.asObject(runtime);
38
+ return object.asHostObject<JsiSkRuntimeShaderBuilder>(runtime)->getObject();
39
+
40
+ }
41
+
42
+ /**
43
+ Returns the jsi object from a host object of this type
44
+ */
45
+ static jsi::Value toValue(jsi::Runtime &runtime,
46
+ std::shared_ptr<RNSkPlatformContext> context,
47
+ const SkRuntimeShaderBuilder &rt) {
48
+ return jsi::Object::createFromHostObject(
49
+ runtime, std::make_shared<JsiSkRuntimeShaderBuilder>(std::move(context), rt));
50
+ }
51
+
52
+ /**
53
+ * Creates the function for construction a new instance of the SkRect
54
+ * wrapper
55
+ * @param context platform context
56
+ * @return A function for creating a new host object wrapper for the SkRect
57
+ * class
58
+ */
59
+ static const jsi::HostFunctionType
60
+ createCtor(std::shared_ptr<RNSkPlatformContext> context) {
61
+ return JSI_HOST_FUNCTION_LAMBDA {
62
+ auto rt = JsiSkRuntimeEffect::fromValue(runtime, arguments[0]);
63
+ auto rtb = SkRuntimeShaderBuilder(rt);
64
+ // Return the newly constructed object
65
+ return jsi::Object::createFromHostObject(
66
+ runtime, std::make_shared<JsiSkRuntimeShaderBuilder>(std::move(context), std::move(rtb)));
67
+ };
68
+ }
69
+ };
70
+ } // namespace RNSkia
@@ -50,7 +50,7 @@ std::vector<SkColor> getColors(jsi::Runtime &runtime, const jsi::Value& value) {
50
50
  auto size = jsiColors.size(runtime);
51
51
  colors.reserve(size);
52
52
  for (int i = 0; i < size; i++) {
53
- SkColor color = jsiColors.getValueAtIndex(runtime, i).asNumber();
53
+ SkColor color = JsiSkColor::fromValue(runtime, jsiColors.getValueAtIndex(runtime, i));
54
54
  colors.push_back(color);
55
55
  }
56
56
  }
@@ -191,7 +191,7 @@ public:
191
191
  }
192
192
 
193
193
  JSI_HOST_FUNCTION(MakeColor) {
194
- auto color = arguments[0].asNumber();
194
+ auto color = JsiSkColor::fromValue(runtime, arguments[0]);
195
195
  sk_sp<SkShader> gradient = SkShaders::Color(color);
196
196
  return jsi::Object::createFromHostObject(
197
197
  runtime, std::make_shared<JsiSkShader>(getContext(), std::move(gradient)));
@@ -97,7 +97,7 @@ namespace RNSkia {
97
97
  auto colorsSize = jsiColors.size(runtime);
98
98
  colors.reserve(colorsSize);
99
99
  for (int i = 0; i < colorsSize; i++) {
100
- SkColor color = jsiColors.getValueAtIndex(runtime, i).asNumber();
100
+ SkColor color = JsiSkColor::fromValue(runtime, jsiColors.getValueAtIndex(runtime, i));
101
101
  colors.push_back(color);
102
102
  }
103
103
  }