@shopify/react-native-skia 0.1.213 → 0.1.214

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 (245) hide show
  1. package/android/cpp/rnskia-android/SkiaOpenGLHelper.h +3 -2
  2. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +9 -2
  3. package/cpp/api/JsiSkSurface.h +4 -1
  4. package/cpp/skia/include/android/GrAHardwareBufferUtils.h +99 -0
  5. package/cpp/skia/include/android/SkHeifDecoder.h +10 -3
  6. package/cpp/skia/include/codec/SkAvifDecoder.h +1 -0
  7. package/cpp/skia/include/codec/SkBmpDecoder.h +1 -0
  8. package/cpp/skia/include/codec/SkCodec.h +4 -3
  9. package/cpp/skia/include/codec/SkEncodedImageFormat.h +0 -3
  10. package/cpp/skia/include/codec/SkGifDecoder.h +1 -0
  11. package/cpp/skia/include/codec/SkIcoDecoder.h +1 -0
  12. package/cpp/skia/include/codec/SkJpegDecoder.h +1 -0
  13. package/cpp/skia/include/codec/SkJpegxlDecoder.h +1 -0
  14. package/cpp/skia/include/codec/SkPngDecoder.h +1 -0
  15. package/cpp/skia/include/codec/SkRawDecoder.h +1 -0
  16. package/cpp/skia/include/codec/SkWbmpDecoder.h +1 -0
  17. package/cpp/skia/include/codec/SkWebpDecoder.h +1 -0
  18. package/cpp/skia/include/config/SkUserConfig.h +0 -2
  19. package/cpp/skia/include/core/SkBitmap.h +8 -8
  20. package/cpp/skia/include/core/SkCanvas.h +37 -50
  21. package/cpp/skia/include/core/SkCapabilities.h +2 -7
  22. package/cpp/skia/include/core/SkColor.h +1 -1
  23. package/cpp/skia/include/core/SkColorFilter.h +6 -0
  24. package/cpp/skia/include/core/SkColorTable.h +3 -0
  25. package/cpp/skia/include/core/SkColorType.h +2 -0
  26. package/cpp/skia/include/core/SkContourMeasure.h +12 -8
  27. package/cpp/skia/include/core/SkDocument.h +1 -0
  28. package/cpp/skia/include/core/SkFont.h +11 -2
  29. package/cpp/skia/include/core/SkFontMgr.h +2 -3
  30. package/cpp/skia/include/core/SkGraphics.h +3 -13
  31. package/cpp/skia/include/core/SkImage.h +57 -111
  32. package/cpp/skia/include/core/SkImageFilter.h +6 -1
  33. package/cpp/skia/include/core/SkImageGenerator.h +8 -0
  34. package/cpp/skia/include/core/SkImageInfo.h +0 -2
  35. package/cpp/skia/include/core/SkM44.h +7 -3
  36. package/cpp/skia/include/core/SkMallocPixelRef.h +4 -1
  37. package/cpp/skia/include/core/SkMatrix.h +17 -17
  38. package/cpp/skia/include/core/SkMesh.h +71 -61
  39. package/cpp/skia/include/core/SkMilestone.h +1 -1
  40. package/cpp/skia/include/core/SkOverdrawCanvas.h +25 -0
  41. package/cpp/skia/include/core/SkPaint.h +1 -1
  42. package/cpp/skia/include/core/SkPath.h +12 -4
  43. package/cpp/skia/include/core/SkPathMeasure.h +3 -4
  44. package/cpp/skia/include/core/SkPicture.h +19 -6
  45. package/cpp/skia/include/core/SkPictureRecorder.h +6 -6
  46. package/cpp/skia/include/core/SkPixmap.h +2 -3
  47. package/cpp/skia/include/core/SkRRect.h +1 -1
  48. package/cpp/skia/include/core/SkRect.h +107 -110
  49. package/cpp/skia/include/core/SkRefCnt.h +1 -1
  50. package/cpp/skia/include/core/SkRegion.h +7 -1
  51. package/cpp/skia/include/core/SkSerialProcs.h +14 -0
  52. package/cpp/skia/include/core/SkShader.h +9 -0
  53. package/cpp/skia/include/core/SkStream.h +9 -9
  54. package/cpp/skia/include/core/SkString.h +1 -1
  55. package/cpp/skia/include/core/SkSurface.h +14 -25
  56. package/cpp/skia/include/core/SkTextBlob.h +17 -4
  57. package/cpp/skia/include/core/SkTiledImageUtils.h +28 -0
  58. package/cpp/skia/include/core/SkTypeface.h +7 -2
  59. package/cpp/skia/include/core/SkTypes.h +4 -12
  60. package/cpp/skia/include/docs/SkPDFDocument.h +17 -3
  61. package/cpp/skia/include/effects/SkImageFilters.h +73 -24
  62. package/cpp/skia/include/effects/SkRuntimeEffect.h +20 -51
  63. package/cpp/skia/include/gpu/GpuTypes.h +13 -0
  64. package/cpp/skia/include/gpu/GrBackendSurface.h +95 -262
  65. package/cpp/skia/include/gpu/GrContextOptions.h +7 -1
  66. package/cpp/skia/include/gpu/GrDirectContext.h +138 -128
  67. package/cpp/skia/include/gpu/GrRecordingContext.h +9 -4
  68. package/cpp/skia/include/gpu/GrSurfaceInfo.h +0 -24
  69. package/cpp/skia/include/gpu/GrTypes.h +16 -1
  70. package/cpp/skia/include/gpu/GrYUVABackendTextures.h +4 -4
  71. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -2
  72. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +44 -12
  73. package/cpp/skia/include/gpu/ganesh/SkMeshGanesh.h +57 -0
  74. package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +2 -1
  75. package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +58 -0
  76. package/cpp/skia/include/gpu/ganesh/gl/GrGLDirectContext.h +29 -0
  77. package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +1 -1
  78. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +67 -0
  79. package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -2
  80. package/cpp/skia/include/gpu/graphite/BackendTexture.h +14 -3
  81. package/cpp/skia/include/gpu/graphite/Context.h +93 -13
  82. package/cpp/skia/include/gpu/graphite/ContextOptions.h +19 -8
  83. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +23 -0
  84. package/cpp/skia/include/gpu/graphite/Image.h +56 -0
  85. package/cpp/skia/include/gpu/graphite/ImageProvider.h +5 -0
  86. package/cpp/skia/include/gpu/graphite/Recorder.h +26 -9
  87. package/cpp/skia/include/gpu/graphite/Recording.h +7 -5
  88. package/cpp/skia/include/gpu/graphite/TextureInfo.h +8 -0
  89. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +2 -2
  90. package/cpp/skia/include/gpu/mtl/GrMtlTypes.h +2 -2
  91. package/cpp/skia/include/gpu/vk/GrVkTypes.h +4 -3
  92. package/cpp/skia/include/ports/SkCFObject.h +1 -1
  93. package/cpp/skia/include/private/SkGainmapInfo.h +4 -13
  94. package/cpp/skia/include/private/SkJpegGainmapEncoder.h +1 -24
  95. package/cpp/skia/include/private/SkWeakRefCnt.h +1 -1
  96. package/cpp/skia/include/private/base/SkAnySubclass.h +73 -0
  97. package/cpp/skia/include/private/base/SkAssert.h +106 -12
  98. package/cpp/skia/include/private/base/SkAttributes.h +0 -12
  99. package/cpp/skia/include/private/base/SkFeatures.h +0 -3
  100. package/cpp/skia/include/private/base/SkFloatingPoint.h +58 -105
  101. package/cpp/skia/include/private/base/SkSpan_impl.h +18 -12
  102. package/cpp/skia/include/private/base/SkTArray.h +22 -17
  103. package/cpp/skia/include/private/base/SkTDArray.h +5 -6
  104. package/cpp/skia/include/private/base/SkTemplates.h +50 -30
  105. package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +5 -2
  106. package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +2 -2
  107. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +13 -8
  108. package/cpp/skia/include/private/chromium/SkDiscardableMemory.h +1 -1
  109. package/cpp/skia/include/private/chromium/SkImageChromium.h +16 -3
  110. package/cpp/skia/include/private/chromium/Slug.h +11 -4
  111. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +1 -1
  112. package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +6 -9
  113. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +29 -13
  114. package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +2 -28
  115. package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +34 -0
  116. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +6 -0
  117. package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +8 -0
  118. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +10 -0
  119. package/cpp/skia/include/utils/SkBase64.h +2 -2
  120. package/cpp/skia/include/utils/SkNWayCanvas.h +1 -11
  121. package/cpp/skia/include/utils/SkNoDrawCanvas.h +0 -2
  122. package/cpp/skia/include/utils/SkPaintFilterCanvas.h +1 -2
  123. package/cpp/skia/include/utils/SkShadowUtils.h +15 -1
  124. package/cpp/skia/include/utils/SkTextUtils.h +1 -1
  125. package/cpp/skia/modules/skparagraph/include/Paragraph.h +107 -1
  126. package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +3 -2
  127. package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +4 -0
  128. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +5 -3
  129. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +4 -0
  130. package/cpp/skia/src/core/SkChecksum.h +2 -1
  131. package/cpp/skia/src/core/SkPathPriv.h +1 -1
  132. package/cpp/skia/src/core/SkTHash.h +19 -9
  133. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +3 -1
  134. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +1 -1
  135. package/lib/commonjs/dom/nodes/datatypes/Rect.js +5 -1
  136. package/lib/commonjs/dom/nodes/datatypes/Rect.js.map +1 -1
  137. package/lib/commonjs/external/reanimated/index.d.ts +1 -0
  138. package/lib/commonjs/external/reanimated/index.js +13 -0
  139. package/lib/commonjs/external/reanimated/index.js.map +1 -1
  140. package/lib/commonjs/external/reanimated/moduleWrapper.js +3 -8
  141. package/lib/commonjs/external/reanimated/moduleWrapper.js.map +1 -1
  142. package/lib/commonjs/external/reanimated/renderHelpers.js +46 -1
  143. package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
  144. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +2 -0
  145. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js +26 -0
  146. package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js.map +1 -0
  147. package/lib/commonjs/external/reanimated/useSharedValueEffect.js +2 -5
  148. package/lib/commonjs/external/reanimated/useSharedValueEffect.js.map +1 -1
  149. package/lib/commonjs/skia/types/MaskFilter.js +4 -0
  150. package/lib/commonjs/skia/types/MaskFilter.js.map +1 -1
  151. package/lib/commonjs/skia/web/JsiSkPicture.js +2 -1
  152. package/lib/commonjs/skia/web/JsiSkPicture.js.map +1 -1
  153. package/lib/commonjs/views/SkiaBaseWebView.js +1 -1
  154. package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
  155. package/lib/commonjs/views/types.js +3 -0
  156. package/lib/commonjs/views/types.js.map +1 -1
  157. package/lib/module/dom/nodes/datatypes/Rect.js +5 -1
  158. package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
  159. package/lib/module/external/reanimated/index.d.ts +1 -0
  160. package/lib/module/external/reanimated/index.js +1 -0
  161. package/lib/module/external/reanimated/index.js.map +1 -1
  162. package/lib/module/external/reanimated/moduleWrapper.js +1 -9
  163. package/lib/module/external/reanimated/moduleWrapper.js.map +1 -1
  164. package/lib/module/external/reanimated/renderHelpers.js +48 -2
  165. package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
  166. package/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +2 -0
  167. package/lib/module/external/reanimated/useDerivedValueOnJS.js +15 -0
  168. package/lib/module/external/reanimated/useDerivedValueOnJS.js.map +1 -0
  169. package/lib/module/external/reanimated/useSharedValueEffect.js +3 -6
  170. package/lib/module/external/reanimated/useSharedValueEffect.js.map +1 -1
  171. package/lib/module/skia/types/MaskFilter.js +3 -0
  172. package/lib/module/skia/types/MaskFilter.js.map +1 -1
  173. package/lib/module/views/types.js +3 -0
  174. package/lib/module/views/types.js.map +1 -1
  175. package/lib/typescript/src/external/reanimated/index.d.ts +1 -0
  176. package/lib/typescript/src/external/reanimated/useDerivedValueOnJS.d.ts +2 -0
  177. package/libs/android/arm64-v8a/libskia.a +0 -0
  178. package/libs/android/arm64-v8a/libskottie.a +0 -0
  179. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  180. package/libs/android/arm64-v8a/libsksg.a +0 -0
  181. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  182. package/libs/android/arm64-v8a/libskunicode.a +0 -0
  183. package/libs/android/arm64-v8a/libsvg.a +0 -0
  184. package/libs/android/armeabi-v7a/libskia.a +0 -0
  185. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  186. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  187. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  188. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  189. package/libs/android/armeabi-v7a/libskunicode.a +0 -0
  190. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  191. package/libs/android/x86/libskia.a +0 -0
  192. package/libs/android/x86/libskottie.a +0 -0
  193. package/libs/android/x86/libskparagraph.a +0 -0
  194. package/libs/android/x86/libsksg.a +0 -0
  195. package/libs/android/x86/libskshaper.a +0 -0
  196. package/libs/android/x86/libskunicode.a +0 -0
  197. package/libs/android/x86/libsvg.a +0 -0
  198. package/libs/android/x86_64/libskia.a +0 -0
  199. package/libs/android/x86_64/libskottie.a +0 -0
  200. package/libs/android/x86_64/libskparagraph.a +0 -0
  201. package/libs/android/x86_64/libsksg.a +0 -0
  202. package/libs/android/x86_64/libskshaper.a +0 -0
  203. package/libs/android/x86_64/libskunicode.a +0 -0
  204. package/libs/android/x86_64/libsvg.a +0 -0
  205. package/libs/ios/libskia.xcframework/Info.plist +5 -5
  206. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  207. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  208. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  209. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  210. package/libs/ios/libskparagraph.xcframework/Info.plist +5 -5
  211. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  212. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  213. package/libs/ios/libsksg.xcframework/Info.plist +5 -5
  214. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  215. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  216. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  217. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  218. package/libs/ios/libskunicode.xcframework/Info.plist +5 -5
  219. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
  220. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
  221. package/libs/ios/libsvg.xcframework/Info.plist +5 -5
  222. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  223. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  224. package/package.json +1 -1
  225. package/react-native-skia.podspec +1 -1
  226. package/src/dom/nodes/datatypes/Rect.ts +6 -2
  227. package/src/external/reanimated/index.ts +1 -0
  228. package/src/external/reanimated/moduleWrapper.ts +6 -10
  229. package/src/external/reanimated/renderHelpers.ts +41 -1
  230. package/src/external/reanimated/useDerivedValueOnJS.ts +24 -0
  231. package/src/external/reanimated/useSharedValueEffect.ts +4 -7
  232. package/cpp/skia/include/core/SkDeferredDisplayList.h +0 -15
  233. package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +0 -15
  234. package/cpp/skia/include/core/SkPromiseImageTexture.h +0 -20
  235. package/cpp/skia/include/core/SkSurfaceCharacterization.h +0 -15
  236. package/cpp/skia/include/core/SkTime.h +0 -63
  237. package/cpp/skia/include/effects/SkOpPathEffect.h +0 -43
  238. package/cpp/skia/include/effects/SkStrokeAndFillPathEffect.h +0 -28
  239. package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +0 -32
  240. package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +0 -95
  241. package/cpp/skia/include/private/SkBitmaskEnum.h +0 -59
  242. package/cpp/skia/include/private/SkSLDefines.h +0 -64
  243. package/cpp/skia/include/private/SkShadowFlags.h +0 -27
  244. package/cpp/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h +0 -26
  245. /package/cpp/skia/{include/private/base → src/core}/SkPathEnums.h +0 -0
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
17
17
  # optional - use expanded license entry instead:
