@shopify/react-native-skia 0.1.210 → 0.1.212

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 (95) hide show
  1. package/cpp/api/JsiSkAnimatedImage.h +60 -0
  2. package/cpp/api/JsiSkAnimatedImageFactory.h +39 -0
  3. package/cpp/api/JsiSkApi.h +4 -0
  4. package/cpp/api/JsiSkImage.h +15 -23
  5. package/cpp/api/JsiSkPath.h +66 -22
  6. package/cpp/skia/src/core/SkPathPriv.h +540 -0
  7. package/lib/commonjs/external/reanimated/moduleWrapper.d.ts +2 -0
  8. package/lib/commonjs/external/reanimated/moduleWrapper.js +11 -11
  9. package/lib/commonjs/external/reanimated/moduleWrapper.js.map +1 -1
  10. package/lib/commonjs/skia/core/AnimatedImage.d.ts +6 -0
  11. package/lib/commonjs/skia/core/AnimatedImage.js +65 -0
  12. package/lib/commonjs/skia/core/AnimatedImage.js.map +1 -0
  13. package/lib/commonjs/skia/core/Font.js +7 -6
  14. package/lib/commonjs/skia/core/Font.js.map +1 -1
  15. package/lib/commonjs/skia/core/index.d.ts +1 -0
  16. package/lib/commonjs/skia/core/index.js +13 -0
  17. package/lib/commonjs/skia/core/index.js.map +1 -1
  18. package/lib/commonjs/skia/types/AnimatedImage/AnimatedImage.d.ts +24 -0
  19. package/lib/commonjs/skia/types/AnimatedImage/AnimatedImage.js +6 -0
  20. package/lib/commonjs/skia/types/AnimatedImage/AnimatedImage.js.map +1 -0
  21. package/lib/commonjs/skia/types/AnimatedImage/AnimatedImageFactory.d.ts +13 -0
  22. package/lib/commonjs/skia/types/AnimatedImage/AnimatedImageFactory.js +6 -0
  23. package/lib/commonjs/skia/types/AnimatedImage/AnimatedImageFactory.js.map +1 -0
  24. package/lib/commonjs/skia/types/AnimatedImage/index.d.ts +2 -0
  25. package/lib/commonjs/skia/types/AnimatedImage/index.js +32 -0
  26. package/lib/commonjs/skia/types/AnimatedImage/index.js.map +1 -0
  27. package/lib/commonjs/skia/types/Skia.d.ts +2 -0
  28. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  29. package/lib/commonjs/skia/types/index.d.ts +1 -0
  30. package/lib/commonjs/skia/types/index.js +13 -0
  31. package/lib/commonjs/skia/types/index.js.map +1 -1
  32. package/lib/commonjs/skia/web/JsiSkAnimatedImage.d.ts +11 -0
  33. package/lib/commonjs/skia/web/JsiSkAnimatedImage.js +44 -0
  34. package/lib/commonjs/skia/web/JsiSkAnimatedImage.js.map +1 -0
  35. package/lib/commonjs/skia/web/JsiSkAnimatedImageFactory.d.ts +9 -0
  36. package/lib/commonjs/skia/web/JsiSkAnimatedImageFactory.js +32 -0
  37. package/lib/commonjs/skia/web/JsiSkAnimatedImageFactory.js.map +1 -0
  38. package/lib/commonjs/skia/web/JsiSkia.js +3 -0
  39. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  40. package/lib/module/external/reanimated/moduleWrapper.d.ts +2 -0
  41. package/lib/module/external/reanimated/moduleWrapper.js +8 -11
  42. package/lib/module/external/reanimated/moduleWrapper.js.map +1 -1
  43. package/lib/module/skia/core/AnimatedImage.d.ts +6 -0
  44. package/lib/module/skia/core/AnimatedImage.js +49 -0
  45. package/lib/module/skia/core/AnimatedImage.js.map +1 -0
  46. package/lib/module/skia/core/Font.js +6 -5
  47. package/lib/module/skia/core/Font.js.map +1 -1
  48. package/lib/module/skia/core/index.d.ts +1 -0
  49. package/lib/module/skia/core/index.js +1 -0
  50. package/lib/module/skia/core/index.js.map +1 -1
  51. package/lib/module/skia/types/AnimatedImage/AnimatedImage.d.ts +24 -0
  52. package/lib/module/skia/types/AnimatedImage/AnimatedImage.js +2 -0
  53. package/lib/module/skia/types/AnimatedImage/AnimatedImage.js.map +1 -0
  54. package/lib/module/skia/types/AnimatedImage/AnimatedImageFactory.d.ts +13 -0
  55. package/lib/module/skia/types/AnimatedImage/AnimatedImageFactory.js +2 -0
  56. package/lib/module/skia/types/AnimatedImage/AnimatedImageFactory.js.map +1 -0
  57. package/lib/module/skia/types/AnimatedImage/index.d.ts +2 -0
  58. package/lib/module/skia/types/AnimatedImage/index.js +3 -0
  59. package/lib/module/skia/types/AnimatedImage/index.js.map +1 -0
  60. package/lib/module/skia/types/Skia.d.ts +2 -0
  61. package/lib/module/skia/types/Skia.js.map +1 -1
  62. package/lib/module/skia/types/index.d.ts +1 -0
  63. package/lib/module/skia/types/index.js +1 -0
  64. package/lib/module/skia/types/index.js.map +1 -1
  65. package/lib/module/skia/web/JsiSkAnimatedImage.d.ts +11 -0
  66. package/lib/module/skia/web/JsiSkAnimatedImage.js +33 -0
  67. package/lib/module/skia/web/JsiSkAnimatedImage.js.map +1 -0
  68. package/lib/module/skia/web/JsiSkAnimatedImageFactory.d.ts +9 -0
  69. package/lib/module/skia/web/JsiSkAnimatedImageFactory.js +20 -0
  70. package/lib/module/skia/web/JsiSkAnimatedImageFactory.js.map +1 -0
  71. package/lib/module/skia/web/JsiSkia.js +2 -0
  72. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  73. package/lib/typescript/src/external/reanimated/moduleWrapper.d.ts +2 -0
  74. package/lib/typescript/src/skia/core/AnimatedImage.d.ts +6 -0
  75. package/lib/typescript/src/skia/core/index.d.ts +1 -0
  76. package/lib/typescript/src/skia/types/AnimatedImage/AnimatedImage.d.ts +24 -0
  77. package/lib/typescript/src/skia/types/AnimatedImage/AnimatedImageFactory.d.ts +13 -0
  78. package/lib/typescript/src/skia/types/AnimatedImage/index.d.ts +2 -0
  79. package/lib/typescript/src/skia/types/Skia.d.ts +2 -0
  80. package/lib/typescript/src/skia/types/index.d.ts +1 -0
  81. package/lib/typescript/src/skia/web/JsiSkAnimatedImage.d.ts +11 -0
  82. package/lib/typescript/src/skia/web/JsiSkAnimatedImageFactory.d.ts +9 -0
  83. package/package.json +1 -1
  84. package/src/external/reanimated/moduleWrapper.ts +9 -8
  85. package/src/skia/core/AnimatedImage.ts +63 -0
  86. package/src/skia/core/Font.ts +5 -5
  87. package/src/skia/core/index.ts +1 -0
  88. package/src/skia/types/AnimatedImage/AnimatedImage.ts +29 -0
  89. package/src/skia/types/AnimatedImage/AnimatedImageFactory.ts +15 -0
  90. package/src/skia/types/AnimatedImage/index.ts +2 -0
  91. package/src/skia/types/Skia.ts +3 -0
  92. package/src/skia/types/index.ts +1 -0
  93. package/src/skia/web/JsiSkAnimatedImage.ts +35 -0
  94. package/src/skia/web/JsiSkAnimatedImageFactory.ts +27 -0
  95. package/src/skia/web/JsiSkia.ts +2 -0
