@shopify/react-native-skia 0.1.196 → 0.1.199

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 (221) hide show
  1. package/android/CMakeLists.txt +32 -31
  2. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +4 -2
  3. package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +3 -0
  4. package/cpp/api/JsiSkImage.h +1 -1
  5. package/cpp/api/JsiSkShaderFactory.h +4 -4
  6. package/cpp/api/JsiSkSurface.h +0 -1
  7. package/cpp/api/JsiSkSurfaceFactory.h +2 -1
  8. package/cpp/rnskia/RNSkView.h +20 -40
  9. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +2 -2
  10. package/cpp/rnskia/values/RNSkReadonlyValue.h +6 -7
  11. package/cpp/skia/include/android/SkCanvasAndroid.h +20 -0
  12. package/cpp/skia/include/android/SkHeifDecoder.h +43 -0
  13. package/cpp/skia/include/android/SkSurfaceAndroid.h +50 -0
  14. package/cpp/skia/include/codec/SkAvifDecoder.h +43 -0
  15. package/cpp/skia/include/codec/SkBmpDecoder.h +43 -0
  16. package/cpp/skia/include/codec/SkCodec.h +25 -1
  17. package/cpp/skia/include/codec/SkGifDecoder.h +43 -0
  18. package/cpp/skia/include/codec/SkIcoDecoder.h +43 -0
  19. package/cpp/skia/include/codec/SkJpegDecoder.h +43 -0
  20. package/cpp/skia/include/codec/SkJpegxlDecoder.h +43 -0
  21. package/cpp/skia/include/codec/SkPngDecoder.h +43 -0
  22. package/cpp/skia/include/codec/SkRawDecoder.h +49 -0
  23. package/cpp/skia/include/codec/SkWbmpDecoder.h +43 -0
  24. package/cpp/skia/include/codec/SkWebpDecoder.h +43 -0
  25. package/cpp/skia/include/core/SkBBHFactory.h +5 -1
  26. package/cpp/skia/include/core/SkBlender.h +0 -2
  27. package/cpp/skia/include/core/SkCanvas.h +4 -23
  28. package/cpp/skia/include/core/SkColorFilter.h +14 -1
  29. package/cpp/skia/include/core/SkColorTable.h +59 -0
  30. package/cpp/skia/include/core/SkContourMeasure.h +3 -0
  31. package/cpp/skia/include/core/SkDeferredDisplayList.h +8 -104
  32. package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +8 -91
  33. package/cpp/skia/include/core/SkDrawable.h +5 -2
  34. package/cpp/skia/include/core/SkGraphics.h +7 -19
  35. package/cpp/skia/include/core/SkImage.h +157 -249
  36. package/cpp/skia/include/core/SkImageGenerator.h +0 -31
  37. package/cpp/skia/include/core/SkMilestone.h +1 -1
  38. package/cpp/skia/include/core/SkPathMeasure.h +3 -3
  39. package/cpp/skia/include/core/SkPictureRecorder.h +1 -1
  40. package/cpp/skia/include/core/SkPoint.h +5 -563
  41. package/cpp/skia/include/core/SkPoint3.h +1 -0
  42. package/cpp/skia/include/core/SkPromiseImageTexture.h +4 -30
  43. package/cpp/skia/include/core/SkRect.h +8 -8
  44. package/cpp/skia/include/core/SkSamplingOptions.h +4 -2
  45. package/cpp/skia/include/core/SkScalar.h +1 -1
  46. package/cpp/skia/include/core/SkSerialProcs.h +5 -1
  47. package/cpp/skia/include/core/SkShader.h +14 -21
  48. package/cpp/skia/include/core/SkString.h +2 -0
  49. package/cpp/skia/include/core/SkSurface.h +169 -701
  50. package/cpp/skia/include/core/SkSurfaceCharacterization.h +8 -256
  51. package/cpp/skia/include/core/SkTiledImageUtils.h +97 -0
  52. package/cpp/skia/include/core/SkTypes.h +4 -2
  53. package/cpp/skia/include/core/SkYUVAPixmaps.h +0 -5
  54. package/cpp/skia/include/effects/SkGradientShader.h +10 -1
  55. package/cpp/skia/include/effects/SkImageFilters.h +62 -37
  56. package/cpp/skia/include/effects/SkPerlinNoiseShader.h +28 -29
  57. package/cpp/skia/include/effects/SkRuntimeEffect.h +17 -12
  58. package/cpp/skia/include/gpu/GrBackendSurface.h +12 -39
  59. package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +6 -0
  60. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +3 -3
  61. package/cpp/skia/include/gpu/GrDirectContext.h +103 -3
  62. package/cpp/skia/include/gpu/GrRecordingContext.h +10 -19
  63. package/cpp/skia/include/gpu/MutableTextureState.h +4 -0
  64. package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +54 -0
  65. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +20 -76
  66. package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +217 -0
  67. package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +73 -0
  68. package/cpp/skia/include/gpu/gl/GrGLTypes.h +13 -2
  69. package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +78 -0
  70. package/cpp/skia/include/gpu/graphite/BackendTexture.h +1 -0
  71. package/cpp/skia/include/gpu/graphite/Image.h +277 -0
  72. package/cpp/skia/include/gpu/graphite/ImageProvider.h +1 -1
  73. package/cpp/skia/include/gpu/graphite/Recording.h +1 -4
  74. package/cpp/skia/include/gpu/graphite/Surface.h +81 -0
  75. package/cpp/skia/include/gpu/graphite/TextureInfo.h +5 -7
  76. package/cpp/skia/include/gpu/graphite/YUVABackendTextures.h +2 -2
  77. package/cpp/skia/include/gpu/mock/GrMockTypes.h +23 -8
  78. package/cpp/skia/include/ports/SkTypeface_fontations.h +21 -0
  79. package/cpp/skia/include/private/SkGainmapInfo.h +2 -0
  80. package/cpp/skia/include/private/SkGainmapShader.h +1 -0
  81. package/cpp/skia/include/private/SkJpegMetadataDecoder.h +19 -1
  82. package/cpp/skia/include/private/SkPathRef.h +13 -15
  83. package/cpp/skia/include/private/SkXmp.h +53 -0
  84. package/cpp/skia/include/private/base/SkFeatures.h +0 -4
  85. package/cpp/skia/include/private/base/SkFloatingPoint.h +11 -5
  86. package/cpp/skia/include/private/base/SkPoint_impl.h +569 -0
  87. package/cpp/skia/include/private/base/SkSpan_impl.h +3 -7
  88. package/cpp/skia/include/private/base/SkTArray.h +11 -11
  89. package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +120 -0
  90. package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +98 -0
  91. package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +43 -0
  92. package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +215 -0
  93. package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +6 -6
  94. package/cpp/skia/include/private/chromium/SkImageChromium.h +104 -0
  95. package/cpp/skia/include/private/chromium/Slug.h +7 -3
  96. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +7 -3
  97. package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +2 -0
  98. package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +3 -2
  99. package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +10 -2
  100. package/cpp/skia/include/{gpu → private/gpu}/ganesh/GrTextureGenerator.h +2 -13
  101. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +1 -1
  102. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +7 -0
  103. package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +19 -6
  104. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +13 -0
  105. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +0 -1
  106. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +14 -1
  107. package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +999 -79
  108. package/cpp/skia/modules/skcms/src/Transform_inl.h +36 -236
  109. package/cpp/skia/modules/skparagraph/include/Paragraph.h +2 -0
  110. package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +16 -0
  111. package/cpp/skia/modules/skparagraph/include/TextStyle.h +6 -2
  112. package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
  113. package/cpp/skia/modules/svg/include/SkSVGCircle.h +1 -1
  114. package/cpp/skia/modules/svg/include/SkSVGClipPath.h +1 -1
  115. package/cpp/skia/modules/svg/include/SkSVGContainer.h +1 -1
  116. package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
  117. package/cpp/skia/modules/svg/include/SkSVGDefs.h +1 -1
  118. package/cpp/skia/modules/svg/include/SkSVGEllipse.h +1 -1
  119. package/cpp/skia/modules/svg/include/SkSVGFe.h +1 -1
  120. package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +1 -1
  121. package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +1 -1
  122. package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +1 -1
  123. package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +1 -1
  124. package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +1 -1
  125. package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +1 -1
  126. package/cpp/skia/modules/svg/include/SkSVGFeImage.h +1 -1
  127. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +1 -1
  128. package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +1 -1
  129. package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +1 -1
  130. package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +1 -1
  131. package/cpp/skia/modules/svg/include/SkSVGFilter.h +1 -1
  132. package/cpp/skia/modules/svg/include/SkSVGG.h +1 -1
  133. package/cpp/skia/modules/svg/include/SkSVGGradient.h +1 -1
  134. package/cpp/skia/modules/svg/include/SkSVGHiddenContainer.h +1 -1
  135. package/cpp/skia/modules/svg/include/SkSVGImage.h +1 -1
  136. package/cpp/skia/modules/svg/include/SkSVGLine.h +1 -1
  137. package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +1 -1
  138. package/cpp/skia/modules/svg/include/SkSVGMask.h +1 -1
  139. package/cpp/skia/modules/svg/include/SkSVGNode.h +1 -1
  140. package/cpp/skia/modules/svg/include/SkSVGPath.h +1 -1
  141. package/cpp/skia/modules/svg/include/SkSVGPattern.h +1 -1
  142. package/cpp/skia/modules/svg/include/SkSVGPoly.h +1 -1
  143. package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +1 -1
  144. package/cpp/skia/modules/svg/include/SkSVGRect.h +1 -1
  145. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +3 -3
  146. package/cpp/skia/modules/svg/include/SkSVGSVG.h +1 -1
  147. package/cpp/skia/modules/svg/include/SkSVGShape.h +1 -1
  148. package/cpp/skia/modules/svg/include/SkSVGStop.h +1 -1
  149. package/cpp/skia/modules/svg/include/SkSVGText.h +1 -1
  150. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +1 -1
  151. package/cpp/skia/modules/svg/include/SkSVGTypes.h +21 -21
  152. package/cpp/skia/modules/svg/include/SkSVGUse.h +1 -1
  153. package/cpp/skia/modules/svg/include/SkSVGValue.h +2 -2
  154. package/cpp/skia/{include/private → src/core}/SkChecksum.h +32 -17
  155. package/cpp/skia/src/core/SkTHash.h +1 -1
  156. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +3 -1
  157. package/ios/RNSkia-iOS/SkiaMetalRenderer.mm +3 -1
  158. package/lib/commonjs/renderer/Canvas.js +24 -13
  159. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  160. package/lib/commonjs/skia/core/Data.d.ts +2 -2
  161. package/lib/commonjs/skia/core/Data.js.map +1 -1
  162. package/lib/commonjs/skia/core/RRect.js +5 -1
  163. package/lib/commonjs/skia/core/RRect.js.map +1 -1
  164. package/lib/commonjs/skia/core/Rect.js +32 -6
  165. package/lib/commonjs/skia/core/Rect.js.map +1 -1
  166. package/lib/commonjs/skia/types/Color.js.map +1 -1
  167. package/lib/commonjs/skia/types/JsiInstance.d.ts +2 -4
  168. package/lib/commonjs/skia/types/JsiInstance.js.map +1 -1
  169. package/lib/module/renderer/Canvas.js +25 -14
  170. package/lib/module/renderer/Canvas.js.map +1 -1
  171. package/lib/module/skia/core/Data.d.ts +2 -2
  172. package/lib/module/skia/core/Data.js.map +1 -1
  173. package/lib/module/skia/core/RRect.js +5 -1
  174. package/lib/module/skia/core/RRect.js.map +1 -1
  175. package/lib/module/skia/core/Rect.js +32 -6
  176. package/lib/module/skia/core/Rect.js.map +1 -1
  177. package/lib/module/skia/types/Color.js.map +1 -1
  178. package/lib/module/skia/types/JsiInstance.d.ts +2 -4
  179. package/lib/module/skia/types/JsiInstance.js.map +1 -1
  180. package/lib/typescript/src/skia/core/Data.d.ts +2 -2
  181. package/lib/typescript/src/skia/types/JsiInstance.d.ts +2 -4
  182. package/libs/android/arm64-v8a/libskia.a +0 -0
  183. package/libs/android/arm64-v8a/libskottie.a +0 -0
  184. package/libs/android/arm64-v8a/libsksg.a +0 -0
  185. package/libs/android/arm64-v8a/libsvg.a +0 -0
  186. package/libs/android/armeabi-v7a/libskia.a +0 -0
  187. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  188. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  189. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  190. package/libs/android/x86/libskia.a +0 -0
  191. package/libs/android/x86/libskottie.a +0 -0
  192. package/libs/android/x86/libsksg.a +0 -0
  193. package/libs/android/x86/libsvg.a +0 -0
  194. package/libs/android/x86_64/libskia.a +0 -0
  195. package/libs/android/x86_64/libskottie.a +0 -0
  196. package/libs/android/x86_64/libsksg.a +0 -0
  197. package/libs/android/x86_64/libsvg.a +0 -0
  198. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  199. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  200. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  201. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  202. package/libs/ios/libsksg.xcframework/Info.plist +5 -5
  203. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  204. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  205. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  206. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  207. package/libs/ios/libsvg.xcframework/Info.plist +5 -5
  208. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  209. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  210. package/package.json +3 -4
  211. package/src/renderer/Canvas.tsx +25 -19
  212. package/src/skia/core/Data.ts +3 -3
  213. package/src/skia/core/RRect.tsx +4 -2
  214. package/src/skia/core/Rect.ts +29 -12
  215. package/src/skia/types/Color.ts +1 -1
  216. package/src/skia/types/JsiInstance.ts +2 -5
  217. package/cpp/skia/include/effects/SkTableColorFilter.h +0 -29
  218. package/cpp/skia/include/private/SkOpts_spi.h +0 -23
  219. package/cpp/skia/include/private/SkSpinlock.h +0 -57
  220. package/cpp/skia/include/private/chromium/GrSlug.h +0 -16
  221. package/scripts/install-npm.js +0 -33
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -6,32 +6,32 @@
6
6
  <array>
