@shopify/react-native-skia 0.1.124 → 0.1.127

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (388) hide show
  1. package/android/CMakeLists.txt +3 -0
  2. package/android/build.gradle +1 -1
  3. package/cpp/api/JsiSkApi.h +3 -1
  4. package/cpp/api/JsiSkCanvas.h +1 -1
  5. package/cpp/api/JsiSkColor.h +41 -7
  6. package/cpp/api/JsiSkColorFilterFactory.h +2 -1
  7. package/cpp/api/JsiSkImageFilter.h +0 -2
  8. package/cpp/api/JsiSkImageFilterFactory.h +37 -17
  9. package/cpp/api/JsiSkMatrix.h +44 -2
  10. package/cpp/api/JsiSkPaint.h +4 -7
  11. package/cpp/api/JsiSkRuntimeEffect.h +7 -0
  12. package/cpp/api/JsiSkRuntimeEffectFactory.h +3 -2
  13. package/cpp/api/JsiSkRuntimeShaderBuilder.h +70 -0
  14. package/cpp/api/JsiSkShaderFactory.h +2 -2
  15. package/cpp/api/JsiSkVertices.h +1 -1
  16. package/cpp/api/third_party/CSSColorParser.cpp +194 -0
  17. package/cpp/api/third_party/CSSColorParser.h +1 -191
  18. package/cpp/jsi/JsiSimpleValueWrapper.h +108 -0
  19. package/cpp/rnskia/values/RNSkReadonlyValue.h +13 -12
  20. package/ios/RNSkia-iOS/PlatformContext.h +30 -4
  21. package/ios/RNSkia-iOS/SkiaDrawView.mm +9 -12
  22. package/lib/commonjs/{values/animation → animation}/decay/decay.js +0 -0
  23. package/lib/commonjs/{values/animation → animation}/decay/decay.js.map +0 -0
  24. package/lib/commonjs/{values/animation → animation}/decay/index.js +0 -0
  25. package/lib/commonjs/{values/animation → animation}/decay/index.js.map +0 -0
  26. package/lib/commonjs/{values/animation → animation}/decay/runDecay.js +1 -1
  27. package/lib/commonjs/animation/decay/runDecay.js.map +1 -0
  28. package/lib/commonjs/{values/animation → animation}/decay/types.js +0 -0
  29. package/lib/commonjs/{values/animation → animation}/decay/types.js.map +0 -0
  30. package/lib/commonjs/{values/animation → animation}/functions/index.js +0 -0
  31. package/lib/commonjs/{values/animation → animation}/functions/index.js.map +0 -0
  32. package/lib/commonjs/animation/functions/interpolate.js +141 -0
  33. package/lib/commonjs/animation/functions/interpolate.js.map +1 -0
  34. package/lib/commonjs/animation/functions/interpolateColors.js +39 -0
  35. package/lib/commonjs/animation/functions/interpolateColors.js.map +1 -0
  36. package/lib/commonjs/{values/animation → animation}/index.js +0 -0
  37. package/lib/commonjs/{values/animation → animation}/index.js.map +0 -0
  38. package/lib/commonjs/{values/animation → animation}/spring/Spring.js +0 -0
  39. package/lib/commonjs/{values/animation → animation}/spring/Spring.js.map +0 -0
  40. package/lib/commonjs/{values/animation → animation}/spring/functions/index.js +0 -0
  41. package/lib/commonjs/{values/animation → animation}/spring/functions/index.js.map +0 -0
  42. package/lib/commonjs/{values/animation → animation}/spring/functions/spring.js +0 -0
  43. package/lib/commonjs/{values/animation → animation}/spring/functions/spring.js.map +0 -0
  44. package/lib/commonjs/{values/animation → animation}/spring/index.js +0 -0
  45. package/lib/commonjs/{values/animation → animation}/spring/index.js.map +0 -0
  46. package/lib/commonjs/{values/animation → animation}/spring/runSpring.js +0 -0
  47. package/lib/commonjs/animation/spring/runSpring.js.map +1 -0
  48. package/lib/commonjs/{values/animation → animation}/spring/types.js +0 -0
  49. package/lib/commonjs/{values/animation → animation}/spring/types.js.map +0 -0
  50. package/lib/commonjs/{values/animation → animation}/spring/useSpring.js +0 -0
  51. package/lib/commonjs/animation/spring/useSpring.js.map +1 -0
  52. package/lib/commonjs/{values/animation → animation}/timing/Easing.js +0 -0
  53. package/lib/commonjs/{values/animation → animation}/timing/Easing.js.map +0 -0
  54. package/lib/commonjs/{values/animation → animation}/timing/createTiming.js +1 -1
  55. package/lib/commonjs/animation/timing/createTiming.js.map +1 -0
  56. package/lib/commonjs/{values/animation → animation}/timing/functions/bezier.js +0 -0
  57. package/lib/commonjs/{values/animation → animation}/timing/functions/bezier.js.map +0 -0
  58. package/lib/commonjs/{values/animation → animation}/timing/functions/getResolvedParams.js +0 -0
  59. package/lib/commonjs/{values/animation → animation}/timing/functions/getResolvedParams.js.map +0 -0
  60. package/lib/commonjs/{values/animation → animation}/timing/functions/index.js +0 -0
  61. package/lib/commonjs/{values/animation → animation}/timing/functions/index.js.map +0 -0
  62. package/lib/commonjs/{values/animation → animation}/timing/functions/timing.js +0 -0
  63. package/lib/commonjs/{values/animation → animation}/timing/functions/timing.js.map +1 -1
  64. package/lib/commonjs/{values/animation → animation}/timing/functions/types.js +0 -0
  65. package/lib/commonjs/{values/animation → animation}/timing/functions/types.js.map +0 -0
  66. package/lib/commonjs/{values/animation → animation}/timing/index.js +0 -0
  67. package/lib/commonjs/{values/animation → animation}/timing/index.js.map +0 -0
  68. package/lib/commonjs/{values/animation → animation}/timing/runTiming.js +0 -0
  69. package/lib/commonjs/animation/timing/runTiming.js.map +1 -0
  70. package/lib/commonjs/{values/animation → animation}/timing/useLoop.js +0 -0
  71. package/lib/commonjs/{values/animation → animation}/timing/useLoop.js.map +0 -0
  72. package/lib/commonjs/{values/animation → animation}/timing/useTiming.js +1 -1
  73. package/lib/commonjs/animation/timing/useTiming.js.map +1 -0
  74. package/lib/commonjs/{values/animation → animation}/types.js +0 -0
  75. package/lib/commonjs/{values/animation → animation}/types.js.map +0 -0
  76. package/lib/commonjs/index.js +13 -0
  77. package/lib/commonjs/index.js.map +1 -1
  78. package/lib/commonjs/renderer/components/colorFilters/BlendColor.js.map +1 -1
  79. package/lib/commonjs/renderer/components/imageFilters/InnerShadow.js +4 -2
  80. package/lib/commonjs/renderer/components/imageFilters/InnerShadow.js.map +1 -1
  81. package/lib/commonjs/renderer/components/imageFilters/RuntimeShader.js +37 -0
  82. package/lib/commonjs/renderer/components/imageFilters/RuntimeShader.js.map +1 -0
  83. package/lib/commonjs/renderer/components/imageFilters/index.js +13 -0
  84. package/lib/commonjs/renderer/components/imageFilters/index.js.map +1 -1
  85. package/lib/commonjs/renderer/components/shaders/Gradient.js +1 -1
  86. package/lib/commonjs/renderer/components/shaders/Gradient.js.map +1 -1
  87. package/lib/commonjs/renderer/components/shaders/Shader.js.map +1 -1
  88. package/lib/commonjs/renderer/processors/Rects.js +5 -15
  89. package/lib/commonjs/renderer/processors/Rects.js.map +1 -1
  90. package/lib/commonjs/renderer/processors/math/Matrix3.js +42 -63
  91. package/lib/commonjs/renderer/processors/math/Matrix3.js.map +1 -1
  92. package/lib/commonjs/renderer/processors/math/Vector.js +4 -5
  93. package/lib/commonjs/renderer/processors/math/Vector.js.map +1 -1
  94. package/lib/commonjs/skia/Color.js +14 -38
  95. package/lib/commonjs/skia/Color.js.map +1 -1
  96. package/lib/commonjs/skia/ImageFilter/ImageFilterFactory.js.map +1 -1
  97. package/lib/commonjs/skia/Matrix.js.map +1 -1
  98. package/lib/commonjs/skia/Shader/useShader.js +4 -1
  99. package/lib/commonjs/skia/Shader/useShader.js.map +1 -1
  100. package/lib/commonjs/skia/Skia.js +3 -45
  101. package/lib/commonjs/skia/Skia.js.map +1 -1
  102. package/lib/commonjs/skia/SkiaApi.js +4 -0
  103. package/lib/commonjs/skia/SkiaApi.js.map +1 -0
  104. package/lib/commonjs/values/api.js +4 -6
  105. package/lib/commonjs/values/api.js.map +1 -1
  106. package/lib/commonjs/values/api.web.js +18 -0
  107. package/lib/commonjs/values/api.web.js.map +1 -0
  108. package/lib/commonjs/values/index.js +0 -13
  109. package/lib/commonjs/values/index.js.map +1 -1
  110. package/lib/commonjs/values/web/RNSkAnimation.js +46 -0
  111. package/lib/commonjs/values/web/RNSkAnimation.js.map +1 -0
  112. package/lib/commonjs/values/web/RNSkClockValue.js +75 -0
  113. package/lib/commonjs/values/web/RNSkClockValue.js.map +1 -0
  114. package/lib/commonjs/values/web/RNSkDerivedValue.js +51 -0
  115. package/lib/commonjs/values/web/RNSkDerivedValue.js.map +1 -0
  116. package/lib/commonjs/values/web/RNSkReadonlyValue.js +45 -0
  117. package/lib/commonjs/values/web/RNSkReadonlyValue.js.map +1 -0
  118. package/lib/commonjs/values/web/RNSkValue.js +73 -0
  119. package/lib/commonjs/values/web/RNSkValue.js.map +1 -0
  120. package/lib/commonjs/values/web/api.js +31 -0
  121. package/lib/commonjs/values/web/api.js.map +1 -0
  122. package/lib/commonjs/values/web/index.js +19 -0
  123. package/lib/commonjs/values/web/index.js.map +1 -0
  124. package/lib/commonjs/views/SkiaView.js +13 -10
  125. package/lib/commonjs/views/SkiaView.js.map +1 -1
  126. package/lib/commonjs/views/api.js +11 -0
  127. package/lib/commonjs/views/api.js.map +1 -0
  128. package/lib/commonjs/views/types.js.map +1 -1
  129. package/lib/module/{values/animation → animation}/decay/decay.js +0 -0
  130. package/lib/module/{values/animation → animation}/decay/decay.js.map +0 -0
  131. package/lib/module/{values/animation → animation}/decay/index.js +0 -0
  132. package/lib/module/{values/animation → animation}/decay/index.js.map +0 -0
  133. package/lib/module/{values/animation → animation}/decay/runDecay.js +1 -1
  134. package/lib/module/animation/decay/runDecay.js.map +1 -0
  135. package/lib/module/{values/animation → animation}/decay/types.js +0 -0
  136. package/lib/module/{values/animation → animation}/decay/types.js.map +0 -0
  137. package/lib/module/{values/animation → animation}/functions/index.js +0 -0
  138. package/lib/module/{values/animation → animation}/functions/index.js.map +0 -0
  139. package/lib/module/animation/functions/interpolate.js +132 -0
  140. package/lib/module/animation/functions/interpolate.js.map +1 -0
  141. package/lib/module/animation/functions/interpolateColors.js +23 -0
  142. package/lib/module/animation/functions/interpolateColors.js.map +1 -0
  143. package/lib/module/{values/animation → animation}/index.js +0 -0
  144. package/lib/module/{values/animation → animation}/index.js.map +0 -0
  145. package/lib/module/{values/animation → animation}/spring/Spring.js +0 -0
  146. package/lib/module/{values/animation → animation}/spring/Spring.js.map +0 -0
  147. package/lib/module/{values/animation → animation}/spring/functions/index.js +0 -0
  148. package/lib/module/{values/animation → animation}/spring/functions/index.js.map +0 -0
  149. package/lib/module/{values/animation → animation}/spring/functions/spring.js +0 -0
  150. package/lib/module/{values/animation → animation}/spring/functions/spring.js.map +0 -0
  151. package/lib/module/{values/animation → animation}/spring/index.js +0 -0
  152. package/lib/module/{values/animation → animation}/spring/index.js.map +0 -0
  153. package/lib/module/{values/animation → animation}/spring/runSpring.js +0 -0
  154. package/lib/module/animation/spring/runSpring.js.map +1 -0
  155. package/lib/module/{values/animation → animation}/spring/types.js +0 -0
  156. package/lib/module/{values/animation → animation}/spring/types.js.map +0 -0
  157. package/lib/module/{values/animation → animation}/spring/useSpring.js +0 -0
  158. package/lib/module/animation/spring/useSpring.js.map +1 -0
  159. package/lib/module/{values/animation → animation}/timing/Easing.js +0 -0
  160. package/lib/module/{values/animation → animation}/timing/Easing.js.map +0 -0
  161. package/lib/module/{values/animation → animation}/timing/createTiming.js +1 -1
  162. package/lib/module/animation/timing/createTiming.js.map +1 -0
  163. package/lib/module/{values/animation → animation}/timing/functions/bezier.js +0 -0
  164. package/lib/module/{values/animation → animation}/timing/functions/bezier.js.map +0 -0
  165. package/lib/module/{values/animation → animation}/timing/functions/getResolvedParams.js +0 -0
  166. package/lib/module/{values/animation → animation}/timing/functions/getResolvedParams.js.map +0 -0
  167. package/lib/module/{values/animation → animation}/timing/functions/index.js +0 -0
  168. package/lib/module/{values/animation → animation}/timing/functions/index.js.map +0 -0
  169. package/lib/module/{values/animation → animation}/timing/functions/timing.js +0 -0
  170. package/lib/module/{values/animation → animation}/timing/functions/timing.js.map +1 -1
  171. package/lib/module/{values/animation → animation}/timing/functions/types.js +0 -0
  172. package/lib/module/{values/animation → animation}/timing/functions/types.js.map +0 -0
  173. package/lib/module/{values/animation → animation}/timing/index.js +0 -0
  174. package/lib/module/{values/animation → animation}/timing/index.js.map +0 -0
  175. package/lib/module/{values/animation → animation}/timing/runTiming.js +0 -0
  176. package/lib/module/animation/timing/runTiming.js.map +1 -0
  177. package/lib/module/{values/animation → animation}/timing/useLoop.js +0 -0
  178. package/lib/module/{values/animation → animation}/timing/useLoop.js.map +0 -0
  179. package/lib/module/{values/animation → animation}/timing/useTiming.js +1 -1
  180. package/lib/module/animation/timing/useTiming.js.map +1 -0
  181. package/lib/module/{values/animation → animation}/types.js +0 -0
  182. package/lib/module/{values/animation → animation}/types.js.map +0 -0
  183. package/lib/module/index.js +1 -0
  184. package/lib/module/index.js.map +1 -1
  185. package/lib/module/renderer/components/colorFilters/BlendColor.js.map +1 -1
  186. package/lib/module/renderer/components/imageFilters/InnerShadow.js +3 -2
  187. package/lib/module/renderer/components/imageFilters/InnerShadow.js.map +1 -1
  188. package/lib/module/renderer/components/imageFilters/RuntimeShader.js +19 -0
  189. package/lib/module/renderer/components/imageFilters/RuntimeShader.js.map +1 -0
  190. package/lib/module/renderer/components/imageFilters/index.js +1 -0
  191. package/lib/module/renderer/components/imageFilters/index.js.map +1 -1
  192. package/lib/module/renderer/components/shaders/Gradient.js +2 -2
  193. package/lib/module/renderer/components/shaders/Gradient.js.map +1 -1
  194. package/lib/module/renderer/components/shaders/Shader.js.map +1 -1
  195. package/lib/module/renderer/processors/Rects.js +4 -15
  196. package/lib/module/renderer/processors/Rects.js.map +1 -1
  197. package/lib/module/renderer/processors/math/Matrix3.js +52 -72
  198. package/lib/module/renderer/processors/math/Matrix3.js.map +1 -1
  199. package/lib/module/renderer/processors/math/Vector.js +3 -5
  200. package/lib/module/renderer/processors/math/Vector.js.map +1 -1
  201. package/lib/module/skia/Color.js +9 -25
  202. package/lib/module/skia/Color.js.map +1 -1
  203. package/lib/module/skia/ImageFilter/ImageFilterFactory.js.map +1 -1
  204. package/lib/module/skia/Matrix.js.map +1 -1
  205. package/lib/module/skia/Shader/useShader.js +4 -1
  206. package/lib/module/skia/Shader/useShader.js.map +1 -1
  207. package/lib/module/skia/Skia.js +2 -46
  208. package/lib/module/skia/Skia.js.map +1 -1
  209. package/lib/module/skia/SkiaApi.js +2 -0
  210. package/lib/module/skia/SkiaApi.js.map +1 -0
  211. package/lib/module/values/api.js +4 -6
  212. package/lib/module/values/api.js.map +1 -1
  213. package/lib/module/values/api.web.js +7 -0
  214. package/lib/module/values/api.web.js.map +1 -0
  215. package/lib/module/values/index.js +0 -1
  216. package/lib/module/values/index.js.map +1 -1
  217. package/lib/module/values/web/RNSkAnimation.js +36 -0
  218. package/lib/module/values/web/RNSkAnimation.js.map +1 -0
  219. package/lib/module/values/web/RNSkClockValue.js +65 -0
  220. package/lib/module/values/web/RNSkClockValue.js.map +1 -0
  221. package/lib/module/values/web/RNSkDerivedValue.js +41 -0
  222. package/lib/module/values/web/RNSkDerivedValue.js.map +1 -0
  223. package/lib/module/values/web/RNSkReadonlyValue.js +36 -0
  224. package/lib/module/values/web/RNSkReadonlyValue.js.map +1 -0
  225. package/lib/module/values/web/RNSkValue.js +63 -0
  226. package/lib/module/values/web/RNSkValue.js.map +1 -0
  227. package/lib/module/values/web/api.js +19 -0
  228. package/lib/module/values/web/api.js.map +1 -0
  229. package/lib/module/values/web/index.js +2 -0
  230. package/lib/module/values/web/index.js.map +1 -0
  231. package/lib/module/views/SkiaView.js +1 -3
  232. package/lib/module/views/SkiaView.js.map +1 -1
  233. package/lib/module/views/api.js +4 -0
  234. package/lib/module/views/api.js.map +1 -0
  235. package/lib/module/views/types.js.map +1 -1
  236. package/lib/typescript/src/{values/animation → animation}/decay/decay.d.ts +0 -0
  237. package/lib/typescript/src/{values/animation → animation}/decay/index.d.ts +0 -0
  238. package/lib/typescript/src/{values/animation → animation}/decay/runDecay.d.ts +2 -2
  239. package/lib/typescript/src/{values/animation → animation}/decay/types.d.ts +1 -1
  240. package/lib/typescript/src/{values/animation → animation}/functions/index.d.ts +0 -0
  241. package/lib/typescript/src/animation/functions/interpolate.d.ts +11 -0
  242. package/lib/typescript/src/animation/functions/interpolateColors.d.ts +3 -0
  243. package/lib/typescript/src/{values/animation → animation}/index.d.ts +0 -0
  244. package/lib/typescript/src/{values/animation → animation}/spring/Spring.d.ts +0 -0
  245. package/lib/typescript/src/{values/animation → animation}/spring/functions/index.d.ts +0 -0
  246. package/lib/typescript/src/{values/animation → animation}/spring/functions/spring.d.ts +0 -0
  247. package/lib/typescript/src/{values/animation → animation}/spring/index.d.ts +0 -0
  248. package/lib/typescript/src/{values/animation → animation}/spring/runSpring.d.ts +1 -1
  249. package/lib/typescript/src/{values/animation → animation}/spring/types.d.ts +0 -0
  250. package/lib/typescript/src/{values/animation → animation}/spring/useSpring.d.ts +1 -1
  251. package/lib/typescript/src/{values/animation → animation}/timing/Easing.d.ts +0 -0
  252. package/lib/typescript/src/{values/animation → animation}/timing/createTiming.d.ts +2 -2
  253. package/lib/typescript/src/{values/animation → animation}/timing/functions/bezier.d.ts +0 -0
  254. package/lib/typescript/src/{values/animation → animation}/timing/functions/getResolvedParams.d.ts +0 -0
  255. package/lib/typescript/src/{values/animation → animation}/timing/functions/index.d.ts +0 -0
  256. package/lib/typescript/src/{values/animation → animation}/timing/functions/timing.d.ts +1 -1
  257. package/lib/typescript/src/{values/animation → animation}/timing/functions/types.d.ts +0 -0
  258. package/lib/typescript/src/{values/animation → animation}/timing/index.d.ts +0 -0
  259. package/lib/typescript/src/{values/animation → animation}/timing/runTiming.d.ts +1 -1
  260. package/lib/typescript/src/{values/animation → animation}/timing/useLoop.d.ts +0 -0
  261. package/lib/typescript/src/{values/animation → animation}/timing/useTiming.d.ts +1 -1
  262. package/lib/typescript/src/{values/animation → animation}/types.d.ts +0 -0
  263. package/lib/typescript/src/index.d.ts +1 -0
  264. package/lib/typescript/src/renderer/components/colorFilters/BlendColor.d.ts +1 -1
  265. package/lib/typescript/src/renderer/components/imageFilters/RuntimeShader.d.ts +7 -0
  266. package/lib/typescript/src/renderer/components/imageFilters/index.d.ts +1 -0
  267. package/lib/typescript/src/renderer/components/shaders/Gradient.d.ts +1 -1
  268. package/lib/typescript/src/renderer/components/shaders/Shader.d.ts +2 -2
  269. package/lib/typescript/src/renderer/components/shapes/Circle.d.ts +1 -4
  270. package/lib/typescript/src/renderer/processors/Rects.d.ts +9 -41
  271. package/lib/typescript/src/renderer/processors/math/Matrix3.d.ts +1 -5
  272. package/lib/typescript/src/renderer/processors/math/Vector.d.ts +5 -17
  273. package/lib/typescript/src/skia/Color.d.ts +8 -9
  274. package/lib/typescript/src/skia/ImageFilter/ImageFilterFactory.d.ts +16 -0
  275. package/lib/typescript/src/skia/Matrix.d.ts +7 -1
  276. package/lib/typescript/src/skia/RuntimeEffect/RuntimeEffect.d.ts +2 -1
  277. package/lib/typescript/src/skia/RuntimeEffect/RuntimeEffectFactory.d.ts +2 -2
  278. package/lib/typescript/src/skia/Shader/useShader.d.ts +1 -1
  279. package/lib/typescript/src/skia/Skia.d.ts +28 -95
  280. package/lib/typescript/src/skia/SkiaApi.d.ts +71 -0
  281. package/lib/typescript/src/skia/Surface/Surface.d.ts +1 -1
  282. package/lib/typescript/src/skia/Surface/SurfaceFactory.d.ts +2 -2
  283. package/lib/typescript/src/values/api.d.ts +2 -25
  284. package/lib/typescript/src/values/api.web.d.ts +2 -0
  285. package/lib/typescript/src/values/index.d.ts +0 -1
  286. package/lib/typescript/src/values/types.d.ts +24 -1
  287. package/lib/typescript/src/values/web/RNSkAnimation.d.ts +9 -0
  288. package/lib/typescript/src/values/web/RNSkClockValue.d.ts +13 -0
  289. package/lib/typescript/src/values/web/RNSkDerivedValue.d.ts +9 -0
  290. package/lib/typescript/src/values/web/RNSkReadonlyValue.d.ts +11 -0
  291. package/lib/typescript/src/values/web/RNSkValue.d.ts +14 -0
  292. package/lib/typescript/src/values/web/api.d.ts +2 -0
  293. package/lib/typescript/src/values/web/index.d.ts +1 -0
  294. package/lib/typescript/src/views/SkiaView.d.ts +3 -36
  295. package/lib/typescript/src/views/api.d.ts +5 -0
  296. package/lib/typescript/src/views/types.d.ts +32 -0
  297. package/package.json +2 -2
  298. package/src/{values/animation → animation}/decay/decay.ts +0 -0
  299. package/src/{values/animation → animation}/decay/index.ts +0 -0
  300. package/src/{values/animation → animation}/decay/runDecay.ts +2 -2
  301. package/src/{values/animation → animation}/decay/types.ts +1 -1
  302. package/src/{values/animation → animation}/functions/index.ts +0 -0
  303. package/src/animation/functions/interpolate.ts +182 -0
  304. package/src/animation/functions/interpolateColors.ts +58 -0
  305. package/src/{values/animation → animation}/index.ts +0 -0
  306. package/src/{values/animation → animation}/spring/Spring.ts +0 -0
  307. package/src/{values/animation → animation}/spring/functions/index.ts +0 -0
  308. package/src/{values/animation → animation}/spring/functions/spring.ts +0 -0
  309. package/src/{values/animation → animation}/spring/index.ts +0 -0
  310. package/src/{values/animation → animation}/spring/runSpring.ts +1 -1
  311. package/src/{values/animation → animation}/spring/types.ts +0 -0
  312. package/src/{values/animation → animation}/spring/useSpring.ts +1 -1
  313. package/src/{values/animation → animation}/timing/Easing.ts +0 -0
  314. package/src/{values/animation → animation}/timing/createTiming.ts +2 -2
  315. package/src/{values/animation → animation}/timing/functions/__tests__/timing.spec.ts +0 -0
  316. package/src/{values/animation → animation}/timing/functions/bezier.ts +0 -0
  317. package/src/{values/animation → animation}/timing/functions/getResolvedParams.ts +0 -0
  318. package/src/{values/animation → animation}/timing/functions/index.ts +0 -0
  319. package/src/{values/animation → animation}/timing/functions/timing.ts +1 -1
  320. package/src/{values/animation → animation}/timing/functions/types.ts +0 -0
  321. package/src/{values/animation → animation}/timing/index.ts +0 -0
  322. package/src/{values/animation → animation}/timing/runTiming.ts +1 -1
  323. package/src/{values/animation → animation}/timing/useLoop.ts +0 -0
  324. package/src/{values/animation → animation}/timing/useTiming.ts +2 -2
  325. package/src/{values/animation → animation}/types.ts +0 -0
  326. package/src/index.ts +1 -0
  327. package/src/renderer/components/colorFilters/BlendColor.tsx +1 -1
  328. package/src/renderer/components/imageFilters/InnerShadow.tsx +4 -2
  329. package/src/renderer/components/imageFilters/RuntimeShader.tsx +23 -0
  330. package/src/renderer/components/imageFilters/index.ts +1 -0
  331. package/src/renderer/components/shaders/Gradient.ts +2 -4
  332. package/src/renderer/components/shaders/Shader.tsx +2 -2
  333. package/src/renderer/processors/Rects.ts +6 -12
  334. package/src/renderer/processors/math/Matrix3.ts +24 -105
  335. package/src/renderer/processors/math/Vector.ts +3 -2
  336. package/src/skia/Color.ts +13 -27
  337. package/src/skia/ImageFilter/ImageFilterFactory.ts +20 -0
  338. package/src/skia/Matrix.ts +8 -1
  339. package/src/skia/RuntimeEffect/RuntimeEffect.ts +3 -1
  340. package/src/skia/RuntimeEffect/RuntimeEffectFactory.ts +2 -2
  341. package/src/skia/Shader/useShader.ts +4 -1
  342. package/src/skia/Skia.ts +4 -126
  343. package/src/skia/SkiaApi.ts +86 -0
  344. package/src/skia/Surface/Surface.ts +1 -1
  345. package/src/skia/Surface/SurfaceFactory.ts +2 -2
  346. package/src/values/api.ts +3 -42
  347. package/src/values/api.web.ts +5 -0
  348. package/src/values/index.ts +0 -1
  349. package/src/values/types.ts +30 -1
  350. package/src/values/web/RNSkAnimation.ts +33 -0
  351. package/src/values/web/RNSkClockValue.ts +58 -0
  352. package/src/values/web/RNSkDerivedValue.ts +38 -0
  353. package/src/values/web/RNSkReadonlyValue.ts +32 -0
  354. package/src/values/web/RNSkValue.ts +57 -0
  355. package/src/values/web/__tests__/RNSkAnimation.spec.ts +21 -0
  356. package/src/values/web/__tests__/RNSkDerivedValue.spec.ts +15 -0
  357. package/src/values/web/__tests__/RNSkReadonlyValue.spec.ts +8 -0
  358. package/src/values/web/__tests__/RNSkValue.spec.ts +11 -0
  359. package/src/values/web/api.ts +33 -0
  360. package/src/values/web/index.ts +1 -0
  361. package/src/views/SkiaView.tsx +3 -49
  362. package/src/views/api.ts +7 -0
  363. package/src/views/types.ts +40 -0
  364. package/lib/commonjs/values/animation/decay/runDecay.js.map +0 -1
  365. package/lib/commonjs/values/animation/functions/interpolate.js +0 -139
  366. package/lib/commonjs/values/animation/functions/interpolate.js.map +0 -1
  367. package/lib/commonjs/values/animation/functions/interpolateColors.js +0 -47
  368. package/lib/commonjs/values/animation/functions/interpolateColors.js.map +0 -1
  369. package/lib/commonjs/values/animation/spring/runSpring.js.map +0 -1
  370. package/lib/commonjs/values/animation/spring/useSpring.js.map +0 -1
  371. package/lib/commonjs/values/animation/timing/createTiming.js.map +0 -1
  372. package/lib/commonjs/values/animation/timing/runTiming.js.map +0 -1
  373. package/lib/commonjs/values/animation/timing/useTiming.js.map +0 -1
  374. package/lib/module/values/animation/decay/runDecay.js.map +0 -1
  375. package/lib/module/values/animation/functions/interpolate.js +0 -132
  376. package/lib/module/values/animation/functions/interpolate.js.map +0 -1
  377. package/lib/module/values/animation/functions/interpolateColors.js +0 -32
  378. package/lib/module/values/animation/functions/interpolateColors.js.map +0 -1
  379. package/lib/module/values/animation/spring/runSpring.js.map +0 -1
  380. package/lib/module/values/animation/spring/useSpring.js.map +0 -1
  381. package/lib/module/values/animation/timing/createTiming.js.map +0 -1
  382. package/lib/module/values/animation/timing/runTiming.js.map +0 -1
  383. package/lib/module/values/animation/timing/useTiming.js.map +0 -1
  384. package/lib/typescript/scripts/install-npm.d.ts +0 -1
  385. package/lib/typescript/src/values/animation/functions/interpolate.d.ts +0 -7
  386. package/lib/typescript/src/values/animation/functions/interpolateColors.d.ts +0 -3
  387. package/src/values/animation/functions/interpolate.ts +0 -169
  388. package/src/values/animation/functions/interpolateColors.ts +0 -62
