@shopify/react-native-skia 0.1.236 → 0.1.237

Sign up to get free protection for your applications and to get access to all the features.
Files changed (198) hide show
  1. package/cpp/api/JsiSkApi.h +2 -0
  2. package/cpp/api/JsiSkCanvas.h +36 -0
  3. package/cpp/api/JsiSkRSXform.h +35 -7
  4. package/cpp/rnskia/dom/JsiDomApi.h +2 -0
  5. package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +60 -0
  6. package/cpp/rnskia/dom/props/RSXformProp.h +52 -0
  7. package/cpp/rnskia/dom/props/RectProp.h +31 -0
  8. package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +2 -1
  9. package/lib/commonjs/dom/nodes/JsiSkDOM.js +4 -0
  10. package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
  11. package/lib/commonjs/dom/nodes/drawings/AtlasNode.d.ts +8 -0
  12. package/lib/commonjs/dom/nodes/drawings/AtlasNode.js +47 -0
  13. package/lib/commonjs/dom/nodes/drawings/AtlasNode.js.map +1 -0
  14. package/lib/commonjs/dom/nodes/drawings/index.d.ts +1 -0
  15. package/lib/commonjs/dom/nodes/drawings/index.js +13 -0
  16. package/lib/commonjs/dom/nodes/drawings/index.js.map +1 -1
  17. package/lib/commonjs/dom/types/Drawings.d.ts +7 -1
  18. package/lib/commonjs/dom/types/Drawings.js.map +1 -1
  19. package/lib/commonjs/dom/types/NodeType.d.ts +1 -0
  20. package/lib/commonjs/dom/types/NodeType.js +1 -0
  21. package/lib/commonjs/dom/types/NodeType.js.map +1 -1
  22. package/lib/commonjs/dom/types/SkDOM.d.ts +2 -1
  23. package/lib/commonjs/dom/types/SkDOM.js.map +1 -1
  24. package/lib/commonjs/external/reanimated/buffers.d.ts +5 -0
  25. package/lib/commonjs/external/reanimated/buffers.js +48 -0
  26. package/lib/commonjs/external/reanimated/buffers.js.map +1 -0
  27. package/lib/commonjs/external/reanimated/index.d.ts +1 -0
  28. package/lib/commonjs/external/reanimated/index.js +13 -0
  29. package/lib/commonjs/external/reanimated/index.js.map +1 -1
  30. package/lib/commonjs/external/reanimated/textures.js +3 -17
  31. package/lib/commonjs/external/reanimated/textures.js.map +1 -1
  32. package/lib/commonjs/external/reanimated/useAnimatedImageValue.js +8 -1
  33. package/lib/commonjs/external/reanimated/useAnimatedImageValue.js.map +1 -1
  34. package/lib/commonjs/mock/index.js +5 -0
  35. package/lib/commonjs/mock/index.js.map +1 -1
  36. package/lib/commonjs/renderer/HostComponents.d.ts +3 -1
  37. package/lib/commonjs/renderer/HostComponents.js +3 -0
  38. package/lib/commonjs/renderer/HostComponents.js.map +1 -1
  39. package/lib/commonjs/renderer/Offscreen.d.ts +4 -2
  40. package/lib/commonjs/renderer/Offscreen.js +23 -18
  41. package/lib/commonjs/renderer/Offscreen.js.map +1 -1
  42. package/lib/commonjs/renderer/components/shapes/Atlas.d.ts +4 -0
  43. package/lib/commonjs/renderer/components/shapes/Atlas.js +17 -0
  44. package/lib/commonjs/renderer/components/shapes/Atlas.js.map +1 -0
  45. package/lib/commonjs/renderer/components/shapes/index.d.ts +1 -0
  46. package/lib/commonjs/renderer/components/shapes/index.js +13 -0
  47. package/lib/commonjs/renderer/components/shapes/index.js.map +1 -1
  48. package/lib/commonjs/skia/core/AnimatedImage.d.ts +1 -1
  49. package/lib/commonjs/skia/core/AnimatedImage.js +4 -1
  50. package/lib/commonjs/skia/core/AnimatedImage.js.map +1 -1
  51. package/lib/commonjs/skia/core/Data.d.ts +1 -1
  52. package/lib/commonjs/skia/core/Data.js +11 -4
  53. package/lib/commonjs/skia/core/Data.js.map +1 -1
  54. package/lib/commonjs/skia/core/Rect.d.ts +2 -2
  55. package/lib/commonjs/skia/types/Canvas.d.ts +16 -1
  56. package/lib/commonjs/skia/types/Canvas.js.map +1 -1
  57. package/lib/commonjs/skia/types/Image/Image.d.ts +8 -0
  58. package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
  59. package/lib/commonjs/skia/types/RSXform.d.ts +7 -1
  60. package/lib/commonjs/skia/types/RSXform.js.map +1 -1
  61. package/lib/commonjs/skia/types/Rect.d.ts +4 -0
  62. package/lib/commonjs/skia/types/Rect.js.map +1 -1
  63. package/lib/commonjs/skia/types/Skia.d.ts +3 -2
  64. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  65. package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +2 -1
  66. package/lib/commonjs/skia/web/JsiSkCanvas.js +19 -0
  67. package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
  68. package/lib/commonjs/skia/web/JsiSkRSXform.d.ts +8 -2
  69. package/lib/commonjs/skia/web/JsiSkRSXform.js +33 -2
  70. package/lib/commonjs/skia/web/JsiSkRSXform.js.map +1 -1
  71. package/lib/commonjs/skia/web/JsiSkRect.d.ts +3 -2
  72. package/lib/commonjs/skia/web/JsiSkRect.js +7 -0
  73. package/lib/commonjs/skia/web/JsiSkRect.js.map +1 -1
  74. package/lib/commonjs/skia/web/JsiSkTextBlobFactory.js +2 -1
  75. package/lib/commonjs/skia/web/JsiSkTextBlobFactory.js.map +1 -1
  76. package/lib/commonjs/skia/web/JsiSkia.js +5 -0
  77. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  78. package/lib/module/dom/nodes/JsiSkDOM.d.ts +2 -1
  79. package/lib/module/dom/nodes/JsiSkDOM.js +5 -1
  80. package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
  81. package/lib/module/dom/nodes/drawings/AtlasNode.d.ts +8 -0
  82. package/lib/module/dom/nodes/drawings/AtlasNode.js +34 -0
  83. package/lib/module/dom/nodes/drawings/AtlasNode.js.map +1 -0
  84. package/lib/module/dom/nodes/drawings/index.d.ts +1 -0
  85. package/lib/module/dom/nodes/drawings/index.js +1 -0
  86. package/lib/module/dom/nodes/drawings/index.js.map +1 -1
  87. package/lib/module/dom/types/Drawings.d.ts +7 -1
  88. package/lib/module/dom/types/Drawings.js.map +1 -1
  89. package/lib/module/dom/types/NodeType.d.ts +1 -0
  90. package/lib/module/dom/types/NodeType.js +1 -0
  91. package/lib/module/dom/types/NodeType.js.map +1 -1
  92. package/lib/module/dom/types/SkDOM.d.ts +2 -1
  93. package/lib/module/dom/types/SkDOM.js.map +1 -1
  94. package/lib/module/external/reanimated/buffers.d.ts +5 -0
  95. package/lib/module/external/reanimated/buffers.js +27 -0
  96. package/lib/module/external/reanimated/buffers.js.map +1 -0
  97. package/lib/module/external/reanimated/index.d.ts +1 -0
  98. package/lib/module/external/reanimated/index.js +1 -0
  99. package/lib/module/external/reanimated/index.js.map +1 -1
  100. package/lib/module/external/reanimated/textures.js +5 -16
  101. package/lib/module/external/reanimated/textures.js.map +1 -1
  102. package/lib/module/external/reanimated/useAnimatedImageValue.js +7 -1
  103. package/lib/module/external/reanimated/useAnimatedImageValue.js.map +1 -1
  104. package/lib/module/mock/index.js +5 -0
  105. package/lib/module/mock/index.js.map +1 -1
  106. package/lib/module/renderer/HostComponents.d.ts +3 -1
  107. package/lib/module/renderer/HostComponents.js +3 -0
  108. package/lib/module/renderer/HostComponents.js.map +1 -1
  109. package/lib/module/renderer/Offscreen.d.ts +4 -2
  110. package/lib/module/renderer/Offscreen.js +15 -13
  111. package/lib/module/renderer/Offscreen.js.map +1 -1
  112. package/lib/module/renderer/components/shapes/Atlas.d.ts +4 -0
  113. package/lib/module/renderer/components/shapes/Atlas.js +5 -0
  114. package/lib/module/renderer/components/shapes/Atlas.js.map +1 -0
  115. package/lib/module/renderer/components/shapes/index.d.ts +1 -0
  116. package/lib/module/renderer/components/shapes/index.js +1 -0
  117. package/lib/module/renderer/components/shapes/index.js.map +1 -1
  118. package/lib/module/skia/core/AnimatedImage.d.ts +1 -1
  119. package/lib/module/skia/core/AnimatedImage.js +4 -1
  120. package/lib/module/skia/core/AnimatedImage.js.map +1 -1
  121. package/lib/module/skia/core/Data.d.ts +1 -1
  122. package/lib/module/skia/core/Data.js +11 -4
  123. package/lib/module/skia/core/Data.js.map +1 -1
  124. package/lib/module/skia/core/Rect.d.ts +2 -2
  125. package/lib/module/skia/types/Canvas.d.ts +16 -1
  126. package/lib/module/skia/types/Canvas.js.map +1 -1
  127. package/lib/module/skia/types/Image/Image.d.ts +8 -0
  128. package/lib/module/skia/types/Image/Image.js.map +1 -1
  129. package/lib/module/skia/types/RSXform.d.ts +7 -1
  130. package/lib/module/skia/types/RSXform.js.map +1 -1
  131. package/lib/module/skia/types/Rect.d.ts +4 -0
  132. package/lib/module/skia/types/Rect.js.map +1 -1
  133. package/lib/module/skia/types/Skia.d.ts +3 -2
  134. package/lib/module/skia/types/Skia.js.map +1 -1
  135. package/lib/module/skia/web/JsiSkCanvas.d.ts +2 -1
  136. package/lib/module/skia/web/JsiSkCanvas.js +18 -0
  137. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  138. package/lib/module/skia/web/JsiSkRSXform.d.ts +8 -2
  139. package/lib/module/skia/web/JsiSkRSXform.js +34 -3
  140. package/lib/module/skia/web/JsiSkRSXform.js.map +1 -1
  141. package/lib/module/skia/web/JsiSkRect.d.ts +3 -2
  142. package/lib/module/skia/web/JsiSkRect.js +7 -0
  143. package/lib/module/skia/web/JsiSkRect.js.map +1 -1
  144. package/lib/module/skia/web/JsiSkTextBlobFactory.js +2 -1
  145. package/lib/module/skia/web/JsiSkTextBlobFactory.js.map +1 -1
  146. package/lib/module/skia/web/JsiSkia.js +5 -0
  147. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  148. package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +2 -1
  149. package/lib/typescript/src/dom/nodes/drawings/AtlasNode.d.ts +8 -0
  150. package/lib/typescript/src/dom/nodes/drawings/index.d.ts +1 -0
  151. package/lib/typescript/src/dom/types/Drawings.d.ts +7 -1
  152. package/lib/typescript/src/dom/types/NodeType.d.ts +1 -0
  153. package/lib/typescript/src/dom/types/SkDOM.d.ts +2 -1
  154. package/lib/typescript/src/external/reanimated/buffers.d.ts +5 -0
  155. package/lib/typescript/src/external/reanimated/index.d.ts +1 -0
  156. package/lib/typescript/src/renderer/HostComponents.d.ts +3 -1
  157. package/lib/typescript/src/renderer/Offscreen.d.ts +4 -2
  158. package/lib/typescript/src/renderer/components/shapes/Atlas.d.ts +4 -0
  159. package/lib/typescript/src/renderer/components/shapes/index.d.ts +1 -0
  160. package/lib/typescript/src/skia/core/AnimatedImage.d.ts +1 -1
  161. package/lib/typescript/src/skia/core/Data.d.ts +1 -1
  162. package/lib/typescript/src/skia/core/Rect.d.ts +2 -2
  163. package/lib/typescript/src/skia/types/Canvas.d.ts +16 -1
  164. package/lib/typescript/src/skia/types/Image/Image.d.ts +8 -0
  165. package/lib/typescript/src/skia/types/RSXform.d.ts +7 -1
  166. package/lib/typescript/src/skia/types/Rect.d.ts +4 -0
  167. package/lib/typescript/src/skia/types/Skia.d.ts +3 -2
  168. package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +2 -1
  169. package/lib/typescript/src/skia/web/JsiSkRSXform.d.ts +8 -2
  170. package/lib/typescript/src/skia/web/JsiSkRect.d.ts +3 -2
  171. package/package.json +1 -1
  172. package/src/dom/nodes/JsiSkDOM.ts +8 -0
  173. package/src/dom/nodes/drawings/AtlasNode.ts +24 -0
  174. package/src/dom/nodes/drawings/index.ts +1 -0
  175. package/src/dom/types/Drawings.ts +9 -0
  176. package/src/dom/types/NodeType.ts +1 -0
  177. package/src/dom/types/SkDOM.ts +2 -0
  178. package/src/external/reanimated/buffers.ts +53 -0
  179. package/src/external/reanimated/index.ts +1 -0
  180. package/src/external/reanimated/textures.tsx +7 -19
  181. package/src/external/reanimated/useAnimatedImageValue.ts +15 -4
  182. package/src/mock/index.ts +5 -0
  183. package/src/renderer/HostComponents.ts +6 -1
  184. package/src/renderer/Offscreen.tsx +20 -16
  185. package/src/renderer/components/shapes/Atlas.tsx +8 -0
  186. package/src/renderer/components/shapes/index.ts +1 -0
  187. package/src/skia/core/AnimatedImage.ts +3 -2
  188. package/src/skia/core/Data.ts +8 -4
  189. package/src/skia/types/Canvas.ts +32 -1
  190. package/src/skia/types/Image/Image.ts +10 -0
  191. package/src/skia/types/RSXform.ts +7 -1
  192. package/src/skia/types/Rect.ts +6 -0
  193. package/src/skia/types/Skia.ts +10 -2
  194. package/src/skia/web/JsiSkCanvas.ts +60 -23
  195. package/src/skia/web/JsiSkRSXform.ts +28 -4
  196. package/src/skia/web/JsiSkRect.ts +12 -2
  197. package/src/skia/web/JsiSkTextBlobFactory.ts +5 -5
  198. package/src/skia/web/JsiSkia.ts +15 -0
