@shopify/react-native-skia 1.8.2 → 1.9.1

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 (198) hide show
  1. package/android/cpp/rnskia-android/MainThreadDispatcher.h +1 -1
  2. package/android/cpp/rnskia-android/OpenGLContext.h +4 -4
  3. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +3 -3
  4. package/cpp/api/JsiSkCanvas.h +27 -25
  5. package/cpp/api/JsiSkImage.h +24 -0
  6. package/cpp/api/JsiSkPaint.h +1 -1
  7. package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +5 -1
  8. package/cpp/rnskia/dom/nodes/JsiImageNode.h +8 -4
  9. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +9 -38
  10. package/cpp/rnskia/dom/props/SamplingProp.h +54 -0
  11. package/ios/RNSkia-iOS/SkiaManager.mm +2 -4
  12. package/lib/commonjs/dom/types/Drawings.d.ts +3 -1
  13. package/lib/commonjs/dom/types/Drawings.js.map +1 -1
  14. package/lib/commonjs/dom/types/Shaders.d.ts +2 -3
  15. package/lib/commonjs/dom/types/Shaders.js.map +1 -1
  16. package/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -1
  17. package/lib/commonjs/renderer/components/image/ImageShader.js +0 -4
  18. package/lib/commonjs/renderer/components/image/ImageShader.js.map +1 -1
  19. package/lib/commonjs/skia/types/Canvas.d.ts +2 -2
  20. package/lib/commonjs/skia/types/Canvas.js.map +1 -1
  21. package/lib/commonjs/skia/types/Image/Image.d.ts +18 -0
  22. package/lib/commonjs/skia/types/Image/Image.js +24 -1
  23. package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
  24. package/lib/commonjs/skia/types/Picture/PictureRecorder.d.ts +2 -1
  25. package/lib/commonjs/skia/types/Picture/PictureRecorder.js.map +1 -1
  26. package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +2 -2
  27. package/lib/commonjs/skia/web/JsiSkCanvas.js +15 -2
  28. package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
  29. package/lib/commonjs/sksg/Container.d.ts +17 -14
  30. package/lib/commonjs/sksg/Container.js +59 -62
  31. package/lib/commonjs/sksg/Container.js.map +1 -1
  32. package/lib/commonjs/sksg/HostConfig.js +4 -9
  33. package/lib/commonjs/sksg/HostConfig.js.map +1 -1
  34. package/lib/commonjs/sksg/Reconciler.js +1 -2
  35. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  36. package/lib/commonjs/sksg/Recorder/Core.d.ts +42 -37
  37. package/lib/commonjs/sksg/Recorder/Core.js +45 -38
  38. package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
  39. package/lib/commonjs/sksg/Recorder/Player.js +4 -0
  40. package/lib/commonjs/sksg/Recorder/Player.js.map +1 -1
  41. package/lib/commonjs/sksg/Recorder/Recorder.d.ts +15 -0
  42. package/lib/commonjs/sksg/Recorder/Recorder.js +23 -1
  43. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
  44. package/lib/commonjs/sksg/Recorder/Visitor.js +6 -0
  45. package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -1
  46. package/lib/commonjs/sksg/Recorder/commands/Drawing.js +11 -4
  47. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
  48. package/lib/commonjs/sksg/Recorder/commands/Shaders.js +8 -3
  49. package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -1
  50. package/lib/module/dom/types/Drawings.d.ts +3 -1
  51. package/lib/module/dom/types/Drawings.js.map +1 -1
  52. package/lib/module/dom/types/Shaders.d.ts +2 -3
  53. package/lib/module/dom/types/Shaders.js.map +1 -1
  54. package/lib/module/renderer/components/image/ImageShader.d.ts +1 -1
  55. package/lib/module/renderer/components/image/ImageShader.js +0 -4
  56. package/lib/module/renderer/components/image/ImageShader.js.map +1 -1
  57. package/lib/module/skia/types/Canvas.d.ts +2 -2
  58. package/lib/module/skia/types/Canvas.js.map +1 -1
  59. package/lib/module/skia/types/Image/Image.d.ts +18 -0
  60. package/lib/module/skia/types/Image/Image.js +21 -0
  61. package/lib/module/skia/types/Image/Image.js.map +1 -1
  62. package/lib/module/skia/types/Picture/PictureRecorder.d.ts +2 -1
  63. package/lib/module/skia/types/Picture/PictureRecorder.js.map +1 -1
  64. package/lib/module/skia/web/JsiSkCanvas.d.ts +2 -2
  65. package/lib/module/skia/web/JsiSkCanvas.js +15 -2
  66. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  67. package/lib/module/sksg/Container.d.ts +17 -14
  68. package/lib/module/sksg/Container.js +56 -60
  69. package/lib/module/sksg/Container.js.map +1 -1
  70. package/lib/module/sksg/HostConfig.js +4 -9
  71. package/lib/module/sksg/HostConfig.js.map +1 -1
  72. package/lib/module/sksg/Reconciler.js +2 -3
  73. package/lib/module/sksg/Reconciler.js.map +1 -1
  74. package/lib/module/sksg/Recorder/Core.d.ts +42 -37
  75. package/lib/module/sksg/Recorder/Core.js +43 -37
  76. package/lib/module/sksg/Recorder/Core.js.map +1 -1
  77. package/lib/module/sksg/Recorder/Player.js +5 -1
  78. package/lib/module/sksg/Recorder/Player.js.map +1 -1
  79. package/lib/module/sksg/Recorder/Recorder.d.ts +15 -0
  80. package/lib/module/sksg/Recorder/Recorder.js +23 -1
  81. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  82. package/lib/module/sksg/Recorder/Visitor.js +6 -0
  83. package/lib/module/sksg/Recorder/Visitor.js.map +1 -1
  84. package/lib/module/sksg/Recorder/commands/Drawing.js +12 -5
  85. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  86. package/lib/module/sksg/Recorder/commands/Shaders.js +9 -4
  87. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
  88. package/lib/typescript/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -3
  89. package/lib/typescript/lib/commonjs/skia/types/Image/Image.d.ts +21 -0
  90. package/lib/typescript/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
  91. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +15 -10
  92. package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +4 -4
  93. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +21 -2
  94. package/lib/typescript/lib/commonjs/sksg/Recorder/Core.d.ts +1 -0
  95. package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +7 -0
  96. package/lib/typescript/lib/module/mock/index.d.ts +18 -3
  97. package/lib/typescript/lib/module/renderer/components/image/ImageShader.d.ts +1 -3
  98. package/lib/typescript/lib/module/skia/types/Image/Image.d.ts +21 -0
  99. package/lib/typescript/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
  100. package/lib/typescript/lib/module/sksg/Container.d.ts +15 -10
  101. package/lib/typescript/lib/module/sksg/HostConfig.d.ts +4 -4
  102. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +21 -2
  103. package/lib/typescript/lib/module/sksg/Recorder/Core.d.ts +1 -0
  104. package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +7 -0
  105. package/lib/typescript/src/dom/types/Drawings.d.ts +3 -1
  106. package/lib/typescript/src/dom/types/Shaders.d.ts +2 -3
  107. package/lib/typescript/src/renderer/components/image/ImageShader.d.ts +1 -1
  108. package/lib/typescript/src/skia/types/Canvas.d.ts +2 -2
  109. package/lib/typescript/src/skia/types/Image/Image.d.ts +18 -0
  110. package/lib/typescript/src/skia/types/Picture/PictureRecorder.d.ts +2 -1
  111. package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +2 -2
  112. package/lib/typescript/src/sksg/Container.d.ts +17 -14
  113. package/lib/typescript/src/sksg/Recorder/Core.d.ts +42 -37
  114. package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +15 -0
  115. package/libs/apple/libskia.xcframework/Info.plist +35 -2
  116. package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  117. package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  118. package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
  119. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
  120. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  121. package/libs/apple/libskottie.xcframework/Info.plist +36 -3
  122. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  123. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  124. package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
  125. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
  126. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  127. package/libs/apple/libskparagraph.xcframework/Info.plist +40 -7
  128. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  129. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  130. package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
  131. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
  132. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  133. package/libs/apple/libsksg.xcframework/Info.plist +35 -2
  134. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  135. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  136. package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
  137. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
  138. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  139. package/libs/apple/libskshaper.xcframework/Info.plist +33 -0
  140. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  141. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  142. package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
  143. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
  144. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  145. package/libs/apple/libskunicode_core.xcframework/Info.plist +36 -3
  146. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
  147. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  148. package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
  149. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e/libskunicode_core.a +0 -0
  150. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  151. package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +35 -2
  152. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  153. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  154. package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
  155. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  156. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  157. package/libs/apple/libsvg.xcframework/Info.plist +36 -3
  158. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  159. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  160. package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
  161. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
  162. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  163. package/package.json +3 -2
  164. package/react-native-skia.podspec +2 -2
  165. package/src/__tests__/snapshots/animated-images/bird.png +0 -0
  166. package/src/__tests__/snapshots/demos/product.png +0 -0
  167. package/src/__tests__/snapshots/demos/product2.png +0 -0
  168. package/src/__tests__/snapshots/images/bundle-android.png +0 -0
  169. package/src/__tests__/snapshots/images/bundle-ios.png +0 -0
  170. package/src/__tests__/snapshots/images/bundle-node.png +0 -0
  171. package/src/__tests__/snapshots/images/filter.png +0 -0
  172. package/src/dom/types/Drawings.ts +3 -0
  173. package/src/dom/types/Shaders.ts +2 -4
  174. package/src/renderer/__tests__/e2e/Text.spec.tsx +1 -1
  175. package/src/renderer/components/image/ImageShader.tsx +2 -15
  176. package/src/skia/types/Canvas.ts +2 -3
  177. package/src/skia/types/Image/Image.ts +14 -0
  178. package/src/skia/types/Picture/PictureRecorder.ts +2 -1
  179. package/src/skia/web/JsiSkCanvas.ts +50 -29
  180. package/src/sksg/Container.ts +64 -68
  181. package/src/sksg/HostConfig.ts +4 -9
  182. package/src/sksg/Reconciler.ts +3 -3
  183. package/src/sksg/Recorder/Core.ts +10 -0
  184. package/src/sksg/Recorder/Player.ts +5 -1
  185. package/src/sksg/Recorder/Recorder.ts +36 -1
  186. package/src/sksg/Recorder/Visitor.ts +6 -0
  187. package/src/sksg/Recorder/commands/Drawing.ts +33 -4
  188. package/src/sksg/Recorder/commands/Shaders.ts +21 -8
  189. package/lib/commonjs/sksg/Recorder/Recording.d.ts +0 -7
  190. package/lib/commonjs/sksg/Recorder/Recording.js +0 -12
  191. package/lib/commonjs/sksg/Recorder/Recording.js.map +0 -1
  192. package/lib/module/sksg/Recorder/Recording.d.ts +0 -7
  193. package/lib/module/sksg/Recorder/Recording.js +0 -5
  194. package/lib/module/sksg/Recorder/Recording.js.map +0 -1
  195. package/lib/typescript/lib/commonjs/sksg/Recorder/Recording.d.ts +0 -5
  196. package/lib/typescript/lib/module/sksg/Recorder/Recording.d.ts +0 -4
  197. package/lib/typescript/src/sksg/Recorder/Recording.d.ts +0 -7
  198. package/src/sksg/Recorder/Recording.ts +0 -13
