@shopify/react-native-skia 1.8.2 → 1.9.1
Sign up to get free protection for your applications and to get access to all the features.
- package/android/cpp/rnskia-android/MainThreadDispatcher.h +1 -1
- package/android/cpp/rnskia-android/OpenGLContext.h +4 -4
- package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +3 -3
- package/cpp/api/JsiSkCanvas.h +27 -25
- package/cpp/api/JsiSkImage.h +24 -0
- package/cpp/api/JsiSkPaint.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +5 -1
- package/cpp/rnskia/dom/nodes/JsiImageNode.h +8 -4
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +9 -38
- package/cpp/rnskia/dom/props/SamplingProp.h +54 -0
- package/ios/RNSkia-iOS/SkiaManager.mm +2 -4
- package/lib/commonjs/dom/types/Drawings.d.ts +3 -1
- package/lib/commonjs/dom/types/Drawings.js.map +1 -1
- package/lib/commonjs/dom/types/Shaders.d.ts +2 -3
- package/lib/commonjs/dom/types/Shaders.js.map +1 -1
- package/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -1
- package/lib/commonjs/renderer/components/image/ImageShader.js +0 -4
- package/lib/commonjs/renderer/components/image/ImageShader.js.map +1 -1
- package/lib/commonjs/skia/types/Canvas.d.ts +2 -2
- package/lib/commonjs/skia/types/Canvas.js.map +1 -1
- package/lib/commonjs/skia/types/Image/Image.d.ts +18 -0
- package/lib/commonjs/skia/types/Image/Image.js +24 -1
- package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
- package/lib/commonjs/skia/types/Picture/PictureRecorder.d.ts +2 -1
- package/lib/commonjs/skia/types/Picture/PictureRecorder.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +2 -2
- package/lib/commonjs/skia/web/JsiSkCanvas.js +15 -2
- package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/commonjs/sksg/Container.d.ts +17 -14
- package/lib/commonjs/sksg/Container.js +59 -62
- package/lib/commonjs/sksg/Container.js.map +1 -1
- package/lib/commonjs/sksg/HostConfig.js +4 -9
- package/lib/commonjs/sksg/HostConfig.js.map +1 -1
- package/lib/commonjs/sksg/Reconciler.js +1 -2
- package/lib/commonjs/sksg/Reconciler.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Core.d.ts +42 -37
- package/lib/commonjs/sksg/Recorder/Core.js +45 -38
- package/lib/commonjs/sksg/Recorder/Core.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Player.js +4 -0
- package/lib/commonjs/sksg/Recorder/Player.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Recorder.d.ts +15 -0
- package/lib/commonjs/sksg/Recorder/Recorder.js +23 -1
- package/lib/commonjs/sksg/Recorder/Recorder.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/Visitor.js +6 -0
- package/lib/commonjs/sksg/Recorder/Visitor.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/commands/Drawing.js +11 -4
- package/lib/commonjs/sksg/Recorder/commands/Drawing.js.map +1 -1
- package/lib/commonjs/sksg/Recorder/commands/Shaders.js +8 -3
- package/lib/commonjs/sksg/Recorder/commands/Shaders.js.map +1 -1
- package/lib/module/dom/types/Drawings.d.ts +3 -1
- package/lib/module/dom/types/Drawings.js.map +1 -1
- package/lib/module/dom/types/Shaders.d.ts +2 -3
- package/lib/module/dom/types/Shaders.js.map +1 -1
- package/lib/module/renderer/components/image/ImageShader.d.ts +1 -1
- package/lib/module/renderer/components/image/ImageShader.js +0 -4
- package/lib/module/renderer/components/image/ImageShader.js.map +1 -1
- package/lib/module/skia/types/Canvas.d.ts +2 -2
- package/lib/module/skia/types/Canvas.js.map +1 -1
- package/lib/module/skia/types/Image/Image.d.ts +18 -0
- package/lib/module/skia/types/Image/Image.js +21 -0
- package/lib/module/skia/types/Image/Image.js.map +1 -1
- package/lib/module/skia/types/Picture/PictureRecorder.d.ts +2 -1
- package/lib/module/skia/types/Picture/PictureRecorder.js.map +1 -1
- package/lib/module/skia/web/JsiSkCanvas.d.ts +2 -2
- package/lib/module/skia/web/JsiSkCanvas.js +15 -2
- package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
- package/lib/module/sksg/Container.d.ts +17 -14
- package/lib/module/sksg/Container.js +56 -60
- package/lib/module/sksg/Container.js.map +1 -1
- package/lib/module/sksg/HostConfig.js +4 -9
- package/lib/module/sksg/HostConfig.js.map +1 -1
- package/lib/module/sksg/Reconciler.js +2 -3
- package/lib/module/sksg/Reconciler.js.map +1 -1
- package/lib/module/sksg/Recorder/Core.d.ts +42 -37
- package/lib/module/sksg/Recorder/Core.js +43 -37
- package/lib/module/sksg/Recorder/Core.js.map +1 -1
- package/lib/module/sksg/Recorder/Player.js +5 -1
- package/lib/module/sksg/Recorder/Player.js.map +1 -1
- package/lib/module/sksg/Recorder/Recorder.d.ts +15 -0
- package/lib/module/sksg/Recorder/Recorder.js +23 -1
- package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
- package/lib/module/sksg/Recorder/Visitor.js +6 -0
- package/lib/module/sksg/Recorder/Visitor.js.map +1 -1
- package/lib/module/sksg/Recorder/commands/Drawing.js +12 -5
- package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
- package/lib/module/sksg/Recorder/commands/Shaders.js +9 -4
- package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
- package/lib/typescript/lib/commonjs/renderer/components/image/ImageShader.d.ts +1 -3
- package/lib/typescript/lib/commonjs/skia/types/Image/Image.d.ts +21 -0
- package/lib/typescript/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/typescript/lib/commonjs/sksg/Container.d.ts +15 -10
- package/lib/typescript/lib/commonjs/sksg/HostConfig.d.ts +4 -4
- package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +21 -2
- package/lib/typescript/lib/commonjs/sksg/Recorder/Core.d.ts +1 -0
- package/lib/typescript/lib/commonjs/sksg/Recorder/Recorder.d.ts +7 -0
- package/lib/typescript/lib/module/mock/index.d.ts +18 -3
- package/lib/typescript/lib/module/renderer/components/image/ImageShader.d.ts +1 -3
- package/lib/typescript/lib/module/skia/types/Image/Image.d.ts +21 -0
- package/lib/typescript/lib/module/skia/web/JsiSkCanvas.d.ts +1 -1
- package/lib/typescript/lib/module/sksg/Container.d.ts +15 -10
- package/lib/typescript/lib/module/sksg/HostConfig.d.ts +4 -4
- package/lib/typescript/lib/module/sksg/Reconciler.d.ts +21 -2
- package/lib/typescript/lib/module/sksg/Recorder/Core.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +7 -0
- package/lib/typescript/src/dom/types/Drawings.d.ts +3 -1
- package/lib/typescript/src/dom/types/Shaders.d.ts +2 -3
- package/lib/typescript/src/renderer/components/image/ImageShader.d.ts +1 -1
- package/lib/typescript/src/skia/types/Canvas.d.ts +2 -2
- package/lib/typescript/src/skia/types/Image/Image.d.ts +18 -0
- package/lib/typescript/src/skia/types/Picture/PictureRecorder.d.ts +2 -1
- package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +2 -2
- package/lib/typescript/src/sksg/Container.d.ts +17 -14
- package/lib/typescript/src/sksg/Recorder/Core.d.ts +42 -37
- package/lib/typescript/src/sksg/Recorder/Recorder.d.ts +15 -0
- package/libs/apple/libskia.xcframework/Info.plist +35 -2
- package/libs/apple/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/macos-arm64_x86_64/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/tvos-arm64_arm64e/libskia.a +0 -0
- package/libs/apple/libskia.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/apple/libskottie.xcframework/Info.plist +36 -3
- package/libs/apple/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/macos-arm64_x86_64/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e/libskottie.a +0 -0
- package/libs/apple/libskottie.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/apple/libskparagraph.xcframework/Info.plist +40 -7
- package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/macos-arm64_x86_64/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/apple/libskparagraph.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/apple/libsksg.xcframework/Info.plist +35 -2
- package/libs/apple/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/macos-arm64_x86_64/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e/libsksg.a +0 -0
- package/libs/apple/libsksg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/apple/libskshaper.xcframework/Info.plist +33 -0
- package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/macos-arm64_x86_64/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e/libskshaper.a +0 -0
- package/libs/apple/libskshaper.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/Info.plist +36 -3
- package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/macos-arm64_x86_64/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_core.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_core.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/Info.plist +35 -2
- package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/macos-arm64_x86_64/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libskunicode_libgrapheme.xcframework/tvos-arm64_arm64e_x86_64-simulator/libskunicode_libgrapheme.a +0 -0
- package/libs/apple/libsvg.xcframework/Info.plist +36 -3
- package/libs/apple/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/macos-arm64_x86_64/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e/libsvg.a +0 -0
- package/libs/apple/libsvg.xcframework/tvos-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +3 -2
- package/react-native-skia.podspec +2 -2
- package/src/__tests__/snapshots/animated-images/bird.png +0 -0
- package/src/__tests__/snapshots/demos/product.png +0 -0
- package/src/__tests__/snapshots/demos/product2.png +0 -0
- package/src/__tests__/snapshots/images/bundle-android.png +0 -0
- package/src/__tests__/snapshots/images/bundle-ios.png +0 -0
- package/src/__tests__/snapshots/images/bundle-node.png +0 -0
- package/src/__tests__/snapshots/images/filter.png +0 -0
- package/src/dom/types/Drawings.ts +3 -0
- package/src/dom/types/Shaders.ts +2 -4
- package/src/renderer/__tests__/e2e/Text.spec.tsx +1 -1
- package/src/renderer/components/image/ImageShader.tsx +2 -15
- package/src/skia/types/Canvas.ts +2 -3
- package/src/skia/types/Image/Image.ts +14 -0
- package/src/skia/types/Picture/PictureRecorder.ts +2 -1
- package/src/skia/web/JsiSkCanvas.ts +50 -29
- package/src/sksg/Container.ts +64 -68
- package/src/sksg/HostConfig.ts +4 -9
- package/src/sksg/Reconciler.ts +3 -3
- package/src/sksg/Recorder/Core.ts +10 -0
- package/src/sksg/Recorder/Player.ts +5 -1
- package/src/sksg/Recorder/Recorder.ts +36 -1
- package/src/sksg/Recorder/Visitor.ts +6 -0
- package/src/sksg/Recorder/commands/Drawing.ts +33 -4
- package/src/sksg/Recorder/commands/Shaders.ts +21 -8
- package/lib/commonjs/sksg/Recorder/Recording.d.ts +0 -7
- package/lib/commonjs/sksg/Recorder/Recording.js +0 -12
- package/lib/commonjs/sksg/Recorder/Recording.js.map +0 -1
- package/lib/module/sksg/Recorder/Recording.d.ts +0 -7
- package/lib/module/sksg/Recorder/Recording.js +0 -5
- package/lib/module/sksg/Recorder/Recording.js.map +0 -1
- package/lib/typescript/lib/commonjs/sksg/Recorder/Recording.d.ts +0 -5
- package/lib/typescript/lib/module/sksg/Recorder/Recording.d.ts +0 -4
- package/lib/typescript/src/sksg/Recorder/Recording.d.ts +0 -7
- package/src/sksg/Recorder/Recording.ts +0 -13
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_types","require","_Node","processPaint","opacity","color","strokeWidth","blendMode","style","strokeJoin","strokeCap","strokeMiter","antiAlias","dither","paint","paintRef","undefined","exports","processCTM","clip","invertClip","transform","origin","matrix","layer","ctm","pushColorFilters","recorder","colorFilters","forEach","colorFilter","children","length","pushColorFilter","type","props","needsComposition","NodeType","LerpColorFilter","composeColorFilter","pushPathEffects","pathEffects","pathEffect","pushPathEffect","SumPathEffect","composePathEffect","pushImageFilters","imageFilters","imageFilter","isImageFilter","pushImageFilter","isShader","pushShader","BlendImageFilter","composeImageFilter","pushShaders","shaders","shader","pushMaskFilters","maskFilters","pushBlurMaskFilter","pushPaints","paints","savePaint","sortNodeChildren","restorePaintDeclaration","visitNode","node","drawings","shouldPushPaint","BackdropFilter","saveBackdropFilter","materializePaint","Layer","saveLayer","shouldRestore","saveCTM","Box","shadows","filter","n","BoxShadow","map","drawBox","Fill","drawPaint","Image","drawImage","Circle","drawCircle","Points","drawPoints","Path","drawPath","Rect","drawRect","RRect","drawRRect","Oval","drawOval","Line","drawLine","Patch","drawPatch","Vertices","drawVertices","DiffRect","drawDiffRect","Text","drawText","TextPath","drawTextPath","TextBlob","drawTextBlob","Glyphs","drawGlyphs","Picture","drawPicture","ImageSVG","drawImageSVG","Paragraph","drawParagraph","Atlas","drawAtlas","drawing","restorePaint","restoreCTM","visit","root"],"sources":["Visitor.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {\n CTMProps,\n DrawingNodeProps,\n BoxShadowProps,\n} from \"../../dom/types\";\nimport { NodeType } from \"../../dom/types\";\nimport type { Node } from \"../Node\";\nimport { isImageFilter, isShader, sortNodeChildren } from \"../Node\";\n\nimport type { Recorder } from \"./Recorder\";\n\nexport const processPaint = ({\n opacity,\n color,\n strokeWidth,\n blendMode,\n style,\n strokeJoin,\n strokeCap,\n strokeMiter,\n antiAlias,\n dither,\n paint: paintRef,\n}: DrawingNodeProps) => {\n const paint: DrawingNodeProps = {};\n if (opacity !== undefined) {\n paint.opacity = opacity;\n }\n if (color !== undefined) {\n paint.color = color;\n }\n if (strokeWidth !== undefined) {\n paint.strokeWidth = strokeWidth;\n }\n if (blendMode !== undefined) {\n paint.blendMode = blendMode;\n }\n if (style !== undefined) {\n paint.style = style;\n }\n if (strokeJoin !== undefined) {\n paint.strokeJoin = strokeJoin;\n }\n if (strokeCap !== undefined) {\n paint.strokeCap = strokeCap;\n }\n if (strokeMiter !== undefined) {\n paint.strokeMiter = strokeMiter;\n }\n if (antiAlias !== undefined) {\n paint.antiAlias = antiAlias;\n }\n if (dither !== undefined) {\n paint.dither = dither;\n }\n\n if (paintRef !== undefined) {\n paint.paint = paintRef;\n }\n\n if (\n opacity !== undefined ||\n color !== undefined ||\n strokeWidth !== undefined ||\n blendMode !== undefined ||\n style !== undefined ||\n strokeJoin !== undefined ||\n strokeCap !== undefined ||\n strokeMiter !== undefined ||\n antiAlias !== undefined ||\n dither !== undefined ||\n paintRef !== undefined\n ) {\n return paint;\n }\n return null;\n};\n\nconst processCTM = ({\n clip,\n invertClip,\n transform,\n origin,\n matrix,\n layer,\n}: CTMProps) => {\n const ctm: CTMProps = {};\n if (clip) {\n ctm.clip = clip;\n }\n if (invertClip) {\n ctm.invertClip = invertClip;\n }\n if (transform) {\n ctm.transform = transform;\n }\n if (origin) {\n ctm.origin = origin;\n }\n if (matrix) {\n ctm.matrix = matrix;\n }\n if (layer) {\n ctm.layer = layer;\n }\n if (\n clip !== undefined ||\n invertClip !== undefined ||\n transform !== undefined ||\n origin !== undefined ||\n matrix !== undefined ||\n layer !== undefined\n ) {\n return ctm;\n }\n return null;\n};\n\nconst pushColorFilters = (recorder: Recorder, colorFilters: Node<any>[]) => {\n colorFilters.forEach((colorFilter) => {\n if (colorFilter.children.length > 0) {\n pushColorFilters(recorder, colorFilter.children);\n }\n recorder.pushColorFilter(colorFilter.type, colorFilter.props);\n const needsComposition =\n colorFilter.type !== NodeType.LerpColorFilter &&\n colorFilter.children.length > 0;\n if (needsComposition) {\n recorder.composeColorFilter();\n }\n });\n};\n\nconst pushPathEffects = (recorder: Recorder, pathEffects: Node<any>[]) => {\n pathEffects.forEach((pathEffect) => {\n if (pathEffect.children.length > 0) {\n pushPathEffects(recorder, pathEffect.children);\n }\n recorder.pushPathEffect(pathEffect.type, pathEffect.props);\n const needsComposition =\n pathEffect.type !== NodeType.SumPathEffect &&\n pathEffect.children.length > 0;\n if (needsComposition) {\n recorder.composePathEffect();\n }\n });\n};\n\nconst pushImageFilters = (recorder: Recorder, imageFilters: Node<any>[]) => {\n imageFilters.forEach((imageFilter) => {\n if (imageFilter.children.length > 0) {\n pushImageFilters(recorder, imageFilter.children);\n }\n if (isImageFilter(imageFilter.type)) {\n recorder.pushImageFilter(imageFilter.type, imageFilter.props);\n } else if (isShader(imageFilter.type)) {\n recorder.pushShader(imageFilter.type, imageFilter.props);\n }\n const needsComposition =\n imageFilter.type !== NodeType.BlendImageFilter &&\n imageFilter.children.length > 0;\n if (needsComposition) {\n recorder.composeImageFilter();\n }\n });\n};\n\nconst pushShaders = (recorder: Recorder, shaders: Node<any>[]) => {\n shaders.forEach((shader) => {\n if (shader.children.length > 0) {\n pushShaders(recorder, shader.children);\n }\n recorder.pushShader(shader.type, shader.props);\n });\n};\n\nconst pushMaskFilters = (recorder: Recorder, maskFilters: Node<any>[]) => {\n if (maskFilters.length > 0) {\n recorder.pushBlurMaskFilter(maskFilters[maskFilters.length - 1].props);\n }\n};\n\nconst pushPaints = (recorder: Recorder, paints: Node<any>[]) => {\n paints.forEach((paint) => {\n recorder.savePaint(paint.props);\n const { colorFilters, maskFilters, shaders, imageFilters, pathEffects } =\n sortNodeChildren(paint);\n pushColorFilters(recorder, colorFilters);\n pushImageFilters(recorder, imageFilters);\n pushMaskFilters(recorder, maskFilters);\n pushShaders(recorder, shaders);\n pushPathEffects(recorder, pathEffects);\n recorder.restorePaintDeclaration();\n });\n};\n\nconst visitNode = (recorder: Recorder, node: Node<any>) => {\n const { props } = node;\n const {\n colorFilters,\n maskFilters,\n drawings,\n shaders,\n imageFilters,\n pathEffects,\n paints,\n } = sortNodeChildren(node);\n const paint = processPaint(props);\n const shouldPushPaint =\n paint ||\n colorFilters.length > 0 ||\n maskFilters.length > 0 ||\n imageFilters.length > 0 ||\n pathEffects.length > 0 ||\n shaders.length > 0;\n if (shouldPushPaint) {\n recorder.savePaint(paint ?? {});\n pushColorFilters(recorder, colorFilters);\n pushImageFilters(recorder, imageFilters);\n pushMaskFilters(recorder, maskFilters);\n pushShaders(recorder, shaders);\n pushPathEffects(recorder, pathEffects);\n // For mixed nodes like BackdropFilters we don't materialize the paint\n if (node.type === NodeType.BackdropFilter) {\n recorder.saveBackdropFilter();\n } else {\n recorder.materializePaint();\n }\n }\n pushPaints(recorder, paints);\n if (node.type === NodeType.Layer) {\n recorder.saveLayer();\n }\n const ctm = processCTM(props);\n const shouldRestore = !!ctm || node.type === NodeType.Layer;\n if (ctm) {\n recorder.saveCTM(ctm);\n }\n switch (node.type) {\n case NodeType.Box:\n const shadows = node.children\n .filter((n) => n.type === NodeType.BoxShadow)\n // eslint-disable-next-line @typescript-eslint/no-shadow\n .map(({ props }) => ({ props } as { props: BoxShadowProps }));\n recorder.drawBox(props, shadows);\n break;\n case NodeType.Fill:\n recorder.drawPaint();\n break;\n case NodeType.Image:\n recorder.drawImage(node.props);\n break;\n case NodeType.Circle:\n recorder.drawCircle(node.props);\n break;\n case NodeType.Points:\n recorder.drawPoints(props);\n break;\n case NodeType.Path:\n recorder.drawPath(props);\n break;\n case NodeType.Rect:\n recorder.drawRect(props);\n break;\n case NodeType.RRect:\n recorder.drawRRect(props);\n break;\n case NodeType.Oval:\n recorder.drawOval(props);\n break;\n case NodeType.Line:\n recorder.drawLine(props);\n break;\n case NodeType.Patch:\n recorder.drawPatch(props);\n break;\n case NodeType.Vertices:\n recorder.drawVertices(props);\n break;\n case NodeType.DiffRect:\n recorder.drawDiffRect(props);\n break;\n case NodeType.Text:\n recorder.drawText(props);\n break;\n case NodeType.TextPath:\n recorder.drawTextPath(props);\n break;\n case NodeType.TextBlob:\n recorder.drawTextBlob(props);\n break;\n case NodeType.Glyphs:\n recorder.drawGlyphs(props);\n break;\n case NodeType.Picture:\n recorder.drawPicture(props);\n break;\n case NodeType.ImageSVG:\n recorder.drawImageSVG(props);\n break;\n case NodeType.Paragraph:\n recorder.drawParagraph(props);\n break;\n case NodeType.Atlas:\n recorder.drawAtlas(props);\n break;\n }\n drawings.forEach((drawing) => {\n visitNode(recorder, drawing);\n });\n if (shouldPushPaint) {\n recorder.restorePaint();\n }\n if (shouldRestore) {\n recorder.restoreCTM();\n }\n};\n\nexport const visit = (recorder: Recorder, root: Node[]) => {\n root.forEach((node) => {\n visitNode(recorder, node);\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_types","require","_Node","processPaint","opacity","color","strokeWidth","blendMode","style","strokeJoin","strokeCap","strokeMiter","antiAlias","dither","paint","paintRef","undefined","exports","processCTM","clip","invertClip","transform","origin","matrix","layer","ctm","pushColorFilters","recorder","colorFilters","forEach","colorFilter","children","length","pushColorFilter","type","props","needsComposition","NodeType","LerpColorFilter","composeColorFilter","pushPathEffects","pathEffects","pathEffect","pushPathEffect","SumPathEffect","composePathEffect","pushImageFilters","imageFilters","imageFilter","isImageFilter","pushImageFilter","isShader","pushShader","BlendImageFilter","composeImageFilter","pushShaders","shaders","shader","pushMaskFilters","maskFilters","pushBlurMaskFilter","pushPaints","paints","savePaint","sortNodeChildren","restorePaintDeclaration","visitNode","node","Group","saveGroup","drawings","shouldPushPaint","BackdropFilter","saveBackdropFilter","materializePaint","Layer","saveLayer","shouldRestore","saveCTM","Box","shadows","filter","n","BoxShadow","map","drawBox","Fill","drawPaint","Image","drawImage","Circle","drawCircle","Points","drawPoints","Path","drawPath","Rect","drawRect","RRect","drawRRect","Oval","drawOval","Line","drawLine","Patch","drawPatch","Vertices","drawVertices","DiffRect","drawDiffRect","Text","drawText","TextPath","drawTextPath","TextBlob","drawTextBlob","Glyphs","drawGlyphs","Picture","drawPicture","ImageSVG","drawImageSVG","Paragraph","drawParagraph","Atlas","drawAtlas","drawing","restorePaint","restoreCTM","restoreGroup","visit","root"],"sources":["Visitor.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport type {\n CTMProps,\n DrawingNodeProps,\n BoxShadowProps,\n} from \"../../dom/types\";\nimport { NodeType } from \"../../dom/types\";\nimport type { Node } from \"../Node\";\nimport { isImageFilter, isShader, sortNodeChildren } from \"../Node\";\n\nimport type { Recorder } from \"./Recorder\";\n\nexport const processPaint = ({\n opacity,\n color,\n strokeWidth,\n blendMode,\n style,\n strokeJoin,\n strokeCap,\n strokeMiter,\n antiAlias,\n dither,\n paint: paintRef,\n}: DrawingNodeProps) => {\n const paint: DrawingNodeProps = {};\n if (opacity !== undefined) {\n paint.opacity = opacity;\n }\n if (color !== undefined) {\n paint.color = color;\n }\n if (strokeWidth !== undefined) {\n paint.strokeWidth = strokeWidth;\n }\n if (blendMode !== undefined) {\n paint.blendMode = blendMode;\n }\n if (style !== undefined) {\n paint.style = style;\n }\n if (strokeJoin !== undefined) {\n paint.strokeJoin = strokeJoin;\n }\n if (strokeCap !== undefined) {\n paint.strokeCap = strokeCap;\n }\n if (strokeMiter !== undefined) {\n paint.strokeMiter = strokeMiter;\n }\n if (antiAlias !== undefined) {\n paint.antiAlias = antiAlias;\n }\n if (dither !== undefined) {\n paint.dither = dither;\n }\n\n if (paintRef !== undefined) {\n paint.paint = paintRef;\n }\n\n if (\n opacity !== undefined ||\n color !== undefined ||\n strokeWidth !== undefined ||\n blendMode !== undefined ||\n style !== undefined ||\n strokeJoin !== undefined ||\n strokeCap !== undefined ||\n strokeMiter !== undefined ||\n antiAlias !== undefined ||\n dither !== undefined ||\n paintRef !== undefined\n ) {\n return paint;\n }\n return null;\n};\n\nconst processCTM = ({\n clip,\n invertClip,\n transform,\n origin,\n matrix,\n layer,\n}: CTMProps) => {\n const ctm: CTMProps = {};\n if (clip) {\n ctm.clip = clip;\n }\n if (invertClip) {\n ctm.invertClip = invertClip;\n }\n if (transform) {\n ctm.transform = transform;\n }\n if (origin) {\n ctm.origin = origin;\n }\n if (matrix) {\n ctm.matrix = matrix;\n }\n if (layer) {\n ctm.layer = layer;\n }\n if (\n clip !== undefined ||\n invertClip !== undefined ||\n transform !== undefined ||\n origin !== undefined ||\n matrix !== undefined ||\n layer !== undefined\n ) {\n return ctm;\n }\n return null;\n};\n\nconst pushColorFilters = (recorder: Recorder, colorFilters: Node<any>[]) => {\n colorFilters.forEach((colorFilter) => {\n if (colorFilter.children.length > 0) {\n pushColorFilters(recorder, colorFilter.children);\n }\n recorder.pushColorFilter(colorFilter.type, colorFilter.props);\n const needsComposition =\n colorFilter.type !== NodeType.LerpColorFilter &&\n colorFilter.children.length > 0;\n if (needsComposition) {\n recorder.composeColorFilter();\n }\n });\n};\n\nconst pushPathEffects = (recorder: Recorder, pathEffects: Node<any>[]) => {\n pathEffects.forEach((pathEffect) => {\n if (pathEffect.children.length > 0) {\n pushPathEffects(recorder, pathEffect.children);\n }\n recorder.pushPathEffect(pathEffect.type, pathEffect.props);\n const needsComposition =\n pathEffect.type !== NodeType.SumPathEffect &&\n pathEffect.children.length > 0;\n if (needsComposition) {\n recorder.composePathEffect();\n }\n });\n};\n\nconst pushImageFilters = (recorder: Recorder, imageFilters: Node<any>[]) => {\n imageFilters.forEach((imageFilter) => {\n if (imageFilter.children.length > 0) {\n pushImageFilters(recorder, imageFilter.children);\n }\n if (isImageFilter(imageFilter.type)) {\n recorder.pushImageFilter(imageFilter.type, imageFilter.props);\n } else if (isShader(imageFilter.type)) {\n recorder.pushShader(imageFilter.type, imageFilter.props);\n }\n const needsComposition =\n imageFilter.type !== NodeType.BlendImageFilter &&\n imageFilter.children.length > 0;\n if (needsComposition) {\n recorder.composeImageFilter();\n }\n });\n};\n\nconst pushShaders = (recorder: Recorder, shaders: Node<any>[]) => {\n shaders.forEach((shader) => {\n if (shader.children.length > 0) {\n pushShaders(recorder, shader.children);\n }\n recorder.pushShader(shader.type, shader.props);\n });\n};\n\nconst pushMaskFilters = (recorder: Recorder, maskFilters: Node<any>[]) => {\n if (maskFilters.length > 0) {\n recorder.pushBlurMaskFilter(maskFilters[maskFilters.length - 1].props);\n }\n};\n\nconst pushPaints = (recorder: Recorder, paints: Node<any>[]) => {\n paints.forEach((paint) => {\n recorder.savePaint(paint.props);\n const { colorFilters, maskFilters, shaders, imageFilters, pathEffects } =\n sortNodeChildren(paint);\n pushColorFilters(recorder, colorFilters);\n pushImageFilters(recorder, imageFilters);\n pushMaskFilters(recorder, maskFilters);\n pushShaders(recorder, shaders);\n pushPathEffects(recorder, pathEffects);\n recorder.restorePaintDeclaration();\n });\n};\n\nconst visitNode = (recorder: Recorder, node: Node<any>) => {\n if (node.type === NodeType.Group) {\n recorder.saveGroup();\n }\n const { props } = node;\n const {\n colorFilters,\n maskFilters,\n drawings,\n shaders,\n imageFilters,\n pathEffects,\n paints,\n } = sortNodeChildren(node);\n const paint = processPaint(props);\n const shouldPushPaint =\n paint ||\n colorFilters.length > 0 ||\n maskFilters.length > 0 ||\n imageFilters.length > 0 ||\n pathEffects.length > 0 ||\n shaders.length > 0;\n if (shouldPushPaint) {\n recorder.savePaint(paint ?? {});\n pushColorFilters(recorder, colorFilters);\n pushImageFilters(recorder, imageFilters);\n pushMaskFilters(recorder, maskFilters);\n pushShaders(recorder, shaders);\n pushPathEffects(recorder, pathEffects);\n // For mixed nodes like BackdropFilters we don't materialize the paint\n if (node.type === NodeType.BackdropFilter) {\n recorder.saveBackdropFilter();\n } else {\n recorder.materializePaint();\n }\n }\n pushPaints(recorder, paints);\n if (node.type === NodeType.Layer) {\n recorder.saveLayer();\n }\n const ctm = processCTM(props);\n const shouldRestore = !!ctm || node.type === NodeType.Layer;\n if (ctm) {\n recorder.saveCTM(ctm);\n }\n switch (node.type) {\n case NodeType.Box:\n const shadows = node.children\n .filter((n) => n.type === NodeType.BoxShadow)\n // eslint-disable-next-line @typescript-eslint/no-shadow\n .map(({ props }) => ({ props } as { props: BoxShadowProps }));\n recorder.drawBox(props, shadows);\n break;\n case NodeType.Fill:\n recorder.drawPaint();\n break;\n case NodeType.Image:\n recorder.drawImage(node.props);\n break;\n case NodeType.Circle:\n recorder.drawCircle(node.props);\n break;\n case NodeType.Points:\n recorder.drawPoints(props);\n break;\n case NodeType.Path:\n recorder.drawPath(props);\n break;\n case NodeType.Rect:\n recorder.drawRect(props);\n break;\n case NodeType.RRect:\n recorder.drawRRect(props);\n break;\n case NodeType.Oval:\n recorder.drawOval(props);\n break;\n case NodeType.Line:\n recorder.drawLine(props);\n break;\n case NodeType.Patch:\n recorder.drawPatch(props);\n break;\n case NodeType.Vertices:\n recorder.drawVertices(props);\n break;\n case NodeType.DiffRect:\n recorder.drawDiffRect(props);\n break;\n case NodeType.Text:\n recorder.drawText(props);\n break;\n case NodeType.TextPath:\n recorder.drawTextPath(props);\n break;\n case NodeType.TextBlob:\n recorder.drawTextBlob(props);\n break;\n case NodeType.Glyphs:\n recorder.drawGlyphs(props);\n break;\n case NodeType.Picture:\n recorder.drawPicture(props);\n break;\n case NodeType.ImageSVG:\n recorder.drawImageSVG(props);\n break;\n case NodeType.Paragraph:\n recorder.drawParagraph(props);\n break;\n case NodeType.Atlas:\n recorder.drawAtlas(props);\n break;\n }\n drawings.forEach((drawing) => {\n visitNode(recorder, drawing);\n });\n if (shouldPushPaint) {\n recorder.restorePaint();\n }\n if (shouldRestore) {\n recorder.restoreCTM();\n }\n if (node.type === NodeType.Group) {\n recorder.restoreGroup();\n }\n};\n\nexport const visit = (recorder: Recorder, root: Node[]) => {\n root.forEach((node) => {\n visitNode(recorder, node);\n });\n};\n"],"mappings":"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","ignoreList":[]}
|
@@ -85,7 +85,8 @@ const drawImage = (ctx, props) => {
|
|
85
85
|
"worklet";
|
86
86
|
|
87
87
|
const {
|
88
|
-
image
|
88
|
+
image,
|
89
|
+
sampling
|
89
90
|
} = props;
|
90
91
|
if (image) {
|
91
92
|
var _props$fit;
|
@@ -100,7 +101,12 @@ const drawImage = (ctx, props) => {
|
|
100
101
|
width: image.width(),
|
101
102
|
height: image.height()
|
102
103
|
}, rect);
|
103
|
-
|
104
|
+
if (sampling && (0, _types.isCubicSampling)(sampling)) {
|
105
|
+
ctx.canvas.drawImageRectCubic(image, src, dst, sampling.B, sampling.C, ctx.paint);
|
106
|
+
} else {
|
107
|
+
var _sampling$filter, _sampling$mipmap;
|
108
|
+
ctx.canvas.drawImageRectOptions(image, src, dst, (_sampling$filter = sampling === null || sampling === void 0 ? void 0 : sampling.filter) !== null && _sampling$filter !== void 0 ? _sampling$filter : _types.FilterMode.Linear, (_sampling$mipmap = sampling === null || sampling === void 0 ? void 0 : sampling.mipmap) !== null && _sampling$mipmap !== void 0 ? _sampling$mipmap : _types.MipmapMode.None, ctx.paint);
|
109
|
+
}
|
104
110
|
}
|
105
111
|
};
|
106
112
|
exports.drawImage = drawImage;
|
@@ -369,11 +375,12 @@ const drawAtlas = (ctx, props) => {
|
|
369
375
|
sprites,
|
370
376
|
transforms,
|
371
377
|
colors,
|
372
|
-
blendMode
|
378
|
+
blendMode,
|
379
|
+
sampling
|
373
380
|
} = props;
|
374
381
|
const blend = blendMode ? _types.BlendMode[(0, _nodes.enumKey)(blendMode)] : undefined;
|
375
382
|
if (image) {
|
376
|
-
ctx.canvas.drawAtlas(image, sprites, transforms, ctx.paint, blend, colors);
|
383
|
+
ctx.canvas.drawAtlas(image, sprites, transforms, ctx.paint, blend, colors, sampling);
|
377
384
|
}
|
378
385
|
};
|
379
386
|
exports.drawAtlas = drawAtlas;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_nodes","require","_processors","_types","_utils","drawLine","ctx","props","p1","p2","canvas","x","y","paint","exports","drawOval","rect","processRect","Skia","drawBox","children","box","defaultBox","opacity","getAlphaf","isRRect","RRectXY","shadows","map","node","type","NodeType","BoxShadow","materialize","filter","n","shadow","inner","color","blur","spread","dx","dy","lPaint","Paint","setColor","Color","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","BlurStyle","Normal","drawRRect","inflate","delta","Point","Math","abs","save","clipRRect","ClipOp","Intersect","deflate","outer","drawDRRect","restore","drawImage","image","_props$fit","fit","src","dst","fitRects","width","height","drawImageRect","drawPoints","points","mode","PointMode","enumKey","drawVertices","textures","colors","indices","blendMode","vertexMode","VertexMode","Triangles","vertices","MakeVertices","c","undefined","defaultBlendMode","BlendMode","DstOver","SrcOver","blend","drawDiffRect","drawTextPath","path","processPath","font","initialOffset","text","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","next","dist","i","length","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","derived","TextBlob","MakeFromRSXform","drawTextBlob","drawText","drawPatch","texture","patch","pos","c2","c1","drawPath","start","trimStart","end","trimEnd","fillType","stroke","pathProps","saturate","hasStartOffset","hasEndOffset","hasStrokeOptions","hasFillType","willMutatePath","pristinePath","copy","setFillType","FillType","trim","drawRect","processRRect","blob","drawGlyphs","glyphs","reduce","acc","glyph","id","positions","drawImageSVG","svg","translate","drawSvg","drawParagraph","paragraph","layout","drawPicture","picture","drawAtlas","sprites","transforms","drawCircle","processCircle","r","drawFill","_props","drawPaint"],"sources":["Drawing.ts"],"sourcesContent":["import {\n deflate,\n enumKey,\n fitRects,\n inflate,\n NodeType,\n processCircle,\n processPath,\n processRect,\n processRRect,\n} from \"../../../dom/nodes\";\nimport type {\n AtlasProps,\n BoxProps,\n BoxShadowProps,\n CircleProps,\n DiffRectProps,\n DrawingNodeProps,\n GlyphsProps,\n ImageProps,\n ImageSVGProps,\n LineProps,\n OvalProps,\n ParagraphProps,\n PatchProps,\n PathProps,\n PictureProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextBlobProps,\n TextPathProps,\n TextProps,\n VerticesProps,\n} from \"../../../dom/types\";\nimport { saturate } from \"../../../renderer/processors\";\nimport type { SkPoint, SkRSXform } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ClipOp,\n FillType,\n isRRect,\n PointMode,\n VertexMode,\n} from \"../../../skia/types\";\nimport type { Node } from \"../../Node\";\nimport { materialize } from \"../../utils\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const drawLine = (ctx: DrawingContext, props: LineProps) => {\n \"worklet\";\n const { p1, p2 } = props;\n ctx.canvas.drawLine(p1.x, p1.y, p2.x, p2.y, ctx.paint);\n};\n\nexport const drawOval = (ctx: DrawingContext, props: OvalProps) => {\n \"worklet\";\n const rect = processRect(ctx.Skia, props);\n ctx.canvas.drawOval(rect, ctx.paint);\n};\n\nexport const drawBox = (\n ctx: DrawingContext,\n props: BoxProps,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children: Node<any>[]\n) => {\n \"worklet\";\n const { paint, Skia, canvas } = ctx;\n const { box: defaultBox } = props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox) ? defaultBox : Skia.RRectXY(defaultBox, 0, 0);\n const shadows = children\n .map((node) => {\n if (node.type === NodeType.BoxShadow) {\n return materialize(node.props);\n }\n return null;\n })\n .filter((n): n is BoxShadowProps => n !== null);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = Skia.Paint();\n lPaint.setColor(Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = Skia.Paint();\n lPaint.setColor(Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(Skia, box, spread, spread, dx, dy);\n const outer = inflate(Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n};\n\nexport const drawImage = (ctx: DrawingContext, props: ImageProps) => {\n \"worklet\";\n const { image } = props;\n if (image) {\n const fit = props.fit ?? \"contain\";\n const rect = processRect(ctx.Skia, props);\n const { src, dst } = fitRects(\n fit,\n {\n x: 0,\n y: 0,\n width: image.width(),\n height: image.height(),\n },\n rect\n );\n ctx.canvas.drawImageRect(image, src, dst, ctx.paint);\n }\n};\n\nexport const drawPoints = (ctx: DrawingContext, props: PointsProps) => {\n \"worklet\";\n const { points, mode } = props;\n ctx.canvas.drawPoints(PointMode[enumKey(mode)], points, ctx.paint);\n};\n\nexport const drawVertices = (ctx: DrawingContext, props: VerticesProps) => {\n \"worklet\";\n const { mode, textures, colors, indices, blendMode } = props;\n const vertexMode = mode ? VertexMode[enumKey(mode)] : VertexMode.Triangles;\n const vertices = ctx.Skia.MakeVertices(\n vertexMode,\n props.vertices,\n textures,\n colors ? colors.map((c) => ctx.Skia.Color(c)) : undefined,\n indices\n );\n const defaultBlendMode = colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n\n ctx.canvas.drawVertices(vertices, blend, ctx.paint);\n};\n\nexport const drawDiffRect = (ctx: DrawingContext, props: DiffRectProps) => {\n \"worklet\";\n const { outer, inner } = props;\n ctx.canvas.drawDRRect(outer, inner, ctx.paint);\n};\n\nexport const drawTextPath = (ctx: DrawingContext, props: TextPathProps) => {\n \"worklet\";\n const path = processPath(ctx.Skia, props.path);\n const { font, initialOffset } = props;\n if (font) {\n let { text } = props;\n const ids = font.getGlyphIDs(text);\n const widths = font.getGlyphWidths(ids);\n const rsx: SkRSXform[] = [];\n const meas = ctx.Skia.ContourMeasureIter(path, false, 1);\n let cont = meas.next();\n let dist = initialOffset;\n for (let i = 0; i < text.length && cont; i++) {\n const width = widths[i];\n dist += width / 2;\n if (dist > cont.length()) {\n // jump to next contour\n cont = meas.next();\n if (!cont) {\n // We have come to the end of the path - terminate the string\n // right here.\n text = text.substring(0, i);\n break;\n }\n dist = width / 2;\n }\n // Gives us the (x, y) coordinates as well as the cos/sin of the tangent\n // line at that position.\n const [p, t] = cont.getPosTan(dist);\n const adjustedX = p.x - (width / 2) * t.x;\n const adjustedY = p.y - (width / 2) * t.y;\n rsx.push(ctx.Skia.RSXform(t.x, t.y, adjustedX, adjustedY));\n dist += width / 2;\n }\n const derived = ctx.Skia.TextBlob.MakeFromRSXform(text, rsx, font);\n ctx.canvas.drawTextBlob(derived, 0, 0, ctx.paint);\n }\n};\n\nexport const drawText = (ctx: DrawingContext, props: TextProps) => {\n \"worklet\";\n const { text, x, y, font } = props;\n if (font != null) {\n ctx.canvas.drawText(text, x, y, ctx.paint, font);\n }\n};\n\nexport const drawPatch = (ctx: DrawingContext, props: PatchProps) => {\n \"worklet\";\n const { texture, blendMode, patch } = props;\n const defaultBlendMode = props.colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const mode = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n // Patch requires a path with the following constraints:\n // M tl\n // C c1 c2 br\n // C c1 c2 bl\n // C c1 c2 tl (the redundant point in the last command is removed)\n\n const points = [\n patch[0].pos,\n patch[0].c2,\n patch[1].c1,\n patch[1].pos,\n patch[1].c2,\n patch[2].c1,\n patch[2].pos,\n patch[2].c2,\n patch[3].c1,\n patch[3].pos,\n patch[3].c2,\n patch[0].c1,\n ];\n const colors = props.colors\n ? props.colors.map((c) => ctx.Skia.Color(c))\n : undefined;\n ctx.canvas.drawPatch(points, colors, texture, mode, ctx.paint);\n};\n\nexport const drawPath = (ctx: DrawingContext, props: PathProps) => {\n \"worklet\";\n const {\n start: trimStart,\n end: trimEnd,\n fillType,\n stroke,\n ...pathProps\n } = props;\n const start = saturate(trimStart);\n const end = saturate(trimEnd);\n const hasStartOffset = start !== 0;\n const hasEndOffset = end !== 1;\n const hasStrokeOptions = stroke !== undefined;\n const hasFillType = !!fillType;\n const willMutatePath =\n hasStartOffset || hasEndOffset || hasStrokeOptions || hasFillType;\n const pristinePath = processPath(ctx.Skia, pathProps.path);\n const path = willMutatePath ? pristinePath.copy() : pristinePath;\n if (hasFillType) {\n path.setFillType(FillType[enumKey(fillType)]);\n }\n if (hasStrokeOptions) {\n path.stroke(stroke);\n }\n if (hasStartOffset || hasEndOffset) {\n path.trim(start, end, false);\n }\n ctx.canvas.drawPath(path, ctx.paint);\n};\n\nexport const drawRect = (ctx: DrawingContext, props: RectProps) => {\n \"worklet\";\n const derived = processRect(ctx.Skia, props);\n ctx.canvas.drawRect(derived, ctx.paint);\n};\n\nexport const drawRRect = (ctx: DrawingContext, props: RoundedRectProps) => {\n \"worklet\";\n const derived = processRRect(ctx.Skia, props);\n ctx.canvas.drawRRect(derived, ctx.paint);\n};\n\nexport const drawTextBlob = (ctx: DrawingContext, props: TextBlobProps) => {\n \"worklet\";\n const { blob, x, y } = props;\n ctx.canvas.drawTextBlob(blob, x, y, ctx.paint);\n};\n\ninterface ProcessedGlyphs {\n glyphs: number[];\n positions: SkPoint[];\n}\n\nexport const drawGlyphs = (ctx: DrawingContext, props: GlyphsProps) => {\n \"worklet\";\n const derived = props.glyphs.reduce<ProcessedGlyphs>(\n (acc, glyph) => {\n const { id, pos } = glyph;\n acc.glyphs.push(id);\n acc.positions.push(pos);\n return acc;\n },\n { glyphs: [], positions: [] }\n );\n const { glyphs, positions } = derived;\n const { x, y, font } = props;\n if (font) {\n ctx.canvas.drawGlyphs(glyphs, positions, x, y, font, ctx.paint);\n }\n};\n\nexport const drawImageSVG = (ctx: DrawingContext, props: ImageSVGProps) => {\n \"worklet\";\n const { canvas } = ctx;\n const { svg } = props;\n const { x, y, width, height } = props.rect\n ? props.rect\n : { x: props.x, y: props.y, width: props.width, height: props.height };\n if (svg === null) {\n return;\n }\n canvas.save();\n if (x && y) {\n canvas.translate(x, y);\n }\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n};\n\nexport const drawParagraph = (ctx: DrawingContext, props: ParagraphProps) => {\n \"worklet\";\n const { paragraph, x, y, width } = props;\n if (paragraph) {\n paragraph.layout(width);\n paragraph.paint(ctx.canvas, x, y);\n }\n};\n\nexport const drawPicture = (ctx: DrawingContext, props: PictureProps) => {\n \"worklet\";\n const { picture } = props;\n ctx.canvas.drawPicture(picture);\n};\n\nexport const drawAtlas = (ctx: DrawingContext, props: AtlasProps) => {\n \"worklet\";\n const { image, sprites, transforms, colors, blendMode } = props;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : undefined;\n if (image) {\n ctx.canvas.drawAtlas(image, sprites, transforms, ctx.paint, blend, colors);\n }\n};\n\nexport const drawCircle = (ctx: DrawingContext, props: CircleProps) => {\n \"worklet\";\n const { c } = processCircle(props);\n const { r } = props;\n ctx.canvas.drawCircle(c.x, c.y, r, ctx.paint);\n};\n\nexport const drawFill = (ctx: DrawingContext, _props: DrawingNodeProps) => {\n \"worklet\";\n ctx.canvas.drawPaint(ctx.paint);\n};\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_nodes","require","_processors","_types","_utils","drawLine","ctx","props","p1","p2","canvas","x","y","paint","exports","drawOval","rect","processRect","Skia","drawBox","children","box","defaultBox","opacity","getAlphaf","isRRect","RRectXY","shadows","map","node","type","NodeType","BoxShadow","materialize","filter","n","shadow","inner","color","blur","spread","dx","dy","lPaint","Paint","setColor","Color","setAlphaf","setMaskFilter","MaskFilter","MakeBlur","BlurStyle","Normal","drawRRect","inflate","delta","Point","Math","abs","save","clipRRect","ClipOp","Intersect","deflate","outer","drawDRRect","restore","drawImage","image","sampling","_props$fit","fit","src","dst","fitRects","width","height","isCubicSampling","drawImageRectCubic","B","C","_sampling$filter","_sampling$mipmap","drawImageRectOptions","FilterMode","Linear","mipmap","MipmapMode","None","drawPoints","points","mode","PointMode","enumKey","drawVertices","textures","colors","indices","blendMode","vertexMode","VertexMode","Triangles","vertices","MakeVertices","c","undefined","defaultBlendMode","BlendMode","DstOver","SrcOver","blend","drawDiffRect","drawTextPath","path","processPath","font","initialOffset","text","ids","getGlyphIDs","widths","getGlyphWidths","rsx","meas","ContourMeasureIter","cont","next","dist","i","length","substring","p","t","getPosTan","adjustedX","adjustedY","push","RSXform","derived","TextBlob","MakeFromRSXform","drawTextBlob","drawText","drawPatch","texture","patch","pos","c2","c1","drawPath","start","trimStart","end","trimEnd","fillType","stroke","pathProps","saturate","hasStartOffset","hasEndOffset","hasStrokeOptions","hasFillType","willMutatePath","pristinePath","copy","setFillType","FillType","trim","drawRect","processRRect","blob","drawGlyphs","glyphs","reduce","acc","glyph","id","positions","drawImageSVG","svg","translate","drawSvg","drawParagraph","paragraph","layout","drawPicture","picture","drawAtlas","sprites","transforms","drawCircle","processCircle","r","drawFill","_props","drawPaint"],"sources":["Drawing.ts"],"sourcesContent":["import {\n deflate,\n enumKey,\n fitRects,\n inflate,\n NodeType,\n processCircle,\n processPath,\n processRect,\n processRRect,\n} from \"../../../dom/nodes\";\nimport type {\n AtlasProps,\n BoxProps,\n BoxShadowProps,\n CircleProps,\n DiffRectProps,\n DrawingNodeProps,\n GlyphsProps,\n ImageProps,\n ImageSVGProps,\n LineProps,\n OvalProps,\n ParagraphProps,\n PatchProps,\n PathProps,\n PictureProps,\n PointsProps,\n RectProps,\n RoundedRectProps,\n TextBlobProps,\n TextPathProps,\n TextProps,\n VerticesProps,\n} from \"../../../dom/types\";\nimport { saturate } from \"../../../renderer/processors\";\nimport type { SkPoint, SkRSXform } from \"../../../skia/types\";\nimport {\n BlendMode,\n BlurStyle,\n ClipOp,\n FillType,\n FilterMode,\n isCubicSampling,\n isRRect,\n MipmapMode,\n PointMode,\n VertexMode,\n} from \"../../../skia/types\";\nimport type { Node } from \"../../Node\";\nimport { materialize } from \"../../utils\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nexport const drawLine = (ctx: DrawingContext, props: LineProps) => {\n \"worklet\";\n const { p1, p2 } = props;\n ctx.canvas.drawLine(p1.x, p1.y, p2.x, p2.y, ctx.paint);\n};\n\nexport const drawOval = (ctx: DrawingContext, props: OvalProps) => {\n \"worklet\";\n const rect = processRect(ctx.Skia, props);\n ctx.canvas.drawOval(rect, ctx.paint);\n};\n\nexport const drawBox = (\n ctx: DrawingContext,\n props: BoxProps,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n children: Node<any>[]\n) => {\n \"worklet\";\n const { paint, Skia, canvas } = ctx;\n const { box: defaultBox } = props;\n const opacity = paint.getAlphaf();\n const box = isRRect(defaultBox) ? defaultBox : Skia.RRectXY(defaultBox, 0, 0);\n const shadows = children\n .map((node) => {\n if (node.type === NodeType.BoxShadow) {\n return materialize(node.props);\n }\n return null;\n })\n .filter((n): n is BoxShadowProps => n !== null);\n shadows\n .filter((shadow) => !shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const lPaint = Skia.Paint();\n lPaint.setColor(Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n canvas.drawRRect(inflate(Skia, box, spread, spread, dx, dy), lPaint);\n });\n\n canvas.drawRRect(box, paint);\n\n shadows\n .filter((shadow) => shadow.inner)\n .map((shadow) => {\n const { color = \"black\", blur, spread = 0, dx = 0, dy = 0 } = shadow;\n const delta = Skia.Point(10 + Math.abs(dx), 10 + Math.abs(dy));\n canvas.save();\n canvas.clipRRect(box, ClipOp.Intersect, false);\n const lPaint = Skia.Paint();\n lPaint.setColor(Skia.Color(color));\n lPaint.setAlphaf(paint.getAlphaf() * opacity);\n\n lPaint.setMaskFilter(\n Skia.MaskFilter.MakeBlur(BlurStyle.Normal, blur, true)\n );\n const inner = deflate(Skia, box, spread, spread, dx, dy);\n const outer = inflate(Skia, box, delta.x, delta.y);\n canvas.drawDRRect(outer, inner, lPaint);\n canvas.restore();\n });\n};\n\nexport const drawImage = (ctx: DrawingContext, props: ImageProps) => {\n \"worklet\";\n const { image, sampling } = props;\n if (image) {\n const fit = props.fit ?? \"contain\";\n const rect = processRect(ctx.Skia, props);\n const { src, dst } = fitRects(\n fit,\n {\n x: 0,\n y: 0,\n width: image.width(),\n height: image.height(),\n },\n rect\n );\n if (sampling && isCubicSampling(sampling)) {\n ctx.canvas.drawImageRectCubic(\n image,\n src,\n dst,\n sampling.B,\n sampling.C,\n ctx.paint\n );\n } else {\n ctx.canvas.drawImageRectOptions(\n image,\n src,\n dst,\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n ctx.paint\n );\n }\n }\n};\n\nexport const drawPoints = (ctx: DrawingContext, props: PointsProps) => {\n \"worklet\";\n const { points, mode } = props;\n ctx.canvas.drawPoints(PointMode[enumKey(mode)], points, ctx.paint);\n};\n\nexport const drawVertices = (ctx: DrawingContext, props: VerticesProps) => {\n \"worklet\";\n const { mode, textures, colors, indices, blendMode } = props;\n const vertexMode = mode ? VertexMode[enumKey(mode)] : VertexMode.Triangles;\n const vertices = ctx.Skia.MakeVertices(\n vertexMode,\n props.vertices,\n textures,\n colors ? colors.map((c) => ctx.Skia.Color(c)) : undefined,\n indices\n );\n const defaultBlendMode = colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n\n ctx.canvas.drawVertices(vertices, blend, ctx.paint);\n};\n\nexport const drawDiffRect = (ctx: DrawingContext, props: DiffRectProps) => {\n \"worklet\";\n const { outer, inner } = props;\n ctx.canvas.drawDRRect(outer, inner, ctx.paint);\n};\n\nexport const drawTextPath = (ctx: DrawingContext, props: TextPathProps) => {\n \"worklet\";\n const path = processPath(ctx.Skia, props.path);\n const { font, initialOffset } = props;\n if (font) {\n let { text } = props;\n const ids = font.getGlyphIDs(text);\n const widths = font.getGlyphWidths(ids);\n const rsx: SkRSXform[] = [];\n const meas = ctx.Skia.ContourMeasureIter(path, false, 1);\n let cont = meas.next();\n let dist = initialOffset;\n for (let i = 0; i < text.length && cont; i++) {\n const width = widths[i];\n dist += width / 2;\n if (dist > cont.length()) {\n // jump to next contour\n cont = meas.next();\n if (!cont) {\n // We have come to the end of the path - terminate the string\n // right here.\n text = text.substring(0, i);\n break;\n }\n dist = width / 2;\n }\n // Gives us the (x, y) coordinates as well as the cos/sin of the tangent\n // line at that position.\n const [p, t] = cont.getPosTan(dist);\n const adjustedX = p.x - (width / 2) * t.x;\n const adjustedY = p.y - (width / 2) * t.y;\n rsx.push(ctx.Skia.RSXform(t.x, t.y, adjustedX, adjustedY));\n dist += width / 2;\n }\n const derived = ctx.Skia.TextBlob.MakeFromRSXform(text, rsx, font);\n ctx.canvas.drawTextBlob(derived, 0, 0, ctx.paint);\n }\n};\n\nexport const drawText = (ctx: DrawingContext, props: TextProps) => {\n \"worklet\";\n const { text, x, y, font } = props;\n if (font != null) {\n ctx.canvas.drawText(text, x, y, ctx.paint, font);\n }\n};\n\nexport const drawPatch = (ctx: DrawingContext, props: PatchProps) => {\n \"worklet\";\n const { texture, blendMode, patch } = props;\n const defaultBlendMode = props.colors ? BlendMode.DstOver : BlendMode.SrcOver;\n const mode = blendMode ? BlendMode[enumKey(blendMode)] : defaultBlendMode;\n // Patch requires a path with the following constraints:\n // M tl\n // C c1 c2 br\n // C c1 c2 bl\n // C c1 c2 tl (the redundant point in the last command is removed)\n\n const points = [\n patch[0].pos,\n patch[0].c2,\n patch[1].c1,\n patch[1].pos,\n patch[1].c2,\n patch[2].c1,\n patch[2].pos,\n patch[2].c2,\n patch[3].c1,\n patch[3].pos,\n patch[3].c2,\n patch[0].c1,\n ];\n const colors = props.colors\n ? props.colors.map((c) => ctx.Skia.Color(c))\n : undefined;\n ctx.canvas.drawPatch(points, colors, texture, mode, ctx.paint);\n};\n\nexport const drawPath = (ctx: DrawingContext, props: PathProps) => {\n \"worklet\";\n const {\n start: trimStart,\n end: trimEnd,\n fillType,\n stroke,\n ...pathProps\n } = props;\n const start = saturate(trimStart);\n const end = saturate(trimEnd);\n const hasStartOffset = start !== 0;\n const hasEndOffset = end !== 1;\n const hasStrokeOptions = stroke !== undefined;\n const hasFillType = !!fillType;\n const willMutatePath =\n hasStartOffset || hasEndOffset || hasStrokeOptions || hasFillType;\n const pristinePath = processPath(ctx.Skia, pathProps.path);\n const path = willMutatePath ? pristinePath.copy() : pristinePath;\n if (hasFillType) {\n path.setFillType(FillType[enumKey(fillType)]);\n }\n if (hasStrokeOptions) {\n path.stroke(stroke);\n }\n if (hasStartOffset || hasEndOffset) {\n path.trim(start, end, false);\n }\n ctx.canvas.drawPath(path, ctx.paint);\n};\n\nexport const drawRect = (ctx: DrawingContext, props: RectProps) => {\n \"worklet\";\n const derived = processRect(ctx.Skia, props);\n ctx.canvas.drawRect(derived, ctx.paint);\n};\n\nexport const drawRRect = (ctx: DrawingContext, props: RoundedRectProps) => {\n \"worklet\";\n const derived = processRRect(ctx.Skia, props);\n ctx.canvas.drawRRect(derived, ctx.paint);\n};\n\nexport const drawTextBlob = (ctx: DrawingContext, props: TextBlobProps) => {\n \"worklet\";\n const { blob, x, y } = props;\n ctx.canvas.drawTextBlob(blob, x, y, ctx.paint);\n};\n\ninterface ProcessedGlyphs {\n glyphs: number[];\n positions: SkPoint[];\n}\n\nexport const drawGlyphs = (ctx: DrawingContext, props: GlyphsProps) => {\n \"worklet\";\n const derived = props.glyphs.reduce<ProcessedGlyphs>(\n (acc, glyph) => {\n const { id, pos } = glyph;\n acc.glyphs.push(id);\n acc.positions.push(pos);\n return acc;\n },\n { glyphs: [], positions: [] }\n );\n const { glyphs, positions } = derived;\n const { x, y, font } = props;\n if (font) {\n ctx.canvas.drawGlyphs(glyphs, positions, x, y, font, ctx.paint);\n }\n};\n\nexport const drawImageSVG = (ctx: DrawingContext, props: ImageSVGProps) => {\n \"worklet\";\n const { canvas } = ctx;\n const { svg } = props;\n const { x, y, width, height } = props.rect\n ? props.rect\n : { x: props.x, y: props.y, width: props.width, height: props.height };\n if (svg === null) {\n return;\n }\n canvas.save();\n if (x && y) {\n canvas.translate(x, y);\n }\n canvas.drawSvg(svg, width, height);\n canvas.restore();\n};\n\nexport const drawParagraph = (ctx: DrawingContext, props: ParagraphProps) => {\n \"worklet\";\n const { paragraph, x, y, width } = props;\n if (paragraph) {\n paragraph.layout(width);\n paragraph.paint(ctx.canvas, x, y);\n }\n};\n\nexport const drawPicture = (ctx: DrawingContext, props: PictureProps) => {\n \"worklet\";\n const { picture } = props;\n ctx.canvas.drawPicture(picture);\n};\n\nexport const drawAtlas = (ctx: DrawingContext, props: AtlasProps) => {\n \"worklet\";\n const { image, sprites, transforms, colors, blendMode, sampling } = props;\n const blend = blendMode ? BlendMode[enumKey(blendMode)] : undefined;\n if (image) {\n ctx.canvas.drawAtlas(\n image,\n sprites,\n transforms,\n ctx.paint,\n blend,\n colors,\n sampling\n );\n }\n};\n\nexport const drawCircle = (ctx: DrawingContext, props: CircleProps) => {\n \"worklet\";\n const { c } = processCircle(props);\n const { r } = props;\n ctx.canvas.drawCircle(c.x, c.y, r, ctx.paint);\n};\n\nexport const drawFill = (ctx: DrawingContext, _props: DrawingNodeProps) => {\n \"worklet\";\n ctx.canvas.drawPaint(ctx.paint);\n};\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AAmCA,IAAAC,WAAA,GAAAD,OAAA;AAEA,IAAAE,MAAA,GAAAF,OAAA;AAaA,IAAAG,MAAA,GAAAH,OAAA;AAGO,MAAMI,QAAQ,GAAGA,CAACC,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAM;IAAEC,EAAE;IAAEC;EAAG,CAAC,GAAGF,KAAK;EACxBD,GAAG,CAACI,MAAM,CAACL,QAAQ,CAACG,EAAE,CAACG,CAAC,EAAEH,EAAE,CAACI,CAAC,EAAEH,EAAE,CAACE,CAAC,EAAEF,EAAE,CAACG,CAAC,EAAEN,GAAG,CAACO,KAAK,CAAC;AACxD,CAAC;AAACC,OAAA,CAAAT,QAAA,GAAAA,QAAA;AAEK,MAAMU,QAAQ,GAAGA,CAACT,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAMS,IAAI,GAAG,IAAAC,kBAAW,EAACX,GAAG,CAACY,IAAI,EAAEX,KAAK,CAAC;EACzCD,GAAG,CAACI,MAAM,CAACK,QAAQ,CAACC,IAAI,EAAEV,GAAG,CAACO,KAAK,CAAC;AACtC,CAAC;AAACC,OAAA,CAAAC,QAAA,GAAAA,QAAA;AAEK,MAAMI,OAAO,GAAGA,CACrBb,GAAmB,EACnBC,KAAe,EAEfa,QAAqB,KAClB;EACH,SAAS;;EACT,MAAM;IAAEP,KAAK;IAAEK,IAAI;IAAER;EAAO,CAAC,GAAGJ,GAAG;EACnC,MAAM;IAAEe,GAAG,EAAEC;EAAW,CAAC,GAAGf,KAAK;EACjC,MAAMgB,OAAO,GAAGV,KAAK,CAACW,SAAS,CAAC,CAAC;EACjC,MAAMH,GAAG,GAAG,IAAAI,cAAO,EAACH,UAAU,CAAC,GAAGA,UAAU,GAAGJ,IAAI,CAACQ,OAAO,CAACJ,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;EAC7E,MAAMK,OAAO,GAAGP,QAAQ,CACrBQ,GAAG,CAAEC,IAAI,IAAK;IACb,IAAIA,IAAI,CAACC,IAAI,KAAKC,eAAQ,CAACC,SAAS,EAAE;MACpC,OAAO,IAAAC,kBAAW,EAACJ,IAAI,CAACtB,KAAK,CAAC;IAChC;IACA,OAAO,IAAI;EACb,CAAC,CAAC,CACD2B,MAAM,CAAEC,CAAC,IAA0BA,CAAC,KAAK,IAAI,CAAC;EACjDR,OAAO,CACJO,MAAM,CAAEE,MAAM,IAAK,CAACA,MAAM,CAACC,KAAK,CAAC,CACjCT,GAAG,CAAEQ,MAAM,IAAK;IACf,MAAM;MAAEE,KAAK,GAAG,OAAO;MAAEC,IAAI;MAAEC,MAAM,GAAG,CAAC;MAAEC,EAAE,GAAG,CAAC;MAAEC,EAAE,GAAG;IAAE,CAAC,GAAGN,MAAM;IACpE,MAAMO,MAAM,GAAGzB,IAAI,CAAC0B,KAAK,CAAC,CAAC;IAC3BD,MAAM,CAACE,QAAQ,CAAC3B,IAAI,CAAC4B,KAAK,CAACR,KAAK,CAAC,CAAC;IAClCK,MAAM,CAACI,SAAS,CAAClC,KAAK,CAACW,SAAS,CAAC,CAAC,GAAGD,OAAO,CAAC;IAC7CoB,MAAM,CAACK,aAAa,CAClB9B,IAAI,CAAC+B,UAAU,CAACC,QAAQ,CAACC,gBAAS,CAACC,MAAM,EAAEb,IAAI,EAAE,IAAI,CACvD,CAAC;IACD7B,MAAM,CAAC2C,SAAS,CAAC,IAAAC,cAAO,EAACpC,IAAI,EAAEG,GAAG,EAAEmB,MAAM,EAAEA,MAAM,EAAEC,EAAE,EAAEC,EAAE,CAAC,EAAEC,MAAM,CAAC;EACtE,CAAC,CAAC;EAEJjC,MAAM,CAAC2C,SAAS,CAAChC,GAAG,EAAER,KAAK,CAAC;EAE5Bc,OAAO,CACJO,MAAM,CAAEE,MAAM,IAAKA,MAAM,CAACC,KAAK,CAAC,CAChCT,GAAG,CAAEQ,MAAM,IAAK;IACf,MAAM;MAAEE,KAAK,GAAG,OAAO;MAAEC,IAAI;MAAEC,MAAM,GAAG,CAAC;MAAEC,EAAE,GAAG,CAAC;MAAEC,EAAE,GAAG;IAAE,CAAC,GAAGN,MAAM;IACpE,MAAMmB,KAAK,GAAGrC,IAAI,CAACsC,KAAK,CAAC,EAAE,GAAGC,IAAI,CAACC,GAAG,CAACjB,EAAE,CAAC,EAAE,EAAE,GAAGgB,IAAI,CAACC,GAAG,CAAChB,EAAE,CAAC,CAAC;IAC9DhC,MAAM,CAACiD,IAAI,CAAC,CAAC;IACbjD,MAAM,CAACkD,SAAS,CAACvC,GAAG,EAAEwC,aAAM,CAACC,SAAS,EAAE,KAAK,CAAC;IAC9C,MAAMnB,MAAM,GAAGzB,IAAI,CAAC0B,KAAK,CAAC,CAAC;IAC3BD,MAAM,CAACE,QAAQ,CAAC3B,IAAI,CAAC4B,KAAK,CAACR,KAAK,CAAC,CAAC;IAClCK,MAAM,CAACI,SAAS,CAAClC,KAAK,CAACW,SAAS,CAAC,CAAC,GAAGD,OAAO,CAAC;IAE7CoB,MAAM,CAACK,aAAa,CAClB9B,IAAI,CAAC+B,UAAU,CAACC,QAAQ,CAACC,gBAAS,CAACC,MAAM,EAAEb,IAAI,EAAE,IAAI,CACvD,CAAC;IACD,MAAMF,KAAK,GAAG,IAAA0B,cAAO,EAAC7C,IAAI,EAAEG,GAAG,EAAEmB,MAAM,EAAEA,MAAM,EAAEC,EAAE,EAAEC,EAAE,CAAC;IACxD,MAAMsB,KAAK,GAAG,IAAAV,cAAO,EAACpC,IAAI,EAAEG,GAAG,EAAEkC,KAAK,CAAC5C,CAAC,EAAE4C,KAAK,CAAC3C,CAAC,CAAC;IAClDF,MAAM,CAACuD,UAAU,CAACD,KAAK,EAAE3B,KAAK,EAAEM,MAAM,CAAC;IACvCjC,MAAM,CAACwD,OAAO,CAAC,CAAC;EAClB,CAAC,CAAC;AACN,CAAC;AAACpD,OAAA,CAAAK,OAAA,GAAAA,OAAA;AAEK,MAAMgD,SAAS,GAAGA,CAAC7D,GAAmB,EAAEC,KAAiB,KAAK;EACnE,SAAS;;EACT,MAAM;IAAE6D,KAAK;IAAEC;EAAS,CAAC,GAAG9D,KAAK;EACjC,IAAI6D,KAAK,EAAE;IAAA,IAAAE,UAAA;IACT,MAAMC,GAAG,IAAAD,UAAA,GAAG/D,KAAK,CAACgE,GAAG,cAAAD,UAAA,cAAAA,UAAA,GAAI,SAAS;IAClC,MAAMtD,IAAI,GAAG,IAAAC,kBAAW,EAACX,GAAG,CAACY,IAAI,EAAEX,KAAK,CAAC;IACzC,MAAM;MAAEiE,GAAG;MAAEC;IAAI,CAAC,GAAG,IAAAC,eAAQ,EAC3BH,GAAG,EACH;MACE5D,CAAC,EAAE,CAAC;MACJC,CAAC,EAAE,CAAC;MACJ+D,KAAK,EAAEP,KAAK,CAACO,KAAK,CAAC,CAAC;MACpBC,MAAM,EAAER,KAAK,CAACQ,MAAM,CAAC;IACvB,CAAC,EACD5D,IACF,CAAC;IACD,IAAIqD,QAAQ,IAAI,IAAAQ,sBAAe,EAACR,QAAQ,CAAC,EAAE;MACzC/D,GAAG,CAACI,MAAM,CAACoE,kBAAkB,CAC3BV,KAAK,EACLI,GAAG,EACHC,GAAG,EACHJ,QAAQ,CAACU,CAAC,EACVV,QAAQ,CAACW,CAAC,EACV1E,GAAG,CAACO,KACN,CAAC;IACH,CAAC,MAAM;MAAA,IAAAoE,gBAAA,EAAAC,gBAAA;MACL5E,GAAG,CAACI,MAAM,CAACyE,oBAAoB,CAC7Bf,KAAK,EACLI,GAAG,EACHC,GAAG,GAAAQ,gBAAA,GACHZ,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEnC,MAAM,cAAA+C,gBAAA,cAAAA,gBAAA,GAAIG,iBAAU,CAACC,MAAM,GAAAH,gBAAA,GACrCb,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEiB,MAAM,cAAAJ,gBAAA,cAAAA,gBAAA,GAAIK,iBAAU,CAACC,IAAI,EACnClF,GAAG,CAACO,KACN,CAAC;IACH;EACF;AACF,CAAC;AAACC,OAAA,CAAAqD,SAAA,GAAAA,SAAA;AAEK,MAAMsB,UAAU,GAAGA,CAACnF,GAAmB,EAAEC,KAAkB,KAAK;EACrE,SAAS;;EACT,MAAM;IAAEmF,MAAM;IAAEC;EAAK,CAAC,GAAGpF,KAAK;EAC9BD,GAAG,CAACI,MAAM,CAAC+E,UAAU,CAACG,gBAAS,CAAC,IAAAC,cAAO,EAACF,IAAI,CAAC,CAAC,EAAED,MAAM,EAAEpF,GAAG,CAACO,KAAK,CAAC;AACpE,CAAC;AAACC,OAAA,CAAA2E,UAAA,GAAAA,UAAA;AAEK,MAAMK,YAAY,GAAGA,CAACxF,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAM;IAAEoF,IAAI;IAAEI,QAAQ;IAAEC,MAAM;IAAEC,OAAO;IAAEC;EAAU,CAAC,GAAG3F,KAAK;EAC5D,MAAM4F,UAAU,GAAGR,IAAI,GAAGS,iBAAU,CAAC,IAAAP,cAAO,EAACF,IAAI,CAAC,CAAC,GAAGS,iBAAU,CAACC,SAAS;EAC1E,MAAMC,QAAQ,GAAGhG,GAAG,CAACY,IAAI,CAACqF,YAAY,CACpCJ,UAAU,EACV5F,KAAK,CAAC+F,QAAQ,EACdP,QAAQ,EACRC,MAAM,GAAGA,MAAM,CAACpE,GAAG,CAAE4E,CAAC,IAAKlG,GAAG,CAACY,IAAI,CAAC4B,KAAK,CAAC0D,CAAC,CAAC,CAAC,GAAGC,SAAS,EACzDR,OACF,CAAC;EACD,MAAMS,gBAAgB,GAAGV,MAAM,GAAGW,gBAAS,CAACC,OAAO,GAAGD,gBAAS,CAACE,OAAO;EACvE,MAAMC,KAAK,GAAGZ,SAAS,GAAGS,gBAAS,CAAC,IAAAd,cAAO,EAACK,SAAS,CAAC,CAAC,GAAGQ,gBAAgB;EAE1EpG,GAAG,CAACI,MAAM,CAACoF,YAAY,CAACQ,QAAQ,EAAEQ,KAAK,EAAExG,GAAG,CAACO,KAAK,CAAC;AACrD,CAAC;AAACC,OAAA,CAAAgF,YAAA,GAAAA,YAAA;AAEK,MAAMiB,YAAY,GAAGA,CAACzG,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAM;IAAEyD,KAAK;IAAE3B;EAAM,CAAC,GAAG9B,KAAK;EAC9BD,GAAG,CAACI,MAAM,CAACuD,UAAU,CAACD,KAAK,EAAE3B,KAAK,EAAE/B,GAAG,CAACO,KAAK,CAAC;AAChD,CAAC;AAACC,OAAA,CAAAiG,YAAA,GAAAA,YAAA;AAEK,MAAMC,YAAY,GAAGA,CAAC1G,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAM0G,IAAI,GAAG,IAAAC,kBAAW,EAAC5G,GAAG,CAACY,IAAI,EAAEX,KAAK,CAAC0G,IAAI,CAAC;EAC9C,MAAM;IAAEE,IAAI;IAAEC;EAAc,CAAC,GAAG7G,KAAK;EACrC,IAAI4G,IAAI,EAAE;IACR,IAAI;MAAEE;IAAK,CAAC,GAAG9G,KAAK;IACpB,MAAM+G,GAAG,GAAGH,IAAI,CAACI,WAAW,CAACF,IAAI,CAAC;IAClC,MAAMG,MAAM,GAAGL,IAAI,CAACM,cAAc,CAACH,GAAG,CAAC;IACvC,MAAMI,GAAgB,GAAG,EAAE;IAC3B,MAAMC,IAAI,GAAGrH,GAAG,CAACY,IAAI,CAAC0G,kBAAkB,CAACX,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;IACxD,IAAIY,IAAI,GAAGF,IAAI,CAACG,IAAI,CAAC,CAAC;IACtB,IAAIC,IAAI,GAAGX,aAAa;IACxB,KAAK,IAAIY,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGX,IAAI,CAACY,MAAM,IAAIJ,IAAI,EAAEG,CAAC,EAAE,EAAE;MAC5C,MAAMrD,KAAK,GAAG6C,MAAM,CAACQ,CAAC,CAAC;MACvBD,IAAI,IAAIpD,KAAK,GAAG,CAAC;MACjB,IAAIoD,IAAI,GAAGF,IAAI,CAACI,MAAM,CAAC,CAAC,EAAE;QACxB;QACAJ,IAAI,GAAGF,IAAI,CAACG,IAAI,CAAC,CAAC;QAClB,IAAI,CAACD,IAAI,EAAE;UACT;UACA;UACAR,IAAI,GAAGA,IAAI,CAACa,SAAS,CAAC,CAAC,EAAEF,CAAC,CAAC;UAC3B;QACF;QACAD,IAAI,GAAGpD,KAAK,GAAG,CAAC;MAClB;MACA;MACA;MACA,MAAM,CAACwD,CAAC,EAAEC,CAAC,CAAC,GAAGP,IAAI,CAACQ,SAAS,CAACN,IAAI,CAAC;MACnC,MAAMO,SAAS,GAAGH,CAAC,CAACxH,CAAC,GAAIgE,KAAK,GAAG,CAAC,GAAIyD,CAAC,CAACzH,CAAC;MACzC,MAAM4H,SAAS,GAAGJ,CAAC,CAACvH,CAAC,GAAI+D,KAAK,GAAG,CAAC,GAAIyD,CAAC,CAACxH,CAAC;MACzC8G,GAAG,CAACc,IAAI,CAAClI,GAAG,CAACY,IAAI,CAACuH,OAAO,CAACL,CAAC,CAACzH,CAAC,EAAEyH,CAAC,CAACxH,CAAC,EAAE0H,SAAS,EAAEC,SAAS,CAAC,CAAC;MAC1DR,IAAI,IAAIpD,KAAK,GAAG,CAAC;IACnB;IACA,MAAM+D,OAAO,GAAGpI,GAAG,CAACY,IAAI,CAACyH,QAAQ,CAACC,eAAe,CAACvB,IAAI,EAAEK,GAAG,EAAEP,IAAI,CAAC;IAClE7G,GAAG,CAACI,MAAM,CAACmI,YAAY,CAACH,OAAO,EAAE,CAAC,EAAE,CAAC,EAAEpI,GAAG,CAACO,KAAK,CAAC;EACnD;AACF,CAAC;AAACC,OAAA,CAAAkG,YAAA,GAAAA,YAAA;AAEK,MAAM8B,QAAQ,GAAGA,CAACxI,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAM;IAAE8G,IAAI;IAAE1G,CAAC;IAAEC,CAAC;IAAEuG;EAAK,CAAC,GAAG5G,KAAK;EAClC,IAAI4G,IAAI,IAAI,IAAI,EAAE;IAChB7G,GAAG,CAACI,MAAM,CAACoI,QAAQ,CAACzB,IAAI,EAAE1G,CAAC,EAAEC,CAAC,EAAEN,GAAG,CAACO,KAAK,EAAEsG,IAAI,CAAC;EAClD;AACF,CAAC;AAACrG,OAAA,CAAAgI,QAAA,GAAAA,QAAA;AAEK,MAAMC,SAAS,GAAGA,CAACzI,GAAmB,EAAEC,KAAiB,KAAK;EACnE,SAAS;;EACT,MAAM;IAAEyI,OAAO;IAAE9C,SAAS;IAAE+C;EAAM,CAAC,GAAG1I,KAAK;EAC3C,MAAMmG,gBAAgB,GAAGnG,KAAK,CAACyF,MAAM,GAAGW,gBAAS,CAACC,OAAO,GAAGD,gBAAS,CAACE,OAAO;EAC7E,MAAMlB,IAAI,GAAGO,SAAS,GAAGS,gBAAS,CAAC,IAAAd,cAAO,EAACK,SAAS,CAAC,CAAC,GAAGQ,gBAAgB;EACzE;EACA;EACA;EACA;EACA;;EAEA,MAAMhB,MAAM,GAAG,CACbuD,KAAK,CAAC,CAAC,CAAC,CAACC,GAAG,EACZD,KAAK,CAAC,CAAC,CAAC,CAACE,EAAE,EACXF,KAAK,CAAC,CAAC,CAAC,CAACG,EAAE,EACXH,KAAK,CAAC,CAAC,CAAC,CAACC,GAAG,EACZD,KAAK,CAAC,CAAC,CAAC,CAACE,EAAE,EACXF,KAAK,CAAC,CAAC,CAAC,CAACG,EAAE,EACXH,KAAK,CAAC,CAAC,CAAC,CAACC,GAAG,EACZD,KAAK,CAAC,CAAC,CAAC,CAACE,EAAE,EACXF,KAAK,CAAC,CAAC,CAAC,CAACG,EAAE,EACXH,KAAK,CAAC,CAAC,CAAC,CAACC,GAAG,EACZD,KAAK,CAAC,CAAC,CAAC,CAACE,EAAE,EACXF,KAAK,CAAC,CAAC,CAAC,CAACG,EAAE,CACZ;EACD,MAAMpD,MAAM,GAAGzF,KAAK,CAACyF,MAAM,GACvBzF,KAAK,CAACyF,MAAM,CAACpE,GAAG,CAAE4E,CAAC,IAAKlG,GAAG,CAACY,IAAI,CAAC4B,KAAK,CAAC0D,CAAC,CAAC,CAAC,GAC1CC,SAAS;EACbnG,GAAG,CAACI,MAAM,CAACqI,SAAS,CAACrD,MAAM,EAAEM,MAAM,EAAEgD,OAAO,EAAErD,IAAI,EAAErF,GAAG,CAACO,KAAK,CAAC;AAChE,CAAC;AAACC,OAAA,CAAAiI,SAAA,GAAAA,SAAA;AAEK,MAAMM,QAAQ,GAAGA,CAAC/I,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAM;IACJ+I,KAAK,EAAEC,SAAS;IAChBC,GAAG,EAAEC,OAAO;IACZC,QAAQ;IACRC,MAAM;IACN,GAAGC;EACL,CAAC,GAAGrJ,KAAK;EACT,MAAM+I,KAAK,GAAG,IAAAO,oBAAQ,EAACN,SAAS,CAAC;EACjC,MAAMC,GAAG,GAAG,IAAAK,oBAAQ,EAACJ,OAAO,CAAC;EAC7B,MAAMK,cAAc,GAAGR,KAAK,KAAK,CAAC;EAClC,MAAMS,YAAY,GAAGP,GAAG,KAAK,CAAC;EAC9B,MAAMQ,gBAAgB,GAAGL,MAAM,KAAKlD,SAAS;EAC7C,MAAMwD,WAAW,GAAG,CAAC,CAACP,QAAQ;EAC9B,MAAMQ,cAAc,GAClBJ,cAAc,IAAIC,YAAY,IAAIC,gBAAgB,IAAIC,WAAW;EACnE,MAAME,YAAY,GAAG,IAAAjD,kBAAW,EAAC5G,GAAG,CAACY,IAAI,EAAE0I,SAAS,CAAC3C,IAAI,CAAC;EAC1D,MAAMA,IAAI,GAAGiD,cAAc,GAAGC,YAAY,CAACC,IAAI,CAAC,CAAC,GAAGD,YAAY;EAChE,IAAIF,WAAW,EAAE;IACfhD,IAAI,CAACoD,WAAW,CAACC,eAAQ,CAAC,IAAAzE,cAAO,EAAC6D,QAAQ,CAAC,CAAC,CAAC;EAC/C;EACA,IAAIM,gBAAgB,EAAE;IACpB/C,IAAI,CAAC0C,MAAM,CAACA,MAAM,CAAC;EACrB;EACA,IAAIG,cAAc,IAAIC,YAAY,EAAE;IAClC9C,IAAI,CAACsD,IAAI,CAACjB,KAAK,EAAEE,GAAG,EAAE,KAAK,CAAC;EAC9B;EACAlJ,GAAG,CAACI,MAAM,CAAC2I,QAAQ,CAACpC,IAAI,EAAE3G,GAAG,CAACO,KAAK,CAAC;AACtC,CAAC;AAACC,OAAA,CAAAuI,QAAA,GAAAA,QAAA;AAEK,MAAMmB,QAAQ,GAAGA,CAAClK,GAAmB,EAAEC,KAAgB,KAAK;EACjE,SAAS;;EACT,MAAMmI,OAAO,GAAG,IAAAzH,kBAAW,EAACX,GAAG,CAACY,IAAI,EAAEX,KAAK,CAAC;EAC5CD,GAAG,CAACI,MAAM,CAAC8J,QAAQ,CAAC9B,OAAO,EAAEpI,GAAG,CAACO,KAAK,CAAC;AACzC,CAAC;AAACC,OAAA,CAAA0J,QAAA,GAAAA,QAAA;AAEK,MAAMnH,SAAS,GAAGA,CAAC/C,GAAmB,EAAEC,KAAuB,KAAK;EACzE,SAAS;;EACT,MAAMmI,OAAO,GAAG,IAAA+B,mBAAY,EAACnK,GAAG,CAACY,IAAI,EAAEX,KAAK,CAAC;EAC7CD,GAAG,CAACI,MAAM,CAAC2C,SAAS,CAACqF,OAAO,EAAEpI,GAAG,CAACO,KAAK,CAAC;AAC1C,CAAC;AAACC,OAAA,CAAAuC,SAAA,GAAAA,SAAA;AAEK,MAAMwF,YAAY,GAAGA,CAACvI,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAM;IAAEmK,IAAI;IAAE/J,CAAC;IAAEC;EAAE,CAAC,GAAGL,KAAK;EAC5BD,GAAG,CAACI,MAAM,CAACmI,YAAY,CAAC6B,IAAI,EAAE/J,CAAC,EAAEC,CAAC,EAAEN,GAAG,CAACO,KAAK,CAAC;AAChD,CAAC;AAACC,OAAA,CAAA+H,YAAA,GAAAA,YAAA;AAOK,MAAM8B,UAAU,GAAGA,CAACrK,GAAmB,EAAEC,KAAkB,KAAK;EACrE,SAAS;;EACT,MAAMmI,OAAO,GAAGnI,KAAK,CAACqK,MAAM,CAACC,MAAM,CACjC,CAACC,GAAG,EAAEC,KAAK,KAAK;IACd,MAAM;MAAEC,EAAE;MAAE9B;IAAI,CAAC,GAAG6B,KAAK;IACzBD,GAAG,CAACF,MAAM,CAACpC,IAAI,CAACwC,EAAE,CAAC;IACnBF,GAAG,CAACG,SAAS,CAACzC,IAAI,CAACU,GAAG,CAAC;IACvB,OAAO4B,GAAG;EACZ,CAAC,EACD;IAAEF,MAAM,EAAE,EAAE;IAAEK,SAAS,EAAE;EAAG,CAC9B,CAAC;EACD,MAAM;IAAEL,MAAM;IAAEK;EAAU,CAAC,GAAGvC,OAAO;EACrC,MAAM;IAAE/H,CAAC;IAAEC,CAAC;IAAEuG;EAAK,CAAC,GAAG5G,KAAK;EAC5B,IAAI4G,IAAI,EAAE;IACR7G,GAAG,CAACI,MAAM,CAACiK,UAAU,CAACC,MAAM,EAAEK,SAAS,EAAEtK,CAAC,EAAEC,CAAC,EAAEuG,IAAI,EAAE7G,GAAG,CAACO,KAAK,CAAC;EACjE;AACF,CAAC;AAACC,OAAA,CAAA6J,UAAA,GAAAA,UAAA;AAEK,MAAMO,YAAY,GAAGA,CAAC5K,GAAmB,EAAEC,KAAoB,KAAK;EACzE,SAAS;;EACT,MAAM;IAAEG;EAAO,CAAC,GAAGJ,GAAG;EACtB,MAAM;IAAE6K;EAAI,CAAC,GAAG5K,KAAK;EACrB,MAAM;IAAEI,CAAC;IAAEC,CAAC;IAAE+D,KAAK;IAAEC;EAAO,CAAC,GAAGrE,KAAK,CAACS,IAAI,GACtCT,KAAK,CAACS,IAAI,GACV;IAAEL,CAAC,EAAEJ,KAAK,CAACI,CAAC;IAAEC,CAAC,EAAEL,KAAK,CAACK,CAAC;IAAE+D,KAAK,EAAEpE,KAAK,CAACoE,KAAK;IAAEC,MAAM,EAAErE,KAAK,CAACqE;EAAO,CAAC;EACxE,IAAIuG,GAAG,KAAK,IAAI,EAAE;IAChB;EACF;EACAzK,MAAM,CAACiD,IAAI,CAAC,CAAC;EACb,IAAIhD,CAAC,IAAIC,CAAC,EAAE;IACVF,MAAM,CAAC0K,SAAS,CAACzK,CAAC,EAAEC,CAAC,CAAC;EACxB;EACAF,MAAM,CAAC2K,OAAO,CAACF,GAAG,EAAExG,KAAK,EAAEC,MAAM,CAAC;EAClClE,MAAM,CAACwD,OAAO,CAAC,CAAC;AAClB,CAAC;AAACpD,OAAA,CAAAoK,YAAA,GAAAA,YAAA;AAEK,MAAMI,aAAa,GAAGA,CAAChL,GAAmB,EAAEC,KAAqB,KAAK;EAC3E,SAAS;;EACT,MAAM;IAAEgL,SAAS;IAAE5K,CAAC;IAAEC,CAAC;IAAE+D;EAAM,CAAC,GAAGpE,KAAK;EACxC,IAAIgL,SAAS,EAAE;IACbA,SAAS,CAACC,MAAM,CAAC7G,KAAK,CAAC;IACvB4G,SAAS,CAAC1K,KAAK,CAACP,GAAG,CAACI,MAAM,EAAEC,CAAC,EAAEC,CAAC,CAAC;EACnC;AACF,CAAC;AAACE,OAAA,CAAAwK,aAAA,GAAAA,aAAA;AAEK,MAAMG,WAAW,GAAGA,CAACnL,GAAmB,EAAEC,KAAmB,KAAK;EACvE,SAAS;;EACT,MAAM;IAAEmL;EAAQ,CAAC,GAAGnL,KAAK;EACzBD,GAAG,CAACI,MAAM,CAAC+K,WAAW,CAACC,OAAO,CAAC;AACjC,CAAC;AAAC5K,OAAA,CAAA2K,WAAA,GAAAA,WAAA;AAEK,MAAME,SAAS,GAAGA,CAACrL,GAAmB,EAAEC,KAAiB,KAAK;EACnE,SAAS;;EACT,MAAM;IAAE6D,KAAK;IAAEwH,OAAO;IAAEC,UAAU;IAAE7F,MAAM;IAAEE,SAAS;IAAE7B;EAAS,CAAC,GAAG9D,KAAK;EACzE,MAAMuG,KAAK,GAAGZ,SAAS,GAAGS,gBAAS,CAAC,IAAAd,cAAO,EAACK,SAAS,CAAC,CAAC,GAAGO,SAAS;EACnE,IAAIrC,KAAK,EAAE;IACT9D,GAAG,CAACI,MAAM,CAACiL,SAAS,CAClBvH,KAAK,EACLwH,OAAO,EACPC,UAAU,EACVvL,GAAG,CAACO,KAAK,EACTiG,KAAK,EACLd,MAAM,EACN3B,QACF,CAAC;EACH;AACF,CAAC;AAACvD,OAAA,CAAA6K,SAAA,GAAAA,SAAA;AAEK,MAAMG,UAAU,GAAGA,CAACxL,GAAmB,EAAEC,KAAkB,KAAK;EACrE,SAAS;;EACT,MAAM;IAAEiG;EAAE,CAAC,GAAG,IAAAuF,oBAAa,EAACxL,KAAK,CAAC;EAClC,MAAM;IAAEyL;EAAE,CAAC,GAAGzL,KAAK;EACnBD,GAAG,CAACI,MAAM,CAACoL,UAAU,CAACtF,CAAC,CAAC7F,CAAC,EAAE6F,CAAC,CAAC5F,CAAC,EAAEoL,CAAC,EAAE1L,GAAG,CAACO,KAAK,CAAC;AAC/C,CAAC;AAACC,OAAA,CAAAgL,UAAA,GAAAA,UAAA;AAEK,MAAMG,QAAQ,GAAGA,CAAC3L,GAAmB,EAAE4L,MAAwB,KAAK;EACzE,SAAS;;EACT5L,GAAG,CAACI,MAAM,CAACyL,SAAS,CAAC7L,GAAG,CAACO,KAAK,CAAC;AACjC,CAAC;AAACC,OAAA,CAAAmL,QAAA,GAAAA,QAAA","ignoreList":[]}
|
@@ -138,8 +138,7 @@ const declareImageShader = (ctx, props) => {
|
|
138
138
|
image,
|
139
139
|
tx,
|
140
140
|
ty,
|
141
|
-
|
142
|
-
mm,
|
141
|
+
sampling,
|
143
142
|
...imageShaderProps
|
144
143
|
} = props;
|
145
144
|
if (!image) {
|
@@ -161,7 +160,13 @@ const declareImageShader = (ctx, props) => {
|
|
161
160
|
const lm = ctx.Skia.Matrix();
|
162
161
|
lm.concat(m3);
|
163
162
|
(0, _nodes.processTransformProps)(lm, imageShaderProps);
|
164
|
-
|
163
|
+
let shader;
|
164
|
+
if (sampling && (0, _types2.isCubicSampling)(sampling)) {
|
165
|
+
shader = image.makeShaderCubic(_types2.TileMode[(0, _nodes.enumKey)(tx)], _types2.TileMode[(0, _nodes.enumKey)(ty)], sampling.B, sampling.C, lm);
|
166
|
+
} else {
|
167
|
+
var _sampling$filter, _sampling$mipmap;
|
168
|
+
shader = image.makeShaderCubic(_types2.TileMode[(0, _nodes.enumKey)(tx)], _types2.TileMode[(0, _nodes.enumKey)(ty)], (_sampling$filter = sampling === null || sampling === void 0 ? void 0 : sampling.filter) !== null && _sampling$filter !== void 0 ? _sampling$filter : _types2.FilterMode.Linear, (_sampling$mipmap = sampling === null || sampling === void 0 ? void 0 : sampling.mipmap) !== null && _sampling$mipmap !== void 0 ? _sampling$mipmap : _types2.MipmapMode.None, lm);
|
169
|
+
}
|
165
170
|
ctx.shaders.push(shader);
|
166
171
|
};
|
167
172
|
const declareBlend = (ctx, props) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareShader","ctx","props","source","uniforms","transform","m3","Skia","Matrix","processTransformProps","shader","makeShaderWithChildren","processUniforms","shaders","splice","length","push","declareColorShader","color","Shader","MakeColor","Color","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","processGradientProps","MakeTwoPointConicalGradient","declareRadialGradientShader","c","r","MakeRadialGradient","declareSweepGradientShader","MakeSweepGradient","x","y","declareLinearGradientShader","MakeLinearGradient","declareTurbulenceShader","MakeTurbulence","declareImageShader","fit","image","tx","ty","fm","mm","imageShaderProps","rct","getRect","rects","fitRects","width","height","sx","sy","rect2rect","src","dst","translate","translateX","translateY","scale","scaleX","scaleY","lm","concat","makeShaderOptions","TileMode","enumKey","FilterMode","MipmapMode","declareBlend","blend","BlendMode","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 processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n BlendProps,\n ColorProps,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../../dom/types\";\nimport {\n BlendMode,\n FilterMode,\n MipmapMode,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareShader = (ctx: DrawingContext, props: ShaderProps) => {\n \"worklet\";\n const { source, uniforms, ...transform } = props;\n const m3 = ctx.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.splice(0, ctx.shaders.length),\n m3\n );\n ctx.shaders.push(shader);\n};\n\nconst declareColorShader = (ctx: DrawingContext, props: ColorProps) => {\n \"worklet\";\n const { color } = props;\n const shader = ctx.Skia.Shader.MakeColor(ctx.Skia.Color(color));\n ctx.shaders.push(shader);\n};\n\nconst declareFractalNoiseShader = (\n ctx: DrawingContext,\n props: FractalNoiseProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTwoPointConicalGradientShader = (\n ctx: DrawingContext,\n props: TwoPointConicalGradientProps\n) => {\n \"worklet\";\n const { startR, endR, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareRadialGradientShader = (\n ctx: DrawingContext,\n props: RadialGradientProps\n) => {\n \"worklet\";\n const { c, r } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareSweepGradientShader = (\n ctx: DrawingContext,\n props: SweepGradientProps\n) => {\n \"worklet\";\n const { c, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n};\n\nconst declareLinearGradientShader = (\n ctx: DrawingContext,\n props: LinearGradientProps\n) => {\n \"worklet\";\n const { start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTurbulenceShader = (\n ctx: DrawingContext,\n props: TurbulenceProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {\n \"worklet\";\n const { fit, image, tx, ty, fm, mm, ...imageShaderProps } = props;\n if (!image) {\n return;\n }\n\n const rct = getRect(ctx.Skia, imageShaderProps);\n const m3 = ctx.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = ctx.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n const shader = image.makeShaderOptions(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n FilterMode[enumKey(fm)],\n MipmapMode[enumKey(mm)],\n lm\n );\n ctx.shaders.push(shader);\n};\n\nconst declareBlend = (ctx: DrawingContext, props: BlendProps) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode as BlendProps[\"mode\"])];\n const shaders = ctx.shaders.splice(0, ctx.shaders.length);\n if (shaders.length > 0) {\n const composer = ctx.Skia.Shader.MakeBlend.bind(ctx.Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n};\n\nexport const isPushShader = (\n command: Command\n): command is Command<CommandType.PushShader> => {\n \"worklet\";\n return command.type === CommandType.PushShader;\n};\n\ntype Props = {\n [NodeType.Shader]: ShaderProps;\n [NodeType.ImageShader]: ImageShaderProps;\n [NodeType.ColorShader]: ColorProps;\n [NodeType.Turbulence]: TurbulenceProps;\n [NodeType.FractalNoise]: FractalNoiseProps;\n [NodeType.LinearGradient]: LinearGradientProps;\n [NodeType.RadialGradient]: RadialGradientProps;\n [NodeType.SweepGradient]: SweepGradientProps;\n [NodeType.TwoPointConicalGradient]: TwoPointConicalGradientProps;\n [NodeType.Blend]: BlendProps;\n};\n\ninterface PushShader<T extends keyof Props>\n extends Command<CommandType.PushShader> {\n shaderType: T;\n props: Props[T];\n}\n\nconst isShader = <T extends keyof Props>(\n command: Command<CommandType.PushShader>,\n type: T\n): command is PushShader<T> => {\n \"worklet\";\n return command.shaderType === type;\n};\n\nexport const pushShader = (\n ctx: DrawingContext,\n command: Command<CommandType.PushShader>\n) => {\n \"worklet\";\n if (isShader(command, NodeType.Shader)) {\n declareShader(ctx, command.props);\n } else if (isShader(command, NodeType.ImageShader)) {\n declareImageShader(ctx, command.props);\n } else if (isShader(command, NodeType.ColorShader)) {\n declareColorShader(ctx, command.props);\n } else if (isShader(command, NodeType.Turbulence)) {\n declareTurbulenceShader(ctx, command.props);\n } else if (isShader(command, NodeType.FractalNoise)) {\n declareFractalNoiseShader(ctx, command.props);\n } else if (isShader(command, NodeType.LinearGradient)) {\n declareLinearGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.RadialGradient)) {\n declareRadialGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.SweepGradient)) {\n declareSweepGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.TwoPointConicalGradient)) {\n declareTwoPointConicalGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.Blend)) {\n declareBlend(ctx, command.props);\n } else {\n throw new Error(`Unknown shader type: ${command.shaderType}`);\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"names":["_nodes","require","_types","_types2","_utils","_Core","declareShader","ctx","props","source","uniforms","transform","m3","Skia","Matrix","processTransformProps","shader","makeShaderWithChildren","processUniforms","shaders","splice","length","push","declareColorShader","color","Shader","MakeColor","Color","declareFractalNoiseShader","freqX","freqY","octaves","seed","tileWidth","tileHeight","MakeFractalNoise","declareTwoPointConicalGradientShader","startR","endR","start","end","colors","positions","mode","localMatrix","flags","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","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 processGradientProps,\n processTransformProps,\n rect2rect,\n} from \"../../../dom/nodes\";\nimport { NodeType } from \"../../../dom/types\";\nimport type {\n BlendProps,\n ColorProps,\n FractalNoiseProps,\n ImageShaderProps,\n LinearGradientProps,\n RadialGradientProps,\n ShaderProps,\n SweepGradientProps,\n TurbulenceProps,\n TwoPointConicalGradientProps,\n} from \"../../../dom/types\";\nimport type { SkShader } from \"../../../skia/types\";\nimport {\n BlendMode,\n FilterMode,\n isCubicSampling,\n MipmapMode,\n processUniforms,\n TileMode,\n} from \"../../../skia/types\";\nimport { composeDeclarations } from \"../../utils\";\nimport type { Command } from \"../Core\";\nimport { CommandType } from \"../Core\";\nimport type { DrawingContext } from \"../DrawingContext\";\n\nconst declareShader = (ctx: DrawingContext, props: ShaderProps) => {\n \"worklet\";\n const { source, uniforms, ...transform } = props;\n const m3 = ctx.Skia.Matrix();\n processTransformProps(m3, transform);\n const shader = source.makeShaderWithChildren(\n processUniforms(source, uniforms),\n ctx.shaders.splice(0, ctx.shaders.length),\n m3\n );\n ctx.shaders.push(shader);\n};\n\nconst declareColorShader = (ctx: DrawingContext, props: ColorProps) => {\n \"worklet\";\n const { color } = props;\n const shader = ctx.Skia.Shader.MakeColor(ctx.Skia.Color(color));\n ctx.shaders.push(shader);\n};\n\nconst declareFractalNoiseShader = (\n ctx: DrawingContext,\n props: FractalNoiseProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeFractalNoise(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTwoPointConicalGradientShader = (\n ctx: DrawingContext,\n props: TwoPointConicalGradientProps\n) => {\n \"worklet\";\n const { startR, endR, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeTwoPointConicalGradient(\n start,\n startR,\n end,\n endR,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareRadialGradientShader = (\n ctx: DrawingContext,\n props: RadialGradientProps\n) => {\n \"worklet\";\n const { c, r } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeRadialGradient(\n c,\n r,\n colors,\n positions,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareSweepGradientShader = (\n ctx: DrawingContext,\n props: SweepGradientProps\n) => {\n \"worklet\";\n const { c, start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeSweepGradient(\n c.x,\n c.y,\n colors,\n positions,\n mode,\n localMatrix,\n flags,\n start,\n end\n );\n ctx.shaders.push(shader);\n};\n\nconst declareLinearGradientShader = (\n ctx: DrawingContext,\n props: LinearGradientProps\n) => {\n \"worklet\";\n const { start, end } = props;\n const { colors, positions, mode, localMatrix, flags } = processGradientProps(\n ctx.Skia,\n props\n );\n const shader = ctx.Skia.Shader.MakeLinearGradient(\n start,\n end,\n colors,\n positions ?? null,\n mode,\n localMatrix,\n flags\n );\n ctx.shaders.push(shader);\n};\n\nconst declareTurbulenceShader = (\n ctx: DrawingContext,\n props: TurbulenceProps\n) => {\n \"worklet\";\n const { freqX, freqY, octaves, seed, tileWidth, tileHeight } = props;\n const shader = ctx.Skia.Shader.MakeTurbulence(\n freqX,\n freqY,\n octaves,\n seed,\n tileWidth,\n tileHeight\n );\n ctx.shaders.push(shader);\n};\n\nconst declareImageShader = (ctx: DrawingContext, props: ImageShaderProps) => {\n \"worklet\";\n const { fit, image, tx, ty, sampling, ...imageShaderProps } = props;\n if (!image) {\n return;\n }\n\n const rct = getRect(ctx.Skia, imageShaderProps);\n const m3 = ctx.Skia.Matrix();\n if (rct) {\n const rects = fitRects(\n fit,\n { x: 0, y: 0, width: image.width(), height: image.height() },\n rct\n );\n const [x, y, sx, sy] = rect2rect(rects.src, rects.dst);\n m3.translate(x.translateX, y.translateY);\n m3.scale(sx.scaleX, sy.scaleY);\n }\n const lm = ctx.Skia.Matrix();\n lm.concat(m3);\n processTransformProps(lm, imageShaderProps);\n let shader: SkShader;\n if (sampling && isCubicSampling(sampling)) {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling.B,\n sampling.C,\n lm\n );\n } else {\n shader = image.makeShaderCubic(\n TileMode[enumKey(tx)],\n TileMode[enumKey(ty)],\n sampling?.filter ?? FilterMode.Linear,\n sampling?.mipmap ?? MipmapMode.None,\n lm\n );\n }\n ctx.shaders.push(shader);\n};\n\nconst declareBlend = (ctx: DrawingContext, props: BlendProps) => {\n \"worklet\";\n const blend = BlendMode[enumKey(props.mode as BlendProps[\"mode\"])];\n const shaders = ctx.shaders.splice(0, ctx.shaders.length);\n if (shaders.length > 0) {\n const composer = ctx.Skia.Shader.MakeBlend.bind(ctx.Skia.Shader, blend);\n ctx.shaders.push(composeDeclarations(shaders, composer));\n }\n};\n\nexport const isPushShader = (\n command: Command\n): command is Command<CommandType.PushShader> => {\n \"worklet\";\n return command.type === CommandType.PushShader;\n};\n\ntype Props = {\n [NodeType.Shader]: ShaderProps;\n [NodeType.ImageShader]: ImageShaderProps;\n [NodeType.ColorShader]: ColorProps;\n [NodeType.Turbulence]: TurbulenceProps;\n [NodeType.FractalNoise]: FractalNoiseProps;\n [NodeType.LinearGradient]: LinearGradientProps;\n [NodeType.RadialGradient]: RadialGradientProps;\n [NodeType.SweepGradient]: SweepGradientProps;\n [NodeType.TwoPointConicalGradient]: TwoPointConicalGradientProps;\n [NodeType.Blend]: BlendProps;\n};\n\ninterface PushShader<T extends keyof Props>\n extends Command<CommandType.PushShader> {\n shaderType: T;\n props: Props[T];\n}\n\nconst isShader = <T extends keyof Props>(\n command: Command<CommandType.PushShader>,\n type: T\n): command is PushShader<T> => {\n \"worklet\";\n return command.shaderType === type;\n};\n\nexport const pushShader = (\n ctx: DrawingContext,\n command: Command<CommandType.PushShader>\n) => {\n \"worklet\";\n if (isShader(command, NodeType.Shader)) {\n declareShader(ctx, command.props);\n } else if (isShader(command, NodeType.ImageShader)) {\n declareImageShader(ctx, command.props);\n } else if (isShader(command, NodeType.ColorShader)) {\n declareColorShader(ctx, command.props);\n } else if (isShader(command, NodeType.Turbulence)) {\n declareTurbulenceShader(ctx, command.props);\n } else if (isShader(command, NodeType.FractalNoise)) {\n declareFractalNoiseShader(ctx, command.props);\n } else if (isShader(command, NodeType.LinearGradient)) {\n declareLinearGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.RadialGradient)) {\n declareRadialGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.SweepGradient)) {\n declareSweepGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.TwoPointConicalGradient)) {\n declareTwoPointConicalGradientShader(ctx, command.props);\n } else if (isShader(command, NodeType.Blend)) {\n declareBlend(ctx, command.props);\n } else {\n throw new Error(`Unknown shader type: ${command.shaderType}`);\n }\n};\n"],"mappings":"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","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { FillType, SkImage, StrokeOpts, Vector, Color, SkPoint, BlendMode, PointMode, VertexMode, SkFont, SkRRect, SkTextBlob, SkPicture, SkSVG, SkPaint, SkRect, SkRSXform, SkColor } from "../../skia/types";
|
1
|
+
import type { FillType, SkImage, StrokeOpts, Vector, Color, SkPoint, BlendMode, PointMode, VertexMode, SkFont, SkRRect, SkTextBlob, SkPicture, SkSVG, SkPaint, SkRect, SkRSXform, SkColor, SamplingOptions } from "../../skia/types";
|
2
2
|
import type { CircleDef, Fit, GroupProps, PathDef, RectDef, RRectDef, SkEnum } from "./Common";
|
3
3
|
export interface DrawingNodeProps extends GroupProps {
|
4
4
|
paint?: SkPaint;
|
@@ -6,6 +6,7 @@ export interface DrawingNodeProps extends GroupProps {
|
|
6
6
|
export type ImageProps = DrawingNodeProps & RectDef & {
|
7
7
|
fit?: Fit;
|
8
8
|
image: SkImage | null;
|
9
|
+
sampling?: SamplingOptions;
|
9
10
|
};
|
10
11
|
export type CircleProps = CircleDef & DrawingNodeProps;
|
11
12
|
export interface PathProps extends DrawingNodeProps {
|
@@ -27,6 +28,7 @@ export interface AtlasProps extends DrawingNodeProps {
|
|
27
28
|
sprites: SkRect[];
|
28
29
|
transforms: SkRSXform[];
|
29
30
|
colors?: SkColor[];
|
31
|
+
sampling?: SamplingOptions;
|
30
32
|
}
|
31
33
|
export interface CubicBezierHandle {
|
32
34
|
pos: Vector;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["Drawings.ts"],"sourcesContent":["import type {\n FillType,\n SkImage,\n StrokeOpts,\n Vector,\n Color,\n SkPoint,\n BlendMode,\n PointMode,\n VertexMode,\n SkFont,\n SkRRect,\n SkTextBlob,\n SkPicture,\n SkSVG,\n SkPaint,\n SkRect,\n SkRSXform,\n SkColor,\n} from \"../../skia/types\";\n\nimport type {\n CircleDef,\n Fit,\n GroupProps,\n PathDef,\n RectDef,\n RRectDef,\n SkEnum,\n} from \"./Common\";\n\nexport interface DrawingNodeProps extends GroupProps {\n paint?: SkPaint;\n}\n\nexport type ImageProps = DrawingNodeProps &\n RectDef & {\n fit?: Fit;\n image: SkImage | null;\n };\n\nexport type CircleProps = CircleDef & DrawingNodeProps;\n\nexport interface PathProps extends DrawingNodeProps {\n path: PathDef;\n start: number;\n end: number;\n stroke?: StrokeOpts;\n fillType?: SkEnum<typeof FillType>;\n}\n\nexport interface LineProps extends DrawingNodeProps {\n p1: Vector;\n p2: Vector;\n}\n\nexport type OvalProps = RectDef & DrawingNodeProps;\n\nexport type RectProps = RectDef & DrawingNodeProps;\n\nexport type RoundedRectProps = RRectDef & DrawingNodeProps;\n\nexport interface AtlasProps extends DrawingNodeProps {\n image: SkImage | null;\n sprites: SkRect[];\n transforms: SkRSXform[];\n colors?: SkColor[];\n}\n\nexport interface CubicBezierHandle {\n pos: Vector;\n c1: Vector;\n c2: Vector;\n}\n\nexport interface PatchProps extends DrawingNodeProps {\n colors?: Color[];\n patch: [\n CubicBezierHandle,\n CubicBezierHandle,\n CubicBezierHandle,\n CubicBezierHandle\n ];\n texture?: readonly [SkPoint, SkPoint, SkPoint, SkPoint];\n blendMode?: SkEnum<typeof BlendMode>;\n}\n\nexport interface VerticesProps extends DrawingNodeProps {\n colors?: string[];\n vertices: SkPoint[];\n textures?: SkPoint[];\n mode: SkEnum<typeof VertexMode>;\n blendMode?: SkEnum<typeof BlendMode>;\n indices?: number[];\n}\n\nexport interface ImageSVGProps extends DrawingNodeProps {\n svg: SkSVG | null;\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n rect?: SkRect;\n}\n\nexport interface PictureProps extends DrawingNodeProps {\n picture: SkPicture;\n}\n\nexport interface PointsProps extends DrawingNodeProps {\n points: SkPoint[];\n mode: SkEnum<typeof PointMode>;\n}\n\nexport interface DiffRectProps extends DrawingNodeProps {\n inner: SkRRect;\n outer: SkRRect;\n}\n\nexport interface TextProps extends DrawingNodeProps {\n font: SkFont | null;\n text: string;\n x: number;\n y: number;\n}\n\nexport interface TextPathProps extends DrawingNodeProps {\n font: SkFont | null;\n text: string;\n path: PathDef;\n initialOffset: number;\n}\n\nexport interface TextBlobProps extends DrawingNodeProps {\n blob: SkTextBlob;\n x: number;\n y: number;\n}\n\nexport interface Glyph {\n id: number;\n pos: SkPoint;\n}\n\nexport interface GlyphsProps extends DrawingNodeProps {\n font: SkFont | null;\n x: number;\n y: number;\n glyphs: Glyph[];\n}\n\nexport interface BoxProps extends DrawingNodeProps {\n box: SkRRect | SkRect;\n}\n\nexport interface BoxShadowProps {\n dx?: number;\n dy?: number;\n spread?: number;\n blur: number;\n color?: Color;\n inner?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
1
|
+
{"version":3,"names":[],"sources":["Drawings.ts"],"sourcesContent":["import type {\n FillType,\n SkImage,\n StrokeOpts,\n Vector,\n Color,\n SkPoint,\n BlendMode,\n PointMode,\n VertexMode,\n SkFont,\n SkRRect,\n SkTextBlob,\n SkPicture,\n SkSVG,\n SkPaint,\n SkRect,\n SkRSXform,\n SkColor,\n SamplingOptions,\n} from \"../../skia/types\";\n\nimport type {\n CircleDef,\n Fit,\n GroupProps,\n PathDef,\n RectDef,\n RRectDef,\n SkEnum,\n} from \"./Common\";\n\nexport interface DrawingNodeProps extends GroupProps {\n paint?: SkPaint;\n}\n\nexport type ImageProps = DrawingNodeProps &\n RectDef & {\n fit?: Fit;\n image: SkImage | null;\n sampling?: SamplingOptions;\n };\n\nexport type CircleProps = CircleDef & DrawingNodeProps;\n\nexport interface PathProps extends DrawingNodeProps {\n path: PathDef;\n start: number;\n end: number;\n stroke?: StrokeOpts;\n fillType?: SkEnum<typeof FillType>;\n}\n\nexport interface LineProps extends DrawingNodeProps {\n p1: Vector;\n p2: Vector;\n}\n\nexport type OvalProps = RectDef & DrawingNodeProps;\n\nexport type RectProps = RectDef & DrawingNodeProps;\n\nexport type RoundedRectProps = RRectDef & DrawingNodeProps;\n\nexport interface AtlasProps extends DrawingNodeProps {\n image: SkImage | null;\n sprites: SkRect[];\n transforms: SkRSXform[];\n colors?: SkColor[];\n sampling?: SamplingOptions;\n}\n\nexport interface CubicBezierHandle {\n pos: Vector;\n c1: Vector;\n c2: Vector;\n}\n\nexport interface PatchProps extends DrawingNodeProps {\n colors?: Color[];\n patch: [\n CubicBezierHandle,\n CubicBezierHandle,\n CubicBezierHandle,\n CubicBezierHandle\n ];\n texture?: readonly [SkPoint, SkPoint, SkPoint, SkPoint];\n blendMode?: SkEnum<typeof BlendMode>;\n}\n\nexport interface VerticesProps extends DrawingNodeProps {\n colors?: string[];\n vertices: SkPoint[];\n textures?: SkPoint[];\n mode: SkEnum<typeof VertexMode>;\n blendMode?: SkEnum<typeof BlendMode>;\n indices?: number[];\n}\n\nexport interface ImageSVGProps extends DrawingNodeProps {\n svg: SkSVG | null;\n x?: number;\n y?: number;\n width?: number;\n height?: number;\n rect?: SkRect;\n}\n\nexport interface PictureProps extends DrawingNodeProps {\n picture: SkPicture;\n}\n\nexport interface PointsProps extends DrawingNodeProps {\n points: SkPoint[];\n mode: SkEnum<typeof PointMode>;\n}\n\nexport interface DiffRectProps extends DrawingNodeProps {\n inner: SkRRect;\n outer: SkRRect;\n}\n\nexport interface TextProps extends DrawingNodeProps {\n font: SkFont | null;\n text: string;\n x: number;\n y: number;\n}\n\nexport interface TextPathProps extends DrawingNodeProps {\n font: SkFont | null;\n text: string;\n path: PathDef;\n initialOffset: number;\n}\n\nexport interface TextBlobProps extends DrawingNodeProps {\n blob: SkTextBlob;\n x: number;\n y: number;\n}\n\nexport interface Glyph {\n id: number;\n pos: SkPoint;\n}\n\nexport interface GlyphsProps extends DrawingNodeProps {\n font: SkFont | null;\n x: number;\n y: number;\n glyphs: Glyph[];\n}\n\nexport interface BoxProps extends DrawingNodeProps {\n box: SkRRect | SkRect;\n}\n\nexport interface BoxShadowProps {\n dx?: number;\n dy?: number;\n spread?: number;\n blur: number;\n color?: Color;\n inner?: boolean;\n}\n"],"mappings":"","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import type { Color,
|
1
|
+
import type { Color, SamplingOptions, SkImage, SkRect, SkRuntimeEffect, TileMode, Uniforms, Vector } from "../../skia/types";
|
2
2
|
import type { SkEnum, TransformProps, ChildrenProps, RectCtor, Fit } from "./Common";
|
3
3
|
export interface ShaderProps extends TransformProps, ChildrenProps {
|
4
4
|
source: SkRuntimeEffect;
|
@@ -7,11 +7,10 @@ export interface ShaderProps extends TransformProps, ChildrenProps {
|
|
7
7
|
export interface ImageShaderProps extends TransformProps, Partial<RectCtor> {
|
8
8
|
tx: SkEnum<typeof TileMode>;
|
9
9
|
ty: SkEnum<typeof TileMode>;
|
10
|
-
fm: SkEnum<typeof FilterMode>;
|
11
|
-
mm: SkEnum<typeof MipmapMode>;
|
12
10
|
fit: Fit;
|
13
11
|
rect?: SkRect;
|
14
12
|
image: SkImage | null;
|
13
|
+
sampling?: SamplingOptions;
|
15
14
|
}
|
16
15
|
export interface ColorProps {
|
17
16
|
color: Color;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":[],"sources":["Shaders.ts"],"sourcesContent":["import type {\n Color,\n
|
1
|
+
{"version":3,"names":[],"sources":["Shaders.ts"],"sourcesContent":["import type {\n Color,\n SamplingOptions,\n SkImage,\n SkRect,\n SkRuntimeEffect,\n TileMode,\n Uniforms,\n Vector,\n} from \"../../skia/types\";\n\nimport type {\n SkEnum,\n TransformProps,\n ChildrenProps,\n RectCtor,\n Fit,\n} from \"./Common\";\n\nexport interface ShaderProps extends TransformProps, ChildrenProps {\n source: SkRuntimeEffect;\n uniforms: Uniforms;\n}\n\nexport interface ImageShaderProps extends TransformProps, Partial<RectCtor> {\n tx: SkEnum<typeof TileMode>;\n ty: SkEnum<typeof TileMode>;\n fit: Fit;\n rect?: SkRect;\n image: SkImage | null;\n sampling?: SamplingOptions;\n}\n\nexport interface ColorProps {\n color: Color;\n}\n\nexport interface TurbulenceProps {\n freqX: number;\n freqY: number;\n octaves: number;\n seed: number;\n tileWidth: number;\n tileHeight: number;\n}\n\nexport interface FractalNoiseProps {\n freqX: number;\n freqY: number;\n octaves: number;\n seed: number;\n tileWidth: number;\n tileHeight: number;\n}\n\nexport interface GradientProps extends TransformProps {\n colors: Color[];\n positions?: number[];\n mode?: SkEnum<typeof TileMode>;\n flags?: number;\n}\n\nexport interface LinearGradientProps extends GradientProps {\n start: Vector;\n end: Vector;\n}\n\nexport interface RadialGradientProps extends GradientProps {\n c: Vector;\n r: number;\n}\n\nexport interface SweepGradientProps extends GradientProps {\n c: Vector;\n start?: number;\n end?: number;\n}\n\nexport interface TwoPointConicalGradientProps extends GradientProps {\n start: Vector;\n startR: number;\n end: Vector;\n endR: number;\n}\n"],"mappings":"","ignoreList":[]}
|
@@ -1,4 +1,4 @@
|
|
1
1
|
import React from "react";
|
2
2
|
import type { ImageShaderProps } from "../../../dom/types";
|
3
3
|
import type { SkiaDefaultProps } from "../../processors";
|
4
|
-
export declare const ImageShader: ({ tx, ty,
|
4
|
+
export declare const ImageShader: ({ tx, ty, fit, transform, ...props }: SkiaDefaultProps<ImageShaderProps, "tx" | "ty" | "fit" | "transform">) => React.JSX.Element;
|
@@ -3,8 +3,6 @@ import React from "react";
|
|
3
3
|
export const ImageShader = ({
|
4
4
|
tx = "decal",
|
5
5
|
ty = "decal",
|
6
|
-
fm = "nearest",
|
7
|
-
mm = "none",
|
8
6
|
fit = "none",
|
9
7
|
transform = [],
|
10
8
|
...props
|
@@ -12,8 +10,6 @@ export const ImageShader = ({
|
|
12
10
|
return /*#__PURE__*/React.createElement("skImageShader", _extends({
|
13
11
|
tx: tx,
|
14
12
|
ty: ty,
|
15
|
-
fm: fm,
|
16
|
-
mm: mm,
|
17
13
|
fit: fit,
|
18
14
|
transform: transform
|
19
15
|
}, props));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"names":["React","ImageShader","tx","ty","
|
1
|
+
{"version":3,"names":["React","ImageShader","tx","ty","fit","transform","props","createElement","_extends"],"sources":["ImageShader.tsx"],"sourcesContent":["import React from \"react\";\n\nimport type { ImageShaderProps } from \"../../../dom/types\";\nimport type { SkiaDefaultProps } from \"../../processors\";\n\nexport const ImageShader = ({\n tx = \"decal\",\n ty = \"decal\",\n fit = \"none\",\n transform = [],\n ...props\n}: SkiaDefaultProps<ImageShaderProps, \"tx\" | \"ty\" | \"fit\" | \"transform\">) => {\n return (\n <skImageShader tx={tx} ty={ty} fit={fit} transform={transform} {...props} />\n );\n};\n"],"mappings":";AAAA,OAAOA,KAAK,MAAM,OAAO;AAKzB,OAAO,MAAMC,WAAW,GAAGA,CAAC;EAC1BC,EAAE,GAAG,OAAO;EACZC,EAAE,GAAG,OAAO;EACZC,GAAG,GAAG,MAAM;EACZC,SAAS,GAAG,EAAE;EACd,GAAGC;AACkE,CAAC,KAAK;EAC3E,oBACEN,KAAA,CAAAO,aAAA,kBAAAC,QAAA;IAAeN,EAAE,EAAEA,EAAG;IAACC,EAAE,EAAEA,EAAG;IAACC,GAAG,EAAEA,GAAI;IAACC,SAAS,EAAEA;EAAU,GAAKC,KAAK,CAAG,CAAC;AAEhF,CAAC","ignoreList":[]}
|
@@ -2,7 +2,7 @@ import type { SkPaint } from "./Paint";
|
|
2
2
|
import type { SkRect } from "./Rect";
|
3
3
|
import type { SkFont } from "./Font";
|
4
4
|
import type { SkPath } from "./Path";
|
5
|
-
import type { SkImage, MipmapMode, FilterMode, ImageInfo,
|
5
|
+
import type { SkImage, MipmapMode, FilterMode, ImageInfo, SamplingOptions } from "./Image";
|
6
6
|
import type { SkSVG } from "./SVG";
|
7
7
|
import type { SkColor } from "./Color";
|
8
8
|
import type { InputRRect } from "./RRect";
|
@@ -392,7 +392,7 @@ export interface SkCanvas {
|
|
392
392
|
* @param {CubicResampler | FilterOptions} [sampling] - The sampling options. Optional.
|
393
393
|
* @returns {void} This method does not return anything.
|
394
394
|
*/
|
395
|
-
drawAtlas(atlas: SkImage, srcs: SkRect[], dsts: SkRSXform[], paint: SkPaint, blendMode?: BlendMode, colors?: SkColor[], sampling?:
|
395
|
+
drawAtlas(atlas: SkImage, srcs: SkRect[], dsts: SkRSXform[], paint: SkPaint, blendMode?: BlendMode, colors?: SkColor[], sampling?: SamplingOptions): void;
|
396
396
|
/** Read Image pixels
|
397
397
|
*
|
398
398
|
* @param srcX - x-axis upper left corner of the rectangle to read from
|