@@ -1 +1 @@
1
- {"version":3,"names":["useMemo","Reanimated2","Reanimated3","reanimatedVersion","require","version","includes","e","HAS_REANIMATED2","HAS_REANIMATED3","throwOnMissingReanimated2","Error","throwOnMissingReanimated3","useSharedValue","value","startMapper","stopMapper","runOnJS","isSharedValue"],"sources":["moduleWrapper.ts"],"sourcesContent":["import { useMemo } from \"react\";\n\nimport type { SharedValueType } from \"../../renderer/processors/Animations\";\n\n// This one is needed for the deprecated useSharedValue function\n// We can remove it once we remove the deprecation\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet Reanimated2: any;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nlet Reanimated3: any;\nlet reanimatedVersion: string;\n\ntry {\n Reanimated2 = require(\"react-native-reanimated\");\n reanimatedVersion =\n // eslint-disable-next-line import/extensions\n require(\"react-native-reanimated/package.json\").version;\n if (\n reanimatedVersion &&\n (reanimatedVersion >= \"3.0.0\" || reanimatedVersion.includes(\"3.0.0-\"))\n ) {\n Reanimated3 = Reanimated2;\n }\n} catch (e) {}\n\nexport const HAS_REANIMATED2 = !!Reanimated2;\nexport const HAS_REANIMATED3 = !!Reanimated3;\n\nfunction throwOnMissingReanimated2() {\n if (!HAS_REANIMATED2) {\n throw new Error(\n \"Reanimated was not found, make sure react-native-reanimated package is installed if you want to use \\\n react-native-skia's integration layer API.\"\n );\n }\n}\n\nfunction throwOnMissingReanimated3() {\n if (!HAS_REANIMATED3) {\n throw new Error(\n `Reanimated version ${reanimatedVersion} is not supported, please upgrade to 3.0.0 or newer.`\n );\n }\n throwOnMissingReanimated2();\n}\n\nexport const useSharedValue =\n Reanimated2?.useSharedValue ||\n ((value: number) => useMemo(() => ({ value }), [value]));\n\nexport const startMapper =\n Reanimated2?.startMapper || throwOnMissingReanimated2;\nexport const stopMapper = Reanimated2?.stopMapper || throwOnMissingReanimated2;\nexport const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated2;\nexport const isSharedValue = <T>(\n value: unknown\n): value is SharedValueType<T> => {\n throwOnMissingReanimated3();\n return !!value && Reanimated3.isSharedValue(value);\n};\n"],"mappings":";;AAAA,SAASA,OAAT,QAAwB,OAAxB;AAIA;AACA;AACA;AACA,IAAIC,WAAJ,C,CACA;;AACA,IAAIC,WAAJ;AACA,IAAIC,iBAAJ;;AAEA,IAAI;EACFF,WAAW,GAAGG,OAAO,CAAC,yBAAD,CAArB;EACAD,iBAAiB,GACf;EACAC,OAAO,CAAC,sCAAD,CAAP,CAAgDC,OAFlD;;EAGA,IACEF,iBAAiB,KAChBA,iBAAiB,IAAI,OAArB,IAAgCA,iBAAiB,CAACG,QAAlB,CAA2B,QAA3B,CADhB,CADnB,EAGE;IACAJ,WAAW,GAAGD,WAAd;EACD;AACF,CAXD,CAWE,OAAOM,CAAP,EAAU,CAAE;;AAEd,OAAO,MAAMC,eAAe,GAAG,CAAC,CAACP,WAA1B;AACP,OAAO,MAAMQ,eAAe,GAAG,CAAC,CAACP,WAA1B;;AAEP,SAASQ,yBAAT,GAAqC;EACnC,IAAI,CAACF,eAAL,EAAsB;IACpB,MAAM,IAAIG,KAAJ,CACJ;AACN,iDAFU,CAAN;EAID;AACF;;AAED,SAASC,yBAAT,GAAqC;EACnC,IAAI,CAACH,eAAL,EAAsB;IACpB,MAAM,IAAIE,KAAJ,CACH,sBAAqBR,iBAAkB,sDADpC,CAAN;EAGD;;EACDO,yBAAyB;AAC1B;;AAED,OAAO,MAAMG,cAAc,GACzB,gBAAAZ,WAAW,UAAX,kDAAaY,cAAb,MACEC,KAAD,IAAmBd,OAAO,CAAC,OAAO;EAAEc;AAAF,CAAP,CAAD,EAAoB,CAACA,KAAD,CAApB,CAD3B,CADK;AAIP,OAAO,MAAMC,WAAW,GACtB,iBAAAd,WAAW,UAAX,oDAAac,WAAb,KAA4BL,yBADvB;AAEP,OAAO,MAAMM,UAAU,GAAG,iBAAAf,WAAW,UAAX,oDAAae,UAAb,KAA2BN,yBAA9C;AACP,OAAO,MAAMO,OAAO,GAAG,iBAAAhB,WAAW,UAAX,oDAAagB,OAAb,KAAwBP,yBAAxC;AACP,OAAO,MAAMQ,aAAa,GACxBJ,KAD2B,IAEK;EAChCF,yBAAyB;EACzB,OAAO,CAAC,CAACE,KAAF,IAAWZ,WAAW,CAACgB,aAAZ,CAA0BJ,KAA1B,CAAlB;AACD,CALM"}
1
+ {"version":3,"names":["useMemo","Reanimated2","Reanimated3","reanimatedVersion","require","version","includes","e","HAS_REANIMATED2","HAS_REANIMATED3","throwOnMissingReanimated","Error","throwOnMissingReanimated3","useSharedValue","value","useFrameCallback","startMapper","stopMapper","runOnJS","isSharedValue"],"sources":["moduleWrapper.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { useMemo } from \"react\";\n\nimport type { SharedValueType } from \"../../renderer/processors/Animations\";\n\n// This one is needed for the deprecated useSharedValue function\n// We can remove it once we remove the deprecation\n\nlet Reanimated2: any;\n\nlet Reanimated3: any;\nlet reanimatedVersion: string;\n\ntry {\n Reanimated2 = require(\"react-native-reanimated\");\n reanimatedVersion =\n // eslint-disable-next-line import/extensions\n require(\"react-native-reanimated/package.json\").version;\n if (\n reanimatedVersion &&\n (reanimatedVersion >= \"3.0.0\" || reanimatedVersion.includes(\"3.0.0-\"))\n ) {\n Reanimated3 = Reanimated2;\n }\n} catch (e) {}\n\nexport const HAS_REANIMATED2 = !!Reanimated2;\nexport const HAS_REANIMATED3 = !!Reanimated3;\n\nexport function throwOnMissingReanimated() {\n if (!HAS_REANIMATED2) {\n throw new Error(\n \"Reanimated was not found, make sure react-native-reanimated package is installed if you want to use \\\n react-native-skia's integration layer API.\"\n );\n }\n}\n\nfunction throwOnMissingReanimated3() {\n if (!HAS_REANIMATED3) {\n throw new Error(\n `Reanimated version ${reanimatedVersion} is not supported, please upgrade to 3.0.0 or newer.`\n );\n }\n}\n\nexport const useSharedValue =\n Reanimated2?.useSharedValue ||\n ((value: number) => useMemo(() => ({ value }), [value]));\nexport const useFrameCallback: (...args: any[]) => any =\n Reanimated2?.useFrameCallback || throwOnMissingReanimated;\n\nexport const startMapper = Reanimated2?.startMapper || throwOnMissingReanimated;\nexport const stopMapper = Reanimated2?.stopMapper || throwOnMissingReanimated;\nexport const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated;\nexport const isSharedValue = <T>(\n value: unknown\n): value is SharedValueType<T> => {\n throwOnMissingReanimated3();\n return !!value && Reanimated3.isSharedValue(value);\n};\n"],"mappings":";;AAAA;AACA,SAASA,OAAT,QAAwB,OAAxB;AAIA;AACA;AAEA,IAAIC,WAAJ;AAEA,IAAIC,WAAJ;AACA,IAAIC,iBAAJ;;AAEA,IAAI;EACFF,WAAW,GAAGG,OAAO,CAAC,yBAAD,CAArB;EACAD,iBAAiB,GACf;EACAC,OAAO,CAAC,sCAAD,CAAP,CAAgDC,OAFlD;;EAGA,IACEF,iBAAiB,KAChBA,iBAAiB,IAAI,OAArB,IAAgCA,iBAAiB,CAACG,QAAlB,CAA2B,QAA3B,CADhB,CADnB,EAGE;IACAJ,WAAW,GAAGD,WAAd;EACD;AACF,CAXD,CAWE,OAAOM,CAAP,EAAU,CAAE;;AAEd,OAAO,MAAMC,eAAe,GAAG,CAAC,CAACP,WAA1B;AACP,OAAO,MAAMQ,eAAe,GAAG,CAAC,CAACP,WAA1B;AAEP,OAAO,SAASQ,wBAAT,GAAoC;EACzC,IAAI,CAACF,eAAL,EAAsB;IACpB,MAAM,IAAIG,KAAJ,CACJ;AACN,iDAFU,CAAN;EAID;AACF;;AAED,SAASC,yBAAT,GAAqC;EACnC,IAAI,CAACH,eAAL,EAAsB;IACpB,MAAM,IAAIE,KAAJ,CACH,sBAAqBR,iBAAkB,sDADpC,CAAN;EAGD;AACF;;AAED,OAAO,MAAMU,cAAc,GACzB,gBAAAZ,WAAW,UAAX,kDAAaY,cAAb,MACEC,KAAD,IAAmBd,OAAO,CAAC,OAAO;EAAEc;AAAF,CAAP,CAAD,EAAoB,CAACA,KAAD,CAApB,CAD3B,CADK;AAGP,OAAO,MAAMC,gBAAyC,GACpD,iBAAAd,WAAW,UAAX,oDAAac,gBAAb,KAAiCL,wBAD5B;AAGP,OAAO,MAAMM,WAAW,GAAG,iBAAAf,WAAW,UAAX,oDAAae,WAAb,KAA4BN,wBAAhD;AACP,OAAO,MAAMO,UAAU,GAAG,iBAAAhB,WAAW,UAAX,oDAAagB,UAAb,KAA2BP,wBAA9C;AACP,OAAO,MAAMQ,OAAO,GAAG,iBAAAjB,WAAW,UAAX,oDAAaiB,OAAb,KAAwBR,wBAAxC;AACP,OAAO,MAAMS,aAAa,GACxBL,KAD2B,IAEK;EAChCF,yBAAyB;EACzB,OAAO,CAAC,CAACE,KAAF,IAAWZ,WAAW,CAACiB,aAAZ,CAA0BL,KAA1B,CAAlB;AACD,CALM"}
@@ -0,0 +1,6 @@
1
+ import type { DataSourceParam } from "../types";
2
+ /**
3
+ * Returns a Skia Animated Image object
4
+ * */
5
+ export declare const useAnimatedImage: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined) => import("../types").SkAnimatedImage | null;
6
+ export declare const useAnimatedImageValue: (source: DataSourceParam) => any;
@@ -0,0 +1,49 @@
1
+ import { throwOnMissingReanimated, useFrameCallback, useSharedValue } from "../../external/reanimated/moduleWrapper";
2
+ import { Skia } from "../Skia";
3
+ import { useRawData } from "./Data";
4
+ const animatedImgFactory = Skia.AnimatedImage.MakeAnimatedImageFromEncoded.bind(Skia.AnimatedImage);
5
+ /**
6
+ * Returns a Skia Animated Image object
7
+ * */
8
+
9
+ export const useAnimatedImage = (source, onError) => useRawData(source, animatedImgFactory, onError);
10
+ const DEFAULT_FRAME_DURATION = 60;
11
+ export const useAnimatedImageValue = source => {
12
+ throwOnMissingReanimated();
13
+ const currentFrame = useSharedValue(null);
14
+ const lastTimestamp = useSharedValue(0);
15
+ const animatedImage = useAnimatedImage(source, err => {
16
+ console.error(err);
17
+ throw new Error(`Could not load animated image - got '${err.message}'`);
18
+ });
19
+ const frameDuration = (animatedImage === null || animatedImage === void 0 ? void 0 : animatedImage.currentFrameDuration()) || DEFAULT_FRAME_DURATION; // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+
21
+ useFrameCallback(frameInfo => {
22
+ if (!animatedImage) {
23
+ currentFrame.value = null;
24
+ return;
25
+ }
26
+
27
+ const {
28
+ timestamp
29
+ } = frameInfo;
30
+ const elapsed = timestamp - lastTimestamp.value; // Check if it's time to switch frames based on GIF frame duration
31
+
32
+ if (elapsed < frameDuration) {
33
+ return;
34
+ } // Update the current frame
35
+
36
+
37
+ animatedImage.decodeNextFrame();
38
+
39
+ if (currentFrame.value) {
40
+ currentFrame.value.dispose();
41
+ }
42
+
43
+ currentFrame.value = animatedImage.getCurrentFrame(); // Update the last timestamp
44
+
45
+ lastTimestamp.value = timestamp; // eslint-disable-next-line react-hooks/exhaustive-deps
46
+ }, true);
47
+ return currentFrame;
48
+ };
49
+ //# sourceMappingURL=AnimatedImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["throwOnMissingReanimated","useFrameCallback","useSharedValue","Skia","useRawData","animatedImgFactory","AnimatedImage","MakeAnimatedImageFromEncoded","bind","useAnimatedImage","source","onError","DEFAULT_FRAME_DURATION","useAnimatedImageValue","currentFrame","lastTimestamp","animatedImage","err","console","error","Error","message","frameDuration","currentFrameDuration","frameInfo","value","timestamp","elapsed","decodeNextFrame","dispose","getCurrentFrame"],"sources":["AnimatedImage.ts"],"sourcesContent":["import {\n throwOnMissingReanimated,\n useFrameCallback,\n useSharedValue,\n} from \"../../external/reanimated/moduleWrapper\";\nimport { 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\nconst DEFAULT_FRAME_DURATION = 60;\n\nexport const useAnimatedImageValue = (source: DataSourceParam) => {\n throwOnMissingReanimated();\n const currentFrame = useSharedValue(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 // eslint-disable-next-line @typescript-eslint/no-explicit-any\n useFrameCallback((frameInfo: any) => {\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":"AAAA,SACEA,wBADF,EAEEC,gBAFF,EAGEC,cAHF,QAIO,yCAJP;AAKA,SAASC,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;AAKP,MAAMC,sBAAsB,GAAG,EAA/B;AAEA,OAAO,MAAMC,qBAAqB,GAAIH,MAAD,IAA6B;EAChEV,wBAAwB;EACxB,MAAMc,YAAY,GAAGZ,cAAc,CAAC,IAAD,CAAnC;EACA,MAAMa,aAAa,GAAGb,cAAc,CAAC,CAAD,CAApC;EACA,MAAMc,aAAa,GAAGP,gBAAgB,CAACC,MAAD,EAAUO,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,OAAyCX,sBAD3C,CARgE,CAWhE;;EACAX,gBAAgB,CAAEuB,SAAD,IAAoB;IACnC,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,CAPmC,CASnC;;IACA,IAAIE,OAAO,GAAGL,aAAd,EAA6B;MAC3B;IACD,CAZkC,CAcnC;;;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,CAnBmC,CAqBnC;;IACAf,aAAa,CAACU,KAAd,GAAsBC,SAAtB,CAtBmC,CAuBnC;EACD,CAxBe,EAwBb,IAxBa,CAAhB;EAyBA,OAAOZ,YAAP;AACD,CAtCM"}
@@ -4,17 +4,18 @@ import { Skia } from "../Skia";
4
4
  import { FontSlant } from "../types";
