@shopify/react-native-skia 1.8.1 → 1.9.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (203) 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/external/reanimated/useAnimatedImageValue.js +1 -8
  17. package/lib/commonjs/external/reanimated/useAnimatedImageValue.js.map +1 -1
  18. package/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -1
  19. package/lib/commonjs/renderer/components/image/ImageShader.js +0 -4
  20. package/lib/commonjs/renderer/components/image/ImageShader.js.map +1 -1
  21. package/lib/commonjs/skia/core/AnimatedImage.d.ts +1 -1
  22. package/lib/commonjs/skia/core/AnimatedImage.js +1 -1
  23. package/lib/commonjs/skia/core/AnimatedImage.js.map +1 -1
  24. package/lib/commonjs/skia/core/Data.d.ts +1 -1
  25. package/lib/commonjs/skia/core/Data.js +2 -8
  26. package/lib/commonjs/skia/core/Data.js.map +1 -1
  27. package/lib/commonjs/skia/types/Canvas.d.ts +2 -2
  28. package/lib/commonjs/skia/types/Canvas.js.map +1 -1
  29. package/lib/commonjs/skia/types/Image/Image.d.ts +18 -0
  30. package/lib/commonjs/skia/types/Image/Image.js +24 -1
  31. package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
  32. package/lib/commonjs/skia/types/Picture/PictureRecorder.d.ts +2 -1
  33. package/lib/commonjs/skia/types/Picture/PictureRecorder.js.map +1 -1
  34. package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +2 -2
  35. package/lib/commonjs/skia/web/JsiSkCanvas.js +15 -2
  36. package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
  37. package/lib/commonjs/sksg/Container.d.ts +17 -14
  38. package/lib/commonjs/sksg/Container.js +59 -61
  39. package/lib/commonjs/sksg/Container.js.map +1 -1
  40. package/lib/commonjs/sksg/HostConfig.js +4 -9
  41. package/lib/commonjs/sksg/HostConfig.js.map +1 -1
  42. package/lib/commonjs/sksg/Reconciler.js +1 -2
  43. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  44. package/lib/commonjs/sksg/Recorder/Recorder.d.ts +11 -0
  45. package/lib/commonjs/sksg/Recorder/Recorder.js +9 -0
  46. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
  47. package/lib/commonjs/sksg/Recorder/commands/Drawing.js +11 -4
  48. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
  49. package/lib/commonjs/sksg/Recorder/commands/Shaders.js +8 -3
  50. package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -1
  51. package/lib/module/dom/types/Drawings.d.ts +3 -1
  52. package/lib/module/dom/types/Drawings.js.map +1 -1
  53. package/lib/module/dom/types/Shaders.d.ts +2 -3
  54. package/lib/module/dom/types/Shaders.js.map +1 -1
  55. package/lib/module/external/reanimated/useAnimatedImageValue.js +1 -8
  56. package/lib/module/external/reanimated/useAnimatedImageValue.js.map +1 -1
  57. package/lib/module/renderer/components/image/ImageShader.d.ts +1 -1
  58. package/lib/module/renderer/components/image/ImageShader.js +0 -4
  59. package/lib/module/renderer/components/image/ImageShader.js.map +1 -1
  60. package/lib/module/skia/core/AnimatedImage.d.ts +1 -1
  61. package/lib/module/skia/core/AnimatedImage.js +1 -1
  62. package/lib/module/skia/core/AnimatedImage.js.map +1 -1
  63. package/lib/module/skia/core/Data.d.ts +1 -1
  64. package/lib/module/skia/core/Data.js +2 -8
  65. package/lib/module/skia/core/Data.js.map +1 -1
  66. package/lib/module/skia/types/Canvas.d.ts +2 -2
  67. package/lib/module/skia/types/Canvas.js.map +1 -1
  68. package/lib/module/skia/types/Image/Image.d.ts +18 -0
  69. package/lib/module/skia/types/Image/Image.js +21 -0
  70. package/lib/module/skia/types/Image/Image.js.map +1 -1
  71. package/lib/module/skia/types/Picture/PictureRecorder.d.ts +2 -1
  72. package/lib/module/skia/types/Picture/PictureRecorder.js.map +1 -1
  73. package/lib/module/skia/web/JsiSkCanvas.d.ts +2 -2
  74. package/lib/module/skia/web/JsiSkCanvas.js +15 -2
  75. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  76. package/lib/module/sksg/Container.d.ts +17 -14
  77. package/lib/module/sksg/Container.js +56 -59
  78. package/lib/module/sksg/Container.js.map +1 -1
  79. package/lib/module/sksg/HostConfig.js +4 -9
  80. package/lib/module/sksg/HostConfig.js.map +1 -1
  81. package/lib/module/sksg/Reconciler.js +2 -3
  82. package/lib/module/sksg/Reconciler.js.map +1 -1
  83. package/lib/module/sksg/Recorder/Recorder.d.ts +11 -0
  84. package/lib/module/sksg/Recorder/Recorder.js +9 -0
  85. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  86. package/lib/module/sksg/Recorder/commands/Drawing.js +12 -5
  87. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  88. package/lib/module/sksg/Recorder/commands/Shaders.js +9 -4
  89. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
  90. package/lib/typescript/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -3
  91. package/lib/typescript/lib/commonjs/skia/core/AnimatedImage.d.ts +1 -1
  92. package/lib/typescript/lib/commonjs/skia/core/Data.d.ts +1 -1
  93. package/lib/typescript/lib/commonjs/skia/types/Image/Image.d.ts +21 -0
  94. package/lib/typescript/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
  95. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +15 -10
  96. package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +4 -4
  97. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +21 -2
  98. package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +5 -0
  99. package/lib/typescript/lib/module/mock/index.d.ts +19 -4
  100. package/lib/typescript/lib/module/renderer/components/image/ImageShader.d.ts +1 -3
  101. package/lib/typescript/lib/module/skia/core/AnimatedImage.d.ts +1 -1
  102. package/lib/typescript/lib/module/skia/core/Data.d.ts +1 -1
  103. package/lib/typescript/lib/module/skia/types/Image/Image.d.ts +21 -0
  104. package/lib/typescript/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
  105. package/lib/typescript/lib/module/sksg/Container.d.ts +15 -10
  106. package/lib/typescript/lib/module/sksg/HostConfig.d.ts +4 -4
  107. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +21 -2
  108. package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +5 -0
  109. package/lib/typescript/src/dom/types/Drawings.d.ts +3 -1
  110. package/lib/typescript/src/dom/types/Shaders.d.ts +2 -3
  111. package/lib/typescript/src/renderer/components/image/ImageShader.d.ts +1 -1
  112. package/lib/typescript/src/skia/core/AnimatedImage.d.ts +1 -1
  113. package/lib/typescript/src/skia/core/Data.d.ts +1 -1
  114. package/lib/typescript/src/skia/types/Canvas.d.ts +2 -2
  115. package/lib/typescript/src/skia/types/Image/Image.d.ts +18 -0
  116. package/lib/typescript/src/skia/types/Picture/PictureRecorder.d.ts +2 -1
  117. package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +2 -2
  118. package/lib/typescript/src/sksg/Container.d.ts +17 -14
  119. package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +11 -0
  120. package/libs/apple/libskia.xcframework/Info.plist +35 -2
  121. package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  122. package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  123. package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
  124. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
  125. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  126. package/libs/apple/libskottie.xcframework/Info.plist +36 -3
  127. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  128. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  129. package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
  130. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
  131. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  132. package/libs/apple/libskparagraph.xcframework/Info.plist +40 -7
  133. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  134. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  135. package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
  136. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
  137. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  138. package/libs/apple/libsksg.xcframework/Info.plist +35 -2
  139. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  140. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  141. package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
  142. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
  143. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  144. package/libs/apple/libskshaper.xcframework/Info.plist +33 -0
  145. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  146. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  147. package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
  148. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
  149. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  150. package/libs/apple/libskunicode_core.xcframework/Info.plist +36 -3
  151. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
  152. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  153. package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
  154. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e/libskunicode_core.a +0 -0
  155. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  156. package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +35 -2
  157. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  158. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  159. package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
  160. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  161. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  162. package/libs/apple/libsvg.xcframework/Info.plist +36 -3
  163. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  164. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  165. package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
  166. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
  167. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  168. package/package.json +1 -1
  169. package/react-native-skia.podspec +2 -2
  170. package/src/__tests__/snapshots/animated-images/bird.png +0 -0
  171. package/src/__tests__/snapshots/demos/product.png +0 -0
  172. package/src/__tests__/snapshots/demos/product2.png +0 -0
  173. package/src/__tests__/snapshots/images/bundle-android.png +0 -0
  174. package/src/__tests__/snapshots/images/bundle-ios.png +0 -0
  175. package/src/__tests__/snapshots/images/bundle-node.png +0 -0
  176. package/src/__tests__/snapshots/images/filter.png +0 -0
  177. package/src/dom/types/Drawings.ts +3 -0
  178. package/src/dom/types/Shaders.ts +2 -4
  179. package/src/external/reanimated/useAnimatedImageValue.ts +4 -15
  180. package/src/renderer/__tests__/e2e/Text.spec.tsx +1 -1
  181. package/src/renderer/components/image/ImageShader.tsx +2 -15
  182. package/src/skia/core/AnimatedImage.ts +2 -3
  183. package/src/skia/core/Data.ts +3 -9
  184. package/src/skia/types/Canvas.ts +2 -3
  185. package/src/skia/types/Image/Image.ts +14 -0
  186. package/src/skia/types/Picture/PictureRecorder.ts +2 -1
  187. package/src/skia/web/JsiSkCanvas.ts +50 -29
  188. package/src/sksg/Container.ts +64 -67
  189. package/src/sksg/HostConfig.ts +4 -9
  190. package/src/sksg/Reconciler.ts +3 -3
  191. package/src/sksg/Recorder/Recorder.ts +20 -0
  192. package/src/sksg/Recorder/commands/Drawing.ts +33 -4
  193. package/src/sksg/Recorder/commands/Shaders.ts +21 -8
  194. package/lib/commonjs/sksg/Recorder/Recording.d.ts +0 -7
  195. package/lib/commonjs/sksg/Recorder/Recording.js +0 -12
  196. package/lib/commonjs/sksg/Recorder/Recording.js.map +0 -1
  197. package/lib/module/sksg/Recorder/Recording.d.ts +0 -7
  198. package/lib/module/sksg/Recorder/Recording.js +0 -5
  199. package/lib/module/sksg/Recorder/Recording.js.map +0 -1
  200. package/lib/typescript/lib/commonjs/sksg/Recorder/Recording.d.ts +0 -5
  201. package/lib/typescript/lib/module/sksg/Recorder/Recording.d.ts +0 -4
  202. package/lib/typescript/src/sksg/Recorder/Recording.d.ts +0 -7
  203. 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
- });