react-native-skia 3.0.3 → 3.0.5

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 (210) hide show
  1. package/android/CMakeLists.txt +0 -2
  2. package/android/build.gradle +15 -7
  3. package/android/cpp/jni/JniPlatformContext.cpp +0 -24
  4. package/android/cpp/jni/include/JniPlatformContext.h +0 -2
  5. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +0 -140
  6. package/android/src/main/java/com/reactnative/skia/BackingViewKind.java +24 -0
  7. package/android/src/main/java/com/reactnative/skia/FrameScheduler.java +104 -0
  8. package/android/src/main/java/com/reactnative/skia/PlatformContext.java +0 -5
  9. package/android/src/main/java/com/reactnative/skia/SkiaView.java +55 -44
  10. package/android/src/test/java/com/reactnative/skia/FrameSchedulerTest.java +186 -0
  11. package/apple/RNSkApplePlatformContext.h +0 -10
  12. package/apple/RNSkApplePlatformContext.mm +0 -182
  13. package/cpp/api/JsiGPUTexture.h +48 -0
  14. package/cpp/api/JsiSkApi.h +1 -16
  15. package/cpp/api/JsiSkImage.h +0 -12
  16. package/cpp/api/JsiSkImageFactory.h +36 -57
  17. package/cpp/api/JsiSkSurface.h +3 -10
  18. package/cpp/api/JsiSkSurfaceFactory.h +13 -18
  19. package/cpp/rnskia/RNDawnContext.h +5 -113
  20. package/cpp/rnskia/RNDawnUtils.h +33 -0
  21. package/cpp/rnskia/RNSkPlatformContext.h +0 -54
  22. package/cpp/rnskia/RNSkView.h +10 -7
  23. package/lib/commonjs/external/reanimated/index.d.ts +0 -1
  24. package/lib/commonjs/external/reanimated/index.js +0 -11
  25. package/lib/commonjs/external/reanimated/index.js.map +1 -1
  26. package/lib/commonjs/mock/index.js +1 -2
  27. package/lib/commonjs/mock/index.js.map +1 -1
  28. package/lib/commonjs/skia/types/GPUTexture.d.ts +11 -0
  29. package/lib/commonjs/skia/types/GPUTexture.js +2 -0
  30. package/lib/commonjs/skia/types/GPUTexture.js.map +1 -0
  31. package/lib/commonjs/skia/types/Image/Image.d.ts +0 -10
  32. package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
  33. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +25 -48
  34. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  35. package/lib/commonjs/skia/types/Skia.d.ts +0 -4
  36. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  37. package/lib/commonjs/skia/types/Surface/Surface.d.ts +3 -14
  38. package/lib/commonjs/skia/types/Surface/Surface.js.map +1 -1
  39. package/lib/commonjs/skia/types/Surface/SurfaceFactory.d.ts +10 -9
  40. package/lib/commonjs/skia/types/Surface/SurfaceFactory.js.map +1 -1
  41. package/lib/commonjs/skia/types/index.d.ts +1 -2
  42. package/lib/commonjs/skia/types/index.js +11 -22
  43. package/lib/commonjs/skia/types/index.js.map +1 -1
  44. package/lib/commonjs/skia/web/JsiSkImage.d.ts +0 -1
  45. package/lib/commonjs/skia/web/JsiSkImage.js +0 -4
  46. package/lib/commonjs/skia/web/JsiSkImage.js.map +1 -1
  47. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +4 -5
  48. package/lib/commonjs/skia/web/JsiSkImageFactory.js +6 -10
  49. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  50. package/lib/commonjs/skia/web/JsiSkSurface.d.ts +0 -1
  51. package/lib/commonjs/skia/web/JsiSkSurface.js +0 -4
  52. package/lib/commonjs/skia/web/JsiSkSurface.js.map +1 -1
  53. package/lib/commonjs/skia/web/JsiSkSurfaceFactory.d.ts +2 -2
  54. package/lib/commonjs/skia/web/JsiSkSurfaceFactory.js +1 -1
  55. package/lib/commonjs/skia/web/JsiSkSurfaceFactory.js.map +1 -1
  56. package/lib/commonjs/skia/web/JsiSkia.js +0 -4
  57. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  58. package/lib/module/external/reanimated/index.d.ts +0 -1
  59. package/lib/module/external/reanimated/index.js +0 -1
  60. package/lib/module/external/reanimated/index.js.map +1 -1
  61. package/lib/module/mock/index.js +1 -2
  62. package/lib/module/mock/index.js.map +1 -1
  63. package/lib/module/skia/types/GPUTexture.d.ts +11 -0
  64. package/lib/module/skia/types/GPUTexture.js +2 -0
  65. package/lib/module/skia/types/GPUTexture.js.map +1 -0
  66. package/lib/module/skia/types/Image/Image.d.ts +0 -10
  67. package/lib/module/skia/types/Image/Image.js.map +1 -1
  68. package/lib/module/skia/types/Image/ImageFactory.d.ts +25 -48
  69. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  70. package/lib/module/skia/types/Skia.d.ts +0 -4
  71. package/lib/module/skia/types/Skia.js.map +1 -1
  72. package/lib/module/skia/types/Surface/Surface.d.ts +3 -14
  73. package/lib/module/skia/types/Surface/Surface.js.map +1 -1
  74. package/lib/module/skia/types/Surface/SurfaceFactory.d.ts +10 -9
  75. package/lib/module/skia/types/Surface/SurfaceFactory.js.map +1 -1
  76. package/lib/module/skia/types/index.d.ts +1 -2
  77. package/lib/module/skia/types/index.js +1 -2
  78. package/lib/module/skia/types/index.js.map +1 -1
  79. package/lib/module/skia/web/JsiSkImage.d.ts +0 -1
  80. package/lib/module/skia/web/JsiSkImage.js +0 -4
  81. package/lib/module/skia/web/JsiSkImage.js.map +1 -1
  82. package/lib/module/skia/web/JsiSkImageFactory.d.ts +4 -5
  83. package/lib/module/skia/web/JsiSkImageFactory.js +6 -10
  84. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  85. package/lib/module/skia/web/JsiSkSurface.d.ts +0 -1
  86. package/lib/module/skia/web/JsiSkSurface.js +0 -4
  87. package/lib/module/skia/web/JsiSkSurface.js.map +1 -1
  88. package/lib/module/skia/web/JsiSkSurfaceFactory.d.ts +2 -2
  89. package/lib/module/skia/web/JsiSkSurfaceFactory.js +1 -1
  90. package/lib/module/skia/web/JsiSkSurfaceFactory.js.map +1 -1
  91. package/lib/module/skia/web/JsiSkia.js +0 -4
  92. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  93. package/lib/typescript/src/external/reanimated/index.d.ts +0 -1
  94. package/lib/typescript/src/skia/types/GPUTexture.d.ts +11 -0
  95. package/lib/typescript/src/skia/types/Image/Image.d.ts +0 -10
  96. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +25 -48
  97. package/lib/typescript/src/skia/types/Skia.d.ts +0 -4
  98. package/lib/typescript/src/skia/types/Surface/Surface.d.ts +3 -14
  99. package/lib/typescript/src/skia/types/Surface/SurfaceFactory.d.ts +10 -9
  100. package/lib/typescript/src/skia/types/index.d.ts +1 -2
  101. package/lib/typescript/src/skia/web/JsiSkImage.d.ts +0 -1
  102. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +4 -5
  103. package/lib/typescript/src/skia/web/JsiSkSurface.d.ts +0 -1
  104. package/lib/typescript/src/skia/web/JsiSkSurfaceFactory.d.ts +2 -2
  105. package/package.json +1 -1
  106. package/src/external/reanimated/index.ts +0 -1
  107. package/src/mock/index.ts +0 -1
  108. package/src/skia/types/GPUTexture.ts +9 -0
  109. package/src/skia/types/Image/Image.ts +0 -11
  110. package/src/skia/types/Image/ImageFactory.ts +25 -55
  111. package/src/skia/types/Skia.ts +0 -4
  112. package/src/skia/types/Surface/Surface.ts +3 -15
  113. package/src/skia/types/Surface/SurfaceFactory.ts +11 -9
  114. package/src/skia/types/index.ts +1 -2
  115. package/src/skia/web/JsiSkImage.ts +0 -5
  116. package/src/skia/web/JsiSkImageFactory.ts +16 -16
  117. package/src/skia/web/JsiSkSurface.ts +0 -5
  118. package/src/skia/web/JsiSkSurfaceFactory.ts +2 -2
  119. package/src/skia/web/JsiSkia.ts +0 -4
  120. package/android/cpp/rnskia-android/AHardwareBufferUtils.cpp +0 -31
  121. package/android/cpp/rnskia-android/AHardwareBufferUtils.h +0 -13
  122. package/android/cpp/rnskia-android/RNSkAndroidVideo.cpp +0 -200
  123. package/android/cpp/rnskia-android/RNSkAndroidVideo.h +0 -44
  124. package/android/src/main/java/com/reactnative/skia/RNSkVideo.java +0 -320
  125. package/apple/RNSkAppleVideo.h +0 -78
  126. package/apple/RNSkAppleVideo.mm +0 -292
  127. package/cpp/api/JsiNativeBuffer.h +0 -56
  128. package/cpp/api/JsiTextureInfo.h +0 -53
  129. package/cpp/api/JsiVideo.h +0 -101
  130. package/cpp/rnskia/RNSkVideo.h +0 -31
  131. package/lib/commonjs/external/reanimated/useVideo.d.ts +0 -21
  132. package/lib/commonjs/external/reanimated/useVideo.js +0 -150
  133. package/lib/commonjs/external/reanimated/useVideo.js.map +0 -1
  134. package/lib/commonjs/external/reanimated/useVideoLoading.d.ts +0 -4
  135. package/lib/commonjs/external/reanimated/useVideoLoading.js +0 -40
  136. package/lib/commonjs/external/reanimated/useVideoLoading.js.map +0 -1
  137. package/lib/commonjs/external/reanimated/useVideoLoading.web.d.ts +0 -4
  138. package/lib/commonjs/external/reanimated/useVideoLoading.web.js +0 -20
  139. package/lib/commonjs/external/reanimated/useVideoLoading.web.js.map +0 -1
  140. package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.d.ts +0 -29
  141. package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.js +0 -15
  142. package/lib/commonjs/skia/types/NativeBuffer/NativeBufferFactory.js.map +0 -1
  143. package/lib/commonjs/skia/types/NativeBuffer/index.d.ts +0 -1
  144. package/lib/commonjs/skia/types/NativeBuffer/index.js +0 -17
  145. package/lib/commonjs/skia/types/NativeBuffer/index.js.map +0 -1
  146. package/lib/commonjs/skia/types/Video/Video.d.ts +0 -20
  147. package/lib/commonjs/skia/types/Video/Video.js +0 -6
  148. package/lib/commonjs/skia/types/Video/Video.js.map +0 -1
  149. package/lib/commonjs/skia/types/Video/index.d.ts +0 -1
  150. package/lib/commonjs/skia/types/Video/index.js +0 -17
  151. package/lib/commonjs/skia/types/Video/index.js.map +0 -1
  152. package/lib/commonjs/skia/web/CanvasKitWebGLBufferImpl.d.ts +0 -9
  153. package/lib/commonjs/skia/web/CanvasKitWebGLBufferImpl.js +0 -30
  154. package/lib/commonjs/skia/web/CanvasKitWebGLBufferImpl.js.map +0 -1
  155. package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.d.ts +0 -9
  156. package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.js +0 -48
  157. package/lib/commonjs/skia/web/JsiSkNativeBufferFactory.js.map +0 -1
  158. package/lib/commonjs/skia/web/JsiVideo.d.ts +0 -28
  159. package/lib/commonjs/skia/web/JsiVideo.js +0 -96
  160. package/lib/commonjs/skia/web/JsiVideo.js.map +0 -1
  161. package/lib/module/external/reanimated/useVideo.d.ts +0 -21
  162. package/lib/module/external/reanimated/useVideo.js +0 -142
  163. package/lib/module/external/reanimated/useVideo.js.map +0 -1
  164. package/lib/module/external/reanimated/useVideoLoading.d.ts +0 -4
  165. package/lib/module/external/reanimated/useVideoLoading.js +0 -33
  166. package/lib/module/external/reanimated/useVideoLoading.js.map +0 -1
  167. package/lib/module/external/reanimated/useVideoLoading.web.d.ts +0 -4
  168. package/lib/module/external/reanimated/useVideoLoading.web.js +0 -13
  169. package/lib/module/external/reanimated/useVideoLoading.web.js.map +0 -1
  170. package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.d.ts +0 -29
  171. package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.js +0 -5
  172. package/lib/module/skia/types/NativeBuffer/NativeBufferFactory.js.map +0 -1
  173. package/lib/module/skia/types/NativeBuffer/index.d.ts +0 -1
  174. package/lib/module/skia/types/NativeBuffer/index.js +0 -2
  175. package/lib/module/skia/types/NativeBuffer/index.js.map +0 -1
  176. package/lib/module/skia/types/Video/Video.d.ts +0 -20
  177. package/lib/module/skia/types/Video/Video.js +0 -2
  178. package/lib/module/skia/types/Video/Video.js.map +0 -1
  179. package/lib/module/skia/types/Video/index.d.ts +0 -1
  180. package/lib/module/skia/types/Video/index.js +0 -2
  181. package/lib/module/skia/types/Video/index.js.map +0 -1
  182. package/lib/module/skia/web/CanvasKitWebGLBufferImpl.d.ts +0 -9
  183. package/lib/module/skia/web/CanvasKitWebGLBufferImpl.js +0 -23
  184. package/lib/module/skia/web/CanvasKitWebGLBufferImpl.js.map +0 -1
  185. package/lib/module/skia/web/JsiSkNativeBufferFactory.d.ts +0 -9
  186. package/lib/module/skia/web/JsiSkNativeBufferFactory.js +0 -41
  187. package/lib/module/skia/web/JsiSkNativeBufferFactory.js.map +0 -1
  188. package/lib/module/skia/web/JsiVideo.d.ts +0 -28
  189. package/lib/module/skia/web/JsiVideo.js +0 -88
  190. package/lib/module/skia/web/JsiVideo.js.map +0 -1
  191. package/lib/typescript/src/external/reanimated/useVideo.d.ts +0 -21
  192. package/lib/typescript/src/external/reanimated/useVideoLoading.d.ts +0 -4
  193. package/lib/typescript/src/external/reanimated/useVideoLoading.web.d.ts +0 -4
  194. package/lib/typescript/src/skia/types/NativeBuffer/NativeBufferFactory.d.ts +0 -29
  195. package/lib/typescript/src/skia/types/NativeBuffer/index.d.ts +0 -1
  196. package/lib/typescript/src/skia/types/Video/Video.d.ts +0 -20
  197. package/lib/typescript/src/skia/types/Video/index.d.ts +0 -1
  198. package/lib/typescript/src/skia/web/CanvasKitWebGLBufferImpl.d.ts +0 -9
  199. package/lib/typescript/src/skia/web/JsiSkNativeBufferFactory.d.ts +0 -9
  200. package/lib/typescript/src/skia/web/JsiVideo.d.ts +0 -28
  201. package/src/external/reanimated/useVideo.ts +0 -161
  202. package/src/external/reanimated/useVideoLoading.ts +0 -39
  203. package/src/external/reanimated/useVideoLoading.web.ts +0 -17
  204. package/src/skia/types/NativeBuffer/NativeBufferFactory.ts +0 -52
  205. package/src/skia/types/NativeBuffer/index.ts +0 -1
  206. package/src/skia/types/Video/Video.ts +0 -19
  207. package/src/skia/types/Video/index.ts +0 -1
  208. package/src/skia/web/CanvasKitWebGLBufferImpl.ts +0 -25
  209. package/src/skia/web/JsiSkNativeBufferFactory.ts +0 -51
  210. package/src/skia/web/JsiVideo.ts +0 -113