@@ -19,9 +19,11 @@ import type {
19
19
  TurbulenceProps,
20
20
  TwoPointConicalGradientProps,
21
21
  } from "../../../dom/types";
22
+ import type { SkShader } from "../../../skia/types";
22
23
  import {
23
24
  BlendMode,
24
25
  FilterMode,
26
+ isCubicSampling,
25
27
  MipmapMode,
26
28
  processUniforms,
27
29
  TileMode,
@@ -179,7 +181,7 @@ const declareTurbulenceShader = (
179
181
 
180
182
  const declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {
181
183
  "worklet";
182
- const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = props;
184
+ const { fit, image, tx, ty, sampling, ...imageShaderProps } = props;
183
185
  if (!image) {
184
186
  return;
185
187
  }
@@ -199,13 +201,24 @@ const declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {
199
201
  const lm = ctx.Skia.Matrix();
200
202
  lm.concat(m3);
201
203
  processTransformProps(lm, imageShaderProps);
202
- const shader = image.makeShaderOptions(
203
- TileMode[enumKey(tx)],
204
- TileMode[enumKey(ty)],
205
- FilterMode[enumKey(fm)],
206
- MipmapMode[enumKey(mm)],
207
- lm
208
- );
204
+ let shader: SkShader;
205
+ if (sampling && isCubicSampling(sampling)) {
206
+ shader = image.makeShaderCubic(
207
+ TileMode[enumKey(tx)],
208
+ TileMode[enumKey(ty)],
209
+ sampling.B,
210
+ sampling.C,
211
+ lm
212
+ );
213
+ } else {
214
+ shader = image.makeShaderCubic(
215
+ TileMode[enumKey(tx)],
216
+ TileMode[enumKey(ty)],
217
+ sampling?.filter ?? FilterMode.Linear,
218
+ sampling?.mipmap ?? MipmapMode.None,
219
+ lm
220
+ );
221
+ }
209
222
  ctx.shaders.push(shader);
210
223
  };
211
224
 
@@ -1,7 +0,0 @@
1
- import type { SkPaint } from "../../skia/types";
2
- import type { Command } from "./Core";
3
- export interface Recording {
4
- commands: Command[];
5
- paintPool: SkPaint[];
6
- }
7
- export declare const createRecording: (commands: Command[]) => Recording;
@@ -1,12 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.createRecording = void 0;
7
- const createRecording = commands => ({
8
- commands,
9
- paintPool: []
10
- });
11
- exports.createRecording = createRecording;
12
- //# sourceMappingURL=Recording.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createRecording","commands","paintPool","exports"],"sources":["Recording.ts"],"sourcesContent":["import type { SkPaint } from \"../../skia/types\";\n\nimport type { Command } from \"./Core\";\n\nexport interface Recording {\n commands: Command[];\n paintPool: SkPaint[];\n}\n\nexport const createRecording = (commands: Command[]): Recording => ({\n commands,\n paintPool: [],\n});\n"],"mappings":";;;;;;AASO,MAAMA,eAAe,GAAIC,QAAmB,KAAiB;EAClEA,QAAQ;EACRC,SAAS,EAAE;AACb,CAAC,CAAC;AAACC,OAAA,CAAAH,eAAA,GAAAA,eAAA","ignoreList":[]}
@@ -1,7 +0,0 @@
1
- import type { SkPaint } from "../../skia/types";
2
- import type { Command } from "./Core";
3
- export interface Recording {
4
- commands: Command[];
5
- paintPool: SkPaint[];
6
- }
7
- export declare const createRecording: (commands: Command[]) => Recording;
@@ -1,5 +0,0 @@
1
- export const createRecording = commands => ({
2
- commands,
3
- paintPool: []
4
- });
5
- //# sourceMappingURL=Recording.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["createRecording","commands","paintPool"],"sources":["Recording.ts"],"sourcesContent":["import type { SkPaint } from \"../../skia/types\";\n\nimport type { Command } from \"./Core\";\n\nexport interface Recording {\n commands: Command[];\n paintPool: SkPaint[];\n}\n\nexport const createRecording = (commands: Command[]): Recording => ({\n commands,\n paintPool: [],\n});\n"],"mappings":"AASA,OAAO,MAAMA,eAAe,GAAIC,QAAmB,KAAiB;EAClEA,QAAQ;EACRC,SAAS,EAAE;AACb,CAAC,CAAC","ignoreList":[]}
@@ -1,5 +0,0 @@
1
- export const __esModule: boolean;
2
- export function createRecording(commands: any): {
3
- commands: any;
4
- paintPool: never[];
5
- };
@@ -1,4 +0,0 @@
1
- export function createRecording(commands: any): {
2
- commands: any;
3
- paintPool: never[];
4
- };
@@ -1,7 +0,0 @@
1
- import type { SkPaint } from "../../skia/types";
2
- import type { Command } from "./Core";
3
- export interface Recording {
4
- commands: Command[];
5
- paintPool: SkPaint[];
6
- }
7
- export declare const createRecording: (commands: Command[]) => Recording;
@@ -1,13 +0,0 @@
1
- import type { SkPaint } from "../../skia/types";
2
-
3
- import type { Command } from "./Core";
4
-
5
- export interface Recording {
6
- commands: Command[];
7
- paintPool: SkPaint[];
8
- }
9
-
10
- export const createRecording = (commands: Command[]): Recording => ({
11
- commands,
12
- paintPool: [],
13
- });