18
18
  # s.license = { :type => "MIT", :file => "LICENSE" }
19
19
  s.authors = { "Your Name" => "yourname@email.com" }
20
- s.platforms = { :ios => "9.0" }
20
+ s.platforms = { :ios => "12.0" }
21
21
  s.source = { :git => "https://github.com/shopify/react-native-skia/react-native-skia.git", :tag => "#{s.version}" }
22
22
 
23
23
  s.requires_arc = true
@@ -4,8 +4,12 @@ import type { RectCtor, RectDef, RRectCtor, RRectDef } from "../../types";
4
4
 
5
5
  import { processRadius } from "./Radius";
6
6
 
7
- export const isEdge = (pos: Vector, b: SkRect) =>
8
- pos.x === b.x || pos.y === b.y || pos.x === b.width || pos.y === b.height;
7
+ export const isEdge = (pos: Vector, b: SkRect) => {
8
+ "worklet";
9
+ return (
10
+ pos.x === b.x || pos.y === b.y || pos.x === b.width || pos.y === b.height
11
+ );
12
+ };
9
13
 
10
14
  // We have an issue to check property existence on JSI backed instances
11
15
  const isRRectCtor = (def: RRectDef): def is RRectCtor =>
@@ -1,2 +1,3 @@
1
1
  export * from "./useSharedValueEffect";
