@shopify/react-native-skia 0.1.158 → 0.1.159
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +35 -11
- package/android/build.gradle +21 -25
- package/android/cpp/jni/JniLoad.cpp +2 -0
- package/android/cpp/jni/include/JniSkiaDomView.h +89 -0
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +4 -3
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +4 -3
- package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +2 -1
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +45 -0
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +64 -0
- package/cpp/api/JsiSkHostObjects.h +6 -0
- package/cpp/api/JsiSkImageFilterFactory.h +1 -1
- package/cpp/api/JsiSkPaint.h +9 -2
- package/cpp/api/JsiSkPath.h +1 -0
- package/cpp/api/JsiSkRuntimeEffect.h +36 -36
- package/cpp/jsi/JsiHostObject.cpp +16 -28
- package/cpp/jsi/JsiHostObject.h +127 -7
- package/cpp/jsi/JsiValue.cpp +346 -0
- package/cpp/jsi/JsiValue.h +222 -0
- package/cpp/jsi/JsiValueWrapper.h +33 -5
- package/cpp/rnskia/RNSkDomView.cpp +220 -0
- package/cpp/rnskia/RNSkDomView.h +140 -0
- package/cpp/rnskia/RNSkJsView.cpp +0 -4
- package/cpp/rnskia/RNSkJsView.h +6 -4
- package/cpp/rnskia/RNSkManager.cpp +7 -0
- package/cpp/rnskia/RNSkPictureView.h +5 -8
- package/cpp/rnskia/RNSkView.h +113 -5
- package/cpp/rnskia/dom/JsiDomApi.h +167 -0
- package/cpp/rnskia/dom/base/BaseNodeProp.h +72 -0
- package/cpp/rnskia/dom/base/DerivedNodeProp.h +187 -0
- package/cpp/rnskia/dom/base/DrawingContext.cpp +227 -0
- package/cpp/rnskia/dom/base/DrawingContext.h +136 -0
- package/cpp/rnskia/dom/base/JsiDependencyManager.h +294 -0
- package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +176 -0
- package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +50 -0
- package/cpp/rnskia/dom/base/JsiDomNode.h +361 -0
- package/cpp/rnskia/dom/base/JsiDomRenderNode.h +267 -0
- package/cpp/rnskia/dom/base/NodeProp.h +130 -0
- package/cpp/rnskia/dom/base/NodePropsContainer.h +119 -0
- package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +38 -0
- package/cpp/rnskia/dom/nodes/JsiBlendNode.h +112 -0
- package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +78 -0
- package/cpp/rnskia/dom/nodes/JsiBoxNode.h +104 -0
- package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +33 -0
- package/cpp/rnskia/dom/nodes/JsiCircleNode.h +38 -0
- package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +192 -0
- package/cpp/rnskia/dom/nodes/JsiCustomDrawingNode.h +123 -0
- package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +42 -0
- package/cpp/rnskia/dom/nodes/JsiFillNode.h +22 -0
- package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +56 -0
- package/cpp/rnskia/dom/nodes/JsiGroupNode.h +26 -0
- package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +415 -0
- package/cpp/rnskia/dom/nodes/JsiImageNode.h +34 -0
- package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +44 -0
- package/cpp/rnskia/dom/nodes/JsiLayerNode.h +64 -0
- package/cpp/rnskia/dom/nodes/JsiLineNode.h +43 -0
- package/cpp/rnskia/dom/nodes/JsiOvalNode.h +34 -0
- package/cpp/rnskia/dom/nodes/JsiPaintNode.h +77 -0
- package/cpp/rnskia/dom/nodes/JsiPatchNode.h +54 -0
- package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +315 -0
- package/cpp/rnskia/dom/nodes/JsiPathNode.h +181 -0
- package/cpp/rnskia/dom/nodes/JsiPictureNode.h +32 -0
- package/cpp/rnskia/dom/nodes/JsiPointsNode.h +51 -0
- package/cpp/rnskia/dom/nodes/JsiRRectNode.h +34 -0
- package/cpp/rnskia/dom/nodes/JsiRectNode.h +34 -0
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +517 -0
- package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +47 -0
- package/cpp/rnskia/dom/nodes/JsiTextNode.h +54 -0
- package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +32 -0
- package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +43 -0
- package/cpp/rnskia/dom/props/BezierProps.h +63 -0
- package/cpp/rnskia/dom/props/BlendModeProp.h +101 -0
- package/cpp/rnskia/dom/props/BoxShadowProps.h +61 -0
- package/cpp/rnskia/dom/props/CircleProp.h +46 -0
- package/cpp/rnskia/dom/props/ClipProp.h +62 -0
- package/cpp/rnskia/dom/props/ColorProp.h +80 -0
- package/cpp/rnskia/dom/props/DrawingProp.h +33 -0
- package/cpp/rnskia/dom/props/FontProp.h +34 -0
- package/cpp/rnskia/dom/props/GlyphsProp.h +53 -0
- package/cpp/rnskia/dom/props/ImageProps.h +173 -0
- package/cpp/rnskia/dom/props/LayerProp.h +50 -0
- package/cpp/rnskia/dom/props/MatrixProp.h +33 -0
- package/cpp/rnskia/dom/props/NumbersProp.h +63 -0
- package/cpp/rnskia/dom/props/PaintProps.h +172 -0
- package/cpp/rnskia/dom/props/PathProp.h +55 -0
- package/cpp/rnskia/dom/props/PictureProp.h +38 -0
- package/cpp/rnskia/dom/props/PointProp.h +72 -0
- package/cpp/rnskia/dom/props/PointsProp.h +83 -0
- package/cpp/rnskia/dom/props/RRectProp.h +134 -0
- package/cpp/rnskia/dom/props/RadiusProp.h +43 -0
- package/cpp/rnskia/dom/props/RectProp.h +118 -0
- package/cpp/rnskia/dom/props/StrokeProps.h +75 -0
- package/cpp/rnskia/dom/props/SvgProp.h +37 -0
- package/cpp/rnskia/dom/props/TextBlobProp.h +128 -0
- package/cpp/rnskia/dom/props/TileModeProp.h +50 -0
- package/cpp/rnskia/dom/props/TransformProp.h +80 -0
- package/cpp/rnskia/dom/props/TransformsProps.h +68 -0
- package/cpp/rnskia/dom/props/UniformsProp.h +194 -0
- package/cpp/rnskia/dom/props/VertexModeProp.h +47 -0
- package/cpp/rnskia/dom/props/VerticesProps.h +67 -0
- package/cpp/rnskia/values/RNSkReadonlyValue.h +13 -4
- package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +35 -1
- package/cpp/skia/include/codec/SkAndroidCodec.h +17 -1
- package/cpp/skia/include/codec/SkCodec.h +8 -5
- package/cpp/skia/include/core/SkAnnotation.h +2 -0
- package/cpp/skia/include/core/SkBitmap.h +52 -1
- package/cpp/skia/include/core/SkBlendMode.h +2 -0
- package/cpp/skia/include/core/SkCanvas.h +52 -31
- package/cpp/skia/include/core/SkCapabilities.h +44 -0
- package/cpp/skia/include/core/SkColor.h +7 -0
- package/cpp/skia/include/core/SkColorFilter.h +37 -0
- package/cpp/skia/include/core/SkColorSpace.h +1 -1
- package/cpp/skia/include/core/SkFont.h +4 -0
- package/cpp/skia/include/core/SkFontMgr.h +3 -0
- package/cpp/skia/include/core/SkGraphics.h +9 -0
- package/cpp/skia/include/core/SkImage.h +77 -17
- package/cpp/skia/include/core/SkImageEncoder.h +5 -3
- package/cpp/skia/include/core/SkImageGenerator.h +27 -17
- package/cpp/skia/include/core/SkM44.h +1 -0
- package/cpp/skia/include/core/SkMesh.h +120 -34
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkOverdrawCanvas.h +2 -1
- package/cpp/skia/include/core/SkPaint.h +15 -2
- package/cpp/skia/include/core/SkPath.h +4 -0
- package/cpp/skia/include/core/SkPathBuilder.h +1 -1
- package/cpp/skia/include/core/SkPicture.h +0 -3
- package/cpp/skia/include/core/SkPictureRecorder.h +0 -2
- package/cpp/skia/include/core/SkPixmap.h +19 -0
- package/cpp/skia/include/core/SkRasterHandleAllocator.h +3 -1
- package/cpp/skia/include/core/SkRect.h +11 -4
- package/cpp/skia/include/core/SkRefCnt.h +13 -1
- package/cpp/skia/include/core/SkRegion.h +6 -0
- package/cpp/skia/include/core/SkSamplingOptions.h +8 -6
- package/cpp/skia/include/core/SkScalar.h +6 -25
- package/cpp/skia/include/core/SkShader.h +20 -12
- package/cpp/skia/include/core/SkSpan.h +51 -19
- package/cpp/skia/include/core/SkStream.h +2 -2
- package/cpp/skia/include/core/SkString.h +11 -3
- package/cpp/skia/include/core/SkSurface.h +85 -8
- package/cpp/skia/include/core/SkTextBlob.h +5 -2
- package/cpp/skia/include/core/SkTypes.h +11 -10
- package/cpp/skia/include/docs/SkPDFDocument.h +0 -5
- package/cpp/skia/include/effects/Sk1DPathEffect.h +6 -1
- package/cpp/skia/include/effects/Sk2DPathEffect.h +4 -1
- package/cpp/skia/include/effects/SkColorMatrix.h +1 -0
- package/cpp/skia/include/effects/SkColorMatrixFilter.h +5 -8
- package/cpp/skia/include/effects/SkCornerPathEffect.h +5 -1
- package/cpp/skia/include/effects/SkDashPathEffect.h +5 -1
- package/cpp/skia/include/effects/SkGradientShader.h +68 -38
- package/cpp/skia/include/effects/SkHighContrastFilter.h +5 -1
- package/cpp/skia/include/effects/SkImageFilters.h +5 -4
- package/cpp/skia/include/effects/SkLumaColorFilter.h +4 -1
- package/cpp/skia/include/effects/SkOpPathEffect.h +6 -2
- package/cpp/skia/include/effects/SkOverdrawColorFilter.h +5 -2
- package/cpp/skia/include/effects/SkRuntimeEffect.h +54 -62
- package/cpp/skia/include/effects/SkShaderMaskFilter.h +3 -1
- package/cpp/skia/include/effects/SkTableColorFilter.h +8 -21
- package/cpp/skia/include/effects/SkTableMaskFilter.h +5 -1
- package/cpp/skia/include/effects/SkTrimPathEffect.h +5 -1
- package/cpp/skia/include/encode/SkEncoder.h +17 -0
- package/cpp/skia/include/encode/SkWebpEncoder.h +17 -0
- package/cpp/skia/include/gpu/GpuTypes.h +18 -0
- package/cpp/skia/include/gpu/GrBackendSurface.h +38 -17
- package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +6 -71
- package/cpp/skia/include/gpu/GrContextOptions.h +1 -1
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +10 -9
- package/cpp/skia/include/gpu/GrDirectContext.h +42 -22
- package/cpp/skia/include/gpu/GrRecordingContext.h +6 -3
- package/cpp/skia/include/gpu/GrTypes.h +11 -11
- package/cpp/skia/include/gpu/MutableTextureState.h +122 -0
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -0
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +1 -0
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +7 -0
- package/cpp/skia/include/gpu/graphite/CombinationBuilder.h +195 -0
- package/cpp/skia/include/gpu/graphite/Context.h +47 -55
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +85 -0
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +1 -17
- package/cpp/skia/include/gpu/graphite/ImageProvider.h +61 -0
- package/cpp/skia/include/gpu/graphite/Recorder.h +87 -8
- package/cpp/skia/include/gpu/graphite/Recording.h +19 -9
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +40 -8
- package/cpp/skia/include/gpu/graphite/dawn/DawnBackendContext.h +25 -0
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +3 -2
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +69 -0
- package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +39 -0
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +21 -19
- package/cpp/skia/include/gpu/vk/GrVkExtensions.h +2 -50
- package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +2 -127
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +5 -43
- package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +46 -0
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +67 -0
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +116 -0
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +59 -0
- package/cpp/skia/include/pathops/SkPathOps.h +1 -1
- package/cpp/skia/include/private/SkColorData.h +10 -40
- package/cpp/skia/include/private/SkEncodedInfo.h +9 -3
- package/cpp/skia/include/private/SkFloatingPoint.h +9 -6
- package/cpp/skia/include/private/SkHalf.h +5 -52
- package/cpp/skia/include/private/SkMacros.h +1 -1
- package/cpp/skia/include/private/SkMalloc.h +4 -0
- package/cpp/skia/include/private/SkPathRef.h +10 -10
- package/cpp/skia/include/private/SkSLModifiers.h +59 -23
- package/cpp/skia/include/private/SkSLProgramKind.h +1 -0
- package/cpp/skia/include/private/SkSLSymbol.h +7 -3
- package/cpp/skia/include/private/SkStringView.h +4 -0
- package/cpp/skia/include/private/SkTArray.h +21 -7
- package/cpp/skia/include/private/SkTDArray.h +173 -285
- package/cpp/skia/include/private/SkTHash.h +33 -32
- package/cpp/skia/include/private/SkTemplates.h +24 -26
- package/cpp/skia/include/private/SkVx.h +218 -135
- package/cpp/skia/include/private/chromium/GrSlug.h +3 -65
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +6 -3
- package/cpp/skia/include/private/chromium/Slug.h +76 -0
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +6 -1
- package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +5 -39
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +63 -0
- package/cpp/skia/include/{gpu/vk/GrVkVulkan.h → private/gpu/vk/SkiaVulkan.h} +2 -2
- package/cpp/skia/include/private/gpu/vk/VulkanTypesPriv.h +57 -0
- package/cpp/skia/include/sksl/DSL.h +0 -1
- package/cpp/skia/include/sksl/DSLBlock.h +4 -18
- package/cpp/skia/include/sksl/DSLCase.h +2 -8
- package/cpp/skia/include/sksl/DSLCore.h +8 -15
- package/cpp/skia/include/sksl/DSLExpression.h +51 -142
- package/cpp/skia/include/sksl/DSLFunction.h +7 -15
- package/cpp/skia/include/sksl/DSLModifiers.h +5 -2
- package/cpp/skia/include/sksl/DSLStatement.h +4 -39
- package/cpp/skia/include/sksl/DSLSymbols.h +1 -11
- package/cpp/skia/include/sksl/DSLType.h +20 -12
- package/cpp/skia/include/sksl/DSLVar.h +56 -146
- package/cpp/skia/include/sksl/SkSLErrorReporter.h +2 -15
- package/cpp/skia/include/sksl/SkSLOperator.h +62 -59
- package/cpp/skia/include/sksl/SkSLPosition.h +2 -0
- package/cpp/skia/include/sksl/SkSLVersion.h +27 -0
- package/cpp/skia/include/svg/SkSVGCanvas.h +1 -0
- package/cpp/skia/include/utils/SkAnimCodecPlayer.h +1 -1
- package/cpp/skia/include/utils/SkBase64.h +2 -0
- package/cpp/skia/include/utils/SkCustomTypeface.h +24 -11
- package/cpp/skia/include/utils/SkEventTracer.h +12 -1
- package/cpp/skia/include/utils/SkNWayCanvas.h +11 -4
- package/cpp/skia/include/utils/SkPaintFilterCanvas.h +9 -4
- package/cpp/skia/include/utils/SkParse.h +3 -0
- package/cpp/skia/include/utils/SkShadowUtils.h +2 -0
- package/cpp/skia/include/utils/SkTextUtils.h +2 -1
- package/cpp/skia/{include/third_party → modules}/skcms/skcms.h +10 -0
- package/cpp/skia/modules/skcms/skcms_internal.h +56 -0
- package/cpp/skia/modules/skcms/src/Transform_inl.h +1609 -0
- package/cpp/skia/modules/skparagraph/include/DartTypes.h +153 -0
- package/cpp/skia/modules/skparagraph/include/FontArguments.h +46 -0
- package/cpp/skia/modules/skparagraph/include/FontCollection.h +84 -0
- package/cpp/skia/modules/skparagraph/include/Metrics.h +98 -0
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +111 -0
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +69 -0
- package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +77 -0
- package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +143 -0
- package/cpp/skia/modules/skparagraph/include/TextShadow.h +30 -0
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +352 -0
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +81 -0
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +3 -3
- package/cpp/skia/src/core/SkLRUCache.h +126 -0
- package/cpp/skia/src/core/SkTInternalLList.h +302 -0
- package/cpp/utils/RNSkTimingInfo.h +1 -0
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.h +15 -4
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +40 -54
- package/ios/RNSkia-iOS/SkiaDomViewManager.h +8 -0
- package/ios/RNSkia-iOS/SkiaDomViewManager.mm +51 -0
- package/lib/commonjs/dom/nodes/JsiSkDOM.js +56 -56
- package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/commonjs/dom/nodes/RenderNode.js +1 -1
- package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.js +19 -63
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/renderer/DependencyManager.js +0 -5
- package/lib/commonjs/renderer/DependencyManager.js.map +1 -1
- package/lib/commonjs/renderer/HostComponents.js.map +1 -1
- package/lib/commonjs/renderer/useCanvas.js +4 -18
- package/lib/commonjs/renderer/useCanvas.js.map +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.js +7 -0
- package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
- package/lib/commonjs/views/SkiaDomView.js +152 -0
- package/lib/commonjs/views/SkiaDomView.js.map +1 -0
- package/lib/commonjs/views/SkiaDomView.web.js +55 -0
- package/lib/commonjs/views/SkiaDomView.web.js.map +1 -0
- package/lib/commonjs/views/SkiaPictureView.js +16 -2
- package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
- package/lib/commonjs/views/SkiaView.js +17 -2
- package/lib/commonjs/views/SkiaView.js.map +1 -1
- package/lib/commonjs/views/index.js +13 -0
- package/lib/commonjs/views/index.js.map +1 -1
- package/lib/commonjs/views/types.js.map +1 -1
- package/lib/module/dom/nodes/JsiSkDOM.js +56 -56
- package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/module/dom/nodes/RenderNode.js +1 -1
- package/lib/module/dom/nodes/RenderNode.js.map +1 -1
- package/lib/module/renderer/Canvas.js +20 -64
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/renderer/DependencyManager.js +0 -5
- package/lib/module/renderer/DependencyManager.js.map +1 -1
- package/lib/module/renderer/HostComponents.js.map +1 -1
- package/lib/module/renderer/useCanvas.js +2 -13
- package/lib/module/renderer/useCanvas.js.map +1 -1
- package/lib/module/views/SkiaBaseWebView.js +7 -0
- package/lib/module/views/SkiaBaseWebView.js.map +1 -1
- package/lib/module/views/SkiaDomView.js +128 -0
- package/lib/module/views/SkiaDomView.js.map +1 -0
- package/lib/module/views/SkiaDomView.web.js +41 -0
- package/lib/module/views/SkiaDomView.web.js.map +1 -0
- package/lib/module/views/SkiaPictureView.js +14 -2
- package/lib/module/views/SkiaPictureView.js.map +1 -1
- package/lib/module/views/SkiaView.js +15 -2
- package/lib/module/views/SkiaView.js.map +1 -1
- package/lib/module/views/index.js +1 -0
- package/lib/module/views/index.js.map +1 -1
- package/lib/module/views/types.js.map +1 -1
- package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +57 -64
- package/lib/typescript/src/renderer/Canvas.d.ts +5 -8
- package/lib/typescript/src/renderer/DependencyManager.d.ts +0 -2
- package/lib/typescript/src/renderer/HostComponents.d.ts +66 -3
- package/lib/typescript/src/renderer/useCanvas.d.ts +0 -6
- package/lib/typescript/src/views/SkiaBaseWebView.d.ts +4 -0
- package/lib/typescript/src/views/SkiaDomView.d.ts +31 -0
- package/lib/typescript/src/views/SkiaDomView.web.d.ts +7 -0
- package/lib/typescript/src/views/index.d.ts +1 -0
- package/lib/typescript/src/views/types.d.ts +12 -2
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libskparagraph.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libskshaper.a +0 -0
- package/libs/android/arm64-v8a/libskunicode.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libskia.a +0 -0
- package/libs/android/armeabi-v7a/libskottie.a +0 -0
- package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libskshaper.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libskia.a +0 -0
- package/libs/android/x86/libskottie.a +0 -0
- package/libs/android/x86/libskparagraph.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libskshaper.a +0 -0
- package/libs/android/x86/libskunicode.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libskia.a +0 -0
- package/libs/android/x86_64/libskottie.a +0 -0
- package/libs/android/x86_64/libskparagraph.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libskshaper.a +0 -0
- package/libs/android/x86_64/libskunicode.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/Info.plist +42 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/Info.plist +5 -5
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libskunicode.xcframework/Info.plist +42 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +5 -3
- package/react-native-skia.podspec +3 -1
- package/src/dom/nodes/JsiSkDOM.ts +170 -56
- package/src/dom/nodes/RenderNode.ts +1 -1
- package/src/renderer/Canvas.tsx +32 -56
- package/src/renderer/DependencyManager.tsx +0 -5
- package/src/renderer/HostComponents.ts +152 -1
- package/src/renderer/useCanvas.ts +1 -15
- package/src/views/SkiaBaseWebView.tsx +4 -0
- package/src/views/SkiaDomView.tsx +120 -0
- package/src/views/SkiaDomView.web.tsx +37 -0
- package/src/views/SkiaPictureView.tsx +10 -2
- package/src/views/SkiaView.tsx +11 -3
- package/src/views/index.ts +1 -0
- package/src/views/types.ts +19 -2
- package/cpp/jsi/JsiSimpleValueWrapper.h +0 -99
- package/cpp/skia/include/c/sk_canvas.h +0 -159
- package/cpp/skia/include/c/sk_colorspace.h +0 -25
- package/cpp/skia/include/c/sk_data.h +0 -65
- package/cpp/skia/include/c/sk_image.h +0 -71
- package/cpp/skia/include/c/sk_imageinfo.h +0 -62
- package/cpp/skia/include/c/sk_maskfilter.h +0 -47
- package/cpp/skia/include/c/sk_matrix.h +0 -49
- package/cpp/skia/include/c/sk_paint.h +0 -145
- package/cpp/skia/include/c/sk_path.h +0 -102
- package/cpp/skia/include/c/sk_picture.h +0 -70
- package/cpp/skia/include/c/sk_shader.h +0 -143
- package/cpp/skia/include/c/sk_surface.h +0 -73
- package/cpp/skia/include/c/sk_types.h +0 -278
- package/cpp/skia/include/gpu/graphite/SkStuff.h +0 -47
- package/cpp/skia/include/private/SkNx.h +0 -430
- package/cpp/skia/include/private/SkNx_neon.h +0 -713
- package/cpp/skia/include/private/SkNx_sse.h +0 -823
- package/cpp/skia/include/sksl/DSLRuntimeEffects.h +0 -32
- package/cpp/skia/include/sksl/DSLWrapper.h +0 -77
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2021 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef sktext_gpu_Slug_DEFINED
|
|
9
|
+
#define sktext_gpu_Slug_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkData.h"
|
|
12
|
+
#include "include/core/SkRect.h"
|
|
13
|
+
#include "include/core/SkRefCnt.h"
|
|
14
|
+
|
|
15
|
+
class SkCanvas;
|
|
16
|
+
class SkMatrix;
|
|
17
|
+
class SkPaint;
|
|
18
|
+
class SkTextBlob;
|
|
19
|
+
class SkReadBuffer;
|
|
20
|
+
class SkStrikeClient;
|
|
21
|
+
class SkWriteBuffer;
|
|
22
|
+
|
|
23
|
+
namespace sktext::gpu {
|
|
24
|
+
|
|
25
|
+
// You can use Slug to simulate drawTextBlob by defining the following at compile time.
|
|
26
|
+
// SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG
|
|
27
|
+
// You can use Slug serialization to simulate drawTextBlob by defining the following:
|
|
28
|
+
// SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE
|
|
29
|
+
// For Skia, add this to your args.gn file.
|
|
30
|
+
// extra_cflags = ["-D", "SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG"]
|
|
31
|
+
|
|
32
|
+
// Slug encapsulates an SkTextBlob at a specific origin, using a specific paint. It can be
|
|
33
|
+
// manipulated using matrix and clip changes to the canvas. If the canvas is transformed, then
|
|
34
|
+
// the Slug will also transform with smaller glyphs using bi-linear interpolation to render. You
|
|
35
|
+
// can think of a Slug as making a rubber stamp out of a SkTextBlob.
|
|
36
|
+
class SK_API Slug : public SkRefCnt {
|
|
37
|
+
public:
|
|
38
|
+
// Return nullptr if the blob would not draw. This is not because of clipping, but because of
|
|
39
|
+
// some paint optimization. The Slug is captured as if drawn using drawTextBlob.
|
|
40
|
+
static sk_sp<Slug> ConvertBlob(
|
|
41
|
+
SkCanvas* canvas, const SkTextBlob& blob, SkPoint origin, const SkPaint& paint);
|
|
42
|
+
|
|
43
|
+
// Serialize the slug.
|
|
44
|
+
sk_sp<SkData> serialize() const;
|
|
45
|
+
size_t serialize(void* buffer, size_t size) const;
|
|
46
|
+
|
|
47
|
+
// Set the client parameter to the appropriate SkStrikeClient when typeface ID translation
|
|
48
|
+
// is needed.
|
|
49
|
+
static sk_sp<Slug> Deserialize(
|
|
50
|
+
const void* data, size_t size, const SkStrikeClient* client = nullptr);
|
|
51
|
+
static sk_sp<Slug> MakeFromBuffer(SkReadBuffer& buffer);
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
// Draw the Slug obeying the canvas's mapping and clipping.
|
|
55
|
+
void draw(SkCanvas* canvas) const;
|
|
56
|
+
|
|
57
|
+
virtual SkRect sourceBounds() const = 0;
|
|
58
|
+
virtual SkRect sourceBoundsWithOrigin () const = 0;
|
|
59
|
+
|
|
60
|
+
// The paint passed into ConvertBlob; this paint is used instead of the paint resulting from
|
|
61
|
+
// the call to aboutToDraw because when we call draw(), the initial paint is needed to call
|
|
62
|
+
// aboutToDraw again to get the layer right.
|
|
63
|
+
virtual const SkPaint& initialPaint() const = 0;
|
|
64
|
+
|
|
65
|
+
virtual void doFlatten(SkWriteBuffer&) const = 0;
|
|
66
|
+
|
|
67
|
+
uint32_t uniqueID() const { return fUniqueID; }
|
|
68
|
+
|
|
69
|
+
private:
|
|
70
|
+
static uint32_t NextUniqueID();
|
|
71
|
+
const uint32_t fUniqueID{NextUniqueID()};
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
} // namespace sktext::gpu
|
|
75
|
+
|
|
76
|
+
#endif // sktext_gpu_Slug_DEFINED
|
|
@@ -135,6 +135,11 @@ struct GrMipLevel {
|
|
|
135
135
|
size_t fRowBytes = 0;
|
|
136
136
|
// This may be used to keep fPixels from being freed while a GrMipLevel exists.
|
|
137
137
|
sk_sp<SkData> fOptionalStorage;
|
|
138
|
+
|
|
139
|
+
static_assert(::sk_is_trivially_relocatable<decltype(fPixels)>::value);
|
|
140
|
+
static_assert(::sk_is_trivially_relocatable<decltype(fOptionalStorage)>::value);
|
|
141
|
+
|
|
142
|
+
using sk_is_trivially_relocatable = std::true_type;
|
|
138
143
|
};
|
|
139
144
|
|
|
140
145
|
enum class GrSemaphoreWrapType {
|
|
@@ -410,7 +415,7 @@ enum class GrGpuBufferType {
|
|
|
410
415
|
kXferGpuToCpu,
|
|
411
416
|
kUniform,
|
|
412
417
|
};
|
|
413
|
-
static const int kGrGpuBufferTypeCount = static_cast<int>(GrGpuBufferType::kUniform) + 1;
|
|
418
|
+
static const constexpr int kGrGpuBufferTypeCount = static_cast<int>(GrGpuBufferType::kUniform) + 1;
|
|
414
419
|
|
|
415
420
|
/**
|
|
416
421
|
* Provides a performance hint regarding the frequency at which a data store will be accessed.
|
|
@@ -11,7 +11,10 @@
|
|
|
11
11
|
#include "include/core/SkRefCnt.h"
|
|
12
12
|
#include "include/gpu/vk/GrVkTypes.h"
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
namespace skgpu {
|
|
15
|
+
class MutableTextureStateRef;
|
|
16
|
+
}
|
|
17
|
+
|
|
15
18
|
|
|
16
19
|
// This struct is to used to store the the actual information about the vulkan backend image on the
|
|
17
20
|
// GrBackendTexture and GrBackendRenderTarget. When a client calls getVkImageInfo on a
|
|
@@ -30,7 +33,7 @@ struct GrVkBackendSurfaceInfo {
|
|
|
30
33
|
// attempt to unref the old fLayout on this object.
|
|
31
34
|
void assign(const GrVkBackendSurfaceInfo&, bool isValid);
|
|
32
35
|
|
|
33
|
-
GrVkImageInfo snapImageInfo(const
|
|
36
|
+
GrVkImageInfo snapImageInfo(const skgpu::MutableTextureStateRef*) const;
|
|
34
37
|
|
|
35
38
|
bool isProtected() const { return fImageInfo.fProtected == GrProtected::kYes; }
|
|
36
39
|
#if GR_TEST_UTILS
|
|
@@ -41,43 +44,6 @@ private:
|
|
|
41
44
|
GrVkImageInfo fImageInfo;
|
|
42
45
|
};
|
|
43
46
|
|
|
44
|
-
class GrVkSharedImageInfo {
|
|
45
|
-
public:
|
|
46
|
-
GrVkSharedImageInfo(VkImageLayout layout, uint32_t queueFamilyIndex)
|
|
47
|
-
: fLayout(layout)
|
|
48
|
-
, fQueueFamilyIndex(queueFamilyIndex) {}
|
|
49
|
-
|
|
50
|
-
GrVkSharedImageInfo& operator=(const GrVkSharedImageInfo& that) {
|
|
51
|
-
fLayout = that.getImageLayout();
|
|
52
|
-
fQueueFamilyIndex = that.getQueueFamilyIndex();
|
|
53
|
-
return *this;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
void setImageLayout(VkImageLayout layout) {
|
|
57
|
-
// Defaulting to use std::memory_order_seq_cst
|
|
58
|
-
fLayout.store(layout);
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
VkImageLayout getImageLayout() const {
|
|
62
|
-
// Defaulting to use std::memory_order_seq_cst
|
|
63
|
-
return fLayout.load();
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
void setQueueFamilyIndex(uint32_t queueFamilyIndex) {
|
|
67
|
-
// Defaulting to use std::memory_order_seq_cst
|
|
68
|
-
fQueueFamilyIndex.store(queueFamilyIndex);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
uint32_t getQueueFamilyIndex() const {
|
|
72
|
-
// Defaulting to use std::memory_order_seq_cst
|
|
73
|
-
return fQueueFamilyIndex.load();
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
private:
|
|
77
|
-
std::atomic<VkImageLayout> fLayout;
|
|
78
|
-
std::atomic<uint32_t> fQueueFamilyIndex;
|
|
79
|
-
};
|
|
80
|
-
|
|
81
47
|
struct GrVkImageSpec {
|
|
82
48
|
GrVkImageSpec()
|
|
83
49
|
: fImageTiling(VK_IMAGE_TILING_OPTIMAL)
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Google LLC.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef skgpu_graphite_VulkanGraphiteTypesPriv_DEFINED
|
|
9
|
+
#define skgpu_graphite_VulkanGraphiteTypesPriv_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/gpu/graphite/vk/VulkanGraphiteTypes.h"
|
|
12
|
+
|
|
13
|
+
namespace skgpu::graphite {
|
|
14
|
+
|
|
15
|
+
struct VulkanTextureSpec {
|
|
16
|
+
VulkanTextureSpec()
|
|
17
|
+
: fFlags(0)
|
|
18
|
+
, fFormat(VK_FORMAT_UNDEFINED)
|
|
19
|
+
, fImageTiling(VK_IMAGE_TILING_OPTIMAL)
|
|
20
|
+
, fImageUsageFlags(0)
|
|
21
|
+
, fSharingMode(VK_SHARING_MODE_EXCLUSIVE)
|
|
22
|
+
, fCurrentQueueFamily(VK_QUEUE_FAMILY_IGNORED)
|
|
23
|
+
, fImageLayout(VK_IMAGE_LAYOUT_UNDEFINED)
|
|
24
|
+
, fAspectMask(VK_IMAGE_ASPECT_COLOR_BIT) {}
|
|
25
|
+
VulkanTextureSpec(const VulkanTextureInfo& info)
|
|
26
|
+
: fFlags(info.fFlags)
|
|
27
|
+
, fFormat(info.fFormat)
|
|
28
|
+
, fImageTiling(info.fImageTiling)
|
|
29
|
+
, fImageUsageFlags(info.fImageUsageFlags)
|
|
30
|
+
, fSharingMode(info.fSharingMode)
|
|
31
|
+
, fCurrentQueueFamily(info.fCurrentQueueFamily)
|
|
32
|
+
, fImageLayout(info.fImageLayout)
|
|
33
|
+
, fAspectMask(info.fAspectMask) {}
|
|
34
|
+
|
|
35
|
+
bool operator==(const VulkanTextureSpec& that) const {
|
|
36
|
+
return fFlags == that.fFlags &&
|
|
37
|
+
fFormat == that.fFormat &&
|
|
38
|
+
fImageTiling == that.fImageTiling &&
|
|
39
|
+
fImageUsageFlags == that.fImageUsageFlags &&
|
|
40
|
+
fSharingMode == that.fSharingMode &&
|
|
41
|
+
fCurrentQueueFamily == that.fCurrentQueueFamily &&
|
|
42
|
+
fImageLayout == that.fImageLayout &&
|
|
43
|
+
fAspectMask == that.fAspectMask;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
VkImageCreateFlags fFlags;
|
|
47
|
+
VkFormat fFormat;
|
|
48
|
+
VkImageTiling fImageTiling;
|
|
49
|
+
VkImageUsageFlags fImageUsageFlags;
|
|
50
|
+
VkSharingMode fSharingMode;
|
|
51
|
+
uint32_t fCurrentQueueFamily;
|
|
52
|
+
VkImageLayout fImageLayout;
|
|
53
|
+
VkImageAspectFlags fAspectMask;
|
|
54
|
+
// GrVkYcbcrConversionInfo fYcbcrConversionInfo;
|
|
55
|
+
};
|
|
56
|
+
|
|
57
|
+
VulkanTextureInfo VulkanTextureSpecToTextureInfo(const VulkanTextureSpec& vkSpec,
|
|
58
|
+
uint32_t sampleCount,
|
|
59
|
+
uint32_t levelCount);
|
|
60
|
+
|
|
61
|
+
} // namespace skgpu::graphite
|
|
62
|
+
|
|
63
|
+
#endif // skgpu_graphite_VulkanGraphiteTypesPriv_DEFINED
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2022 Google LLC.
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef skgpu_VulkanTypesPriv_DEFINED
|
|
9
|
+
#define skgpu_VulkanTypesPriv_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/gpu/vk/VulkanTypes.h"
|
|
12
|
+
|
|
13
|
+
#include <atomic>
|
|
14
|
+
|
|
15
|
+
namespace skgpu {
|
|
16
|
+
|
|
17
|
+
class VulkanMutableTextureState {
|
|
18
|
+
public:
|
|
19
|
+
VulkanMutableTextureState(VkImageLayout layout, uint32_t queueFamilyIndex)
|
|
20
|
+
: fLayout(layout)
|
|
21
|
+
, fQueueFamilyIndex(queueFamilyIndex) {}
|
|
22
|
+
|
|
23
|
+
VulkanMutableTextureState& operator=(const VulkanMutableTextureState& that) {
|
|
24
|
+
fLayout = that.getImageLayout();
|
|
25
|
+
fQueueFamilyIndex = that.getQueueFamilyIndex();
|
|
26
|
+
return *this;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
void setImageLayout(VkImageLayout layout) {
|
|
30
|
+
// Defaulting to use std::memory_order_seq_cst
|
|
31
|
+
fLayout.store(layout);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
VkImageLayout getImageLayout() const {
|
|
35
|
+
// Defaulting to use std::memory_order_seq_cst
|
|
36
|
+
return fLayout.load();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
void setQueueFamilyIndex(uint32_t queueFamilyIndex) {
|
|
40
|
+
// Defaulting to use std::memory_order_seq_cst
|
|
41
|
+
fQueueFamilyIndex.store(queueFamilyIndex);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
uint32_t getQueueFamilyIndex() const {
|
|
45
|
+
// Defaulting to use std::memory_order_seq_cst
|
|
46
|
+
return fQueueFamilyIndex.load();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
private:
|
|
50
|
+
std::atomic<VkImageLayout> fLayout;
|
|
51
|
+
std::atomic<uint32_t> fQueueFamilyIndex;
|
|
52
|
+
};
|
|
53
|
+
|
|
54
|
+
} // namespace skgpu
|
|
55
|
+
|
|
56
|
+
#endif // skgpu_VulkanGraphiteTypesPriv_DEFINED
|
|
57
|
+
|
|
@@ -14,7 +14,6 @@
|
|
|
14
14
|
#include "include/sksl/SkSLPosition.h"
|
|
15
15
|
|
|
16
16
|
#include <memory>
|
|
17
|
-
#include <utility>
|
|
18
17
|
|
|
19
18
|
namespace SkSL {
|
|
20
19
|
|
|
@@ -28,29 +27,19 @@ public:
|
|
|
28
27
|
template<class... Statements>
|
|
29
28
|
DSLBlock(Statements... statements) {
|
|
30
29
|
fStatements.reserve_back(sizeof...(statements));
|
|
31
|
-
|
|
32
|
-
// (fStatements.push_back(DSLStatement(statements.release()).release()), ...);
|
|
33
|
-
int unused[] =
|
|
34
|
-
{0,
|
|
35
|
-
(static_cast<void>(fStatements.push_back(DSLStatement(statements.release()).release())),
|
|
36
|
-
0)...};
|
|
37
|
-
static_cast<void>(unused);
|
|
30
|
+
((void)fStatements.push_back(DSLStatement(statements.release()).release()), ...);
|
|
38
31
|
}
|
|
39
32
|
|
|
40
|
-
DSLBlock(DSLBlock&& other) = default;
|
|
41
|
-
|
|
42
33
|
DSLBlock(SkSL::StatementArray statements, std::shared_ptr<SymbolTable> symbols = nullptr,
|
|
43
34
|
Position pos = {});
|
|
44
35
|
|
|
45
36
|
DSLBlock(SkTArray<DSLStatement> statements, std::shared_ptr<SymbolTable> symbols = nullptr,
|
|
46
37
|
Position pos = {});
|
|
47
38
|
|
|
48
|
-
|
|
39
|
+
DSLBlock(DSLBlock&& other) = default;
|
|
40
|
+
DSLBlock& operator=(DSLBlock&& other) = default;
|
|
49
41
|
|
|
50
|
-
DSLBlock
|
|
51
|
-
fStatements = std::move(other.fStatements);
|
|
52
|
-
return *this;
|
|
53
|
-
}
|
|
42
|
+
~DSLBlock() = default;
|
|
54
43
|
|
|
55
44
|
void append(DSLStatement stmt);
|
|
56
45
|
|
|
@@ -60,9 +49,6 @@ private:
|
|
|
60
49
|
SkSL::StatementArray fStatements;
|
|
61
50
|
std::shared_ptr<SkSL::SymbolTable> fSymbols;
|
|
62
51
|
Position fPosition;
|
|
63
|
-
|
|
64
|
-
friend class DSLStatement;
|
|
65
|
-
friend class DSLFunction;
|
|
66
52
|
};
|
|
67
53
|
|
|
68
54
|
} // namespace dsl
|
|
@@ -27,13 +27,7 @@ public:
|
|
|
27
27
|
DSLCase(DSLExpression value, Statements... statements)
|
|
28
28
|
: fValue(std::move(value)) {
|
|
29
29
|
fStatements.reserve_back(sizeof...(statements));
|
|
30
|
-
|
|
31
|
-
// (fStatements.push_back(DSLStatement(std::move(statements)).release()), ...);
|
|
32
|
-
int unused[] =
|
|
33
|
-
{0,
|
|
34
|
-
(static_cast<void>(fStatements.push_back(DSLStatement(std::move(statements)).release())),
|
|
35
|
-
0)...};
|
|
36
|
-
static_cast<void>(unused);
|
|
30
|
+
((void)fStatements.push_back(DSLStatement(std::move(statements)).release()), ...);
|
|
37
31
|
}
|
|
38
32
|
|
|
39
33
|
DSLCase(DSLExpression value, SkTArray<DSLStatement> statements,
|
|
@@ -58,7 +52,7 @@ private:
|
|
|
58
52
|
friend class DSLCore;
|
|
59
53
|
|
|
60
54
|
template<class... Cases>
|
|
61
|
-
friend
|
|
55
|
+
friend DSLStatement Switch(DSLExpression value, Cases... cases);
|
|
62
56
|
};
|
|
63
57
|
|
|
64
58
|
} // namespace dsl
|
|
@@ -15,6 +15,7 @@
|
|
|
15
15
|
#include "include/sksl/DSLExpression.h"
|
|
16
16
|
#include "include/sksl/DSLStatement.h"
|
|
17
17
|
#include "include/sksl/DSLVar.h"
|
|
18
|
+
#include "include/sksl/SkSLPosition.h"
|
|
18
19
|
|
|
19
20
|
#include <memory>
|
|
20
21
|
#include <string>
|
|
@@ -25,8 +26,6 @@ namespace SkSL {
|
|
|
25
26
|
|
|
26
27
|
class Compiler;
|
|
27
28
|
class ErrorReporter;
|
|
28
|
-
class Position;
|
|
29
|
-
struct ForLoopPositions;
|
|
30
29
|
struct Program;
|
|
31
30
|
struct ProgramSettings;
|
|
32
31
|
|
|
@@ -58,7 +57,7 @@ void End();
|
|
|
58
57
|
/**
|
|
59
58
|
* Returns all global elements (functions and global variables) as a self-contained Program. The
|
|
60
59
|
* optional source string is retained as the program's source. DSL programs do not normally have
|
|
61
|
-
* sources, but when a DSL program is produced from parsed program text (as in
|
|
60
|
+
* sources, but when a DSL program is produced from parsed program text (as in Parser), it may be
|
|
62
61
|
* important to retain it so that any std::string_views derived from it remain valid.
|
|
63
62
|
*/
|
|
64
63
|
std::unique_ptr<SkSL::Program> ReleaseProgram(std::unique_ptr<std::string> source = nullptr);
|
|
@@ -171,37 +170,31 @@ DSLStatement StaticIf(DSLExpression test, DSLStatement ifTrue,
|
|
|
171
170
|
Position pos = {});
|
|
172
171
|
|
|
173
172
|
// Internal use only
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
DSLStatement StaticSwitch(DSLExpression value, SkTArray<DSLCase> cases,
|
|
177
|
-
Position pos = {});
|
|
173
|
+
DSLStatement StaticSwitch(DSLExpression value, SkTArray<DSLCase> cases, Position pos = {});
|
|
178
174
|
|
|
179
175
|
/**
|
|
180
176
|
* @switch (value) { cases }
|
|
181
177
|
*/
|
|
182
178
|
template<class... Cases>
|
|
183
|
-
|
|
179
|
+
DSLStatement StaticSwitch(DSLExpression value, Cases... cases) {
|
|
184
180
|
SkTArray<DSLCase> caseArray;
|
|
185
181
|
caseArray.reserve_back(sizeof...(cases));
|
|
186
182
|
(caseArray.push_back(std::move(cases)), ...);
|
|
187
|
-
return
|
|
183
|
+
return StaticSwitch(std::move(value), std::move(caseArray), Position{});
|
|
188
184
|
}
|
|
189
185
|
|
|
190
186
|
// Internal use only
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
DSLStatement Switch(DSLExpression value, SkTArray<DSLCase> cases,
|
|
194
|
-
Position pos = {});
|
|
187
|
+
DSLStatement Switch(DSLExpression value, SkTArray<DSLCase> cases, Position pos = {});
|
|
195
188
|
|
|
196
189
|
/**
|
|
197
190
|
* switch (value) { cases }
|
|
198
191
|
*/
|
|
199
192
|
template<class... Cases>
|
|
200
|
-
|
|
193
|
+
DSLStatement Switch(DSLExpression value, Cases... cases) {
|
|
201
194
|
SkTArray<DSLCase> caseArray;
|
|
202
195
|
caseArray.reserve_back(sizeof...(cases));
|
|
203
196
|
(caseArray.push_back(std::move(cases)), ...);
|
|
204
|
-
return
|
|
197
|
+
return Switch(std::move(value), std::move(caseArray), Position{});
|
|
205
198
|
}
|
|
206
199
|
|
|
207
200
|
/**
|