@shopify/react-native-skia 2.4.15 → 2.4.17

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 (226) hide show
  1. package/android/CMakeLists.txt +69 -0
  2. package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseView.java +19 -7
  3. package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseViewManager.java +7 -0
  4. package/apple/RNSkApplePlatformContext.mm +4 -0
  5. package/cpp/api/JsiSkApi.h +31 -0
  6. package/cpp/api/JsiSkImageFactory.h +69 -1
  7. package/cpp/api/JsiSkImageFilter.h +1 -0
  8. package/cpp/api/JsiSkPath.h +1 -1
  9. package/cpp/jsi/RuntimeAwareCache.h +0 -2
  10. package/cpp/jsi2/EnumMapper.h +45 -0
  11. package/cpp/jsi2/JSIConverter.h +468 -0
  12. package/cpp/jsi2/NativeObject.h +598 -0
  13. package/cpp/jsi2/Promise.cpp +44 -0
  14. package/cpp/jsi2/Promise.h +35 -0
  15. package/cpp/rnskia/RNDawnContext.h +114 -0
  16. package/cpp/rnskia/RNSkManager.cpp +41 -1
  17. package/cpp/rnwgpu/ArrayBuffer.h +68 -0
  18. package/cpp/rnwgpu/api/Convertors.h +761 -0
  19. package/cpp/rnwgpu/api/External.h +12 -0
  20. package/cpp/rnwgpu/api/GPU.cpp +129 -0
  21. package/cpp/rnwgpu/api/GPU.h +57 -0
  22. package/cpp/rnwgpu/api/GPUAdapter.cpp +178 -0
  23. package/cpp/rnwgpu/api/GPUAdapter.h +59 -0
  24. package/cpp/rnwgpu/api/GPUAdapterInfo.h +57 -0
  25. package/cpp/rnwgpu/api/GPUBindGroup.cpp +3 -0
  26. package/cpp/rnwgpu/api/GPUBindGroup.h +51 -0
  27. package/cpp/rnwgpu/api/GPUBindGroupLayout.h +52 -0
  28. package/cpp/rnwgpu/api/GPUBuffer.cpp +97 -0
  29. package/cpp/rnwgpu/api/GPUBuffer.h +87 -0
  30. package/cpp/rnwgpu/api/GPUCommandBuffer.h +45 -0
  31. package/cpp/rnwgpu/api/GPUCommandEncoder.cpp +179 -0
  32. package/cpp/rnwgpu/api/GPUCommandEncoder.h +111 -0
  33. package/cpp/rnwgpu/api/GPUCompilationInfo.h +79 -0
  34. package/cpp/rnwgpu/api/GPUCompilationMessage.h +36 -0
  35. package/cpp/rnwgpu/api/GPUComputePassEncoder.cpp +60 -0
  36. package/cpp/rnwgpu/api/GPUComputePassEncoder.h +85 -0
  37. package/cpp/rnwgpu/api/GPUComputePipeline.cpp +12 -0
  38. package/cpp/rnwgpu/api/GPUComputePipeline.h +60 -0
  39. package/cpp/rnwgpu/api/GPUDevice.cpp +434 -0
  40. package/cpp/rnwgpu/api/GPUDevice.h +174 -0
  41. package/cpp/rnwgpu/api/GPUDeviceLostInfo.cpp +7 -0
  42. package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +40 -0
  43. package/cpp/rnwgpu/api/GPUError.h +35 -0
  44. package/cpp/rnwgpu/api/GPUExtent3D.h +66 -0
  45. package/cpp/rnwgpu/api/GPUExternalTexture.h +45 -0
  46. package/cpp/rnwgpu/api/GPUFeatures.h +212 -0
  47. package/cpp/rnwgpu/api/GPUInternalError.h +31 -0
  48. package/cpp/rnwgpu/api/GPUOrigin2D.h +55 -0
  49. package/cpp/rnwgpu/api/GPUOrigin3D.h +62 -0
  50. package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +33 -0
  51. package/cpp/rnwgpu/api/GPUPipelineLayout.h +45 -0
  52. package/cpp/rnwgpu/api/GPUQuerySet.cpp +11 -0
  53. package/cpp/rnwgpu/api/GPUQuerySet.h +73 -0
  54. package/cpp/rnwgpu/api/GPUQueue.cpp +169 -0
  55. package/cpp/rnwgpu/api/GPUQueue.h +84 -0
  56. package/cpp/rnwgpu/api/GPURenderBundle.h +44 -0
  57. package/cpp/rnwgpu/api/GPURenderBundleEncoder.cpp +131 -0
  58. package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +110 -0
  59. package/cpp/rnwgpu/api/GPURenderPassEncoder.cpp +165 -0
  60. package/cpp/rnwgpu/api/GPURenderPassEncoder.h +130 -0
  61. package/cpp/rnwgpu/api/GPURenderPipeline.cpp +13 -0
  62. package/cpp/rnwgpu/api/GPURenderPipeline.h +61 -0
  63. package/cpp/rnwgpu/api/GPUSampler.h +44 -0
  64. package/cpp/rnwgpu/api/GPUShaderModule.cpp +51 -0
  65. package/cpp/rnwgpu/api/GPUShaderModule.h +66 -0
  66. package/cpp/rnwgpu/api/GPUSupportedLimits.cpp +129 -0
  67. package/cpp/rnwgpu/api/GPUSupportedLimits.h +131 -0
  68. package/cpp/rnwgpu/api/GPUTexture.cpp +47 -0
  69. package/cpp/rnwgpu/api/GPUTexture.h +150 -0
  70. package/cpp/rnwgpu/api/GPUTextureView.h +44 -0
  71. package/cpp/rnwgpu/api/GPUValidationError.h +32 -0
  72. package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +64 -0
  73. package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +71 -0
  74. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +56 -0
  75. package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +97 -0
  76. package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +57 -0
  77. package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +52 -0
  78. package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +56 -0
  79. package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +56 -0
  80. package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +59 -0
  81. package/cpp/rnwgpu/api/descriptors/GPUBufferUsage.h +39 -0
  82. package/cpp/rnwgpu/api/descriptors/GPUColor.h +66 -0
  83. package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +58 -0
  84. package/cpp/rnwgpu/api/descriptors/GPUColorWrite.h +29 -0
  85. package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +45 -0
  86. package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +45 -0
  87. package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +56 -0
  88. package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +58 -0
  89. package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +67 -0
  90. package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +103 -0
  91. package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +99 -0
  92. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +38 -0
  93. package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +71 -0
  94. package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +73 -0
  95. package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +62 -0
  96. package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +62 -0
  97. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +65 -0
  98. package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +81 -0
  99. package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +54 -0
  100. package/cpp/rnwgpu/api/descriptors/GPUMapMode.h +22 -0
  101. package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +54 -0
  102. package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +57 -0
  103. package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +69 -0
  104. package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +61 -0
  105. package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +55 -0
  106. package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +43 -0
  107. package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +45 -0
  108. package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +80 -0
  109. package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +81 -0
  110. package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +101 -0
  111. package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +92 -0
  112. package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +58 -0
  113. package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +103 -0
  114. package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +51 -0
  115. package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +45 -0
  116. package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +110 -0
  117. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +60 -0
  118. package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +62 -0
  119. package/cpp/rnwgpu/api/descriptors/GPUShaderStage.h +25 -0
  120. package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +64 -0
  121. package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +59 -0
  122. package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +59 -0
  123. package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +91 -0
  124. package/cpp/rnwgpu/api/descriptors/GPUTextureUsage.h +29 -0
  125. package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +91 -0
  126. package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +64 -0
  127. package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +53 -0
  128. package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +62 -0
  129. package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +73 -0
  130. package/cpp/rnwgpu/api/descriptors/Unions.h +1984 -0
  131. package/cpp/rnwgpu/async/AsyncDispatcher.h +28 -0
  132. package/cpp/rnwgpu/async/AsyncRunner.cpp +181 -0
  133. package/cpp/rnwgpu/async/AsyncRunner.h +56 -0
  134. package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +181 -0
  135. package/cpp/rnwgpu/async/AsyncTaskHandle.h +55 -0
  136. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.cpp +23 -0
  137. package/cpp/rnwgpu/async/JSIMicrotaskDispatcher.h +22 -0
  138. package/lib/commonjs/Platform/Platform.web.js +1 -2
  139. package/lib/commonjs/Platform/Platform.web.js.map +1 -1
  140. package/lib/commonjs/external/reanimated/buffers.js.map +1 -1
  141. package/lib/commonjs/external/reanimated/interpolators.d.ts +1 -4
  142. package/lib/commonjs/renderer/Canvas.js +4 -3
  143. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  144. package/lib/commonjs/renderer/components/Group.js +1 -2
  145. package/lib/commonjs/renderer/components/Group.js.map +1 -1
  146. package/lib/commonjs/renderer/components/shapes/FitBox.js +1 -2
  147. package/lib/commonjs/renderer/components/shapes/FitBox.js.map +1 -1
  148. package/lib/commonjs/skia/types/ContourMeasure.js.map +1 -1
  149. package/lib/commonjs/skia/types/Image/ImageFactory.d.ts +20 -0
  150. package/lib/commonjs/skia/types/Image/ImageFactory.js.map +1 -1
  151. package/lib/commonjs/skia/types/RuntimeEffect/RuntimeEffect.js.map +1 -1
  152. package/lib/commonjs/skia/types/Skia.d.ts +17 -0
  153. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  154. package/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -0
  155. package/lib/commonjs/skia/web/JsiSkImageFactory.js +6 -0
  156. package/lib/commonjs/skia/web/JsiSkImageFactory.js.map +1 -1
  157. package/lib/commonjs/skia/web/JsiSkParagraphStyle.js +2 -2
  158. package/lib/commonjs/skia/web/JsiSkParagraphStyle.js.map +1 -1
  159. package/lib/commonjs/skia/web/JsiSkia.js +6 -0
  160. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  161. package/lib/commonjs/sksg/Recorder/commands/ColorFilters.js.map +1 -1
  162. package/lib/commonjs/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  163. package/lib/commonjs/sksg/Recorder/commands/PathEffects.js.map +1 -1
  164. package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -1
  165. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.d.ts +2 -0
  166. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js +2 -0
  167. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js.map +1 -1
  168. package/lib/commonjs/views/SkiaPictureView.web.js +4 -4
  169. package/lib/commonjs/views/SkiaPictureView.web.js.map +1 -1
  170. package/lib/commonjs/web/WithSkiaWeb.js +1 -2
  171. package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
  172. package/lib/module/external/reanimated/buffers.js.map +1 -1
  173. package/lib/module/external/reanimated/interpolators.d.ts +1 -4
  174. package/lib/module/renderer/Canvas.js +3 -1
  175. package/lib/module/renderer/Canvas.js.map +1 -1
  176. package/lib/module/skia/types/ContourMeasure.js.map +1 -1
  177. package/lib/module/skia/types/Image/ImageFactory.d.ts +20 -0
  178. package/lib/module/skia/types/Image/ImageFactory.js.map +1 -1
  179. package/lib/module/skia/types/RuntimeEffect/RuntimeEffect.js.map +1 -1
  180. package/lib/module/skia/types/Skia.d.ts +17 -0
  181. package/lib/module/skia/types/Skia.js.map +1 -1
  182. package/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -0
  183. package/lib/module/skia/web/JsiSkImageFactory.js +6 -0
  184. package/lib/module/skia/web/JsiSkImageFactory.js.map +1 -1
  185. package/lib/module/skia/web/JsiSkParagraphStyle.js +2 -2
  186. package/lib/module/skia/web/JsiSkParagraphStyle.js.map +1 -1
  187. package/lib/module/skia/web/JsiSkia.js +6 -0
  188. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  189. package/lib/module/sksg/Recorder/commands/ColorFilters.js.map +1 -1
  190. package/lib/module/sksg/Recorder/commands/ImageFilters.js.map +1 -1
  191. package/lib/module/sksg/Recorder/commands/PathEffects.js.map +1 -1
  192. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
  193. package/lib/module/specs/SkiaPictureViewNativeComponent.d.ts +2 -0
  194. package/lib/module/specs/SkiaPictureViewNativeComponent.js +4 -0
  195. package/lib/module/specs/SkiaPictureViewNativeComponent.js.map +1 -1
  196. package/lib/module/views/SkiaPictureView.web.js +3 -2
  197. package/lib/module/views/SkiaPictureView.web.js.map +1 -1
  198. package/lib/typescript/lib/commonjs/skia/web/JsiSkImageFactory.d.ts +2 -0
  199. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +2 -0
  200. package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -1
  201. package/lib/typescript/lib/module/skia/Skia.web.d.ts +2 -0
  202. package/lib/typescript/lib/module/skia/web/JsiSkImageFactory.d.ts +2 -0
  203. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +2 -0
  204. package/lib/typescript/lib/module/views/SkiaPictureView.d.ts +1 -1
  205. package/lib/typescript/src/external/reanimated/interpolators.d.ts +1 -4
  206. package/lib/typescript/src/skia/types/Image/ImageFactory.d.ts +20 -0
  207. package/lib/typescript/src/skia/types/Skia.d.ts +17 -0
  208. package/lib/typescript/src/skia/web/JsiSkImageFactory.d.ts +2 -0
  209. package/lib/typescript/src/specs/SkiaPictureViewNativeComponent.d.ts +2 -0
  210. package/package.json +20 -16
  211. package/react-native-skia.podspec +52 -13
  212. package/scripts/install-skia.mjs +99 -48
  213. package/src/external/reanimated/buffers.ts +1 -1
  214. package/src/renderer/Canvas.tsx +3 -2
  215. package/src/skia/types/ContourMeasure.tsx +1 -2
  216. package/src/skia/types/Image/ImageFactory.ts +22 -0
  217. package/src/skia/types/RuntimeEffect/RuntimeEffect.ts +1 -2
  218. package/src/skia/types/Skia.ts +17 -0
  219. package/src/skia/web/JsiSkImageFactory.ts +8 -0
  220. package/src/skia/web/JsiSkia.ts +6 -0
  221. package/src/sksg/Recorder/commands/ColorFilters.ts +3 -2
  222. package/src/sksg/Recorder/commands/ImageFilters.ts +3 -2
  223. package/src/sksg/Recorder/commands/PathEffects.ts +3 -2
  224. package/src/sksg/Recorder/commands/Shaders.ts +3 -2
  225. package/src/specs/SkiaPictureViewNativeComponent.ts +7 -0
  226. package/src/views/SkiaPictureView.web.tsx +4 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","MorphologyOperator","exports","Black","Float32Array","of","MakeInnerShadow","Skia","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","BlendMode","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","TileMode","Decal","f4","MakeCompose","SrcOver","declareBlurImageFilter","ctx","props","mode","blur","sigma","processRadius","imgf","x","y","enumKey","imageFilters","push","declareMorphologyImageFilter","operator","r","radius","Erode","MakeErode","MakeDilate","declareOffsetImageFilter","declareDropShadowImageFilter","cl","inner","processColor","factory","bind","MakeDropShadowOnly","MakeDropShadow","declareBlendImageFilter","blend","splice","length","composer","composeDeclarations","declareDisplacementMapImageFilter","channelX","channelY","scale","shader","shaders","pop","Error","map","MakeShader","MakeDisplacementMap","ColorChannel","declareRuntimeShaderImageFilter","source","uniforms","rtb","RuntimeShaderBuilder","processUniforms","MakeRuntimeShader","declareImageFilter","filter","composeImageFilters","outer","setBlurMaskFilter","style","respectCTM","mf","MaskFilter","BlurStyle","paint","setMaskFilter","isPushImageFilter","command","type","CommandType","PushImageFilter","isImageFilter","imageFilterType","pushImageFilter","NodeType","BlurImageFilter","MorphologyImageFilter","BlendImageFilter","DisplacementMapImageFilter","DropShadowImageFilter","OffsetImageFilter","RuntimeShaderImageFilter"],"sources":["ImageFilters.ts"],"sourcesContent":["import { enumKey, processColor, processRadius } from \"../../../dom/nodes\";\nimport type {\n BlendImageFilterProps,\n BlurImageFilterProps,\n BlurMaskFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n ImageFilterProps,\n MorphologyImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../../../dom/types\";\nimport { NodeType } from \"../../../dom/types\";\nimport type { SkColor, SkImageFilter, Skia } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ColorChannel,\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\nexport enum MorphologyOperator {\n Erode,\n Dilate,\n}\n\nconst Black = Float32Array.of(0, 0, 0, 1);\n\nconst MakeInnerShadow = (\n Skia: Skia,\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n \"worklet\";\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n\nconst declareBlurImageFilter = (\n ctx: DrawingContext,\n props: BlurImageFilterProps\n) => {\n \"worklet\";\n const { mode, blur } = props;\n const sigma = processRadius(ctx.Skia, blur);\n const imgf = ctx.Skia.ImageFilter.MakeBlur(\n sigma.x,\n sigma.y,\n TileMode[enumKey(mode)],\n null\n );\n ctx.imageFilters.push(imgf);\n};\n\nconst declareMorphologyImageFilter = (\n ctx: DrawingContext,\n props: MorphologyImageFilterProps\n) => {\n \"worklet\";\n const { operator } = props;\n const r = processRadius(ctx.Skia, props.radius);\n let imgf;\n if (MorphologyOperator[enumKey(operator)] === MorphologyOperator.Erode) {\n imgf = ctx.Skia.ImageFilter.MakeErode(r.x, r.y, null);\n } else {\n imgf = ctx.Skia.ImageFilter.MakeDilate(r.x, r.y, null);\n }\n ctx.imageFilters.push(imgf);\n};\n\nconst declareOffsetImageFilter = (\n ctx: DrawingContext,\n props: OffsetImageFilterProps\n) => {\n \"worklet\";\n const { x, y } = props;\n const imgf = ctx.Skia.ImageFilter.MakeOffset(x, y, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareDropShadowImageFilter = (\n ctx: DrawingContext,\n props: DropShadowImageFilterProps\n) => {\n \"worklet\";\n const { dx, dy, blur, shadowOnly, color: cl, inner } = props;\n const color = processColor(ctx.Skia, cl);\n let factory;\n if (inner) {\n factory = MakeInnerShadow.bind(null, ctx.Skia, shadowOnly);\n } else {\n factory = shadowOnly\n ? ctx.Skia.ImageFilter.MakeDropShadowOnly.bind(ctx.Skia.ImageFilter)\n : ctx.Skia.ImageFilter.MakeDropShadow.bind(ctx.Skia.ImageFilter);\n }\n const imgf = factory(dx, dy, blur, blur, color, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareBlendImageFilter = (\n ctx: DrawingContext,\n props: BlendImageFilterProps\n) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode)];\n // Blend ImageFilters\n const imageFilters = ctx.imageFilters.splice(0, ctx.imageFilters.length);\n const composer = ctx.Skia.ImageFilter.MakeBlend.bind(\n ctx.Skia.ImageFilter,\n blend\n );\n ctx.imageFilters.push(composeDeclarations(imageFilters, composer));\n};\n\nconst declareDisplacementMapImageFilter = (\n ctx: DrawingContext,\n props: DisplacementMapImageFilterProps\n) => {\n \"worklet\";\n const { channelX, channelY, scale } = props;\n const shader = ctx.shaders.pop();\n if (!shader) {\n throw new Error(\"DisplacementMap expects a shader as child\");\n }\n const map = ctx.Skia.ImageFilter.MakeShader(shader);\n const imgf = ctx.Skia.ImageFilter.MakeDisplacementMap(\n ColorChannel[enumKey(channelX)],\n ColorChannel[enumKey(channelY)],\n scale,\n map,\n null\n );\n ctx.imageFilters.push(imgf);\n};\n\nconst declareRuntimeShaderImageFilter = (\n ctx: DrawingContext,\n props: RuntimeShaderImageFilterProps\n) => {\n \"worklet\";\n const { source, uniforms } = props;\n const rtb = ctx.Skia.RuntimeShaderBuilder(source);\n if (uniforms) {\n processUniforms(source, uniforms, rtb);\n }\n const imgf = ctx.Skia.ImageFilter.MakeRuntimeShader(rtb, null, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareImageFilter = (ctx: DrawingContext, props: ImageFilterProps) => {\n \"worklet\";\n const { filter } = props;\n ctx.imageFilters.push(filter);\n};\n\nexport const composeImageFilters = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.imageFilters.length > 1) {\n const outer = ctx.imageFilters.pop()!;\n const inner = ctx.imageFilters.pop()!;\n ctx.imageFilters.push(ctx.Skia.ImageFilter.MakeCompose(outer, inner));\n }\n};\n\nexport const setBlurMaskFilter = (\n ctx: DrawingContext,\n props: BlurMaskFilterProps\n) => {\n \"worklet\";\n const { blur, style, respectCTM } = props;\n const mf = ctx.Skia.MaskFilter.MakeBlur(\n BlurStyle[enumKey(style)],\n blur,\n respectCTM\n );\n ctx.paint.setMaskFilter(mf);\n};\n\nexport const isPushImageFilter = (\n command: Command\n): command is Command<CommandType.PushImageFilter> => {\n \"worklet\";\n return command.type === CommandType.PushImageFilter;\n};\n\ntype Props = {\n [NodeType.ImageFilter]: ImageFilterProps;\n [NodeType.OffsetImageFilter]: OffsetImageFilterProps;\n [NodeType.DisplacementMapImageFilter]: DisplacementMapImageFilterProps;\n [NodeType.BlurImageFilter]: BlurImageFilterProps;\n [NodeType.DropShadowImageFilter]: DropShadowImageFilterProps;\n [NodeType.MorphologyImageFilter]: MorphologyImageFilterProps;\n [NodeType.BlendImageFilter]: BlendImageFilterProps;\n [NodeType.RuntimeShaderImageFilter]: RuntimeShaderImageFilterProps;\n};\n\ninterface PushImageFilter<T extends keyof Props>\n extends Command<CommandType.PushImageFilter> {\n imageFilterType: T;\n props: Props[T];\n}\n\nconst isImageFilter = <T extends keyof Props>(\n command: Command<CommandType.PushImageFilter>,\n type: T\n): command is PushImageFilter<T> => {\n \"worklet\";\n return command.imageFilterType === type;\n};\n\nexport const pushImageFilter = (\n ctx: DrawingContext,\n command: Command<CommandType.PushImageFilter>\n) => {\n \"worklet\";\n if (isImageFilter(command, NodeType.ImageFilter)) {\n declareImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.BlurImageFilter)) {\n declareBlurImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.MorphologyImageFilter)) {\n declareMorphologyImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.BlendImageFilter)) {\n declareBlendImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.DisplacementMapImageFilter)) {\n declareDisplacementMapImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.DropShadowImageFilter)) {\n declareDropShadowImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.OffsetImageFilter)) {\n declareOffsetImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.RuntimeShaderImageFilter)) {\n declareRuntimeShaderImageFilter(ctx, command.props);\n } else {\n throw new Error(\"Invalid image filter type: \" + command.imageFilterType);\n }\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","MorphologyOperator","exports","Black","Float32Array","of","MakeInnerShadow","Skia","shadowOnly","dx","dy","sigmaX","sigmaY","color","input","sourceGraphic","ImageFilter","MakeColorFilter","ColorFilter","MakeBlend","BlendMode","Dst","sourceAlpha","SrcIn","f1","SrcOut","f2","MakeOffset","f3","MakeBlur","TileMode","Decal","f4","MakeCompose","SrcOver","declareBlurImageFilter","ctx","props","mode","blur","sigma","processRadius","imgf","x","y","enumKey","imageFilters","push","declareMorphologyImageFilter","operator","r","radius","Erode","MakeErode","MakeDilate","declareOffsetImageFilter","declareDropShadowImageFilter","cl","inner","processColor","factory","bind","MakeDropShadowOnly","MakeDropShadow","declareBlendImageFilter","blend","splice","length","composer","composeDeclarations","declareDisplacementMapImageFilter","channelX","channelY","scale","shader","shaders","pop","Error","map","MakeShader","MakeDisplacementMap","ColorChannel","declareRuntimeShaderImageFilter","source","uniforms","rtb","RuntimeShaderBuilder","processUniforms","MakeRuntimeShader","declareImageFilter","filter","composeImageFilters","outer","setBlurMaskFilter","style","respectCTM","mf","MaskFilter","BlurStyle","paint","setMaskFilter","isPushImageFilter","command","type","CommandType","PushImageFilter","isImageFilter","imageFilterType","pushImageFilter","NodeType","BlurImageFilter","MorphologyImageFilter","BlendImageFilter","DisplacementMapImageFilter","DropShadowImageFilter","OffsetImageFilter","RuntimeShaderImageFilter"],"sources":["ImageFilters.ts"],"sourcesContent":["import { enumKey, processColor, processRadius } from \"../../../dom/nodes\";\nimport type {\n BlendImageFilterProps,\n BlurImageFilterProps,\n BlurMaskFilterProps,\n DisplacementMapImageFilterProps,\n DropShadowImageFilterProps,\n ImageFilterProps,\n MorphologyImageFilterProps,\n OffsetImageFilterProps,\n RuntimeShaderImageFilterProps,\n} from \"../../../dom/types\";\nimport { NodeType } from \"../../../dom/types\";\nimport type { SkColor, SkImageFilter, Skia } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ColorChannel,\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\nexport enum MorphologyOperator {\n Erode,\n Dilate,\n}\n\nconst Black = Float32Array.of(0, 0, 0, 1);\n\nconst MakeInnerShadow = (\n Skia: Skia,\n shadowOnly: boolean | undefined,\n dx: number,\n dy: number,\n sigmaX: number,\n sigmaY: number,\n color: SkColor,\n input: SkImageFilter | null\n) => {\n \"worklet\";\n const sourceGraphic = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.Dst),\n null\n );\n const sourceAlpha = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(Black, BlendMode.SrcIn),\n null\n );\n const f1 = Skia.ImageFilter.MakeColorFilter(\n Skia.ColorFilter.MakeBlend(color, BlendMode.SrcOut),\n null\n );\n const f2 = Skia.ImageFilter.MakeOffset(dx, dy, f1);\n const f3 = Skia.ImageFilter.MakeBlur(sigmaX, sigmaY, TileMode.Decal, f2);\n const f4 = Skia.ImageFilter.MakeBlend(BlendMode.SrcIn, sourceAlpha, f3);\n if (shadowOnly) {\n return f4;\n }\n return Skia.ImageFilter.MakeCompose(\n input,\n Skia.ImageFilter.MakeBlend(BlendMode.SrcOver, sourceGraphic, f4)\n );\n};\n\nconst declareBlurImageFilter = (\n ctx: DrawingContext,\n props: BlurImageFilterProps\n) => {\n \"worklet\";\n const { mode, blur } = props;\n const sigma = processRadius(ctx.Skia, blur);\n const imgf = ctx.Skia.ImageFilter.MakeBlur(\n sigma.x,\n sigma.y,\n TileMode[enumKey(mode)],\n null\n );\n ctx.imageFilters.push(imgf);\n};\n\nconst declareMorphologyImageFilter = (\n ctx: DrawingContext,\n props: MorphologyImageFilterProps\n) => {\n \"worklet\";\n const { operator } = props;\n const r = processRadius(ctx.Skia, props.radius);\n let imgf;\n if (MorphologyOperator[enumKey(operator)] === MorphologyOperator.Erode) {\n imgf = ctx.Skia.ImageFilter.MakeErode(r.x, r.y, null);\n } else {\n imgf = ctx.Skia.ImageFilter.MakeDilate(r.x, r.y, null);\n }\n ctx.imageFilters.push(imgf);\n};\n\nconst declareOffsetImageFilter = (\n ctx: DrawingContext,\n props: OffsetImageFilterProps\n) => {\n \"worklet\";\n const { x, y } = props;\n const imgf = ctx.Skia.ImageFilter.MakeOffset(x, y, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareDropShadowImageFilter = (\n ctx: DrawingContext,\n props: DropShadowImageFilterProps\n) => {\n \"worklet\";\n const { dx, dy, blur, shadowOnly, color: cl, inner } = props;\n const color = processColor(ctx.Skia, cl);\n let factory;\n if (inner) {\n factory = MakeInnerShadow.bind(null, ctx.Skia, shadowOnly);\n } else {\n factory = shadowOnly\n ? ctx.Skia.ImageFilter.MakeDropShadowOnly.bind(ctx.Skia.ImageFilter)\n : ctx.Skia.ImageFilter.MakeDropShadow.bind(ctx.Skia.ImageFilter);\n }\n const imgf = factory(dx, dy, blur, blur, color, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareBlendImageFilter = (\n ctx: DrawingContext,\n props: BlendImageFilterProps\n) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode)];\n // Blend ImageFilters\n const imageFilters = ctx.imageFilters.splice(0, ctx.imageFilters.length);\n const composer = ctx.Skia.ImageFilter.MakeBlend.bind(\n ctx.Skia.ImageFilter,\n blend\n );\n ctx.imageFilters.push(composeDeclarations(imageFilters, composer));\n};\n\nconst declareDisplacementMapImageFilter = (\n ctx: DrawingContext,\n props: DisplacementMapImageFilterProps\n) => {\n \"worklet\";\n const { channelX, channelY, scale } = props;\n const shader = ctx.shaders.pop();\n if (!shader) {\n throw new Error(\"DisplacementMap expects a shader as child\");\n }\n const map = ctx.Skia.ImageFilter.MakeShader(shader);\n const imgf = ctx.Skia.ImageFilter.MakeDisplacementMap(\n ColorChannel[enumKey(channelX)],\n ColorChannel[enumKey(channelY)],\n scale,\n map,\n null\n );\n ctx.imageFilters.push(imgf);\n};\n\nconst declareRuntimeShaderImageFilter = (\n ctx: DrawingContext,\n props: RuntimeShaderImageFilterProps\n) => {\n \"worklet\";\n const { source, uniforms } = props;\n const rtb = ctx.Skia.RuntimeShaderBuilder(source);\n if (uniforms) {\n processUniforms(source, uniforms, rtb);\n }\n const imgf = ctx.Skia.ImageFilter.MakeRuntimeShader(rtb, null, null);\n ctx.imageFilters.push(imgf);\n};\n\nconst declareImageFilter = (ctx: DrawingContext, props: ImageFilterProps) => {\n \"worklet\";\n const { filter } = props;\n ctx.imageFilters.push(filter);\n};\n\nexport const composeImageFilters = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.imageFilters.length > 1) {\n const outer = ctx.imageFilters.pop()!;\n const inner = ctx.imageFilters.pop()!;\n ctx.imageFilters.push(ctx.Skia.ImageFilter.MakeCompose(outer, inner));\n }\n};\n\nexport const setBlurMaskFilter = (\n ctx: DrawingContext,\n props: BlurMaskFilterProps\n) => {\n \"worklet\";\n const { blur, style, respectCTM } = props;\n const mf = ctx.Skia.MaskFilter.MakeBlur(\n BlurStyle[enumKey(style)],\n blur,\n respectCTM\n );\n ctx.paint.setMaskFilter(mf);\n};\n\nexport const isPushImageFilter = (\n command: Command\n): command is Command<CommandType.PushImageFilter> => {\n \"worklet\";\n return command.type === CommandType.PushImageFilter;\n};\n\ntype Props = {\n [NodeType.ImageFilter]: ImageFilterProps;\n [NodeType.OffsetImageFilter]: OffsetImageFilterProps;\n [NodeType.DisplacementMapImageFilter]: DisplacementMapImageFilterProps;\n [NodeType.BlurImageFilter]: BlurImageFilterProps;\n [NodeType.DropShadowImageFilter]: DropShadowImageFilterProps;\n [NodeType.MorphologyImageFilter]: MorphologyImageFilterProps;\n [NodeType.BlendImageFilter]: BlendImageFilterProps;\n [NodeType.RuntimeShaderImageFilter]: RuntimeShaderImageFilterProps;\n};\n\ninterface PushImageFilter<\n T extends keyof Props,\n> extends Command<CommandType.PushImageFilter> {\n imageFilterType: T;\n props: Props[T];\n}\n\nconst isImageFilter = <T extends keyof Props>(\n command: Command<CommandType.PushImageFilter>,\n type: T\n): command is PushImageFilter<T> => {\n \"worklet\";\n return command.imageFilterType === type;\n};\n\nexport const pushImageFilter = (\n ctx: DrawingContext,\n command: Command<CommandType.PushImageFilter>\n) => {\n \"worklet\";\n if (isImageFilter(command, NodeType.ImageFilter)) {\n declareImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.BlurImageFilter)) {\n declareBlurImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.MorphologyImageFilter)) {\n declareMorphologyImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.BlendImageFilter)) {\n declareBlendImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.DisplacementMapImageFilter)) {\n declareDisplacementMapImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.DropShadowImageFilter)) {\n declareDropShadowImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.OffsetImageFilter)) {\n declareOffsetImageFilter(ctx, command.props);\n } else if (isImageFilter(command, NodeType.RuntimeShaderImageFilter)) {\n declareRuntimeShaderImageFilter(ctx, command.props);\n } else {\n throw new Error(\"Invalid image filter type: \" + command.imageFilterType);\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareDiscretePathEffect","ctx","props","length","deviation","seed","pe","Skia","PathEffect","MakeDiscrete","pathEffects","push","declarePath2DPathEffect","matrix","path","processPath","MakePath2D","Error","declareDashPathEffect","intervals","phase","MakeDash","declareCornerPathEffect","r","MakeCorner","declareSumPathEffect","pes","splice","composeDeclarations","MakeSum","bind","declareLine2DPathEffect","width","MakeLine2D","declarePath1DPathEffect","advance","style","MakePath1D","Path1DEffectStyle","enumKey","isPushPathEffect","command","type","CommandType","PushPathEffect","exports","isPathEffect","pathEffectType","composePathEffects","outer","pop","inner","MakeCompose","pushPathEffect","NodeType","DiscretePathEffect","DashPathEffect","Path1DPathEffect","Path2DPathEffect","CornerPathEffect","SumPathEffect","Line2DPathEffect","imageFilterType"],"sources":["PathEffects.ts"],"sourcesContent":["import { enumKey, processPath } from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../../../dom/types\";\nimport { Path1DEffectStyle } from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareDiscretePathEffect = (\n ctx: DrawingContext,\n props: DiscretePathEffectProps\n) => {\n \"worklet\";\n const { length, deviation, seed } = props;\n const pe = ctx.Skia.PathEffect.MakeDiscrete(length, deviation, seed);\n ctx.pathEffects.push(pe);\n};\n\nconst declarePath2DPathEffect = (\n ctx: DrawingContext,\n props: Path2DPathEffectProps\n) => {\n \"worklet\";\n const { matrix } = props;\n const path = processPath(ctx.Skia, props.path);\n const pe = ctx.Skia.PathEffect.MakePath2D(matrix, path);\n if (pe === null) {\n throw new Error(\"Path2DPathEffect: invalid path\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declareDashPathEffect = (\n ctx: DrawingContext,\n props: DashPathEffectProps\n) => {\n \"worklet\";\n const { intervals, phase } = props;\n const pe = ctx.Skia.PathEffect.MakeDash(intervals, phase);\n ctx.pathEffects.push(pe);\n};\n\nconst declareCornerPathEffect = (\n ctx: DrawingContext,\n props: CornerPathEffectProps\n) => {\n \"worklet\";\n const { r } = props;\n const pe = ctx.Skia.PathEffect.MakeCorner(r);\n if (pe === null) {\n throw new Error(\"CornerPathEffect: couldn't create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declareSumPathEffect = (ctx: DrawingContext) => {\n \"worklet\";\n // Note: decorateChildren functionality needs to be handled differently\n const pes = ctx.pathEffects.splice(0, ctx.pathEffects.length);\n const pe = composeDeclarations(\n pes,\n ctx.Skia.PathEffect.MakeSum.bind(ctx.Skia.PathEffect)\n );\n ctx.pathEffects.push(pe);\n};\n\nconst declareLine2DPathEffect = (\n ctx: DrawingContext,\n props: Line2DPathEffectProps\n) => {\n \"worklet\";\n const { width, matrix } = props;\n const pe = ctx.Skia.PathEffect.MakeLine2D(width, matrix);\n if (pe === null) {\n throw new Error(\"Line2DPathEffect: could not create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declarePath1DPathEffect = (\n ctx: DrawingContext,\n props: Path1DPathEffectProps\n) => {\n \"worklet\";\n const { advance, phase, style } = props;\n const path = processPath(ctx.Skia, props.path);\n const pe = ctx.Skia.PathEffect.MakePath1D(\n path,\n advance,\n phase,\n Path1DEffectStyle[enumKey(style)]\n );\n if (pe === null) {\n throw new Error(\"Path1DPathEffect: could not create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nexport const isPushPathEffect = (\n command: Command\n): command is Command<CommandType.PushPathEffect> => {\n \"worklet\";\n return command.type === CommandType.PushPathEffect;\n};\n\ntype Props = {\n [NodeType.DiscretePathEffect]: DiscretePathEffectProps;\n [NodeType.DashPathEffect]: DashPathEffectProps;\n [NodeType.Path1DPathEffect]: Path1DPathEffectProps;\n [NodeType.Path2DPathEffect]: Path2DPathEffectProps;\n [NodeType.CornerPathEffect]: CornerPathEffectProps;\n [NodeType.SumPathEffect]: Record<string, never>;\n [NodeType.Line2DPathEffect]: Line2DPathEffectProps;\n};\n\ninterface PushPathEffect<T extends keyof Props>\n extends Command<CommandType.PushPathEffect> {\n pathEffectType: T;\n props: Props[T];\n}\n\nconst isPathEffect = <T extends keyof Props>(\n command: Command<CommandType.PushPathEffect>,\n type: T\n): command is PushPathEffect<T> => {\n \"worklet\";\n return command.pathEffectType === type;\n};\n\nexport const composePathEffects = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.pathEffects.length > 1) {\n const outer = ctx.pathEffects.pop()!;\n const inner = ctx.pathEffects.pop()!;\n ctx.pathEffects.push(ctx.Skia.PathEffect.MakeCompose(outer, inner));\n }\n};\n\nexport const pushPathEffect = (\n ctx: DrawingContext,\n command: Command<CommandType.PushPathEffect>\n) => {\n \"worklet\";\n if (isPathEffect(command, NodeType.DiscretePathEffect)) {\n declareDiscretePathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.DashPathEffect)) {\n declareDashPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.Path1DPathEffect)) {\n declarePath1DPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.Path2DPathEffect)) {\n declarePath2DPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.CornerPathEffect)) {\n declareCornerPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.SumPathEffect)) {\n declareSumPathEffect(ctx);\n } else if (isPathEffect(command, NodeType.Line2DPathEffect)) {\n declareLine2DPathEffect(ctx, command.props);\n } else {\n throw new Error(\"Invalid image filter type: \" + command.imageFilterType);\n }\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AASA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AAGA,MAAMK,yBAAyB,GAAGA,CAChCC,GAAmB,EACnBC,KAA8B,KAC3B;EACH,SAAS;;EACT,MAAM;IAAEC,MAAM;IAAEC,SAAS;IAAEC;EAAK,CAAC,GAAGH,KAAK;EACzC,MAAMI,EAAE,GAAGL,GAAG,CAACM,IAAI,CAACC,UAAU,CAACC,YAAY,CAACN,MAAM,EAAEC,SAAS,EAAEC,IAAI,CAAC;EACpEJ,GAAG,CAACS,WAAW,CAACC,IAAI,CAACL,EAAE,CAAC;AAC1B,CAAC;AAED,MAAMM,uBAAuB,GAAGA,CAC9BX,GAAmB,EACnBC,KAA4B,KACzB;EACH,SAAS;;EACT,MAAM;IAAEW;EAAO,CAAC,GAAGX,KAAK;EACxB,MAAMY,IAAI,GAAG,IAAAC,kBAAW,EAACd,GAAG,CAACM,IAAI,EAAEL,KAAK,CAACY,IAAI,CAAC;EAC9C,MAAMR,EAAE,GAAGL,GAAG,CAACM,IAAI,CAACC,UAAU,CAACQ,UAAU,CAACH,MAAM,EAAEC,IAAI,CAAC;EACvD,IAAIR,EAAE,KAAK,IAAI,EAAE;IACf,MAAM,IAAIW,KAAK,CAAC,gCAAgC,CAAC;EACnD;EACAhB,GAAG,CAACS,WAAW,CAACC,IAAI,CAACL,EAAE,CAAC;AAC1B,CAAC;AAED,MAAMY,qBAAqB,GAAGA,CAC5BjB,GAAmB,EACnBC,KAA0B,KACvB;EACH,SAAS;;EACT,MAAM;IAAEiB,SAAS;IAAEC;EAAM,CAAC,GAAGlB,KAAK;EAClC,MAAMI,EAAE,GAAGL,GAAG,CAACM,IAAI,CAACC,UAAU,CAACa,QAAQ,CAACF,SAAS,EAAEC,KAAK,CAAC;EACzDnB,GAAG,CAACS,WAAW,CAACC,IAAI,CAACL,EAAE,CAAC;AAC1B,CAAC;AAED,MAAMgB,uBAAuB,GAAGA,CAC9BrB,GAAmB,EACnBC,KAA4B,KACzB;EACH,SAAS;;EACT,MAAM;IAAEqB;EAAE,CAAC,GAAGrB,KAAK;EACnB,MAAMI,EAAE,GAAGL,GAAG,CAACM,IAAI,CAACC,UAAU,CAACgB,UAAU,CAACD,CAAC,CAAC;EAC5C,IAAIjB,EAAE,KAAK,IAAI,EAAE;IACf,MAAM,IAAIW,KAAK,CAAC,+CAA+C,CAAC;EAClE;EACAhB,GAAG,CAACS,WAAW,CAACC,IAAI,CAACL,EAAE,CAAC;AAC1B,CAAC;AAED,MAAMmB,oBAAoB,GAAIxB,GAAmB,IAAK;EACpD,SAAS;;EACT;EACA,MAAMyB,GAAG,GAAGzB,GAAG,CAACS,WAAW,CAACiB,MAAM,CAAC,CAAC,EAAE1B,GAAG,CAACS,WAAW,CAACP,MAAM,CAAC;EAC7D,MAAMG,EAAE,GAAG,IAAAsB,0BAAmB,EAC5BF,GAAG,EACHzB,GAAG,CAACM,IAAI,CAACC,UAAU,CAACqB,OAAO,CAACC,IAAI,CAAC7B,GAAG,CAACM,IAAI,CAACC,UAAU,CACtD,CAAC;EACDP,GAAG,CAACS,WAAW,CAACC,IAAI,CAACL,EAAE,CAAC;AAC1B,CAAC;AAED,MAAMyB,uBAAuB,GAAGA,CAC9B9B,GAAmB,EACnBC,KAA4B,KACzB;EACH,SAAS;;EACT,MAAM;IAAE8B,KAAK;IAAEnB;EAAO,CAAC,GAAGX,KAAK;EAC/B,MAAMI,EAAE,GAAGL,GAAG,CAACM,IAAI,CAACC,UAAU,CAACyB,UAAU,CAACD,KAAK,EAAEnB,MAAM,CAAC;EACxD,IAAIP,EAAE,KAAK,IAAI,EAAE;IACf,MAAM,IAAIW,KAAK,CAAC,gDAAgD,CAAC;EACnE;EACAhB,GAAG,CAACS,WAAW,CAACC,IAAI,CAACL,EAAE,CAAC;AAC1B,CAAC;AAED,MAAM4B,uBAAuB,GAAGA,CAC9BjC,GAAmB,EACnBC,KAA4B,KACzB;EACH,SAAS;;EACT,MAAM;IAAEiC,OAAO;IAAEf,KAAK;IAAEgB;EAAM,CAAC,GAAGlC,KAAK;EACvC,MAAMY,IAAI,GAAG,IAAAC,kBAAW,EAACd,GAAG,CAACM,IAAI,EAAEL,KAAK,CAACY,IAAI,CAAC;EAC9C,MAAMR,EAAE,GAAGL,GAAG,CAACM,IAAI,CAACC,UAAU,CAAC6B,UAAU,CACvCvB,IAAI,EACJqB,OAAO,EACPf,KAAK,EACLkB,yBAAiB,CAAC,IAAAC,cAAO,EAACH,KAAK,CAAC,CAClC,CAAC;EACD,IAAI9B,EAAE,KAAK,IAAI,EAAE;IACf,MAAM,IAAIW,KAAK,CAAC,gDAAgD,CAAC;EACnE;EACAhB,GAAG,CAACS,WAAW,CAACC,IAAI,CAACL,EAAE,CAAC;AAC1B,CAAC;AAEM,MAAMkC,gBAAgB,GAC3BC,OAAgB,IACmC;EACnD,SAAS;;EACT,OAAOA,OAAO,CAACC,IAAI,KAAKC,iBAAW,CAACC,cAAc;AACpD,CAAC;AAACC,OAAA,CAAAL,gBAAA,GAAAA,gBAAA;AAkBF,MAAMM,YAAY,GAAGA,CACnBL,OAA4C,EAC5CC,IAAO,KAC0B;EACjC,SAAS;;EACT,OAAOD,OAAO,CAACM,cAAc,KAAKL,IAAI;AACxC,CAAC;AAEM,MAAMM,kBAAkB,GAAI/C,GAAmB,IAAK;EACzD,SAAS;;EACT,IAAIA,GAAG,CAACS,WAAW,CAACP,MAAM,GAAG,CAAC,EAAE;IAC9B,MAAM8C,KAAK,GAAGhD,GAAG,CAACS,WAAW,CAACwC,GAAG,CAAC,CAAE;IACpC,MAAMC,KAAK,GAAGlD,GAAG,CAACS,WAAW,CAACwC,GAAG,CAAC,CAAE;IACpCjD,GAAG,CAACS,WAAW,CAACC,IAAI,CAACV,GAAG,CAACM,IAAI,CAACC,UAAU,CAAC4C,WAAW,CAACH,KAAK,EAAEE,KAAK,CAAC,CAAC;EACrE;AACF,CAAC;AAACN,OAAA,CAAAG,kBAAA,GAAAA,kBAAA;AAEK,MAAMK,cAAc,GAAGA,CAC5BpD,GAAmB,EACnBwC,OAA4C,KACzC;EACH,SAAS;;EACT,IAAIK,YAAY,CAACL,OAAO,EAAEa,eAAQ,CAACC,kBAAkB,CAAC,EAAE;IACtDvD,yBAAyB,CAACC,GAAG,EAAEwC,OAAO,CAACvC,KAAK,CAAC;EAC/C,CAAC,MAAM,IAAI4C,YAAY,CAACL,OAAO,EAAEa,eAAQ,CAACE,cAAc,CAAC,EAAE;IACzDtC,qBAAqB,CAACjB,GAAG,EAAEwC,OAAO,CAACvC,KAAK,CAAC;EAC3C,CAAC,MAAM,IAAI4C,YAAY,CAACL,OAAO,EAAEa,eAAQ,CAACG,gBAAgB,CAAC,EAAE;IAC3DvB,uBAAuB,CAACjC,GAAG,EAAEwC,OAAO,CAACvC,KAAK,CAAC;EAC7C,CAAC,MAAM,IAAI4C,YAAY,CAACL,OAAO,EAAEa,eAAQ,CAACI,gBAAgB,CAAC,EAAE;IAC3D9C,uBAAuB,CAACX,GAAG,EAAEwC,OAAO,CAACvC,KAAK,CAAC;EAC7C,CAAC,MAAM,IAAI4C,YAAY,CAACL,OAAO,EAAEa,eAAQ,CAACK,gBAAgB,CAAC,EAAE;IAC3DrC,uBAAuB,CAACrB,GAAG,EAAEwC,OAAO,CAACvC,KAAK,CAAC;EAC7C,CAAC,MAAM,IAAI4C,YAAY,CAACL,OAAO,EAAEa,eAAQ,CAACM,aAAa,CAAC,EAAE;IACxDnC,oBAAoB,CAACxB,GAAG,CAAC;EAC3B,CAAC,MAAM,IAAI6C,YAAY,CAACL,OAAO,EAAEa,eAAQ,CAACO,gBAAgB,CAAC,EAAE;IAC3D9B,uBAAuB,CAAC9B,GAAG,EAAEwC,OAAO,CAACvC,KAAK,CAAC;EAC7C,CAAC,MAAM;IACL,MAAM,IAAIe,KAAK,CAAC,6BAA6B,GAAGwB,OAAO,CAACqB,eAAe,CAAC;EAC1E;AACF,CAAC;AAACjB,OAAA,CAAAQ,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareDiscretePathEffect","ctx","props","length","deviation","seed","pe","Skia","PathEffect","MakeDiscrete","pathEffects","push","declarePath2DPathEffect","matrix","path","processPath","MakePath2D","Error","declareDashPathEffect","intervals","phase","MakeDash","declareCornerPathEffect","r","MakeCorner","declareSumPathEffect","pes","splice","composeDeclarations","MakeSum","bind","declareLine2DPathEffect","width","MakeLine2D","declarePath1DPathEffect","advance","style","MakePath1D","Path1DEffectStyle","enumKey","isPushPathEffect","command","type","CommandType","PushPathEffect","exports","isPathEffect","pathEffectType","composePathEffects","outer","pop","inner","MakeCompose","pushPathEffect","NodeType","DiscretePathEffect","DashPathEffect","Path1DPathEffect","Path2DPathEffect","CornerPathEffect","SumPathEffect","Line2DPathEffect","imageFilterType"],"sources":["PathEffects.ts"],"sourcesContent":["import { enumKey, processPath } from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n CornerPathEffectProps,\n DashPathEffectProps,\n DiscretePathEffectProps,\n Line2DPathEffectProps,\n Path1DPathEffectProps,\n Path2DPathEffectProps,\n} from \"../../../dom/types\";\nimport { Path1DEffectStyle } from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareDiscretePathEffect = (\n ctx: DrawingContext,\n props: DiscretePathEffectProps\n) => {\n \"worklet\";\n const { length, deviation, seed } = props;\n const pe = ctx.Skia.PathEffect.MakeDiscrete(length, deviation, seed);\n ctx.pathEffects.push(pe);\n};\n\nconst declarePath2DPathEffect = (\n ctx: DrawingContext,\n props: Path2DPathEffectProps\n) => {\n \"worklet\";\n const { matrix } = props;\n const path = processPath(ctx.Skia, props.path);\n const pe = ctx.Skia.PathEffect.MakePath2D(matrix, path);\n if (pe === null) {\n throw new Error(\"Path2DPathEffect: invalid path\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declareDashPathEffect = (\n ctx: DrawingContext,\n props: DashPathEffectProps\n) => {\n \"worklet\";\n const { intervals, phase } = props;\n const pe = ctx.Skia.PathEffect.MakeDash(intervals, phase);\n ctx.pathEffects.push(pe);\n};\n\nconst declareCornerPathEffect = (\n ctx: DrawingContext,\n props: CornerPathEffectProps\n) => {\n \"worklet\";\n const { r } = props;\n const pe = ctx.Skia.PathEffect.MakeCorner(r);\n if (pe === null) {\n throw new Error(\"CornerPathEffect: couldn't create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declareSumPathEffect = (ctx: DrawingContext) => {\n \"worklet\";\n // Note: decorateChildren functionality needs to be handled differently\n const pes = ctx.pathEffects.splice(0, ctx.pathEffects.length);\n const pe = composeDeclarations(\n pes,\n ctx.Skia.PathEffect.MakeSum.bind(ctx.Skia.PathEffect)\n );\n ctx.pathEffects.push(pe);\n};\n\nconst declareLine2DPathEffect = (\n ctx: DrawingContext,\n props: Line2DPathEffectProps\n) => {\n \"worklet\";\n const { width, matrix } = props;\n const pe = ctx.Skia.PathEffect.MakeLine2D(width, matrix);\n if (pe === null) {\n throw new Error(\"Line2DPathEffect: could not create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nconst declarePath1DPathEffect = (\n ctx: DrawingContext,\n props: Path1DPathEffectProps\n) => {\n \"worklet\";\n const { advance, phase, style } = props;\n const path = processPath(ctx.Skia, props.path);\n const pe = ctx.Skia.PathEffect.MakePath1D(\n path,\n advance,\n phase,\n Path1DEffectStyle[enumKey(style)]\n );\n if (pe === null) {\n throw new Error(\"Path1DPathEffect: could not create path effect\");\n }\n ctx.pathEffects.push(pe);\n};\n\nexport const isPushPathEffect = (\n command: Command\n): command is Command<CommandType.PushPathEffect> => {\n \"worklet\";\n return command.type === CommandType.PushPathEffect;\n};\n\ntype Props = {\n [NodeType.DiscretePathEffect]: DiscretePathEffectProps;\n [NodeType.DashPathEffect]: DashPathEffectProps;\n [NodeType.Path1DPathEffect]: Path1DPathEffectProps;\n [NodeType.Path2DPathEffect]: Path2DPathEffectProps;\n [NodeType.CornerPathEffect]: CornerPathEffectProps;\n [NodeType.SumPathEffect]: Record<string, never>;\n [NodeType.Line2DPathEffect]: Line2DPathEffectProps;\n};\n\ninterface PushPathEffect<\n T extends keyof Props,\n> extends Command<CommandType.PushPathEffect> {\n pathEffectType: T;\n props: Props[T];\n}\n\nconst isPathEffect = <T extends keyof Props>(\n command: Command<CommandType.PushPathEffect>,\n type: T\n): command is PushPathEffect<T> => {\n \"worklet\";\n return command.pathEffectType === type;\n};\n\nexport const composePathEffects = (ctx: DrawingContext) => {\n \"worklet\";\n if (ctx.pathEffects.length > 1) {\n const outer = ctx.pathEffects.pop()!;\n const inner = ctx.pathEffects.pop()!;\n ctx.pathEffects.push(ctx.Skia.PathEffect.MakeCompose(outer, inner));\n }\n};\n\nexport const pushPathEffect = (\n ctx: DrawingContext,\n command: Command<CommandType.PushPathEffect>\n) => {\n \"worklet\";\n if (isPathEffect(command, NodeType.DiscretePathEffect)) {\n declareDiscretePathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.DashPathEffect)) {\n declareDashPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.Path1DPathEffect)) {\n declarePath1DPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.Path2DPathEffect)) {\n declarePath2DPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.CornerPathEffect)) {\n declareCornerPathEffect(ctx, command.props);\n } else if (isPathEffect(command, NodeType.SumPathEffect)) {\n declareSumPathEffect(ctx);\n } else if (isPathEffect(command, NodeType.Line2DPathEffect)) {\n declareLine2DPathEffect(ctx, command.props);\n } else {\n throw new Error(\"Invalid image filter type: \" + command.imageFilterType);\n }\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareShader","ctx","props","children","source","uniforms","transform","m3","Skia","Matrix","processTransformProps","shader","makeShaderWithChildren","processUniforms","shaders","splice","push","declareColorShader","color","Shader","MakeColor","processColor","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","processGradientProps","MakeTwoPointConicalGradient","declareRadialGradientShader","c","r","MakeRadialGradient","declareSweepGradientShader","MakeSweepGradient","x","y","declareLinearGradientShader","MakeLinearGradient","declareTurbulenceShader","MakeTurbulence","declareImageShader","fit","image","tx","ty","sampling","imageShaderProps","rct","getRect","rects","fitRects","width","height","sx","sy","rect2rect","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","isCubicSampling","makeShaderCubic","TileMode","enumKey","B","C","_sampling$filter","_sampling$mipmap","filter","FilterMode","Linear","mipmap","MipmapMode","None","declareBlend","blend","BlendMode","length","composer","MakeBlend","bind","composeDeclarations","isPushShader","command","type","CommandType","PushShader","exports","isShader","shaderType","pushShader","NodeType","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","Blend","Error"],"sources":["Shaders.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n getRect,\n processColor,\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 = (\n ctx: DrawingContext,\n props: ShaderProps,\n children: number\n) => {\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, children),\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(processColor(ctx.Skia, 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 children: number;\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, command.children);\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":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AASA,IAAAC,MAAA,GAAAD,OAAA;AAcA,IAAAE,OAAA,GAAAF,OAAA;AAQA,IAAAG,MAAA,GAAAH,OAAA;AAEA,IAAAI,KAAA,GAAAJ,OAAA;AAGA,MAAMK,aAAa,GAAGA,CACpBC,GAAmB,EACnBC,KAAkB,EAClBC,QAAgB,KACb;EACH,SAAS;;EACT,MAAM;IAAEC,MAAM;IAAEC,QAAQ;IAAE,GAAGC;EAAU,CAAC,GAAGJ,KAAK;EAChD,MAAMK,EAAE,GAAGN,GAAG,CAACO,IAAI,CAACC,MAAM,CAAC,CAAC;EAC5B,IAAAC,4BAAqB,EAACH,EAAE,EAAED,SAAS,CAAC;EACpC,MAAMK,MAAM,GAAGP,MAAM,CAACQ,sBAAsB,CAC1C,IAAAC,uBAAe,EAACT,MAAM,EAAEC,QAAQ,CAAC,EACjCJ,GAAG,CAACa,OAAO,CAACC,MAAM,CAAC,CAAC,EAAEZ,QAAQ,CAAC,EAC/BI,EACF,CAAC;EACDN,GAAG,CAACa,OAAO,CAACE,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMM,kBAAkB,GAAGA,CAAChB,GAAmB,EAAEC,KAAiB,KAAK;EACrE,SAAS;;EACT,MAAM;IAAEgB;EAAM,CAAC,GAAGhB,KAAK;EACvB,MAAMS,MAAM,GAAGV,GAAG,CAACO,IAAI,CAACW,MAAM,CAACC,SAAS,CAAC,IAAAC,mBAAY,EAACpB,GAAG,CAACO,IAAI,EAAEU,KAAK,CAAC,CAAC;EACvEjB,GAAG,CAACa,OAAO,CAACE,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMW,yBAAyB,GAAGA,CAChCrB,GAAmB,EACnBC,KAAwB,KACrB;EACH,SAAS;;EACT,MAAM;IAAEqB,KAAK;IAAEC,KAAK;IAAEC,OAAO;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAG1B,KAAK;EACpE,MAAMS,MAAM,GAAGV,GAAG,CAACO,IAAI,CAACW,MAAM,CAACU,gBAAgB,CAC7CN,KAAK,EACLC,KAAK,EACLC,OAAO,EACPC,IAAI,EACJC,SAAS,EACTC,UACF,CAAC;EACD3B,GAAG,CAACa,OAAO,CAACE,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMmB,oCAAoC,GAAGA,CAC3C7B,GAAmB,EACnBC,KAAmC,KAChC;EACH,SAAS;;EACT,MAAM;IAAE6B,MAAM;IAAEC,IAAI;IAAEC,KAAK;IAAEC;EAAI,CAAC,GAAGhC,KAAK;EAC1C,MAAM;IAAEiC,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAG,IAAAC,2BAAoB,EAC1EvC,GAAG,CAACO,IAAI,EACRN,KACF,CAAC;EACD,MAAMS,MAAM,GAAGV,GAAG,CAACO,IAAI,CAACW,MAAM,CAACsB,2BAA2B,CACxDR,KAAK,EACLF,MAAM,EACNG,GAAG,EACHF,IAAI,EACJG,MAAM,EACNC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,KACF,CAAC;EACDtC,GAAG,CAACa,OAAO,CAACE,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAM+B,2BAA2B,GAAGA,CAClCzC,GAAmB,EACnBC,KAA0B,KACvB;EACH,SAAS;;EACT,MAAM;IAAEyC,CAAC;IAAEC;EAAE,CAAC,GAAG1C,KAAK;EACtB,MAAM;IAAEiC,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAG,IAAAC,2BAAoB,EAC1EvC,GAAG,CAACO,IAAI,EACRN,KACF,CAAC;EACD,MAAMS,MAAM,GAAGV,GAAG,CAACO,IAAI,CAACW,MAAM,CAAC0B,kBAAkB,CAC/CF,CAAC,EACDC,CAAC,EACDT,MAAM,EACNC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,KACF,CAAC;EACDtC,GAAG,CAACa,OAAO,CAACE,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMmC,0BAA0B,GAAGA,CACjC7C,GAAmB,EACnBC,KAAyB,KACtB;EACH,SAAS;;EACT,MAAM;IAAEyC,CAAC;IAAEV,KAAK;IAAEC;EAAI,CAAC,GAAGhC,KAAK;EAC/B,MAAM;IAAEiC,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAG,IAAAC,2BAAoB,EAC1EvC,GAAG,CAACO,IAAI,EACRN,KACF,CAAC;EACD,MAAMS,MAAM,GAAGV,GAAG,CAACO,IAAI,CAACW,MAAM,CAAC4B,iBAAiB,CAC9CJ,CAAC,CAACK,CAAC,EACHL,CAAC,CAACM,CAAC,EACHd,MAAM,EACNC,SAAS,EACTC,IAAI,EACJC,WAAW,EACXC,KAAK,EACLN,KAAK,EACLC,GACF,CAAC;EACDjC,GAAG,CAACa,OAAO,CAACE,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMuC,2BAA2B,GAAGA,CAClCjD,GAAmB,EACnBC,KAA0B,KACvB;EACH,SAAS;;EACT,MAAM;IAAE+B,KAAK;IAAEC;EAAI,CAAC,GAAGhC,KAAK;EAC5B,MAAM;IAAEiC,MAAM;IAAEC,SAAS;IAAEC,IAAI;IAAEC,WAAW;IAAEC;EAAM,CAAC,GAAG,IAAAC,2BAAoB,EAC1EvC,GAAG,CAACO,IAAI,EACRN,KACF,CAAC;EACD,MAAMS,MAAM,GAAGV,GAAG,CAACO,IAAI,CAACW,MAAM,CAACgC,kBAAkB,CAC/ClB,KAAK,EACLC,GAAG,EACHC,MAAM,EACNC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,IAAI,EACjBC,IAAI,EACJC,WAAW,EACXC,KACF,CAAC;EACDtC,GAAG,CAACa,OAAO,CAACE,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMyC,uBAAuB,GAAGA,CAC9BnD,GAAmB,EACnBC,KAAsB,KACnB;EACH,SAAS;;EACT,MAAM;IAAEqB,KAAK;IAAEC,KAAK;IAAEC,OAAO;IAAEC,IAAI;IAAEC,SAAS;IAAEC;EAAW,CAAC,GAAG1B,KAAK;EACpE,MAAMS,MAAM,GAAGV,GAAG,CAACO,IAAI,CAACW,MAAM,CAACkC,cAAc,CAC3C9B,KAAK,EACLC,KAAK,EACLC,OAAO,EACPC,IAAI,EACJC,SAAS,EACTC,UACF,CAAC;EACD3B,GAAG,CAACa,OAAO,CAACE,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAM2C,kBAAkB,GAAGA,CAACrD,GAAmB,EAAEC,KAAuB,KAAK;EAC3E,SAAS;;EACT,MAAM;IAAEqD,GAAG;IAAEC,KAAK;IAAEC,EAAE;IAAEC,EAAE;IAAEC,QAAQ;IAAE,GAAGC;EAAiB,CAAC,GAAG1D,KAAK;EACnE,IAAI,CAACsD,KAAK,EAAE;IACV;EACF;EAEA,MAAMK,GAAG,GAAG,IAAAC,cAAO,EAAC7D,GAAG,CAACO,IAAI,EAAEoD,gBAAgB,CAAC;EAC/C,MAAMrD,EAAE,GAAGN,GAAG,CAACO,IAAI,CAACC,MAAM,CAAC,CAAC;EAC5B,IAAIoD,GAAG,EAAE;IACP,MAAME,KAAK,GAAG,IAAAC,eAAQ,EACpBT,GAAG,EACH;MAAEP,CAAC,EAAE,CAAC;MAAEC,CAAC,EAAE,CAAC;MAAEgB,KAAK,EAAET,KAAK,CAACS,KAAK,CAAC,CAAC;MAAEC,MAAM,EAAEV,KAAK,CAACU,MAAM,CAAC;IAAE,CAAC,EAC5DL,GACF,CAAC;IACD,MAAM,CAACb,CAAC,EAAEC,CAAC,EAAEkB,EAAE,EAAEC,EAAE,CAAC,GAAG,IAAAC,gBAAS,EAACN,KAAK,CAACO,GAAG,EAAEP,KAAK,CAACQ,GAAG,CAAC;IACtDhE,EAAE,CAACiE,SAAS,CAACxB,CAAC,CAACyB,UAAU,EAAExB,CAAC,CAACyB,UAAU,CAAC;IACxCnE,EAAE,CAACoE,KAAK,CAACR,EAAE,CAACS,MAAM,EAAER,EAAE,CAACS,MAAM,CAAC;EAChC;EACA,MAAMC,EAAE,GAAG7E,GAAG,CAACO,IAAI,CAACC,MAAM,CAAC,CAAC;EAC5BqE,EAAE,CAACC,MAAM,CAACxE,EAAE,CAAC;EACb,IAAAG,4BAAqB,EAACoE,EAAE,EAAElB,gBAAgB,CAAC;EAC3C,IAAIjD,MAAgB;EACpB,IAAIgD,QAAQ,IAAI,IAAAqB,uBAAe,EAACrB,QAAQ,CAAC,EAAE;IACzChD,MAAM,GAAG6C,KAAK,CAACyB,eAAe,CAC5BC,gBAAQ,CAAC,IAAAC,cAAO,EAAC1B,EAAE,CAAC,CAAC,EACrByB,gBAAQ,CAAC,IAAAC,cAAO,EAACzB,EAAE,CAAC,CAAC,EACrBC,QAAQ,CAACyB,CAAC,EACVzB,QAAQ,CAAC0B,CAAC,EACVP,EACF,CAAC;EACH,CAAC,MAAM;IAAA,IAAAQ,gBAAA,EAAAC,gBAAA;IACL5E,MAAM,GAAG6C,KAAK,CAACyB,eAAe,CAC5BC,gBAAQ,CAAC,IAAAC,cAAO,EAAC1B,EAAE,CAAC,CAAC,EACrByB,gBAAQ,CAAC,IAAAC,cAAO,EAACzB,EAAE,CAAC,CAAC,GAAA4B,gBAAA,GACrB3B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAE6B,MAAM,cAAAF,gBAAA,cAAAA,gBAAA,GAAIG,kBAAU,CAACC,MAAM,GAAAH,gBAAA,GACrC5B,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEgC,MAAM,cAAAJ,gBAAA,cAAAA,gBAAA,GAAIK,kBAAU,CAACC,IAAI,EACnCf,EACF,CAAC;EACH;EACA7E,GAAG,CAACa,OAAO,CAACE,IAAI,CAACL,MAAM,CAAC;AAC1B,CAAC;AAED,MAAMmF,YAAY,GAAGA,CAAC7F,GAAmB,EAAEC,KAAiB,KAAK;EAC/D,SAAS;;EACT,MAAM6F,KAAK,GAAGC,iBAAS,CAAC,IAAAb,cAAO,EAACjF,KAAK,CAACmC,IAA0B,CAAC,CAAC;EAClE,MAAMvB,OAAO,GAAGb,GAAG,CAACa,OAAO,CAACC,MAAM,CAAC,CAAC,EAAEd,GAAG,CAACa,OAAO,CAACmF,MAAM,CAAC;EACzD,IAAInF,OAAO,CAACmF,MAAM,GAAG,CAAC,EAAE;IACtB,MAAMC,QAAQ,GAAGjG,GAAG,CAACO,IAAI,CAACW,MAAM,CAACgF,SAAS,CAACC,IAAI,CAACnG,GAAG,CAACO,IAAI,CAACW,MAAM,EAAE4E,KAAK,CAAC;IACvE9F,GAAG,CAACa,OAAO,CAACE,IAAI,CAAC,IAAAqF,0BAAmB,EAACvF,OAAO,EAAEoF,QAAQ,CAAC,CAAC;EAC1D;AACF,CAAC;AAEM,MAAMI,YAAY,GACvBC,OAAgB,IAC+B;EAC/C,SAAS;;EACT,OAAOA,OAAO,CAACC,IAAI,KAAKC,iBAAW,CAACC,UAAU;AAChD,CAAC;AAACC,OAAA,CAAAL,YAAA,GAAAA,YAAA;AAsBF,MAAMM,QAAQ,GAAGA,CACfL,OAAwC,EACxCC,IAAO,KACsB;EAC7B,SAAS;;EACT,OAAOD,OAAO,CAACM,UAAU,KAAKL,IAAI;AACpC,CAAC;AAEM,MAAMM,UAAU,GAAGA,CACxB7G,GAAmB,EACnBsG,OAAwC,KACrC;EACH,SAAS;;EACT,IAAIK,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAAC5F,MAAM,CAAC,EAAE;IACtCnB,aAAa,CAACC,GAAG,EAAEsG,OAAO,CAACrG,KAAK,EAAEqG,OAAO,CAACpG,QAAQ,CAAC;EACrD,CAAC,MAAM,IAAIyG,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAACC,WAAW,CAAC,EAAE;IAClD1D,kBAAkB,CAACrD,GAAG,EAAEsG,OAAO,CAACrG,KAAK,CAAC;EACxC,CAAC,MAAM,IAAI0G,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAACE,WAAW,CAAC,EAAE;IAClDhG,kBAAkB,CAAChB,GAAG,EAAEsG,OAAO,CAACrG,KAAK,CAAC;EACxC,CAAC,MAAM,IAAI0G,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAACG,UAAU,CAAC,EAAE;IACjD9D,uBAAuB,CAACnD,GAAG,EAAEsG,OAAO,CAACrG,KAAK,CAAC;EAC7C,CAAC,MAAM,IAAI0G,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAACI,YAAY,CAAC,EAAE;IACnD7F,yBAAyB,CAACrB,GAAG,EAAEsG,OAAO,CAACrG,KAAK,CAAC;EAC/C,CAAC,MAAM,IAAI0G,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAACK,cAAc,CAAC,EAAE;IACrDlE,2BAA2B,CAACjD,GAAG,EAAEsG,OAAO,CAACrG,KAAK,CAAC;EACjD,CAAC,MAAM,IAAI0G,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAACM,cAAc,CAAC,EAAE;IACrD3E,2BAA2B,CAACzC,GAAG,EAAEsG,OAAO,CAACrG,KAAK,CAAC;EACjD,CAAC,MAAM,IAAI0G,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAACO,aAAa,CAAC,EAAE;IACpDxE,0BAA0B,CAAC7C,GAAG,EAAEsG,OAAO,CAACrG,KAAK,CAAC;EAChD,CAAC,MAAM,IAAI0G,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAACQ,uBAAuB,CAAC,EAAE;IAC9DzF,oCAAoC,CAAC7B,GAAG,EAAEsG,OAAO,CAACrG,KAAK,CAAC;EAC1D,CAAC,MAAM,IAAI0G,QAAQ,CAACL,OAAO,EAAEQ,eAAQ,CAACS,KAAK,CAAC,EAAE;IAC5C1B,YAAY,CAAC7F,GAAG,EAAEsG,OAAO,CAACrG,KAAK,CAAC;EAClC,CAAC,MAAM;IACL,MAAM,IAAIuH,KAAK,CAAC,wBAAwBlB,OAAO,CAACM,UAAU,EAAE,CAAC;EAC/D;AACF,CAAC;AAACF,OAAA,CAAAG,UAAA,GAAAA,UAAA","ignoreList":[]}
1
+ {"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareShader","ctx","props","children","source","uniforms","transform","m3","Skia","Matrix","processTransformProps","shader","makeShaderWithChildren","processUniforms","shaders","splice","push","declareColorShader","color","Shader","MakeColor","processColor","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","processGradientProps","MakeTwoPointConicalGradient","declareRadialGradientShader","c","r","MakeRadialGradient","declareSweepGradientShader","MakeSweepGradient","x","y","declareLinearGradientShader","MakeLinearGradient","declareTurbulenceShader","MakeTurbulence","declareImageShader","fit","image","tx","ty","sampling","imageShaderProps","rct","getRect","rects","fitRects","width","height","sx","sy","rect2rect","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","isCubicSampling","makeShaderCubic","TileMode","enumKey","B","C","_sampling$filter","_sampling$mipmap","filter","FilterMode","Linear","mipmap","MipmapMode","None","declareBlend","blend","BlendMode","length","composer","MakeBlend","bind","composeDeclarations","isPushShader","command","type","CommandType","PushShader","exports","isShader","shaderType","pushShader","NodeType","ImageShader","ColorShader","Turbulence","FractalNoise","LinearGradient","RadialGradient","SweepGradient","TwoPointConicalGradient","Blend","Error"],"sources":["Shaders.ts"],"sourcesContent":["import {\n enumKey,\n fitRects,\n getRect,\n processColor,\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 = (\n ctx: DrawingContext,\n props: ShaderProps,\n children: number\n) => {\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, children),\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(processColor(ctx.Skia, 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<\n T extends keyof Props,\n> extends Command<CommandType.PushShader> {\n shaderType: T;\n props: Props[T];\n children: number;\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, command.children);\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,9 +1,11 @@
1
1
  import type { ViewProps } from "react-native";
2
+ import type { WithDefault } from "react-native/Libraries/Types/CodegenTypes";
2
3
  export interface NativeProps extends ViewProps {
3
4
  debug?: boolean;
4
5
  opaque?: boolean;
5
6
  colorSpace?: string;
6
7
  androidWarmup?: boolean;
8
+ pointerEvents?: WithDefault<"auto" | "none" | "box-none" | "box-only", "auto">;
7
9
  }
8
10
  declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType<NativeProps>;
9
11
  export default _default;
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
8
8
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ // eslint-disable-next-line @typescript-eslint/ban-ts-comment
10
+ // @ts-ignore - pointerEvents needs to be redeclared for codegen to generate native bindings
9
11
  // eslint-disable-next-line import/no-default-export
10
12
  var _default = exports.default = (0, _codegenNativeComponent.default)("SkiaPictureView");
11
13
  //# sourceMappingURL=SkiaPictureViewNativeComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sources":["SkiaPictureViewNativeComponent.ts"],"sourcesContent":["import codegenNativeComponent from \"react-native/Libraries/Utilities/codegenNativeComponent\";\nimport type { ViewProps } from \"react-native\";\n\nexport interface NativeProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n colorSpace?: string;\n androidWarmup?: boolean;\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default codegenNativeComponent<NativeProps>(\"SkiaPictureView\");\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAU7F;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GACe,IAAAG,+BAAsB,EAAc,iBAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sources":["SkiaPictureViewNativeComponent.ts"],"sourcesContent":["import codegenNativeComponent from \"react-native/Libraries/Utilities/codegenNativeComponent\";\nimport type { ViewProps } from \"react-native\";\nimport type { WithDefault } from \"react-native/Libraries/Types/CodegenTypes\";\n\n// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-ignore - pointerEvents needs to be redeclared for codegen to generate native bindings\nexport interface NativeProps extends ViewProps {\n debug?: boolean;\n opaque?: boolean;\n colorSpace?: string;\n androidWarmup?: boolean;\n pointerEvents?: WithDefault<\n \"auto\" | \"none\" | \"box-none\" | \"box-only\",\n \"auto\"\n >;\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default codegenNativeComponent<NativeProps>(\"SkiaPictureView\");\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAI7F;AACA;AAYA;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GACe,IAAAG,+BAAsB,EAAc,iBAAiB,CAAC","ignoreList":[]}
@@ -8,8 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
8
8
  var _JsiSkSurface = require("../skia/web/JsiSkSurface");
9
9
  var _Platform = require("../Platform");
10
10
  var _SkiaViewNativeId = require("./SkiaViewNativeId");
11
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
12
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
12
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
14
13
  function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
15
14
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
@@ -314,8 +313,9 @@ const SkiaPictureView = props => {
314
313
  }), /*#__PURE__*/_react.default.createElement("canvas", {
315
314
  ref: canvasRef,
316
315
  style: {
317
- display: "flex",
318
- flex: 1
316
+ display: "block",
317
+ width: "100%",
318
+ height: "100%"
319
319
  }
320
320
  }));