2
+ export * from "./useDerivedValueOnJS";
2
3
  export * from "./renderHelpers";
@@ -36,14 +36,6 @@ export function throwOnMissingReanimated() {
36
36
  }
37
37
  }
38
38
 
39
- function throwOnMissingReanimated3() {
40
- if (!HAS_REANIMATED3) {
41
- throw new Error(
42
- `Reanimated version ${reanimatedVersion} is not supported, please upgrade to 3.0.0 or newer.`
43
- );
44
- }
45
- }
46
-
47
39
  export const useSharedValue =
48
40
  Reanimated2?.useSharedValue ||
49
41
  ((value: number) => useMemo(() => ({ value }), [value]));
@@ -56,6 +48,10 @@ export const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated;
56
48
  export const isSharedValue = <T>(
57
49
  value: unknown
58
50
  ): value is SharedValueType<T> => {
59
- throwOnMissingReanimated3();
60
- return !!value && Reanimated3.isSharedValue(value);
51
+ return (
52
+ !!value &&
53
+ (Reanimated3
54
+ ? Reanimated3.isSharedValue(value)
55
+ : (value as any).value !== undefined)
56
+ );
61
57
  };
@@ -9,12 +9,14 @@ import {
9
9
  stopMapper,
10
10
  isSharedValue,
11
11
  HAS_REANIMATED3,
12
+ HAS_REANIMATED2,
13
+ runOnJS,
12
14
  } from "./moduleWrapper";