@@ -1,3 +1,4 @@
1
+ import type { GPUTextureHandle } from "../GPUTexture";
1
2
  import type { SkSurface } from "./Surface";
2
3
  export declare const ColorSpace: {
3
4
  readonly SRGB: "srgb";
@@ -25,18 +26,18 @@ export interface SurfaceFactory {
25
26
  MakeOffscreen: (width: number, height: number, opts?: SurfaceOptions) => SkSurface | null;
26
27
  /**
27
28
  * Creates a GPU backed surface that draws directly into a WebGPU texture
28
- * (zero-copy). The texture must be created on Skia's device
29
- * (importDevice(Skia.getNativeDevice())) with RENDER_ATTACHMENT usage; add
30
- * TEXTURE_BINDING to sample what Skia drew from WebGPU after each flush().
31
- * The surface holds its own reference to the texture and keeps it alive
32
- * for its lifetime, so the caller may release the GPUTexture once the
33
- * surface exists. Calling destroy() on the GPUTexture still invalidates
34
- * the surface.
29
+ * (zero-copy). The texture must be created with React Native WebGPU on
30
+ * the shared device (importDevice(Skia.getNativeDevice())) with the
31
+ * RENDER_ATTACHMENT usage; add TEXTURE_BINDING to sample what Skia drew
32
+ * from WebGPU after each flush(). The surface holds its own reference to
33
+ * the texture and keeps it alive for its lifetime, so the caller may
34
+ * release the GPUTexture once the surface exists. Calling destroy() on the
35
+ * GPUTexture still invalidates the surface.
35
36
  *
36
37
  * Native only.
37
38
  *
38
- * @param pointer - The WGPUTexture pointer (texture.nativePointer)
39
+ * @param texture - The GPUTexture (see {@link GPUTextureHandle})
39
40
  * @returns An SkSurface rendering into the texture, or throws if the texture is invalid
40
41
  */
41
- MakeFromNativeTexture: (pointer: bigint) => SkSurface;
42
+ MakeFromGPUTexture: (texture: GPUTextureHandle) => SkSurface;
42
43
  }
@@ -1 +1 @@
1
- {"version":3,"names":["ColorSpace","SRGB","DisplayP3"],"sources":["SurfaceFactory.ts"],"sourcesContent":["import type { SkSurface } from \"./Surface\";\n\nexport const ColorSpace = {\n SRGB: \"srgb\",\n DisplayP3: \"display-p3\",\n} as const;\n\nexport type ColorSpaceValue = (typeof ColorSpace)[keyof typeof ColorSpace];\n\nexport interface SurfaceOptions {\n colorSpace: ColorSpaceValue;\n}\n\nexport interface SurfaceFactory {\n /**\n * Returns a CPU backed surface with the given dimensions, an SRGB colorspace, Unpremul\n * alphaType and 8888 color type. The pixels belonging to this surface will be in memory and\n * not visible.\n * @param width - number of pixels of the width of the drawable area.\n * @param height - number of pixels of the height of the drawable area.\n */\n Make: (width: number, height: number) => SkSurface | null;\n\n /**\n * Creates a GPU backed surface.\n * @param width - number of pixels of the width of the drawable area.\n * @param height - number of pixels of the height of the drawable area.\n * @param opts - optional surface options (e.g. colorSpace: \"display-p3\" | \"srgb\").\n */\n MakeOffscreen: (\n width: number,\n height: number,\n opts?: SurfaceOptions\n ) => SkSurface | null;\n\n /**\n * Creates a GPU backed surface that draws directly into a WebGPU texture\n * (zero-copy). The texture must be created on Skia's device\n * (importDevice(Skia.getNativeDevice())) with RENDER_ATTACHMENT usage; add\n * TEXTURE_BINDING to sample what Skia drew from WebGPU after each flush().\n * The surface holds its own reference to the texture and keeps it alive\n * for its lifetime, so the caller may release the GPUTexture once the\n * surface exists. Calling destroy() on the GPUTexture still invalidates\n * the surface.\n *\n * Native only.\n *\n * @param pointer - The WGPUTexture pointer (texture.nativePointer)\n * @returns An SkSurface rendering into the texture, or throws if the texture is invalid\n */\n MakeFromNativeTexture: (pointer: bigint) => SkSurface;\n}\n"],"mappings":"AAEA,OAAO,MAAMA,UAAU,GAAG;EACxBC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAE;AACb,CAAU","ignoreList":[]}
1
+ {"version":3,"names":["ColorSpace","SRGB","DisplayP3"],"sources":["SurfaceFactory.ts"],"sourcesContent":["import type { GPUTextureHandle } from \"../GPUTexture\";\n\nimport type { SkSurface } from \"./Surface\";\n\nexport const ColorSpace = {\n SRGB: \"srgb\",\n DisplayP3: \"display-p3\",\n} as const;\n\nexport type ColorSpaceValue = (typeof ColorSpace)[keyof typeof ColorSpace];\n\nexport interface SurfaceOptions {\n colorSpace: ColorSpaceValue;\n}\n\nexport interface SurfaceFactory {\n /**\n * Returns a CPU backed surface with the given dimensions, an SRGB colorspace, Unpremul\n * alphaType and 8888 color type. The pixels belonging to this surface will be in memory and\n * not visible.\n * @param width - number of pixels of the width of the drawable area.\n * @param height - number of pixels of the height of the drawable area.\n */\n Make: (width: number, height: number) => SkSurface | null;\n\n /**\n * Creates a GPU backed surface.\n * @param width - number of pixels of the width of the drawable area.\n * @param height - number of pixels of the height of the drawable area.\n * @param opts - optional surface options (e.g. colorSpace: \"display-p3\" | \"srgb\").\n */\n MakeOffscreen: (\n width: number,\n height: number,\n opts?: SurfaceOptions\n ) => SkSurface | null;\n\n /**\n * Creates a GPU backed surface that draws directly into a WebGPU texture\n * (zero-copy). The texture must be created with React Native WebGPU on\n * the shared device (importDevice(Skia.getNativeDevice())) with the\n * RENDER_ATTACHMENT usage; add TEXTURE_BINDING to sample what Skia drew\n * from WebGPU after each flush(). The surface holds its own reference to\n * the texture and keeps it alive for its lifetime, so the caller may\n * release the GPUTexture once the surface exists. Calling destroy() on the\n * GPUTexture still invalidates the surface.\n *\n * Native only.\n *\n * @param texture - The GPUTexture (see {@link GPUTextureHandle})\n * @returns An SkSurface rendering into the texture, or throws if the texture is invalid\n */\n MakeFromGPUTexture: (texture: GPUTextureHandle) => SkSurface;\n}\n"],"mappings":"AAIA,OAAO,MAAMA,UAAU,GAAG;EACxBC,IAAI,EAAE,MAAM;EACZC,SAAS,EAAE;AACb,CAAU","ignoreList":[]}
@@ -29,8 +29,7 @@ export * from "./TextBlob";
29
29
  export * from "./Size";
30
30
  export * from "./Paragraph";
31
31
  export * from "./Matrix4";
32
- export * from "./NativeBuffer";
33
32
  export * from "./Recorder";
34
- export * from "./Video";
35
33
  export * from "./Skottie";
36
34
  export * from "./Graphite";
35
+ export * from "./GPUTexture";
@@ -29,9 +29,8 @@ export * from "./TextBlob";
29
29
  export * from "./Size";
30
30
  export * from "./Paragraph";
31
31
  export * from "./Matrix4";
32
- export * from "./NativeBuffer";
33
32
  export * from "./Recorder";
34
- export * from "./Video";
35
33
  export * from "./Skottie";
36
34
  export * from "./Graphite";
35
+ export * from "./GPUTexture";
37
36
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Picture\";\nexport * from \"./Data\";\nexport * from \"./SVG\";\nexport * from \"./Surface\";\nexport * from \"./Vertices\";\nexport * from \"./RuntimeEffect\";\nexport * from \"./Shader\";\nexport * from \"./Image\";\nexport * from \"./AnimatedImage\";\nexport * from \"./ColorFilter\";\nexport * from \"./ImageFilter\";\nexport * from \"./Font\";\nexport * from \"./Typeface\";\nexport * from \"./Paint\";\nexport * from \"./Path\";\nexport * from \"./Color\";\nexport * from \"./Canvas\";\nexport * from \"./ContourMeasure\";\nexport * from \"./MaskFilter\";\nexport * from \"./Matrix\";\nexport * from \"./PathEffect\";\nexport * from \"./Point\";\nexport * from \"./Rect\";\nexport * from \"./RRect\";\nexport * from \"./RSXform\";\nexport * from \"./JsiInstance\";\nexport * from \"./Skia\";\nexport * from \"./TextBlob\";\nexport * from \"./Size\";\nexport * from \"./Paragraph\";\nexport * from \"./Matrix4\";\nexport * from \"./NativeBuffer\";\nexport * from \"./Recorder\";\nexport * from \"./Video\";\nexport * from \"./Skottie\";\nexport * from \"./Graphite\";\n"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,cAAc,iBAAiB;AAC/B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,iBAAiB;AAC/B,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,kBAAkB;AAChC,cAAc,cAAc;AAC5B,cAAc,UAAU;AACxB,cAAc,cAAc;AAC5B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,WAAW;AACzB,cAAc,gBAAgB;AAC9B,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,YAAY","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Picture\";\nexport * from \"./Data\";\nexport * from \"./SVG\";\nexport * from \"./Surface\";\nexport * from \"./Vertices\";\nexport * from \"./RuntimeEffect\";\nexport * from \"./Shader\";\nexport * from \"./Image\";\nexport * from \"./AnimatedImage\";\nexport * from \"./ColorFilter\";\nexport * from \"./ImageFilter\";\nexport * from \"./Font\";\nexport * from \"./Typeface\";\nexport * from \"./Paint\";\nexport * from \"./Path\";\nexport * from \"./Color\";\nexport * from \"./Canvas\";\nexport * from \"./ContourMeasure\";\nexport * from \"./MaskFilter\";\nexport * from \"./Matrix\";\nexport * from \"./PathEffect\";\nexport * from \"./Point\";\nexport * from \"./Rect\";\nexport * from \"./RRect\";\nexport * from \"./RSXform\";\nexport * from \"./JsiInstance\";\nexport * from \"./Skia\";\nexport * from \"./TextBlob\";\nexport * from \"./Size\";\nexport * from \"./Paragraph\";\nexport * from \"./Matrix4\";\nexport * from \"./Recorder\";\nexport * from \"./Skottie\";\nexport * from \"./Graphite\";\nexport * from \"./GPUTexture\";\n"],"mappings":"AAAA,cAAc,WAAW;AACzB,cAAc,QAAQ;AACtB,cAAc,OAAO;AACrB,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,cAAc,iBAAiB;AAC/B,cAAc,UAAU;AACxB,cAAc,SAAS;AACvB,cAAc,iBAAiB;AAC/B,cAAc,eAAe;AAC7B,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,UAAU;AACxB,cAAc,kBAAkB;AAChC,cAAc,cAAc;AAC5B,cAAc,UAAU;AACxB,cAAc,cAAc;AAC5B,cAAc,SAAS;AACvB,cAAc,QAAQ;AACtB,cAAc,SAAS;AACvB,cAAc,WAAW;AACzB,cAAc,eAAe;AAC7B,cAAc,QAAQ;AACtB,cAAc,YAAY;AAC1B,cAAc,QAAQ;AACtB,cAAc,aAAa;AAC3B,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,cAAc,WAAW;AACzB,cAAc,YAAY;AAC1B,cAAc,cAAc","ignoreList":[]}
@@ -13,5 +13,4 @@ export declare class JsiSkImage extends HostObject<Image, "Image"> implements Sk
13
13
  encodeToBase64(fmt?: ImageFormat, quality?: number): string;