321
321
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_JsiSkSurface","_Platform","_SkiaViewNativeId","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","dp2Pixel","pd","rect","undefined","x","y","width","height","WebGLRenderer","constructor","canvas","onResize","makeImageSnapshot","picture","surface","getCanvas","clear","CanvasKit","TRANSPARENT","draw","ref","flush","clientWidth","clientHeight","MakeWebGLCanvasSurface","ctx","getContext","drawingBufferColorSpace","Error","JsiSkSurface","Float32Array","of","save","scale","drawPicture","restore","dispose","_this$canvas","getExtension","loseContext","delete","StaticWebGLRenderer","cachedImage","renderPictureToSurface","tempCanvas","OffscreenCanvas","webglSurface","skiaCanvas","error","cleanupWebGLContext","renderResult","ctx2d","drawImage","console","_this$cachedImage","Platform","PixelRatio","SkiaPictureView","props","canvasRef","useRef","renderer","redrawRequestsRef","requestIdRef","pictureRef","onLayout","redraw","useCallback","current","getSize","_canvasRef$current","_canvasRef$current2","setPicture","newPicture","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","pageX","window","scrollX","pageY","scrollY","measureInWindow","tick","requestAnimationFrame","onLayoutEvent","evt","__destroyWebGLContextAfterRender","useImperativeHandle","useEffect","_props$nativeID","nativeID","SkiaViewNativeId","global","SkiaViewApi","registerView","cancelAnimationFrame","debug","_ref","viewProps","createElement","View","style","display","flex","exports"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkPicture, SkImage } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\nimport type { ISkiaViewApiWeb } from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst dp2Pixel = (pd: number, rect?: SkRect) => {\n if (!rect) {\n return undefined;\n }\n return {\n x: rect.x * pd,\n y: rect.y * pd,\n width: rect.width * pd,\n height: rect.height * pd,\n };\n};\n\ninterface Renderer {\n onResize(): void;\n draw(picture: SkPicture): void;\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null;\n dispose(): void;\n}\n\nclass WebGLRenderer implements Renderer {\n private surface: JsiSkSurface | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {\n this.onResize();\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.surface) {\n return null;\n }\n const canvas = this.surface.getCanvas();\n canvas!.clear(CanvasKit.TRANSPARENT);\n this.draw(picture);\n this.surface.ref.flush();\n return this.surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n }\n\n onResize() {\n const { canvas, pd } = this;\n canvas.width = canvas.clientWidth * pd;\n canvas.height = canvas.clientHeight * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n const ctx = canvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this.surface = new JsiSkSurface(CanvasKit, surface);\n }\n\n draw(picture: SkPicture) {\n if (this.surface) {\n const canvas = this.surface.getCanvas();\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n canvas.restore();\n this.surface.ref.flush();\n }\n }\n\n dispose(): void {\n if (this.surface) {\n this.canvas\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n this.surface.ref.delete();\n this.surface = null;\n }\n }\n}\n\nclass StaticWebGLRenderer implements Renderer {\n private cachedImage: SkImage | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {}\n\n onResize(): void {\n this.cachedImage = null;\n }\n\n private renderPictureToSurface(\n picture: SkPicture\n ): { surface: JsiSkSurface; tempCanvas: OffscreenCanvas } | null {\n const tempCanvas = new OffscreenCanvas(\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n let surface: JsiSkSurface | null = null;\n\n try {\n const webglSurface = CanvasKit.MakeWebGLCanvasSurface(tempCanvas);\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n\n if (!webglSurface) {\n throw new Error(\"Could not create WebGL surface\");\n }\n\n surface = new JsiSkSurface(CanvasKit, webglSurface);\n\n const skiaCanvas = surface.getCanvas();\n skiaCanvas.clear(Float32Array.of(0, 0, 0, 0));\n skiaCanvas.save();\n skiaCanvas.scale(this.pd, this.pd);\n skiaCanvas.drawPicture(picture);\n skiaCanvas.restore();\n surface.ref.flush();\n\n return { surface, tempCanvas };\n } catch (error) {\n if (surface) {\n surface.ref.delete();\n }\n this.cleanupWebGLContext(tempCanvas);\n return null;\n }\n }\n\n private cleanupWebGLContext(tempCanvas: OffscreenCanvas): void {\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n const loseContext = ctx.getExtension(\"WEBGL_lose_context\");\n if (loseContext) {\n loseContext.loseContext();\n }\n }\n }\n\n draw(picture: SkPicture): void {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return;\n }\n const { tempCanvas } = renderResult;\n const ctx2d = this.canvas.getContext(\"2d\");\n if (!ctx2d) {\n throw new Error(\"Could not get 2D context\");\n }\n\n // Set canvas dimensions to match pixel density\n this.canvas.width = this.canvas.clientWidth * this.pd;\n this.canvas.height = this.canvas.clientHeight * this.pd;\n\n // Draw the tempCanvas scaled down to the display size\n ctx2d.drawImage(\n tempCanvas,\n 0,\n 0,\n tempCanvas.width,\n tempCanvas.height,\n 0,\n 0,\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n this.cleanupWebGLContext(tempCanvas);\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.cachedImage) {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return null;\n }\n\n const { surface, tempCanvas } = renderResult;\n\n try {\n this.cachedImage = surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n } catch (error) {\n console.error(\"Error creating image snapshot:\", error);\n } finally {\n surface.ref.delete();\n this.cleanupWebGLContext(tempCanvas);\n }\n }\n\n return this.cachedImage;\n }\n\n dispose(): void {\n this.cachedImage?.dispose();\n this.cachedImage = null;\n }\n}\n\nconst pd = Platform.PixelRatio;\n\nexport interface SkiaPictureViewHandle {\n setPicture(picture: SkPicture): void;\n getSize(): { width: number; height: number };\n redraw(): void;\n makeImageSnapshot(rect?: SkRect): SkImage | null;\n measure(\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ): void;\n measureInWindow(\n callback: (x: number, y: number, width: number, height: number) => void\n ): void;\n}\n\nexport interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {\n ref?: React.Ref<SkiaPictureViewHandle>;\n}\n\nexport const SkiaPictureView = (props: SkiaPictureViewProps) => {\n const { ref } = props;\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const renderer = useRef<Renderer | null>(null);\n const redrawRequestsRef = useRef(0);\n const requestIdRef = useRef(0);\n const pictureRef = useRef<SkPicture | null>(null);\n\n const { picture, onLayout } = props;\n\n const redraw = useCallback(() => {\n redrawRequestsRef.current++;\n }, []);\n\n const getSize = useCallback(() => {\n return {\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n };\n }, []);\n\n const setPicture = useCallback(\n (newPicture: SkPicture) => {\n pictureRef.current = newPicture;\n redraw();\n },\n [redraw]\n );\n\n const makeImageSnapshot = useCallback((rect?: SkRect) => {\n if (renderer.current && pictureRef.current) {\n return renderer.current.makeImageSnapshot(pictureRef.current, rect);\n }\n return null;\n }, []);\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n\n // x, y are relative to the parent\n const x = rect.left - parentRect.left;\n const y = rect.top - parentRect.top;\n\n // pageX, pageY are absolute screen coordinates\n const pageX = rect.left + window.scrollX;\n const pageY = rect.top + window.scrollY;\n\n callback(x, y, rect.width, rect.height, pageX, pageY);\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n\n // x, y are the absolute coordinates in the window\n const x = rect.left;\n const y = rect.top;\n\n callback(x, y, rect.width, rect.height);\n }\n },\n []\n );\n\n const tick = useCallback(() => {\n if (redrawRequestsRef.current > 0) {\n redrawRequestsRef.current = 0;\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n requestIdRef.current = requestAnimationFrame(tick);\n }, []);\n\n const onLayoutEvent = useCallback(\n (evt: LayoutChangeEvent) => {\n const canvas = canvasRef.current;\n if (canvas) {\n renderer.current =\n props.__destroyWebGLContextAfterRender === true\n ? new StaticWebGLRenderer(canvas, pd)\n : new WebGLRenderer(canvas, pd);\n if (pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n if (onLayout) {\n onLayout(evt);\n }\n },\n [onLayout, props.__destroyWebGLContextAfterRender]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n get canvasRef() {\n return () => canvasRef.current;\n },\n }),\n [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]\n );\n\n useEffect(() => {\n const nativeID = props.nativeID ?? `${SkiaViewNativeId.current++}`;\n (global.SkiaViewApi as ISkiaViewApiWeb).registerView(nativeID, {\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaPictureViewHandle);\n }, [\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n props.nativeID,\n ]);\n\n useEffect(() => {\n if (props.picture) {\n setPicture(props.picture);\n }\n }, [setPicture, props.picture]);\n\n useEffect(() => {\n tick();\n return () => {\n cancelAnimationFrame(requestIdRef.current);\n if (renderer.current) {\n renderer.current.dispose();\n renderer.current = null;\n }\n };\n }, [tick]);\n\n useEffect(() => {\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }, [picture, redraw]);\n\n const { debug = false, ref: _ref, ...viewProps } = props;\n return (\n <Platform.View {...viewProps} onLayout={onLayoutEvent}>\n <canvas ref={canvasRef} style={{ display: \"flex\", flex: 1 }} />\n </Platform.View>\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_JsiSkSurface","_Platform","_SkiaViewNativeId","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_extends","assign","bind","arguments","length","apply","_defineProperty","_toPropertyKey","value","enumerable","configurable","writable","_toPrimitive","Symbol","toPrimitive","TypeError","String","Number","dp2Pixel","pd","rect","undefined","x","y","width","height","WebGLRenderer","constructor","canvas","onResize","makeImageSnapshot","picture","surface","getCanvas","clear","CanvasKit","TRANSPARENT","draw","ref","flush","clientWidth","clientHeight","MakeWebGLCanvasSurface","ctx","getContext","drawingBufferColorSpace","Error","JsiSkSurface","Float32Array","of","save","scale","drawPicture","restore","dispose","_this$canvas","getExtension","loseContext","delete","StaticWebGLRenderer","cachedImage","renderPictureToSurface","tempCanvas","OffscreenCanvas","webglSurface","skiaCanvas","error","cleanupWebGLContext","renderResult","ctx2d","drawImage","console","_this$cachedImage","Platform","PixelRatio","SkiaPictureView","props","canvasRef","useRef","renderer","redrawRequestsRef","requestIdRef","pictureRef","onLayout","redraw","useCallback","current","getSize","_canvasRef$current","_canvasRef$current2","setPicture","newPicture","measure","callback","getBoundingClientRect","parentElement","offsetParent","parentRect","left","top","pageX","window","scrollX","pageY","scrollY","measureInWindow","tick","requestAnimationFrame","onLayoutEvent","evt","__destroyWebGLContextAfterRender","useImperativeHandle","useEffect","_props$nativeID","nativeID","SkiaViewNativeId","global","SkiaViewApi","registerView","cancelAnimationFrame","debug","_ref","viewProps","createElement","View","style","display","exports"],"sources":["SkiaPictureView.web.tsx"],"sourcesContent":["/* global HTMLCanvasElement */\nimport React, {\n useRef,\n useEffect,\n useCallback,\n useImperativeHandle,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport type { SkRect, SkPicture, SkImage } from \"../skia/types\";\nimport { JsiSkSurface } from \"../skia/web/JsiSkSurface\";\nimport { Platform } from \"../Platform\";\nimport type { ISkiaViewApiWeb } from \"../specs/NativeSkiaModule.web\";\n\nimport type { SkiaPictureViewNativeProps } from \"./types\";\nimport { SkiaViewNativeId } from \"./SkiaViewNativeId\";\n\nconst dp2Pixel = (pd: number, rect?: SkRect) => {\n if (!rect) {\n return undefined;\n }\n return {\n x: rect.x * pd,\n y: rect.y * pd,\n width: rect.width * pd,\n height: rect.height * pd,\n };\n};\n\ninterface Renderer {\n onResize(): void;\n draw(picture: SkPicture): void;\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null;\n dispose(): void;\n}\n\nclass WebGLRenderer implements Renderer {\n private surface: JsiSkSurface | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {\n this.onResize();\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.surface) {\n return null;\n }\n const canvas = this.surface.getCanvas();\n canvas!.clear(CanvasKit.TRANSPARENT);\n this.draw(picture);\n this.surface.ref.flush();\n return this.surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n }\n\n onResize() {\n const { canvas, pd } = this;\n canvas.width = canvas.clientWidth * pd;\n canvas.height = canvas.clientHeight * pd;\n const surface = CanvasKit.MakeWebGLCanvasSurface(canvas);\n const ctx = canvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n if (!surface) {\n throw new Error(\"Could not create surface\");\n }\n this.surface = new JsiSkSurface(CanvasKit, surface);\n }\n\n draw(picture: SkPicture) {\n if (this.surface) {\n const canvas = this.surface.getCanvas();\n canvas.clear(Float32Array.of(0, 0, 0, 0));\n canvas.save();\n canvas.scale(pd, pd);\n canvas.drawPicture(picture);\n canvas.restore();\n this.surface.ref.flush();\n }\n }\n\n dispose(): void {\n if (this.surface) {\n this.canvas\n ?.getContext(\"webgl2\")\n ?.getExtension(\"WEBGL_lose_context\")\n ?.loseContext();\n this.surface.ref.delete();\n this.surface = null;\n }\n }\n}\n\nclass StaticWebGLRenderer implements Renderer {\n private cachedImage: SkImage | null = null;\n\n constructor(\n private canvas: HTMLCanvasElement,\n private pd: number\n ) {}\n\n onResize(): void {\n this.cachedImage = null;\n }\n\n private renderPictureToSurface(\n picture: SkPicture\n ): { surface: JsiSkSurface; tempCanvas: OffscreenCanvas } | null {\n const tempCanvas = new OffscreenCanvas(\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n let surface: JsiSkSurface | null = null;\n\n try {\n const webglSurface = CanvasKit.MakeWebGLCanvasSurface(tempCanvas);\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n ctx.drawingBufferColorSpace = \"display-p3\";\n }\n\n if (!webglSurface) {\n throw new Error(\"Could not create WebGL surface\");\n }\n\n surface = new JsiSkSurface(CanvasKit, webglSurface);\n\n const skiaCanvas = surface.getCanvas();\n skiaCanvas.clear(Float32Array.of(0, 0, 0, 0));\n skiaCanvas.save();\n skiaCanvas.scale(this.pd, this.pd);\n skiaCanvas.drawPicture(picture);\n skiaCanvas.restore();\n surface.ref.flush();\n\n return { surface, tempCanvas };\n } catch (error) {\n if (surface) {\n surface.ref.delete();\n }\n this.cleanupWebGLContext(tempCanvas);\n return null;\n }\n }\n\n private cleanupWebGLContext(tempCanvas: OffscreenCanvas): void {\n const ctx = tempCanvas.getContext(\"webgl2\");\n if (ctx) {\n const loseContext = ctx.getExtension(\"WEBGL_lose_context\");\n if (loseContext) {\n loseContext.loseContext();\n }\n }\n }\n\n draw(picture: SkPicture): void {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return;\n }\n const { tempCanvas } = renderResult;\n const ctx2d = this.canvas.getContext(\"2d\");\n if (!ctx2d) {\n throw new Error(\"Could not get 2D context\");\n }\n\n // Set canvas dimensions to match pixel density\n this.canvas.width = this.canvas.clientWidth * this.pd;\n this.canvas.height = this.canvas.clientHeight * this.pd;\n\n // Draw the tempCanvas scaled down to the display size\n ctx2d.drawImage(\n tempCanvas,\n 0,\n 0,\n tempCanvas.width,\n tempCanvas.height,\n 0,\n 0,\n this.canvas.clientWidth * this.pd,\n this.canvas.clientHeight * this.pd\n );\n\n this.cleanupWebGLContext(tempCanvas);\n }\n\n makeImageSnapshot(picture: SkPicture, rect?: SkRect): SkImage | null {\n if (!this.cachedImage) {\n const renderResult = this.renderPictureToSurface(picture);\n if (!renderResult) {\n return null;\n }\n\n const { surface, tempCanvas } = renderResult;\n\n try {\n this.cachedImage = surface.makeImageSnapshot(dp2Pixel(this.pd, rect));\n } catch (error) {\n console.error(\"Error creating image snapshot:\", error);\n } finally {\n surface.ref.delete();\n this.cleanupWebGLContext(tempCanvas);\n }\n }\n\n return this.cachedImage;\n }\n\n dispose(): void {\n this.cachedImage?.dispose();\n this.cachedImage = null;\n }\n}\n\nconst pd = Platform.PixelRatio;\n\nexport interface SkiaPictureViewHandle {\n setPicture(picture: SkPicture): void;\n getSize(): { width: number; height: number };\n redraw(): void;\n makeImageSnapshot(rect?: SkRect): SkImage | null;\n measure(\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ): void;\n measureInWindow(\n callback: (x: number, y: number, width: number, height: number) => void\n ): void;\n}\n\nexport interface SkiaPictureViewProps extends SkiaPictureViewNativeProps {\n ref?: React.Ref<SkiaPictureViewHandle>;\n}\n\nexport const SkiaPictureView = (props: SkiaPictureViewProps) => {\n const { ref } = props;\n const canvasRef = useRef<HTMLCanvasElement | null>(null);\n const renderer = useRef<Renderer | null>(null);\n const redrawRequestsRef = useRef(0);\n const requestIdRef = useRef(0);\n const pictureRef = useRef<SkPicture | null>(null);\n\n const { picture, onLayout } = props;\n\n const redraw = useCallback(() => {\n redrawRequestsRef.current++;\n }, []);\n\n const getSize = useCallback(() => {\n return {\n width: canvasRef.current?.clientWidth || 0,\n height: canvasRef.current?.clientHeight || 0,\n };\n }, []);\n\n const setPicture = useCallback(\n (newPicture: SkPicture) => {\n pictureRef.current = newPicture;\n redraw();\n },\n [redraw]\n );\n\n const makeImageSnapshot = useCallback((rect?: SkRect) => {\n if (renderer.current && pictureRef.current) {\n return renderer.current.makeImageSnapshot(pictureRef.current, rect);\n }\n return null;\n }, []);\n\n const measure = useCallback(\n (\n callback: (\n x: number,\n y: number,\n width: number,\n height: number,\n pageX: number,\n pageY: number\n ) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n const parentElement = canvasRef.current.offsetParent as HTMLElement;\n const parentRect = parentElement?.getBoundingClientRect() || {\n left: 0,\n top: 0,\n };\n\n // x, y are relative to the parent\n const x = rect.left - parentRect.left;\n const y = rect.top - parentRect.top;\n\n // pageX, pageY are absolute screen coordinates\n const pageX = rect.left + window.scrollX;\n const pageY = rect.top + window.scrollY;\n\n callback(x, y, rect.width, rect.height, pageX, pageY);\n }\n },\n []\n );\n\n const measureInWindow = useCallback(\n (\n callback: (x: number, y: number, width: number, height: number) => void\n ) => {\n if (canvasRef.current) {\n const rect = canvasRef.current.getBoundingClientRect();\n\n // x, y are the absolute coordinates in the window\n const x = rect.left;\n const y = rect.top;\n\n callback(x, y, rect.width, rect.height);\n }\n },\n []\n );\n\n const tick = useCallback(() => {\n if (redrawRequestsRef.current > 0) {\n redrawRequestsRef.current = 0;\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n requestIdRef.current = requestAnimationFrame(tick);\n }, []);\n\n const onLayoutEvent = useCallback(\n (evt: LayoutChangeEvent) => {\n const canvas = canvasRef.current;\n if (canvas) {\n renderer.current =\n props.__destroyWebGLContextAfterRender === true\n ? new StaticWebGLRenderer(canvas, pd)\n : new WebGLRenderer(canvas, pd);\n if (pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }\n if (onLayout) {\n onLayout(evt);\n }\n },\n [onLayout, props.__destroyWebGLContextAfterRender]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n get canvasRef() {\n return () => canvasRef.current;\n },\n }),\n [setPicture, getSize, redraw, makeImageSnapshot, measure, measureInWindow]\n );\n\n useEffect(() => {\n const nativeID = props.nativeID ?? `${SkiaViewNativeId.current++}`;\n (global.SkiaViewApi as ISkiaViewApiWeb).registerView(nativeID, {\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n } as SkiaPictureViewHandle);\n }, [\n setPicture,\n getSize,\n redraw,\n makeImageSnapshot,\n measure,\n measureInWindow,\n props.nativeID,\n ]);\n\n useEffect(() => {\n if (props.picture) {\n setPicture(props.picture);\n }\n }, [setPicture, props.picture]);\n\n useEffect(() => {\n tick();\n return () => {\n cancelAnimationFrame(requestIdRef.current);\n if (renderer.current) {\n renderer.current.dispose();\n renderer.current = null;\n }\n };\n }, [tick]);\n\n useEffect(() => {\n if (renderer.current && pictureRef.current) {\n renderer.current.draw(pictureRef.current);\n }\n }, [picture, redraw]);\n\n const { debug = false, ref: _ref, ...viewProps } = props;\n return (\n <Platform.View {...viewProps} onLayout={onLayoutEvent}>\n <canvas\n ref={canvasRef}\n style={{ display: \"block\", width: \"100%\", height: \"100%\" }}\n />\n </Platform.View>\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -7,8 +7,7 @@ exports.WithSkiaWeb = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _Platform = require("../Platform");
9
9
  var _LoadSkiaWeb = require("./LoadSkiaWeb");
10
- function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
11
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
11
  const WithSkiaWeb = ({
13
12
  getComponent,
14
13
  fallback,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_Platform","_LoadSkiaWeb","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","WithSkiaWeb","getComponent","fallback","opts","componentProps","Inner","useMemo","lazy","Platform","OS","LoadSkiaWeb","console","warn","createElement","Suspense","exports"],"sources":["WithSkiaWeb.tsx"],"sourcesContent":["import type { ComponentProps, ComponentType } from \"react\";\nimport React, { useMemo, lazy, Suspense } from \"react\";\n\nimport { Platform } from \"../Platform\";\n\nimport { LoadSkiaWeb } from \"./LoadSkiaWeb\";\n\ntype NonOptionalKeys<T> = {\n [k in keyof T]-?: undefined extends T[k] ? never : k;\n}[keyof T];\n\ntype WithSkiaProps<TProps> = {\n fallback?: ComponentProps<typeof Suspense>[\"fallback\"];\n getComponent: () => Promise<{ default: ComponentType<TProps> }>;\n opts?: Parameters<typeof LoadSkiaWeb>[0];\n} & (NonOptionalKeys<TProps> extends never\n ? {\n componentProps?: TProps;\n }\n : {\n componentProps: TProps;\n });\n\nexport const WithSkiaWeb = <TProps extends object>({\n getComponent,\n fallback,\n opts,\n componentProps,\n}: WithSkiaProps<TProps>) => {\n const Inner = useMemo(\n // TODO: investigate\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (): any =>\n lazy(async () => {\n if (Platform.OS === \"web\") {\n await LoadSkiaWeb(opts);\n } else {\n console.warn(\n \"<WithSkiaWeb /> is only necessary on web. Consider not using on native.\"\n );\n }\n return getComponent();\n }),\n // We we to run this only once.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n return (\n <Suspense fallback={fallback ?? null}>\n <Inner {...componentProps} />\n </Suspense>\n );\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AAA4C,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAL,wBAAAK,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAK,OAAA,EAAAL,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAG,GAAA,CAAAN,CAAA,UAAAG,CAAA,CAAAI,GAAA,CAAAP,CAAA,OAAAQ,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,OAAAC,cAAA,CAAAC,IAAA,CAAAhB,CAAA,EAAAc,CAAA,SAAAG,CAAA,GAAAP,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAG,CAAA,KAAAA,CAAA,CAAAV,GAAA,IAAAU,CAAA,CAAAC,GAAA,IAAAP,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAG,CAAA,IAAAT,CAAA,CAAAM,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAN,CAAA,CAAAH,OAAA,GAAAL,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAe,GAAA,CAAAlB,CAAA,EAAAQ,CAAA,GAAAA,CAAA;AAkBrC,MAAMW,WAAW,GAAGA,CAAwB;EACjDC,YAAY;EACZC,QAAQ;EACRC,IAAI;EACJC;AACqB,CAAC,KAAK;EAC3B,MAAMC,KAAK,GAAG,IAAAC,cAAO;EACnB;EACA;EACA,mBACE,IAAAC,WAAI,EAAC,YAAY;IACf,IAAIC,kBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,MAAM,IAAAC,wBAAW,EAACP,IAAI,CAAC;IACzB,CAAC,MAAM;MACLQ,OAAO,CAACC,IAAI,CACV,yEACF,CAAC;IACH;IACA,OAAOX,YAAY,CAAC,CAAC;EACvB,CAAC,CAAC;EACJ;EACA;EACA,EACF,CAAC;EACD,oBACE1B,MAAA,CAAAW,OAAA,CAAA2B,aAAA,CAACtC,MAAA,CAAAuC,QAAQ;IAACZ,QAAQ,EAAEA,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI;EAAK,gBACnC3B,MAAA,CAAAW,OAAA,CAAA2B,aAAA,CAACR,KAAK,EAAKD,cAAiB,CACpB,CAAC;AAEf,CAAC;AAACW,OAAA,CAAAf,WAAA,GAAAA,WAAA","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_Platform","_LoadSkiaWeb","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","WithSkiaWeb","getComponent","fallback","opts","componentProps","Inner","useMemo","lazy","Platform","OS","LoadSkiaWeb","console","warn","createElement","Suspense","exports"],"sources":["WithSkiaWeb.tsx"],"sourcesContent":["import type { ComponentProps, ComponentType } from \"react\";\nimport React, { useMemo, lazy, Suspense } from \"react\";\n\nimport { Platform } from \"../Platform\";\n\nimport { LoadSkiaWeb } from \"./LoadSkiaWeb\";\n\ntype NonOptionalKeys<T> = {\n [k in keyof T]-?: undefined extends T[k] ? never : k;\n}[keyof T];\n\ntype WithSkiaProps<TProps> = {\n fallback?: ComponentProps<typeof Suspense>[\"fallback\"];\n getComponent: () => Promise<{ default: ComponentType<TProps> }>;\n opts?: Parameters<typeof LoadSkiaWeb>[0];\n} & (NonOptionalKeys<TProps> extends never\n ? {\n componentProps?: TProps;\n }\n : {\n componentProps: TProps;\n });\n\nexport const WithSkiaWeb = <TProps extends object>({\n getComponent,\n fallback,\n opts,\n componentProps,\n}: WithSkiaProps<TProps>) => {\n const Inner = useMemo(\n // TODO: investigate\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (): any =>\n lazy(async () => {\n if (Platform.OS === \"web\") {\n await LoadSkiaWeb(opts);\n } else {\n console.warn(\n \"<WithSkiaWeb /> is only necessary on web. Consider not using on native.\"\n );\n }\n return getComponent();\n }),\n // We we to run this only once.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n );\n return (\n <Suspense fallback={fallback ?? null}>\n <Inner {...componentProps} />\n </Suspense>\n );\n};\n"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAEA,IAAAC,SAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAF,OAAA;AAA4C,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAkBrC,MAAMkB,WAAW,GAAGA,CAAwB;EACjDC,YAAY;EACZC,QAAQ;EACRC,IAAI;EACJC;AACqB,CAAC,KAAK;EAC3B,MAAMC,KAAK,GAAG,IAAAC,cAAO;EACnB;EACA;EACA,mBACE,IAAAC,WAAI,EAAC,YAAY;IACf,IAAIC,kBAAQ,CAACC,EAAE,KAAK,KAAK,EAAE;MACzB,MAAM,IAAAC,wBAAW,EAACP,IAAI,CAAC;IACzB,CAAC,MAAM;MACLQ,OAAO,CAACC,IAAI,CACV,yEACF,CAAC;IACH;IACA,OAAOX,YAAY,CAAC,CAAC;EACvB,CAAC,CAAC;EACJ;EACA;EACA,EACF,CAAC;EACD,oBACEzB,MAAA,CAAAe,OAAA,CAAAsB,aAAA,CAACrC,MAAA,CAAAsC,QAAQ;IAACZ,QAAQ,EAAEA,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI;EAAK,gBACnC1B,MAAA,CAAAe,OAAA,CAAAsB,aAAA,CAACR,KAAK,EAAKD,cAAiB,CACpB,CAAC;AAEf,CAAC;AAACW,OAAA,CAAAf,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","Skia","notifyChange","Rea","useBufferValue","size","bufferInitializer","makeMutable","Array","fill","map","useBuffer","modifier","_mod$__closure","values","mod","deps","Object","__closure","mapperId","startMapper","value","forEach","val","index","stopMapper","useRectBuffer","XYWHRect","useRSXformBuffer","RSXform","usePointBuffer","Point","useColorBuffer","Color"],"sources":["buffers.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport type { WorkletFunction } from \"react-native-reanimated/lib/typescript/commonTypes\";\n\nimport type { SkColor, SkHostRect, SkPoint, SkRSXform } from \"../../skia/types\";\nimport { Skia } from \"../../skia\";\n\nimport { notifyChange } from \"./interpolators\";\nimport Rea from \"./ReanimatedProxy\";\n\ntype Modifier<T> = (input: T, index: number) => void;\n\nconst useBufferValue = <T>(size: number, bufferInitializer: () => T) => {\n return useMemo(\n () => Rea.makeMutable(new Array(size).fill(0).map(bufferInitializer)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [size]\n );\n};\n\nconst useBuffer = <T>(\n size: number,\n bufferInitializer: () => T,\n modifier: Modifier<T>\n) => {\n const values = useBufferValue(size, bufferInitializer);\n const mod = modifier as WorkletFunction;\n const deps = [size, ...Object.values(mod.__closure ?? {})];\n const mapperId = Rea.startMapper(() => {\n \"worklet\";\n values.value.forEach((val, index) => {\n modifier(val, index);\n });\n notifyChange(values);\n }, deps);\n\n useEffect(() => {\n return () => {\n Rea.stopMapper(mapperId);\n };\n }, [mapperId]);\n\n return values;\n};\n\nexport const useRectBuffer = (size: number, modifier: Modifier<SkHostRect>) =>\n useBuffer(size, () => Skia.XYWHRect(0, 0, 0, 0), modifier);\n\n// Usage for RSXform Buffer\nexport const useRSXformBuffer = (size: number, modifier: Modifier<SkRSXform>) =>\n useBuffer(size, () => Skia.RSXform(1, 0, 0, 0), modifier);\n\n// Usage for Point Buffer\nexport const usePointBuffer = (size: number, modifier: Modifier<SkPoint>) =>\n useBuffer(size, () => Skia.Point(0, 0), modifier);\n\n// Usage for Color Buffer\nexport const useColorBuffer = (size: number, modifier: Modifier<SkColor>) =>\n useBuffer(size, () => Skia.Color(\"black\"), modifier);\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAI1C,SAASC,IAAI,QAAQ,YAAY;AAEjC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,OAAOC,GAAG,MAAM,mBAAmB;AAInC,MAAMC,cAAc,GAAGA,CAAIC,IAAY,EAAEC,iBAA0B,KAAK;EACtE,OAAON,OAAO,CACZ,MAAMG,GAAG,CAACI,WAAW,CAAC,IAAIC,KAAK,CAACH,IAAI,CAAC,CAACI,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAACJ,iBAAiB,CAAC,CAAC;EACrE;EACA,CAACD,IAAI,CACP,CAAC;AACH,CAAC;AAED,MAAMM,SAAS,GAAGA,CAChBN,IAAY,EACZC,iBAA0B,EAC1BM,QAAqB,KAClB;EAAA,IAAAC,cAAA;EACH,MAAMC,MAAM,GAAGV,cAAc,CAACC,IAAI,EAAEC,iBAAiB,CAAC;EACtD,MAAMS,GAAG,GAAGH,QAA2B;EACvC,MAAMI,IAAI,GAAG,CAACX,IAAI,EAAE,GAAGY,MAAM,CAACH,MAAM,EAAAD,cAAA,GAACE,GAAG,CAACG,SAAS,cAAAL,cAAA,cAAAA,cAAA,GAAI,CAAC,CAAC,CAAC,CAAC;EAC1D,MAAMM,QAAQ,GAAGhB,GAAG,CAACiB,WAAW,CAAC,MAAM;IACrC,SAAS;;IACTN,MAAM,CAACO,KAAK,CAACC,OAAO,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;MACnCZ,QAAQ,CAACW,GAAG,EAAEC,KAAK,CAAC;IACtB,CAAC,CAAC;IACFtB,YAAY,CAACY,MAAM,CAAC;EACtB,CAAC,EAAEE,IAAI,CAAC;EAERjB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXI,GAAG,CAACsB,UAAU,CAACN,QAAQ,CAAC;IAC1B,CAAC;EACH,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,OAAOL,MAAM;AACf,CAAC;AAED,OAAO,MAAMY,aAAa,GAAGA,CAACrB,IAAY,EAAEO,QAA8B,KACxED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC0B,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEf,QAAQ,CAAC;;AAE5D;AACA,OAAO,MAAMgB,gBAAgB,GAAGA,CAACvB,IAAY,EAAEO,QAA6B,KAC1ED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC4B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEjB,QAAQ,CAAC;;AAE3D;AACA,OAAO,MAAMkB,cAAc,GAAGA,CAACzB,IAAY,EAAEO,QAA2B,KACtED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC8B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEnB,QAAQ,CAAC;;AAEnD;AACA,OAAO,MAAMoB,cAAc,GAAGA,CAAC3B,IAAY,EAAEO,QAA2B,KACtED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAACgC,KAAK,CAAC,OAAO,CAAC,EAAErB,QAAQ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","Skia","notifyChange","Rea","useBufferValue","size","bufferInitializer","makeMutable","Array","fill","map","useBuffer","modifier","_mod$__closure","values","mod","deps","Object","__closure","mapperId","startMapper","value","forEach","val","index","stopMapper","useRectBuffer","XYWHRect","useRSXformBuffer","RSXform","usePointBuffer","Point","useColorBuffer","Color"],"sources":["buffers.ts"],"sourcesContent":["import { useEffect, useMemo } from \"react\";\nimport type { WorkletFunction } from \"react-native-worklets\";\n\nimport type { SkColor, SkHostRect, SkPoint, SkRSXform } from \"../../skia/types\";\nimport { Skia } from \"../../skia\";\n\nimport { notifyChange } from \"./interpolators\";\nimport Rea from \"./ReanimatedProxy\";\n\ntype Modifier<T> = (input: T, index: number) => void;\n\nconst useBufferValue = <T>(size: number, bufferInitializer: () => T) => {\n return useMemo(\n () => Rea.makeMutable(new Array(size).fill(0).map(bufferInitializer)),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [size]\n );\n};\n\nconst useBuffer = <T>(\n size: number,\n bufferInitializer: () => T,\n modifier: Modifier<T>\n) => {\n const values = useBufferValue(size, bufferInitializer);\n const mod = modifier as WorkletFunction;\n const deps = [size, ...Object.values(mod.__closure ?? {})];\n const mapperId = Rea.startMapper(() => {\n \"worklet\";\n values.value.forEach((val, index) => {\n modifier(val, index);\n });\n notifyChange(values);\n }, deps);\n\n useEffect(() => {\n return () => {\n Rea.stopMapper(mapperId);\n };\n }, [mapperId]);\n\n return values;\n};\n\nexport const useRectBuffer = (size: number, modifier: Modifier<SkHostRect>) =>\n useBuffer(size, () => Skia.XYWHRect(0, 0, 0, 0), modifier);\n\n// Usage for RSXform Buffer\nexport const useRSXformBuffer = (size: number, modifier: Modifier<SkRSXform>) =>\n useBuffer(size, () => Skia.RSXform(1, 0, 0, 0), modifier);\n\n// Usage for Point Buffer\nexport const usePointBuffer = (size: number, modifier: Modifier<SkPoint>) =>\n useBuffer(size, () => Skia.Point(0, 0), modifier);\n\n// Usage for Color Buffer\nexport const useColorBuffer = (size: number, modifier: Modifier<SkColor>) =>\n useBuffer(size, () => Skia.Color(\"black\"), modifier);\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,OAAO,QAAQ,OAAO;AAI1C,SAASC,IAAI,QAAQ,YAAY;AAEjC,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,OAAOC,GAAG,MAAM,mBAAmB;AAInC,MAAMC,cAAc,GAAGA,CAAIC,IAAY,EAAEC,iBAA0B,KAAK;EACtE,OAAON,OAAO,CACZ,MAAMG,GAAG,CAACI,WAAW,CAAC,IAAIC,KAAK,CAACH,IAAI,CAAC,CAACI,IAAI,CAAC,CAAC,CAAC,CAACC,GAAG,CAACJ,iBAAiB,CAAC,CAAC;EACrE;EACA,CAACD,IAAI,CACP,CAAC;AACH,CAAC;AAED,MAAMM,SAAS,GAAGA,CAChBN,IAAY,EACZC,iBAA0B,EAC1BM,QAAqB,KAClB;EAAA,IAAAC,cAAA;EACH,MAAMC,MAAM,GAAGV,cAAc,CAACC,IAAI,EAAEC,iBAAiB,CAAC;EACtD,MAAMS,GAAG,GAAGH,QAA2B;EACvC,MAAMI,IAAI,GAAG,CAACX,IAAI,EAAE,GAAGY,MAAM,CAACH,MAAM,EAAAD,cAAA,GAACE,GAAG,CAACG,SAAS,cAAAL,cAAA,cAAAA,cAAA,GAAI,CAAC,CAAC,CAAC,CAAC;EAC1D,MAAMM,QAAQ,GAAGhB,GAAG,CAACiB,WAAW,CAAC,MAAM;IACrC,SAAS;;IACTN,MAAM,CAACO,KAAK,CAACC,OAAO,CAAC,CAACC,GAAG,EAAEC,KAAK,KAAK;MACnCZ,QAAQ,CAACW,GAAG,EAAEC,KAAK,CAAC;IACtB,CAAC,CAAC;IACFtB,YAAY,CAACY,MAAM,CAAC;EACtB,CAAC,EAAEE,IAAI,CAAC;EAERjB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACXI,GAAG,CAACsB,UAAU,CAACN,QAAQ,CAAC;IAC1B,CAAC;EACH,CAAC,EAAE,CAACA,QAAQ,CAAC,CAAC;EAEd,OAAOL,MAAM;AACf,CAAC;AAED,OAAO,MAAMY,aAAa,GAAGA,CAACrB,IAAY,EAAEO,QAA8B,KACxED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC0B,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEf,QAAQ,CAAC;;AAE5D;AACA,OAAO,MAAMgB,gBAAgB,GAAGA,CAACvB,IAAY,EAAEO,QAA6B,KAC1ED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC4B,OAAO,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAEjB,QAAQ,CAAC;;AAE3D;AACA,OAAO,MAAMkB,cAAc,GAAGA,CAACzB,IAAY,EAAEO,QAA2B,KACtED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAAC8B,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAEnB,QAAQ,CAAC;;AAEnD;AACA,OAAO,MAAMoB,cAAc,GAAGA,CAAC3B,IAAY,EAAEO,QAA2B,KACtED,SAAS,CAACN,IAAI,EAAE,MAAMJ,IAAI,CAACgC,KAAK,CAAC,OAAO,CAAC,EAAErB,QAAQ,CAAC","ignoreList":[]}
@@ -4,7 +4,4 @@ export declare const notifyChange: <T>(value: SharedValue<T>) => void;
4
4
  export declare const usePathValue: (cb: (path: SkPath) => void, init?: SkPath) => SharedValue<SkPath>;
5
5
  export declare const useClock: () => SharedValue<number>;
6
6
  export declare const usePathInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPath[], options?: ExtrapolationType) => SharedValue<SkPath>;
7
- export declare const useVectorInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPoint[], options?: ExtrapolationType) => SharedValue<{
8
- x: number;
9
- y: number;
10
- }>;
7
+ export declare const useVectorInterpolation: (value: SharedValue<number>, input: number[], outputRange: SkPoint[], options?: ExtrapolationType) => SharedValue<SkPoint>;
@@ -79,7 +79,9 @@ export const Canvas = ({
79
79
  measure(viewRef.current.canvasRef) : {
80
80
  width: 0,
81
81
  height: 0
82
- } : measure(viewRef);
82
+ } :
83
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
+ measure(viewRef);
83
85
  if (result) {
84
86
  const {
85
87
  width,
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","Rea","SkiaViewNativeId","SkiaPictureViewNativeComponent","SkiaSGRoot","Skia","Platform","HAS_REANIMATED_3","useCanvasRef","useReanimatedFrame","useFrameCallback","measure","useCanvasRefPriv","useAnimatedRef","useCanvasSize","userRef","ourRef","ref","size","setSize","width","height","current","_x","_y","isFabric","Boolean","_global","global","nativeFabricUIManager","Canvas","debug","opaque","children","onSize","colorSpace","androidWarmup","onLayout","viewProps","console","error","viewRef","nativeId","root","_viewRef$current","result","OS","canvasRef","value","render","unmount","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","requestRedraw","getNativeId","callback","_viewRef$current2","measureInWindow","_viewRef$current3","onLayoutWeb","e","nativeEvent","layout","createElement","_extends","collapsable","nativeID"],"sources":["Canvas.tsx"],"sourcesContent":["import type { FC, RefObject } from \"react\";\nimport React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type {\n LayoutChangeEvent,\n MeasureInWindowOnSuccessCallback,\n MeasureOnSuccessCallback,\n View,\n ViewProps,\n} from \"react-native\";\nimport type { AnimatedRef, SharedValue } from \"react-native-reanimated\";\n\nimport Rea from \"../external/reanimated/ReanimatedProxy\";\nimport { SkiaViewNativeId } from \"../views/SkiaViewNativeId\";\nimport SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\nimport type { SkImage, SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport { Platform } from \"../Platform\";\nimport { HAS_REANIMATED_3 } from \"../external\";\n\nexport interface CanvasRef extends FC<CanvasProps> {\n makeImageSnapshot(rect?: SkRect): SkImage;\n makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;\n redraw(): void;\n getNativeId(): number;\n measure(callback: MeasureOnSuccessCallback): void;\n measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;\n}\n\nexport const useCanvasRef = () => useRef<CanvasRef>(null);\n\nconst useReanimatedFrame = !HAS_REANIMATED_3 ? () => {} : Rea.useFrameCallback;\nconst measure = !HAS_REANIMATED_3 ? null : Rea.measure;\n\nconst useCanvasRefPriv: typeof useRef<View> = !HAS_REANIMATED_3\n ? useRef\n : Rea.useAnimatedRef;\n\nexport const useCanvasSize = (userRef?: RefObject<CanvasRef | null>) => {\n const ourRef = useCanvasRef();\n const ref = userRef ?? ourRef;\n const [size, setSize] = useState<SkSize>({ width: 0, height: 0 });\n useLayoutEffect(() => {\n if (ref.current) {\n ref.current.measure((_x, _y, width, height) => {\n setSize({ width, height });\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return { ref, size };\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isFabric = Boolean((global as any)?.nativeFabricUIManager);\n\nexport interface CanvasProps extends Omit<ViewProps, \"onLayout\"> {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n colorSpace?: \"p3\" | \"srgb\";\n ref?: React.Ref<CanvasRef>;\n androidWarmup?: boolean;\n __destroyWebGLContextAfterRender?: boolean;\n}\n\nexport const Canvas = ({\n debug,\n opaque,\n children,\n onSize,\n colorSpace = \"p3\",\n androidWarmup = false,\n ref,\n // Here know this is a type error but this is done on purpose to check it at runtime\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n onLayout,\n ...viewProps\n}: CanvasProps) => {\n if (onLayout && isFabric) {\n console.error(\n \"<Canvas onLayout={onLayout} /> is not supported on the new architecture, to fix the issue, see: https://shopify.github.io/react-native-skia/docs/canvas/overview/#getting-the-canvas-size\"\n );\n }\n const viewRef = useCanvasRefPriv(null);\n // Native ID\n const nativeId = useMemo(() => {\n return SkiaViewNativeId.current++;\n }, []);\n\n // Root\n const root = useMemo(() => new SkiaSGRoot(Skia, nativeId), [nativeId]);\n\n useReanimatedFrame(() => {\n \"worklet\";\n if (onSize && measure) {\n const result =\n // eslint-disable-next-line no-nested-ternary\n Platform.OS === \"web\"\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n viewRef.current?.canvasRef\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n measure(viewRef.current.canvasRef)\n : { width: 0, height: 0 }\n : measure(viewRef as AnimatedRef<View>);\n if (result) {\n const { width, height } = result;\n if (onSize.value.width !== width || onSize.value.height !== height) {\n onSize.value = { width, height };\n }\n }\n }\n }, !!onSize);\n\n // Render effects\n useLayoutEffect(() => {\n root.render(children);\n }, [children, root, nativeId]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n // Component methods\n useImperativeHandle(\n ref,\n () =>\n ({\n makeImageSnapshot: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshot(nativeId, rect);\n },\n makeImageSnapshotAsync: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);\n },\n redraw: () => {\n SkiaViewApi.requestRedraw(nativeId);\n },\n getNativeId: () => {\n return nativeId;\n },\n measure: (callback) => {\n viewRef.current?.measure(callback);\n },\n measureInWindow: (callback) => {\n viewRef.current?.measureInWindow(callback);\n },\n }) as CanvasRef\n );\n\n const onLayoutWeb = useCallback(\n (e: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(e);\n }\n if (Platform.OS === \"web\" && onSize) {\n const { width, height } = e.nativeEvent.layout;\n onSize.value = { width, height };\n }\n },\n [onLayout, onSize]\n );\n return (\n <SkiaPictureViewNativeComponent\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n colorSpace={colorSpace}\n androidWarmup={androidWarmup}\n onLayout={\n Platform.OS === \"web\" && (onSize || onLayout) ? onLayoutWeb : onLayout\n }\n {...viewProps}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","useCallback","useEffect","useImperativeHandle","useLayoutEffect","useMemo","useRef","useState","Rea","SkiaViewNativeId","SkiaPictureViewNativeComponent","SkiaSGRoot","Skia","Platform","HAS_REANIMATED_3","useCanvasRef","useReanimatedFrame","useFrameCallback","measure","useCanvasRefPriv","useAnimatedRef","useCanvasSize","userRef","ourRef","ref","size","setSize","width","height","current","_x","_y","isFabric","Boolean","_global","global","nativeFabricUIManager","Canvas","debug","opaque","children","onSize","colorSpace","androidWarmup","onLayout","viewProps","console","error","viewRef","nativeId","root","_viewRef$current","result","OS","canvasRef","value","render","unmount","makeImageSnapshot","rect","SkiaViewApi","makeImageSnapshotAsync","redraw","requestRedraw","getNativeId","callback","_viewRef$current2","measureInWindow","_viewRef$current3","onLayoutWeb","e","nativeEvent","layout","createElement","_extends","collapsable","nativeID"],"sources":["Canvas.tsx"],"sourcesContent":["import type { FC, RefObject } from \"react\";\nimport React, {\n useCallback,\n useEffect,\n useImperativeHandle,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport type {\n LayoutChangeEvent,\n MeasureInWindowOnSuccessCallback,\n MeasureOnSuccessCallback,\n View,\n ViewProps,\n} from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport Rea from \"../external/reanimated/ReanimatedProxy\";\nimport { SkiaViewNativeId } from \"../views/SkiaViewNativeId\";\nimport SkiaPictureViewNativeComponent from \"../specs/SkiaPictureViewNativeComponent\";\nimport type { SkImage, SkRect, SkSize } from \"../skia/types\";\nimport { SkiaSGRoot } from \"../sksg/Reconciler\";\nimport { Skia } from \"../skia\";\nimport { Platform } from \"../Platform\";\nimport { HAS_REANIMATED_3 } from \"../external\";\n\nexport interface CanvasRef extends FC<CanvasProps> {\n makeImageSnapshot(rect?: SkRect): SkImage;\n makeImageSnapshotAsync(rect?: SkRect): Promise<SkImage>;\n redraw(): void;\n getNativeId(): number;\n measure(callback: MeasureOnSuccessCallback): void;\n measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;\n}\n\nexport const useCanvasRef = () => useRef<CanvasRef>(null);\n\nconst useReanimatedFrame = !HAS_REANIMATED_3 ? () => {} : Rea.useFrameCallback;\nconst measure = !HAS_REANIMATED_3 ? null : Rea.measure;\n\nconst useCanvasRefPriv: typeof useRef<View> = !HAS_REANIMATED_3\n ? useRef\n : Rea.useAnimatedRef;\n\nexport const useCanvasSize = (userRef?: RefObject<CanvasRef | null>) => {\n const ourRef = useCanvasRef();\n const ref = userRef ?? ourRef;\n const [size, setSize] = useState<SkSize>({ width: 0, height: 0 });\n useLayoutEffect(() => {\n if (ref.current) {\n ref.current.measure((_x, _y, width, height) => {\n setSize({ width, height });\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n return { ref, size };\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const isFabric = Boolean((global as any)?.nativeFabricUIManager);\n\nexport interface CanvasProps extends Omit<ViewProps, \"onLayout\"> {\n debug?: boolean;\n opaque?: boolean;\n onSize?: SharedValue<SkSize>;\n colorSpace?: \"p3\" | \"srgb\";\n ref?: React.Ref<CanvasRef>;\n androidWarmup?: boolean;\n __destroyWebGLContextAfterRender?: boolean;\n}\n\nexport const Canvas = ({\n debug,\n opaque,\n children,\n onSize,\n colorSpace = \"p3\",\n androidWarmup = false,\n ref,\n // Here know this is a type error but this is done on purpose to check it at runtime\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n onLayout,\n ...viewProps\n}: CanvasProps) => {\n if (onLayout && isFabric) {\n console.error(\n \"<Canvas onLayout={onLayout} /> is not supported on the new architecture, to fix the issue, see: https://shopify.github.io/react-native-skia/docs/canvas/overview/#getting-the-canvas-size\"\n );\n }\n const viewRef = useCanvasRefPriv(null);\n // Native ID\n const nativeId = useMemo(() => {\n return SkiaViewNativeId.current++;\n }, []);\n\n // Root\n const root = useMemo(() => new SkiaSGRoot(Skia, nativeId), [nativeId]);\n\n useReanimatedFrame(() => {\n \"worklet\";\n if (onSize && measure) {\n const result =\n // eslint-disable-next-line no-nested-ternary\n Platform.OS === \"web\"\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n viewRef.current?.canvasRef\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n measure(viewRef.current.canvasRef)\n : { width: 0, height: 0 }\n : // eslint-disable-next-line @typescript-eslint/no-explicit-any\n measure(viewRef as any);\n if (result) {\n const { width, height } = result;\n if (onSize.value.width !== width || onSize.value.height !== height) {\n onSize.value = { width, height };\n }\n }\n }\n }, !!onSize);\n\n // Render effects\n useLayoutEffect(() => {\n root.render(children);\n }, [children, root, nativeId]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n // Component methods\n useImperativeHandle(\n ref,\n () =>\n ({\n makeImageSnapshot: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshot(nativeId, rect);\n },\n makeImageSnapshotAsync: (rect?: SkRect) => {\n return SkiaViewApi.makeImageSnapshotAsync(nativeId, rect);\n },\n redraw: () => {\n SkiaViewApi.requestRedraw(nativeId);\n },\n getNativeId: () => {\n return nativeId;\n },\n measure: (callback) => {\n viewRef.current?.measure(callback);\n },\n measureInWindow: (callback) => {\n viewRef.current?.measureInWindow(callback);\n },\n }) as CanvasRef\n );\n\n const onLayoutWeb = useCallback(\n (e: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(e);\n }\n if (Platform.OS === \"web\" && onSize) {\n const { width, height } = e.nativeEvent.layout;\n onSize.value = { width, height };\n }\n },\n [onLayout, onSize]\n );\n return (\n <SkiaPictureViewNativeComponent\n ref={viewRef}\n collapsable={false}\n nativeID={`${nativeId}`}\n debug={debug}\n opaque={opaque}\n colorSpace={colorSpace}\n androidWarmup={androidWarmup}\n onLayout={\n Platform.OS === \"web\" && (onSize || onLayout) ? onLayoutWeb : onLayout\n }\n {...viewProps}\n />\n );\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["ContourMeasure.tsx"],"sourcesContent":["import type { SkJSIInstance } from \"./JsiInstance\";\nimport type { SkPath } from \"./Path/Path\";\nimport type { SkPoint } from \"./Point\";\n\nexport interface PosTan {\n px: number;\n py: number;\n tx: number;\n ty: number;\n}\n\nexport interface SkContourMeasure extends SkJSIInstance<\"ContourMeasure\"> {\n /**\n * Returns the given position and tangent line for the distance on the given contour.\n * The return value an array of 2 vectors: [position, tangent]\n * @param distance - will be pinned between 0 and length().\n */\n getPosTan(distance: number): [position: SkPoint, tangent: SkPoint];\n\n /**\n * Returns an Path representing the segment of this contour.\n * @param startD - will be pinned between 0 and length()\n * @param stopD - will be pinned between 0 and length()\n * @param startWithMoveTo\n */\n getSegment(startD: number, stopD: number, startWithMoveTo: boolean): SkPath;\n\n /**\n * Returns true if the contour is closed.\n */\n isClosed(): boolean;\n\n /**\n * Returns the length of this contour.\n */\n length(): number;\n}\n\nexport interface SkContourMeasureIter\n extends SkJSIInstance<\"ContourMeasureIter\"> {\n /**\n * Iterates through contours in path, returning a contour-measure object for each contour\n * in the path. Returns null when it is done.\n *\n * See SkContourMeasure.h for more details.\n */\n next(): SkContourMeasure | null;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["ContourMeasure.tsx"],"sourcesContent":["import type { SkJSIInstance } from \"./JsiInstance\";\nimport type { SkPath } from \"./Path/Path\";\nimport type { SkPoint } from \"./Point\";\n\nexport interface PosTan {\n px: number;\n py: number;\n tx: number;\n ty: number;\n}\n\nexport interface SkContourMeasure extends SkJSIInstance<\"ContourMeasure\"> {\n /**\n * Returns the given position and tangent line for the distance on the given contour.\n * The return value an array of 2 vectors: [position, tangent]\n * @param distance - will be pinned between 0 and length().\n */\n getPosTan(distance: number): [position: SkPoint, tangent: SkPoint];\n\n /**\n * Returns an Path representing the segment of this contour.\n * @param startD - will be pinned between 0 and length()\n * @param stopD - will be pinned between 0 and length()\n * @param startWithMoveTo\n */\n getSegment(startD: number, stopD: number, startWithMoveTo: boolean): SkPath;\n\n /**\n * Returns true if the contour is closed.\n */\n isClosed(): boolean;\n\n /**\n * Returns the length of this contour.\n */\n length(): number;\n}\n\nexport interface SkContourMeasureIter extends SkJSIInstance<\"ContourMeasureIter\"> {\n /**\n * Iterates through contours in path, returning a contour-measure object for each contour\n * in the path. Returns null when it is done.\n *\n * See SkContourMeasure.h for more details.\n */\n next(): SkContourMeasure | null;\n}\n"],"mappings":"","ignoreList":[]}