5
5
  import { Platform } from "../../Platform";
6
6
  import { useTypeface } from "./Typeface";
7
+ const defaultFontSize = 14;
7
8
  /**
8
9
  * Returns a Skia Font object
9
10
  * */
10
11
 
11
- export const useFont = (font, size, onError) => {
12
+ export const useFont = function (font) {
13
+ let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultFontSize;
14
+ let onError = arguments.length > 2 ? arguments[2] : undefined;
12
15
  const typeface = useTypeface(font, onError);
13
16
  return useMemo(() => {
14
- if (typeface && size) {
17
+ if (typeface) {
15
18
  return Skia.Font(typeface, size);
16
- } else if (typeface && !size) {
17
- return Skia.Font(typeface);
18
19
  } else {
19
20
  return null;
20
21
  }
@@ -22,7 +23,7 @@ export const useFont = (font, size, onError) => {
22
23
  };
23
24
  const defaultFontStyle = {
24
25
  fontFamily: "System",
25
- fontSize: 14,
26
+ fontSize: defaultFontSize,
26
27
  fontStyle: "normal",
27
28
  fontWeight: "normal"
28
29
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useState","Skia","FontSlant","Platform","useTypeface","useFont","font","size","onError","typeface","Font","defaultFontStyle","fontFamily","fontSize","fontStyle","fontWeight","slant","s","Italic","Oblique","Upright","weight","parseInt","matchFont","inputStyle","fontMgr","FontMgr","System","style","width","matchFamilyStyle","listFontFamilies","Array","countFamilies","fill","map","_","i","getFamilyName","loadTypefaces","typefacesToLoad","promises","Object","keys","flatMap","familyName","typefaceToLoad","Data","fromURI","resolveAsset","then","data","tf","Typeface","MakeFreeTypeFaceFromData","Error","Promise","all","useFonts","sources","setFontMgr","result","fMgr","TypefaceFontProvider","Make","forEach","registerFont"],"sources":["Font.ts"],"sourcesContent":["/*global SkiaApi*/\nimport { useEffect, useMemo, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport { FontSlant } from \"../types\";\nimport type { DataModule, DataSourceParam, SkFontMgr } from \"../types\";\nimport { Platform } from \"../../Platform\";\nimport type { SkTypefaceFontProvider } from \"../types/Paragraph/TypefaceFontProvider\";\n\nimport { useTypeface } from \"./Typeface\";\n\n/**\n * Returns a Skia Font object\n * */\nexport const useFont = (\n font: DataSourceParam,\n size?: number,\n onError?: (err: Error) => void\n) => {\n const typeface = useTypeface(font, onError);\n return useMemo(() => {\n if (typeface && size) {\n return Skia.Font(typeface, size);\n } else if (typeface && !size) {\n return Skia.Font(typeface);\n } else {\n return null;\n }\n }, [size, typeface]);\n};\n\ntype Slant = \"normal\" | \"italic\" | \"oblique\";\ntype Weight =\n | \"normal\"\n | \"bold\"\n | \"100\"\n | \"200\"\n | \"300\"\n | \"400\"\n | \"500\"\n | \"600\"\n | \"700\"\n | \"800\"\n | \"900\";\n\ninterface RNFontStyle {\n fontFamily: string;\n fontSize: number;\n fontStyle: Slant;\n fontWeight: Weight;\n}\n\nconst defaultFontStyle: RNFontStyle = {\n fontFamily: \"System\",\n fontSize: 14,\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n};\n\nconst slant = (s: Slant) => {\n if (s === \"italic\") {\n return FontSlant.Italic;\n } else if (s === \"oblique\") {\n return FontSlant.Oblique;\n } else {\n return FontSlant.Upright;\n }\n};\n\nconst weight = (fontWeight: Weight) => {\n switch (fontWeight) {\n case \"normal\":\n return 400;\n case \"bold\":\n return 700;\n default:\n return parseInt(fontWeight, 10);\n }\n};\n\nexport const matchFont = (\n inputStyle: Partial<RNFontStyle> = {},\n fontMgr: SkFontMgr = Skia.FontMgr.System()\n) => {\n const fontStyle = {\n ...defaultFontStyle,\n ...inputStyle,\n };\n const style = {\n weight: weight(fontStyle.fontWeight),\n width: 5,\n slant: slant(fontStyle.fontStyle),\n };\n const typeface = fontMgr.matchFamilyStyle(fontStyle.fontFamily, style);\n return Skia.Font(typeface, fontStyle.fontSize);\n};\n\nexport const listFontFamilies = (fontMgr: SkFontMgr = Skia.FontMgr.System()) =>\n new Array(fontMgr.countFamilies())\n .fill(0)\n .map((_, i) => fontMgr.getFamilyName(i));\n\nconst loadTypefaces = (typefacesToLoad: Record<string, DataModule[]>) => {\n const promises = Object.keys(typefacesToLoad).flatMap((familyName) => {\n return typefacesToLoad[familyName].map((typefaceToLoad) => {\n return Skia.Data.fromURI(Platform.resolveAsset(typefaceToLoad)).then(\n (data) => {\n const tf = Skia.Typeface.MakeFreeTypeFaceFromData(data);\n if (tf === null) {\n throw new Error(`Couldn't create typeface for ${familyName}`);\n }\n return [familyName, tf] as const;\n }\n );\n });\n });\n return Promise.all(promises);\n};\n\nexport const useFonts = (sources: Record<string, DataModule[]>) => {\n const [fontMgr, setFontMgr] = useState<null | SkTypefaceFontProvider>(null);\n\n useEffect(() => {\n loadTypefaces(sources).then((result) => {\n const fMgr = Skia.TypefaceFontProvider.Make();\n result.forEach(([familyName, typeface]) => {\n fMgr.registerFont(typeface, familyName);\n });\n setFontMgr(fMgr);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return fontMgr;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["useEffect","useMemo","useState","Skia","FontSlant","Platform","useTypeface","defaultFontSize","useFont","font","size","onError","typeface","Font","defaultFontStyle","fontFamily","fontSize","fontStyle","fontWeight","slant","s","Italic","Oblique","Upright","weight","parseInt","matchFont","inputStyle","fontMgr","FontMgr","System","style","width","matchFamilyStyle","listFontFamilies","Array","countFamilies","fill","map","_","i","getFamilyName","loadTypefaces","typefacesToLoad","promises","Object","keys","flatMap","familyName","typefaceToLoad","Data","fromURI","resolveAsset","then","data","tf","Typeface","MakeFreeTypeFaceFromData","Error","Promise","all","useFonts","sources","setFontMgr","result","fMgr","TypefaceFontProvider","Make","forEach","registerFont"],"sources":["Font.ts"],"sourcesContent":["/*global SkiaApi*/\nimport { useEffect, useMemo, useState } from \"react\";\n\nimport { Skia } from \"../Skia\";\nimport { FontSlant } from \"../types\";\nimport type { DataModule, DataSourceParam, SkFontMgr } from \"../types\";\nimport { Platform } from \"../../Platform\";\nimport type { SkTypefaceFontProvider } from \"../types/Paragraph/TypefaceFontProvider\";\n\nimport { useTypeface } from \"./Typeface\";\n\nconst defaultFontSize = 14;\n\n/**\n * Returns a Skia Font object\n * */\nexport const useFont = (\n font: DataSourceParam,\n size = defaultFontSize,\n onError?: (err: Error) => void\n) => {\n const typeface = useTypeface(font, onError);\n return useMemo(() => {\n if (typeface) {\n return Skia.Font(typeface, size);\n } else {\n return null;\n }\n }, [size, typeface]);\n};\n\ntype Slant = \"normal\" | \"italic\" | \"oblique\";\ntype Weight =\n | \"normal\"\n | \"bold\"\n | \"100\"\n | \"200\"\n | \"300\"\n | \"400\"\n | \"500\"\n | \"600\"\n | \"700\"\n | \"800\"\n | \"900\";\n\ninterface RNFontStyle {\n fontFamily: string;\n fontSize: number;\n fontStyle: Slant;\n fontWeight: Weight;\n}\n\nconst defaultFontStyle: RNFontStyle = {\n fontFamily: \"System\",\n fontSize: defaultFontSize,\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n};\n\nconst slant = (s: Slant) => {\n if (s === \"italic\") {\n return FontSlant.Italic;\n } else if (s === \"oblique\") {\n return FontSlant.Oblique;\n } else {\n return FontSlant.Upright;\n }\n};\n\nconst weight = (fontWeight: Weight) => {\n switch (fontWeight) {\n case \"normal\":\n return 400;\n case \"bold\":\n return 700;\n default:\n return parseInt(fontWeight, 10);\n }\n};\n\nexport const matchFont = (\n inputStyle: Partial<RNFontStyle> = {},\n fontMgr: SkFontMgr = Skia.FontMgr.System()\n) => {\n const fontStyle = {\n ...defaultFontStyle,\n ...inputStyle,\n };\n const style = {\n weight: weight(fontStyle.fontWeight),\n width: 5,\n slant: slant(fontStyle.fontStyle),\n };\n const typeface = fontMgr.matchFamilyStyle(fontStyle.fontFamily, style);\n return Skia.Font(typeface, fontStyle.fontSize);\n};\n\nexport const listFontFamilies = (fontMgr: SkFontMgr = Skia.FontMgr.System()) =>\n new Array(fontMgr.countFamilies())\n .fill(0)\n .map((_, i) => fontMgr.getFamilyName(i));\n\nconst loadTypefaces = (typefacesToLoad: Record<string, DataModule[]>) => {\n const promises = Object.keys(typefacesToLoad).flatMap((familyName) => {\n return typefacesToLoad[familyName].map((typefaceToLoad) => {\n return Skia.Data.fromURI(Platform.resolveAsset(typefaceToLoad)).then(\n (data) => {\n const tf = Skia.Typeface.MakeFreeTypeFaceFromData(data);\n if (tf === null) {\n throw new Error(`Couldn't create typeface for ${familyName}`);\n }\n return [familyName, tf] as const;\n }\n );\n });\n });\n return Promise.all(promises);\n};\n\nexport const useFonts = (sources: Record<string, DataModule[]>) => {\n const [fontMgr, setFontMgr] = useState<null | SkTypefaceFontProvider>(null);\n\n useEffect(() => {\n loadTypefaces(sources).then((result) => {\n const fMgr = Skia.TypefaceFontProvider.Make();\n result.forEach(([familyName, typeface]) => {\n fMgr.registerFont(typeface, familyName);\n });\n setFontMgr(fMgr);\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return fontMgr;\n};\n"],"mappings":"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"}
@@ -2,6 +2,7 @@ export * from "./Data";
2
2
  export * from "./Font";
3
3
  export * from "./Typeface";
4
4
  export * from "./Image";
5
+ export * from "./AnimatedImage";
5
6
  export * from "./Picture";
6
7
  export * from "./SVG";
7
8
  export * from "./Vector";
@@ -2,6 +2,7 @@ export * from "./Data";
2
2
  export * from "./Font";
3
3
  export * from "./Typeface";
4
4
  export * from "./Image";
5
+ export * from "./AnimatedImage";
5
6
  export * from "./Picture";
6
7
  export * from "./SVG";
7
8
  export * from "./Vector";
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Data\";\nexport * from \"./Font\";\nexport * from \"./Typeface\";\nexport * from \"./Image\";\nexport * from \"./Picture\";\nexport * from \"./SVG\";\nexport * from \"./Vector\";\nexport * from \"./Rect\";\nexport * from \"./RRect\";\nexport * from \"./Matrix\";\n"],"mappings":"AAAA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,WAAd;AACA,cAAc,OAAd;AACA,cAAc,UAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd"}
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./Data\";\nexport * from \"./Font\";\nexport * from \"./Typeface\";\nexport * from \"./Image\";\nexport * from \"./AnimatedImage\";\nexport * from \"./Picture\";\nexport * from \"./SVG\";\nexport * from \"./Vector\";\nexport * from \"./Rect\";\nexport * from \"./RRect\";\nexport * from \"./Matrix\";\n"],"mappings":"AAAA,cAAc,QAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,iBAAd;AACA,cAAc,WAAd;AACA,cAAc,OAAd;AACA,cAAc,UAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd"}
@@ -0,0 +1,24 @@
1
+ import type { SkJSIInstance } from "../JsiInstance";
2
+ import type { SkImage } from "../Image";
3
+ export interface SkAnimatedImage extends SkJSIInstance<"AnimatedImage"> {
4
+ /**
5
+ * Decode the next frame.
6
+ *
7
+ * If the animation is on the last frame or has hit an error, returns
8
+ * kFinished (-1).
9
+ */
10
+ decodeNextFrame(): number;
11
+ /**
12
+ * Returns the current frame as an SkImage. The SkImage will not change
13
+ * after it has been returned.
14
+ * If there is no current frame, null will be returned.
15
+ */
16
+ getCurrentFrame(): SkImage | null;
17
+ /**
18
+ * How long to display the current frame.
19
+ *
20
+ * Useful for the first frame, for which decodeNextFrame is called
21
+ * internally.
22
+ */
23
+ currentFrameDuration(): number;
24
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AnimatedImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["AnimatedImage.ts"],"sourcesContent":["import type { SkJSIInstance } from \"../JsiInstance\";\nimport type { SkImage } from \"../Image\";\n\nexport interface SkAnimatedImage extends SkJSIInstance<\"AnimatedImage\"> {\n /**\n * Decode the next frame.\n *\n * If the animation is on the last frame or has hit an error, returns\n * kFinished (-1).\n */\n decodeNextFrame(): number;\n\n /**\n * Returns the current frame as an SkImage. The SkImage will not change\n * after it has been returned.\n * If there is no current frame, null will be returned.\n */\n getCurrentFrame(): SkImage | null;\n\n /**\n * How long to display the current frame.\n *\n * Useful for the first frame, for which decodeNextFrame is called\n * internally.\n */\n currentFrameDuration(): number;\n\n // TODO - add the rest of the methods from the Skia API (see SkAnimatedImage.h)\n}\n"],"mappings":""}
@@ -0,0 +1,13 @@
1
+ import type { SkData } from "../Data";
2
+ import type { SkAnimatedImage } from "./AnimatedImage";
3
+ export interface AnimatedImageFactory {
4
+ /**
5
+ * Decodes the given bytes into an animated image. Returns null if the bytes were invalid.
6
+ * The passed in bytes will be copied into the WASM heap, so the caller can dispose of them.
7
+ *
8
+ * The returned AnimatedImage will be "pointing to" the first frame, i.e. currentFrameDuration
9
+ * and makeImageAtCurrentFrame will be referring to the first frame.
10
+ * @param encoded
11
+ */
12
+ MakeAnimatedImageFromEncoded: (encoded: SkData) => SkAnimatedImage | null;
13
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=AnimatedImageFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["AnimatedImageFactory.ts"],"sourcesContent":["import type { SkData } from \"../Data\";\n\nimport type { SkAnimatedImage } from \"./AnimatedImage\";\n\nexport interface AnimatedImageFactory {\n /**\n * Decodes the given bytes into an animated image. Returns null if the bytes were invalid.\n * The passed in bytes will be copied into the WASM heap, so the caller can dispose of them.\n *\n * The returned AnimatedImage will be \"pointing to\" the first frame, i.e. currentFrameDuration\n * and makeImageAtCurrentFrame will be referring to the first frame.\n * @param encoded\n */\n MakeAnimatedImageFromEncoded: (encoded: SkData) => SkAnimatedImage | null;\n}\n"],"mappings":""}
@@ -0,0 +1,2 @@
1
+ export * from "./AnimatedImage";
2
+ export * from "./AnimatedImageFactory";
@@ -0,0 +1,3 @@
1
+ export * from "./AnimatedImage";
2
+ export * from "./AnimatedImageFactory";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sources":["index.ts"],"sourcesContent":["export * from \"./AnimatedImage\";\nexport * from \"./AnimatedImageFactory\";\n"],"mappings":"AAAA,cAAc,iBAAd;AACA,cAAc,wBAAd"}
@@ -24,6 +24,7 @@ import type { SkContourMeasureIter } from "./ContourMeasure";
24
24
  import type { PictureFactory, SkPictureRecorder } from "./Picture";