14
14
  readPixels(srcX?: number, srcY?: number, imageInfo?: ImageInfo): Float32Array<ArrayBufferLike> | Uint8Array<ArrayBufferLike> | null;
15
15
  makeNonTextureImage(): SkImage;
16
- getNativeTextureUnstable(): unknown;
17
16
  }
@@ -107,9 +107,5 @@ export class JsiSkImage extends HostObject {
107
107
  }
108
108
  return new JsiSkImage(this.CanvasKit, img);
109
109
  }
110
- getNativeTextureUnstable() {
111
- console.warn("getBackendTexture is not implemented on Web");
112
- return null;
113
- }
114
110
  }
115
111
  //# sourceMappingURL=JsiSkImage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getEnum","HostObject","JsiSkMatrix","JsiSkShader","toBase64String","bytes","Buffer","from","toString","CHUNK_SIZE","index","length","result","slice","Math","min","String","fromCharCode","apply","btoa","JsiSkImage","constructor","CanvasKit","ref","height","width","getImageInfo","info","colorType","value","alphaType","makeShaderOptions","tx","ty","fm","mm","localMatrix","fromValue","undefined","makeShaderCubic","B","C","encodeToBytes","fmt","quality","max","Error","encodeToBase64","readPixels","srcX","srcY","imageInfo","_imageInfo$width","_imageInfo$height","pxInfo","colorSpace","ColorSpace","SRGB","makeNonTextureImage","partialInfo","getColorSpace","pixels","img","MakeImage","getNativeTextureUnstable","console","warn"],"sources":["JsiSkImage.ts"],"sourcesContent":["import type {\n CanvasKit,\n ImageInfo as CKImageInfo,\n Image,\n} from \"canvaskit-wasm\";\n\nimport type {\n FilterMode,\n MipmapMode,\n SkImage,\n SkMatrix,\n SkShader,\n TileMode,\n ImageFormat,\n ImageInfo,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkShader } from \"./JsiSkShader\";\n\n// https://github.com/google/skia/blob/1f193df9b393d50da39570dab77a0bb5d28ec8ef/modules/canvaskit/htmlcanvas/util.js\nexport const toBase64String = (bytes: Uint8Array) => {\n if (typeof Buffer !== \"undefined\") {\n // Are we on node?\n return Buffer.from(bytes).toString(\"base64\");\n } else {\n // From https://stackoverflow.com/a/25644409\n // because the naive solution of\n // btoa(String.fromCharCode.apply(null, bytes));\n // would occasionally throw \"Maximum call stack size exceeded\"\n var CHUNK_SIZE = 0x8000; //arbitrary number\n var index = 0;\n var { length } = bytes;\n var result = \"\";\n var slice;\n while (index < length) {\n slice = bytes.slice(index, Math.min(index + CHUNK_SIZE, length));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result += String.fromCharCode.apply(null, slice as any);\n index += CHUNK_SIZE;\n }\n return btoa(result);\n }\n};\n\nexport class JsiSkImage extends HostObject<Image, \"Image\"> implements SkImage {\n constructor(CanvasKit: CanvasKit, ref: Image) {\n super(CanvasKit, ref, \"Image\");\n }\n\n height() {\n return this.ref.height();\n }\n\n width() {\n return this.ref.width();\n }\n\n getImageInfo(): ImageInfo {\n const info = this.ref.getImageInfo();\n return {\n width: info.width,\n height: info.height,\n colorType: info.colorType.value,\n alphaType: info.alphaType.value,\n };\n }\n\n makeShaderOptions(\n tx: TileMode,\n ty: TileMode,\n fm: FilterMode,\n mm: MipmapMode,\n localMatrix?: SkMatrix\n ): SkShader {\n return new JsiSkShader(\n this.CanvasKit,\n this.ref.makeShaderOptions(\n getEnum(this.CanvasKit, \"TileMode\", tx),\n getEnum(this.CanvasKit, \"TileMode\", ty),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n localMatrix ? JsiSkMatrix.fromValue(localMatrix) : undefined\n )\n );\n }\n\n makeShaderCubic(\n tx: TileMode,\n ty: TileMode,\n B: number,\n C: number,\n localMatrix?: SkMatrix\n ): SkShader {\n return new JsiSkShader(\n this.CanvasKit,\n this.ref.makeShaderCubic(\n getEnum(this.CanvasKit, \"TileMode\", tx),\n getEnum(this.CanvasKit, \"TileMode\", ty),\n B,\n C,\n localMatrix ? JsiSkMatrix.fromValue(localMatrix) : undefined\n )\n );\n }\n\n encodeToBytes(fmt?: ImageFormat, quality?: number) {\n let result: Uint8Array | null;\n if (fmt !== undefined && quality !== undefined) {\n // CanvasKit's encodeToBytes() applies `quality || 100`, which would\n // turn a valid quality of 0 into 100. The encoders clamp any quality\n // below 1 up to 1 anyway, so pass 1 to get the same output as 0.\n result = this.ref.encodeToBytes(\n getEnum(this.CanvasKit, \"ImageFormat\", fmt),\n Math.max(quality, 1)\n );\n } else if (fmt !== undefined) {\n result = this.ref.encodeToBytes(\n getEnum(this.CanvasKit, \"ImageFormat\", fmt)\n );\n } else {\n result = this.ref.encodeToBytes();\n }\n if (!result) {\n throw new Error(\"encodeToBytes failed\");\n }\n return result;\n }\n\n encodeToBase64(fmt?: ImageFormat, quality?: number) {\n const bytes = this.encodeToBytes(fmt, quality);\n return toBase64String(bytes);\n }\n\n // TODO: this is leaking on Web\n // Add signature with allocated buffer\n readPixels(srcX?: number, srcY?: number, imageInfo?: ImageInfo) {\n const info = this.getImageInfo();\n const pxInfo: CKImageInfo = {\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n width: imageInfo?.width ?? info.width,\n height: imageInfo?.height ?? info.height,\n alphaType: getEnum(\n this.CanvasKit,\n \"AlphaType\",\n (imageInfo ?? info).alphaType\n ),\n colorType: getEnum(\n this.CanvasKit,\n \"ColorType\",\n (imageInfo ?? info).colorType\n ),\n };\n return this.ref.readPixels(srcX ?? 0, srcY ?? 0, pxInfo);\n }\n\n makeNonTextureImage(): SkImage {\n // if the image is already a non-texture image, this is a no-op\n const partialInfo = this.ref.getImageInfo();\n const colorSpace = this.ref.getColorSpace();\n const info = {\n ...partialInfo,\n colorSpace,\n };\n const pixels = this.ref.readPixels(0, 0, info) as Uint8Array | null;\n if (!pixels) {\n throw new Error(\"Could not read pixels from image\");\n }\n const img = this.CanvasKit.MakeImage(info, pixels, info.width * 4);\n if (!img) {\n throw new Error(\"Could not create image from bytes\");\n }\n return new JsiSkImage(this.CanvasKit, img);\n }\n\n getNativeTextureUnstable(): unknown {\n console.warn(\"getBackendTexture is not implemented on Web\");\n return null;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["getEnum","HostObject","JsiSkMatrix","JsiSkShader","toBase64String","bytes","Buffer","from","toString","CHUNK_SIZE","index","length","result","slice","Math","min","String","fromCharCode","apply","btoa","JsiSkImage","constructor","CanvasKit","ref","height","width","getImageInfo","info","colorType","value","alphaType","makeShaderOptions","tx","ty","fm","mm","localMatrix","fromValue","undefined","makeShaderCubic","B","C","encodeToBytes","fmt","quality","max","Error","encodeToBase64","readPixels","srcX","srcY","imageInfo","_imageInfo$width","_imageInfo$height","pxInfo","colorSpace","ColorSpace","SRGB","makeNonTextureImage","partialInfo","getColorSpace","pixels","img","MakeImage"],"sources":["JsiSkImage.ts"],"sourcesContent":["import type {\n CanvasKit,\n ImageInfo as CKImageInfo,\n Image,\n} from \"canvaskit-wasm\";\n\nimport type {\n FilterMode,\n MipmapMode,\n SkImage,\n SkMatrix,\n SkShader,\n TileMode,\n ImageFormat,\n ImageInfo,\n} from \"../types\";\n\nimport { getEnum, HostObject } from \"./Host\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkShader } from \"./JsiSkShader\";\n\n// https://github.com/google/skia/blob/1f193df9b393d50da39570dab77a0bb5d28ec8ef/modules/canvaskit/htmlcanvas/util.js\nexport const toBase64String = (bytes: Uint8Array) => {\n if (typeof Buffer !== \"undefined\") {\n // Are we on node?\n return Buffer.from(bytes).toString(\"base64\");\n } else {\n // From https://stackoverflow.com/a/25644409\n // because the naive solution of\n // btoa(String.fromCharCode.apply(null, bytes));\n // would occasionally throw \"Maximum call stack size exceeded\"\n var CHUNK_SIZE = 0x8000; //arbitrary number\n var index = 0;\n var { length } = bytes;\n var result = \"\";\n var slice;\n while (index < length) {\n slice = bytes.slice(index, Math.min(index + CHUNK_SIZE, length));\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n result += String.fromCharCode.apply(null, slice as any);\n index += CHUNK_SIZE;\n }\n return btoa(result);\n }\n};\n\nexport class JsiSkImage extends HostObject<Image, \"Image\"> implements SkImage {\n constructor(CanvasKit: CanvasKit, ref: Image) {\n super(CanvasKit, ref, \"Image\");\n }\n\n height() {\n return this.ref.height();\n }\n\n width() {\n return this.ref.width();\n }\n\n getImageInfo(): ImageInfo {\n const info = this.ref.getImageInfo();\n return {\n width: info.width,\n height: info.height,\n colorType: info.colorType.value,\n alphaType: info.alphaType.value,\n };\n }\n\n makeShaderOptions(\n tx: TileMode,\n ty: TileMode,\n fm: FilterMode,\n mm: MipmapMode,\n localMatrix?: SkMatrix\n ): SkShader {\n return new JsiSkShader(\n this.CanvasKit,\n this.ref.makeShaderOptions(\n getEnum(this.CanvasKit, \"TileMode\", tx),\n getEnum(this.CanvasKit, \"TileMode\", ty),\n getEnum(this.CanvasKit, \"FilterMode\", fm),\n getEnum(this.CanvasKit, \"MipmapMode\", mm),\n localMatrix ? JsiSkMatrix.fromValue(localMatrix) : undefined\n )\n );\n }\n\n makeShaderCubic(\n tx: TileMode,\n ty: TileMode,\n B: number,\n C: number,\n localMatrix?: SkMatrix\n ): SkShader {\n return new JsiSkShader(\n this.CanvasKit,\n this.ref.makeShaderCubic(\n getEnum(this.CanvasKit, \"TileMode\", tx),\n getEnum(this.CanvasKit, \"TileMode\", ty),\n B,\n C,\n localMatrix ? JsiSkMatrix.fromValue(localMatrix) : undefined\n )\n );\n }\n\n encodeToBytes(fmt?: ImageFormat, quality?: number) {\n let result: Uint8Array | null;\n if (fmt !== undefined && quality !== undefined) {\n // CanvasKit's encodeToBytes() applies `quality || 100`, which would\n // turn a valid quality of 0 into 100. The encoders clamp any quality\n // below 1 up to 1 anyway, so pass 1 to get the same output as 0.\n result = this.ref.encodeToBytes(\n getEnum(this.CanvasKit, \"ImageFormat\", fmt),\n Math.max(quality, 1)\n );\n } else if (fmt !== undefined) {\n result = this.ref.encodeToBytes(\n getEnum(this.CanvasKit, \"ImageFormat\", fmt)\n );\n } else {\n result = this.ref.encodeToBytes();\n }\n if (!result) {\n throw new Error(\"encodeToBytes failed\");\n }\n return result;\n }\n\n encodeToBase64(fmt?: ImageFormat, quality?: number) {\n const bytes = this.encodeToBytes(fmt, quality);\n return toBase64String(bytes);\n }\n\n // TODO: this is leaking on Web\n // Add signature with allocated buffer\n readPixels(srcX?: number, srcY?: number, imageInfo?: ImageInfo) {\n const info = this.getImageInfo();\n const pxInfo: CKImageInfo = {\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n width: imageInfo?.width ?? info.width,\n height: imageInfo?.height ?? info.height,\n alphaType: getEnum(\n this.CanvasKit,\n \"AlphaType\",\n (imageInfo ?? info).alphaType\n ),\n colorType: getEnum(\n this.CanvasKit,\n \"ColorType\",\n (imageInfo ?? info).colorType\n ),\n };\n return this.ref.readPixels(srcX ?? 0, srcY ?? 0, pxInfo);\n }\n\n makeNonTextureImage(): SkImage {\n // if the image is already a non-texture image, this is a no-op\n const partialInfo = this.ref.getImageInfo();\n const colorSpace = this.ref.getColorSpace();\n const info = {\n ...partialInfo,\n colorSpace,\n };\n const pixels = this.ref.readPixels(0, 0, info) as Uint8Array | null;\n if (!pixels) {\n throw new Error(\"Could not read pixels from image\");\n }\n const img = this.CanvasKit.MakeImage(info, pixels, info.width * 4);\n if (!img) {\n throw new Error(\"Could not create image from bytes\");\n }\n return new JsiSkImage(this.CanvasKit, img);\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { CanvasKit } from "canvaskit-wasm";
