@shopify/react-native-skia 1.8.2 → 1.9.0

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 (178) hide show
  1. package/android/cpp/rnskia-android/MainThreadDispatcher.h +1 -1
  2. package/android/cpp/rnskia-android/OpenGLContext.h +4 -4
  3. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +3 -3
  4. package/cpp/api/JsiSkCanvas.h +27 -25
  5. package/cpp/api/JsiSkImage.h +24 -0
  6. package/cpp/api/JsiSkPaint.h +1 -1
  7. package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +5 -1
  8. package/cpp/rnskia/dom/nodes/JsiImageNode.h +8 -4
  9. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +9 -38
  10. package/cpp/rnskia/dom/props/SamplingProp.h +54 -0
  11. package/ios/RNSkia-iOS/SkiaManager.mm +2 -4
  12. package/lib/commonjs/dom/types/Drawings.d.ts +3 -1
  13. package/lib/commonjs/dom/types/Drawings.js.map +1 -1
  14. package/lib/commonjs/dom/types/Shaders.d.ts +2 -3
  15. package/lib/commonjs/dom/types/Shaders.js.map +1 -1
  16. package/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -1
  17. package/lib/commonjs/renderer/components/image/ImageShader.js +0 -4
  18. package/lib/commonjs/renderer/components/image/ImageShader.js.map +1 -1
  19. package/lib/commonjs/skia/types/Canvas.d.ts +2 -2
  20. package/lib/commonjs/skia/types/Canvas.js.map +1 -1
  21. package/lib/commonjs/skia/types/Image/Image.d.ts +18 -0
  22. package/lib/commonjs/skia/types/Image/Image.js +24 -1
  23. package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
  24. package/lib/commonjs/skia/types/Picture/PictureRecorder.d.ts +2 -1
  25. package/lib/commonjs/skia/types/Picture/PictureRecorder.js.map +1 -1
  26. package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +2 -2
  27. package/lib/commonjs/skia/web/JsiSkCanvas.js +15 -2
  28. package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
  29. package/lib/commonjs/sksg/Container.d.ts +17 -14
  30. package/lib/commonjs/sksg/Container.js +59 -61
  31. package/lib/commonjs/sksg/Container.js.map +1 -1
  32. package/lib/commonjs/sksg/HostConfig.js +4 -9
  33. package/lib/commonjs/sksg/HostConfig.js.map +1 -1
  34. package/lib/commonjs/sksg/Reconciler.js +1 -2
  35. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  36. package/lib/commonjs/sksg/Recorder/Recorder.d.ts +11 -0
  37. package/lib/commonjs/sksg/Recorder/Recorder.js +9 -0
  38. package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
  39. package/lib/commonjs/sksg/Recorder/commands/Drawing.js +11 -4
  40. package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
  41. package/lib/commonjs/sksg/Recorder/commands/Shaders.js +8 -3
  42. package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -1
  43. package/lib/module/dom/types/Drawings.d.ts +3 -1
  44. package/lib/module/dom/types/Drawings.js.map +1 -1
  45. package/lib/module/dom/types/Shaders.d.ts +2 -3
  46. package/lib/module/dom/types/Shaders.js.map +1 -1
  47. package/lib/module/renderer/components/image/ImageShader.d.ts +1 -1
  48. package/lib/module/renderer/components/image/ImageShader.js +0 -4
  49. package/lib/module/renderer/components/image/ImageShader.js.map +1 -1
  50. package/lib/module/skia/types/Canvas.d.ts +2 -2
  51. package/lib/module/skia/types/Canvas.js.map +1 -1
  52. package/lib/module/skia/types/Image/Image.d.ts +18 -0
  53. package/lib/module/skia/types/Image/Image.js +21 -0
  54. package/lib/module/skia/types/Image/Image.js.map +1 -1
  55. package/lib/module/skia/types/Picture/PictureRecorder.d.ts +2 -1
  56. package/lib/module/skia/types/Picture/PictureRecorder.js.map +1 -1
  57. package/lib/module/skia/web/JsiSkCanvas.d.ts +2 -2
  58. package/lib/module/skia/web/JsiSkCanvas.js +15 -2
  59. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  60. package/lib/module/sksg/Container.d.ts +17 -14
  61. package/lib/module/sksg/Container.js +56 -59
  62. package/lib/module/sksg/Container.js.map +1 -1
  63. package/lib/module/sksg/HostConfig.js +4 -9
  64. package/lib/module/sksg/HostConfig.js.map +1 -1
  65. package/lib/module/sksg/Reconciler.js +2 -3
  66. package/lib/module/sksg/Reconciler.js.map +1 -1
  67. package/lib/module/sksg/Recorder/Recorder.d.ts +11 -0
  68. package/lib/module/sksg/Recorder/Recorder.js +9 -0
  69. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  70. package/lib/module/sksg/Recorder/commands/Drawing.js +12 -5
  71. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  72. package/lib/module/sksg/Recorder/commands/Shaders.js +9 -4
  73. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
  74. package/lib/typescript/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -3
  75. package/lib/typescript/lib/commonjs/skia/types/Image/Image.d.ts +21 -0
  76. package/lib/typescript/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
  77. package/lib/typescript/lib/commonjs/sksg/Container.d.ts +15 -10
  78. package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +4 -4
  79. package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +21 -2
  80. package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +5 -0
  81. package/lib/typescript/lib/module/mock/index.d.ts +18 -3
  82. package/lib/typescript/lib/module/renderer/components/image/ImageShader.d.ts +1 -3
  83. package/lib/typescript/lib/module/skia/types/Image/Image.d.ts +21 -0
  84. package/lib/typescript/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
  85. package/lib/typescript/lib/module/sksg/Container.d.ts +15 -10
  86. package/lib/typescript/lib/module/sksg/HostConfig.d.ts +4 -4
  87. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +21 -2
  88. package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +5 -0
  89. package/lib/typescript/src/dom/types/Drawings.d.ts +3 -1
  90. package/lib/typescript/src/dom/types/Shaders.d.ts +2 -3
  91. package/lib/typescript/src/renderer/components/image/ImageShader.d.ts +1 -1
  92. package/lib/typescript/src/skia/types/Canvas.d.ts +2 -2
  93. package/lib/typescript/src/skia/types/Image/Image.d.ts +18 -0
  94. package/lib/typescript/src/skia/types/Picture/PictureRecorder.d.ts +2 -1
  95. package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +2 -2
  96. package/lib/typescript/src/sksg/Container.d.ts +17 -14
  97. package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +11 -0
  98. package/libs/apple/libskia.xcframework/Info.plist +35 -2
  99. package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  100. package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  101. package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
  102. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
  103. package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  104. package/libs/apple/libskottie.xcframework/Info.plist +36 -3
  105. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  106. package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  107. package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
  108. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
  109. package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  110. package/libs/apple/libskparagraph.xcframework/Info.plist +40 -7
  111. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  112. package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  113. package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
  114. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
  115. package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  116. package/libs/apple/libsksg.xcframework/Info.plist +35 -2
  117. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  118. package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  119. package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
  120. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
  121. package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  122. package/libs/apple/libskshaper.xcframework/Info.plist +33 -0
  123. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  124. package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  125. package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
  126. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
  127. package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  128. package/libs/apple/libskunicode_core.xcframework/Info.plist +36 -3
  129. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
  130. package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  131. package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
  132. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e/libskunicode_core.a +0 -0
  133. package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
  134. package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +35 -2
  135. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  136. package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  137. package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
  138. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
  139. package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
  140. package/libs/apple/libsvg.xcframework/Info.plist +36 -3
  141. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  142. package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  143. package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
  144. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
  145. package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  146. package/package.json +1 -1
  147. package/react-native-skia.podspec +2 -2
  148. package/src/__tests__/snapshots/animated-images/bird.png +0 -0
  149. package/src/__tests__/snapshots/demos/product.png +0 -0
  150. package/src/__tests__/snapshots/demos/product2.png +0 -0
  151. package/src/__tests__/snapshots/images/bundle-android.png +0 -0
  152. package/src/__tests__/snapshots/images/bundle-ios.png +0 -0
  153. package/src/__tests__/snapshots/images/bundle-node.png +0 -0
  154. package/src/__tests__/snapshots/images/filter.png +0 -0
  155. package/src/dom/types/Drawings.ts +3 -0
  156. package/src/dom/types/Shaders.ts +2 -4
  157. package/src/renderer/__tests__/e2e/Text.spec.tsx +1 -1
  158. package/src/renderer/components/image/ImageShader.tsx +2 -15
  159. package/src/skia/types/Canvas.ts +2 -3
  160. package/src/skia/types/Image/Image.ts +14 -0
  161. package/src/skia/types/Picture/PictureRecorder.ts +2 -1
  162. package/src/skia/web/JsiSkCanvas.ts +50 -29
  163. package/src/sksg/Container.ts +64 -67
  164. package/src/sksg/HostConfig.ts +4 -9
  165. package/src/sksg/Reconciler.ts +3 -3
  166. package/src/sksg/Recorder/Recorder.ts +20 -0
  167. package/src/sksg/Recorder/commands/Drawing.ts +33 -4
  168. package/src/sksg/Recorder/commands/Shaders.ts +21 -8
  169. package/lib/commonjs/sksg/Recorder/Recording.d.ts +0 -7
  170. package/lib/commonjs/sksg/Recorder/Recording.js +0 -12
  171. package/lib/commonjs/sksg/Recorder/Recording.js.map +0 -1
  172. package/lib/module/sksg/Recorder/Recording.d.ts +0 -7
  173. package/lib/module/sksg/Recorder/Recording.js +0 -5
  174. package/lib/module/sksg/Recorder/Recording.js.map +0 -1
  175. package/lib/typescript/lib/commonjs/sksg/Recorder/Recording.d.ts +0 -5
  176. package/lib/typescript/lib/module/sksg/Recorder/Recording.d.ts +0 -4
  177. package/lib/typescript/src/sksg/Recorder/Recording.d.ts +0 -7
  178. package/src/sksg/Recorder/Recording.ts +0 -13