13
15
 
14
16
  const _bindings = new WeakMap<Node<unknown>, unknown>();
15
17
 
16
18
  export function extractReanimatedProps(props: AnimatedProps<any>) {
17
- if (!HAS_REANIMATED3) {
19
+ if (!HAS_REANIMATED3 && !HAS_REANIMATED2) {
18
20
  return [props, {}];
19
21
  }
20
22
  const reanimatedProps = {} as AnimatedProps<any>;
@@ -34,11 +36,49 @@ export function extractReanimatedProps(props: AnimatedProps<any>) {
34
36
  return [otherProps, reanimatedProps];
35
37
  }
36
38
 
39
+ function bindReanimatedProps2(
40
+ container: Container,
41
+ node: Node<any>,
42
+ reanimatedProps: AnimatedProps<any>
43
+ ) {
44
+ const sharedValues = Object.values(reanimatedProps);
45
+ const previousMapperId = _bindings.get(node);
46
+ if (previousMapperId !== undefined) {
47
+ stopMapper(previousMapperId);
48
+ }
49
+ if (sharedValues.length > 0) {
50
+ const viewId = container.getNativeId();
51
+ const { SkiaViewApi } = global;
52
+ const updateProps = () => {
53
+ for (const propName in reanimatedProps) {
54
+ node && node.setProp(propName, reanimatedProps[propName].value);
55
+ }
56
+ // On React Native we use the SkiaViewApi to redraw because it can
57
+ // run on the worklet thread (container.redraw can't)
58
+ // if SkiaViewApi is undefined, we are on web and container.redraw()
59
+ // can safely be invoked
60
+ if (SkiaViewApi) {
61
+ SkiaViewApi.requestRedraw(viewId);
62
+ } else {
63
+ container.redraw();
64
+ }
65
+ };
66
+ const mapperId = startMapper(() => {
67
+ "worklet";
68
+ runOnJS(updateProps)();
69
+ }, sharedValues);
70
+ _bindings.set(node, mapperId);
71
+ }
72
+ }
73
+
37
74
  export function bindReanimatedProps(
38
75
  container: Container,
39
76
  node: Node<any>,
40
77
  reanimatedProps: AnimatedProps<any>
41
78
  ) {
79
+ if (HAS_REANIMATED2) {
80
+ return bindReanimatedProps2(container, node, reanimatedProps);
81
+ }
42
82
  if (!HAS_REANIMATED3) {
43
83
  return;
44
84
  }
@@ -0,0 +1,24 @@
1
+ import { useEffect, type DependencyList } from "react";
2
+
3
+ import {
4
+ useSharedValue,
5
+ runOnJS,
6
+ startMapper,
7
+ stopMapper,
8
+ } from "./moduleWrapper";
9
+
10
+ export const useDerivedValueOnJS = (
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ fn: () => any,
13
+ deps?: DependencyList
14
+ ) => {
15
+ const value = useSharedValue(fn());
16
+ useEffect(() => {
17
+ const mapperId = startMapper(() => {
18
+ "worklet";
19
+ runOnJS(fn)();
20
+ }, deps);
21
+ return () => stopMapper(mapperId);
22
+ }, [deps, fn]);
23
+ return value;
24
+ };
@@ -8,7 +8,6 @@ import {
8
8
  runOnJS,
9
9
  startMapper,
10
10
  stopMapper,
11
- HAS_REANIMATED3,
12
11
  } from "./moduleWrapper";
13
12
 
14
13
  /**
@@ -22,12 +21,10 @@ export const useSharedValueEffect = <T = number>(
22
21
  value: SharedValueType<T>,
23
22
  ...values: SharedValueType<T>[]
24
23
  ) => {
25
- if (HAS_REANIMATED3) {
26
- console.warn(
27
- `useSharedValueEffect() is deprecated with Reanimated 3, you can use Reanimated values directly.
28
- Learn more at https://shopify.github.io/react-native-skia/docs/animations/reanimated.`
29
- );
30
- }
24
+ console.warn(
25
+ `useSharedValueEffect() is deprecated and will be removed in the next release
26
+ Learn more at https://shopify.github.io/react-native-skia/docs/animations/animations.`
27
+ );
31
28
  const input = useSharedValue(0);
32
29
 
33
30
  useEffect(() => {
@@ -1,15 +0,0 @@
1
- /*
2
- * Copyright 2017 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- // TODO(kjlubick, robertphillips) migrate Chromium to use the new location and name
9
- #include "include/private/chromium/GrDeferredDisplayList.h" // IWYU pragma: export
10
-
11
- class GrDeferredDisplayListRecorder;
12
- class GrSurfaceCharacterization;
13
- using SkDeferredDisplayList = GrDeferredDisplayList;
14
- using SkDeferredDisplayListRecorder = GrDeferredDisplayListRecorder;
15
- using SkSurfaceCharacterization = GrSurfaceCharacterization;
@@ -1,15 +0,0 @@
1
- /*
2
- * Copyright 2017 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- // TODO(kjlubick, robertphillips) migrate Chromium to use the new location
9
- #include "include/private/chromium/GrDeferredDisplayListRecorder.h" // IWYU pragma: export
10
-
11
- class GrDeferredDisplayList;
12
- class GrSurfaceCharacterization;
13
- using SkDeferredDisplayList = GrDeferredDisplayList;
14
- using SkDeferredDisplayListRecorder = GrDeferredDisplayListRecorder;
15
- using SkSurfaceCharacterization = GrSurfaceCharacterization;
@@ -1,20 +0,0 @@
1
- /*
2
- * Copyright 2017 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- #ifndef SkPromiseImageTexture_DEFINED
9
- #define SkPromiseImageTexture_DEFINED
10
-
11
- #include "include/core/SkTypes.h"
12
-
13
- // TODO(kjlubick) remove this shim header after clients are migrated
14
- #if defined(SK_GANESH)
15
- #include "include/private/chromium/GrPromiseImageTexture.h"
16
-
17
- typedef GrPromiseImageTexture SkPromiseImageTexture;
18
- #endif
19
-
20
- #endif // SkPromiseImageTexture_DEFINED
@@ -1,15 +0,0 @@
1
- /*
2
- * Copyright 2017 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- // TODO(kjlubick, robertphillips) migrate Chromium to use the new location and name
9
- #include "include/private/chromium/GrSurfaceCharacterization.h" // IWYU pragma: export
10
-
11
- class GrDeferredDisplayList;
12
- class GrDeferredDisplayListRecorder;
13
- using SkDeferredDisplayList = GrDeferredDisplayList;
14
- using SkDeferredDisplayListRecorder = GrDeferredDisplayListRecorder;
15
- using SkSurfaceCharacterization = GrSurfaceCharacterization;
@@ -1,63 +0,0 @@
1
-
2
- /*
3
- * Copyright 2006 The Android Open Source Project
4
- *
5
- * Use of this source code is governed by a BSD-style license that can be
6
- * found in the LICENSE file.
7
- */
8
-
9
-
10
- #ifndef SkTime_DEFINED
11
- #define SkTime_DEFINED
12
-
13
- #include "include/core/SkTypes.h"
14
- #include "include/private/base/SkMacros.h"
15
-
16
- #include <cinttypes>
17
-
18
- class SkString;
19
-
20
- /** \class SkTime
21
- Platform-implemented utilities to return time of day, and millisecond counter.
22
- */
23
- class SK_API SkTime {
24
- public:
25
- struct DateTime {
26
- int16_t fTimeZoneMinutes; // The number of minutes that GetDateTime()
27
- // is ahead of or behind UTC.
28
- uint16_t fYear; //!< e.g. 2005
29
- uint8_t fMonth; //!< 1..12
30
- uint8_t fDayOfWeek; //!< 0..6, 0==Sunday
31
- uint8_t fDay; //!< 1..31
32
- uint8_t fHour; //!< 0..23
33
- uint8_t fMinute; //!< 0..59
34
- uint8_t fSecond; //!< 0..59
35
-
36
- void toISO8601(SkString* dst) const;
37
- };
38
- static void GetDateTime(DateTime*);
39
-
40
- static double GetSecs() { return GetNSecs() * 1e-9; }
41
- static double GetMSecs() { return GetNSecs() * 1e-6; }
42
- static double GetNSecs();
43
- };
44
-
45
- ///////////////////////////////////////////////////////////////////////////////
46
-
47
- class SkAutoTime {
48
- public:
49
- // The label is not deep-copied, so its address must remain valid for the
50
- // lifetime of this object
51
- SkAutoTime(const char* label = nullptr)
52
- : fLabel(label)
53
- , fNow(SkTime::GetMSecs()) {}
54
- ~SkAutoTime() {
55
- uint64_t dur = static_cast<uint64_t>(SkTime::GetMSecs() - fNow);
56
- SkDebugf("%s %" PRIu64 "\n", fLabel ? fLabel : "", dur);
57
- }
58
- private:
59
- const char* fLabel;
60
- double fNow;
61
- };
62
-
63
- #endif
@@ -1,43 +0,0 @@
1
- /*
2
- * Copyright 2018 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- #ifndef SkOpPathEffect_DEFINED
9
- #define SkOpPathEffect_DEFINED
10
-
11
- #include "include/core/SkPaint.h"
12
- #include "include/core/SkRefCnt.h"
13
- #include "include/core/SkScalar.h"
14
- #include "include/core/SkTypes.h"
15
- #include "include/pathops/SkPathOps.h"
16
-
17
- class SkMatrix;
18
- class SkPathEffect;
19
-
20
- class SK_API SkMergePathEffect {
21
- public:
22
- /* Defers to two other patheffects, and then combines their outputs using the specified op.
23
- * e.g.
24
- * result = output_one op output_two
25
- *
26
- * If either one or two is nullptr, then the original path is passed through to the op.
27
- */
28
- static sk_sp<SkPathEffect> Make(sk_sp<SkPathEffect> one, sk_sp<SkPathEffect> two, SkPathOp op);
29
- };
30
-
31
- class SK_API SkMatrixPathEffect {
32
- public:
33
- static sk_sp<SkPathEffect> MakeTranslate(SkScalar dx, SkScalar dy);
34
- static sk_sp<SkPathEffect> Make(const SkMatrix&);
35
- };
36
-
37
- class SK_API SkStrokePathEffect {
38
- public:
39
- static sk_sp<SkPathEffect> Make(SkScalar width, SkPaint::Join, SkPaint::Cap,
40
- SkScalar miter = 4);
41
- };
42
-
43
- #endif
@@ -1,28 +0,0 @@
1
- /*
2
- * Copyright 2020 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- #ifndef SkStrokeAndFillPathEffect_DEFINED
9
- #define SkStrokeAndFillPathEffect_DEFINED
10
-
11
- #include "include/core/SkPaint.h"
12
- #include "include/core/SkPathEffect.h"
13
- #include "include/pathops/SkPathOps.h"
14
-
15
- class SK_API SkStrokeAndFillPathEffect {
16
- public:
17
- /* If the paint is set to stroke, this will add the stroke and fill geometries
18
- * together (hoping that the winding-direction works out).
19
- *
20
- * If the paint is set to fill, this effect is ignored.
21
- *
22
- * Note that if the paint is set to stroke and the stroke-width is 0, then
23
- * this will turn the geometry into just a fill.
24
- */
25
- static sk_sp<SkPathEffect> Make();
26
- };
27
-
28
- #endif
@@ -1,32 +0,0 @@
1
- /*
2
- * Copyright 2020 Google LLC
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- #ifndef GrBackendSurfaceMutableState_DEFINED
9
- #define GrBackendSurfaceMutableState_DEFINED
10
-
11
- #include "include/gpu/MutableTextureState.h"
12
-
13
- #ifdef SK_VULKAN
14
- #include "include/private/gpu/vk/SkiaVulkan.h"
15
-
16
- #include <cstdint>
17
- #endif
18
-
19
- class GrBackendSurfaceMutableState : public skgpu::MutableTextureState {
20
- public:
21
- GrBackendSurfaceMutableState() = default;
22
-
23
- #ifdef SK_VULKAN
24
- GrBackendSurfaceMutableState(VkImageLayout layout, uint32_t queueFamilyIndex)
25
- : skgpu::MutableTextureState(layout, queueFamilyIndex) {}
26
- #endif
27
-
28
- GrBackendSurfaceMutableState(const GrBackendSurfaceMutableState& that)
29
- : skgpu::MutableTextureState(that) {}
30
- };
31
-
32
- #endif
@@ -1,95 +0,0 @@
1
- /*
2
- * Copyright 2019 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- #ifndef GrDawnTypes_DEFINED
9
- #define GrDawnTypes_DEFINED
10
-
11
- #include "include/gpu/GpuTypes.h"
12
-
13
- #ifdef Always
14
- #undef Always
15
- static constexpr int Always = 2;
16
- #endif
17
- #ifdef Success
18
- #undef Success
19
- static constexpr int Success = 0;
20
- #endif
21
- #ifdef None
22
- #undef None
23
- static constexpr int None = 0L;
24
- #endif
25
- #include "webgpu/webgpu_cpp.h" // IWYU pragma: export
26
-
27
- struct GrDawnTextureInfo {
28
- wgpu::Texture fTexture;
29
- wgpu::TextureFormat fFormat;
30
- uint32_t fLevelCount;
31
- GrDawnTextureInfo() : fTexture(nullptr), fFormat(), fLevelCount(0) {
32
- }
33
- GrDawnTextureInfo(const GrDawnTextureInfo& other)
34
- : fTexture(other.fTexture)
35
- , fFormat(other.fFormat)
36
- , fLevelCount(other.fLevelCount) {
37
- }
38
- GrDawnTextureInfo& operator=(const GrDawnTextureInfo& other) {
39
- fTexture = other.fTexture;
40
- fFormat = other.fFormat;
41
- fLevelCount = other.fLevelCount;
42
- return *this;
43
- }
44
- bool operator==(const GrDawnTextureInfo& other) const {
45
- return fTexture.Get() == other.fTexture.Get() &&
46
- fFormat == other.fFormat &&
47
- fLevelCount == other.fLevelCount;
48
- }
49
- };
50
-
51
- // GrDawnRenderTargetInfo holds a reference to a (1-mip) TextureView. This means that, for now,
52
- // GrDawnRenderTarget is suitable for rendering, but not readPixels() or writePixels(). Also,
53
- // backdrop filters and certain blend modes requiring copying the destination framebuffer
54
- // will not work.
55
- struct GrDawnRenderTargetInfo {
56
- wgpu::TextureView fTextureView;
57
- wgpu::TextureFormat fFormat;
58
- uint32_t fLevelCount;
59
- GrDawnRenderTargetInfo() : fTextureView(nullptr), fFormat(), fLevelCount(0) {
60
- }
61
- GrDawnRenderTargetInfo(const GrDawnRenderTargetInfo& other)
62
- : fTextureView(other.fTextureView)
63
- , fFormat(other.fFormat)
64
- , fLevelCount(other.fLevelCount) {
65
- }
66
- explicit GrDawnRenderTargetInfo(const GrDawnTextureInfo& texInfo)
67
- : fFormat(texInfo.fFormat)
68
- , fLevelCount(1) {
69
- wgpu::TextureViewDescriptor desc;
70
- desc.format = texInfo.fFormat;
71
- desc.mipLevelCount = 1;
72
- fTextureView = texInfo.fTexture.CreateView(&desc);
73
- }
74
- GrDawnRenderTargetInfo& operator=(const GrDawnRenderTargetInfo& other) {
75
- fTextureView = other.fTextureView;
76
- fFormat = other.fFormat;
77
- fLevelCount = other.fLevelCount;
78
- return *this;
79
- }
80
- bool operator==(const GrDawnRenderTargetInfo& other) const {
81
- return fTextureView.Get() == other.fTextureView.Get() &&
82
- fFormat == other.fFormat &&
83
- fLevelCount == other.fLevelCount;
84
- }
85
- };
86
-
87
- struct GrDawnSurfaceInfo {
88
- uint32_t fSampleCount = 1;
89
- uint32_t fLevelCount = 0;
90
- skgpu::Protected fProtected = skgpu::Protected::kNo;
91
-
92
- wgpu::TextureFormat fFormat;
93
- };
94
-
95
- #endif
@@ -1,59 +0,0 @@
1
- /*
2
- * Copyright 2016 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
- #ifndef SkEnumOperators_DEFINED
8
- #define SkEnumOperators_DEFINED
9
-
10
- #include <type_traits>
11
-
12
- namespace sknonstd {
13
- template <typename T> struct is_bitmask_enum : std::false_type {};
14
-
15
- template <typename E>
16
- std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, bool> constexpr Any(E e) {
17
- return static_cast<std::underlying_type_t<E>>(e) != 0;
18
- }
19
- } // namespace sknonstd
20
-
21
- template <typename E>
22
- std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E> constexpr operator|(E l, E r) {
23
- using U = std::underlying_type_t<E>;
24
- return static_cast<E>(static_cast<U>(l) | static_cast<U>(r));
25
- }
26
-
27
- template <typename E>
28
- std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E&> constexpr operator|=(E& l, E r) {
29
- return l = l | r;
30
- }
31
-
32
- template <typename E>
33
- std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E> constexpr operator&(E l, E r) {
34
- using U = std::underlying_type_t<E>;
35
- return static_cast<E>(static_cast<U>(l) & static_cast<U>(r));
36
- }
37
-
38
- template <typename E>
39
- std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E&> constexpr operator&=(E& l, E r) {
40
- return l = l & r;
41
- }
42
-
43
- template <typename E>
44
- std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E> constexpr operator^(E l, E r) {
45
- using U = std::underlying_type_t<E>;
46
- return static_cast<E>(static_cast<U>(l) ^ static_cast<U>(r));
47
- }
48
-
49
- template <typename E>
50
- std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E&> constexpr operator^=(E& l, E r) {
51
- return l = l ^ r;
52
- }
53
-
54
- template <typename E>
55
- std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E> constexpr operator~(E e) {
56
- return static_cast<E>(~static_cast<std::underlying_type_t<E>>(e));
57
- }
58
-
59
- #endif // SkEnumOperators_DEFINED
@@ -1,64 +0,0 @@
1
- /*
2
- * Copyright 2019 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- #ifndef SKSL_DEFINES
9
- #define SKSL_DEFINES
10
-
11
- #include <cstdint>
12
-
13
- #include "include/core/SkTypes.h"
14
- #include "include/private/base/SkTArray.h"
15
-
16
- using SKSL_INT = int64_t;
17
- using SKSL_FLOAT = float;
18
-
19
- namespace SkSL {
20
-
21
- class Expression;
22
- class Statement;
23
-
24
- using ComponentArray = skia_private::STArray<4, int8_t>; // for Swizzles
25
-
26
- class ExpressionArray : public skia_private::STArray<2, std::unique_ptr<Expression>> {
27
- public:
28
- using STArray::STArray;
29
-
30
- /** Returns a new ExpressionArray containing a clone of every element. */
31
- ExpressionArray clone() const;
32
- };
33
-
34
- using StatementArray = skia_private::STArray<2, std::unique_ptr<Statement>>;
35
-
36
- // Functions larger than this (measured in IR nodes) will not be inlined. This growth factor
37
- // accounts for the number of calls being inlined--i.e., a function called five times (that is, with
38
- // five inlining opportunities) would be considered 5x larger than if it were called once. This
39
- // default threshold value is arbitrary, but tends to work well in practice.
40
- static constexpr int kDefaultInlineThreshold = 50;
41
-
42
- // A hard upper limit on the number of variable slots allowed in a function/global scope.
43
- // This is an arbitrary limit, but is needed to prevent code generation from taking unbounded
44
- // amounts of time or space.
45
- static constexpr int kVariableSlotLimit = 100000;
46
-
47
- // The SwizzleComponent namespace is used both by the SkSL::Swizzle expression, and the DSL swizzle.
48
- // This namespace is injected into SkSL::dsl so that `using namespace SkSL::dsl` enables DSL code
49
- // like `Swizzle(var, X, Y, ONE)` to compile without any extra qualifications.
50
- namespace SwizzleComponent {
51
-
52
- enum Type : int8_t {
53
- X = 0, Y = 1, Z = 2, W = 3,
54
- R = 4, G = 5, B = 6, A = 7,
55
- S = 8, T = 9, P = 10, Q = 11,
56
- UL = 12, UT = 13, UR = 14, UB = 15,
57
- ZERO,
58
- ONE
59
- };
60
-
61
- } // namespace SwizzleComponent
62
- } // namespace SkSL
63
-
64
- #endif
@@ -1,27 +0,0 @@
1
- /*
2
- * Copyright 2017 Google Inc.
3
- *
4
- * Use of this source code is governed by a BSD-style license that can be
5
- * found in the LICENSE file.
6
- */
7
-
8
- #ifndef SkShadowFlags_DEFINED
9
- #define SkShadowFlags_DEFINED
10
-
11
- // A set of flags shared between the SkAmbientShadowMaskFilter and the SkSpotShadowMaskFilter
12
- enum SkShadowFlags {
13
- kNone_ShadowFlag = 0x00,
14
- /** The occluding object is not opaque. Knowing that the occluder is opaque allows
15
- * us to cull shadow geometry behind it and improve performance. */
16
- kTransparentOccluder_ShadowFlag = 0x01,
17
- /** Don't try to use analytic shadows. */
18
- kGeometricOnly_ShadowFlag = 0x02,
19
- /** Light position represents a direction, light radius is blur radius at elevation 1 */
20
- kDirectionalLight_ShadowFlag = 0x04,
21
- /** Concave paths will only use blur to generate the shadow */
22
- kConcaveBlurOnly_ShadowFlag = 0x08,
23
- /** mask for all shadow flags */
24
- kAll_ShadowFlag = 0x0F
25
- };
26
-
27
- #endif