7
7
  <dict>
8
8
  <key>LibraryIdentifier</key>
9
- <string>ios-arm64_arm64e_x86_64-simulator</string>
9
+ <string>ios-arm64_arm64e</string>
10
10
  <key>LibraryPath</key>
11
11
  <string>libsksg.a</string>
12
12
  <key>SupportedArchitectures</key>
13
13
  <array>
14
14
  <string>arm64</string>
15
15
  <string>arm64e</string>
16
- <string>x86_64</string>
17
16
  </array>
18
17
  <key>SupportedPlatform</key>
19
18
  <string>ios</string>
20
- <key>SupportedPlatformVariant</key>
21
- <string>simulator</string>
22
19
  </dict>
23
20
  <dict>
24
21
  <key>LibraryIdentifier</key>
25
- <string>ios-arm64_arm64e</string>
22
+ <string>ios-arm64_arm64e_x86_64-simulator</string>
26
23
  <key>LibraryPath</key>
27
24
  <string>libsksg.a</string>
28
25
  <key>SupportedArchitectures</key>
29
26
  <array>
30
27
  <string>arm64</string>
31
28
  <string>arm64e</string>
29
+ <string>x86_64</string>
32
30
  </array>
33
31
  <key>SupportedPlatform</key>
34
32
  <string>ios</string>