@@ -1 +1 @@
1
- {"version":3,"names":["enumKey","fitRects","getRect","processGradientProps","processTransformProps","rect2rect","NodeType","BlendMode","FilterMode","MipmapMode","processUniforms","TileMode","composeDeclarations","CommandType","declareShader","ctx","props","source","uniforms","transform","m3","Skia","Matrix","shader","makeShaderWithChildren","shaders","splice","length","push","declareColorShader","color","Shader","MakeColor","Color","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","MakeTwoPointConicalGradient","declareRadialGradientShader","c","r","MakeRadialGradient","declareSweepGradientShader","MakeSweepGradient","x","y","declareLinearGradientShader","MakeLinearGradient","declareTurbulenceShader","MakeTurbulence","declareImageShader","fit","image","tx","ty","fm","mm","imageShaderProps","rct","rects","width","height","sx","sy","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","makeShaderOptions","declareBlend","blend","composer","MakeBlend","bind","isPushShader","command","type","PushShader","isShader","shaderType","pushShader","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","Blend","Error"],"sources":["Shaders.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n getRect,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n BlendProps,\n ColorProps,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../../dom/types\";\nimport {\n BlendMode,\n FilterMode,\n MipmapMode,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareShader = (ctx: DrawingContext, props: ShaderProps) => {\n \"worklet\";\n const { source, uniforms, ...transform } = props;\n const m3 = ctx.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.splice(0, ctx.shaders.length),\n m3\n );\n ctx.shaders.push(shader);\n};\n\nconst declareColorShader = (ctx: DrawingContext, props: ColorProps) => {\n \"worklet\";\n const { color } = props;\n const shader = ctx.Skia.Shader.MakeColor(ctx.Skia.Color(color));\n ctx.shaders.push(shader);\n};\n\nconst declareFractalNoiseShader = (\n ctx: DrawingContext,\n props: FractalNoiseProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTwoPointConicalGradientShader = (\n ctx: DrawingContext,\n props: TwoPointConicalGradientProps\n) => {\n \"worklet\";\n const { startR, endR, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareRadialGradientShader = (\n ctx: DrawingContext,\n props: RadialGradientProps\n) => {\n \"worklet\";\n const { c, r } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareSweepGradientShader = (\n ctx: DrawingContext,\n props: SweepGradientProps\n) => {\n \"worklet\";\n const { c, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n};\n\nconst declareLinearGradientShader = (\n ctx: DrawingContext,\n props: LinearGradientProps\n) => {\n \"worklet\";\n const { start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTurbulenceShader = (\n ctx: DrawingContext,\n props: TurbulenceProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {\n \"worklet\";\n const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = props;\n if (!image) {\n return;\n }\n\n const rct = getRect(ctx.Skia, imageShaderProps);\n const m3 = ctx.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = ctx.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n const shader = image.makeShaderOptions(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n FilterMode[enumKey(fm)],\n MipmapMode[enumKey(mm)],\n lm\n );\n ctx.shaders.push(shader);\n};\n\nconst declareBlend = (ctx: DrawingContext, props: BlendProps) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode as BlendProps[\"mode\"])];\n const shaders = ctx.shaders.splice(0, ctx.shaders.length);\n if (shaders.length > 0) {\n const composer = ctx.Skia.Shader.MakeBlend.bind(ctx.Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n};\n\nexport const isPushShader = (\n command: Command\n): command is Command<CommandType.PushShader> => {\n \"worklet\";\n return command.type === CommandType.PushShader;\n};\n\ntype Props = {\n [NodeType.Shader]: ShaderProps;\n [NodeType.ImageShader]: ImageShaderProps;\n [NodeType.ColorShader]: ColorProps;\n [NodeType.Turbulence]: TurbulenceProps;\n [NodeType.FractalNoise]: FractalNoiseProps;\n [NodeType.LinearGradient]: LinearGradientProps;\n [NodeType.RadialGradient]: RadialGradientProps;\n [NodeType.SweepGradient]: SweepGradientProps;\n [NodeType.TwoPointConicalGradient]: TwoPointConicalGradientProps;\n [NodeType.Blend]: BlendProps;\n};\n\ninterface PushShader<T extends keyof Props>\n extends Command<CommandType.PushShader> {\n shaderType: T;\n props: Props[T];\n}\n\nconst isShader = <T extends keyof Props>(\n command: Command<CommandType.PushShader>,\n type: T\n): command is PushShader<T> => {\n \"worklet\";\n return command.shaderType === type;\n};\n\nexport const pushShader = (\n ctx: DrawingContext,\n command: Command<CommandType.PushShader>\n) => {\n \"worklet\";\n if (isShader(command, NodeType.Shader)) {\n declareShader(ctx, command.props);\n } else if (isShader(command, NodeType.ImageShader)) {\n declareImageShader(ctx, command.props);\n } else if (isShader(command, NodeType.ColorShader)) {\n declareColorShader(ctx, command.props);\n } else if (isShader(command, NodeType.Turbulence)) {\n declareTurbulenceShader(ctx, command.props);\n } else if (isShader(command, NodeType.FractalNoise)) {\n declareFractalNoiseShader(ctx, command.props);\n } else if (isShader(command, NodeType.LinearGradient)) {\n declareLinearGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.RadialGradient)) {\n declareRadialGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.SweepGradient)) {\n declareSweepGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.TwoPointConicalGradient)) {\n declareTwoPointConicalGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.Blend)) {\n declareBlend(ctx, command.props);\n } else {\n throw new Error(`Unknown shader type: ${command.shaderType}`);\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["enumKey","fitRects","getRect","processGradientProps","processTransformProps","rect2rect","NodeType","BlendMode","FilterMode","isCubicSampling","MipmapMode","processUniforms","TileMode","composeDeclarations","CommandType","declareShader","ctx","props","source","uniforms","transform","m3","Skia","Matrix","shader","makeShaderWithChildren","shaders","splice","length","push","declareColorShader","color","Shader","MakeColor","Color","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","MakeTwoPointConicalGradient","declareRadialGradientShader","c","r","MakeRadialGradient","declareSweepGradientShader","MakeSweepGradient","x","y","declareLinearGradientShader","MakeLinearGradient","declareTurbulenceShader","MakeTurbulence","declareImageShader","fit","image","tx","ty","sampling","imageShaderProps","rct","rects","width","height","sx","sy","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","makeShaderCubic","B","C","_sampling$filter","_sampling$mipmap","filter","Linear","mipmap","None","declareBlend","blend","composer","MakeBlend","bind","isPushShader","command","type","PushShader","isShader","shaderType","pushShader","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","Blend","Error"],"sources":["Shaders.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n getRect,\n processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n BlendProps,\n ColorProps,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../../dom/types\";\nimport type { SkShader } from \"../../../skia/types\";\nimport {\n BlendMode,\n FilterMode,\n isCubicSampling,\n MipmapMode,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareShader = (ctx: DrawingContext, props: ShaderProps) => {\n \"worklet\";\n const { source, uniforms, ...transform } = props;\n const m3 = ctx.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.splice(0, ctx.shaders.length),\n m3\n );\n ctx.shaders.push(shader);\n};\n\nconst declareColorShader = (ctx: DrawingContext, props: ColorProps) => {\n \"worklet\";\n const { color } = props;\n const shader = ctx.Skia.Shader.MakeColor(ctx.Skia.Color(color));\n ctx.shaders.push(shader);\n};\n\nconst declareFractalNoiseShader = (\n ctx: DrawingContext,\n props: FractalNoiseProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTwoPointConicalGradientShader = (\n ctx: DrawingContext,\n props: TwoPointConicalGradientProps\n) => {\n \"worklet\";\n const { startR, endR, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareRadialGradientShader = (\n ctx: DrawingContext,\n props: RadialGradientProps\n) => {\n \"worklet\";\n const { c, r } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareSweepGradientShader = (\n ctx: DrawingContext,\n props: SweepGradientProps\n) => {\n \"worklet\";\n const { c, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n};\n\nconst declareLinearGradientShader = (\n ctx: DrawingContext,\n props: LinearGradientProps\n) => {\n \"worklet\";\n const { start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTurbulenceShader = (\n ctx: DrawingContext,\n props: TurbulenceProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {\n \"worklet\";\n const { fit, image, tx, ty, sampling, ...imageShaderProps } = props;\n if (!image) {\n return;\n }\n\n const rct = getRect(ctx.Skia, imageShaderProps);\n const m3 = ctx.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = ctx.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n let shader: SkShader;\n if (sampling && isCubicSampling(sampling)) {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling.B,\n sampling.C,\n lm\n );\n } else {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n lm\n );\n }\n ctx.shaders.push(shader);\n};\n\nconst declareBlend = (ctx: DrawingContext, props: BlendProps) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode as BlendProps[\"mode\"])];\n const shaders = ctx.shaders.splice(0, ctx.shaders.length);\n if (shaders.length > 0) {\n const composer = ctx.Skia.Shader.MakeBlend.bind(ctx.Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n};\n\nexport const isPushShader = (\n command: Command\n): command is Command<CommandType.PushShader> => {\n \"worklet\";\n return command.type === CommandType.PushShader;\n};\n\ntype Props = {\n [NodeType.Shader]: ShaderProps;\n [NodeType.ImageShader]: ImageShaderProps;\n [NodeType.ColorShader]: ColorProps;\n [NodeType.Turbulence]: TurbulenceProps;\n [NodeType.FractalNoise]: FractalNoiseProps;\n [NodeType.LinearGradient]: LinearGradientProps;\n [NodeType.RadialGradient]: RadialGradientProps;\n [NodeType.SweepGradient]: SweepGradientProps;\n [NodeType.TwoPointConicalGradient]: TwoPointConicalGradientProps;\n [NodeType.Blend]: BlendProps;\n};\n\ninterface PushShader<T extends keyof Props>\n extends Command<CommandType.PushShader> {\n shaderType: T;\n props: Props[T];\n}\n\nconst isShader = <T extends keyof Props>(\n command: Command<CommandType.PushShader>,\n type: T\n): command is PushShader<T> => {\n \"worklet\";\n return command.shaderType === type;\n};\n\nexport const pushShader = (\n ctx: DrawingContext,\n command: Command<CommandType.PushShader>\n) => {\n \"worklet\";\n if (isShader(command, NodeType.Shader)) {\n declareShader(ctx, command.props);\n } else if (isShader(command, NodeType.ImageShader)) {\n declareImageShader(ctx, command.props);\n } else if (isShader(command, NodeType.ColorShader)) {\n declareColorShader(ctx, command.props);\n } else if (isShader(command, NodeType.Turbulence)) {\n declareTurbulenceShader(ctx, command.props);\n } else if (isShader(command, NodeType.FractalNoise)) {\n declareFractalNoiseShader(ctx, command.props);\n } else if (isShader(command, NodeType.LinearGradient)) {\n declareLinearGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.RadialGradient)) {\n declareRadialGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.SweepGradient)) {\n declareSweepGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.TwoPointConicalGradient)) {\n declareTwoPointConicalGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.Blend)) {\n declareBlend(ctx, command.props);\n } else {\n throw new Error(`Unknown shader type: ${command.shaderType}`);\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,10 +1,8 @@
1
1
  export const __esModule: boolean;
2
- export function ImageShader({ tx, ty, fm, mm, fit, transform, ...props }: {
2
+ export function ImageShader({ tx, ty, fit, transform, ...props }: {
3
3
  [x: string]: any;
4
4
  tx?: string | undefined;
5
5
  ty?: string | undefined;
6
- fm?: string | undefined;
7
- mm?: string | undefined;
8
6
  fit?: string | undefined;
9
7
  transform?: any[] | undefined;
10
8
  }): any;
@@ -2,3 +2,24 @@ export const __esModule: boolean;
2
2
  export const FilterMode: {};
3
3
  export const MipmapMode: {};
4
4
  export const ImageFormat: {};
5
+ export namespace MitchellCubicSampling {
6
+ let B: number;
7
+ let C: number;
8
+ }
9
+ export namespace CatmullRomCubicSampling {
10
+ let B_1: number;
11
+ export { B_1 as B };
12
+ let C_1: number;
13
+ export { C_1 as C };
14
+ }
15
+ export namespace CubicSampling {
16
+ let B_2: number;
17
+ export { B_2 as B };
18
+ let C_2: number;
19
+ export { C_2 as C };
20
+ }
21
+ export function isCubicSampling(sampling: any): boolean;
22
+ export function MakeCubic(B: any, C: any): {
23
+ B: any;
24
+ C: any;
25
+ };
@@ -39,7 +39,7 @@ export class JsiSkCanvas extends _Host.HostObject {
39
39
  clipRRect(rrect: any, op: any, doAntiAlias: any): void;
40
40
  concat(m: any): void;
41
41
  drawPicture(skp: any): void;
42
- drawAtlas(atlas: any, srcs: any, dsts: any, paint: any, blendMode: any, colors: any, _sampling: any): void;
42
+ drawAtlas(atlas: any, srcs: any, dsts: any, paint: any, blendMode: any, colors: any, sampling: any): void;
43
43
  readPixels(srcX: any, srcY: any, imageInfo: any): any;
44
44
  }
45
45
  import _Host = require("./Host");
@@ -3,18 +3,23 @@ export class Container {
3
3
  constructor(Skia: any, nativeId: any);
4
4
  Skia: any;
5
5
  nativeId: any;
6
- set root(root: any);
7
- get root(): any;
8
- mapperId: any;
9
- _root: any;
10
- _recording: {
6
+ drawOnCanvas(canvas: any): void;
7
+ }
8
+ export function createContainer(Skia: any, nativeId: any): ReanimatedContainer | StaticContainer;
9
+ declare class ReanimatedContainer extends Container {
10
+ redraw(): void;
11
+ recording: {
11
12
  commands: any;
12
13
  paintPool: never[];
13
14
  } | undefined;
14
- clear(): void;
15
+ mapperId: any;
16
+ }
17
+ declare class StaticContainer extends Container {
15
18
  redraw(): void;
16
- getNativeId(): any;
17
- unregisterValues(values: any): void;
18
- registerValues(values: any): void;
19
- drawOnCanvas(canvas: any): void;
19
+ recording: {
20
+ commands: any;
21
+ paintPool: never[];
22
+ animationValues: any;
23
+ } | undefined;
20
24
  }
25
+ export {};
@@ -11,7 +11,7 @@ export namespace sksgHostConfig {
11
11
  function getChildHostContext(_parentHostContext: any, _type: any, _rootContainerInstance: any): null;
12
12
  function shouldSetTextContent(_type: any, _props: any): boolean;
13
13
  function createTextInstance(_text: any, _rootContainerInstance: any, _hostContext: any, _internalInstanceHandle: any): never;
14
- function createInstance(type: any, propsWithChildren: any, container: any, _hostContext: any, _internalInstanceHandle: any): {
14
+ function createInstance(type: any, propsWithChildren: any, _container: any, _hostContext: any, _internalInstanceHandle: any): {
15
15
  type: any;
16
16
  props: any;
17
17
  children: never[];
@@ -19,11 +19,11 @@ export namespace sksgHostConfig {
19
19
  function appendInitialChild(parentInstance: any, child: any): void;
20
20
  function finalizeInitialChildren(parentInstance: any, _type: any, _props: any, _rootContainerInstance: any, _hostContext: any): boolean;
21
21
  function commitMount(): void;
22
- function prepareForCommit(_containerInfo: any): null;
22
+ function prepareForCommit(_container: any): null;
23
23
  function resetAfterCommit(container: any): void;
24
24
  function getPublicInstance(node: any): any;
25
25
  function commitTextUpdate(_textInstance: any, _oldText: any, _newText: any): void;
26
- function clearContainer(container: any): void;
26
+ function clearContainer(_container: any): void;
27
27
  function prepareUpdate(_instance: any, _type: any, oldProps: any, newProps: any, container: any, _hostContext: any): any;
28
28
  function preparePortalMount(): void;
29
29
  function cloneInstance(instance: any, _updatePayload: any, _type: any, _oldProps: any, newProps: any, _internalInstanceHandle: any, keepChildren: any, _recyclableInstance: any): {
@@ -40,7 +40,7 @@ export namespace sksgHostConfig {
40
40
  function getCurrentEventPriority(): number;
41
41
  function beforeActiveInstanceBlur(): void;
42
42
  function afterActiveInstanceBlur(): void;
43
- function detachDeletedInstance(): void;
43
+ function detachDeletedInstance(_node: any): void;
44
44
  function getInstanceFromNode(_node: any): never;
45
45
  function prepareScopeUpdate(_scopeInstance: any, _instance: any): never;
46
46
  function getInstanceFromScope(_scopeInstance: any): never;
@@ -2,7 +2,27 @@ export const __esModule: boolean;
2
2
  export class SkiaSGRoot {
3
3
  constructor(Skia: any, nativeId?: number);
4
4
  Skia: any;
5
- container: _Container.Container;
5
+ container: {
6
+ redraw(): void;
7
+ recording: {
8
+ commands: any;
9
+ paintPool: never[];
10
+ } | undefined;
11
+ mapperId: any;
12
+ Skia: any;
13
+ nativeId: any;
14
+ drawOnCanvas(canvas: any): void;
15
+ } | {
16
+ redraw(): void;
17
+ recording: {
18
+ commands: any;
19
+ paintPool: never[];
20
+ animationValues: any;
21
+ } | undefined;
22
+ Skia: any;
23
+ nativeId: any;
24
+ drawOnCanvas(canvas: any): void;
25
+ };
6
26
  root: any;
7
27
  get sg(): {
8
28
  type: any;
@@ -15,4 +35,3 @@ export class SkiaSGRoot {
15
35
  getPicture(): any;
16
36
  unmount(): void;
17
37
  }
18
- import _Container = require("./Container");
@@ -1,5 +1,10 @@
1
1
  export const __esModule: boolean;
2
2
  export class Recorder {
3
+ getRecording(): {
4
+ commands: any;
5
+ paintPool: never[];
6
+ animationValues: any;
7
+ };
3
8
  processProps(props: any): {
4
9
  props: any;
5
10
  animatedProps: {} | undefined;
@@ -178,6 +178,23 @@ export function Mock(CanvasKit: any): {
178
178
  FilterMode: {};
179
179
  MipmapMode: {};
180
180
  ImageFormat: {};
181
+ isCubicSampling: (sampling: any) => boolean;
182
+ MitchellCubicSampling: {
183
+ B: number;
184
+ C: number;
185
+ };
186
+ CatmullRomCubicSampling: {
187
+ B: number;
188
+ C: number;
189
+ };
190
+ CubicSampling: {
191
+ B: number;
192
+ C: number;
193
+ };
194
+ MakeCubic: (B: any, C: any) => {
195
+ B: any;
196
+ C: any;
197
+ };
181
198
  AlphaType: {};
182
199
  ColorType: {};
183
200
  isColorFilter: (obj: any) => boolean;
@@ -331,12 +348,10 @@ export function Mock(CanvasKit: any): {
331
348
  children: any;
332
349
  }>;
333
350
  Image: (props: any) => import("react").DOMElement<any, Element>;
334
- ImageShader: ({ tx, ty, fm, mm, fit, transform, ...props }: {
351
+ ImageShader: ({ tx, ty, fit, transform, ...props }: {
335
352
  [x: string]: any;
336
353
  tx?: string | undefined;
337
354
  ty?: string | undefined;
338
- fm?: string | undefined;
339
- mm?: string | undefined;
340
355
  fit?: string | undefined;
341
356
  transform?: any[] | undefined;
342
357
  }) => import("react").DOMElement<any, Element>;
@@ -1,9 +1,7 @@
1
- export function ImageShader({ tx, ty, fm, mm, fit, transform, ...props }: {
1
+ export function ImageShader({ tx, ty, fit, transform, ...props }: {
2
2
  [x: string]: any;
3
3
  tx?: string | undefined;
4
4
  ty?: string | undefined;
5
- fm?: string | undefined;
6
- mm?: string | undefined;
7
5
  fit?: string | undefined;
8
6
  transform?: any[] | undefined;
9
7
  }): React.DOMElement<any, Element>;
@@ -1,3 +1,24 @@
1
1
  export let FilterMode: {};
2
2
  export let MipmapMode: {};
3
3
  export let ImageFormat: {};
4
+ export function isCubicSampling(sampling: any): boolean;
5
+ export namespace MitchellCubicSampling {
6
+ let B: number;
7
+ let C: number;
8
+ }
9
+ export namespace CatmullRomCubicSampling {
10
+ let B_1: number;
11
+ export { B_1 as B };
12
+ let C_1: number;
13
+ export { C_1 as C };
14
+ }
15
+ export namespace CubicSampling {
16
+ let B_2: number;
17
+ export { B_2 as B };
18
+ let C_2: number;
19
+ export { C_2 as C };
20
+ }
21
+ export function MakeCubic(B: any, C: any): {
22
+ B: any;
23
+ C: any;
24
+ };
@@ -38,7 +38,7 @@ export class JsiSkCanvas extends HostObject {
38
38
  clipRRect(rrect: any, op: any, doAntiAlias: any): void;
39
39
  concat(m: any): void;
40
40
  drawPicture(skp: any): void;
41
- drawAtlas(atlas: any, srcs: any, dsts: any, paint: any, blendMode: any, colors: any, _sampling: any): void;
41
+ drawAtlas(atlas: any, srcs: any, dsts: any, paint: any, blendMode: any, colors: any, sampling: any): void;
42
42
  readPixels(srcX: any, srcY: any, imageInfo: any): any;
43
43
  }
44
44
  import { HostObject } from "./Host";
@@ -2,18 +2,23 @@ export class Container {
2
2
  constructor(Skia: any, nativeId: any);
3
3
  Skia: any;
4
4
  nativeId: any;
5
- set root(root: any);
6
- get root(): any;
7
- mapperId: any;
8
- _root: any;
9
- _recording: {
5
+ drawOnCanvas(canvas: any): void;
6
+ }
7
+ export function createContainer(Skia: any, nativeId: any): StaticContainer | ReanimatedContainer;
8
+ declare class StaticContainer extends Container {
9
+ redraw(): void;
10
+ recording: {
10
11
  commands: any;
11
12
  paintPool: never[];
13
+ animationValues: any;
12
14
  } | undefined;
13
- clear(): void;
15
+ }
16
+ declare class ReanimatedContainer extends Container {
14
17
  redraw(): void;
15
- getNativeId(): any;
16
- unregisterValues(values: any): void;
17
- registerValues(values: any): void;
18
- drawOnCanvas(canvas: any): void;
18
+ recording: {
19
+ commands: any;
20
+ paintPool: never[];
21
+ } | undefined;
22
+ mapperId: any;
19
23
  }
24
+ export {};
@@ -11,7 +11,7 @@ export namespace sksgHostConfig {
11
11
  function getChildHostContext(_parentHostContext: any, _type: any, _rootContainerInstance: any): null;
12
12
  function shouldSetTextContent(_type: any, _props: any): boolean;
13
13
  function createTextInstance(_text: any, _rootContainerInstance: any, _hostContext: any, _internalInstanceHandle: any): never;
14
- function createInstance(type: any, propsWithChildren: any, container: any, _hostContext: any, _internalInstanceHandle: any): {
14
+ function createInstance(type: any, propsWithChildren: any, _container: any, _hostContext: any, _internalInstanceHandle: any): {
15
15
  type: any;
16
16
  props: any;
17
17
  children: never[];
@@ -19,11 +19,11 @@ export namespace sksgHostConfig {
19
19
  function appendInitialChild(parentInstance: any, child: any): void;
20
20
  function finalizeInitialChildren(parentInstance: any, _type: any, _props: any, _rootContainerInstance: any, _hostContext: any): boolean;
21
21
  function commitMount(): void;
22
- function prepareForCommit(_containerInfo: any): null;
22
+ function prepareForCommit(_container: any): null;
23
23
  function resetAfterCommit(container: any): void;
24
24
  function getPublicInstance(node: any): any;
25
25
  function commitTextUpdate(_textInstance: any, _oldText: any, _newText: any): void;
26
- function clearContainer(container: any): void;
26
+ function clearContainer(_container: any): void;
27
27
  function prepareUpdate(_instance: any, _type: any, oldProps: any, newProps: any, container: any, _hostContext: any): any;
28
28
  function preparePortalMount(): void;
29
29
  function cloneInstance(instance: any, _updatePayload: any, _type: any, _oldProps: any, newProps: any, _internalInstanceHandle: any, keepChildren: any, _recyclableInstance: any): {
@@ -40,7 +40,7 @@ export namespace sksgHostConfig {
40
40
  function getCurrentEventPriority(): number;
41
41
  function beforeActiveInstanceBlur(): void;
42
42
  function afterActiveInstanceBlur(): void;
43
- function detachDeletedInstance(): void;
43
+ function detachDeletedInstance(_node: any): void;
44
44
  function getInstanceFromNode(_node: any): never;
45
45
  function prepareScopeUpdate(_scopeInstance: any, _instance: any): never;
46
46
  function getInstanceFromScope(_scopeInstance: any): never;
@@ -1,7 +1,27 @@
1
1
  export class SkiaSGRoot {
2
2
  constructor(Skia: any, nativeId?: number);
3
3
  Skia: any;
4
- container: Container;
4
+ container: {
5
+ redraw(): void;
6
+ recording: {
7
+ commands: any;
8
+ paintPool: never[];
9
+ animationValues: any;
10
+ } | undefined;
11
+ Skia: any;
12
+ nativeId: any;
13
+ drawOnCanvas(canvas: any): void;
14
+ } | {
15
+ redraw(): void;
16
+ recording: {
17
+ commands: any;
18
+ paintPool: never[];
19
+ } | undefined;
20
+ mapperId: any;
21
+ Skia: any;
22
+ nativeId: any;
23
+ drawOnCanvas(canvas: any): void;
24
+ };
5
25
  root: any;
6
26
  get sg(): {
7
27
  type: any;
@@ -14,4 +34,3 @@ export class SkiaSGRoot {
14
34
  getPicture(): any;
15
35
  unmount(): void;
16
36
  }
17
- import { Container } from "./Container";
@@ -1,4 +1,9 @@
1
1
  export class Recorder {
2
+ getRecording(): {
3
+ commands: any;
4
+ paintPool: never[];
5
+ animationValues: any;
6
+ };
2
7
  processProps(props: any): {
3
8
  props: any;
4
9
  animatedProps: {} | undefined;
@@ -1,4 +1,4 @@
1
- import type { FillType, SkImage, StrokeOpts, Vector, Color, SkPoint, BlendMode, PointMode, VertexMode, SkFont, SkRRect, SkTextBlob, SkPicture, SkSVG, SkPaint, SkRect, SkRSXform, SkColor } from "../../skia/types";
1
+ import type { FillType, SkImage, StrokeOpts, Vector, Color, SkPoint, BlendMode, PointMode, VertexMode, SkFont, SkRRect, SkTextBlob, SkPicture, SkSVG, SkPaint, SkRect, SkRSXform, SkColor, SamplingOptions } from "../../skia/types";
2
2
  import type { CircleDef, Fit, GroupProps, PathDef, RectDef, RRectDef, SkEnum } from "./Common";
3
3
  export interface DrawingNodeProps extends GroupProps {
4
4
  paint?: SkPaint;
@@ -6,6 +6,7 @@ export interface DrawingNodeProps extends GroupProps {
6
6
  export type ImageProps = DrawingNodeProps & RectDef & {
7
7
  fit?: Fit;
8
8
  image: SkImage | null;
9
+ sampling?: SamplingOptions;
9
10
  };
10
11
  export type CircleProps = CircleDef & DrawingNodeProps;
11
12
  export interface PathProps extends DrawingNodeProps {
@@ -27,6 +28,7 @@ export interface AtlasProps extends DrawingNodeProps {
27
28
  sprites: SkRect[];
28
29
  transforms: SkRSXform[];
29
30
  colors?: SkColor[];
31
+ sampling?: SamplingOptions;
30
32
  }
31
33
  export interface CubicBezierHandle {
32
34
  pos: Vector;
@@ -1,4 +1,4 @@
1
- import type { Color, FilterMode, MipmapMode, SkImage, SkRect, SkRuntimeEffect, TileMode, Uniforms, Vector } from "../../skia/types";
1
+ import type { Color, SamplingOptions, SkImage, SkRect, SkRuntimeEffect, TileMode, Uniforms, Vector } from "../../skia/types";
2
2
  import type { SkEnum, TransformProps, ChildrenProps, RectCtor, Fit } from "./Common";
3
3
  export interface ShaderProps extends TransformProps, ChildrenProps {
4
4
  source: SkRuntimeEffect;
@@ -7,11 +7,10 @@ export interface ShaderProps extends TransformProps, ChildrenProps {
7
7
  export interface ImageShaderProps extends TransformProps, Partial<RectCtor> {
8
8
  tx: SkEnum<typeof TileMode>;
9
9
  ty: SkEnum<typeof TileMode>;
10
- fm: SkEnum<typeof FilterMode>;
11
- mm: SkEnum<typeof MipmapMode>;
12
10
  fit: Fit;
13
11
  rect?: SkRect;
14
12
  image: SkImage | null;
13
+ sampling?: SamplingOptions;
15
14
  }
16
15
  export interface ColorProps {
17
16
  color: Color;
@@ -1,4 +1,4 @@
1
1
  import React from "react";
2
2
  import type { ImageShaderProps } from "../../../dom/types";
3
3
  import type { SkiaDefaultProps } from "../../processors";
4
- export declare const ImageShader: ({ tx, ty, fm, mm, fit, transform, ...props }: SkiaDefaultProps<ImageShaderProps, "tx" | "ty" | "fm" | "mm" | "fit" | "transform">) => React.JSX.Element;
4
+ export declare const ImageShader: ({ tx, ty, fit, transform, ...props }: SkiaDefaultProps<ImageShaderProps, "tx" | "ty" | "fit" | "transform">) => React.JSX.Element;
@@ -2,7 +2,7 @@ import type { SkPaint } from "./Paint";
2
2
  import type { SkRect } from "./Rect";
3
3
  import type { SkFont } from "./Font";
4
4
  import type { SkPath } from "./Path";
5
- import type { SkImage, MipmapMode, FilterMode, ImageInfo, CubicResampler, FilterOptions } from "./Image";
5
+ import type { SkImage, MipmapMode, FilterMode, ImageInfo, SamplingOptions } from "./Image";
6
6
  import type { SkSVG } from "./SVG";
7
7
  import type { SkColor } from "./Color";
8
8
  import type { InputRRect } from "./RRect";
@@ -392,7 +392,7 @@ export interface SkCanvas {
392
392
  * @param {CubicResampler | FilterOptions} [sampling] - The sampling options. Optional.
393
393
  * @returns {void} This method does not return anything.
394
394
  */
395
- drawAtlas(atlas: SkImage, srcs: SkRect[], dsts: SkRSXform[], paint: SkPaint, blendMode?: BlendMode, colors?: SkColor[], sampling?: CubicResampler | FilterOptions): void;
395
+ drawAtlas(atlas: SkImage, srcs: SkRect[], dsts: SkRSXform[], paint: SkPaint, blendMode?: BlendMode, colors?: SkColor[], sampling?: SamplingOptions): void;
396
396
  /** Read Image pixels
397
397
  *
398
398
  * @param srcX - x-axis upper left corner of the rectangle to read from
@@ -25,6 +25,24 @@ export declare enum ImageFormat {
25
25
  PNG = 4,
26
26
  WEBP = 6
27
27
  }
28
+ export type SamplingOptions = CubicResampler | FilterOptions;
29
+ export declare const isCubicSampling: (sampling: SamplingOptions) => sampling is CubicResampler;
30
+ export declare const MitchellCubicSampling: {
31
+ B: number;
32
+ C: number;
33
+ };
34
+ export declare const CatmullRomCubicSampling: {
35
+ B: number;
36
+ C: number;
37
+ };
38
+ export declare const CubicSampling: {
39
+ B: number;
40
+ C: number;
41
+ };
42
+ export declare const MakeCubic: (B: number, C: number) => {
43
+ B: number;
44
+ C: number;
45
+ };
28
46
  export interface SkImage extends SkJSIInstance<"Image"> {
29
47
  /**
30
48
  * Returns the possibly scaled height of the image.
@@ -1,7 +1,8 @@
1
1
  import type { SkCanvas } from "../Canvas";
2
+ import type { SkJSIInstance } from "../JsiInstance";
2
3
  import type { SkRect } from "../Rect";
3
4
  import type { SkPicture } from "./Picture";
4
- export interface SkPictureRecorder {
5
+ export interface SkPictureRecorder extends SkJSIInstance<"PictureRecorder"> {
5
6
  /**
6
7
  * Returns a canvas on which to draw. When done drawing, call finishRecordingAsPicture()
7
8
  *
@@ -1,5 +1,5 @@
1
1
  import type { Canvas, CanvasKit } from "canvaskit-wasm";
2
- import type { BlendMode, ClipOp, FilterMode, MipmapMode, PointMode, SaveLayerFlag, ImageInfo, SkCanvas, SkColor, SkFont, SkImage, SkImageFilter, SkMatrix, SkPaint, SkPath, SkPicture, SkPoint, SkRect, InputRRect, SkSVG, SkTextBlob, SkVertices, SkRSXform, CubicResampler, FilterOptions } from "../types";
2
+ import { type BlendMode, type ClipOp, type FilterMode, type MipmapMode, type PointMode, type SaveLayerFlag, type ImageInfo, type SkCanvas, type SkColor, type SkFont, type SkImage, type SkImageFilter, type SkMatrix, type SkPaint, type SkPath, type SkPicture, type SkPoint, type SkRect, type InputRRect, type SkSVG, type SkTextBlob, type SkVertices, type SkRSXform, type CubicResampler, type FilterOptions } from "../types";
3
3
  import { HostObject } from "./Host";
4
4
  export declare class JsiSkCanvas extends HostObject<Canvas, "Canvas"> implements SkCanvas {
5
5
  constructor(CanvasKit: CanvasKit, ref: Canvas);
@@ -42,6 +42,6 @@ export declare class JsiSkCanvas extends HostObject<Canvas, "Canvas"> implements
42
42
  clipRRect(rrect: InputRRect, op: ClipOp, doAntiAlias: boolean): void;
43
43
  concat(m: SkMatrix | number[]): void;
44
44
  drawPicture(skp: SkPicture): void;
45
- drawAtlas(atlas: SkImage, srcs: SkRect[], dsts: SkRSXform[], paint: SkPaint, blendMode?: BlendMode, colors?: SkColor[], _sampling?: CubicResampler | FilterOptions): void;
45
+ drawAtlas(atlas: SkImage, srcs: SkRect[], dsts: SkRSXform[], paint: SkPaint, blendMode?: BlendMode, colors?: SkColor[], sampling?: CubicResampler | FilterOptions): void;
46
46
  readPixels(srcX: number, srcY: number, imageInfo: ImageInfo): Float32Array | Uint8Array | null;
47
47
  }
@@ -1,20 +1,23 @@
1
1
  import type { Skia, SkCanvas } from "../skia/types";
2
2
  import type { Node } from "./Node";
3
- export declare class Container {
4
- Skia: Skia;
5
- private nativeId;
6
- private _root;
7
- private _recording;
8
- unmounted: boolean;
9
- private values;
3
+ import type { Recording } from "./Recorder/Recorder";
4
+ export declare abstract class Container {
5
+ protected Skia: Skia;
6
+ protected nativeId: number;
7
+ root: Node[];
8
+ protected recording: Recording | null;
9
+ constructor(Skia: Skia, nativeId: number);
10
+ drawOnCanvas(canvas: SkCanvas): void;
11
+ abstract redraw(): void;
12
+ }
13
+ declare class StaticContainer extends Container {
14
+ constructor(Skia: Skia, nativeId: number);
15
+ redraw(): void;
16
+ }
17
+ declare class ReanimatedContainer extends Container {
10
18
  private mapperId;
11
19
  constructor(Skia: Skia, nativeId: number);
12
- get root(): Node[];
13
- set root(root: Node[]);
14
- clear(): void;
15
20
  redraw(): void;
16
- getNativeId(): number;
17
- unregisterValues(values: object): void;
18
- registerValues(values: object): void;
19
- drawOnCanvas(canvas: SkCanvas): void;
20
21
  }
22
+ export declare const createContainer: (Skia: Skia, nativeId: number) => StaticContainer | ReanimatedContainer;
23
+ export {};
@@ -2,9 +2,19 @@ import type { SharedValue } from "react-native-reanimated";
2
2
  import { NodeType } from "../../dom/types";
3
3
  import type { BlurMaskFilterProps, CircleProps, CTMProps, ImageProps, PaintProps, PointsProps, PathProps, RectProps, RoundedRectProps, OvalProps, LineProps, PatchProps, VerticesProps, DiffRectProps, TextProps, TextPathProps, TextBlobProps, GlyphsProps, PictureProps, ImageSVGProps, ParagraphProps, AtlasProps, BoxProps, BoxShadowProps } from "../../dom/types";
4
4
  import type { AnimatedProps } from "../../renderer";
5
+ import type { SkPaint } from "../../skia/types";
5
6
  import type { Command } from "./Core";
7
+ export interface Recording {
8
+ commands: Command[];
9
+ paintPool: SkPaint[];
10
+ }
11
+ interface AnimationValues {
12
+ animationValues: Set<SharedValue<unknown>>;
13
+ }
6
14
  export declare class Recorder {
7
15
  commands: Command[];
16
+ animationValues: Set<SharedValue<unknown>>;
17
+ getRecording(): Recording & AnimationValues;
8
18
  private processProps;
9
19
  private add;
10
20
  savePaint(props: AnimatedProps<PaintProps>): void;
@@ -48,3 +58,4 @@ export declare class Recorder {
48
58
  drawParagraph(props: AnimatedProps<ParagraphProps>): void;
49
59
  drawAtlas(props: AnimatedProps<AtlasProps>): void;
50
60
  }
61
+ export {};