2
- import type { SkData, ImageInfo, SkImage, NativeBuffer, ImageFactory } from "../types";
2
+ import type { SkData, ImageInfo, SkImage, ImageFactory, GPUTextureHandle } from "../types";
3
3
  import { Host } from "./Host";
4
4
  import { JsiSkImage } from "./JsiSkImage";
5
5
  import type { JsiSkSurface } from "./JsiSkSurface";
@@ -7,10 +7,9 @@ export declare class JsiSkImageFactory extends Host implements ImageFactory {
7
7
  constructor(CanvasKit: CanvasKit);
8
8
  MakeNull(): JsiSkImage;
9
9
  MakeImageFromViewTag(viewTag: number): Promise<SkImage | null>;
10
- MakeImageFromNativeBuffer(buffer: NativeBuffer, surface?: JsiSkSurface, image?: JsiSkImage): JsiSkImage;
10
+ MakeImageFromNativeBuffer(buffer: CanvasImageSource, surface?: JsiSkSurface, image?: JsiSkImage): JsiSkImage;
11
11
  MakeImageFromEncoded(encoded: SkData): JsiSkImage | null;
12
- MakeImageFromNativeTextureUnstable(): SkImage;
13
12
  MakeImage(info: ImageInfo, data: SkData, bytesPerRow: number): JsiSkImage | null;
14
- MakeImageFromNativeTexture(_pointer: bigint): SkImage;
15
- MakeNativeTextureFromImage(_image: SkImage): bigint;
13
+ MakeImageFromGPUTexture(_texture: GPUTextureHandle): SkImage;
14
+ MakeGPUTextureFromImage(_image: SkImage): bigint;
16
15
  }
@@ -1,7 +1,8 @@
1
- import { CanvasKitWebGLBuffer, isNativeBufferWeb } from "../types";
2
1
  import { Host, getEnum, throwNotImplementedOnRNWeb } from "./Host";
3
2
  import { JsiSkImage } from "./JsiSkImage";
4
3
  import { JsiSkData } from "./JsiSkData";