@@ -1,22 +1,11 @@
1
1
  import { useEffect, useMemo } from "react";
2
- import { Skia } from "../../skia";
3
- import { drawAsPicture } from "../../renderer/Offscreen";
4
- import { runOnUI, useSharedValue } from "./moduleWrapper"; // TODO: We're not sure yet why PixelRatio is not needed here.
2
+ import { drawAsImageFromPicture, drawAsPicture } from "../../renderer/Offscreen";
3
+ import { runOnUI, useSharedValue } from "./moduleWrapper";
5
4
 
6
- const pd = 1; //Platform.PixelRatio;
7
-
8
- const createTexture = (texture, picture, size) => {
5
+ const createTextureValue = (texture, picture, size) => {
9
6
  "worklet";
10
7
 
11
- const surface = Skia.Surface.MakeOffscreen(size.width * pd, size.height * pd);
12
- const canvas = surface.getCanvas(); // see comment above
13
- //canvas.save();
14
- //canvas.scale(pd, pd);
15
-
16
- canvas.drawPicture(picture); //canvas.restore();
17
-
18
- surface.flush();
19
- texture.value = surface.makeImageSnapshot();
8
+ texture.value = drawAsImageFromPicture(picture, size);
20
9
  };
21
10
 
22
11
  export const useTextureValue = (element, size) => {
@@ -28,7 +17,7 @@ export const useTextureValue = (element, size) => {
28
17
  export const useTextureValueFromPicture = (picture, size) => {
29
18
  const texture = useSharedValue(null);
30
19
  useEffect(() => {
31
- runOnUI(createTexture)(texture, picture, size);
20
+ runOnUI(createTextureValue)(texture, picture, size);
32
21
  }, [texture, picture, size]);
33
22
  return texture;
34
23
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","Skia","drawAsPicture","runOnUI","useSharedValue","pd","createTexture","texture","picture","size","surface","Surface","MakeOffscreen","width","height","canvas","getCanvas","drawPicture","flush","value","makeImageSnapshot","useTextureValue","element","useTextureValueFromPicture"],"sources":["textures.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport type { ReactElement } from \"react\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport { Skia } from \"../../skia\";\nimport type { SkImage, SkPicture, SkSize } from \"../../skia/types\";\nimport { drawAsPicture } from \"../../renderer/Offscreen\";\n\nimport { runOnUI, useSharedValue } from \"./moduleWrapper\";\n\n// TODO: We're not sure yet why PixelRatio is not needed here.\nconst pd = 1; //Platform.PixelRatio;\n\nconst createTexture = (\n texture: SharedValue<SkImage | null>,\n picture: SkPicture,\n size: SkSize\n) => {\n \"worklet\";\n const surface = Skia.Surface.MakeOffscreen(\n size.width * pd,\n size.height * pd\n )!;\n const canvas = surface.getCanvas();\n // see comment above\n //canvas.save();\n //canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n //canvas.restore();\n surface.flush();\n texture.value = surface.makeImageSnapshot();\n};\n\nexport const useTextureValue = (element: ReactElement, size: SkSize) => {\n const picture = useMemo(() => {\n return drawAsPicture(element);\n }, [element]);\n return useTextureValueFromPicture(picture, size);\n};\n\nexport const useTextureValueFromPicture = (\n picture: SkPicture,\n size: SkSize\n) => {\n const texture = useSharedValue<SkImage | null>(null);\n useEffect(() => {\n runOnUI(createTexture)(texture, picture, size);\n }, [texture, picture, size]);\n return texture;\n};\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,OAApB,QAAmC,OAAnC;AAIA,SAASC,IAAT,QAAqB,YAArB;AAEA,SAASC,aAAT,QAA8B,0BAA9B;AAEA,SAASC,OAAT,EAAkBC,cAAlB,QAAwC,iBAAxC,C,CAEA;;AACA,MAAMC,EAAE,GAAG,CAAX,C,CAAc;;AAEd,MAAMC,aAAa,GAAG,CACpBC,OADoB,EAEpBC,OAFoB,EAGpBC,IAHoB,KAIjB;EACH;;EACA,MAAMC,OAAO,GAAGT,IAAI,CAACU,OAAL,CAAaC,aAAb,CACdH,IAAI,CAACI,KAAL,GAAaR,EADC,EAEdI,IAAI,CAACK,MAAL,GAAcT,EAFA,CAAhB;EAIA,MAAMU,MAAM,GAAGL,OAAO,CAACM,SAAR,EAAf,CANG,CAOH;EACA;EACA;;EACAD,MAAM,CAACE,WAAP,CAAmBT,OAAnB,EAVG,CAWH;;EACAE,OAAO,CAACQ,KAAR;EACAX,OAAO,CAACY,KAAR,GAAgBT,OAAO,CAACU,iBAAR,EAAhB;AACD,CAlBD;;AAoBA,OAAO,MAAMC,eAAe,GAAG,CAACC,OAAD,EAAwBb,IAAxB,KAAyC;EACtE,MAAMD,OAAO,GAAGR,OAAO,CAAC,MAAM;IAC5B,OAAOE,aAAa,CAACoB,OAAD,CAApB;EACD,CAFsB,EAEpB,CAACA,OAAD,CAFoB,CAAvB;EAGA,OAAOC,0BAA0B,CAACf,OAAD,EAAUC,IAAV,CAAjC;AACD,CALM;AAOP,OAAO,MAAMc,0BAA0B,GAAG,CACxCf,OADwC,EAExCC,IAFwC,KAGrC;EACH,MAAMF,OAAO,GAAGH,cAAc,CAAiB,IAAjB,CAA9B;EACAL,SAAS,CAAC,MAAM;IACdI,OAAO,CAACG,aAAD,CAAP,CAAuBC,OAAvB,EAAgCC,OAAhC,EAAyCC,IAAzC;EACD,CAFQ,EAEN,CAACF,OAAD,EAAUC,OAAV,EAAmBC,IAAnB,CAFM,CAAT;EAGA,OAAOF,OAAP;AACD,CATM"}
1
+ {"version":3,"names":["useEffect","useMemo","drawAsImageFromPicture","drawAsPicture","runOnUI","useSharedValue","createTextureValue","texture","picture","size","value","useTextureValue","element","useTextureValueFromPicture"],"sources":["textures.tsx"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport type { ReactElement } from \"react\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport type { SkImage, SkPicture, SkSize } from \"../../skia/types\";\nimport {\n drawAsImageFromPicture,\n drawAsPicture,\n} from \"../../renderer/Offscreen\";\n\nimport { runOnUI, useSharedValue } from \"./moduleWrapper\";\n\nconst createTextureValue = (\n texture: SharedValue<SkImage | null>,\n picture: SkPicture,\n size: SkSize\n) => {\n \"worklet\";\n texture.value = drawAsImageFromPicture(picture, size);\n};\n\nexport const useTextureValue = (element: ReactElement, size: SkSize) => {\n const picture = useMemo(() => {\n return drawAsPicture(element);\n }, [element]);\n return useTextureValueFromPicture(picture, size);\n};\n\nexport const useTextureValueFromPicture = (\n picture: SkPicture,\n size: SkSize\n) => {\n const texture = useSharedValue<SkImage | null>(null);\n useEffect(() => {\n runOnUI(createTextureValue)(texture, picture, size);\n }, [texture, picture, size]);\n return texture;\n};\n"],"mappings":"AAAA,SAASA,SAAT,EAAoBC,OAApB,QAAmC,OAAnC;AAKA,SACEC,sBADF,EAEEC,aAFF,QAGO,0BAHP;AAKA,SAASC,OAAT,EAAkBC,cAAlB,QAAwC,iBAAxC;;AAEA,MAAMC,kBAAkB,GAAG,CACzBC,OADyB,EAEzBC,OAFyB,EAGzBC,IAHyB,KAItB;EACH;;EACAF,OAAO,CAACG,KAAR,GAAgBR,sBAAsB,CAACM,OAAD,EAAUC,IAAV,CAAtC;AACD,CAPD;;AASA,OAAO,MAAME,eAAe,GAAG,CAACC,OAAD,EAAwBH,IAAxB,KAAyC;EACtE,MAAMD,OAAO,GAAGP,OAAO,CAAC,MAAM;IAC5B,OAAOE,aAAa,CAACS,OAAD,CAApB;EACD,CAFsB,EAEpB,CAACA,OAAD,CAFoB,CAAvB;EAGA,OAAOC,0BAA0B,CAACL,OAAD,EAAUC,IAAV,CAAjC;AACD,CALM;AAOP,OAAO,MAAMI,0BAA0B,GAAG,CACxCL,OADwC,EAExCC,IAFwC,KAGrC;EACH,MAAMF,OAAO,GAAGF,cAAc,CAAiB,IAAjB,CAA9B;EACAL,SAAS,CAAC,MAAM;IACdI,OAAO,CAACE,kBAAD,CAAP,CAA4BC,OAA5B,EAAqCC,OAArC,EAA8CC,IAA9C;EACD,CAFQ,EAEN,CAACF,OAAD,EAAUC,OAAV,EAAmBC,IAAnB,CAFM,CAAT;EAGA,OAAOF,OAAP;AACD,CATM"}
@@ -1,3 +1,4 @@
1
+ import { useEffect } from "react";
1
2
  import { useAnimatedImage } from "../../skia/core/AnimatedImage";
2
3
  import { throwOnMissingReanimated, useFrameCallback, useSharedValue } from "./moduleWrapper";
3
4
  const DEFAULT_FRAME_DURATION = 60;
@@ -8,7 +9,7 @@ export const useAnimatedImageValue = source => {
8
9
  const animatedImage = useAnimatedImage(source, err => {
9
10
  console.error(err);
10
11
  throw new Error(`Could not load animated image - got '${err.message}'`);
11
- });
12
+ }, false);
12
13
  const frameDuration = (animatedImage === null || animatedImage === void 0 ? void 0 : animatedImage.currentFrameDuration()) || DEFAULT_FRAME_DURATION;
13
14
  useFrameCallback(frameInfo => {
14
15
  if (!animatedImage) {
@@ -36,6 +37,11 @@ export const useAnimatedImageValue = source => {
36
37
 
37
38
  lastTimestamp.value = timestamp; // eslint-disable-next-line react-hooks/exhaustive-deps
38
39
  }, true);
40
+ useEffect(() => {
41
+ return () => {
42
+ animatedImage === null || animatedImage === void 0 ? void 0 : animatedImage.dispose();
43
+ }; // eslint-disable-next-line react-hooks/exhaustive-deps
44
+ }, []);
39
45
  return currentFrame;
40
46
  };
41
47
  //# sourceMappingURL=useAnimatedImageValue.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useAnimatedImage","throwOnMissingReanimated","useFrameCallback","useSharedValue","DEFAULT_FRAME_DURATION","useAnimatedImageValue","source","currentFrame","lastTimestamp","animatedImage","err","console","error","Error","message","frameDuration","currentFrameDuration","frameInfo","value","timestamp","elapsed","decodeNextFrame","dispose","getCurrentFrame"],"sources":["useAnimatedImageValue.ts"],"sourcesContent":["import type { FrameInfo } from \"react-native-reanimated\";\n\nimport { useAnimatedImage } from \"../../skia/core/AnimatedImage\";\nimport type { DataSourceParam, SkImage } from \"../../skia/types\";\n\nimport {\n throwOnMissingReanimated,\n useFrameCallback,\n useSharedValue,\n} from \"./moduleWrapper\";\n\nconst DEFAULT_FRAME_DURATION = 60;\n\nexport const useAnimatedImageValue = (source: DataSourceParam) => {\n throwOnMissingReanimated();\n const currentFrame = useSharedValue<null | SkImage>(null);\n const lastTimestamp = useSharedValue(0);\n const animatedImage = useAnimatedImage(source, (err) => {\n console.error(err);\n throw new Error(`Could not load animated image - got '${err.message}'`);\n });\n const frameDuration =\n animatedImage?.currentFrameDuration() || DEFAULT_FRAME_DURATION;\n\n useFrameCallback((frameInfo: FrameInfo) => {\n if (!animatedImage) {\n currentFrame.value = null;\n return;\n }\n\n const { timestamp } = frameInfo;\n const elapsed = timestamp - lastTimestamp.value;\n\n // Check if it's time to switch frames based on GIF frame duration\n if (elapsed < frameDuration) {\n return;\n }\n\n // Update the current frame\n animatedImage.decodeNextFrame();\n if (currentFrame.value) {\n currentFrame.value.dispose();\n }\n currentFrame.value = animatedImage.getCurrentFrame();\n\n // Update the last timestamp\n lastTimestamp.value = timestamp;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, true);\n return currentFrame;\n};\n"],"mappings":"AAEA,SAASA,gBAAT,QAAiC,+BAAjC;AAGA,SACEC,wBADF,EAEEC,gBAFF,EAGEC,cAHF,QAIO,iBAJP;AAMA,MAAMC,sBAAsB,GAAG,EAA/B;AAEA,OAAO,MAAMC,qBAAqB,GAAIC,MAAD,IAA6B;EAChEL,wBAAwB;EACxB,MAAMM,YAAY,GAAGJ,cAAc,CAAiB,IAAjB,CAAnC;EACA,MAAMK,aAAa,GAAGL,cAAc,CAAC,CAAD,CAApC;EACA,MAAMM,aAAa,GAAGT,gBAAgB,CAACM,MAAD,EAAUI,GAAD,IAAS;IACtDC,OAAO,CAACC,KAAR,CAAcF,GAAd;IACA,MAAM,IAAIG,KAAJ,CAAW,wCAAuCH,GAAG,CAACI,OAAQ,GAA9D,CAAN;EACD,CAHqC,CAAtC;EAIA,MAAMC,aAAa,GACjB,CAAAN,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEO,oBAAf,OAAyCZ,sBAD3C;EAGAF,gBAAgB,CAAEe,SAAD,IAA0B;IACzC,IAAI,CAACR,aAAL,EAAoB;MAClBF,YAAY,CAACW,KAAb,GAAqB,IAArB;MACA;IACD;;IAED,MAAM;MAAEC;IAAF,IAAgBF,SAAtB;IACA,MAAMG,OAAO,GAAGD,SAAS,GAAGX,aAAa,CAACU,KAA1C,CAPyC,CASzC;;IACA,IAAIE,OAAO,GAAGL,aAAd,EAA6B;MAC3B;IACD,CAZwC,CAczC;;;IACAN,aAAa,CAACY,eAAd;;IACA,IAAId,YAAY,CAACW,KAAjB,EAAwB;MACtBX,YAAY,CAACW,KAAb,CAAmBI,OAAnB;IACD;;IACDf,YAAY,CAACW,KAAb,GAAqBT,aAAa,CAACc,eAAd,EAArB,CAnByC,CAqBzC;;IACAf,aAAa,CAACU,KAAd,GAAsBC,SAAtB,CAtByC,CAuBzC;EACD,CAxBe,EAwBb,IAxBa,CAAhB;EAyBA,OAAOZ,YAAP;AACD,CArCM"}
1
+ {"version":3,"names":["useEffect","useAnimatedImage","throwOnMissingReanimated","useFrameCallback","useSharedValue","DEFAULT_FRAME_DURATION","useAnimatedImageValue","source","currentFrame","lastTimestamp","animatedImage","err","console","error","Error","message","frameDuration","currentFrameDuration","frameInfo","value","timestamp","elapsed","decodeNextFrame","dispose","getCurrentFrame"],"sources":["useAnimatedImageValue.ts"],"sourcesContent":["import { useEffect } from \"react\";\nimport type { FrameInfo } from \"react-native-reanimated\";\n\nimport { useAnimatedImage } from \"../../skia/core/AnimatedImage\";\nimport type { DataSourceParam, SkImage } from \"../../skia/types\";\n\nimport {\n throwOnMissingReanimated,\n useFrameCallback,\n useSharedValue,\n} from \"./moduleWrapper\";\n\nconst DEFAULT_FRAME_DURATION = 60;\n\nexport const useAnimatedImageValue = (source: DataSourceParam) => {\n throwOnMissingReanimated();\n const currentFrame = useSharedValue<null | SkImage>(null);\n const lastTimestamp = useSharedValue(0);\n const animatedImage = useAnimatedImage(\n source,\n (err) => {\n console.error(err);\n throw new Error(`Could not load animated image - got '${err.message}'`);\n },\n false\n );\n const frameDuration =\n animatedImage?.currentFrameDuration() || DEFAULT_FRAME_DURATION;\n\n useFrameCallback((frameInfo: FrameInfo) => {\n if (!animatedImage) {\n currentFrame.value = null;\n return;\n }\n\n const { timestamp } = frameInfo;\n const elapsed = timestamp - lastTimestamp.value;\n\n // Check if it's time to switch frames based on GIF frame duration\n if (elapsed < frameDuration) {\n return;\n }\n\n // Update the current frame\n animatedImage.decodeNextFrame();\n if (currentFrame.value) {\n currentFrame.value.dispose();\n }\n currentFrame.value = animatedImage.getCurrentFrame();\n\n // Update the last timestamp\n lastTimestamp.value = timestamp;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, true);\n useEffect(() => {\n return () => {\n animatedImage?.dispose();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return currentFrame;\n};\n"],"mappings":"AAAA,SAASA,SAAT,QAA0B,OAA1B;AAGA,SAASC,gBAAT,QAAiC,+BAAjC;AAGA,SACEC,wBADF,EAEEC,gBAFF,EAGEC,cAHF,QAIO,iBAJP;AAMA,MAAMC,sBAAsB,GAAG,EAA/B;AAEA,OAAO,MAAMC,qBAAqB,GAAIC,MAAD,IAA6B;EAChEL,wBAAwB;EACxB,MAAMM,YAAY,GAAGJ,cAAc,CAAiB,IAAjB,CAAnC;EACA,MAAMK,aAAa,GAAGL,cAAc,CAAC,CAAD,CAApC;EACA,MAAMM,aAAa,GAAGT,gBAAgB,CACpCM,MADoC,EAEnCI,GAAD,IAAS;IACPC,OAAO,CAACC,KAAR,CAAcF,GAAd;IACA,MAAM,IAAIG,KAAJ,CAAW,wCAAuCH,GAAG,CAACI,OAAQ,GAA9D,CAAN;EACD,CALmC,EAMpC,KANoC,CAAtC;EAQA,MAAMC,aAAa,GACjB,CAAAN,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEO,oBAAf,OAAyCZ,sBAD3C;EAGAF,gBAAgB,CAAEe,SAAD,IAA0B;IACzC,IAAI,CAACR,aAAL,EAAoB;MAClBF,YAAY,CAACW,KAAb,GAAqB,IAArB;MACA;IACD;;IAED,MAAM;MAAEC;IAAF,IAAgBF,SAAtB;IACA,MAAMG,OAAO,GAAGD,SAAS,GAAGX,aAAa,CAACU,KAA1C,CAPyC,CASzC;;IACA,IAAIE,OAAO,GAAGL,aAAd,EAA6B;MAC3B;IACD,CAZwC,CAczC;;;IACAN,aAAa,CAACY,eAAd;;IACA,IAAId,YAAY,CAACW,KAAjB,EAAwB;MACtBX,YAAY,CAACW,KAAb,CAAmBI,OAAnB;IACD;;IACDf,YAAY,CAACW,KAAb,GAAqBT,aAAa,CAACc,eAAd,EAArB,CAnByC,CAqBzC;;IACAf,aAAa,CAACU,KAAd,GAAsBC,SAAtB,CAtByC,CAuBzC;EACD,CAxBe,EAwBb,IAxBa,CAAhB;EAyBApB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXU,aAAa,SAAb,IAAAA,aAAa,WAAb,YAAAA,aAAa,CAAEa,OAAf;IACD,CAFD,CADc,CAId;EACD,CALQ,EAKN,EALM,CAAT;EAMA,OAAOf,YAAP;AACD,CA/CM"}
@@ -36,6 +36,11 @@ export const Mock = CanvasKit => {
36
36
  usePathInterpolation: NoopSharedValue,
37
37
  useTextureValue: NoopSharedValue,
38
38
  useTextureValueFromPicture: NoopSharedValue,
39
+ useRSXformBuffer: NoopSharedValue,
40
+ usePointBuffer: NoopSharedValue,
41
+ useColorBuffer: NoopSharedValue,
42
+ useRectBuffer: NoopSharedValue,
43
+ useBuffer: NoopSharedValue,
39
44
  useRawData: Noop,
40
45
  useData: Noop,
41
46
  useFont: () => Skia.Font(undefined, 0),
@@ -1 +1 @@
1
- {"version":3,"names":["JsiSkApi","Noop","undefined","NoopValue","current","NoopSharedValue","value","Mock","CanvasKit","global","SkiaApi","Skia","require","Canvas","useValue","useComputedValue","useTouchHandler","useTiming","useLoop","useSpring","useClockValue","useValueEffect","useClock","usePathInterpolation","useTextureValue","useTextureValueFromPicture","useRawData","useData","useFont","Font","useFonts","useTypeface","useImage","useSVG"],"sources":["index.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport { JsiSkApi } from \"../skia/web\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst Noop: () => any = () => undefined;\nconst NoopValue = () => ({ current: 0 });\nconst NoopSharedValue = () => ({ value: 0 });\n\nexport const Mock = (CanvasKit: CanvasKit) => {\n global.SkiaApi = JsiSkApi(CanvasKit);\n const Skia = global.SkiaApi;\n return {\n Skia,\n ...require(\"../renderer/components\"),\n ...require(\"../skia\"),\n ...require(\"../animation\"),\n ...require(\"../dom/types\"),\n ...require(\"../dom/nodes\"),\n // We could use the real Canvas if we mock the SkiaView component for node\n Canvas: Noop,\n // Skia Animations\n useValue: NoopValue,\n useComputedValue: NoopValue,\n useTouchHandler: Noop,\n useTiming: NoopValue,\n useLoop: NoopValue,\n useSpring: NoopValue,\n useClockValue: NoopValue,\n useValueEffect: Noop,\n // Reanimated hooks\n useClock: NoopSharedValue,\n usePathInterpolation: NoopSharedValue,\n useTextureValue: NoopSharedValue,\n useTextureValueFromPicture: NoopSharedValue,\n useRawData: Noop,\n useData: Noop,\n useFont: () => Skia.Font(undefined, 0),\n useFonts: Noop,\n useTypeface: () => null,\n useImage: () => null,\n useSVG: () => null,\n };\n};\n"],"mappings":"AAEA,SAASA,QAAT,QAAyB,aAAzB,C,CAEA;;AACA,MAAMC,IAAe,GAAG,MAAMC,SAA9B;;AACA,MAAMC,SAAS,GAAG,OAAO;EAAEC,OAAO,EAAE;AAAX,CAAP,CAAlB;;AACA,MAAMC,eAAe,GAAG,OAAO;EAAEC,KAAK,EAAE;AAAT,CAAP,CAAxB;;AAEA,OAAO,MAAMC,IAAI,GAAIC,SAAD,IAA0B;EAC5CC,MAAM,CAACC,OAAP,GAAiBV,QAAQ,CAACQ,SAAD,CAAzB;EACA,MAAMG,IAAI,GAAGF,MAAM,CAACC,OAApB;EACA,OAAO;IACLC,IADK;IAEL,GAAGC,OAAO,CAAC,wBAAD,CAFL;IAGL,GAAGA,OAAO,CAAC,SAAD,CAHL;IAIL,GAAGA,OAAO,CAAC,cAAD,CAJL;IAKL,GAAGA,OAAO,CAAC,cAAD,CALL;IAML,GAAGA,OAAO,CAAC,cAAD,CANL;IAOL;IACAC,MAAM,EAAEZ,IARH;IASL;IACAa,QAAQ,EAAEX,SAVL;IAWLY,gBAAgB,EAAEZ,SAXb;IAYLa,eAAe,EAAEf,IAZZ;IAaLgB,SAAS,EAAEd,SAbN;IAcLe,OAAO,EAAEf,SAdJ;IAeLgB,SAAS,EAAEhB,SAfN;IAgBLiB,aAAa,EAAEjB,SAhBV;IAiBLkB,cAAc,EAAEpB,IAjBX;IAkBL;IACAqB,QAAQ,EAAEjB,eAnBL;IAoBLkB,oBAAoB,EAAElB,eApBjB;IAqBLmB,eAAe,EAAEnB,eArBZ;IAsBLoB,0BAA0B,EAAEpB,eAtBvB;IAuBLqB,UAAU,EAAEzB,IAvBP;IAwBL0B,OAAO,EAAE1B,IAxBJ;IAyBL2B,OAAO,EAAE,MAAMjB,IAAI,CAACkB,IAAL,CAAU3B,SAAV,EAAqB,CAArB,CAzBV;IA0BL4B,QAAQ,EAAE7B,IA1BL;IA2BL8B,WAAW,EAAE,MAAM,IA3Bd;IA4BLC,QAAQ,EAAE,MAAM,IA5BX;IA6BLC,MAAM,EAAE,MAAM;EA7BT,CAAP;AA+BD,CAlCM"}
1
+ {"version":3,"names":["JsiSkApi","Noop","undefined","NoopValue","current","NoopSharedValue","value","Mock","CanvasKit","global","SkiaApi","Skia","require","Canvas","useValue","useComputedValue","useTouchHandler","useTiming","useLoop","useSpring","useClockValue","useValueEffect","useClock","usePathInterpolation","useTextureValue","useTextureValueFromPicture","useRSXformBuffer","usePointBuffer","useColorBuffer","useRectBuffer","useBuffer","useRawData","useData","useFont","Font","useFonts","useTypeface","useImage","useSVG"],"sources":["index.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport { JsiSkApi } from \"../skia/web\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst Noop: () => any = () => undefined;\nconst NoopValue = () => ({ current: 0 });\nconst NoopSharedValue = () => ({ value: 0 });\n\nexport const Mock = (CanvasKit: CanvasKit) => {\n global.SkiaApi = JsiSkApi(CanvasKit);\n const Skia = global.SkiaApi;\n return {\n Skia,\n ...require(\"../renderer/components\"),\n ...require(\"../skia\"),\n ...require(\"../animation\"),\n ...require(\"../dom/types\"),\n ...require(\"../dom/nodes\"),\n // We could use the real Canvas if we mock the SkiaView component for node\n Canvas: Noop,\n // Skia Animations\n useValue: NoopValue,\n useComputedValue: NoopValue,\n useTouchHandler: Noop,\n useTiming: NoopValue,\n useLoop: NoopValue,\n useSpring: NoopValue,\n useClockValue: NoopValue,\n useValueEffect: Noop,\n // Reanimated hooks\n useClock: NoopSharedValue,\n usePathInterpolation: NoopSharedValue,\n useTextureValue: NoopSharedValue,\n useTextureValueFromPicture: NoopSharedValue,\n useRSXformBuffer: NoopSharedValue,\n usePointBuffer: NoopSharedValue,\n useColorBuffer: NoopSharedValue,\n useRectBuffer: NoopSharedValue,\n useBuffer: NoopSharedValue,\n useRawData: Noop,\n useData: Noop,\n useFont: () => Skia.Font(undefined, 0),\n useFonts: Noop,\n useTypeface: () => null,\n useImage: () => null,\n useSVG: () => null,\n };\n};\n"],"mappings":"AAEA,SAASA,QAAT,QAAyB,aAAzB,C,CAEA;;AACA,MAAMC,IAAe,GAAG,MAAMC,SAA9B;;AACA,MAAMC,SAAS,GAAG,OAAO;EAAEC,OAAO,EAAE;AAAX,CAAP,CAAlB;;AACA,MAAMC,eAAe,GAAG,OAAO;EAAEC,KAAK,EAAE;AAAT,CAAP,CAAxB;;AAEA,OAAO,MAAMC,IAAI,GAAIC,SAAD,IAA0B;EAC5CC,MAAM,CAACC,OAAP,GAAiBV,QAAQ,CAACQ,SAAD,CAAzB;EACA,MAAMG,IAAI,GAAGF,MAAM,CAACC,OAApB;EACA,OAAO;IACLC,IADK;IAEL,GAAGC,OAAO,CAAC,wBAAD,CAFL;IAGL,GAAGA,OAAO,CAAC,SAAD,CAHL;IAIL,GAAGA,OAAO,CAAC,cAAD,CAJL;IAKL,GAAGA,OAAO,CAAC,cAAD,CALL;IAML,GAAGA,OAAO,CAAC,cAAD,CANL;IAOL;IACAC,MAAM,EAAEZ,IARH;IASL;IACAa,QAAQ,EAAEX,SAVL;IAWLY,gBAAgB,EAAEZ,SAXb;IAYLa,eAAe,EAAEf,IAZZ;IAaLgB,SAAS,EAAEd,SAbN;IAcLe,OAAO,EAAEf,SAdJ;IAeLgB,SAAS,EAAEhB,SAfN;IAgBLiB,aAAa,EAAEjB,SAhBV;IAiBLkB,cAAc,EAAEpB,IAjBX;IAkBL;IACAqB,QAAQ,EAAEjB,eAnBL;IAoBLkB,oBAAoB,EAAElB,eApBjB;IAqBLmB,eAAe,EAAEnB,eArBZ;IAsBLoB,0BAA0B,EAAEpB,eAtBvB;IAuBLqB,gBAAgB,EAAErB,eAvBb;IAwBLsB,cAAc,EAAEtB,eAxBX;IAyBLuB,cAAc,EAAEvB,eAzBX;IA0BLwB,aAAa,EAAExB,eA1BV;IA2BLyB,SAAS,EAAEzB,eA3BN;IA4BL0B,UAAU,EAAE9B,IA5BP;IA6BL+B,OAAO,EAAE/B,IA7BJ;IA8BLgC,OAAO,EAAE,MAAMtB,IAAI,CAACuB,IAAL,CAAUhC,SAAV,EAAqB,CAArB,CA9BV;IA+BLiC,QAAQ,EAAElC,IA/BL;IAgCLmC,WAAW,EAAE,MAAM,IAhCd;IAiCLC,QAAQ,EAAE,MAAM,IAjCX;IAkCLC,MAAM,EAAE,MAAM;EAlCT,CAAP;AAoCD,CAvCM"}
@@ -1,5 +1,5 @@
1
1
  import { NodeType } from "../dom/types";
2
- import type { DeclarationNode, FractalNoiseProps, RenderNode, CircleProps, DrawingNodeProps, ImageProps, PaintProps, PathProps, LineProps, OvalProps, DiffRectProps, PointsProps, RectProps, RoundedRectProps, TextProps, VerticesProps, BlurMaskFilterProps, BlendImageFilterProps, BlurImageFilterProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, OffsetImageFilterProps, RuntimeShaderImageFilterProps, MatrixColorFilterProps, ShaderProps, ImageShaderProps, LinearGradientProps, GroupProps, PatchProps, BlendColorFilterProps, DashPathEffectProps, DiscretePathEffectProps, CornerPathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, BoxProps, BoxShadowProps, ParagraphProps } from "../dom/types";
2
+ import type { DeclarationNode, FractalNoiseProps, RenderNode, CircleProps, DrawingNodeProps, ImageProps, PaintProps, PathProps, LineProps, OvalProps, DiffRectProps, PointsProps, RectProps, RoundedRectProps, TextProps, VerticesProps, BlurMaskFilterProps, BlendImageFilterProps, BlurImageFilterProps, DisplacementMapImageFilterProps, DropShadowImageFilterProps, OffsetImageFilterProps, RuntimeShaderImageFilterProps, MatrixColorFilterProps, ShaderProps, ImageShaderProps, LinearGradientProps, GroupProps, PatchProps, BlendColorFilterProps, DashPathEffectProps, DiscretePathEffectProps, CornerPathEffectProps, Line2DPathEffectProps, Path1DPathEffectProps, Path2DPathEffectProps, TextPathProps, TextBlobProps, GlyphsProps, TwoPointConicalGradientProps, TurbulenceProps, SweepGradientProps, RadialGradientProps, ColorProps, PictureProps, ImageSVGProps, LerpColorFilterProps, BoxProps, BoxShadowProps, ParagraphProps, AtlasProps } from "../dom/types";
3
3
  import type { ChildrenProps } from "../dom/types/Common";
4
4
  import type { BlendProps, MorphologyImageFilterProps } from "../dom/types/ImageFilters";
5
5
  import type { SkRect, SkRRect } from "../skia/types";
@@ -22,6 +22,7 @@ declare global {
22
22
  PatchNode: (props: PatchProps) => RenderNode<PatchProps>;
23
23
  PointsNode: (props: PointsProps) => RenderNode<PointsProps>;
24
24
  DiffRectNode: (props: DiffRectProps) => RenderNode<DiffRectProps>;
25
+ AtlasNode: (props: AtlasProps) => RenderNode<AtlasProps>;
25
26
  BlurMaskFilterNode: (props: BlurMaskFilterProps) => DeclarationNode<BlurMaskFilterProps>;
26
27
  DashPathEffectNode: (props: DashPathEffectProps) => DeclarationNode<DashPathEffectProps>;
27
28
  DiscretePathEffectNode: (props: DiscretePathEffectProps) => DeclarationNode<DiscretePathEffectProps>;
@@ -81,6 +82,7 @@ declare global {
81
82
  skPoints: SkiaProps<PointsProps>;
82
83
  skRect: SkiaProps<RectProps>;
83
84
  skRRect: SkiaProps<RoundedRectProps>;
85
+ skAtlas: SkiaProps<AtlasProps>;
84
86
  skVertices: SkiaProps<VerticesProps>;
85
87
  skText: SkiaProps<TextProps>;
86
88
  skTextPath: SkiaProps<TextPathProps>;
@@ -64,6 +64,9 @@ export const createNode = (container, type, props) => {
64
64
  case NodeType.Glyphs:
65
65
  return Sk.Glyphs(props);
66
66
 
67
+ case NodeType.Atlas:
68
+ return Sk.Atlas(props);
69
+
67
70
  case NodeType.DiffRect:
68
71
  return Sk.DiffRect(props);
69
72
 
@@ -1 +1 @@
1
- {"version":3,"names":["NodeType","exhaustiveCheck","shouldUseJSDomOnNative","NATIVE_DOM","global","SkiaDomApi","createNode","container","type","props","Sk","Layer","Group","Paint","Fill","Image","Circle","Path","Line","Oval","Patch","Points","Rect","RRect","Vertices","Text","TextPath","TextBlob","Glyphs","DiffRect","Picture","ImageSVG","BlurMaskFilter","BlendImageFilter","BlurImageFilter","OffsetImageFilter","DropShadowImageFilter","DisplacementMapImageFilter","MorphologyImageFilter","RuntimeShaderImageFilter","MatrixColorFilter","BlendColorFilter","LerpColorFilter","LumaColorFilter","LinearToSRGBGammaColorFilter","SRGBToLinearGammaColorFilter","Shader","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","CornerPathEffect","DiscretePathEffect","DashPathEffect","Path1DPathEffect","Path2DPathEffect","SumPathEffect","Line2DPathEffect","Blend","BackdropFilter","Box","BoxShadow","Paragraph"],"sources":["HostComponents.ts"],"sourcesContent":["import { NodeType } from \"../dom/types\";\nimport type {\n DeclarationNode,\n FractalNoiseProps,\n RenderNode,\n CircleProps,\n DrawingNodeProps,\n ImageProps,\n PaintProps,\n PathProps,\n LineProps,\n OvalProps,\n DiffRectProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextProps,\n VerticesProps,\n BlurMaskFilterProps,\n BlendImageFilterProps,\n BlurImageFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n MatrixColorFilterProps,\n ShaderProps,\n ImageShaderProps,\n LinearGradientProps,\n GroupProps,\n PatchProps,\n BlendColorFilterProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n CornerPathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n TwoPointConicalGradientProps,\n TurbulenceProps,\n SweepGradientProps,\n RadialGradientProps,\n ColorProps,\n PictureProps,\n ImageSVGProps,\n LerpColorFilterProps,\n BoxProps,\n BoxShadowProps,\n ParagraphProps,\n} from \"../dom/types\";\nimport type { ChildrenProps } from \"../dom/types/Common\";\nimport type {\n BlendProps,\n MorphologyImageFilterProps,\n} from \"../dom/types/ImageFilters\";\nimport type { SkRect, SkRRect } from \"../skia/types\";\nimport type { JsiDrawingNode } from \"../dom/nodes/DrawingNode\";\n\nimport type { Container } from \"./Container\";\nimport { exhaustiveCheck } from \"./typeddash\";\nimport type { SkiaProps } from \"./processors\";\n\n// This flag should only be turned on for debugging/testing\nconst shouldUseJSDomOnNative = false;\nexport const NATIVE_DOM = shouldUseJSDomOnNative ? false : !!global.SkiaDomApi;\n\ndeclare global {\n var SkiaDomApi: {\n // FIXME: We need a better type for this\n RectNode: (props: RectProps) => JsiDrawingNode<RectProps, SkRect>;\n RRectNode: (\n props: RoundedRectProps\n ) => JsiDrawingNode<RoundedRectProps, SkRRect>;\n GroupNode: (props: GroupProps) => RenderNode<GroupProps>;\n PaintNode: (props: PaintProps) => DeclarationNode<PaintProps>;\n FillNode: (props: PaintProps) => RenderNode<PaintProps>;\n CircleNode: (props: CircleProps) => RenderNode<CircleProps>;\n PathNode: (props: PathProps) => RenderNode<PathProps>;\n LineNode: (props: LineProps) => RenderNode<LineProps>;\n ImageNode: (props: ImageProps) => RenderNode<ImageProps>;\n OvalNode: (props: OvalProps) => RenderNode<OvalProps>;\n PatchNode: (props: PatchProps) => RenderNode<PatchProps>;\n PointsNode: (props: PointsProps) => RenderNode<PointsProps>;\n DiffRectNode: (props: DiffRectProps) => RenderNode<DiffRectProps>;\n // Mask filters\n BlurMaskFilterNode: (\n props: BlurMaskFilterProps\n ) => DeclarationNode<BlurMaskFilterProps>;\n\n // Path effects\n DashPathEffectNode: (\n props: DashPathEffectProps\n ) => DeclarationNode<DashPathEffectProps>;\n DiscretePathEffectNode: (\n props: DiscretePathEffectProps\n ) => DeclarationNode<DiscretePathEffectProps>;\n CornerPathEffectNode: (\n props: CornerPathEffectProps\n ) => DeclarationNode<CornerPathEffectProps>;\n Path1DPathEffectNode: (\n props: Path1DPathEffectProps\n ) => DeclarationNode<Path1DPathEffectProps>;\n Path2DPathEffectNode: (\n props: Path2DPathEffectProps\n ) => DeclarationNode<Path2DPathEffectProps>;\n Line2DPathEffectNode: (\n props: Line2DPathEffectProps\n ) => DeclarationNode<Line2DPathEffectProps>;\n SumPathEffectNode: () => DeclarationNode<null>;\n\n // Image filters\n BlendImageFilterNode: (\n props: BlendImageFilterProps\n ) => DeclarationNode<BlendImageFilterProps>;\n DropShadowImageFilterNode: (\n props: DropShadowImageFilterProps\n ) => DeclarationNode<DropShadowImageFilterProps>;\n DisplacementMapImageFilterNode: (\n props: DisplacementMapImageFilterProps\n ) => DeclarationNode<DisplacementMapImageFilterProps>;\n BlurImageFilterNode: (\n props: BlurImageFilterProps\n ) => DeclarationNode<BlurImageFilterProps>;\n OffsetImageFilterNode: (\n props: OffsetImageFilterProps\n ) => DeclarationNode<OffsetImageFilterProps>;\n MorphologyImageFilterNode: (\n props: MorphologyImageFilterProps\n ) => DeclarationNode<MorphologyImageFilterProps>;\n RuntimeShaderImageFilterNode: (\n props: RuntimeShaderImageFilterProps\n ) => DeclarationNode<RuntimeShaderImageFilterProps>;\n\n // Color filters\n MatrixColorFilterNode: (\n props: MatrixColorFilterProps\n ) => DeclarationNode<MatrixColorFilterProps>;\n BlendColorFilterNode: (\n props: BlendColorFilterProps\n ) => DeclarationNode<BlendColorFilterProps>;\n LinearToSRGBGammaColorFilterNode: () => DeclarationNode<null>;\n SRGBToLinearGammaColorFilterNode: () => DeclarationNode<null>;\n LumaColorFilterNode: () => DeclarationNode<null>;\n LerpColorFilterNode: (\n props: LerpColorFilterProps\n ) => DeclarationNode<LerpColorFilterProps>;\n\n // Shaders\n ShaderNode: (props: ShaderProps) => DeclarationNode<ShaderProps>;\n ImageShaderNode: (\n props: ImageShaderProps\n ) => DeclarationNode<ImageShaderProps>;\n ColorShaderNode: (props: ColorProps) => DeclarationNode<ColorProps>;\n TurbulenceNode: (\n props: TurbulenceProps\n ) => DeclarationNode<TurbulenceProps>;\n FractalNoiseNode: (\n props: FractalNoiseProps\n ) => DeclarationNode<FractalNoiseProps>;\n LinearGradientNode: (\n props: LinearGradientProps\n ) => DeclarationNode<LinearGradientProps>;\n RadialGradientNode: (\n props: RadialGradientProps\n ) => DeclarationNode<RadialGradientProps>;\n SweepGradientNode: (\n props: SweepGradientProps\n ) => DeclarationNode<SweepGradientProps>;\n TwoPointConicalGradientNode: (\n props: TwoPointConicalGradientProps\n ) => DeclarationNode<TwoPointConicalGradientProps>;\n PictureNode: (props: PictureProps) => RenderNode<PictureProps>;\n ImageSVGNode: (props: ImageSVGProps) => RenderNode<ImageSVGProps>;\n VerticesNode: (props: VerticesProps) => RenderNode<VerticesProps>;\n TextNode: (prop: TextProps) => RenderNode<TextProps>;\n TextPathNode: (prop: TextPathProps) => RenderNode<TextPathProps>;\n TextBlobNode: (prop: TextBlobProps) => RenderNode<TextBlobProps>;\n GlyphsNode: (prop: GlyphsProps) => RenderNode<GlyphsProps>;\n BlendNode: (prop: BlendProps) => DeclarationNode<BlendProps>;\n BackdropFilterNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;\n BoxNode: (prop: BoxProps) => RenderNode<BoxProps>;\n BoxShadowNode: (prop: BoxShadowProps) => DeclarationNode<BoxShadowProps>;\n LayerNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;\n\n // Paragraph\n ParagraphNode: (props: ParagraphProps) => RenderNode<ParagraphProps>;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n skGroup: SkiaProps<GroupProps>;\n skLayer: SkiaProps<ChildrenProps>;\n skPaint: SkiaProps<PaintProps>;\n\n // Drawings\n skFill: SkiaProps<DrawingNodeProps>;\n skImage: SkiaProps<ImageProps>;\n skCircle: SkiaProps<CircleProps>;\n skPath: SkiaProps<PathProps>;\n skLine: SkiaProps<LineProps>;\n skOval: SkiaProps<OvalProps>;\n skPatch: SkiaProps<PatchProps>;\n skPoints: SkiaProps<PointsProps>;\n skRect: SkiaProps<RectProps>;\n skRRect: SkiaProps<RoundedRectProps>;\n skVertices: SkiaProps<VerticesProps>;\n skText: SkiaProps<TextProps>;\n skTextPath: SkiaProps<TextPathProps>;\n skTextBlob: SkiaProps<TextBlobProps>;\n skGlyphs: SkiaProps<GlyphsProps>;\n skDiffRect: SkiaProps<DiffRectProps>;\n skPicture: SkiaProps<PictureProps>;\n skImageSVG: SkiaProps<ImageSVGProps>;\n\n // BlurMaskFilters\n skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;\n\n // ImageFilters\n skBlendImageFilter: SkiaProps<BlendImageFilterProps>;\n skBlurImageFilter: SkiaProps<BlurImageFilterProps>;\n skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;\n skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;\n skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;\n skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;\n skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;\n\n // ColorFilters\n skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;\n skBlendColorFilter: SkiaProps<BlendColorFilterProps>;\n skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;\n skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;\n skLumaColorFilter: SkiaProps<ChildrenProps>;\n skLerpColorFilter: SkiaProps<LerpColorFilterProps>;\n\n // Shaders\n skShader: SkiaProps<ShaderProps>;\n skImageShader: SkiaProps<ImageShaderProps>;\n skColorShader: SkiaProps<ColorProps>;\n skTurbulence: SkiaProps<TurbulenceProps>;\n skFractalNoise: SkiaProps<FractalNoiseProps>;\n skLinearGradient: SkiaProps<LinearGradientProps>;\n skRadialGradient: SkiaProps<RadialGradientProps>;\n skSweepGradient: SkiaProps<SweepGradientProps>;\n skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;\n\n // Path Effects\n skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;\n skDashPathEffect: SkiaProps<DashPathEffectProps>;\n skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;\n skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;\n skCornerPathEffect: SkiaProps<CornerPathEffectProps>;\n skSumPathEffect: ChildrenProps;\n skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;\n\n // Mixed declarations/drawings\n skBlend: SkiaProps<BlendProps>;\n skBackdropFilter: SkiaProps<ChildrenProps>;\n skBox: SkiaProps<BoxProps>;\n skBoxShadow: SkiaProps<BoxShadowProps>;\n\n // Paragraph\n skParagraph: SkiaProps<ParagraphProps>;\n }\n }\n}\n\nexport const createNode = (\n container: Container,\n type: NodeType,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: any\n) => {\n const { Sk } = container;\n switch (type) {\n case NodeType.Layer:\n return Sk.Layer(props);\n case NodeType.Group:\n return Sk.Group(props);\n case NodeType.Paint:\n return Sk.Paint(props);\n // Drawings\n case NodeType.Fill:\n return Sk.Fill(props);\n case NodeType.Image:\n return Sk.Image(props);\n case NodeType.Circle:\n return Sk.Circle(props);\n case NodeType.Path:\n return Sk.Path(props);\n case NodeType.Line:\n return Sk.Line(props);\n case NodeType.Oval:\n return Sk.Oval(props);\n case NodeType.Patch:\n return Sk.Patch(props);\n case NodeType.Points:\n return Sk.Points(props);\n case NodeType.Rect:\n return Sk.Rect(props);\n case NodeType.RRect:\n return Sk.RRect(props);\n case NodeType.Vertices:\n return Sk.Vertices(props);\n case NodeType.Text:\n return Sk.Text(props);\n case NodeType.TextPath:\n return Sk.TextPath(props);\n case NodeType.TextBlob:\n return Sk.TextBlob(props);\n case NodeType.Glyphs:\n return Sk.Glyphs(props);\n case NodeType.DiffRect:\n return Sk.DiffRect(props);\n case NodeType.Picture:\n return Sk.Picture(props);\n case NodeType.ImageSVG:\n return Sk.ImageSVG(props);\n // Mask Filter\n case NodeType.BlurMaskFilter:\n return Sk.BlurMaskFilter(props);\n // Image Filter\n case NodeType.BlendImageFilter:\n return Sk.BlendImageFilter(props);\n case NodeType.BlurImageFilter:\n return Sk.BlurImageFilter(props);\n case NodeType.OffsetImageFilter:\n return Sk.OffsetImageFilter(props);\n case NodeType.DropShadowImageFilter:\n return Sk.DropShadowImageFilter(props);\n case NodeType.DisplacementMapImageFilter:\n return Sk.DisplacementMapImageFilter(props);\n case NodeType.MorphologyImageFilter:\n return Sk.MorphologyImageFilter(props);\n case NodeType.RuntimeShaderImageFilter:\n return Sk.RuntimeShaderImageFilter(props);\n // Color Filter\n case NodeType.MatrixColorFilter:\n return Sk.MatrixColorFilter(props);\n case NodeType.BlendColorFilter:\n return Sk.BlendColorFilter(props);\n case NodeType.LerpColorFilter:\n return Sk.LerpColorFilter(props);\n case NodeType.LumaColorFilter:\n return Sk.LumaColorFilter();\n case NodeType.LinearToSRGBGammaColorFilter:\n return Sk.LinearToSRGBGammaColorFilter();\n case NodeType.SRGBToLinearGammaColorFilter:\n return Sk.SRGBToLinearGammaColorFilter();\n // Shader\n case NodeType.Shader:\n return Sk.Shader(props);\n case NodeType.ImageShader:\n return Sk.ImageShader(props);\n case NodeType.ColorShader:\n return Sk.ColorShader(props);\n case NodeType.Turbulence:\n return Sk.Turbulence(props);\n case NodeType.FractalNoise:\n return Sk.FractalNoise(props);\n case NodeType.LinearGradient:\n return Sk.LinearGradient(props);\n case NodeType.RadialGradient:\n return Sk.RadialGradient(props);\n case NodeType.SweepGradient:\n return Sk.SweepGradient(props);\n case NodeType.TwoPointConicalGradient:\n return Sk.TwoPointConicalGradient(props);\n // Path Effect\n case NodeType.CornerPathEffect:\n return Sk.CornerPathEffect(props);\n case NodeType.DiscretePathEffect:\n return Sk.DiscretePathEffect(props);\n case NodeType.DashPathEffect:\n return Sk.DashPathEffect(props);\n case NodeType.Path1DPathEffect:\n return Sk.Path1DPathEffect(props);\n case NodeType.Path2DPathEffect:\n return Sk.Path2DPathEffect(props);\n case NodeType.SumPathEffect:\n return Sk.SumPathEffect();\n case NodeType.Line2DPathEffect:\n return Sk.Line2DPathEffect(props);\n // Mixed\n case NodeType.Blend:\n return Sk.Blend(props);\n case NodeType.BackdropFilter:\n return Sk.BackdropFilter(props);\n case NodeType.Box:\n return Sk.Box(props);\n case NodeType.BoxShadow:\n return Sk.BoxShadow(props);\n // Paragraph\n case NodeType.Paragraph:\n return Sk.Paragraph(props);\n default:\n return exhaustiveCheck(type);\n }\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["NodeType","exhaustiveCheck","shouldUseJSDomOnNative","NATIVE_DOM","global","SkiaDomApi","createNode","container","type","props","Sk","Layer","Group","Paint","Fill","Image","Circle","Path","Line","Oval","Patch","Points","Rect","RRect","Vertices","Text","TextPath","TextBlob","Glyphs","Atlas","DiffRect","Picture","ImageSVG","BlurMaskFilter","BlendImageFilter","BlurImageFilter","OffsetImageFilter","DropShadowImageFilter","DisplacementMapImageFilter","MorphologyImageFilter","RuntimeShaderImageFilter","MatrixColorFilter","BlendColorFilter","LerpColorFilter","LumaColorFilter","LinearToSRGBGammaColorFilter","SRGBToLinearGammaColorFilter","Shader","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","CornerPathEffect","DiscretePathEffect","DashPathEffect","Path1DPathEffect","Path2DPathEffect","SumPathEffect","Line2DPathEffect","Blend","BackdropFilter","Box","BoxShadow","Paragraph"],"sources":["HostComponents.ts"],"sourcesContent":["import { NodeType } from \"../dom/types\";\nimport type {\n DeclarationNode,\n FractalNoiseProps,\n RenderNode,\n CircleProps,\n DrawingNodeProps,\n ImageProps,\n PaintProps,\n PathProps,\n LineProps,\n OvalProps,\n DiffRectProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextProps,\n VerticesProps,\n BlurMaskFilterProps,\n BlendImageFilterProps,\n BlurImageFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n MatrixColorFilterProps,\n ShaderProps,\n ImageShaderProps,\n LinearGradientProps,\n GroupProps,\n PatchProps,\n BlendColorFilterProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n CornerPathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n TextPathProps,\n TextBlobProps,\n GlyphsProps,\n TwoPointConicalGradientProps,\n TurbulenceProps,\n SweepGradientProps,\n RadialGradientProps,\n ColorProps,\n PictureProps,\n ImageSVGProps,\n LerpColorFilterProps,\n BoxProps,\n BoxShadowProps,\n ParagraphProps,\n AtlasProps,\n} from \"../dom/types\";\nimport type { ChildrenProps } from \"../dom/types/Common\";\nimport type {\n BlendProps,\n MorphologyImageFilterProps,\n} from \"../dom/types/ImageFilters\";\nimport type { SkRect, SkRRect } from \"../skia/types\";\nimport type { JsiDrawingNode } from \"../dom/nodes/DrawingNode\";\n\nimport type { Container } from \"./Container\";\nimport { exhaustiveCheck } from \"./typeddash\";\nimport type { SkiaProps } from \"./processors\";\n\n// This flag should only be turned on for debugging/testing\nconst shouldUseJSDomOnNative = false;\nexport const NATIVE_DOM = shouldUseJSDomOnNative ? false : !!global.SkiaDomApi;\n\ndeclare global {\n var SkiaDomApi: {\n RectNode: (props: RectProps) => JsiDrawingNode<RectProps, SkRect>;\n RRectNode: (\n props: RoundedRectProps\n ) => JsiDrawingNode<RoundedRectProps, SkRRect>;\n GroupNode: (props: GroupProps) => RenderNode<GroupProps>;\n PaintNode: (props: PaintProps) => DeclarationNode<PaintProps>;\n FillNode: (props: PaintProps) => RenderNode<PaintProps>;\n CircleNode: (props: CircleProps) => RenderNode<CircleProps>;\n PathNode: (props: PathProps) => RenderNode<PathProps>;\n LineNode: (props: LineProps) => RenderNode<LineProps>;\n ImageNode: (props: ImageProps) => RenderNode<ImageProps>;\n OvalNode: (props: OvalProps) => RenderNode<OvalProps>;\n PatchNode: (props: PatchProps) => RenderNode<PatchProps>;\n PointsNode: (props: PointsProps) => RenderNode<PointsProps>;\n DiffRectNode: (props: DiffRectProps) => RenderNode<DiffRectProps>;\n AtlasNode: (props: AtlasProps) => RenderNode<AtlasProps>;\n\n // Mask filters\n BlurMaskFilterNode: (\n props: BlurMaskFilterProps\n ) => DeclarationNode<BlurMaskFilterProps>;\n\n // Path effects\n DashPathEffectNode: (\n props: DashPathEffectProps\n ) => DeclarationNode<DashPathEffectProps>;\n DiscretePathEffectNode: (\n props: DiscretePathEffectProps\n ) => DeclarationNode<DiscretePathEffectProps>;\n CornerPathEffectNode: (\n props: CornerPathEffectProps\n ) => DeclarationNode<CornerPathEffectProps>;\n Path1DPathEffectNode: (\n props: Path1DPathEffectProps\n ) => DeclarationNode<Path1DPathEffectProps>;\n Path2DPathEffectNode: (\n props: Path2DPathEffectProps\n ) => DeclarationNode<Path2DPathEffectProps>;\n Line2DPathEffectNode: (\n props: Line2DPathEffectProps\n ) => DeclarationNode<Line2DPathEffectProps>;\n SumPathEffectNode: () => DeclarationNode<null>;\n\n // Image filters\n BlendImageFilterNode: (\n props: BlendImageFilterProps\n ) => DeclarationNode<BlendImageFilterProps>;\n DropShadowImageFilterNode: (\n props: DropShadowImageFilterProps\n ) => DeclarationNode<DropShadowImageFilterProps>;\n DisplacementMapImageFilterNode: (\n props: DisplacementMapImageFilterProps\n ) => DeclarationNode<DisplacementMapImageFilterProps>;\n BlurImageFilterNode: (\n props: BlurImageFilterProps\n ) => DeclarationNode<BlurImageFilterProps>;\n OffsetImageFilterNode: (\n props: OffsetImageFilterProps\n ) => DeclarationNode<OffsetImageFilterProps>;\n MorphologyImageFilterNode: (\n props: MorphologyImageFilterProps\n ) => DeclarationNode<MorphologyImageFilterProps>;\n RuntimeShaderImageFilterNode: (\n props: RuntimeShaderImageFilterProps\n ) => DeclarationNode<RuntimeShaderImageFilterProps>;\n\n // Color filters\n MatrixColorFilterNode: (\n props: MatrixColorFilterProps\n ) => DeclarationNode<MatrixColorFilterProps>;\n BlendColorFilterNode: (\n props: BlendColorFilterProps\n ) => DeclarationNode<BlendColorFilterProps>;\n LinearToSRGBGammaColorFilterNode: () => DeclarationNode<null>;\n SRGBToLinearGammaColorFilterNode: () => DeclarationNode<null>;\n LumaColorFilterNode: () => DeclarationNode<null>;\n LerpColorFilterNode: (\n props: LerpColorFilterProps\n ) => DeclarationNode<LerpColorFilterProps>;\n\n // Shaders\n ShaderNode: (props: ShaderProps) => DeclarationNode<ShaderProps>;\n ImageShaderNode: (\n props: ImageShaderProps\n ) => DeclarationNode<ImageShaderProps>;\n ColorShaderNode: (props: ColorProps) => DeclarationNode<ColorProps>;\n TurbulenceNode: (\n props: TurbulenceProps\n ) => DeclarationNode<TurbulenceProps>;\n FractalNoiseNode: (\n props: FractalNoiseProps\n ) => DeclarationNode<FractalNoiseProps>;\n LinearGradientNode: (\n props: LinearGradientProps\n ) => DeclarationNode<LinearGradientProps>;\n RadialGradientNode: (\n props: RadialGradientProps\n ) => DeclarationNode<RadialGradientProps>;\n SweepGradientNode: (\n props: SweepGradientProps\n ) => DeclarationNode<SweepGradientProps>;\n TwoPointConicalGradientNode: (\n props: TwoPointConicalGradientProps\n ) => DeclarationNode<TwoPointConicalGradientProps>;\n PictureNode: (props: PictureProps) => RenderNode<PictureProps>;\n ImageSVGNode: (props: ImageSVGProps) => RenderNode<ImageSVGProps>;\n VerticesNode: (props: VerticesProps) => RenderNode<VerticesProps>;\n TextNode: (prop: TextProps) => RenderNode<TextProps>;\n TextPathNode: (prop: TextPathProps) => RenderNode<TextPathProps>;\n TextBlobNode: (prop: TextBlobProps) => RenderNode<TextBlobProps>;\n GlyphsNode: (prop: GlyphsProps) => RenderNode<GlyphsProps>;\n BlendNode: (prop: BlendProps) => DeclarationNode<BlendProps>;\n BackdropFilterNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;\n BoxNode: (prop: BoxProps) => RenderNode<BoxProps>;\n BoxShadowNode: (prop: BoxShadowProps) => DeclarationNode<BoxShadowProps>;\n LayerNode: (prop: ChildrenProps) => RenderNode<ChildrenProps>;\n\n // Paragraph\n ParagraphNode: (props: ParagraphProps) => RenderNode<ParagraphProps>;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace JSX {\n interface IntrinsicElements {\n skGroup: SkiaProps<GroupProps>;\n skLayer: SkiaProps<ChildrenProps>;\n skPaint: SkiaProps<PaintProps>;\n\n // Drawings\n skFill: SkiaProps<DrawingNodeProps>;\n skImage: SkiaProps<ImageProps>;\n skCircle: SkiaProps<CircleProps>;\n skPath: SkiaProps<PathProps>;\n skLine: SkiaProps<LineProps>;\n skOval: SkiaProps<OvalProps>;\n skPatch: SkiaProps<PatchProps>;\n skPoints: SkiaProps<PointsProps>;\n skRect: SkiaProps<RectProps>;\n skRRect: SkiaProps<RoundedRectProps>;\n skAtlas: SkiaProps<AtlasProps>;\n skVertices: SkiaProps<VerticesProps>;\n skText: SkiaProps<TextProps>;\n skTextPath: SkiaProps<TextPathProps>;\n skTextBlob: SkiaProps<TextBlobProps>;\n skGlyphs: SkiaProps<GlyphsProps>;\n skDiffRect: SkiaProps<DiffRectProps>;\n skPicture: SkiaProps<PictureProps>;\n skImageSVG: SkiaProps<ImageSVGProps>;\n\n // BlurMaskFilters\n skBlurMaskFilter: SkiaProps<BlurMaskFilterProps>;\n\n // ImageFilters\n skBlendImageFilter: SkiaProps<BlendImageFilterProps>;\n skBlurImageFilter: SkiaProps<BlurImageFilterProps>;\n skOffsetImageFilter: SkiaProps<OffsetImageFilterProps>;\n skDropShadowImageFilter: SkiaProps<DropShadowImageFilterProps>;\n skDisplacementMapImageFilter: SkiaProps<DisplacementMapImageFilterProps>;\n skRuntimeShaderImageFilter: SkiaProps<RuntimeShaderImageFilterProps>;\n skMorphologyImageFilter: SkiaProps<MorphologyImageFilterProps>;\n\n // ColorFilters\n skMatrixColorFilter: SkiaProps<MatrixColorFilterProps>;\n skBlendColorFilter: SkiaProps<BlendColorFilterProps>;\n skLinearToSRGBGammaColorFilter: SkiaProps<ChildrenProps>;\n skSRGBToLinearGammaColorFilter: SkiaProps<ChildrenProps>;\n skLumaColorFilter: SkiaProps<ChildrenProps>;\n skLerpColorFilter: SkiaProps<LerpColorFilterProps>;\n\n // Shaders\n skShader: SkiaProps<ShaderProps>;\n skImageShader: SkiaProps<ImageShaderProps>;\n skColorShader: SkiaProps<ColorProps>;\n skTurbulence: SkiaProps<TurbulenceProps>;\n skFractalNoise: SkiaProps<FractalNoiseProps>;\n skLinearGradient: SkiaProps<LinearGradientProps>;\n skRadialGradient: SkiaProps<RadialGradientProps>;\n skSweepGradient: SkiaProps<SweepGradientProps>;\n skTwoPointConicalGradient: SkiaProps<TwoPointConicalGradientProps>;\n\n // Path Effects\n skDiscretePathEffect: SkiaProps<DiscretePathEffectProps>;\n skDashPathEffect: SkiaProps<DashPathEffectProps>;\n skPath1DPathEffect: SkiaProps<Path1DPathEffectProps>;\n skPath2DPathEffect: SkiaProps<Path2DPathEffectProps>;\n skCornerPathEffect: SkiaProps<CornerPathEffectProps>;\n skSumPathEffect: ChildrenProps;\n skLine2DPathEffect: SkiaProps<Line2DPathEffectProps>;\n\n // Mixed declarations/drawings\n skBlend: SkiaProps<BlendProps>;\n skBackdropFilter: SkiaProps<ChildrenProps>;\n skBox: SkiaProps<BoxProps>;\n skBoxShadow: SkiaProps<BoxShadowProps>;\n\n // Paragraph\n skParagraph: SkiaProps<ParagraphProps>;\n }\n }\n}\n\nexport const createNode = (\n container: Container,\n type: NodeType,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n props: any\n) => {\n const { Sk } = container;\n switch (type) {\n case NodeType.Layer:\n return Sk.Layer(props);\n case NodeType.Group:\n return Sk.Group(props);\n case NodeType.Paint:\n return Sk.Paint(props);\n // Drawings\n case NodeType.Fill:\n return Sk.Fill(props);\n case NodeType.Image:\n return Sk.Image(props);\n case NodeType.Circle:\n return Sk.Circle(props);\n case NodeType.Path:\n return Sk.Path(props);\n case NodeType.Line:\n return Sk.Line(props);\n case NodeType.Oval:\n return Sk.Oval(props);\n case NodeType.Patch:\n return Sk.Patch(props);\n case NodeType.Points:\n return Sk.Points(props);\n case NodeType.Rect:\n return Sk.Rect(props);\n case NodeType.RRect:\n return Sk.RRect(props);\n case NodeType.Vertices:\n return Sk.Vertices(props);\n case NodeType.Text:\n return Sk.Text(props);\n case NodeType.TextPath:\n return Sk.TextPath(props);\n case NodeType.TextBlob:\n return Sk.TextBlob(props);\n case NodeType.Glyphs:\n return Sk.Glyphs(props);\n case NodeType.Atlas:\n return Sk.Atlas(props);\n case NodeType.DiffRect:\n return Sk.DiffRect(props);\n case NodeType.Picture:\n return Sk.Picture(props);\n case NodeType.ImageSVG:\n return Sk.ImageSVG(props);\n // Mask Filter\n case NodeType.BlurMaskFilter:\n return Sk.BlurMaskFilter(props);\n // Image Filter\n case NodeType.BlendImageFilter:\n return Sk.BlendImageFilter(props);\n case NodeType.BlurImageFilter:\n return Sk.BlurImageFilter(props);\n case NodeType.OffsetImageFilter:\n return Sk.OffsetImageFilter(props);\n case NodeType.DropShadowImageFilter:\n return Sk.DropShadowImageFilter(props);\n case NodeType.DisplacementMapImageFilter:\n return Sk.DisplacementMapImageFilter(props);\n case NodeType.MorphologyImageFilter:\n return Sk.MorphologyImageFilter(props);\n case NodeType.RuntimeShaderImageFilter:\n return Sk.RuntimeShaderImageFilter(props);\n // Color Filter\n case NodeType.MatrixColorFilter:\n return Sk.MatrixColorFilter(props);\n case NodeType.BlendColorFilter:\n return Sk.BlendColorFilter(props);\n case NodeType.LerpColorFilter:\n return Sk.LerpColorFilter(props);\n case NodeType.LumaColorFilter:\n return Sk.LumaColorFilter();\n case NodeType.LinearToSRGBGammaColorFilter:\n return Sk.LinearToSRGBGammaColorFilter();\n case NodeType.SRGBToLinearGammaColorFilter:\n return Sk.SRGBToLinearGammaColorFilter();\n // Shader\n case NodeType.Shader:\n return Sk.Shader(props);\n case NodeType.ImageShader:\n return Sk.ImageShader(props);\n case NodeType.ColorShader:\n return Sk.ColorShader(props);\n case NodeType.Turbulence:\n return Sk.Turbulence(props);\n case NodeType.FractalNoise:\n return Sk.FractalNoise(props);\n case NodeType.LinearGradient:\n return Sk.LinearGradient(props);\n case NodeType.RadialGradient:\n return Sk.RadialGradient(props);\n case NodeType.SweepGradient:\n return Sk.SweepGradient(props);\n case NodeType.TwoPointConicalGradient:\n return Sk.TwoPointConicalGradient(props);\n // Path Effect\n case NodeType.CornerPathEffect:\n return Sk.CornerPathEffect(props);\n case NodeType.DiscretePathEffect:\n return Sk.DiscretePathEffect(props);\n case NodeType.DashPathEffect:\n return Sk.DashPathEffect(props);\n case NodeType.Path1DPathEffect:\n return Sk.Path1DPathEffect(props);\n case NodeType.Path2DPathEffect:\n return Sk.Path2DPathEffect(props);\n case NodeType.SumPathEffect:\n return Sk.SumPathEffect();\n case NodeType.Line2DPathEffect:\n return Sk.Line2DPathEffect(props);\n // Mixed\n case NodeType.Blend:\n return Sk.Blend(props);\n case NodeType.BackdropFilter:\n return Sk.BackdropFilter(props);\n case NodeType.Box:\n return Sk.Box(props);\n case NodeType.BoxShadow:\n return Sk.BoxShadow(props);\n // Paragraph\n case NodeType.Paragraph:\n return Sk.Paragraph(props);\n default:\n return exhaustiveCheck(type);\n }\n};\n"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
1
  import type { ReactElement } from "react";
2
- export declare const drawAsImage: (element: ReactElement, width: number, height: number) => import("../skia").SkImage;
3
- export declare const drawAsPicture: (element: ReactElement) => import("../skia").SkPicture;
2
+ import type { SkPicture, SkSize } from "../skia/types";
3
+ export declare const drawAsPicture: (element: ReactElement) => SkPicture;
4
+ export declare const drawAsImage: (element: ReactElement, size: SkSize) => import("../skia").SkImage;
5
+ export declare const drawAsImageFromPicture: (picture: SkPicture, size: SkSize) => import("../skia").SkImage;
@@ -1,19 +1,6 @@
1
1
  import { JsiDrawingContext } from "../dom/types";
2
2
  import { Skia } from "../skia";
3
3
  import { SkiaRoot } from "./Reconciler";
4
- export const drawAsImage = (element, width, height) => {
5
- const picture = drawAsPicture(element);
6
- const surface = Skia.Surface.MakeOffscreen(width, height);
7
-
8
- if (!surface) {
9
- throw new Error("Could not create offscreen surface");
10
- }
11
-
12
- const canvas = surface.getCanvas();
13
- canvas.drawPicture(picture);
14
- surface.flush();
15
- return surface.makeImageSnapshot();
16
- };
17
4
  export const drawAsPicture = element => {
18
5
  const recorder = Skia.PictureRecorder();
19
6
  const canvas = recorder.beginRecording();
@@ -24,4 +11,19 @@ export const drawAsPicture = element => {
24
11
  const picture = recorder.finishRecordingAsPicture();
25
12
  return picture;
26
13
  };
14
+ export const drawAsImage = (element, size) => {
15
+ return drawAsImageFromPicture(drawAsPicture(element), size);
16
+ }; // TODO: We're not sure yet why PixelRatio is not needed here.
17
+
18
+ const pd = 1;
19
+ export const drawAsImageFromPicture = (picture, size) => {
20
+ "worklet";
21
+
22
+ const surface = Skia.Surface.MakeOffscreen(size.width * pd, size.height * pd);
23
+ const canvas = surface.getCanvas();
24
+ canvas.scale(pd, pd);
25
+ canvas.drawPicture(picture);
26
+ surface.flush();
27
+ return surface.makeImageSnapshot();
28
+ };
27
29
  //# sourceMappingURL=Offscreen.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["JsiDrawingContext","Skia","SkiaRoot","drawAsImage","element","width","height","picture","drawAsPicture","surface","Surface","MakeOffscreen","Error","canvas","getCanvas","drawPicture","flush","makeImageSnapshot","recorder","PictureRecorder","beginRecording","root","render","ctx","dom","finishRecordingAsPicture"],"sources":["Offscreen.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\n\nimport { JsiDrawingContext } from \"../dom/types\";\nimport { Skia } from \"../skia\";\n\nimport { SkiaRoot } from \"./Reconciler\";\n\nexport const drawAsImage = (\n element: ReactElement,\n width: number,\n height: number\n) => {\n const picture = drawAsPicture(element);\n const surface = Skia.Surface.MakeOffscreen(width, height);\n if (!surface) {\n throw new Error(\"Could not create offscreen surface\");\n }\n const canvas = surface.getCanvas();\n canvas.drawPicture(picture);\n surface.flush();\n return surface.makeImageSnapshot();\n};\n\nexport const drawAsPicture = (element: ReactElement) => {\n const recorder = Skia.PictureRecorder();\n const canvas = recorder.beginRecording();\n const root = new SkiaRoot(Skia, false);\n root.render(element);\n const ctx = new JsiDrawingContext(Skia, canvas);\n root.dom.render(ctx);\n const picture = recorder.finishRecordingAsPicture();\n return picture;\n};\n"],"mappings":"AAEA,SAASA,iBAAT,QAAkC,cAAlC;AACA,SAASC,IAAT,QAAqB,SAArB;AAEA,SAASC,QAAT,QAAyB,cAAzB;AAEA,OAAO,MAAMC,WAAW,GAAG,CACzBC,OADyB,EAEzBC,KAFyB,EAGzBC,MAHyB,KAItB;EACH,MAAMC,OAAO,GAAGC,aAAa,CAACJ,OAAD,CAA7B;EACA,MAAMK,OAAO,GAAGR,IAAI,CAACS,OAAL,CAAaC,aAAb,CAA2BN,KAA3B,EAAkCC,MAAlC,CAAhB;;EACA,IAAI,CAACG,OAAL,EAAc;IACZ,MAAM,IAAIG,KAAJ,CAAU,oCAAV,CAAN;EACD;;EACD,MAAMC,MAAM,GAAGJ,OAAO,CAACK,SAAR,EAAf;EACAD,MAAM,CAACE,WAAP,CAAmBR,OAAnB;EACAE,OAAO,CAACO,KAAR;EACA,OAAOP,OAAO,CAACQ,iBAAR,EAAP;AACD,CAdM;AAgBP,OAAO,MAAMT,aAAa,GAAIJ,OAAD,IAA2B;EACtD,MAAMc,QAAQ,GAAGjB,IAAI,CAACkB,eAAL,EAAjB;EACA,MAAMN,MAAM,GAAGK,QAAQ,CAACE,cAAT,EAAf;EACA,MAAMC,IAAI,GAAG,IAAInB,QAAJ,CAAaD,IAAb,EAAmB,KAAnB,CAAb;EACAoB,IAAI,CAACC,MAAL,CAAYlB,OAAZ;EACA,MAAMmB,GAAG,GAAG,IAAIvB,iBAAJ,CAAsBC,IAAtB,EAA4BY,MAA5B,CAAZ;EACAQ,IAAI,CAACG,GAAL,CAASF,MAAT,CAAgBC,GAAhB;EACA,MAAMhB,OAAO,GAAGW,QAAQ,CAACO,wBAAT,EAAhB;EACA,OAAOlB,OAAP;AACD,CATM"}
1
+ {"version":3,"names":["JsiDrawingContext","Skia","SkiaRoot","drawAsPicture","element","recorder","PictureRecorder","canvas","beginRecording","root","render","ctx","dom","picture","finishRecordingAsPicture","drawAsImage","size","drawAsImageFromPicture","pd","surface","Surface","MakeOffscreen","width","height","getCanvas","scale","drawPicture","flush","makeImageSnapshot"],"sources":["Offscreen.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\n\nimport { JsiDrawingContext } from \"../dom/types\";\nimport type { SkPicture, SkSize } from \"../skia/types\";\nimport { Skia } from \"../skia\";\n\nimport { SkiaRoot } from \"./Reconciler\";\n\nexport const drawAsPicture = (element: ReactElement) => {\n const recorder = Skia.PictureRecorder();\n const canvas = recorder.beginRecording();\n const root = new SkiaRoot(Skia, false);\n root.render(element);\n const ctx = new JsiDrawingContext(Skia, canvas);\n root.dom.render(ctx);\n const picture = recorder.finishRecordingAsPicture();\n return picture;\n};\n\nexport const drawAsImage = (element: ReactElement, size: SkSize) => {\n return drawAsImageFromPicture(drawAsPicture(element), size);\n};\n\n// TODO: We're not sure yet why PixelRatio is not needed here.\nconst pd = 1;\nexport const drawAsImageFromPicture = (picture: SkPicture, size: SkSize) => {\n \"worklet\";\n const surface = Skia.Surface.MakeOffscreen(\n size.width * pd,\n size.height * pd\n )!;\n const canvas = surface.getCanvas();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n surface.flush();\n return surface.makeImageSnapshot();\n};\n"],"mappings":"AAEA,SAASA,iBAAT,QAAkC,cAAlC;AAEA,SAASC,IAAT,QAAqB,SAArB;AAEA,SAASC,QAAT,QAAyB,cAAzB;AAEA,OAAO,MAAMC,aAAa,GAAIC,OAAD,IAA2B;EACtD,MAAMC,QAAQ,GAAGJ,IAAI,CAACK,eAAL,EAAjB;EACA,MAAMC,MAAM,GAAGF,QAAQ,CAACG,cAAT,EAAf;EACA,MAAMC,IAAI,GAAG,IAAIP,QAAJ,CAAaD,IAAb,EAAmB,KAAnB,CAAb;EACAQ,IAAI,CAACC,MAAL,CAAYN,OAAZ;EACA,MAAMO,GAAG,GAAG,IAAIX,iBAAJ,CAAsBC,IAAtB,EAA4BM,MAA5B,CAAZ;EACAE,IAAI,CAACG,GAAL,CAASF,MAAT,CAAgBC,GAAhB;EACA,MAAME,OAAO,GAAGR,QAAQ,CAACS,wBAAT,EAAhB;EACA,OAAOD,OAAP;AACD,CATM;AAWP,OAAO,MAAME,WAAW,GAAG,CAACX,OAAD,EAAwBY,IAAxB,KAAyC;EAClE,OAAOC,sBAAsB,CAACd,aAAa,CAACC,OAAD,CAAd,EAAyBY,IAAzB,CAA7B;AACD,CAFM,C,CAIP;;AACA,MAAME,EAAE,GAAG,CAAX;AACA,OAAO,MAAMD,sBAAsB,GAAG,CAACJ,OAAD,EAAqBG,IAArB,KAAsC;EAC1E;;EACA,MAAMG,OAAO,GAAGlB,IAAI,CAACmB,OAAL,CAAaC,aAAb,CACdL,IAAI,CAACM,KAAL,GAAaJ,EADC,EAEdF,IAAI,CAACO,MAAL,GAAcL,EAFA,CAAhB;EAIA,MAAMX,MAAM,GAAGY,OAAO,CAACK,SAAR,EAAf;EACAjB,MAAM,CAACkB,KAAP,CAAaP,EAAb,EAAiBA,EAAjB;EACAX,MAAM,CAACmB,WAAP,CAAmBb,OAAnB;EACAM,OAAO,CAACQ,KAAR;EACA,OAAOR,OAAO,CAACS,iBAAR,EAAP;AACD,CAXM"}
@@ -0,0 +1,4 @@
1
+ import React from "react";
2
+ import type { AtlasProps } from "../../../dom/types";
3
+ import type { SkiaProps } from "../../processors";
4
+ export declare const Atlas: (props: SkiaProps<AtlasProps>) => React.JSX.Element;
@@ -0,0 +1,5 @@
1
+ import React from "react";
2
+ export const Atlas = props => {
3
+ return /*#__PURE__*/React.createElement("skAtlas", props);
4
+ };
5
+ //# sourceMappingURL=Atlas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Atlas","props"],"sources":["Atlas.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { AtlasProps } from \"../../../dom/types\";\nimport type { SkiaProps } from \"../../processors\";\n\nexport const Atlas = (props: SkiaProps<AtlasProps>) => {\n return <skAtlas {...props} />;\n};\n"],"mappings":"AAAA,OAAOA,KAAP,MAAkB,OAAlB;AAKA,OAAO,MAAMC,KAAK,GAAIC,KAAD,IAAkC;EACrD,oBAAO,+BAAaA,KAAb,CAAP;AACD,CAFM"}
@@ -11,3 +11,4 @@ export * from "./Vertices";
11
11
  export * from "./Fill";
12
12
  export * from "./FitBox";
13
13
  export * from "./Box";
14
+ export * from "./Atlas";
@@ -11,4 +11,5 @@ export * from "./Vertices";
11
11
  export * from "./Fill";
12
12
  export * from "./FitBox";
13
13
  export * from "./Box";
14
+ export * from "./Atlas";
14
15
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Circle\";\nexport * from \"./Rect\";\nexport * from \"./RoundedRect\";\nexport * from \"./DiffRect\";\nexport * from \"./Line\";\nexport * from \"./Path\";\nexport * from \"./Oval\";\nexport * from \"./Points\";\nexport * from \"./Patch\";\nexport * from \"./Vertices\";\nexport * from \"./Fill\";\nexport * from \"./FitBox\";\nexport * from \"./Box\";\n"],"mappings":"AAAA,cAAc,UAAd;AACA,cAAc,QAAd;AACA,cAAc,eAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,OAAd"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Circle\";\nexport * from \"./Rect\";\nexport * from \"./RoundedRect\";\nexport * from \"./DiffRect\";\nexport * from \"./Line\";\nexport * from \"./Path\";\nexport * from \"./Oval\";\nexport * from \"./Points\";\nexport * from \"./Patch\";\nexport * from \"./Vertices\";\nexport * from \"./Fill\";\nexport * from \"./FitBox\";\nexport * from \"./Box\";\nexport * from \"./Atlas\";\n"],"mappings":"AAAA,cAAc,UAAd;AACA,cAAc,QAAd;AACA,cAAc,eAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd;AACA,cAAc,UAAd;AACA,cAAc,OAAd;AACA,cAAc,SAAd"}
@@ -2,4 +2,4 @@ import type { DataSourceParam } from "../types";
2
2
  /**
3
3
  * Returns a Skia Animated Image object
4
4
  * */
5
- export declare const useAnimatedImage: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined) => import("../types").SkAnimatedImage | null;
5
+ export declare const useAnimatedImage: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined, managed?: boolean) => import("../types").SkAnimatedImage | null;
@@ -5,5 +5,8 @@ const animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(
5
5
  * Returns a Skia Animated Image object
6
6
  * */
7
7
 
8
- export const useAnimatedImage = (source, onError) => useRawData(source, animatedImgFactory, onError);
8
+ export const useAnimatedImage = function (source, onError) {
9
+ let managed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
10
+ return useRawData(source, animatedImgFactory, onError, managed);
11
+ };
9
12
  //# sourceMappingURL=AnimatedImage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["Skia","useRawData","animatedImgFactory","AnimatedImage","MakeAnimatedImageFromEncoded","bind","useAnimatedImage","source","onError"],"sources":["AnimatedImage.ts"],"sourcesContent":["import { Skia } from \"../Skia\";\nimport type { DataSourceParam } from \"../types\";\n\nimport { useRawData } from \"./Data\";\n\nconst animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(\n Skia.AnimatedImage\n);\n\n/**\n * Returns a Skia Animated Image object\n * */\nexport const useAnimatedImage = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => useRawData(source, animatedImgFactory, onError);\n"],"mappings":"AAAA,SAASA,IAAT,QAAqB,SAArB;AAGA,SAASC,UAAT,QAA2B,QAA3B;AAEA,MAAMC,kBAAkB,GAAGF,IAAI,CAACG,aAAL,CAAmBC,4BAAnB,CAAgDC,IAAhD,CACzBL,IAAI,CAACG,aADoB,CAA3B;AAIA;AACA;AACA;;AACA,OAAO,MAAMG,gBAAgB,GAAG,CAC9BC,MAD8B,EAE9BC,OAF8B,KAG3BP,UAAU,CAACM,MAAD,EAASL,kBAAT,EAA6BM,OAA7B,CAHR"}
1
+ {"version":3,"names":["Skia","useRawData","animatedImgFactory","AnimatedImage","MakeAnimatedImageFromEncoded","bind","useAnimatedImage","source","onError","managed"],"sources":["AnimatedImage.ts"],"sourcesContent":["import { Skia } from \"../Skia\";\nimport type { DataSourceParam } from \"../types\";\n\nimport { useRawData } from \"./Data\";\n\nconst animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(\n Skia.AnimatedImage\n);\n\n/**\n * Returns a Skia Animated Image object\n * */\nexport const useAnimatedImage = (\n source: DataSourceParam,\n onError?: (err: Error) => void,\n managed = true\n) => useRawData(source, animatedImgFactory, onError, managed);\n"],"mappings":"AAAA,SAASA,IAAT,QAAqB,SAArB;AAGA,SAASC,UAAT,QAA2B,QAA3B;AAEA,MAAMC,kBAAkB,GAAGF,IAAI,CAACG,aAAL,CAAmBC,4BAAnB,CAAgDC,IAAhD,CACzBL,IAAI,CAACG,aADoB,CAA3B;AAIA;AACA;AACA;;AACA,OAAO,MAAMG,gBAAgB,GAAG,UAC9BC,MAD8B,EAE9BC,OAF8B;EAAA,IAG9BC,OAH8B,uEAGpB,IAHoB;EAAA,OAI3BR,UAAU,CAACM,MAAD,EAASL,kBAAT,EAA6BM,OAA7B,EAAsCC,OAAtC,CAJiB;AAAA,CAAzB"}
@@ -1,5 +1,5 @@
1
1
  import type { SkData, DataSourceParam, SkJSIInstance } from "../types";
2
2
  export declare const loadData: <T>(source: DataSourceParam, factory: (data: SkData) => T | null, onError?: ((err: Error) => void) | undefined) => Promise<T | null>;
3
3
  export declare const useCollectionLoading: <T extends SkJSIInstance<string>>(source: DataSourceParam[], loader: () => Promise<(T | null)[]>) => T[] | null;
4
- export declare const useRawData: <T extends SkJSIInstance<string>>(source: DataSourceParam, factory: (data: SkData) => T | null, onError?: ((err: Error) => void) | undefined) => T | null;
4
+ export declare const useRawData: <T extends SkJSIInstance<string>>(source: DataSourceParam, factory: (data: SkData) => T | null, onError?: ((err: Error) => void) | undefined, manage?: boolean) => T | null;
5
5
  export declare const useData: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined) => SkData | null;
@@ -24,7 +24,8 @@ export const loadData = (source, factory, onError) => {
24
24
  }
25
25
  };
26
26
 
27
- const useLoading = (source, loader) => {
27
+ const useLoading = function (source, loader) {
28
+ let manage = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
28
29
  const mounted = useRef(false);
29
30
  const [data, setData] = useState(null);
30
31
  const dataRef = useRef(null);
@@ -37,9 +38,12 @@ const useLoading = (source, loader) => {
37
38
  }
38
39
  });
39
40
  return () => {
40
- var _dataRef$current;
41
+ if (manage) {
42
+ var _dataRef$current;
43
+
44
+ (_dataRef$current = dataRef.current) === null || _dataRef$current === void 0 ? void 0 : _dataRef$current.dispose();
45
+ }
41
46
 
42
- (_dataRef$current = dataRef.current) === null || _dataRef$current === void 0 ? void 0 : _dataRef$current.dispose();
43
47
  mounted.current = false;
44
48
  }; // eslint-disable-next-line react-hooks/exhaustive-deps
45
49
  }, [source]);
@@ -69,7 +73,10 @@ export const useCollectionLoading = (source, loader) => {
69
73
  }, [source]);
70
74
  return data;
71
75
  };