@@ -3,8 +3,8 @@ import type {
3
3
  RequiredAnimationParams,
4
4
  AnimationCallback,
5
5
  } from "../types";
6
- import type { AnimationState, SkiaValue } from "../../types";
7
- import { ValueApi } from "../../api";
6
+ import type { AnimationState, SkiaValue } from "../../values/types";
7
+ import { ValueApi } from "../../values/api";
8
8
 
9
9
  import { timing } from "./functions";
10
10
 
@@ -1,4 +1,4 @@
1
- import type { AnimationState } from "../../../types";
1
+ import type { AnimationState } from "../../../values/types";
2
2
 
3
3
  /**
4
4
  * Calculates and returns a timing value based on the
@@ -1,4 +1,4 @@
1
- import type { SkiaValue, SkiaAnimation } from "../../types";
1
+ import type { SkiaValue, SkiaAnimation } from "../../values/types";
2
2
  import type {
3
3
  AnimationParams,
4
4
  TimingConfig,
@@ -1,12 +1,12 @@
1
1
  import { useEffect, useMemo, useRef } from "react";
2
2
 
3
- import type { SkiaReadonlyValue, SkiaAnimation } from "../../types";
3
+ import type { SkiaReadonlyValue, SkiaAnimation } from "../../values/types";
4
4
  import type {
5
5
  AnimationParams,
6
6
  TimingConfig,
7
7
  AnimationCallback,
8
8
  } from "../types";
9
- import { useValue } from "../../hooks/useValue";
9
+ import { useValue } from "../../values/hooks/useValue";
10
10
 
11
11
  import { getResolvedParams } from "./functions";
12
12
  import { createTiming } from "./createTiming";
File without changes
package/src/index.ts CHANGED
@@ -5,3 +5,4 @@ export * from "./views";
5
5
  export * from "./skia";
6
6
  export * from "./external";
7
7
  export * from "./values";
8
+ export * from "./animation";
@@ -1,11 +1,11 @@
1
1
  import React from "react";
2
2
  import type { ReactNode } from "react";
3
3
 
4
+ import type { Color } from "../../../skia";
4
5
  import { BlendMode, Skia } from "../../../skia";
5
6
  import { createDeclaration } from "../../nodes";
6
7
  import type { SkEnum, AnimatedProps } from "../../processors";
7
8
  import { enumKey } from "../../processors";
8
- import type { Color } from "../../../skia";
9
9
 
10
10
  import { composeColorFilter } from "./Compose";
11
11
 
@@ -2,6 +2,8 @@ import type { SkColor } from "../../../skia";
2
2
  import { BlendMode, Skia, TileMode } from "../../../skia";
3
3
  import type { SkImageFilter } from "../../../skia/ImageFilter/ImageFilter";
4
4
 
5
+ const Black = Skia.Color("black");
6
+
5
7
  export const MakeInnerShadow = (
6
8
  shadowOnly: boolean | undefined,
7
9
  dx: number,
@@ -12,11 +14,11 @@ export const MakeInnerShadow = (
12
14
  input: SkImageFilter | null
13
15
  ) => {
14
16
  const sourceGraphic = Skia.ImageFilter.MakeColorFilter(
15
- Skia.ColorFilter.MakeBlend(0xff000000, BlendMode.Dst),
17
+ Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),
16
18
  null
17
19
  );
18
20
  const sourceAlpha = Skia.ImageFilter.MakeColorFilter(
19
- Skia.ColorFilter.MakeBlend(0xff000000, BlendMode.SrcIn),
21
+ Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),
20
22
  null
21
23
  );
22
24
  const f1 = Skia.ImageFilter.MakeColorFilter(
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+
3
+ import { Skia } from "../../../skia";
4
+ import { createDeclaration } from "../../nodes/Declaration";
5
+ import type { AnimatedProps } from "../../processors/Animations/Animations";
6
+ import type { SkRuntimeEffect } from "../../../skia/RuntimeEffect/RuntimeEffect";
7
+
8
+ import { getInput } from "./getInput";
9
+
10
+ export interface RuntimeShaderProps {
11
+ source: SkRuntimeEffect;
12
+ }
13
+
14
+ const onDeclare = createDeclaration<RuntimeShaderProps>(
15
+ ({ source }, children) => {
16
+ const rtb = Skia.RuntimeShaderBuilder(source);
17
+ return Skia.ImageFilter.MakeRuntimeShader(rtb, null, getInput(children));
18
+ }
19
+ );
20
+
21
+ export const RuntimeShader = (props: AnimatedProps<RuntimeShaderProps>) => {
22
+ return <skDeclaration onDeclare={onDeclare} {...props} />;
23
+ };
@@ -3,3 +3,4 @@ export * from "./Offset";
3
3
  export * from "./DisplacementMap";
4
4
  export * from "./Shadow";
5
5
  export * from "./Morphology";
6
+ export * from "./RuntimeShader";
@@ -1,4 +1,4 @@
1
- import { TileMode, Skia } from "../../../skia";
1
+ import { Skia, TileMode } from "../../../skia";
2
2
  import type { SkEnum } from "../../processors/Paint";
3
3
  import type { TransformProps } from "../../processors/Transform";
4
4
  import { enumKey } from "../../processors/Paint";
@@ -19,9 +19,7 @@ export const processGradientProps = ({
19
19
  flags,
20
20
  ...transform
21
21
  }: GradientProps) => ({
22
- colors: colors.map((color) =>
23
- typeof color === "string" ? Skia.Color(color) : color
24
- ),
22
+ colors: colors.map((color) => Skia.Color(color)),
25
23
  positions: positions ?? null,
26
24
  mode: TileMode[enumKey(mode ?? "clamp")],
27
25
  flags,
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import type { ReactNode } from "react";
3
3
 
4
4
  import { isShader } from "../../../skia";
5
- import type { IRuntimeEffect } from "../../../skia";
5
+ import type { SkRuntimeEffect } from "../../../skia";
6
6
  import type { Vector, AnimatedProps, TransformProps } from "../../processors";
7
7
  import { createDeclaration } from "../../nodes/Declaration";
8
8
  import { localMatrix } from "../../processors";
@@ -28,7 +28,7 @@ const processValue = (value: UniformValue): number | readonly number[] => {
28
28
  };
29
29
 
30
30
  export interface ShaderProps extends TransformProps {
31
- source: IRuntimeEffect;
31
+ source: SkRuntimeEffect;
32
32
  uniforms: Uniforms;
33
33
  opaque?: boolean;
34
34
  children?: ReactNode | ReactNode[];
@@ -1,24 +1,18 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
2
  import type { SkRect, SkRRect } from "../../skia";
3
+ import { Skia } from "../../skia";
3
4
 
4
5
  import { vec } from "./math/Vector";
5
6
  import type { Radius } from "./Radius";
6
7
  import { processRadius } from "./Radius";
7
8
 
8
- export const point = (x: number, y: number) => ({ x, y });
9
+ export const point = (x: number, y: number) => Skia.Point(x, y);
9
10
 
10
- export const rect = (x: number, y: number, width: number, height: number) => ({
11
- x,
12
- y,
13
- width,
14
- height,
15
- });
11
+ export const rect = (x: number, y: number, width: number, height: number) =>
12
+ Skia.XYWHRect(x, y, width, height);
16
13
 
17
- export const rrect = (r: SkRect, rx: number, ry: number) => ({
18
- rect: r,
19
- rx,
20
- ry,
21
- });
14
+ export const rrect = (r: SkRect, rx: number, ry: number) =>
15
+ Skia.RRectXY(r, rx, ry);
22
16
 
23
17
  export const bounds = (rects: SkRect[]) => {
24
18
  const x = Math.min(...rects.map((r) => r.x));
@@ -1,9 +1,5 @@
1
1
  import { exhaustiveCheck } from "../../typeddash";
2
- import type { SkMatrix } from "../../../skia/Matrix";
3
-
4
- export type Vec3 = readonly [number, number, number];
5
-
6
- export type Matrix3 = readonly [Vec3, Vec3, Vec3];
2
+ import { Skia } from "../../../skia";
7
3
 
8
4
  type Transform2dName =
9
5
  | "translateX"
@@ -34,121 +30,44 @@ export type Transforms2d = readonly (
34
30
  | Pick<Transformations, "rotate">
35
31
  )[];
36
32
 
37
- const identityMatrix: Matrix3 = [
38
- [1, 0, 0],
39
- [0, 1, 0],
40
- [0, 0, 1],
41
- ];
42
-
43
- const translateXMatrix = (x: number): Matrix3 => [
44
- [1, 0, x],
45
- [0, 1, 0],
46
- [0, 0, 1],
47
- ];
48
-
49
- const translateYMatrix = (y: number): Matrix3 => [
50
- [1, 0, 0],
51
- [0, 1, y],
52
- [0, 0, 1],
53
- ];
54
-
55
- const scaleMatrix = (s: number): Matrix3 => [
56
- [s, 0, 0],
57
- [0, s, 0],
58
- [0, 0, 1],
59
- ];
60
-
61
- const scaleXMatrix = (s: number): Matrix3 => [
62
- [s, 0, 0],
63
- [0, 1, 0],
64
- [0, 0, 1],
65
- ];
66
-
67
- const scaleYMatrix = (s: number): Matrix3 => [
68
- [1, 0, 0],
69
- [0, s, 0],
70
- [0, 0, 1],
71
- ];
72
-
73
- const skewXMatrix = (s: number): Matrix3 => [
74
- [1, Math.tan(s), 0],
75
- [0, 1, 0],
76
- [0, 0, 1],
77
- ];
78
-
79
- const skewYMatrix = (s: number): Matrix3 => [
80
- [1, 0, 0],
81
- [Math.tan(s), 1, 0],
82
- [0, 0, 1],
83
- ];
84
-
85
- const rotateZMatrix = (r: number): Matrix3 => [
86
- [Math.cos(r), -1 * Math.sin(r), 0],
87
- [Math.sin(r), Math.cos(r), 0],
88
- [0, 0, 1],
89
- ];
90
-
91
- const dot3 = (row: Vec3, col: Vec3) =>
92
- row[0] * col[0] + row[1] * col[1] + row[2] * col[2];
93
-
94
- const multiply3 = (m1: Matrix3, m2: Matrix3) => {
95
- const col0 = [m2[0][0], m2[1][0], m2[2][0]] as const;
96
- const col1 = [m2[0][1], m2[1][1], m2[2][1]] as const;
97
- const col2 = [m2[0][2], m2[1][2], m2[2][2]] as const;
98
- return [
99
- [dot3(m1[0], col0), dot3(m1[0], col1), dot3(m1[0], col2)],
100
- [dot3(m1[1], col0), dot3(m1[1], col1), dot3(m1[1], col2)],
101
- [dot3(m1[2], col0), dot3(m1[2], col1), dot3(m1[2], col2)],
102
- ] as const;
103
- };
104
-
105
- export const matrixVecMul3 = (m: Matrix3, v: Vec3) =>
106
- [dot3(m[0], v), dot3(m[1], v), dot3(m[2], v)] as const;
107
-
108
- const skiaMatrix3 = (m: Matrix3): SkMatrix => {
109
- return [
110
- m[0][0],
111
- m[0][1],
112
- m[0][2],
113
- m[1][0],
114
- m[1][1],
115
- m[1][2],
116
- m[2][0],
117
- m[2][1],
118
- m[2][2],
119
- ];
120
- };
121
-
122
- export const processTransform2d = (transforms: Transforms2d) =>
123
- skiaMatrix3(processTransform(transforms));
124
-
125
- const processTransform = (transforms: Transforms2d) =>
126
- transforms.reduce((acc, transform) => {
33
+ export const processTransform2d = (transforms: Transforms2d) => {
34
+ const m = Skia.Matrix();
35
+ for (const transform of transforms) {
127
36
  const key = Object.keys(transform)[0] as Transform2dName;
128
37
  const value = (transform as Pick<Transformations, typeof key>)[key];
129
38
  if (key === "translateX") {
130
- return multiply3(acc, translateXMatrix(value));
39
+ m.preTranslate(value, 0);
40
+ continue;
131
41
  }
132
42
  if (key === "translateY") {
133
- return multiply3(acc, translateYMatrix(value));
43
+ m.preTranslate(0, value);
44
+ continue;
134
45
  }
135
46
  if (key === "scale") {
136
- return multiply3(acc, scaleMatrix(value));
47
+ m.preScale(value, value);
48
+ continue;
137
49
  }
138
50
  if (key === "scaleX") {
139
- return multiply3(acc, scaleXMatrix(value));
51
+ m.preScale(value, 1);
52
+ continue;
140
53
  }
141
54
  if (key === "scaleY") {
142
- return multiply3(acc, scaleYMatrix(value));
55
+ m.preScale(1, value);
56
+ continue;
143
57
  }
144
58
  if (key === "skewX") {
145
- return multiply3(acc, skewXMatrix(value));
59
+ m.preSkew(value, 0);
60
+ continue;
146
61
  }
147
62
  if (key === "skewY") {
148
- return multiply3(acc, skewYMatrix(value));
63
+ m.preSkew(0, value);
64
+ continue;
149
65
  }
150
66
  if (key === "rotate" || key === "rotateZ") {
151
- return multiply3(acc, rotateZMatrix(value));
67
+ m.preRotate((value * 180) / Math.PI);
68
+ continue;
152
69
  }
153
- return exhaustiveCheck(key);
154
- }, identityMatrix);
70
+ exhaustiveCheck(key);
71
+ }
72
+ return m;
73
+ };
@@ -1,11 +1,12 @@
1
- import { interpolate } from "../../../values/animation/functions/interpolate";
1
+ import { interpolate } from "../../../animation/functions/interpolate";
2
+ import { Skia } from "../../../skia";
2
3
 
3
4
  export interface Vector {
4
5
  x: number;
5
6
  y: number;
6
7
  }
7
8
 
8
- export const vec = (x = 0, y?: number) => ({ x, y: y ?? x });
9
+ export const vec = (x = 0, y?: number) => Skia.Point(x, y ?? x);
9
10
  export const neg = (a: Vector) => vec(-a.x, -a.y);
10
11
  export const add = (a: Vector, b: Vector) => vec(a.x + b.x, a.y + b.y);
11
12
  export const sub = (a: Vector, b: Vector) => vec(a.x - b.x, a.y - b.y);
package/src/skia/Color.ts CHANGED
@@ -1,34 +1,20 @@
1
1
  import { Skia } from "./Skia";
2
2
 
3
- // This is the JSI color. Currently a number. This may change.
4
- export type SkColor = number;
5
- // Input colors can be string or number
6
- export type Color = string | number;
3
+ // This is the JSI color
4
+ export type SkColor = Float32Array;
5
+ // Input colors can be string, number or Float32Array
6
+ export type Color = string | Float32Array | number;
7
7
 
8
- export const alphaf = (c: number) => ((c >> 24) & 255) / 255;
9
- export const red = (c: number) => (c >> 16) & 255;
10
- export const green = (c: number) => (c >> 8) & 255;
11
- export const blue = (c: number) => c & 255;
12
- export const rgbaColor = (r: number, g: number, b: number, af: number) => {
13
- const a = Math.round(af * 255);
14
- return ((a << 24) | (r << 16) | (g << 8) | b) >>> 0;
15
- };
8
+ export const RED = 0;
9
+ export const GREEN = 1;
10
+ export const BLUE = 2;
11
+ export const ALPHA = 3;
16
12
 
17
- const processColorAsArray = (cl: Color) => {
18
- const icl = typeof cl === "string" ? Skia.Color(cl) : cl;
19
- const r = red(icl);
20
- const g = green(icl);
21
- const b = blue(icl);
22
- const a = alphaf(icl);
23
- return [r, g, b, a] as const;
24
- };
13
+ export const rgbaColor = (r: number, g: number, b: number, a: number) =>
14
+ new Float32Array([r, g, b, a]);
25
15
 
26
16
  export const processColor = (cl: Color, currentOpacity: number) => {
27
- const [r, g, b, a] = processColorAsArray(cl);
28
- return rgbaColor(r, g, b, a * currentOpacity);
29
- };
30
-
31
- export const processColorAsUnitArray = (cl: Color, currentOpacity: number) => {
32
- const [r, g, b, a] = processColorAsArray(cl);
33
- return [r / 255, g / 255, b / 255, a * currentOpacity] as const;
17
+ const color = Skia.Color(cl);
18
+ color[ALPHA] *= currentOpacity;
19
+ return color;
34
20
  };
@@ -3,6 +3,7 @@ import type { SkColorFilter } from "../ColorFilter/ColorFilter";
3
3
  import type { SkShader } from "../Shader/Shader";
4
4
  import type { SkRect } from "../Rect";
5
5
  import type { BlendMode } from "../Paint/BlendMode";
6
+ import type { SkRuntimeShaderBuilder } from "../RuntimeEffect";
6
7
 
7
8
  import type { SkImageFilter, TileMode } from "./ImageFilter";
8
9
 
@@ -169,4 +170,23 @@ export interface ImageFilterFactory {
169
170
  foreground: SkImageFilter | null,
170
171
  cropRect?: SkRect
171
172
  ) => SkImageFilter;
173
+ /**
174
+ * Create a filter that fills the output with the per-pixel evaluation of the SkShader produced
175
+ * by the SkRuntimeShaderBuilder. The shader is defined in the image filter's local coordinate
176
+ * system, so it will automatically be affected by SkCanvas' transform.
177
+ *
178
+ * @param builder The builder used to produce the runtime shader, that will in turn
179
+ * fill the result image
180
+ * @param childShaderName The name of the child shader defined in the builder that will be
181
+ * bound to the input param (or the source image if the input param
182
+ * is null). If null the builder can have exactly one child shader,
183
+ * which automatically binds the input param.
184
+ * @param input The image filter that will be provided as input to the runtime
185
+ * shader. If null the implicit source image is used instead
186
+ */
187
+ MakeRuntimeShader: (
188
+ builder: SkRuntimeShaderBuilder,
189
+ childShaderName: string | null,
190
+ input: SkImageFilter | null
191
+ ) => SkImageFilter;
172
192
  }