4
+ // The video element of a playing video, an ImageBitmap, a canvas...
5
+ const isCanvasImageSource = buffer => buffer instanceof HTMLVideoElement || buffer instanceof HTMLCanvasElement || buffer instanceof ImageBitmap || buffer instanceof OffscreenCanvas || typeof VideoFrame !== "undefined" && buffer instanceof VideoFrame || buffer instanceof HTMLImageElement || buffer instanceof SVGImageElement;
5
6
  export class JsiSkImageFactory extends Host {
6
7
  constructor(CanvasKit) {
7
8
  super(CanvasKit);
@@ -16,15 +17,13 @@ export class JsiSkImageFactory extends Host {
16
17
  return Promise.resolve(null);
17
18
  }
18
19
  MakeImageFromNativeBuffer(buffer, surface, image) {
19
- if (!isNativeBufferWeb(buffer)) {
20
- throw new Error("Invalid NativeBuffer");
20
+ if (!isCanvasImageSource(buffer)) {
21
+ throw new Error("MakeImageFromNativeBuffer expects a CanvasImageSource");
21
22
  }
22
23
  if (!surface) {
23
24
  let img;
24
25
  if (buffer instanceof HTMLImageElement || buffer instanceof HTMLVideoElement || buffer instanceof ImageBitmap) {
25
26
  img = this.CanvasKit.MakeLazyImageFromTextureSource(buffer);
26
- } else if (buffer instanceof CanvasKitWebGLBuffer) {
27
- img = buffer.toImage();
28
27
  } else {
29
28
  img = this.CanvasKit.MakeImageFromCanvasImageSource(buffer);
30
29
  }
@@ -46,9 +45,6 @@ export class JsiSkImageFactory extends Host {
46
45
  }
47
46
  return new JsiSkImage(this.CanvasKit, image);
48
47
  }
49
- MakeImageFromNativeTextureUnstable() {
50
- return throwNotImplementedOnRNWeb();
51
- }
52
48
  MakeImage(info, data, bytesPerRow) {
53
49
  // see toSkImageInfo() from canvaskit
54
50
  const image = this.CanvasKit.MakeImage({
@@ -63,10 +59,10 @@ export class JsiSkImageFactory extends Host {
63
59
  }
64
60
  return new JsiSkImage(this.CanvasKit, image);
65
61
  }
66
- MakeImageFromNativeTexture(_pointer) {
62
+ MakeImageFromGPUTexture(_texture) {
67
63
  return throwNotImplementedOnRNWeb();
68
64
  }
69
- MakeNativeTextureFromImage(_image) {
65
+ MakeGPUTextureFromImage(_image) {
70
66
  return throwNotImplementedOnRNWeb();
71
67
  }
72
68
  }
@@ -1 +1 @@
1
- {"version":3,"names":["CanvasKitWebGLBuffer","isNativeBufferWeb","Host","getEnum","throwNotImplementedOnRNWeb","JsiSkImage","JsiSkData","JsiSkImageFactory","constructor","CanvasKit","MakeNull","MakeImageFromViewTag","viewTag","view","console","log","Promise","resolve","MakeImageFromNativeBuffer","buffer","surface","image","Error","img","HTMLImageElement","HTMLVideoElement","ImageBitmap","MakeLazyImageFromTextureSource","toImage","MakeImageFromCanvasImageSource","makeImageFromTextureSource","updateTextureFromSource","MakeImageFromEncoded","encoded","fromValue","MakeImageFromNativeTextureUnstable","MakeImage","info","data","bytesPerRow","alphaType","colorSpace","ColorSpace","SRGB","colorType","height","width","MakeImageFromNativeTexture","_pointer","MakeNativeTextureFromImage","_image"],"sources":["JsiSkImageFactory.ts"],"sourcesContent":["import type { CanvasKit, Image } from \"canvaskit-wasm\";\n\nimport { CanvasKitWebGLBuffer, isNativeBufferWeb } from \"../types\";\nimport type {\n SkData,\n ImageInfo,\n SkImage,\n NativeBuffer,\n ImageFactory,\n} from \"../types\";\n\nimport { Host, getEnum, throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkData } from \"./JsiSkData\";\nimport type { JsiSkSurface } from \"./JsiSkSurface\";\nimport type { CanvasKitWebGLBufferImpl } from \"./CanvasKitWebGLBufferImpl\";\n\nexport class JsiSkImageFactory extends Host implements ImageFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeNull() {\n return new JsiSkImage(this.CanvasKit, null as unknown as Image);\n }\n\n MakeImageFromViewTag(viewTag: number): Promise<SkImage | null> {\n const view = viewTag as unknown as HTMLElement;\n // TODO: Implement screenshot from view in React JS\n console.log(view);\n return Promise.resolve(null);\n }\n\n MakeImageFromNativeBuffer(\n buffer: NativeBuffer,\n surface?: JsiSkSurface,\n image?: JsiSkImage\n ) {\n if (!isNativeBufferWeb(buffer)) {\n throw new Error(\"Invalid NativeBuffer\");\n }\n if (!surface) {\n let img: Image;\n if (\n buffer instanceof HTMLImageElement ||\n buffer instanceof HTMLVideoElement ||\n buffer instanceof ImageBitmap\n ) {\n img = this.CanvasKit.MakeLazyImageFromTextureSource(buffer);\n } else if (buffer instanceof CanvasKitWebGLBuffer) {\n img = (\n buffer as CanvasKitWebGLBuffer as CanvasKitWebGLBufferImpl\n ).toImage();\n } else {\n img = this.CanvasKit.MakeImageFromCanvasImageSource(buffer);\n }\n return new JsiSkImage(this.CanvasKit, img);\n } else if (!image) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const img = (surface as any).makeImageFromTextureSource(buffer) as Image;\n return new JsiSkImage(this.CanvasKit, img);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const img = (surface as any).updateTextureFromSource(\n image,\n buffer\n ) as Image;\n return new JsiSkImage(this.CanvasKit, img);\n }\n }\n\n MakeImageFromEncoded(encoded: SkData) {\n const image = this.CanvasKit.MakeImageFromEncoded(\n JsiSkData.fromValue(encoded)\n );\n if (image === null) {\n return null;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n\n MakeImageFromNativeTextureUnstable() {\n return throwNotImplementedOnRNWeb<SkImage>();\n }\n\n MakeImage(info: ImageInfo, data: SkData, bytesPerRow: number) {\n // see toSkImageInfo() from canvaskit\n const image = this.CanvasKit.MakeImage(\n {\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", info.alphaType),\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n colorType: getEnum(this.CanvasKit, \"ColorType\", info.colorType),\n height: info.height,\n width: info.width,\n },\n JsiSkData.fromValue(data),\n bytesPerRow\n );\n if (image === null) {\n return null;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n\n MakeImageFromNativeTexture(_pointer: bigint): SkImage {\n return throwNotImplementedOnRNWeb<SkImage>();\n }\n\n MakeNativeTextureFromImage(_image: SkImage): bigint {\n return throwNotImplementedOnRNWeb<bigint>();\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Host","getEnum","throwNotImplementedOnRNWeb","JsiSkImage","JsiSkData","isCanvasImageSource","buffer","HTMLVideoElement","HTMLCanvasElement","ImageBitmap","OffscreenCanvas","VideoFrame","HTMLImageElement","SVGImageElement","JsiSkImageFactory","constructor","CanvasKit","MakeNull","MakeImageFromViewTag","viewTag","view","console","log","Promise","resolve","MakeImageFromNativeBuffer","surface","image","Error","img","MakeLazyImageFromTextureSource","MakeImageFromCanvasImageSource","makeImageFromTextureSource","updateTextureFromSource","MakeImageFromEncoded","encoded","fromValue","MakeImage","info","data","bytesPerRow","alphaType","colorSpace","ColorSpace","SRGB","colorType","height","width","MakeImageFromGPUTexture","_texture","MakeGPUTextureFromImage","_image"],"sources":["JsiSkImageFactory.ts"],"sourcesContent":["import type { CanvasKit, Image } from \"canvaskit-wasm\";\n\nimport type {\n SkData,\n ImageInfo,\n SkImage,\n ImageFactory,\n GPUTextureHandle,\n} from \"../types\";\n\nimport { Host, getEnum, throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkData } from \"./JsiSkData\";\nimport type { JsiSkSurface } from \"./JsiSkSurface\";\n\n// The video element of a playing video, an ImageBitmap, a canvas...\nconst isCanvasImageSource = (buffer: unknown): buffer is CanvasImageSource =>\n buffer instanceof HTMLVideoElement ||\n buffer instanceof HTMLCanvasElement ||\n buffer instanceof ImageBitmap ||\n buffer instanceof OffscreenCanvas ||\n (typeof VideoFrame !== \"undefined\" && buffer instanceof VideoFrame) ||\n buffer instanceof HTMLImageElement ||\n buffer instanceof SVGImageElement;\n\nexport class JsiSkImageFactory extends Host implements ImageFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeNull() {\n return new JsiSkImage(this.CanvasKit, null as unknown as Image);\n }\n\n MakeImageFromViewTag(viewTag: number): Promise<SkImage | null> {\n const view = viewTag as unknown as HTMLElement;\n // TODO: Implement screenshot from view in React JS\n console.log(view);\n return Promise.resolve(null);\n }\n\n MakeImageFromNativeBuffer(\n buffer: CanvasImageSource,\n surface?: JsiSkSurface,\n image?: JsiSkImage\n ) {\n if (!isCanvasImageSource(buffer)) {\n throw new Error(\"MakeImageFromNativeBuffer expects a CanvasImageSource\");\n }\n if (!surface) {\n let img: Image;\n if (\n buffer instanceof HTMLImageElement ||\n buffer instanceof HTMLVideoElement ||\n buffer instanceof ImageBitmap\n ) {\n img = this.CanvasKit.MakeLazyImageFromTextureSource(buffer);\n } else {\n img = this.CanvasKit.MakeImageFromCanvasImageSource(buffer);\n }\n return new JsiSkImage(this.CanvasKit, img);\n } else if (!image) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const img = (surface as any).makeImageFromTextureSource(buffer) as Image;\n return new JsiSkImage(this.CanvasKit, img);\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const img = (surface as any).updateTextureFromSource(\n image,\n buffer\n ) as Image;\n return new JsiSkImage(this.CanvasKit, img);\n }\n }\n\n MakeImageFromEncoded(encoded: SkData) {\n const image = this.CanvasKit.MakeImageFromEncoded(\n JsiSkData.fromValue(encoded)\n );\n if (image === null) {\n return null;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n\n MakeImage(info: ImageInfo, data: SkData, bytesPerRow: number) {\n // see toSkImageInfo() from canvaskit\n const image = this.CanvasKit.MakeImage(\n {\n alphaType: getEnum(this.CanvasKit, \"AlphaType\", info.alphaType),\n colorSpace: this.CanvasKit.ColorSpace.SRGB,\n colorType: getEnum(this.CanvasKit, \"ColorType\", info.colorType),\n height: info.height,\n width: info.width,\n },\n JsiSkData.fromValue(data),\n bytesPerRow\n );\n if (image === null) {\n return null;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n\n MakeImageFromGPUTexture(_texture: GPUTextureHandle): SkImage {\n return throwNotImplementedOnRNWeb<SkImage>();\n }\n\n MakeGPUTextureFromImage(_image: SkImage): bigint {\n return throwNotImplementedOnRNWeb<bigint>();\n }\n}\n"],"mappings":"AAUA,SAASA,IAAI,EAAEC,OAAO,EAAEC,0BAA0B,QAAQ,QAAQ;AAClE,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,SAAS,QAAQ,aAAa;AAGvC;AACA,MAAMC,mBAAmB,GAAIC,MAAe,IAC1CA,MAAM,YAAYC,gBAAgB,IAClCD,MAAM,YAAYE,iBAAiB,IACnCF,MAAM,YAAYG,WAAW,IAC7BH,MAAM,YAAYI,eAAe,IAChC,OAAOC,UAAU,KAAK,WAAW,IAAIL,MAAM,YAAYK,UAAW,IACnEL,MAAM,YAAYM,gBAAgB,IAClCN,MAAM,YAAYO,eAAe;AAEnC,OAAO,MAAMC,iBAAiB,SAASd,IAAI,CAAyB;EAClEe,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,QAAQA,CAAA,EAAG;IACT,OAAO,IAAId,UAAU,CAAC,IAAI,CAACa,SAAS,EAAE,IAAwB,CAAC;EACjE;EAEAE,oBAAoBA,CAACC,OAAe,EAA2B;IAC7D,MAAMC,IAAI,GAAGD,OAAiC;IAC9C;IACAE,OAAO,CAACC,GAAG,CAACF,IAAI,CAAC;IACjB,OAAOG,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAC9B;EAEAC,yBAAyBA,CACvBnB,MAAyB,EACzBoB,OAAsB,EACtBC,KAAkB,EAClB;IACA,IAAI,CAACtB,mBAAmB,CAACC,MAAM,CAAC,EAAE;MAChC,MAAM,IAAIsB,KAAK,CAAC,uDAAuD,CAAC;IAC1E;IACA,IAAI,CAACF,OAAO,EAAE;MACZ,IAAIG,GAAU;MACd,IACEvB,MAAM,YAAYM,gBAAgB,IAClCN,MAAM,YAAYC,gBAAgB,IAClCD,MAAM,YAAYG,WAAW,EAC7B;QACAoB,GAAG,GAAG,IAAI,CAACb,SAAS,CAACc,8BAA8B,CAACxB,MAAM,CAAC;MAC7D,CAAC,MAAM;QACLuB,GAAG,GAAG,IAAI,CAACb,SAAS,CAACe,8BAA8B,CAACzB,MAAM,CAAC;MAC7D;MACA,OAAO,IAAIH,UAAU,CAAC,IAAI,CAACa,SAAS,EAAEa,GAAG,CAAC;IAC5C,CAAC,MAAM,IAAI,CAACF,KAAK,EAAE;MACjB;MACA,MAAME,GAAG,GAAIH,OAAO,CAASM,0BAA0B,CAAC1B,MAAM,CAAU;MACxE,OAAO,IAAIH,UAAU,CAAC,IAAI,CAACa,SAAS,EAAEa,GAAG,CAAC;IAC5C,CAAC,MAAM;MACL;MACA,MAAMA,GAAG,GAAIH,OAAO,CAASO,uBAAuB,CAClDN,KAAK,EACLrB,MACF,CAAU;MACV,OAAO,IAAIH,UAAU,CAAC,IAAI,CAACa,SAAS,EAAEa,GAAG,CAAC;IAC5C;EACF;EAEAK,oBAAoBA,CAACC,OAAe,EAAE;IACpC,MAAMR,KAAK,GAAG,IAAI,CAACX,SAAS,CAACkB,oBAAoB,CAC/C9B,SAAS,CAACgC,SAAS,CAACD,OAAO,CAC7B,CAAC;IACD,IAAIR,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO,IAAI;IACb;IACA,OAAO,IAAIxB,UAAU,CAAC,IAAI,CAACa,SAAS,EAAEW,KAAK,CAAC;EAC9C;EAEAU,SAASA,CAACC,IAAe,EAAEC,IAAY,EAAEC,WAAmB,EAAE;IAC5D;IACA,MAAMb,KAAK,GAAG,IAAI,CAACX,SAAS,CAACqB,SAAS,CACpC;MACEI,SAAS,EAAExC,OAAO,CAAC,IAAI,CAACe,SAAS,EAAE,WAAW,EAAEsB,IAAI,CAACG,SAAS,CAAC;MAC/DC,UAAU,EAAE,IAAI,CAAC1B,SAAS,CAAC2B,UAAU,CAACC,IAAI;MAC1CC,SAAS,EAAE5C,OAAO,CAAC,IAAI,CAACe,SAAS,EAAE,WAAW,EAAEsB,IAAI,CAACO,SAAS,CAAC;MAC/DC,MAAM,EAAER,IAAI,CAACQ,MAAM;MACnBC,KAAK,EAAET,IAAI,CAACS;IACd,CAAC,EACD3C,SAAS,CAACgC,SAAS,CAACG,IAAI,CAAC,EACzBC,WACF,CAAC;IACD,IAAIb,KAAK,KAAK,IAAI,EAAE;MAClB,OAAO,IAAI;IACb;IACA,OAAO,IAAIxB,UAAU,CAAC,IAAI,CAACa,SAAS,EAAEW,KAAK,CAAC;EAC9C;EAEAqB,uBAAuBA,CAACC,QAA0B,EAAW;IAC3D,OAAO/C,0BAA0B,CAAU,CAAC;EAC9C;EAEAgD,uBAAuBA,CAACC,MAAe,EAAU;IAC/C,OAAOjD,0BAA0B,CAAS,CAAC;EAC7C;AACF","ignoreList":[]}
@@ -10,5 +10,4 @@ export declare class JsiSkSurface extends HostObject<Surface, "Surface"> impleme
10
10
  height(): number;
11
11
  getCanvas(): SkCanvas;
12
12
  makeImageSnapshot(bounds?: SkRect, outputImage?: JsiSkImage): SkImage;
13
- getNativeTextureUnstable(): unknown;
14
13
  }
@@ -29,9 +29,5 @@ export class JsiSkSurface extends HostObject {
29
29
  }
30
30
  return new JsiSkImage(this.CanvasKit, image);
31
31
  }
32
- getNativeTextureUnstable() {
33
- console.warn("getBackendTexture is not implemented on Web");
34
- return null;
35
- }
36
32
  }
37
33
  //# sourceMappingURL=JsiSkSurface.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["HostObject","JsiSkCanvas","JsiSkImage","JsiSkRect","JsiSkSurface","constructor","CanvasKit","ref","Symbol","dispose","flush","_sync","width","height","getCanvas","makeImageSnapshot","bounds","outputImage","image","Array","from","fromValue","undefined","getNativeTextureUnstable","console","warn"],"sources":["JsiSkSurface.ts"],"sourcesContent":["import type { CanvasKit, Surface } from \"canvaskit-wasm\";\n\nimport type { SkCanvas, SkImage, SkRect, SkSurface } from \"../types\";\n\nimport { HostObject } from \"./Host\";\nimport { JsiSkCanvas } from \"./JsiSkCanvas\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkRect } from \"./JsiSkRect\";\n\nexport class JsiSkSurface\n extends HostObject<Surface, \"Surface\">\n implements SkSurface\n{\n constructor(CanvasKit: CanvasKit, ref: Surface) {\n super(CanvasKit, ref, \"Surface\");\n }\n\n [Symbol.dispose]() {\n this.ref.dispose();\n }\n\n flush(_sync?: boolean) {\n // CanvasKit has no separate CPU sync; flush() is sufficient on the web backend.\n this.ref.flush();\n }\n\n width() {\n return this.ref.width();\n }\n\n height() {\n return this.ref.height();\n }\n\n getCanvas(): SkCanvas {\n return new JsiSkCanvas(this.CanvasKit, this.ref.getCanvas());\n }\n\n makeImageSnapshot(bounds?: SkRect, outputImage?: JsiSkImage): SkImage {\n const image = this.ref.makeImageSnapshot(\n bounds\n ? Array.from(JsiSkRect.fromValue(this.CanvasKit, bounds))\n : undefined\n );\n if (outputImage) {\n outputImage.ref = image;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n\n getNativeTextureUnstable(): unknown {\n console.warn(\"getBackendTexture is not implemented on Web\");\n return null;\n }\n}\n"],"mappings":"AAIA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,SAAS,QAAQ,aAAa;AAEvC,OAAO,MAAMC,YAAY,SACfJ,UAAU,CAEpB;EACEK,WAAWA,CAACC,SAAoB,EAAEC,GAAY,EAAE;IAC9C,KAAK,CAACD,SAAS,EAAEC,GAAG,EAAE,SAAS,CAAC;EAClC;EAEA,CAACC,MAAM,CAACC,OAAO,IAAI;IACjB,IAAI,CAACF,GAAG,CAACE,OAAO,CAAC,CAAC;EACpB;EAEAC,KAAKA,CAACC,KAAe,EAAE;IACrB;IACA,IAAI,CAACJ,GAAG,CAACG,KAAK,CAAC,CAAC;EAClB;EAEAE,KAAKA,CAAA,EAAG;IACN,OAAO,IAAI,CAACL,GAAG,CAACK,KAAK,CAAC,CAAC;EACzB;EAEAC,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI,CAACN,GAAG,CAACM,MAAM,CAAC,CAAC;EAC1B;EAEAC,SAASA,CAAA,EAAa;IACpB,OAAO,IAAIb,WAAW,CAAC,IAAI,CAACK,SAAS,EAAE,IAAI,CAACC,GAAG,CAACO,SAAS,CAAC,CAAC,CAAC;EAC9D;EAEAC,iBAAiBA,CAACC,MAAe,EAAEC,WAAwB,EAAW;IACpE,MAAMC,KAAK,GAAG,IAAI,CAACX,GAAG,CAACQ,iBAAiB,CACtCC,MAAM,GACFG,KAAK,CAACC,IAAI,CAACjB,SAAS,CAACkB,SAAS,CAAC,IAAI,CAACf,SAAS,EAAEU,MAAM,CAAC,CAAC,GACvDM,SACN,CAAC;IACD,IAAIL,WAAW,EAAE;MACfA,WAAW,CAACV,GAAG,GAAGW,KAAK;IACzB;IACA,OAAO,IAAIhB,UAAU,CAAC,IAAI,CAACI,SAAS,EAAEY,KAAK,CAAC;EAC9C;EAEAK,wBAAwBA,CAAA,EAAY;IAClCC,OAAO,CAACC,IAAI,CAAC,6CAA6C,CAAC;IAC3D,OAAO,IAAI;EACb;AACF","ignoreList":[]}
1
+ {"version":3,"names":["HostObject","JsiSkCanvas","JsiSkImage","JsiSkRect","JsiSkSurface","constructor","CanvasKit","ref","Symbol","dispose","flush","_sync","width","height","getCanvas","makeImageSnapshot","bounds","outputImage","image","Array","from","fromValue","undefined"],"sources":["JsiSkSurface.ts"],"sourcesContent":["import type { CanvasKit, Surface } from \"canvaskit-wasm\";\n\nimport type { SkCanvas, SkImage, SkRect, SkSurface } from \"../types\";\n\nimport { HostObject } from \"./Host\";\nimport { JsiSkCanvas } from \"./JsiSkCanvas\";\nimport { JsiSkImage } from \"./JsiSkImage\";\nimport { JsiSkRect } from \"./JsiSkRect\";\n\nexport class JsiSkSurface\n extends HostObject<Surface, \"Surface\">\n implements SkSurface\n{\n constructor(CanvasKit: CanvasKit, ref: Surface) {\n super(CanvasKit, ref, \"Surface\");\n }\n\n [Symbol.dispose]() {\n this.ref.dispose();\n }\n\n flush(_sync?: boolean) {\n // CanvasKit has no separate CPU sync; flush() is sufficient on the web backend.\n this.ref.flush();\n }\n\n width() {\n return this.ref.width();\n }\n\n height() {\n return this.ref.height();\n }\n\n getCanvas(): SkCanvas {\n return new JsiSkCanvas(this.CanvasKit, this.ref.getCanvas());\n }\n\n makeImageSnapshot(bounds?: SkRect, outputImage?: JsiSkImage): SkImage {\n const image = this.ref.makeImageSnapshot(\n bounds\n ? Array.from(JsiSkRect.fromValue(this.CanvasKit, bounds))\n : undefined\n );\n if (outputImage) {\n outputImage.ref = image;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n}\n"],"mappings":"AAIA,SAASA,UAAU,QAAQ,QAAQ;AACnC,SAASC,WAAW,QAAQ,eAAe;AAC3C,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,SAAS,QAAQ,aAAa;AAEvC,OAAO,MAAMC,YAAY,SACfJ,UAAU,CAEpB;EACEK,WAAWA,CAACC,SAAoB,EAAEC,GAAY,EAAE;IAC9C,KAAK,CAACD,SAAS,EAAEC,GAAG,EAAE,SAAS,CAAC;EAClC;EAEA,CAACC,MAAM,CAACC,OAAO,IAAI;IACjB,IAAI,CAACF,GAAG,CAACE,OAAO,CAAC,CAAC;EACpB;EAEAC,KAAKA,CAACC,KAAe,EAAE;IACrB;IACA,IAAI,CAACJ,GAAG,CAACG,KAAK,CAAC,CAAC;EAClB;EAEAE,KAAKA,CAAA,EAAG;IACN,OAAO,IAAI,CAACL,GAAG,CAACK,KAAK,CAAC,CAAC;EACzB;EAEAC,MAAMA,CAAA,EAAG;IACP,OAAO,IAAI,CAACN,GAAG,CAACM,MAAM,CAAC,CAAC;EAC1B;EAEAC,SAASA,CAAA,EAAa;IACpB,OAAO,IAAIb,WAAW,CAAC,IAAI,CAACK,SAAS,EAAE,IAAI,CAACC,GAAG,CAACO,SAAS,CAAC,CAAC,CAAC;EAC9D;EAEAC,iBAAiBA,CAACC,MAAe,EAAEC,WAAwB,EAAW;IACpE,MAAMC,KAAK,GAAG,IAAI,CAACX,GAAG,CAACQ,iBAAiB,CACtCC,MAAM,GACFG,KAAK,CAACC,IAAI,CAACjB,SAAS,CAACkB,SAAS,CAAC,IAAI,CAACf,SAAS,EAAEU,MAAM,CAAC,CAAC,GACvDM,SACN,CAAC;IACD,IAAIL,WAAW,EAAE;MACfA,WAAW,CAACV,GAAG,GAAGW,KAAK;IACzB;IACA,OAAO,IAAIhB,UAAU,CAAC,IAAI,CAACI,SAAS,EAAEY,KAAK,CAAC;EAC9C;AACF","ignoreList":[]}
@@ -1,10 +1,10 @@
1
1
  import type { CanvasKit } from "canvaskit-wasm";
2
- import type { SkSurface, SurfaceFactory } from "../types";
2
+ import type { GPUTextureHandle, SkSurface, SurfaceFactory } from "../types";
3
3
  import { Host } from "./Host";
4
4
  import { JsiSkSurface } from "./JsiSkSurface";
5
5
  export declare class JsiSkSurfaceFactory extends Host implements SurfaceFactory {
6
6
  constructor(CanvasKit: CanvasKit);
7
7
  Make(width: number, height: number): JsiSkSurface;
8
8
  MakeOffscreen(width: number, height: number): JsiSkSurface | null;
9
- MakeFromNativeTexture(_pointer: bigint): SkSurface;
9
+ MakeFromGPUTexture(_texture: GPUTextureHandle): SkSurface;
10
10
  }
@@ -28,7 +28,7 @@ export class JsiSkSurfaceFactory extends Host {
28
28
  }
29
29
  return new JsiSkSurface(this.CanvasKit, surface);
30
30
  }
31
- MakeFromNativeTexture(_pointer) {
31
+ MakeFromGPUTexture(_texture) {
32
32
  return throwNotImplementedOnRNWeb();
33
33
  }
34
34
  }
@@ -1 +1 @@
1
- {"version":3,"names":["Host","throwNotImplementedOnRNWeb","JsiSkSurface","JsiSkSurfaceFactory","constructor","CanvasKit","Make","width","height","MakeSurface","MakeOffscreen","OC","globalThis","OffscreenCanvas","surface","undefined","offscreen","webglContext","GetWebGLContext","grContext","MakeWebGLContext","Error","MakeRenderTarget","MakeFromNativeTexture","_pointer"],"sources":["JsiSkSurfaceFactory.ts"],"sourcesContent":["import type { CanvasKit, Surface } from \"canvaskit-wasm\";\n\nimport type { SkSurface, SurfaceFactory } from \"../types\";\n\nimport { Host, throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkSurface } from \"./JsiSkSurface\";\n\nexport class JsiSkSurfaceFactory extends Host implements SurfaceFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n Make(width: number, height: number) {\n return new JsiSkSurface(\n this.CanvasKit,\n this.CanvasKit.MakeSurface(width, height)!\n );\n }\n\n MakeOffscreen(width: number, height: number) {\n // OffscreenCanvas may be unvailable in some environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const OC = (globalThis as any).OffscreenCanvas;\n let surface: Surface | null;\n if (OC === undefined) {\n return this.Make(width, height);\n } else {\n const offscreen = new OC(width, height);\n const webglContext = this.CanvasKit.GetWebGLContext(offscreen);\n const grContext = this.CanvasKit.MakeWebGLContext(webglContext);\n if (!grContext) {\n throw new Error(\"Could not make a graphics context\");\n }\n surface = this.CanvasKit.MakeRenderTarget(grContext, width, height);\n }\n if (!surface) {\n return null;\n }\n return new JsiSkSurface(this.CanvasKit, surface);\n }\n\n MakeFromNativeTexture(_pointer: bigint): SkSurface {\n return throwNotImplementedOnRNWeb<SkSurface>();\n }\n}\n"],"mappings":"AAIA,SAASA,IAAI,EAAEC,0BAA0B,QAAQ,QAAQ;AACzD,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,OAAO,MAAMC,mBAAmB,SAASH,IAAI,CAA2B;EACtEI,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,IAAIA,CAACC,KAAa,EAAEC,MAAc,EAAE;IAClC,OAAO,IAAIN,YAAY,CACrB,IAAI,CAACG,SAAS,EACd,IAAI,CAACA,SAAS,CAACI,WAAW,CAACF,KAAK,EAAEC,MAAM,CAC1C,CAAC;EACH;EAEAE,aAAaA,CAACH,KAAa,EAAEC,MAAc,EAAE;IAC3C;IACA;IACA,MAAMG,EAAE,GAAIC,UAAU,CAASC,eAAe;IAC9C,IAAIC,OAAuB;IAC3B,IAAIH,EAAE,KAAKI,SAAS,EAAE;MACpB,OAAO,IAAI,CAACT,IAAI,CAACC,KAAK,EAAEC,MAAM,CAAC;IACjC,CAAC,MAAM;MACL,MAAMQ,SAAS,GAAG,IAAIL,EAAE,CAACJ,KAAK,EAAEC,MAAM,CAAC;MACvC,MAAMS,YAAY,GAAG,IAAI,CAACZ,SAAS,CAACa,eAAe,CAACF,SAAS,CAAC;MAC9D,MAAMG,SAAS,GAAG,IAAI,CAACd,SAAS,CAACe,gBAAgB,CAACH,YAAY,CAAC;MAC/D,IAAI,CAACE,SAAS,EAAE;QACd,MAAM,IAAIE,KAAK,CAAC,mCAAmC,CAAC;MACtD;MACAP,OAAO,GAAG,IAAI,CAACT,SAAS,CAACiB,gBAAgB,CAACH,SAAS,EAAEZ,KAAK,EAAEC,MAAM,CAAC;IACrE;IACA,IAAI,CAACM,OAAO,EAAE;MACZ,OAAO,IAAI;IACb;IACA,OAAO,IAAIZ,YAAY,CAAC,IAAI,CAACG,SAAS,EAAES,OAAO,CAAC;EAClD;EAEAS,qBAAqBA,CAACC,QAAgB,EAAa;IACjD,OAAOvB,0BAA0B,CAAY,CAAC;EAChD;AACF","ignoreList":[]}
1
+ {"version":3,"names":["Host","throwNotImplementedOnRNWeb","JsiSkSurface","JsiSkSurfaceFactory","constructor","CanvasKit","Make","width","height","MakeSurface","MakeOffscreen","OC","globalThis","OffscreenCanvas","surface","undefined","offscreen","webglContext","GetWebGLContext","grContext","MakeWebGLContext","Error","MakeRenderTarget","MakeFromGPUTexture","_texture"],"sources":["JsiSkSurfaceFactory.ts"],"sourcesContent":["import type { CanvasKit, Surface } from \"canvaskit-wasm\";\n\nimport type { GPUTextureHandle, SkSurface, SurfaceFactory } from \"../types\";\n\nimport { Host, throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkSurface } from \"./JsiSkSurface\";\n\nexport class JsiSkSurfaceFactory extends Host implements SurfaceFactory {\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n Make(width: number, height: number) {\n return new JsiSkSurface(\n this.CanvasKit,\n this.CanvasKit.MakeSurface(width, height)!\n );\n }\n\n MakeOffscreen(width: number, height: number) {\n // OffscreenCanvas may be unvailable in some environments.\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const OC = (globalThis as any).OffscreenCanvas;\n let surface: Surface | null;\n if (OC === undefined) {\n return this.Make(width, height);\n } else {\n const offscreen = new OC(width, height);\n const webglContext = this.CanvasKit.GetWebGLContext(offscreen);\n const grContext = this.CanvasKit.MakeWebGLContext(webglContext);\n if (!grContext) {\n throw new Error(\"Could not make a graphics context\");\n }\n surface = this.CanvasKit.MakeRenderTarget(grContext, width, height);\n }\n if (!surface) {\n return null;\n }\n return new JsiSkSurface(this.CanvasKit, surface);\n }\n\n MakeFromGPUTexture(_texture: GPUTextureHandle): SkSurface {\n return throwNotImplementedOnRNWeb<SkSurface>();\n }\n}\n"],"mappings":"AAIA,SAASA,IAAI,EAAEC,0BAA0B,QAAQ,QAAQ;AACzD,SAASC,YAAY,QAAQ,gBAAgB;AAE7C,OAAO,MAAMC,mBAAmB,SAASH,IAAI,CAA2B;EACtEI,WAAWA,CAACC,SAAoB,EAAE;IAChC,KAAK,CAACA,SAAS,CAAC;EAClB;EAEAC,IAAIA,CAACC,KAAa,EAAEC,MAAc,EAAE;IAClC,OAAO,IAAIN,YAAY,CACrB,IAAI,CAACG,SAAS,EACd,IAAI,CAACA,SAAS,CAACI,WAAW,CAACF,KAAK,EAAEC,MAAM,CAC1C,CAAC;EACH;EAEAE,aAAaA,CAACH,KAAa,EAAEC,MAAc,EAAE;IAC3C;IACA;IACA,MAAMG,EAAE,GAAIC,UAAU,CAASC,eAAe;IAC9C,IAAIC,OAAuB;IAC3B,IAAIH,EAAE,KAAKI,SAAS,EAAE;MACpB,OAAO,IAAI,CAACT,IAAI,CAACC,KAAK,EAAEC,MAAM,CAAC;IACjC,CAAC,MAAM;MACL,MAAMQ,SAAS,GAAG,IAAIL,EAAE,CAACJ,KAAK,EAAEC,MAAM,CAAC;MACvC,MAAMS,YAAY,GAAG,IAAI,CAACZ,SAAS,CAACa,eAAe,CAACF,SAAS,CAAC;MAC9D,MAAMG,SAAS,GAAG,IAAI,CAACd,SAAS,CAACe,gBAAgB,CAACH,YAAY,CAAC;MAC/D,IAAI,CAACE,SAAS,EAAE;QACd,MAAM,IAAIE,KAAK,CAAC,mCAAmC,CAAC;MACtD;MACAP,OAAO,GAAG,IAAI,CAACT,SAAS,CAACiB,gBAAgB,CAACH,SAAS,EAAEZ,KAAK,EAAEC,MAAM,CAAC;IACrE;IACA,IAAI,CAACM,OAAO,EAAE;MACZ,OAAO,IAAI;IACb;IACA,OAAO,IAAIZ,YAAY,CAAC,IAAI,CAACG,SAAS,EAAES,OAAO,CAAC;EAClD;EAEAS,kBAAkBA,CAACC,QAA0B,EAAa;IACxD,OAAOvB,0BAA0B,CAAY,CAAC;EAChD;AACF","ignoreList":[]}
@@ -30,8 +30,6 @@ import { JsiSkTypefaceFontProviderFactory } from "./JsiSkTypefaceFontProviderFac
30
30
  import { JsiSkFontMgrFactory } from "./JsiSkFontMgrFactory";
31
31
  import { JsiSkAnimatedImageFactory } from "./JsiSkAnimatedImageFactory";
32
32
  import { JsiSkParagraphBuilderFactory } from "./JsiSkParagraphBuilderFactory";
33
- import { JsiSkNativeBufferFactory } from "./JsiSkNativeBufferFactory";
34
- import { createVideo } from "./JsiVideo";
35
33
  import { throwNotImplementedOnRNWeb } from "./Host";
36
34
  import { JsiSkottieFactory } from "./JsiSkottieFactory";
37
35
  export const JsiSkApi = CanvasKit => ({
@@ -84,9 +82,7 @@ export const JsiSkApi = CanvasKit => ({
84
82
  TypefaceFontProvider: new JsiSkTypefaceFontProviderFactory(CanvasKit),
85
83
  FontMgr: new JsiSkFontMgrFactory(CanvasKit),
86
84
  ParagraphBuilder: new JsiSkParagraphBuilderFactory(CanvasKit),
87
- NativeBuffer: new JsiSkNativeBufferFactory(CanvasKit),
88
85
  Skottie: new JsiSkottieFactory(CanvasKit),
89
- Video: createVideo.bind(null, CanvasKit),
90
86
  Recorder: () => {
91
87
  return throwNotImplementedOnRNWeb();
92
88
  },
@@ -1 +1 @@
1
- {"version":3,"names":["JsiSkPoint","JsiSkPaint","JsiSkRect","Color","JsiSkSurfaceFactory","JsiSkRRect","JsiSkRSXform","JsiSkContourMeasureIter","JsiSkPictureRecorder","JsiSkPictureFactory","JsiSkPathFactory","JsiSkPathBuilderFactory","JsiSkMatrix","JsiSkColorFilterFactory","JsiSkTypefaceFactory","JsiSkMaskFilterFactory","JsiSkRuntimeEffectFactory","JsiSkImageFilterFactory","JsiSkShaderFactory","JsiSkPathEffectFactory","JsiSkDataFactory","JsiSkImageFactory","JsiSkSVGFactory","JsiSkTextBlobFactory","JsiSkFont","MakeVertices","JsiSkPath","JsiSkTypeface","JsiSkTypefaceFontProviderFactory","JsiSkFontMgrFactory","JsiSkAnimatedImageFactory","JsiSkParagraphBuilderFactory","JsiSkNativeBufferFactory","createVideo","throwNotImplementedOnRNWeb","JsiSkottieFactory","JsiSkApi","CanvasKit","Point","x","y","Float32Array","of","RuntimeShaderBuilder","_","RRectXY","rect","rx","ry","RSXform","scos","ssin","tx","ty","RSXformFromRadians","scale","r","px","py","s","Math","sin","c","cos","ContourMeasureIter","path","forceClosed","resScale","p","pathFromValue","iter","delete","Paint","paint","setAntiAlias","PictureRecorder","Picture","Path","PathBuilder","Matrix","matrix","identity","ColorFilter","Font","typeface","size","undefined","fromValue","Typeface","MaskFilter","RuntimeEffect","ImageFilter","Shader","PathEffect","bind","Data","Image","AnimatedImage","SVG","TextBlob","XYWHRect","width","height","Surface","TypefaceFontProvider","FontMgr","ParagraphBuilder","NativeBuffer","Skottie","Video","Recorder","getNativeDevice"],"sources":["JsiSkia.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\n JsiRecorder,\n SkContourMeasureIter,\n Skia,\n SkPath,\n SkRect,\n SkRuntimeEffect,\n SkRuntimeShaderBuilder,\n SkTypeface,\n} from \"../types\";\n\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { Color } from \"./JsiSkColor\";\nimport { JsiSkSurfaceFactory } from \"./JsiSkSurfaceFactory\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport { JsiSkContourMeasureIter } from \"./JsiSkContourMeasureIter\";\nimport { JsiSkPictureRecorder } from \"./JsiSkPictureRecorder\";\nimport { JsiSkPictureFactory } from \"./JsiSkPictureFactory\";\nimport { JsiSkPathFactory } from \"./JsiSkPathFactory\";\nimport { JsiSkPathBuilderFactory } from \"./JsiSkPathBuilderFactory\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkColorFilterFactory } from \"./JsiSkColorFilterFactory\";\nimport { JsiSkTypefaceFactory } from \"./JsiSkTypefaceFactory\";\nimport { JsiSkMaskFilterFactory } from \"./JsiSkMaskFilterFactory\";\nimport { JsiSkRuntimeEffectFactory } from \"./JsiSkRuntimeEffectFactory\";\nimport { JsiSkImageFilterFactory } from \"./JsiSkImageFilterFactory\";\nimport { JsiSkShaderFactory } from \"./JsiSkShaderFactory\";\nimport { JsiSkPathEffectFactory } from \"./JsiSkPathEffectFactory\";\nimport { JsiSkDataFactory } from \"./JsiSkDataFactory\";\nimport { JsiSkImageFactory } from \"./JsiSkImageFactory\";\nimport { JsiSkSVGFactory } from \"./JsiSkSVGFactory\";\nimport { JsiSkTextBlobFactory } from \"./JsiSkTextBlobFactory\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { MakeVertices } from \"./JsiSkVerticesFactory\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkTypeface } from \"./JsiSkTypeface\";\nimport { JsiSkTypefaceFontProviderFactory } from \"./JsiSkTypefaceFontProviderFactory\";\nimport { JsiSkFontMgrFactory } from \"./JsiSkFontMgrFactory\";\nimport { JsiSkAnimatedImageFactory } from \"./JsiSkAnimatedImageFactory\";\nimport { JsiSkParagraphBuilderFactory } from \"./JsiSkParagraphBuilderFactory\";\nimport { JsiSkNativeBufferFactory } from \"./JsiSkNativeBufferFactory\";\nimport { createVideo } from \"./JsiVideo\";\nimport { throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkottieFactory } from \"./JsiSkottieFactory\";\n\nexport const JsiSkApi = (CanvasKit: CanvasKit): Skia => ({\n Point: (x: number, y: number) =>\n new JsiSkPoint(CanvasKit, Float32Array.of(x, y)),\n RuntimeShaderBuilder: (_: SkRuntimeEffect) => {\n return throwNotImplementedOnRNWeb<SkRuntimeShaderBuilder>();\n },\n RRectXY: (rect: SkRect, rx: number, ry: number) =>\n new JsiSkRRect(CanvasKit, rect, rx, ry),\n RSXform: (scos: number, ssin: number, tx: number, ty: number) =>\n new JsiSkRSXform(CanvasKit, Float32Array.of(scos, ssin, tx, ty)),\n RSXformFromRadians: (\n scale: number,\n r: number,\n tx: number,\n ty: number,\n px: number,\n py: number\n ) => {\n const s = Math.sin(r) * scale;\n const c = Math.cos(r) * scale;\n return new JsiSkRSXform(\n CanvasKit,\n Float32Array.of(c, s, tx - c * px + s * py, ty - s * px - c * py)\n );\n },\n Color,\n ContourMeasureIter: (\n path: SkPath,\n forceClosed: boolean,\n resScale: number\n ): SkContourMeasureIter =>\n (() => {\n const p = JsiSkPath.pathFromValue(path);\n const iter = new JsiSkContourMeasureIter(\n CanvasKit,\n new CanvasKit.ContourMeasureIter(p, forceClosed, resScale)\n );\n p.delete();\n return iter;\n })(),\n Paint: () => {\n const paint = new JsiSkPaint(CanvasKit, new CanvasKit.Paint());\n paint.setAntiAlias(true);\n return paint;\n },\n PictureRecorder: () =>\n new JsiSkPictureRecorder(CanvasKit, new CanvasKit.PictureRecorder()),\n Picture: new JsiSkPictureFactory(CanvasKit),\n Path: new JsiSkPathFactory(CanvasKit),\n PathBuilder: new JsiSkPathBuilderFactory(CanvasKit),\n Matrix: (matrix?: readonly number[]) =>\n new JsiSkMatrix(\n CanvasKit,\n matrix\n ? Float32Array.of(...matrix)\n : Float32Array.of(...CanvasKit.Matrix.identity())\n ),\n ColorFilter: new JsiSkColorFilterFactory(CanvasKit),\n Font: (typeface?: SkTypeface, size?: number) =>\n new JsiSkFont(\n CanvasKit,\n new CanvasKit.Font(\n typeface === undefined ? null : JsiSkTypeface.fromValue(typeface),\n size\n )\n ),\n Typeface: new JsiSkTypefaceFactory(CanvasKit),\n MaskFilter: new JsiSkMaskFilterFactory(CanvasKit),\n RuntimeEffect: new JsiSkRuntimeEffectFactory(CanvasKit),\n ImageFilter: new JsiSkImageFilterFactory(CanvasKit),\n Shader: new JsiSkShaderFactory(CanvasKit),\n PathEffect: new JsiSkPathEffectFactory(CanvasKit),\n MakeVertices: MakeVertices.bind(null, CanvasKit),\n Data: new JsiSkDataFactory(CanvasKit),\n Image: new JsiSkImageFactory(CanvasKit),\n AnimatedImage: new JsiSkAnimatedImageFactory(CanvasKit),\n SVG: new JsiSkSVGFactory(CanvasKit),\n TextBlob: new JsiSkTextBlobFactory(CanvasKit),\n XYWHRect: (x: number, y: number, width: number, height: number) => {\n return new JsiSkRect(CanvasKit, CanvasKit.XYWHRect(x, y, width, height));\n },\n Surface: new JsiSkSurfaceFactory(CanvasKit),\n TypefaceFontProvider: new JsiSkTypefaceFontProviderFactory(CanvasKit),\n FontMgr: new JsiSkFontMgrFactory(CanvasKit),\n ParagraphBuilder: new JsiSkParagraphBuilderFactory(CanvasKit),\n NativeBuffer: new JsiSkNativeBufferFactory(CanvasKit),\n Skottie: new JsiSkottieFactory(CanvasKit),\n Video: createVideo.bind(null, CanvasKit),\n Recorder: () => {\n return throwNotImplementedOnRNWeb<JsiRecorder>();\n },\n getNativeDevice: () => {\n return throwNotImplementedOnRNWeb<bigint>();\n },\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["JsiSkPoint","JsiSkPaint","JsiSkRect","Color","JsiSkSurfaceFactory","JsiSkRRect","JsiSkRSXform","JsiSkContourMeasureIter","JsiSkPictureRecorder","JsiSkPictureFactory","JsiSkPathFactory","JsiSkPathBuilderFactory","JsiSkMatrix","JsiSkColorFilterFactory","JsiSkTypefaceFactory","JsiSkMaskFilterFactory","JsiSkRuntimeEffectFactory","JsiSkImageFilterFactory","JsiSkShaderFactory","JsiSkPathEffectFactory","JsiSkDataFactory","JsiSkImageFactory","JsiSkSVGFactory","JsiSkTextBlobFactory","JsiSkFont","MakeVertices","JsiSkPath","JsiSkTypeface","JsiSkTypefaceFontProviderFactory","JsiSkFontMgrFactory","JsiSkAnimatedImageFactory","JsiSkParagraphBuilderFactory","throwNotImplementedOnRNWeb","JsiSkottieFactory","JsiSkApi","CanvasKit","Point","x","y","Float32Array","of","RuntimeShaderBuilder","_","RRectXY","rect","rx","ry","RSXform","scos","ssin","tx","ty","RSXformFromRadians","scale","r","px","py","s","Math","sin","c","cos","ContourMeasureIter","path","forceClosed","resScale","p","pathFromValue","iter","delete","Paint","paint","setAntiAlias","PictureRecorder","Picture","Path","PathBuilder","Matrix","matrix","identity","ColorFilter","Font","typeface","size","undefined","fromValue","Typeface","MaskFilter","RuntimeEffect","ImageFilter","Shader","PathEffect","bind","Data","Image","AnimatedImage","SVG","TextBlob","XYWHRect","width","height","Surface","TypefaceFontProvider","FontMgr","ParagraphBuilder","Skottie","Recorder","getNativeDevice"],"sources":["JsiSkia.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\n JsiRecorder,\n SkContourMeasureIter,\n Skia,\n SkPath,\n SkRect,\n SkRuntimeEffect,\n SkRuntimeShaderBuilder,\n SkTypeface,\n} from \"../types\";\n\nimport { JsiSkPoint } from \"./JsiSkPoint\";\nimport { JsiSkPaint } from \"./JsiSkPaint\";\nimport { JsiSkRect } from \"./JsiSkRect\";\nimport { Color } from \"./JsiSkColor\";\nimport { JsiSkSurfaceFactory } from \"./JsiSkSurfaceFactory\";\nimport { JsiSkRRect } from \"./JsiSkRRect\";\nimport { JsiSkRSXform } from \"./JsiSkRSXform\";\nimport { JsiSkContourMeasureIter } from \"./JsiSkContourMeasureIter\";\nimport { JsiSkPictureRecorder } from \"./JsiSkPictureRecorder\";\nimport { JsiSkPictureFactory } from \"./JsiSkPictureFactory\";\nimport { JsiSkPathFactory } from \"./JsiSkPathFactory\";\nimport { JsiSkPathBuilderFactory } from \"./JsiSkPathBuilderFactory\";\nimport { JsiSkMatrix } from \"./JsiSkMatrix\";\nimport { JsiSkColorFilterFactory } from \"./JsiSkColorFilterFactory\";\nimport { JsiSkTypefaceFactory } from \"./JsiSkTypefaceFactory\";\nimport { JsiSkMaskFilterFactory } from \"./JsiSkMaskFilterFactory\";\nimport { JsiSkRuntimeEffectFactory } from \"./JsiSkRuntimeEffectFactory\";\nimport { JsiSkImageFilterFactory } from \"./JsiSkImageFilterFactory\";\nimport { JsiSkShaderFactory } from \"./JsiSkShaderFactory\";\nimport { JsiSkPathEffectFactory } from \"./JsiSkPathEffectFactory\";\nimport { JsiSkDataFactory } from \"./JsiSkDataFactory\";\nimport { JsiSkImageFactory } from \"./JsiSkImageFactory\";\nimport { JsiSkSVGFactory } from \"./JsiSkSVGFactory\";\nimport { JsiSkTextBlobFactory } from \"./JsiSkTextBlobFactory\";\nimport { JsiSkFont } from \"./JsiSkFont\";\nimport { MakeVertices } from \"./JsiSkVerticesFactory\";\nimport { JsiSkPath } from \"./JsiSkPath\";\nimport { JsiSkTypeface } from \"./JsiSkTypeface\";\nimport { JsiSkTypefaceFontProviderFactory } from \"./JsiSkTypefaceFontProviderFactory\";\nimport { JsiSkFontMgrFactory } from \"./JsiSkFontMgrFactory\";\nimport { JsiSkAnimatedImageFactory } from \"./JsiSkAnimatedImageFactory\";\nimport { JsiSkParagraphBuilderFactory } from \"./JsiSkParagraphBuilderFactory\";\nimport { throwNotImplementedOnRNWeb } from \"./Host\";\nimport { JsiSkottieFactory } from \"./JsiSkottieFactory\";\n\nexport const JsiSkApi = (CanvasKit: CanvasKit): Skia => ({\n Point: (x: number, y: number) =>\n new JsiSkPoint(CanvasKit, Float32Array.of(x, y)),\n RuntimeShaderBuilder: (_: SkRuntimeEffect) => {\n return throwNotImplementedOnRNWeb<SkRuntimeShaderBuilder>();\n },\n RRectXY: (rect: SkRect, rx: number, ry: number) =>\n new JsiSkRRect(CanvasKit, rect, rx, ry),\n RSXform: (scos: number, ssin: number, tx: number, ty: number) =>\n new JsiSkRSXform(CanvasKit, Float32Array.of(scos, ssin, tx, ty)),\n RSXformFromRadians: (\n scale: number,\n r: number,\n tx: number,\n ty: number,\n px: number,\n py: number\n ) => {\n const s = Math.sin(r) * scale;\n const c = Math.cos(r) * scale;\n return new JsiSkRSXform(\n CanvasKit,\n Float32Array.of(c, s, tx - c * px + s * py, ty - s * px - c * py)\n );\n },\n Color,\n ContourMeasureIter: (\n path: SkPath,\n forceClosed: boolean,\n resScale: number\n ): SkContourMeasureIter =>\n (() => {\n const p = JsiSkPath.pathFromValue(path);\n const iter = new JsiSkContourMeasureIter(\n CanvasKit,\n new CanvasKit.ContourMeasureIter(p, forceClosed, resScale)\n );\n p.delete();\n return iter;\n })(),\n Paint: () => {\n const paint = new JsiSkPaint(CanvasKit, new CanvasKit.Paint());\n paint.setAntiAlias(true);\n return paint;\n },\n PictureRecorder: () =>\n new JsiSkPictureRecorder(CanvasKit, new CanvasKit.PictureRecorder()),\n Picture: new JsiSkPictureFactory(CanvasKit),\n Path: new JsiSkPathFactory(CanvasKit),\n PathBuilder: new JsiSkPathBuilderFactory(CanvasKit),\n Matrix: (matrix?: readonly number[]) =>\n new JsiSkMatrix(\n CanvasKit,\n matrix\n ? Float32Array.of(...matrix)\n : Float32Array.of(...CanvasKit.Matrix.identity())\n ),\n ColorFilter: new JsiSkColorFilterFactory(CanvasKit),\n Font: (typeface?: SkTypeface, size?: number) =>\n new JsiSkFont(\n CanvasKit,\n new CanvasKit.Font(\n typeface === undefined ? null : JsiSkTypeface.fromValue(typeface),\n size\n )\n ),\n Typeface: new JsiSkTypefaceFactory(CanvasKit),\n MaskFilter: new JsiSkMaskFilterFactory(CanvasKit),\n RuntimeEffect: new JsiSkRuntimeEffectFactory(CanvasKit),\n ImageFilter: new JsiSkImageFilterFactory(CanvasKit),\n Shader: new JsiSkShaderFactory(CanvasKit),\n PathEffect: new JsiSkPathEffectFactory(CanvasKit),\n MakeVertices: MakeVertices.bind(null, CanvasKit),\n Data: new JsiSkDataFactory(CanvasKit),\n Image: new JsiSkImageFactory(CanvasKit),\n AnimatedImage: new JsiSkAnimatedImageFactory(CanvasKit),\n SVG: new JsiSkSVGFactory(CanvasKit),\n TextBlob: new JsiSkTextBlobFactory(CanvasKit),\n XYWHRect: (x: number, y: number, width: number, height: number) => {\n return new JsiSkRect(CanvasKit, CanvasKit.XYWHRect(x, y, width, height));\n },\n Surface: new JsiSkSurfaceFactory(CanvasKit),\n TypefaceFontProvider: new JsiSkTypefaceFontProviderFactory(CanvasKit),\n FontMgr: new JsiSkFontMgrFactory(CanvasKit),\n ParagraphBuilder: new JsiSkParagraphBuilderFactory(CanvasKit),\n Skottie: new JsiSkottieFactory(CanvasKit),\n Recorder: () => {\n return throwNotImplementedOnRNWeb<JsiRecorder>();\n },\n getNativeDevice: () => {\n return throwNotImplementedOnRNWeb<bigint>();\n },\n});\n"],"mappings":"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","ignoreList":[]}
@@ -3,4 +3,3 @@ export * from "./renderHelpers";
3
3
  export * from "./interpolators";
4
4
  export * from "./textures";
5
5
  export * from "./buffers";
6
- export * from "./useVideo";
@@ -0,0 +1,11 @@
1
+ /**
2
+ * A WebGPU texture, as accepted by `Skia.Image.MakeImageFromGPUTexture` and
3
+ * `Skia.Surface.MakeFromGPUTexture`: a `GPUTexture` created with React Native
4
+ * WebGPU on the shared device, whose `nativePointer` (a non-spec extension)
5
+ * holds the `WGPUTexture` handle. The handle itself, as a `BigInt`, is
6
+ * accepted too for libraries that export textures without React Native
7
+ * WebGPU.
8
+ */
9
+ export type GPUTextureHandle = {
10
+ readonly nativePointer: bigint;
11
+ } | bigint;
@@ -56,16 +56,6 @@ export interface SkImage extends SkJSIInstance<"Image"> {
56
56
  * Returns the ImageInfo describing the image.
57
57
  */
58
58
  getImageInfo(): ImageInfo;
59
- /**
60
- * Returns the backend texture of the image.
61
- * The returned object can be used to create a Skia Image object.
62
- * The returned object is backend specific and should be used with caution.
63
- * It is the caller's responsibility to ensure that the texture is not used after the image is deleted.
64
- * The returned object may be null if the image does not have a backend texture.
65
- *
66
- * @return backend texture of the image or null
67
- */
68
- getNativeTextureUnstable(): unknown;
69
59
  /**
70
60
  * Returns this image as a shader with the specified tiling. It will use cubic sampling.
71
61
  * @param tx - tile mode in the x direction.
@@ -1,5 +1,5 @@
1
1
  import type { SkData } from "../Data";
2
- import type { NativeBuffer } from "../NativeBuffer";
2
+ import type { GPUTextureHandle } from "../GPUTexture";
3
3
  import type { ColorType } from "./ColorType";
4
4
  import type { SkImage } from "./Image";
5
5
  export declare enum AlphaType {
@@ -28,38 +28,17 @@ export interface ImageFactory {
28
28
  */
29
29
  MakeImageFromEncoded: (encoded: SkData) => SkImage | null;
30
30
  /**
31
- * Return an Image backed by a given native buffer.
32
- * The native buffer must be a valid owning reference.
31
+ * Web only. Creates an image from a `CanvasImageSource`: an
32
+ * `HTMLVideoElement`, an `ImageBitmap`, a canvas, an `HTMLImageElement`...
33
33
  *
34
- * For instance, this API is used by
35
- * [react-native-vision-camera](https://github.com/mrousavy/react-native-vision-camera)
36
- * to render a Skia Camera preview.
34
+ * On native platforms, camera and video frames are rendered into a texture
35
+ * of the shared device by React Native WebGPU
36
+ * (`queue.copyExternalImageToTexture()`), and the texture is wrapped with
37
+ * {@link MakeImageFromGPUTexture}. Calling this method there throws.
37
38
  *
38
- * - On Android; This is an `AHardwareBuffer*`
39
- * - On iOS, this is a `CVPixelBufferRef`
40
- * @param nativeBuffer A strong `uintptr_t` pointer to the native buffer
41
- * @throws Throws an error if the Image could not be created, for example when the given
42
- * native buffer is invalid.
39
+ * @param source The image source
43
40
  */
44
- MakeImageFromNativeBuffer: (nativeBuffer: NativeBuffer) => SkImage;
45
- /**
46
- *
47
- * Return an Image backed by a given native texture.
48
- *
49
- * The native texture must be a valid owning reference.
50
- *
51
- * This API might be used to integrate with other libraries using gpu textures,
52
- * or to transfer images between different threads.
53
- *
54
- * @param texture A native texture handle
55
- * @param width The width of the texture
56
- * @param height The height of the texture
57
- * @param mipmapped Whether the texture is mipmapped
58
- * @throws Throws an error if the Image could not be created, for example when the given native texture is invalid.
59
- *
60
- * @returns Returns a valid SkImage, if the texture is invalid, an error is thrown.
61
- */
62
- MakeImageFromNativeTextureUnstable: (texture: unknown, width: number, height: number, mipmapped?: boolean, outputImage?: SkImage) => SkImage;
41
+ MakeImageFromNativeBuffer: (source: CanvasImageSource) => SkImage;
63
42
  /**
64
43
  * Returns an image that will be a screenshot of the view represented by
65
44
  * the view tag
@@ -79,32 +58,30 @@ export interface ImageFactory {
79
58
  */
80
59
  MakeImage(info: ImageInfo, data: SkData, bytesPerRow: number): SkImage | null;
81
60
  /**
82
- * Creates an SkImage from a WebGPU texture.
83
- * This allows using textures rendered by WebGPU in Skia drawings. The
84
- * texture crosses the package boundary as a raw pointer: pass
85
- * `texture.nativePointer` from a react-native-webgpu GPUTexture created on
86
- * the shared device (importDevice(Skia.getNativeDevice())). The native side
87
- * takes its own reference, so the handle stays valid even if the JS
88
- * GPUTexture is garbage collected — but do not call texture.destroy()
89
- * while the image is in use: destroy() releases the underlying GPU
90
- * resource regardless of reference counts.
61
+ * Creates an SkImage from a WebGPU texture, without copying it.
62
+ * The texture must be created with React Native WebGPU on the shared
63
+ * device (importDevice(Skia.getNativeDevice())) with the TEXTURE_BINDING
64
+ * usage. The image takes its own reference to the texture, so it stays
65
+ * valid even if the JS GPUTexture is garbage collected; do not call
66
+ * texture.destroy() while the image is in use, as destroy() releases the
67
+ * GPU resource regardless of references.
91
68
  *
92
69
  * Native only.
93
70
  *
94
- * @param pointer - The WGPUTexture pointer (texture.nativePointer)
95
- * @returns An SkImage wrapping the texture, or throws if the texture is invalid
71
+ * @param texture - The GPUTexture (see {@link GPUTextureHandle})
72
+ * @returns An SkImage sampling the texture, or throws if the texture is invalid
96
73
  */
97
- MakeImageFromNativeTexture(pointer: bigint): SkImage;
74
+ MakeImageFromGPUTexture(texture: GPUTextureHandle): SkImage;
98
75
  /**
99
- * Creates a WebGPU texture from an SkImage.
100
- * This allows using Skia images in WebGPU rendering pipelines. The
101
- * returned pointer carries one reference and must be adopted exactly once
102
- * with react-native-webgpu's adoptTexture(), which owns it from then on.
76
+ * Draws an SkImage into a new WebGPU texture on the shared device.
77
+ * The returned pointer carries one reference and must be adopted exactly
78
+ * once with React Native WebGPU's adoptTexture(), which builds the
79
+ * GPUTexture and owns the reference from then on.
103
80
  *
104
81
  * Native only.
105
82
  *
106
- * @param image - An SkImage to convert to a texture
83
+ * @param image - The SkImage to draw into the texture
107
84
  * @returns A WGPUTexture pointer for adoptTexture(), or throws on failure
108
85
  */
109
- MakeNativeTextureFromImage(image: SkImage): bigint;
86
+ MakeGPUTextureFromImage(image: SkImage): bigint;
110
87
  }
@@ -26,8 +26,6 @@ import type { Color, SkColor } from "./Color";
26
26
  import type { TypefaceFontProviderFactory } from "./Paragraph/TypefaceFontProviderFactory";
27
27
  import type { AnimatedImageFactory } from "./AnimatedImage";
28
28
  import type { ParagraphBuilderFactory } from "./Paragraph/ParagraphBuilder";
29
- import type { Video } from "./Video";
30
- import type { NativeBufferFactory } from "./NativeBuffer";
31
29
  import type { JsiRecorder } from "./Recorder";
32
30
  import type { SkottieFactory } from "./Skottie";
33
31
  /**
@@ -77,8 +75,6 @@ export interface Skia {
77
75
  Surface: SurfaceFactory;
78
76
  ParagraphBuilder: ParagraphBuilderFactory;
79
77
  Skottie: SkottieFactory;
80
- Video: (url: string) => Promise<Video> | Video;
81
- NativeBuffer: NativeBufferFactory;
82
78
  Recorder(): JsiRecorder;
83
79
  /**
84
80
  * Raw WGPUDevice pointer of Skia's Graphite device, as a BigInt. Pass it to