72
- export const useRawData = (source, factory, onError) => useLoading(source, () => loadData(source, factory, onError));
76
+ export const useRawData = function (source, factory, onError) {
77
+ let manage = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
78
+ return useLoading(source, () => loadData(source, factory, onError), manage);
79
+ };
73
80
 
74
81
  const identity = data => data;
75
82
 
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useRef","useState","Skia","Platform","factoryWrapper","data2","factory","onError","factoryResult","Error","loadData","source","undefined","Promise","resolve","Uint8Array","Data","fromBytes","uri","resolveAsset","fromURI","then","d","useLoading","loader","mounted","data","setData","dataRef","current","value","dispose","useCollectionLoading","result","filter","r","forEach","instance","useRawData","identity","useData"],"sources":["Data.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport type { SkData, DataSourceParam, SkJSIInstance } from \"../types\";\nimport { Platform } from \"../../Platform\";\n\nconst factoryWrapper = <T>(\n data2: SkData,\n factory: (data: SkData) => T,\n onError?: (err: Error) => void\n) => {\n const factoryResult = factory(data2);\n if (factoryResult === null) {\n onError && onError(new Error(\"Could not load data\"));\n return null;\n } else {\n return factoryResult;\n }\n};\n\nexport const loadData = <T>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void\n): Promise<T | null> => {\n if (source === null || source === undefined) {\n return new Promise((resolve) => resolve(null));\n } else if (source instanceof Uint8Array) {\n return new Promise((resolve) =>\n resolve(factoryWrapper(Skia.Data.fromBytes(source), factory, onError))\n );\n } else {\n const uri =\n typeof source === \"string\" ? source : Platform.resolveAsset(source);\n return Skia.Data.fromURI(uri).then((d) =>\n factoryWrapper(d, factory, onError)\n );\n }\n};\n\nconst useLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n loader: () => Promise<T | null>\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T | null>(null);\n const dataRef = useRef<T | null>(null);\n useEffect(() => {\n mounted.current = true;\n loader().then((value) => {\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n return () => {\n dataRef.current?.dispose();\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n return data;\n};\n\nexport const useCollectionLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam[],\n loader: () => Promise<(T | null)[]>\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T[] | null>(null);\n const dataRef = useRef<T[] | null>(null);\n\n useEffect(() => {\n mounted.current = true;\n loader().then((result) => {\n const value = result.filter((r) => r !== null) as T[];\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n\n return () => {\n dataRef.current?.forEach((instance) => instance?.dispose());\n mounted.current = false;\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n\n return data;\n};\n\nexport const useRawData = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void\n) => useLoading(source, () => loadData<T>(source, factory, onError));\n\nconst identity = (data: SkData) => data;\n\nexport const useData = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => useRawData(source, identity, onError);\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useRef","useState","Skia","Platform","factoryWrapper","data2","factory","onError","factoryResult","Error","loadData","source","undefined","Promise","resolve","Uint8Array","Data","fromBytes","uri","resolveAsset","fromURI","then","d","useLoading","loader","manage","mounted","data","setData","dataRef","current","value","dispose","useCollectionLoading","result","filter","r","forEach","instance","useRawData","identity","useData"],"sources":["Data.ts"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport type { SkData, DataSourceParam, SkJSIInstance } from \"../types\";\nimport { Platform } from \"../../Platform\";\n\nconst factoryWrapper = <T>(\n data2: SkData,\n factory: (data: SkData) => T,\n onError?: (err: Error) => void\n) => {\n const factoryResult = factory(data2);\n if (factoryResult === null) {\n onError && onError(new Error(\"Could not load data\"));\n return null;\n } else {\n return factoryResult;\n }\n};\n\nexport const loadData = <T>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void\n): Promise<T | null> => {\n if (source === null || source === undefined) {\n return new Promise((resolve) => resolve(null));\n } else if (source instanceof Uint8Array) {\n return new Promise((resolve) =>\n resolve(factoryWrapper(Skia.Data.fromBytes(source), factory, onError))\n );\n } else {\n const uri =\n typeof source === \"string\" ? source : Platform.resolveAsset(source);\n return Skia.Data.fromURI(uri).then((d) =>\n factoryWrapper(d, factory, onError)\n );\n }\n};\n\nconst useLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n loader: () => Promise<T | null>,\n manage = true\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T | null>(null);\n const dataRef = useRef<T | null>(null);\n useEffect(() => {\n mounted.current = true;\n loader().then((value) => {\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n return () => {\n if (manage) {\n dataRef.current?.dispose();\n }\n mounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n return data;\n};\n\nexport const useCollectionLoading = <T extends SkJSIInstance<string>>(\n source: DataSourceParam[],\n loader: () => Promise<(T | null)[]>\n) => {\n const mounted = useRef(false);\n const [data, setData] = useState<T[] | null>(null);\n const dataRef = useRef<T[] | null>(null);\n\n useEffect(() => {\n mounted.current = true;\n loader().then((result) => {\n const value = result.filter((r) => r !== null) as T[];\n if (mounted.current) {\n setData(value);\n dataRef.current = value;\n }\n });\n\n return () => {\n dataRef.current?.forEach((instance) => instance?.dispose());\n mounted.current = false;\n };\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [source]);\n\n return data;\n};\n\nexport const useRawData = <T extends SkJSIInstance<string>>(\n source: DataSourceParam,\n factory: (data: SkData) => T | null,\n onError?: (err: Error) => void,\n manage = true\n) => useLoading(source, () => loadData<T>(source, factory, onError), manage);\n\nconst identity = (data: SkData) => data;\n\nexport const useData = (\n source: DataSourceParam,\n onError?: (err: Error) => void\n) => useRawData(source, identity, onError);\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import type { SkRect, SkRRect } from "../types";
2
- export declare const rect: (x: number, y: number, width: number, height: number) => SkRect;
3
- export declare const bounds: (rects: SkRect[]) => SkRect;
2
+ export declare const rect: (x: number, y: number, width: number, height: number) => import("../types").SkHostRect;
3
+ export declare const bounds: (rects: SkRect[]) => import("../types").SkHostRect;
4
4
  export declare const topLeft: (r: SkRect | SkRRect) => import("../types").SkPoint;
5
5
  export declare const topRight: (r: SkRect | SkRRect) => import("../types").SkPoint;
6
6
  export declare const bottomLeft: (r: SkRect | SkRRect) => import("../types").SkPoint;
@@ -2,7 +2,7 @@ import type { SkPaint } from "./Paint";
2
2
  import type { SkRect } from "./Rect";
3
3
  import type { SkFont } from "./Font";
4
4
  import type { SkPath } from "./Path";
5
- import type { SkImage, MipmapMode, FilterMode, ImageInfo } from "./Image";
5
+ import type { SkImage, MipmapMode, FilterMode, ImageInfo, CubicResampler, FilterOptions } from "./Image";
6
6
  import type { SkSVG } from "./SVG";
7
7
  import type { SkColor } from "./Color";
8
8
  import type { InputRRect } from "./RRect";
@@ -13,6 +13,7 @@ import type { SkImageFilter } from "./ImageFilter";
13
13
  import type { SkVertices } from "./Vertices";
14
14
  import type { SkTextBlob } from "./TextBlob";
15
15
  import type { SkPicture } from "./Picture";
16
+ import type { SkRSXform } from "./RSXform";
16
17
  export declare enum ClipOp {
17
18
  Difference = 0,
18
19
  Intersect = 1
@@ -378,6 +379,20 @@ export interface SkCanvas {
378
379
  * @param skp
379
380
  */
380
381
  drawPicture(skp: SkPicture): void;
382
+ /**
383
+ * This method is used to draw an atlas on the canvas.
384
+ *
385
+ * @method drawAtlas
386
+ * @param {SkImage} atlas - The image to be drawn.
387
+ * @param {SkRect[]} srcs - The source rectangles.
388
+ * @param {SkRSXform[]} dsts - The destination transformations.
389
+ * @param {SkPaint} paint - The paint used for drawing.
390
+ * @param {BlendMode} [blendMode] - The blend mode used for drawing. Optional.
391
+ * @param {SkColor[]} [colors] - The colors used for drawing. Optional.
392
+ * @param {CubicResampler | FilterOptions} [sampling] - The sampling options. Optional.
393
+ * @returns {void} This method does not return anything.
394
+ */
395
+ drawAtlas(atlas: SkImage, srcs: SkRect[], dsts: SkRSXform[], paint: SkPaint, blendMode?: BlendMode, colors?: SkColor[], sampling?: CubicResampler | FilterOptions): void;
381
396
  /** Read Image pixels
382
397
  *
383
398
  * @param srcX - x-axis upper left corner of the rectangle to read from