25
25
  import type { Color, SkColor } from "./Color";
26
26
  import type { TypefaceFontProviderFactory } from "./Paragraph/TypefaceFontProviderFactory";
27
+ import type { AnimatedImageFactory } from "./AnimatedImage";
27
28
  /**
28
29
  * Declares the interface for the native Skia API
29
30
  */
@@ -63,6 +64,7 @@ export interface Skia {
63
64
  MakeVertices(mode: VertexMode, positions: SkPoint[], textureCoordinates?: SkPoint[] | null, colors?: SkColor[], indices?: number[] | null, isVolatile?: boolean): SkVertices;
64
65
  Data: DataFactory;
65
66
  Image: ImageFactory;
67
+ AnimatedImage: AnimatedImageFactory;
66
68
  SVG: SVGFactory;
67
69
  TextBlob: TextBlobFactory;
68
70
  Surface: SurfaceFactory;
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["Skia.ts"],"sourcesContent":["import type { ImageFilterFactory } from \"./ImageFilter\";\nimport type { PathFactory } from \"./Path\";\nimport type { ColorFilterFactory } from \"./ColorFilter\";\nimport type { SkFont, FontMgrFactory } from \"./Font\";\nimport type { SkTypeface, TypefaceFactory } from \"./Typeface\";\nimport type { ImageFactory } from \"./Image\";\nimport type { MaskFilterFactory } from \"./MaskFilter\";\nimport type { SkPaint } from \"./Paint\";\nimport type { SkRect } from \"./Rect\";\nimport type { SkRRect } from \"./RRect\";\nimport type {\n RuntimeEffectFactory,\n SkRuntimeEffect,\n SkRuntimeShaderBuilder,\n} from \"./RuntimeEffect\";\nimport type { ShaderFactory } from \"./Shader\";\nimport type { SkMatrix } from \"./Matrix\";\nimport type { PathEffectFactory } from \"./PathEffect\";\nimport type { SkPoint } from \"./Point\";\nimport type { SkVertices, VertexMode } from \"./Vertices/Vertices\";\nimport type { DataFactory } from \"./Data\";\nimport type { SVGFactory } from \"./SVG\";\nimport type { TextBlobFactory } from \"./TextBlob\";\nimport type { SurfaceFactory } from \"./Surface\";\nimport type { SkRSXform } from \"./RSXform\";\nimport type { SkPath } from \"./Path/Path\";\nimport type { SkContourMeasureIter } from \"./ContourMeasure\";\nimport type { PictureFactory, SkPictureRecorder } from \"./Picture\";\nimport type { Color, SkColor } from \"./Color\";\nimport type { TypefaceFontProviderFactory } from \"./Paragraph/TypefaceFontProviderFactory\";\n/**\n * Declares the interface for the native Skia API\n */\nexport interface Skia {\n Point: (x: number, y: number) => SkPoint;\n XYWHRect: (x: number, y: number, width: number, height: number) => SkRect;\n RuntimeShaderBuilder: (rt: SkRuntimeEffect) => SkRuntimeShaderBuilder;\n RRectXY: (rect: SkRect, rx: number, ry: number) => SkRRect;\n RSXform: (scos: number, ssin: number, tx: number, ty: number) => SkRSXform;\n Color: (color: Color) => SkColor;\n ContourMeasureIter: (\n path: SkPath,\n forceClosed: boolean,\n resScale: number\n ) => SkContourMeasureIter;\n Paint: () => SkPaint;\n PictureRecorder: () => SkPictureRecorder;\n Picture: PictureFactory;\n Path: PathFactory;\n Matrix: (matrix?: readonly number[]) => SkMatrix;\n ColorFilter: ColorFilterFactory;\n Font: (typeface?: SkTypeface, size?: number) => SkFont;\n Typeface: TypefaceFactory;\n TypefaceFontProvider: TypefaceFontProviderFactory;\n FontMgr: FontMgrFactory;\n MaskFilter: MaskFilterFactory;\n RuntimeEffect: RuntimeEffectFactory;\n ImageFilter: ImageFilterFactory;\n Shader: ShaderFactory;\n PathEffect: PathEffectFactory;\n /**\n * Returns an Vertices based on the given positions and optional parameters.\n * See SkVertices.h (especially the Builder) for more details.\n * @param mode\n * @param positions\n * @param textureCoordinates\n * @param colors - either a list of int colors or a flattened color array.\n * @param indices\n * @param isVolatile\n */\n MakeVertices(\n mode: VertexMode,\n positions: SkPoint[],\n textureCoordinates?: SkPoint[] | null,\n colors?: SkColor[],\n indices?: number[] | null,\n isVolatile?: boolean\n ): SkVertices;\n Data: DataFactory;\n Image: ImageFactory;\n SVG: SVGFactory;\n TextBlob: TextBlobFactory;\n Surface: SurfaceFactory;\n}\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["Skia.ts"],"sourcesContent":["import type { ImageFilterFactory } from \"./ImageFilter\";\nimport type { PathFactory } from \"./Path\";\nimport type { ColorFilterFactory } from \"./ColorFilter\";\nimport type { SkFont, FontMgrFactory } from \"./Font\";\nimport type { SkTypeface, TypefaceFactory } from \"./Typeface\";\nimport type { ImageFactory } from \"./Image\";\nimport type { MaskFilterFactory } from \"./MaskFilter\";\nimport type { SkPaint } from \"./Paint\";\nimport type { SkRect } from \"./Rect\";\nimport type { SkRRect } from \"./RRect\";\nimport type {\n RuntimeEffectFactory,\n SkRuntimeEffect,\n SkRuntimeShaderBuilder,\n} from \"./RuntimeEffect\";\nimport type { ShaderFactory } from \"./Shader\";\nimport type { SkMatrix } from \"./Matrix\";\nimport type { PathEffectFactory } from \"./PathEffect\";\nimport type { SkPoint } from \"./Point\";\nimport type { SkVertices, VertexMode } from \"./Vertices/Vertices\";\nimport type { DataFactory } from \"./Data\";\nimport type { SVGFactory } from \"./SVG\";\nimport type { TextBlobFactory } from \"./TextBlob\";\nimport type { SurfaceFactory } from \"./Surface\";\nimport type { SkRSXform } from \"./RSXform\";\nimport type { SkPath } from \"./Path/Path\";\nimport type { SkContourMeasureIter } from \"./ContourMeasure\";\nimport type { PictureFactory, SkPictureRecorder } from \"./Picture\";\nimport type { Color, SkColor } from \"./Color\";\nimport type { TypefaceFontProviderFactory } from \"./Paragraph/TypefaceFontProviderFactory\";\nimport type { AnimatedImageFactory } from \"./AnimatedImage\";\n\n/**\n * Declares the interface for the native Skia API\n */\nexport interface Skia {\n Point: (x: number, y: number) => SkPoint;\n XYWHRect: (x: number, y: number, width: number, height: number) => SkRect;\n RuntimeShaderBuilder: (rt: SkRuntimeEffect) => SkRuntimeShaderBuilder;\n RRectXY: (rect: SkRect, rx: number, ry: number) => SkRRect;\n RSXform: (scos: number, ssin: number, tx: number, ty: number) => SkRSXform;\n Color: (color: Color) => SkColor;\n ContourMeasureIter: (\n path: SkPath,\n forceClosed: boolean,\n resScale: number\n ) => SkContourMeasureIter;\n Paint: () => SkPaint;\n PictureRecorder: () => SkPictureRecorder;\n Picture: PictureFactory;\n Path: PathFactory;\n Matrix: (matrix?: readonly number[]) => SkMatrix;\n ColorFilter: ColorFilterFactory;\n Font: (typeface?: SkTypeface, size?: number) => SkFont;\n Typeface: TypefaceFactory;\n TypefaceFontProvider: TypefaceFontProviderFactory;\n FontMgr: FontMgrFactory;\n MaskFilter: MaskFilterFactory;\n RuntimeEffect: RuntimeEffectFactory;\n ImageFilter: ImageFilterFactory;\n Shader: ShaderFactory;\n PathEffect: PathEffectFactory;\n /**\n * Returns an Vertices based on the given positions and optional parameters.\n * See SkVertices.h (especially the Builder) for more details.\n * @param mode\n * @param positions\n * @param textureCoordinates\n * @param colors - either a list of int colors or a flattened color array.\n * @param indices\n * @param isVolatile\n */\n MakeVertices(\n mode: VertexMode,\n positions: SkPoint[],\n textureCoordinates?: SkPoint[] | null,\n colors?: SkColor[],\n indices?: number[] | null,\n isVolatile?: boolean\n ): SkVertices;\n Data: DataFactory;\n Image: ImageFactory;\n AnimatedImage: AnimatedImageFactory;\n SVG: SVGFactory;\n TextBlob: TextBlobFactory;\n Surface: SurfaceFactory;\n}\n"],"mappings":""}
@@ -6,6 +6,7 @@ export * from "./Vertices";
6
6
  export * from "./RuntimeEffect";
