@shopify/react-native-skia 0.1.213 → 0.1.214

Sign up to get free protection for your applications and to get access to all the features.
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