@shopify/react-native-skia 0.1.210 → 0.1.212

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