33
+ <key>SupportedPlatformVariant</key>
34
+ <string>simulator</string>
35
35
  </dict>
36
36
  </array>
37
37
  <key>CFBundlePackageType</key>
@@ -6,32 +6,32 @@
6
6
  <array>
7
7
  <dict>
8
8
  <key>LibraryIdentifier</key>
9
- <string>ios-arm64_arm64e_x86_64-simulator</string>
9
+ <string>ios-arm64_arm64e</string>
10
10
  <key>LibraryPath</key>
11
11
  <string>libsvg.a</string>
12
12
  <key>SupportedArchitectures</key>
13
13
  <array>
14
14
  <string>arm64</string>
15
15
  <string>arm64e</string>
16
- <string>x86_64</string>
17
16
  </array>
18
17
  <key>SupportedPlatform</key>
19
18
  <string>ios</string>
20
- <key>SupportedPlatformVariant</key>
21
- <string>simulator</string>
22
19
  </dict>
23
20
  <dict>
24
21
  <key>LibraryIdentifier</key>
25
- <string>ios-arm64_arm64e</string>
22
+ <string>ios-arm64_arm64e_x86_64-simulator</string>
26
23
  <key>LibraryPath</key>
27
24
  <string>libsvg.a</string>
28
25
  <key>SupportedArchitectures</key>