7
7
  export * from "./Shader";
8
8
  export * from "./Image";
9
+ export * from "./AnimatedImage";
9
10
  export * from "./ColorFilter";
10
11
  export * from "./ImageFilter";
11
12
  export * from "./Font";
@@ -6,6 +6,7 @@ export * from "./Vertices";
6
6
  export * from "./RuntimeEffect";
7
7
  export * from "./Shader";
8
8
  export * from "./Image";
9
+ export * from "./AnimatedImage";
9
10
  export * from "./ColorFilter";
10
11
  export * from "./ImageFilter";
11
12
  export * from "./Font";
@@ -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 \"./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\";\n"],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,QAAd;AACA,cAAc,OAAd;AACA,cAAc,WAAd;AACA,cAAc,YAAd;AACA,cAAc,iBAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,eAAd;AACA,cAAc,eAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,kBAAd;AACA,cAAc,cAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd"}
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\";\n"],"mappings":"AAAA,cAAc,WAAd;AACA,cAAc,QAAd;AACA,cAAc,OAAd;AACA,cAAc,WAAd;AACA,cAAc,YAAd;AACA,cAAc,iBAAd;AACA,cAAc,UAAd;AACA,cAAc,SAAd;AACA,cAAc,iBAAd;AACA,cAAc,eAAd;AACA,cAAc,eAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,UAAd;AACA,cAAc,kBAAd;AACA,cAAc,cAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd;AACA,cAAc,SAAd;AACA,cAAc,QAAd;AACA,cAAc,SAAd;AACA,cAAc,WAAd;AACA,cAAc,eAAd;AACA,cAAc,QAAd;AACA,cAAc,YAAd;AACA,cAAc,QAAd"}
@@ -0,0 +1,11 @@
1
+ import type { AnimatedImage, CanvasKit } from "canvaskit-wasm";
2
+ import type { SkAnimatedImage } from "../types/AnimatedImage";
3
+ import { HostObject } from "./Host";
4
+ import { JsiSkImage } from "./JsiSkImage";
5
+ export declare class JsiSkAnimatedImage extends HostObject<AnimatedImage, "AnimatedImage"> implements SkAnimatedImage {
6
+ constructor(CanvasKit: CanvasKit, ref: AnimatedImage);
7
+ decodeNextFrame(): number;
8
+ currentFrameDuration(): number;
9
+ getCurrentFrame(): JsiSkImage | null;
10
+ dispose: () => void;
11
+ }
@@ -0,0 +1,33 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
3
+ import { HostObject } from "./Host";
4
+ import { JsiSkImage } from "./JsiSkImage";
5
+ export class JsiSkAnimatedImage extends HostObject {
6
+ constructor(CanvasKit, ref) {
7
+ super(CanvasKit, ref, "AnimatedImage");
8
+
9
+ _defineProperty(this, "dispose", () => {
10
+ this.ref.delete();
11
+ });
12
+ }
13
+
14
+ decodeNextFrame() {
15
+ return this.ref.decodeNextFrame();
16
+ }
17
+
18
+ currentFrameDuration() {
19
+ return this.ref.currentFrameDuration();
20
+ }
21
+
22
+ getCurrentFrame() {
23
+ const image = this.ref.makeImageAtCurrentFrame();
24
+
25
+ if (image === null) {
26
+ return null;
27
+ }
28
+
29
+ return new JsiSkImage(this.CanvasKit, image);
30
+ }
31
+
32
+ }
33
+ //# sourceMappingURL=JsiSkAnimatedImage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HostObject","JsiSkImage","JsiSkAnimatedImage","constructor","CanvasKit","ref","delete","decodeNextFrame","currentFrameDuration","getCurrentFrame","image","makeImageAtCurrentFrame"],"sources":["JsiSkAnimatedImage.ts"],"sourcesContent":["import type { AnimatedImage, CanvasKit } from \"canvaskit-wasm\";\n\nimport type { SkAnimatedImage } from \"../types/AnimatedImage\";\n\nimport { HostObject } from \"./Host\";\nimport { JsiSkImage } from \"./JsiSkImage\";\n\nexport class JsiSkAnimatedImage\n extends HostObject<AnimatedImage, \"AnimatedImage\">\n implements SkAnimatedImage\n{\n constructor(CanvasKit: CanvasKit, ref: AnimatedImage) {\n super(CanvasKit, ref, \"AnimatedImage\");\n }\n\n decodeNextFrame() {\n return this.ref.decodeNextFrame();\n }\n\n currentFrameDuration() {\n return this.ref.currentFrameDuration();\n }\n\n getCurrentFrame() {\n const image = this.ref.makeImageAtCurrentFrame();\n if (image === null) {\n return null;\n }\n return new JsiSkImage(this.CanvasKit, image);\n }\n\n dispose = () => {\n this.ref.delete();\n };\n}\n"],"mappings":";;AAIA,SAASA,UAAT,QAA2B,QAA3B;AACA,SAASC,UAAT,QAA2B,cAA3B;AAEA,OAAO,MAAMC,kBAAN,SACGF,UADH,CAGP;EACEG,WAAW,CAACC,SAAD,EAAuBC,GAAvB,EAA2C;IACpD,MAAMD,SAAN,EAAiBC,GAAjB,EAAsB,eAAtB;;IADoD,iCAoB5C,MAAM;MACd,KAAKA,GAAL,CAASC,MAAT;IACD,CAtBqD;EAErD;;EAEDC,eAAe,GAAG;IAChB,OAAO,KAAKF,GAAL,CAASE,eAAT,EAAP;EACD;;EAEDC,oBAAoB,GAAG;IACrB,OAAO,KAAKH,GAAL,CAASG,oBAAT,EAAP;EACD;;EAEDC,eAAe,GAAG;IAChB,MAAMC,KAAK,GAAG,KAAKL,GAAL,CAASM,uBAAT,EAAd;;IACA,IAAID,KAAK,KAAK,IAAd,EAAoB;MAClB,OAAO,IAAP;IACD;;IACD,OAAO,IAAIT,UAAJ,CAAe,KAAKG,SAApB,EAA+BM,KAA/B,CAAP;EACD;;AAnBH"}
@@ -0,0 +1,9 @@
1
+ import type { CanvasKit } from "canvaskit-wasm";
2
+ import type { SkData } from "../types";
3
+ import type { AnimatedImageFactory } from "../types/AnimatedImage/AnimatedImageFactory";
4
+ import { Host } from "./Host";
5
+ import { JsiSkAnimatedImage } from "./JsiSkAnimatedImage";
6
+ export declare class JsiSkAnimatedImageFactory extends Host implements AnimatedImageFactory {
7
+ constructor(CanvasKit: CanvasKit);
8
+ MakeAnimatedImageFromEncoded(encoded: SkData): JsiSkAnimatedImage | null;
9
+ }
@@ -0,0 +1,20 @@
1
+ import { Host } from "./Host";
2
+ import { JsiSkData } from "./JsiSkData";
3
+ import { JsiSkAnimatedImage } from "./JsiSkAnimatedImage";
4
+ export class JsiSkAnimatedImageFactory extends Host {
5
+ constructor(CanvasKit) {
6
+ super(CanvasKit);
7
+ }
8
+
9
+ MakeAnimatedImageFromEncoded(encoded) {
10
+ const image = this.CanvasKit.MakeAnimatedImageFromEncoded(JsiSkData.fromValue(encoded));
11
+
12
+ if (image === null) {
13
+ return null;
14
+ }
15
+
16
+ return new JsiSkAnimatedImage(this.CanvasKit, image);
17
+ }
18
+
19
+ }
20
+ //# sourceMappingURL=JsiSkAnimatedImageFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["Host","JsiSkData","JsiSkAnimatedImage","JsiSkAnimatedImageFactory","constructor","CanvasKit","MakeAnimatedImageFromEncoded","encoded","image","fromValue"],"sources":["JsiSkAnimatedImageFactory.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type { SkData } from \"../types\";\nimport type { AnimatedImageFactory } from \"../types/AnimatedImage/AnimatedImageFactory\";\n\nimport { Host } from \"./Host\";\nimport { JsiSkData } from \"./JsiSkData\";\nimport { JsiSkAnimatedImage } from \"./JsiSkAnimatedImage\";\n\nexport class JsiSkAnimatedImageFactory\n extends Host\n implements AnimatedImageFactory\n{\n constructor(CanvasKit: CanvasKit) {\n super(CanvasKit);\n }\n\n MakeAnimatedImageFromEncoded(encoded: SkData) {\n const image = this.CanvasKit.MakeAnimatedImageFromEncoded(\n JsiSkData.fromValue(encoded)\n );\n if (image === null) {\n return null;\n }\n return new JsiSkAnimatedImage(this.CanvasKit, image);\n }\n}\n"],"mappings":"AAKA,SAASA,IAAT,QAAqB,QAArB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,kBAAT,QAAmC,sBAAnC;AAEA,OAAO,MAAMC,yBAAN,SACGH,IADH,CAGP;EACEI,WAAW,CAACC,SAAD,EAAuB;IAChC,MAAMA,SAAN;EACD;;EAEDC,4BAA4B,CAACC,OAAD,EAAkB;IAC5C,MAAMC,KAAK,GAAG,KAAKH,SAAL,CAAeC,4BAAf,CACZL,SAAS,CAACQ,SAAV,CAAoBF,OAApB,CADY,CAAd;;IAGA,IAAIC,KAAK,KAAK,IAAd,EAAoB;MAClB,OAAO,IAAP;IACD;;IACD,OAAO,IAAIN,kBAAJ,CAAuB,KAAKG,SAA5B,EAAuCG,KAAvC,CAAP;EACD;;AAbH"}
@@ -27,6 +27,7 @@ import { JsiSkPath } from "./JsiSkPath";
27
27
  import { JsiSkTypeface } from "./JsiSkTypeface";
