@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
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
#include <memory>
|
|
17
17
|
#include <string>
|
|
18
18
|
#include <string_view>
|
|
19
|
+
#include <type_traits>
|
|
19
20
|
|
|
20
21
|
#if defined(__has_cpp_attribute) && __has_cpp_attribute(clang::reinitializes)
|
|
21
22
|
#define SK_CLANG_REINITIALIZES [[clang::reinitializes]]
|
|
@@ -30,10 +31,8 @@ class ExpressionArray;
|
|
|
30
31
|
|
|
31
32
|
namespace dsl {
|
|
32
33
|
|
|
33
|
-
class DSLPossibleExpression;
|
|
34
34
|
class DSLType;
|
|
35
35
|
class DSLVarBase;
|
|
36
|
-
template <typename T> class DSLWrapper;
|
|
37
36
|
|
|
38
37
|
/**
|
|
39
38
|
* Represents an expression such as 'cos(x)' or 'a + b'.
|
|
@@ -84,12 +83,8 @@ public:
|
|
|
84
83
|
|
|
85
84
|
DSLExpression(DSLVarBase&& var, Position pos = {});
|
|
86
85
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
explicit DSLExpression(std::unique_ptr<SkSL::Expression> expression);
|
|
90
|
-
|
|
91
|
-
// If expression is null, returns Poison(pos)
|
|
92
|
-
DSLExpression(std::unique_ptr<SkSL::Expression> expression, Position pos);
|
|
86
|
+
// If expression is null, returns Poison
|
|
87
|
+
explicit DSLExpression(std::unique_ptr<SkSL::Expression> expression, Position pos = {});
|
|
93
88
|
|
|
94
89
|
static DSLExpression Poison(Position pos = {});
|
|
95
90
|
|
|
@@ -104,9 +99,9 @@ public:
|
|
|
104
99
|
void setPosition(Position pos);
|
|
105
100
|
|
|
106
101
|
/**
|
|
107
|
-
*
|
|
102
|
+
* Performs assignment, like the '=' operator.
|
|
108
103
|
*/
|
|
109
|
-
|
|
104
|
+
DSLExpression assign(DSLExpression other);
|
|
110
105
|
|
|
111
106
|
DSLExpression x(Position pos = {});
|
|
112
107
|
|
|
@@ -132,13 +127,11 @@ public:
|
|
|
132
127
|
/**
|
|
133
128
|
* Creates an SkSL array index expression.
|
|
134
129
|
*/
|
|
135
|
-
|
|
130
|
+
DSLExpression operator[](DSLExpression index);
|
|
136
131
|
|
|
137
|
-
|
|
138
|
-
Position pos = {});
|
|
132
|
+
DSLExpression operator()(SkTArray<DSLExpression, true> args, Position pos = {});
|
|
139
133
|
|
|
140
|
-
|
|
141
|
-
Position pos = {});
|
|
134
|
+
DSLExpression operator()(ExpressionArray args, Position pos = {});
|
|
142
135
|
|
|
143
136
|
/**
|
|
144
137
|
* Invokes a prefix operator.
|
|
@@ -193,140 +186,56 @@ private:
|
|
|
193
186
|
friend DSLExpression SampleChild(int index, DSLExpression coords);
|
|
194
187
|
|
|
195
188
|
friend class DSLCore;
|
|
196
|
-
friend class DSLFunction;
|
|
197
|
-
friend class DSLPossibleExpression;
|
|
198
|
-
friend class DSLType;
|
|
199
189
|
friend class DSLVarBase;
|
|
200
190
|
friend class DSLWriter;
|
|
201
|
-
template<typename T> friend class DSLWrapper;
|
|
202
191
|
};
|
|
203
192
|
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
DSLPossibleExpression operator++(DSLExpression expr, int);
|
|
243
|
-
DSLPossibleExpression operator--(DSLExpression expr);
|
|
244
|
-
DSLPossibleExpression operator--(DSLExpression expr, int);
|
|
245
|
-
|
|
246
|
-
/**
|
|
247
|
-
* Represents an Expression which may have failed and/or have pending errors to report. Converting a
|
|
248
|
-
* PossibleExpression into an Expression requires a Position so that any pending errors can be
|
|
249
|
-
* reported at the correct position.
|
|
250
|
-
*
|
|
251
|
-
* PossibleExpression is used instead of Expression in situations where it is not possible to
|
|
252
|
-
* capture the Position at the time of Expression construction (notably in operator overloads, where
|
|
253
|
-
* we cannot add default parameters).
|
|
254
|
-
*/
|
|
255
|
-
class DSLPossibleExpression {
|
|
256
|
-
public:
|
|
257
|
-
DSLPossibleExpression(std::unique_ptr<SkSL::Expression> expression);
|
|
258
|
-
|
|
259
|
-
DSLPossibleExpression(DSLPossibleExpression&& other);
|
|
260
|
-
|
|
261
|
-
~DSLPossibleExpression();
|
|
262
|
-
|
|
263
|
-
bool valid() const {
|
|
264
|
-
return fExpression != nullptr;
|
|
265
|
-
}
|
|
266
|
-
|
|
267
|
-
/**
|
|
268
|
-
* Reports any pending errors at the specified position.
|
|
269
|
-
*/
|
|
270
|
-
void reportErrors(Position pos);
|
|
271
|
-
|
|
272
|
-
DSLType type() const;
|
|
273
|
-
|
|
274
|
-
std::string description() const;
|
|
275
|
-
|
|
276
|
-
Position position() const;
|
|
277
|
-
|
|
278
|
-
DSLExpression x(Position pos = {});
|
|
279
|
-
|
|
280
|
-
DSLExpression y(Position pos = {});
|
|
281
|
-
|
|
282
|
-
DSLExpression z(Position pos = {});
|
|
283
|
-
|
|
284
|
-
DSLExpression w(Position pos = {});
|
|
285
|
-
|
|
286
|
-
DSLExpression r(Position pos = {});
|
|
287
|
-
|
|
288
|
-
DSLExpression g(Position pos = {});
|
|
289
|
-
|
|
290
|
-
DSLExpression b(Position pos = {});
|
|
291
|
-
|
|
292
|
-
DSLExpression a(Position pos = {});
|
|
293
|
-
|
|
294
|
-
DSLExpression field(std::string_view name, Position pos = {});
|
|
295
|
-
|
|
296
|
-
DSLPossibleExpression operator=(DSLExpression expr);
|
|
297
|
-
|
|
298
|
-
DSLPossibleExpression operator=(int expr);
|
|
299
|
-
|
|
300
|
-
DSLPossibleExpression operator=(float expr);
|
|
301
|
-
|
|
302
|
-
DSLPossibleExpression operator=(double expr);
|
|
303
|
-
|
|
304
|
-
DSLPossibleExpression operator[](DSLExpression index);
|
|
305
|
-
|
|
306
|
-
DSLPossibleExpression operator()(SkTArray<DSLWrapper<DSLExpression>> args,
|
|
307
|
-
Position pos = {});
|
|
308
|
-
|
|
309
|
-
DSLPossibleExpression operator()(ExpressionArray args,
|
|
310
|
-
Position pos = {});
|
|
311
|
-
|
|
312
|
-
DSLPossibleExpression operator++();
|
|
313
|
-
|
|
314
|
-
DSLPossibleExpression operator++(int);
|
|
315
|
-
|
|
316
|
-
DSLPossibleExpression operator--();
|
|
317
|
-
|
|
318
|
-
DSLPossibleExpression operator--(int);
|
|
319
|
-
|
|
320
|
-
std::unique_ptr<SkSL::Expression> release(Position pos = {});
|
|
321
|
-
|
|
322
|
-
private:
|
|
323
|
-
std::unique_ptr<SkSL::Expression> fExpression;
|
|
324
|
-
|
|
325
|
-
friend class DSLExpression;
|
|
326
|
-
};
|
|
193
|
+
DSLExpression operator+(DSLExpression left, DSLExpression right);
|
|
194
|
+
DSLExpression operator+(DSLExpression expr);
|
|
195
|
+
DSLExpression operator+=(DSLExpression left, DSLExpression right);
|
|
196
|
+
DSLExpression operator-(DSLExpression left, DSLExpression right);
|
|
197
|
+
DSLExpression operator-(DSLExpression expr);
|
|
198
|
+
DSLExpression operator-=(DSLExpression left, DSLExpression right);
|
|
199
|
+
DSLExpression operator*(DSLExpression left, DSLExpression right);
|
|
200
|
+
DSLExpression operator*=(DSLExpression left, DSLExpression right);
|
|
201
|
+
DSLExpression operator/(DSLExpression left, DSLExpression right);
|
|
202
|
+
DSLExpression operator/=(DSLExpression left, DSLExpression right);
|
|
203
|
+
DSLExpression operator%(DSLExpression left, DSLExpression right);
|
|
204
|
+
DSLExpression operator%=(DSLExpression left, DSLExpression right);
|
|
205
|
+
DSLExpression operator<<(DSLExpression left, DSLExpression right);
|
|
206
|
+
DSLExpression operator<<=(DSLExpression left, DSLExpression right);
|
|
207
|
+
DSLExpression operator>>(DSLExpression left, DSLExpression right);
|
|
208
|
+
DSLExpression operator>>=(DSLExpression left, DSLExpression right);
|
|
209
|
+
DSLExpression operator&&(DSLExpression left, DSLExpression right);
|
|
210
|
+
DSLExpression operator||(DSLExpression left, DSLExpression right);
|
|
211
|
+
DSLExpression operator&(DSLExpression left, DSLExpression right);
|
|
212
|
+
DSLExpression operator&=(DSLExpression left, DSLExpression right);
|
|
213
|
+
DSLExpression operator|(DSLExpression left, DSLExpression right);
|
|
214
|
+
DSLExpression operator|=(DSLExpression left, DSLExpression right);
|
|
215
|
+
DSLExpression operator^(DSLExpression left, DSLExpression right);
|
|
216
|
+
DSLExpression operator^=(DSLExpression left, DSLExpression right);
|
|
217
|
+
DSLExpression LogicalXor(DSLExpression left, DSLExpression right);
|
|
218
|
+
DSLExpression operator,(DSLExpression left, DSLExpression right);
|
|
219
|
+
DSLExpression operator==(DSLExpression left, DSLExpression right);
|
|
220
|
+
DSLExpression operator!=(DSLExpression left, DSLExpression right);
|
|
221
|
+
DSLExpression operator>(DSLExpression left, DSLExpression right);
|
|
222
|
+
DSLExpression operator<(DSLExpression left, DSLExpression right);
|
|
223
|
+
DSLExpression operator>=(DSLExpression left, DSLExpression right);
|
|
224
|
+
DSLExpression operator<=(DSLExpression left, DSLExpression right);
|
|
225
|
+
DSLExpression operator!(DSLExpression expr);
|
|
226
|
+
DSLExpression operator~(DSLExpression expr);
|
|
227
|
+
DSLExpression operator++(DSLExpression expr);
|
|
228
|
+
DSLExpression operator++(DSLExpression expr, int);
|
|
229
|
+
DSLExpression operator--(DSLExpression expr);
|
|
230
|
+
DSLExpression operator--(DSLExpression expr, int);
|
|
327
231
|
|
|
328
232
|
} // namespace dsl
|
|
329
233
|
|
|
330
234
|
} // namespace SkSL
|
|
331
235
|
|
|
236
|
+
template <typename T> struct sk_is_trivially_relocatable;
|
|
237
|
+
|
|
238
|
+
template <>
|
|
239
|
+
struct sk_is_trivially_relocatable<SkSL::dsl::DSLExpression> : std::true_type {};
|
|
240
|
+
|
|
332
241
|
#endif
|
|
@@ -27,7 +27,6 @@ class FunctionDeclaration;
|
|
|
27
27
|
namespace dsl {
|
|
28
28
|
|
|
29
29
|
class DSLType;
|
|
30
|
-
template <typename T> class DSLWrapper;
|
|
31
30
|
|
|
32
31
|
class DSLFunction {
|
|
33
32
|
public:
|
|
@@ -40,27 +39,19 @@ public:
|
|
|
40
39
|
Parameters&... parameters) {
|
|
41
40
|
SkTArray<DSLParameter*> parameterArray;
|
|
42
41
|
parameterArray.reserve_back(sizeof...(parameters));
|
|
42
|
+
(parameterArray.push_back(¶meters), ...);
|
|
43
43
|
|
|
44
|
-
// in C++17, we could just do:
|
|
45
|
-
// (parameterArray.push_back(¶meters), ...);
|
|
46
|
-
int unused[] = {0, (static_cast<void>(parameterArray.push_back(¶meters)), 0)...};
|
|
47
|
-
static_cast<void>(unused);
|
|
48
44
|
// We can't have a default parameter and a template parameter pack at the same time, so
|
|
49
45
|
// unfortunately we can't capture position from this overload.
|
|
50
46
|
this->init(modifiers, returnType, name, std::move(parameterArray), Position());
|
|
51
47
|
}
|
|
52
48
|
|
|
53
|
-
DSLFunction(const
|
|
54
|
-
SkTArray<DSLParameter*> parameters, Position pos = {}) {
|
|
55
|
-
this->init(DSLModifiers(), returnType, name, std::move(parameters), pos);
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
DSLFunction(const DSLModifiers& modifiers, const DSLType& returnType, std::string_view name,
|
|
49
|
+
DSLFunction(std::string_view name, const DSLModifiers& modifiers, const DSLType& returnType,
|
|
59
50
|
SkTArray<DSLParameter*> parameters, Position pos = {}) {
|
|
60
51
|
this->init(modifiers, returnType, name, std::move(parameters), pos);
|
|
61
52
|
}
|
|
62
53
|
|
|
63
|
-
DSLFunction(
|
|
54
|
+
DSLFunction(SkSL::FunctionDeclaration* decl)
|
|
64
55
|
: fDecl(decl) {}
|
|
65
56
|
|
|
66
57
|
virtual ~DSLFunction() = default;
|
|
@@ -73,6 +64,8 @@ public:
|
|
|
73
64
|
|
|
74
65
|
void define(DSLBlock block, Position pos = {});
|
|
75
66
|
|
|
67
|
+
void prototype();
|
|
68
|
+
|
|
76
69
|
/**
|
|
77
70
|
* Invokes the function with the given arguments.
|
|
78
71
|
*/
|
|
@@ -87,8 +80,7 @@ public:
|
|
|
87
80
|
/**
|
|
88
81
|
* Invokes the function with the given arguments.
|
|
89
82
|
*/
|
|
90
|
-
DSLExpression call(SkTArray<
|
|
91
|
-
Position pos = {});
|
|
83
|
+
DSLExpression call(SkTArray<DSLExpression> args, Position pos = {});
|
|
92
84
|
|
|
93
85
|
DSLExpression call(ExpressionArray args, Position pos = {});
|
|
94
86
|
|
|
@@ -110,7 +102,7 @@ private:
|
|
|
110
102
|
void init(DSLModifiers modifiers, const DSLType& returnType, std::string_view name,
|
|
111
103
|
SkTArray<DSLParameter*> params, Position pos);
|
|
112
104
|
|
|
113
|
-
|
|
105
|
+
SkSL::FunctionDeclaration* fDecl = nullptr;
|
|
114
106
|
SkSL::Position fPosition;
|
|
115
107
|
};
|
|
116
108
|
|
|
@@ -39,7 +39,11 @@ public:
|
|
|
39
39
|
: fModifiers(layout.fSkSLLayout, flags)
|
|
40
40
|
, fPosition(pos) {}
|
|
41
41
|
|
|
42
|
-
int flags()
|
|
42
|
+
int& flags() {
|
|
43
|
+
return fModifiers.fFlags;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
const int& flags() const {
|
|
43
47
|
return fModifiers.fFlags;
|
|
44
48
|
}
|
|
45
49
|
|
|
@@ -55,7 +59,6 @@ private:
|
|
|
55
59
|
friend class DSLCore;
|
|
56
60
|
friend class DSLFunction;
|
|
57
61
|
friend class DSLType;
|
|
58
|
-
friend class DSLVarBase;
|
|
59
62
|
friend class DSLWriter;
|
|
60
63
|
};
|
|
61
64
|
|
|
@@ -23,8 +23,6 @@ namespace dsl {
|
|
|
23
23
|
|
|
24
24
|
class DSLBlock;
|
|
25
25
|
class DSLExpression;
|
|
26
|
-
class DSLPossibleExpression;
|
|
27
|
-
class DSLPossibleStatement;
|
|
28
26
|
|
|
29
27
|
class DSLStatement {
|
|
30
28
|
public:
|
|
@@ -32,18 +30,16 @@ public:
|
|
|
32
30
|
|
|
33
31
|
DSLStatement(DSLExpression expr);
|
|
34
32
|
|
|
35
|
-
DSLStatement(DSLPossibleExpression expr, Position pos = {});
|
|
36
|
-
|
|
37
|
-
DSLStatement(DSLPossibleStatement stmt, Position pos = {});
|
|
38
|
-
|
|
39
33
|
DSLStatement(DSLBlock block);
|
|
40
34
|
|
|
41
35
|
DSLStatement(DSLStatement&&) = default;
|
|
42
36
|
|
|
43
|
-
DSLStatement(std::unique_ptr<SkSL::Statement> stmt);
|
|
44
|
-
|
|
45
37
|
DSLStatement(std::unique_ptr<SkSL::Expression> expr);
|
|
46
38
|
|
|
39
|
+
DSLStatement(std::unique_ptr<SkSL::Statement> stmt, Position pos);
|
|
40
|
+
|
|
41
|
+
DSLStatement(std::unique_ptr<SkSL::Statement> stmt);
|
|
42
|
+
|
|
47
43
|
~DSLStatement();
|
|
48
44
|
|
|
49
45
|
DSLStatement& operator=(DSLStatement&& other) = default;
|
|
@@ -72,42 +68,11 @@ private:
|
|
|
72
68
|
|
|
73
69
|
std::unique_ptr<SkSL::Statement> fStatement;
|
|
74
70
|
|
|
75
|
-
friend class DSLBlock;
|
|
76
71
|
friend class DSLCore;
|
|
77
|
-
friend class DSLExpression;
|
|
78
|
-
friend class DSLPossibleStatement;
|
|
79
72
|
friend class DSLWriter;
|
|
80
73
|
friend DSLStatement operator,(DSLStatement left, DSLStatement right);
|
|
81
74
|
};
|
|
82
75
|
|
|
83
|
-
/**
|
|
84
|
-
* Represents a Statement which may have failed and/or have pending errors to report. Converting a
|
|
85
|
-
* PossibleStatement into a Statement requires a Position so that any pending errors can be
|
|
86
|
-
* reported at the correct position.
|
|
87
|
-
*
|
|
88
|
-
* PossibleStatement is used instead of Statement in situations where it is not possible to capture
|
|
89
|
-
* the Position at the time of Statement construction.
|
|
90
|
-
*/
|
|
91
|
-
class DSLPossibleStatement {
|
|
92
|
-
public:
|
|
93
|
-
DSLPossibleStatement(std::unique_ptr<SkSL::Statement> stmt);
|
|
94
|
-
|
|
95
|
-
DSLPossibleStatement(DSLPossibleStatement&& other) = default;
|
|
96
|
-
|
|
97
|
-
~DSLPossibleStatement();
|
|
98
|
-
|
|
99
|
-
bool hasValue() { return fStatement != nullptr; }
|
|
100
|
-
|
|
101
|
-
std::unique_ptr<SkSL::Statement> release() {
|
|
102
|
-
return DSLStatement(std::move(*this)).release();
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
private:
|
|
106
|
-
std::unique_ptr<SkSL::Statement> fStatement;
|
|
107
|
-
|
|
108
|
-
friend class DSLStatement;
|
|
109
|
-
};
|
|
110
|
-
|
|
111
76
|
DSLStatement operator,(DSLStatement left, DSLStatement right);
|
|
112
77
|
|
|
113
78
|
} // namespace dsl
|
|
@@ -24,7 +24,7 @@ class DSLVarBase;
|
|
|
24
24
|
|
|
25
25
|
// This header provides methods for manually managing symbol tables in DSL code. They should not be
|
|
26
26
|
// used by normal hand-written DSL code, where we rely on C++ to manage symbols, but are instead
|
|
27
|
-
// needed when DSL objects are being constructed programmatically (as in
|
|
27
|
+
// needed when DSL objects are being constructed programmatically (as in Parser).
|
|
28
28
|
|
|
29
29
|
/**
|
|
30
30
|
* Pushes a new symbol table onto the symbol table stack.
|
|
@@ -49,16 +49,6 @@ std::shared_ptr<SymbolTable> CurrentSymbolTable();
|
|
|
49
49
|
*/
|
|
50
50
|
DSLExpression Symbol(std::string_view name, Position pos = {});
|
|
51
51
|
|
|
52
|
-
/**
|
|
53
|
-
* Returns true if the name refers to a type (user or built-in) in the current symbol table.
|
|
54
|
-
*/
|
|
55
|
-
bool IsType(std::string_view name);
|
|
56
|
-
|
|
57
|
-
/**
|
|
58
|
-
* Returns true if the name refers to a builtin type.
|
|
59
|
-
*/
|
|
60
|
-
bool IsBuiltinType(std::string_view name);
|
|
61
|
-
|
|
62
52
|
/**
|
|
63
53
|
* Adds a variable to the current symbol table.
|
|
64
54
|
*/
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
#define SKSL_DSL_TYPE
|
|
10
10
|
|
|
11
11
|
#include "include/core/SkSpan.h"
|
|
12
|
+
#include "include/core/SkTypes.h"
|
|
12
13
|
#include "include/sksl/DSLExpression.h"
|
|
13
14
|
#include "include/sksl/DSLModifiers.h"
|
|
14
15
|
#include "include/sksl/SkSLPosition.h"
|
|
@@ -82,9 +83,7 @@ enum TypeConstant : uint8_t {
|
|
|
82
83
|
|
|
83
84
|
class DSLType {
|
|
84
85
|
public:
|
|
85
|
-
DSLType(TypeConstant tc, Position pos = {})
|
|
86
|
-
: fTypeConstant(tc)
|
|
87
|
-
, fPosition(pos) {}
|
|
86
|
+
DSLType(TypeConstant tc, Position pos = {});
|
|
88
87
|
|
|
89
88
|
DSLType(const SkSL::Type* type, Position pos = {});
|
|
90
89
|
|
|
@@ -94,6 +93,11 @@ public:
|
|
|
94
93
|
DSLModifiers* modifiers,
|
|
95
94
|
Position pos = {});
|
|
96
95
|
|
|
96
|
+
/**
|
|
97
|
+
* Returns true if the SkSL type is non-null.
|
|
98
|
+
*/
|
|
99
|
+
bool hasValue() const { return fSkSLType != nullptr; }
|
|
100
|
+
|
|
97
101
|
/**
|
|
98
102
|
* Returns true if this type is a bool.
|
|
99
103
|
*/
|
|
@@ -155,28 +159,30 @@ public:
|
|
|
155
159
|
bool isEffectChild() const;
|
|
156
160
|
|
|
157
161
|
template<typename... Args>
|
|
158
|
-
static
|
|
162
|
+
static DSLExpression Construct(DSLType type, DSLVarBase& var, Args&&... args) {
|
|
159
163
|
DSLExpression argArray[] = {var, args...};
|
|
160
|
-
return Construct(type,
|
|
164
|
+
return Construct(type, SkSpan(argArray));
|
|
161
165
|
}
|
|
162
166
|
|
|
163
167
|
template<typename... Args>
|
|
164
|
-
static
|
|
168
|
+
static DSLExpression Construct(DSLType type, DSLExpression expr, Args&&... args) {
|
|
165
169
|
DSLExpression argArray[] = {std::move(expr), std::move(args)...};
|
|
166
|
-
return Construct(type,
|
|
170
|
+
return Construct(type, SkSpan(argArray));
|
|
167
171
|
}
|
|
168
172
|
|
|
169
|
-
static
|
|
173
|
+
static DSLExpression Construct(DSLType type, SkSpan<DSLExpression> argArray);
|
|
170
174
|
|
|
171
175
|
private:
|
|
172
|
-
const SkSL::Type& skslType() const
|
|
176
|
+
const SkSL::Type& skslType() const {
|
|
177
|
+
SkASSERT(fSkSLType);
|
|
178
|
+
return *fSkSLType;
|
|
179
|
+
}
|
|
173
180
|
|
|
174
181
|
const SkSL::Type* fSkSLType = nullptr;
|
|
175
|
-
TypeConstant fTypeConstant = kPoison_Type;
|
|
176
|
-
Position fPosition;
|
|
177
182
|
|
|
178
183
|
friend DSLType Array(const DSLType& base, int count, Position pos);
|
|
179
184
|
friend DSLType Struct(std::string_view name, SkSpan<DSLField> fields, Position pos);
|
|
185
|
+
friend DSLType UnsizedArray(const DSLType& base, Position pos);
|
|
180
186
|
friend class DSLCore;
|
|
181
187
|
friend class DSLFunction;
|
|
182
188
|
friend class DSLVarBase;
|
|
@@ -224,6 +230,8 @@ MATRIX_TYPE(Half)
|
|
|
224
230
|
|
|
225
231
|
DSLType Array(const DSLType& base, int count, Position pos = {});
|
|
226
232
|
|
|
233
|
+
DSLType UnsizedArray(const DSLType& base, Position pos = {});
|
|
234
|
+
|
|
227
235
|
class DSLField {
|
|
228
236
|
public:
|
|
229
237
|
DSLField(const DSLType type, std::string_view name,
|
|
@@ -253,7 +261,7 @@ DSLType Struct(std::string_view name, SkSpan<DSLField> fields,
|
|
|
253
261
|
template<typename... Field>
|
|
254
262
|
DSLType Struct(std::string_view name, Field... fields) {
|
|
255
263
|
DSLField fieldTypes[] = {std::move(fields)...};
|
|
256
|
-
return Struct(name,
|
|
264
|
+
return Struct(name, SkSpan(fieldTypes), Position());
|
|
257
265
|
}
|
|
258
266
|
|
|
259
267
|
} // namespace dsl
|