29
26
  <array>
30
27
  <string>arm64</string>
31
28
  <string>arm64e</string>
29
+ <string>x86_64</string>
32
30
  </array>
33
31
  <key>SupportedPlatform</key>
34
32
  <string>ios</string>
33
+ <key>SupportedPlatformVariant</key>
34
+ <string>simulator</string>
35
35
  </dict>
36
36
  </array>
37
37
  <key>CFBundlePackageType</key>
package/package.json CHANGED
@@ -7,7 +7,7 @@
7
7
  "setup-skia-web": "./scripts/setup-canvaskit.js"
8
8
  },
9
9
  "title": "React Native Skia",
10
- "version": "0.1.196",
10
+ "version": "0.1.199",
11
11
  "description": "High-performance React Native Graphics using Skia",
12
12
  "main": "lib/module/index.js",
13
13
  "files": [
@@ -34,7 +34,6 @@
34
34
  "libs/ios/libskottie.xcframework",
35
35
  "libs/ios/libsksg.xcframework",
36
36
  "react-native-skia.podspec",
37
- "scripts/install-npm.js",
38
37
  "scripts/setup-canvaskit.js",
39
38
  "dist/**"
40
39
  ],
@@ -43,8 +42,8 @@
43
42
  "lint": "eslint . --ext .ts,.tsx --max-warnings 0 --cache",