@@ -1,3 +1,4 @@
1
+ import type { SkJSIInstance } from "./JsiInstance";
1
2
  export enum MatrixIndex {
2
3
  ScaleX = 0,
3
4
  SkewX = 1,
@@ -10,7 +11,7 @@ export enum MatrixIndex {
10
11
  persp2 = 8,
11
12
  }
12
13
 
13
- export interface SkMatrix {
14
+ export interface SkMatrix extends SkJSIInstance<"Matrix"> {
14
15
  0: number;
15
16
  1: number;
16
17
  2: number;
@@ -20,4 +21,10 @@ export interface SkMatrix {
20
21
  6: number;
21
22
  7: number;
22
23
  8: number;
24
+
25
+ preConcat: (matrix: SkMatrix) => void;
26
+ preTranslate: (x: number, y: number) => void;
27
+ preScale: (x: number, y: number) => void;
28
+ preSkew: (x: number, y: number) => void;
29
+ preRotate: (theta: number) => void;
23
30
  }
@@ -10,7 +10,9 @@ export interface SkSLUniform {
10
10
  isInteger: boolean;
11
11
  }
12
12
 
13
- export interface IRuntimeEffect extends SkJSIInstance<"RuntimeEffect"> {
13
+ export type SkRuntimeShaderBuilder = SkJSIInstance<"RuntimeShaderBuilder">;
14
+
15
+ export interface SkRuntimeEffect extends SkJSIInstance<"RuntimeEffect"> {
14
16
  /**
15
17
  * Returns a shader executed using the given uniform data.
16
18
  * @param uniforms
@@ -1,4 +1,4 @@
1
- import type { IRuntimeEffect } from "./RuntimeEffect";
1
+ import type { SkRuntimeEffect } from "./RuntimeEffect";
2
2
 
3
3
  export interface RuntimeEffectFactory {
4
4
  /**
@@ -7,6 +7,6 @@ export interface RuntimeEffectFactory {
7
7
  * @param callback - will be called with any compilation error. If not provided, errors will
8
8
  * be printed to console.log().
9
9
  */
10
- Make: (sksl: string) => IRuntimeEffect | null;
10
+ Make: (sksl: string) => SkRuntimeEffect | null;
11
11
  //Make(sksl: string, callback?: (err: string) => void): RuntimeEffect | null;
12
12
  }
@@ -3,4 +3,7 @@ import { useMemo } from "react";
3
3
  import { Skia } from "../Skia";
4
4
 
5
5
  export const useShader = (sksl: string) =>
6
- useMemo(() => Skia.RuntimeEffect.Make(sksl), [sksl]);
6
+ useMemo(() => {
7
+ console.warn("Use shader will be deprecated.");
8
+ return Skia.RuntimeEffect.Make(sksl);
9
+ }, [sksl]);