28
28
  import { JsiSkTypefaceFontProviderFactory } from "./JsiSkTypefaceFontProviderFactory";
29
29
  import { JsiSkFontMgrFactory } from "./JsiSkFontMgrFactory";
30
+ import { JsiSkAnimatedImageFactory } from "./JsiSkAnimatedImageFactory";
30
31
  export const JsiSkApi = CanvasKit => ({
31
32
  Point: (x, y) => new JsiSkPoint(CanvasKit, Float32Array.of(x, y)),
32
33
  RuntimeShaderBuilder: _ => {
@@ -56,6 +57,7 @@ export const JsiSkApi = CanvasKit => ({
56
57
  MakeVertices: MakeVertices.bind(null, CanvasKit),
57
58
  Data: new JsiSkDataFactory(CanvasKit),
58
59
  Image: new JsiSkImageFactory(CanvasKit),
60
+ AnimatedImage: new JsiSkAnimatedImageFactory(CanvasKit),
59
61
  SVG: new JsiSkSVGFactory(CanvasKit),
60
62
  TextBlob: new JsiSkTextBlobFactory(CanvasKit),
61
63
  XYWHRect: (x, y, width, height) => {
@@ -1 +1 @@
1
- {"version":3,"names":["JsiSkPoint","JsiSkPaint","JsiSkRect","Color","JsiSkSurfaceFactory","JsiSkRRect","JsiSkRSXform","JsiSkContourMeasureIter","JsiSkPictureRecorder","JsiSkPictureFactory","JsiSkPathFactory","JsiSkMatrix","JsiSkColorFilterFactory","JsiSkTypefaceFactory","JsiSkMaskFilterFactory","JsiSkRuntimeEffectFactory","JsiSkImageFilterFactory","JsiSkShaderFactory","JsiSkPathEffectFactory","JsiSkDataFactory","JsiSkImageFactory","JsiSkSVGFactory","JsiSkTextBlobFactory","JsiSkFont","MakeVertices","JsiSkPath","JsiSkTypeface","JsiSkTypefaceFontProviderFactory","JsiSkFontMgrFactory","JsiSkApi","CanvasKit","Point","x","y","Float32Array","of","RuntimeShaderBuilder","_","Error","RRectXY","rect","rx","ry","RSXform","scos","ssin","tx","ty","ContourMeasureIter","path","forceClosed","resScale","fromValue","Paint","paint","setAntiAlias","PictureRecorder","Picture","Path","Matrix","matrix","identity","ColorFilter","Font","typeface","size","undefined","Typeface","MaskFilter","RuntimeEffect","ImageFilter","Shader","PathEffect","bind","Data","Image","SVG","TextBlob","XYWHRect","width","height","Surface","TypefaceFontProvider","FontMgr"],"sources":["JsiSkia.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\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 { 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\";\n\nexport const JsiSkApi = (CanvasKit: CanvasKit): Skia => ({\n Point: (x: number, y: number) =>\n new JsiSkPoint(CanvasKit, Float32Array.of(x, y)),\n RuntimeShaderBuilder: (_: SkRuntimeEffect): SkRuntimeShaderBuilder => {\n throw new Error(\"Not implemented on React Native Web\");\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 Color,\n ContourMeasureIter: (\n path: SkPath,\n forceClosed: boolean,\n resScale: number\n ): SkContourMeasureIter =>\n new JsiSkContourMeasureIter(\n CanvasKit,\n new CanvasKit.ContourMeasureIter(\n JsiSkPath.fromValue(path),\n forceClosed,\n resScale\n )\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 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 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});\n"],"mappings":"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"}
1
+ {"version":3,"names":["JsiSkPoint","JsiSkPaint","JsiSkRect","Color","JsiSkSurfaceFactory","JsiSkRRect","JsiSkRSXform","JsiSkContourMeasureIter","JsiSkPictureRecorder","JsiSkPictureFactory","JsiSkPathFactory","JsiSkMatrix","JsiSkColorFilterFactory","JsiSkTypefaceFactory","JsiSkMaskFilterFactory","JsiSkRuntimeEffectFactory","JsiSkImageFilterFactory","JsiSkShaderFactory","JsiSkPathEffectFactory","JsiSkDataFactory","JsiSkImageFactory","JsiSkSVGFactory","JsiSkTextBlobFactory","JsiSkFont","MakeVertices","JsiSkPath","JsiSkTypeface","JsiSkTypefaceFontProviderFactory","JsiSkFontMgrFactory","JsiSkAnimatedImageFactory","JsiSkApi","CanvasKit","Point","x","y","Float32Array","of","RuntimeShaderBuilder","_","Error","RRectXY","rect","rx","ry","RSXform","scos","ssin","tx","ty","ContourMeasureIter","path","forceClosed","resScale","fromValue","Paint","paint","setAntiAlias","PictureRecorder","Picture","Path","Matrix","matrix","identity","ColorFilter","Font","typeface","size","undefined","Typeface","MaskFilter","RuntimeEffect","ImageFilter","Shader","PathEffect","bind","Data","Image","AnimatedImage","SVG","TextBlob","XYWHRect","width","height","Surface","TypefaceFontProvider","FontMgr"],"sources":["JsiSkia.ts"],"sourcesContent":["import type { CanvasKit } from \"canvaskit-wasm\";\n\nimport type {\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 { 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\";\n\nexport const JsiSkApi = (CanvasKit: CanvasKit): Skia => ({\n Point: (x: number, y: number) =>\n new JsiSkPoint(CanvasKit, Float32Array.of(x, y)),\n RuntimeShaderBuilder: (_: SkRuntimeEffect): SkRuntimeShaderBuilder => {\n throw new Error(\"Not implemented on React Native Web\");\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 Color,\n ContourMeasureIter: (\n path: SkPath,\n forceClosed: boolean,\n resScale: number\n ): SkContourMeasureIter =>\n new JsiSkContourMeasureIter(\n CanvasKit,\n new CanvasKit.ContourMeasureIter(\n JsiSkPath.fromValue(path),\n forceClosed,\n resScale\n )\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 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});\n"],"mappings":"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"}
@@ -1,7 +1,9 @@
1
1
  import type { SharedValueType } from "../../renderer/processors/Animations";
2
2
  export declare const HAS_REANIMATED2: boolean;
3
3
  export declare const HAS_REANIMATED3: boolean;
4
+ export declare function throwOnMissingReanimated(): void;
4
5
  export declare const useSharedValue: any;
6
+ export declare const useFrameCallback: (...args: any[]) => any;
5
7
  export declare const startMapper: any;
6
8
  export declare const stopMapper: any;
7
9
  export declare const runOnJS: any;
@@ -0,0 +1,6 @@
1
+ import type { DataSourceParam } from "../types";
2
+ /**
3
+ * Returns a Skia Animated Image object
4
+ * */
5
+ export declare const useAnimatedImage: (source: DataSourceParam, onError?: ((err: Error) => void) | undefined) => import("../types").SkAnimatedImage | null;
6
+ export declare const useAnimatedImageValue: (source: DataSourceParam) => any;
@@ -2,6 +2,7 @@ export * from "./Data";
2
2
  export * from "./Font";
3
3
  export * from "./Typeface";
4
4
  export * from "./Image";
5
+ export * from "./AnimatedImage";
5
6
  export * from "./Picture";
6
7
  export * from "./SVG";
7
8
  export * from "./Vector";
@@ -0,0 +1,24 @@
1
+ import type { SkJSIInstance } from "../JsiInstance";
2
+ import type { SkImage } from "../Image";
3
+ export interface SkAnimatedImage extends SkJSIInstance<"AnimatedImage"> {
4
+ /**
5
+ * Decode the next frame.
6
+ *
7
+ * If the animation is on the last frame or has hit an error, returns
8
+ * kFinished (-1).
9
+ */
10
+ decodeNextFrame(): number;
11
+ /**
12
+ * Returns the current frame as an SkImage. The SkImage will not change
13
+ * after it has been returned.
14
+ * If there is no current frame, null will be returned.
15
+ */
16
+ getCurrentFrame(): SkImage | null;
17
+ /**
18
+ * How long to display the current frame.
19
+ *
20
+ * Useful for the first frame, for which decodeNextFrame is called
21
+ * internally.
22
+ */
23
+ currentFrameDuration(): number;
24
+ }
@@ -0,0 +1,13 @@
1
+ import type { SkData } from "../Data";
2
+ import type { SkAnimatedImage } from "./AnimatedImage";
3
+ export interface AnimatedImageFactory {
4
+ /**
5
+ * Decodes the given bytes into an animated image. Returns null if the bytes were invalid.
6
+ * The passed in bytes will be copied into the WASM heap, so the caller can dispose of them.
7
+ *
8
+ * The returned AnimatedImage will be "pointing to" the first frame, i.e. currentFrameDuration
9
+ * and makeImageAtCurrentFrame will be referring to the first frame.
10
+ * @param encoded
11
+ */
12
+ MakeAnimatedImageFromEncoded: (encoded: SkData) => SkAnimatedImage | null;
13
+ }
@@ -0,0 +1,2 @@
1
+ export * from "./AnimatedImage";
2
+ export * from "./AnimatedImageFactory";
@@ -24,6 +24,7 @@ import type { SkContourMeasureIter } from "./ContourMeasure";
24
24
  import type { PictureFactory, SkPictureRecorder } from "./Picture";
25
25
  import type { Color, SkColor } from "./Color";
26
26
  import type { TypefaceFontProviderFactory } from "./Paragraph/TypefaceFontProviderFactory";
27
+ import type { AnimatedImageFactory } from "./AnimatedImage";
27
28
  /**
28
29
  * Declares the interface for the native Skia API
29
30
  */
@@ -63,6 +64,7 @@ export interface Skia {
63
64
  MakeVertices(mode: VertexMode, positions: SkPoint[], textureCoordinates?: SkPoint[] | null, colors?: SkColor[], indices?: number[] | null, isVolatile?: boolean): SkVertices;
64
65
  Data: DataFactory;
65
66
  Image: ImageFactory;
67
+ AnimatedImage: AnimatedImageFactory;
66
68
  SVG: SVGFactory;
67
69
  TextBlob: TextBlobFactory;
68
70
  Surface: SurfaceFactory;
@@ -6,6 +6,7 @@ export * from "./Vertices";
6
6
  export * from "./RuntimeEffect";
7
7
  export * from "./Shader";
8
8
  export * from "./Image";
9
+ export * from "./AnimatedImage";
9
10
  export * from "./ColorFilter";
10
11
  export * from "./ImageFilter";
11
12
  export * from "./Font";
@@ -0,0 +1,11 @@
1
+ import type { AnimatedImage, CanvasKit } from "canvaskit-wasm";
2
+ import type { SkAnimatedImage } from "../types/AnimatedImage";
3
+ import { HostObject } from "./Host";
4
+ import { JsiSkImage } from "./JsiSkImage";
5
+ export declare class JsiSkAnimatedImage extends HostObject<AnimatedImage, "AnimatedImage"> implements SkAnimatedImage {
6
+ constructor(CanvasKit: CanvasKit, ref: AnimatedImage);
7
+ decodeNextFrame(): number;
8
+ currentFrameDuration(): number;
9
+ getCurrentFrame(): JsiSkImage | null;
10
+ dispose: () => void;
11
+ }