44
43
  "test": "jest",
45
44
  "e2e": "E2E=true yarn test -i e2e",
46
- "postinstall": "node scripts/install-npm.js",
47
- "build": "bob build && merge-dirs lib/typescript/src lib/commonjs && merge-dirs lib/typescript/src lib/module"
45
+ "build": "bob build && merge-dirs lib/typescript/src lib/commonjs && merge-dirs lib/typescript/src lib/module",
46
+ "postinstall": "node scripts/install-npm.js"
48
47
  },
49
48
  "repository": {
50
49
  "type": "git",
@@ -4,6 +4,7 @@ import React, {
4
4
  useMemo,
5
5
  forwardRef,
6
6
  useRef,
7
+ useLayoutEffect,
7
8
  } from "react";
8
9
  import type {
9
10
  RefObject,
@@ -31,29 +32,34 @@ export interface CanvasProps extends SkiaBaseViewProps {
31
32
  onTouch?: TouchHandler;
32
33
  }
33
34
 
35
+ const useOnSizeEvent = (resultValue: SkiaBaseViewProps["onSize"]) => {
36
+ const onSize = useValue({
37
+ width: 0,
38
+ height: 0,
39
+ });
40
+
41
+ useLayoutEffect(() => {
42
+ if (!resultValue) {
43
+ return;
44
+ }
45
+ return onSize.addListener((newValue) => {
46
+ if (isValue(resultValue)) {
47
+ resultValue.current = newValue;
48
+ } else {
49
+ resultValue.value = newValue;
50
+ }
51
+ });
52
+ }, [resultValue, onSize]);
53
+
54
+ return onSize;
55
+ };
56
+
34
57
  export const Canvas = forwardRef<SkiaDomView, CanvasProps>(
35
58
  (
36
- {
37
- children,
38
- style,
39
- debug,
40
- mode,
41
- onTouch,
42
- onSize: onSizeReanimatedOrSkia,
43
- ...props
44
- },
59
+ { children, style, debug, mode, onTouch, onSize: _onSize, ...props },
45
60
  forwardedRef
46
61
  ) => {
47
- const size = useValue({ width: 0, height: 0 });
48
- const onSize = isValue(onSizeReanimatedOrSkia)
49
- ? onSizeReanimatedOrSkia
50
- : size;
51
- useEffect(() => {
52
- if (!isValue(onSizeReanimatedOrSkia) && onSizeReanimatedOrSkia) {
53
- return size.addListener((v) => (onSizeReanimatedOrSkia.value = v));
54
- }
55
- return undefined;
56
- }, [onSizeReanimatedOrSkia, size]);
62
+ const onSize = useOnSizeEvent(_onSize);
57
63
  const innerRef = useCanvasRef();
58
64
  const ref = useCombinedRefs(forwardedRef, innerRef);
59
65
  const redraw = useCallback(() => {
@@ -1,7 +1,7 @@
1
1
  import { useEffect, useRef, useState } from "react";
2
2
 
3
3
  import { Skia } from "../Skia";
4
- import type { SkData, DataSourceParam, BaseSkJSIInstance } from "../types";
4
+ import type { SkData, DataSourceParam, SkJSIInstance } from "../types";
5
5
  import { Platform } from "../../Platform";
6
6
 
7
7
  const factoryWrapper = <T>(
@@ -37,7 +37,7 @@ const loadData = <T>(
37
37
  );
38
38
  }
39
39
  };
40
- const useLoading = <T extends BaseSkJSIInstance>(
40
+ const useLoading = <T extends SkJSIInstance<string>>(
41
41
  source: DataSourceParam,
42
42
  loader: () => Promise<T | null>
43
43
  ) => {
@@ -61,7 +61,7 @@ const useLoading = <T extends BaseSkJSIInstance>(
61
61
  return data;
62
62
  };
63
63
 
64
- export const useRawData = <T extends BaseSkJSIInstance>(
64
+ export const useRawData = <T extends SkJSIInstance<string>>(
65
65
  source: DataSourceParam,
66
66
  factory: (data: SkData) => T | null,
67
67
  onError?: (err: Error) => void
@@ -1,5 +1,7 @@
1
1
  import { Skia } from "../Skia";
2
2
  import type { SkRect } from "../types";
3
3
 
4
- export const rrect = (r: SkRect, rx: number, ry: number) =>
5
- Skia.RRectXY(r, rx, ry);
4
+ export const rrect = (r: SkRect, rx: number, ry: number) => {
5
+ "worklet";
6
+ return Skia.RRectXY(r, rx, ry);
7
+ };
@@ -4,10 +4,13 @@ import { isRRect } from "../types";
4
4
 
5
5
  import { vec } from "./Vector";
6
6
 
7
- export const rect = (x: number, y: number, width: number, height: number) =>
8
- Skia.XYWHRect(x, y, width, height);
7
+ export const rect = (x: number, y: number, width: number, height: number) => {
8
+ "worklet";
9
+ return Skia.XYWHRect(x, y, width, height);
10
+ };
9
11
 
10
12
  export const bounds = (rects: SkRect[]) => {
13
+ "worklet";
11
14
  const x = Math.min(...rects.map((r) => r.x));
12
15
  const y = Math.min(...rects.map((r) => r.y));
13
16
  const width = Math.max(...rects.map((r) => r.x + r.width));
@@ -15,19 +18,33 @@ export const bounds = (rects: SkRect[]) => {
15
18
  return rect(x, y, width - x, height - y);
16
19
  };
17
20
 
18
- export const topLeft = (r: SkRect | SkRRect) =>
19
- isRRect(r) ? vec(r.rect.x, r.rect.y) : vec(r.x, r.y);
20
- export const topRight = (r: SkRect | SkRRect) =>
21
- isRRect(r) ? vec(r.rect.x + r.rect.width, r.rect.y) : vec(r.x + r.width, r.y);
22
- export const bottomLeft = (r: SkRect | SkRRect) =>
23
- isRRect(r)
21
+ export const topLeft = (r: SkRect | SkRRect) => {
22
+ "worklet";
23
+ return isRRect(r) ? vec(r.rect.x, r.rect.y) : vec(r.x, r.y);
24
+ };
25
+
26
+ export const topRight = (r: SkRect | SkRRect) => {
27
+ "worklet";
28
+ return isRRect(r)
29
+ ? vec(r.rect.x + r.rect.width, r.rect.y)
30
+ : vec(r.x + r.width, r.y);
31
+ };
32
+
33
+ export const bottomLeft = (r: SkRect | SkRRect) => {
34
+ "worklet";
35
+ return isRRect(r)
24
36
  ? vec(r.rect.x, r.rect.y + r.rect.height)
25
37
  : vec(r.x, r.y + r.height);
26
- export const bottomRight = (r: SkRect | SkRRect) =>
27
- isRRect(r)
38
+ };
39
+ export const bottomRight = (r: SkRect | SkRRect) => {
40
+ "worklet";
41
+ return isRRect(r)
28
42
  ? vec(r.rect.x + r.rect.width, r.rect.y + r.rect.height)
29
43
  : vec(r.x + r.width, r.y + r.height);
30
- export const center = (r: SkRect | SkRRect) =>
31
- isRRect(r)
44
+ };
45
+ export const center = (r: SkRect | SkRRect) => {
46
+ "worklet";
47
+ return isRRect(r)
32
48
  ? vec(r.rect.x + r.rect.width / 2, r.rect.y + r.rect.height / 2)
33
49
  : vec(r.x + r.width / 2, r.y + r.height / 2);
50
+ };
@@ -1,4 +1,4 @@
1
1
  // This is the JSI color
2
2
  export type SkColor = Float32Array;
3
- // Input colors can be string, number or Float32Array
3
+ // Input colors can be string, number, number[] or Float32Array
4
4
  export type Color = string | Float32Array | number | number[];
@@ -1,7 +1,4 @@
1
- export interface BaseSkJSIInstance {
2
- dispose: () => void;
3
- }
4
-
5
- export interface SkJSIInstance<T extends string> extends BaseSkJSIInstance {
1
+ export interface SkJSIInstance<T extends string> {
6
2
  __typename__: T;
3
+ dispose(): void;
7
4
  }
@@ -1,29 +0,0 @@
1
- /*
2
- * Copyright 2015 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 SkTableColorFilter_DEFINED
9
- #define SkTableColorFilter_DEFINED
10
-
11
- #include "include/core/SkColorFilter.h"
12
-
13
- // (DEPRECATED) These factory functions are deprecated. Please use the ones in
14
- // SkColorFilters (i.e., Table and TableARGB).
15
- class SK_API SkTableColorFilter {
16
- public:
17
- static sk_sp<SkColorFilter> Make(const uint8_t table[256]) {
18
- return SkColorFilters::Table(table);
19
- }
20
-
21
- static sk_sp<SkColorFilter> MakeARGB(const uint8_t tableA[256],
22
- const uint8_t tableR[256],
23
- const uint8_t tableG[256],
24
- const uint8_t tableB[256]) {
25
- return SkColorFilters::TableARGB(tableA, tableR, tableG, tableB);
26
- }
27
- };
28
-
29
- #endif
@@ -1,23 +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 SkOpts_spi_DEFINED
9
- #define SkOpts_spi_DEFINED
10
-
11
- #include "include/private/base/SkAPI.h"
12
-
13
- #include <cstddef>
14
-
15
- // These are exposed as SK_SPI (e.g. SkParagraph), the rest of SkOpts is
16
- // declared in src/core
17
-
18
- namespace SkOpts {
19
- // The fastest high quality 32-bit hash we can provide on this platform.
20
- extern uint32_t SK_SPI (*hash_fn)(const void* data, size_t bytes, uint32_t seed);
21
- } // namespace SkOpts
22
-
23
- #endif
@@ -1,57 +0,0 @@
1
- /*
2
- * Copyright 2015 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 SkSpinlock_DEFINED
9
- #define SkSpinlock_DEFINED
10
-
11
- #include "include/core/SkTypes.h"
12
- #include "include/private/base/SkThreadAnnotations.h"
13
- #include <atomic>
14
-
15
- class SK_CAPABILITY("mutex") SkSpinlock {
16
- public:
17
- constexpr SkSpinlock() = default;
18
-
19
- void acquire() SK_ACQUIRE() {
20
- // To act as a mutex, we need an acquire barrier when we acquire the lock.
21
- if (fLocked.exchange(true, std::memory_order_acquire)) {
22
- // Lock was contended. Fall back to an out-of-line spin loop.
23
- this->contendedAcquire();
24
- }
25
- }
26
-
27
- // Acquire the lock or fail (quickly). Lets the caller decide to do something other than wait.
28
- bool tryAcquire() SK_TRY_ACQUIRE(true) {
29
- // To act as a mutex, we need an acquire barrier when we acquire the lock.
30
- if (fLocked.exchange(true, std::memory_order_acquire)) {
31
- // Lock was contended. Let the caller decide what to do.
32
- return false;
33
- }
34
- return true;
35
- }
36
-
37
- void release() SK_RELEASE_CAPABILITY() {
38
- // To act as a mutex, we need a release barrier when we release the lock.
39
- fLocked.store(false, std::memory_order_release);
40
- }
41
-
42
- private:
43
- SK_API void contendedAcquire();
44
-
45
- std::atomic<bool> fLocked{false};
46
- };
47
-
48
- class SK_SCOPED_CAPABILITY SkAutoSpinlock {
49
- public:
50
- SkAutoSpinlock(SkSpinlock& mutex) SK_ACQUIRE(mutex) : fSpinlock(mutex) { fSpinlock.acquire(); }
51
- ~SkAutoSpinlock() SK_RELEASE_CAPABILITY() { fSpinlock.release(); }
52
-
53
- private:
54
- SkSpinlock& fSpinlock;
55
- };
56
-
57
- #endif//SkSpinlock_DEFINED
@@ -1,16 +0,0 @@
1
- /*
2
- * Copyright 2021 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 GrSlug_DEFINED
9
- #define GrSlug_DEFINED
10
-
11
- #include "include/private/chromium/Slug.h"
12
-
13
- // TODO: Update Chrome to use sktext::gpu classes and remove these
14
- using GrSlug = sktext::gpu::Slug;
15
-
16
- #endif // GrSlug_DEFINED
@@ -1,33 +0,0 @@
1
- const fs = require("fs");
2
- const path = require("path");
3
-
4
- console.log("Updating symlinks for Android build...");
5
-
6
- const createSymlink = (p) => {
7
- console.log(`Creating symlink to ${p}`, __dirname, process.cwd());
8
- const srcDir = path.resolve(`./cpp/${p}`);
9
- const dstDir = path.resolve(`./android/cpp/${p}`);
10
-
11
- // Case in PNPM which might turn symlink into a directory:
12
- // In that case, remove the directory before creating the symlink
13
- if (fs.existsSync(dstDir)) {
14
- const lstat = fs.lstatSync(dstDir);
15
- const isSymbolicLink = lstat.isSymbolicLink();
16
- if (lstat.isDirectory() && !isSymbolicLink) {
17
- fs.rmSync(dstDir, { recursive: true });
18
- }
19
- }
20
-
21
- if (!fs.existsSync(dstDir)) {
22
- fs.symlinkSync(srcDir, dstDir, "junction");
23
- }
24
- };
25
-
26
- // Copy common cpp files from the package root to the android folder
27
- createSymlink("api");
28
- createSymlink("jsi");
29
- createSymlink("rnskia");
30
- createSymlink("skia");
31
- createSymlink("utils");
32
-
33
- console.log("Symlinks created successfully.");