@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
|
@@ -765,7 +765,22 @@ public:
|
|
|
765
765
|
kGray_8_SkColorType or kRGB_565_SkColorType, then alpha is ignored; RGB is
|
|
766
766
|
treated as opaque. If colorType() is kAlpha_8_SkColorType, then RGB is ignored.
|
|
767
767
|
|
|
768
|
-
@param c
|
|
768
|
+
@param c unpremultiplied color
|
|
769
|
+
@param colorSpace SkColorSpace of c
|
|
770
|
+
|
|
771
|
+
example: https://fiddle.skia.org/c/@Bitmap_eraseColor
|
|
772
|
+
*/
|
|
773
|
+
void eraseColor(SkColor4f c, SkColorSpace* colorSpace = nullptr) const;
|
|
774
|
+
|
|
775
|
+
/** Replaces pixel values with c, interpreted as being in the sRGB SkColorSpace.
|
|
776
|
+
All pixels contained by bounds() are affected. If the colorType() is
|
|
777
|
+
kGray_8_SkColorType or kRGB_565_SkColorType, then alpha is ignored; RGB is
|
|
778
|
+
treated as opaque. If colorType() is kAlpha_8_SkColorType, then RGB is ignored.
|
|
779
|
+
|
|
780
|
+
Input color is ultimately converted to an SkColor4f, so eraseColor(SkColor4f c)
|
|
781
|
+
will have higher color resolution.
|
|
782
|
+
|
|
783
|
+
@param c unpremultiplied color.
|
|
769
784
|
|
|
770
785
|
example: https://fiddle.skia.org/c/@Bitmap_eraseColor
|
|
771
786
|
*/
|
|
@@ -793,6 +808,25 @@ public:
|
|
|
793
808
|
is ignored; RGB is treated as opaque. If colorType() is kAlpha_8_SkColorType,
|
|
794
809
|
then RGB is ignored.
|
|
795
810
|
|
|
811
|
+
@param c unpremultiplied color
|
|
812
|
+
@param area rectangle to fill
|
|
813
|
+
@param colorSpace SkColorSpace of c
|
|
814
|
+
|
|
815
|
+
example: https://fiddle.skia.org/c/@Bitmap_erase
|
|
816
|
+
*/
|
|
817
|
+
void erase(SkColor4f c, SkColorSpace* colorSpace, const SkIRect& area) const;
|
|
818
|
+
void erase(SkColor4f c, const SkIRect& area) const;
|
|
819
|
+
|
|
820
|
+
/** Replaces pixel values inside area with c. interpreted as being in the sRGB
|
|
821
|
+
SkColorSpace. If area does not intersect bounds(), call has no effect.
|
|
822
|
+
|
|
823
|
+
If the colorType() is kGray_8_SkColorType or kRGB_565_SkColorType, then alpha
|
|
824
|
+
is ignored; RGB is treated as opaque. If colorType() is kAlpha_8_SkColorType,
|
|
825
|
+
then RGB is ignored.
|
|
826
|
+
|
|
827
|
+
Input color is ultimately converted to an SkColor4f, so erase(SkColor4f c)
|
|
828
|
+
will have higher color resolution.
|
|
829
|
+
|
|
796
830
|
@param c unpremultiplied color
|
|
797
831
|
@param area rectangle to fill
|
|
798
832
|
|
|
@@ -826,6 +860,23 @@ public:
|
|
|
826
860
|
return this->pixmap().getColor(x, y);
|
|
827
861
|
}
|
|
828
862
|
|
|
863
|
+
/** Returns pixel at (x, y) as unpremultiplied float color.
|
|
864
|
+
Returns black with alpha if SkColorType is kAlpha_8_SkColorType.
|
|
865
|
+
|
|
866
|
+
Input is not validated: out of bounds values of x or y trigger an assert() if
|
|
867
|
+
built with SK_DEBUG defined; and returns undefined values or may crash if
|
|
868
|
+
SK_RELEASE is defined. Fails if SkColorType is kUnknown_SkColorType or
|
|
869
|
+
pixel address is nullptr.
|
|
870
|
+
|
|
871
|
+
SkColorSpace in SkImageInfo is ignored. Some color precision may be lost in the
|
|
872
|
+
conversion to unpremultiplied color.
|
|
873
|
+
|
|
874
|
+
@param x column index, zero or greater, and less than width()
|
|
875
|
+
@param y row index, zero or greater, and less than height()
|
|
876
|
+
@return pixel converted to unpremultiplied color
|
|
877
|
+
*/
|
|
878
|
+
SkColor4f getColor4f(int x, int y) const { return this->pixmap().getColor4f(x, y); }
|
|
879
|
+
|
|
829
880
|
/** Look up the pixel at (x,y) and return its alpha component, normalized to [0..1].
|
|
830
881
|
This is roughly equivalent to SkGetColorA(getColor()), but can be more efficent
|
|
831
882
|
(and more precise if the pixels store more than 8 bits per component).
|
|
@@ -73,6 +73,8 @@ enum class SkBlendMode {
|
|
|
73
73
|
kLastMode = kLuminosity, //!< last valid value
|
|
74
74
|
};
|
|
75
75
|
|
|
76
|
+
static constexpr int kSkBlendModeCount = static_cast<int>(SkBlendMode::kLastMode) + 1;
|
|
77
|
+
|
|
76
78
|
/**
|
|
77
79
|
* For Porter-Duff SkBlendModes (those <= kLastCoeffMode), these coefficients describe the blend
|
|
78
80
|
* equation used. Coefficient-based blend modes specify an equation:
|
|
@@ -38,18 +38,20 @@
|
|
|
38
38
|
#define SK_SUPPORT_LEGACY_GETTOTALMATRIX
|
|
39
39
|
#endif
|
|
40
40
|
|
|
41
|
+
namespace sktext {
|
|
42
|
+
class GlyphRunBuilder;
|
|
43
|
+
class GlyphRunList;
|
|
44
|
+
}
|
|
45
|
+
|
|
41
46
|
class AutoLayerForImageFilter;
|
|
42
47
|
class GrBackendRenderTarget;
|
|
43
48
|
class GrRecordingContext;
|
|
44
|
-
class GrSlug;
|
|
45
49
|
class SkBaseDevice;
|
|
46
50
|
class SkBitmap;
|
|
47
51
|
class SkData;
|
|
48
52
|
class SkDrawable;
|
|
49
53
|
struct SkDrawShadowRec;
|
|
50
54
|
class SkFont;
|
|
51
|
-
class SkGlyphRunBuilder;
|
|
52
|
-
class SkGlyphRunList;
|
|
53
55
|
class SkImage;
|
|
54
56
|
class SkImageFilter;
|
|
55
57
|
class SkPaintFilterCanvas;
|
|
@@ -67,8 +69,14 @@ class SkTextBlob;
|
|
|
67
69
|
class SkVertices;
|
|
68
70
|
|
|
69
71
|
namespace skgpu::graphite { class Recorder; }
|
|
72
|
+
namespace sktext::gpu { class Slug; }
|
|
70
73
|
namespace SkRecords { class Draw; }
|
|
71
74
|
|
|
75
|
+
// TODO:
|
|
76
|
+
// This is not ideal but Chrome is depending on a forward decl of GrSlug here.
|
|
77
|
+
// It should be removed once Chrome has migrated to sktext::gpu::Slug.
|
|
78
|
+
using GrSlug = sktext::gpu::Slug;
|
|
79
|
+
|
|
72
80
|
/** \class SkCanvas
|
|
73
81
|
SkCanvas provides an interface for drawing, and how the drawing is clipped and transformed.
|
|
74
82
|
SkCanvas contains a stack of SkMatrix and clip values.
|
|
@@ -255,10 +263,27 @@ public:
|
|
|
255
263
|
@param props storage for writable SkSurfaceProps
|
|
256
264
|
@return true if SkSurfaceProps was copied
|
|
257
265
|
|
|
266
|
+
DEPRECATED: Replace usage with getBaseProps() or getTopProps()
|
|
267
|
+
|
|
258
268
|
example: https://fiddle.skia.org/c/@Canvas_getProps
|
|
259
269
|
*/
|
|
260
270
|
bool getProps(SkSurfaceProps* props) const;
|
|
261
271
|
|
|
272
|
+
/** Returns the SkSurfaceProps associated with the canvas (i.e., at the base of the layer
|
|
273
|
+
stack).
|
|
274
|
+
|
|
275
|
+
@return base SkSurfaceProps
|
|
276
|
+
*/
|
|
277
|
+
SkSurfaceProps getBaseProps() const;
|
|
278
|
+
|
|
279
|
+
/** Returns the SkSurfaceProps associated with the canvas that are currently active (i.e., at
|
|
280
|
+
the top of the layer stack). This can differ from getBaseProps depending on the flags
|
|
281
|
+
passed to saveLayer (see SaveLayerFlagsSet).
|
|
282
|
+
|
|
283
|
+
@return SkSurfaceProps active in the current/top layer
|
|
284
|
+
*/
|
|
285
|
+
SkSurfaceProps getTopProps() const;
|
|
286
|
+
|
|
262
287
|
/** Triggers the immediate execution of all pending draw operations.
|
|
263
288
|
If SkCanvas is associated with GPU surface, resolves all pending GPU operations.
|
|
264
289
|
If SkCanvas is associated with raster surface, has no effect; raster draw
|
|
@@ -566,14 +591,14 @@ public:
|
|
|
566
591
|
*/
|
|
567
592
|
int save();
|
|
568
593
|
|
|
569
|
-
/** Saves SkMatrix and clip, and allocates a
|
|
570
|
-
Calling restore() discards changes to SkMatrix and clip, and draws the
|
|
594
|
+
/** Saves SkMatrix and clip, and allocates a SkSurface for subsequent drawing.
|
|
595
|
+
Calling restore() discards changes to SkMatrix and clip, and draws the SkSurface.
|
|
571
596
|
|
|
572
597
|
SkMatrix may be changed by translate(), scale(), rotate(), skew(), concat(),
|
|
573
598
|
setMatrix(), and resetMatrix(). Clip may be changed by clipRect(), clipRRect(),
|
|
574
599
|
clipPath(), clipRegion().
|
|
575
600
|
|
|
576
|
-
SkRect bounds suggests but does not define the
|
|
601
|
+
SkRect bounds suggests but does not define the SkSurface size. To clip drawing to
|
|
577
602
|
a specific rectangle, use clipRect().
|
|
578
603
|
|
|
579
604
|
Optional SkPaint paint applies alpha, SkColorFilter, SkImageFilter, and
|
|
@@ -590,8 +615,8 @@ public:
|
|
|
590
615
|
*/
|
|
591
616
|
int saveLayer(const SkRect* bounds, const SkPaint* paint);
|
|
592
617
|
|
|
593
|
-
/** Saves SkMatrix and clip, and allocates a
|
|
594
|
-
Calling restore() discards changes to SkMatrix and clip, and draws the
|
|
618
|
+
/** Saves SkMatrix and clip, and allocates a SkSurface for subsequent drawing.
|
|
619
|
+
Calling restore() discards changes to SkMatrix and clip, and draws the SkSurface.
|
|
595
620
|
|
|
596
621
|
SkMatrix may be changed by translate(), scale(), rotate(), skew(), concat(),
|
|
597
622
|
setMatrix(), and resetMatrix(). Clip may be changed by clipRect(), clipRRect(),
|
|
@@ -613,7 +638,7 @@ public:
|
|
|
613
638
|
return this->saveLayer(&bounds, paint);
|
|
614
639
|
}
|
|
615
640
|
|
|
616
|
-
/** Saves SkMatrix and clip, and allocates
|
|
641
|
+
/** Saves SkMatrix and clip, and allocates SkSurface for subsequent drawing.
|
|
617
642
|
|
|
618
643
|
Calling restore() discards changes to SkMatrix and clip,
|
|
619
644
|
and blends layer with alpha opacity onto prior layer.
|
|
@@ -721,10 +746,10 @@ public:
|
|
|
721
746
|
SkScalar fExperimentalBackdropScale = 1.f;
|
|
722
747
|
};
|
|
723
748
|
|
|
724
|
-
/** Saves SkMatrix and clip, and allocates
|
|
749
|
+
/** Saves SkMatrix and clip, and allocates SkSurface for subsequent drawing.
|
|
725
750
|
|
|
726
751
|
Calling restore() discards changes to SkMatrix and clip,
|
|
727
|
-
and blends
|
|
752
|
+
and blends SkSurface with alpha opacity onto the prior layer.
|
|
728
753
|
|
|
729
754
|
SkMatrix may be changed by translate(), scale(), rotate(), skew(), concat(),
|
|
730
755
|
setMatrix(), and resetMatrix(). Clip may be changed by clipRect(), clipRRect(),
|
|
@@ -1956,7 +1981,7 @@ public:
|
|
|
1956
1981
|
*/
|
|
1957
1982
|
void drawVertices(const sk_sp<SkVertices>& vertices, SkBlendMode mode, const SkPaint& paint);
|
|
1958
1983
|
|
|
1959
|
-
#if defined(
|
|
1984
|
+
#if defined(SK_ENABLE_SKSL)
|
|
1960
1985
|
/**
|
|
1961
1986
|
Experimental, under active development, and subject to change without notice.
|
|
1962
1987
|
|
|
@@ -2171,7 +2196,7 @@ protected:
|
|
|
2171
2196
|
virtual bool onPeekPixels(SkPixmap* pixmap);
|
|
2172
2197
|
virtual bool onAccessTopLayerPixels(SkPixmap* pixmap);
|
|
2173
2198
|
virtual SkImageInfo onImageInfo() const;
|
|
2174
|
-
virtual bool onGetProps(SkSurfaceProps* props) const;
|
|
2199
|
+
virtual bool onGetProps(SkSurfaceProps* props, bool top) const;
|
|
2175
2200
|
virtual void onFlush();
|
|
2176
2201
|
|
|
2177
2202
|
// Subclass save/restore notifiers.
|
|
@@ -2198,11 +2223,6 @@ protected:
|
|
|
2198
2223
|
virtual void didTranslate(SkScalar, SkScalar) {}
|
|
2199
2224
|
virtual void didScale(SkScalar, SkScalar) {}
|
|
2200
2225
|
|
|
2201
|
-
#ifndef SK_ENABLE_EXPERIMENTAL_CUSTOM_MESH
|
|
2202
|
-
// Define this in protected so we can still access internally for testing.
|
|
2203
|
-
void drawMesh(const SkMesh& mesh, sk_sp<SkBlender> blender, const SkPaint& paint);
|
|
2204
|
-
#endif
|
|
2205
|
-
|
|
2206
2226
|
// NOTE: If you are adding a new onDraw virtual to SkCanvas, PLEASE add an override to
|
|
2207
2227
|
// SkCanvasVirtualEnforcer (in SkCanvasVirtualEnforcer.h). This ensures that subclasses using
|
|
2208
2228
|
// that mechanism will be required to implement the new function.
|
|
@@ -2220,7 +2240,7 @@ protected:
|
|
|
2220
2240
|
virtual void onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y,
|
|
2221
2241
|
const SkPaint& paint);
|
|
2222
2242
|
|
|
2223
|
-
virtual void onDrawGlyphRunList(const
|
|
2243
|
+
virtual void onDrawGlyphRunList(const sktext::GlyphRunList& glyphRunList, const SkPaint& paint);
|
|
2224
2244
|
|
|
2225
2245
|
virtual void onDrawPatch(const SkPoint cubics[12], const SkColor colors[4],
|
|
2226
2246
|
const SkPoint texCoords[4], SkBlendMode mode, const SkPaint& paint);
|
|
@@ -2270,15 +2290,15 @@ protected:
|
|
|
2270
2290
|
|
|
2271
2291
|
virtual void onDiscard();
|
|
2272
2292
|
|
|
2273
|
-
#if SK_SUPPORT_GPU
|
|
2293
|
+
#if (SK_SUPPORT_GPU || defined(SK_GRAPHITE_ENABLED))
|
|
2274
2294
|
/** Experimental
|
|
2275
2295
|
*/
|
|
2276
|
-
virtual sk_sp<
|
|
2277
|
-
const
|
|
2296
|
+
virtual sk_sp<sktext::gpu::Slug> onConvertGlyphRunListToSlug(
|
|
2297
|
+
const sktext::GlyphRunList& glyphRunList, const SkPaint& paint);
|
|
2278
2298
|
|
|
2279
2299
|
/** Experimental
|
|
2280
2300
|
*/
|
|
2281
|
-
virtual void onDrawSlug(const
|
|
2301
|
+
virtual void onDrawSlug(const sktext::gpu::Slug* slug);
|
|
2282
2302
|
#endif
|
|
2283
2303
|
|
|
2284
2304
|
private:
|
|
@@ -2413,24 +2433,25 @@ protected:
|
|
|
2413
2433
|
SkCanvas(const SkIRect& bounds);
|
|
2414
2434
|
private:
|
|
2415
2435
|
SkCanvas(const SkBitmap&, std::unique_ptr<SkRasterHandleAllocator>,
|
|
2416
|
-
SkRasterHandleAllocator::Handle);
|
|
2436
|
+
SkRasterHandleAllocator::Handle, const SkSurfaceProps* props);
|
|
2417
2437
|
|
|
2418
2438
|
SkCanvas(SkCanvas&&) = delete;
|
|
2419
2439
|
SkCanvas(const SkCanvas&) = delete;
|
|
2420
2440
|
SkCanvas& operator=(SkCanvas&&) = delete;
|
|
2421
2441
|
SkCanvas& operator=(const SkCanvas&) = delete;
|
|
2422
2442
|
|
|
2423
|
-
#if SK_SUPPORT_GPU
|
|
2424
|
-
friend class
|
|
2443
|
+
#if (SK_SUPPORT_GPU || defined(SK_GRAPHITE_ENABLED))
|
|
2444
|
+
friend class sktext::gpu::Slug;
|
|
2425
2445
|
/** Experimental
|
|
2426
|
-
* Convert a SkTextBlob to a
|
|
2446
|
+
* Convert a SkTextBlob to a sktext::gpu::Slug using the current canvas state.
|
|
2427
2447
|
*/
|
|
2428
|
-
sk_sp<
|
|
2448
|
+
sk_sp<sktext::gpu::Slug> convertBlobToSlug(const SkTextBlob& blob, SkPoint origin,
|
|
2449
|
+
const SkPaint& paint);
|
|
2429
2450
|
|
|
2430
2451
|
/** Experimental
|
|
2431
|
-
* Draw an
|
|
2452
|
+
* Draw an sktext::gpu::Slug given the current canvas state.
|
|
2432
2453
|
*/
|
|
2433
|
-
void drawSlug(const
|
|
2454
|
+
void drawSlug(const sktext::gpu::Slug* slug);
|
|
2434
2455
|
#endif
|
|
2435
2456
|
|
|
2436
2457
|
/** Experimental
|
|
@@ -2534,7 +2555,7 @@ private:
|
|
|
2534
2555
|
class AutoUpdateQRBounds;
|
|
2535
2556
|
void validateClip() const;
|
|
2536
2557
|
|
|
2537
|
-
std::unique_ptr<
|
|
2558
|
+
std::unique_ptr<sktext::GlyphRunBuilder> fScratchGlyphRunBuilder;
|
|
2538
2559
|
|
|
2539
2560
|
using INHERITED = SkRefCnt;
|
|
2540
2561
|
};
|
|
@@ -0,0 +1,44 @@
|
|
|
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 SkCapabilities_DEFINED
|
|
9
|
+
#define SkCapabilities_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
|
|
13
|
+
#ifdef SK_ENABLE_SKSL
|
|
14
|
+
#include "include/sksl/SkSLVersion.h"
|
|
15
|
+
namespace SkSL { struct ShaderCaps; }
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
#if defined(SK_GRAPHITE_ENABLED)
|
|
19
|
+
namespace skgpu::graphite { class Caps; }
|
|
20
|
+
#endif
|
|
21
|
+
|
|
22
|
+
class SK_API SkCapabilities : public SkRefCnt {
|
|
23
|
+
public:
|
|
24
|
+
static sk_sp<const SkCapabilities> RasterBackend();
|
|
25
|
+
|
|
26
|
+
#ifdef SK_ENABLE_SKSL
|
|
27
|
+
SkSL::Version skslVersion() const { return fSkSLVersion; }
|
|
28
|
+
#endif
|
|
29
|
+
|
|
30
|
+
protected:
|
|
31
|
+
#if defined(SK_GRAPHITE_ENABLED)
|
|
32
|
+
friend class skgpu::graphite::Caps; // for ctor
|
|
33
|
+
#endif
|
|
34
|
+
|
|
35
|
+
SkCapabilities() = default;
|
|
36
|
+
|
|
37
|
+
#ifdef SK_ENABLE_SKSL
|
|
38
|
+
void initSkCaps(const SkSL::ShaderCaps*);
|
|
39
|
+
|
|
40
|
+
SkSL::Version fSkSLVersion = SkSL::Version::k100;
|
|
41
|
+
#endif
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
#endif
|
|
@@ -405,6 +405,11 @@ struct SkRGBA4f {
|
|
|
405
405
|
uint32_t toBytes_RGBA() const;
|
|
406
406
|
static SkRGBA4f FromBytes_RGBA(uint32_t color);
|
|
407
407
|
|
|
408
|
+
/**
|
|
409
|
+
Returns a copy of the SkRGBA4f but with alpha component set to 1.0f.
|
|
410
|
+
|
|
411
|
+
@return opaque color
|
|
412
|
+
*/
|
|
408
413
|
SkRGBA4f makeOpaque() const {
|
|
409
414
|
return { fR, fG, fB, 1.0f };
|
|
410
415
|
}
|
|
@@ -420,6 +425,8 @@ using SkColor4f = SkRGBA4f<kUnpremul_SkAlphaType>;
|
|
|
420
425
|
|
|
421
426
|
template <> SK_API SkColor4f SkColor4f::FromColor(SkColor);
|
|
422
427
|
template <> SK_API SkColor SkColor4f::toSkColor() const;
|
|
428
|
+
template <> SK_API uint32_t SkColor4f::toBytes_RGBA() const;
|
|
429
|
+
template <> SK_API SkColor4f SkColor4f::FromBytes_RGBA(uint32_t color);
|
|
423
430
|
|
|
424
431
|
namespace SkColors {
|
|
425
432
|
constexpr SkColor4f kTransparent = {0, 0, 0, 0};
|
|
@@ -71,7 +71,12 @@ public:
|
|
|
71
71
|
static sk_sp<SkColorFilter> Compose(sk_sp<SkColorFilter> outer, sk_sp<SkColorFilter> inner) {
|
|
72
72
|
return outer ? outer->makeComposed(inner) : inner;
|
|
73
73
|
}
|
|
74
|
+
|
|
75
|
+
// Blends between the constant color (src) and input color (dst) based on the SkBlendMode.
|
|
76
|
+
// If the color space is null, the constant color is assumed to be defined in sRGB.
|
|
77
|
+
static sk_sp<SkColorFilter> Blend(const SkColor4f& c, sk_sp<SkColorSpace>, SkBlendMode mode);
|
|
74
78
|
static sk_sp<SkColorFilter> Blend(SkColor c, SkBlendMode mode);
|
|
79
|
+
|
|
75
80
|
static sk_sp<SkColorFilter> Matrix(const SkColorMatrix&);
|
|
76
81
|
static sk_sp<SkColorFilter> Matrix(const float rowMajor[20]);
|
|
77
82
|
|
|
@@ -84,6 +89,38 @@ public:
|
|
|
84
89
|
static sk_sp<SkColorFilter> SRGBToLinearGamma();
|
|
85
90
|
static sk_sp<SkColorFilter> Lerp(float t, sk_sp<SkColorFilter> dst, sk_sp<SkColorFilter> src);
|
|
86
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Create a table colorfilter, copying the table into the filter, and
|
|
94
|
+
* applying it to all 4 components.
|
|
95
|
+
* a' = table[a];
|
|
96
|
+
* r' = table[r];
|
|
97
|
+
* g' = table[g];
|
|
98
|
+
* b' = table[b];
|
|
99
|
+
* Components are operated on in unpremultiplied space. If the incomming
|
|
100
|
+
* colors are premultiplied, they are temporarily unpremultiplied, then
|
|
101
|
+
* the table is applied, and then the result is remultiplied.
|
|
102
|
+
*/
|
|
103
|
+
static sk_sp<SkColorFilter> Table(const uint8_t table[256]);
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Create a table colorfilter, with a different table for each
|
|
107
|
+
* component [A, R, G, B]. If a given table is NULL, then it is
|
|
108
|
+
* treated as identity, with the component left unchanged. If a table
|
|
109
|
+
* is not null, then its contents are copied into the filter.
|
|
110
|
+
*/
|
|
111
|
+
static sk_sp<SkColorFilter> TableARGB(const uint8_t tableA[256],
|
|
112
|
+
const uint8_t tableR[256],
|
|
113
|
+
const uint8_t tableG[256],
|
|
114
|
+
const uint8_t tableB[256]);
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* Create a colorfilter that multiplies the RGB channels by one color, and
|
|
118
|
+
* then adds a second color, pinning the result for each component to
|
|
119
|
+
* [0..255]. The alpha components of the mul and add arguments
|
|
120
|
+
* are ignored.
|
|
121
|
+
*/
|
|
122
|
+
static sk_sp<SkColorFilter> Lighting(SkColor mul, SkColor add);
|
|
123
|
+
|
|
87
124
|
private:
|
|
88
125
|
SkColorFilters() = delete;
|
|
89
126
|
};
|
|
@@ -498,6 +498,8 @@ public:
|
|
|
498
498
|
*/
|
|
499
499
|
void dump() const;
|
|
500
500
|
|
|
501
|
+
using sk_is_trivially_relocatable = std::true_type;
|
|
502
|
+
|
|
501
503
|
private:
|
|
502
504
|
enum PrivFlags {
|
|
503
505
|
kForceAutoHinting_PrivFlag = 1 << 0,
|
|
@@ -523,6 +525,8 @@ private:
|
|
|
523
525
|
uint8_t fEdging;
|
|
524
526
|
uint8_t fHinting;
|
|
525
527
|
|
|
528
|
+
static_assert(::sk_is_trivially_relocatable<decltype(fTypeface)>::value);
|
|
529
|
+
|
|
526
530
|
SkScalar setupForAsPaths(SkPaint*);
|
|
527
531
|
bool hasSomeAntiAliasing() const;
|
|
528
532
|
|
|
@@ -117,6 +117,9 @@ public:
|
|
|
117
117
|
/** Return the default fontmgr. */
|
|
118
118
|
static sk_sp<SkFontMgr> RefDefault();
|
|
119
119
|
|
|
120
|
+
/* Returns an empty font manager without any typeface dependencies */
|
|
121
|
+
static sk_sp<SkFontMgr> RefEmpty();
|
|
122
|
+
|
|
120
123
|
protected:
|
|
121
124
|
virtual int onCountFamilies() const = 0;
|
|
122
125
|
virtual void onGetFamilyName(int index, SkString* familyName) const = 0;
|
|
@@ -150,6 +150,15 @@ public:
|
|
|
150
150
|
static OpenTypeSVGDecoderFactory SetOpenTypeSVGDecoderFactory(OpenTypeSVGDecoderFactory);
|
|
151
151
|
static OpenTypeSVGDecoderFactory GetOpenTypeSVGDecoderFactory();
|
|
152
152
|
|
|
153
|
+
/**
|
|
154
|
+
* Temporarily (until variable COLRv1 is released) pass a feature switch function for whether
|
|
155
|
+
* variable COLRv1 is enabled. Needed for initializing FreeType with a property setting so that
|
|
156
|
+
* variable COLRv1 can be enabled in Chrome Canaries during development.
|
|
157
|
+
*/
|
|
158
|
+
using VariableColrV1EnabledFunc = bool (*)();
|
|
159
|
+
static VariableColrV1EnabledFunc SetVariableColrV1EnabledFunc(VariableColrV1EnabledFunc);
|
|
160
|
+
static bool GetVariableColrV1Enabled();
|
|
161
|
+
|
|
153
162
|
/**
|
|
154
163
|
* Call early in main() to allow Skia to use a JIT to accelerate CPU-bound operations.
|
|
155
164
|
*/
|
|
@@ -13,11 +13,12 @@
|
|
|
13
13
|
#include "include/core/SkSamplingOptions.h"
|
|
14
14
|
#include "include/core/SkScalar.h"
|
|
15
15
|
#include "include/core/SkShader.h"
|
|
16
|
+
#include "include/core/SkSurfaceProps.h"
|
|
16
17
|
#include "include/core/SkTileMode.h"
|
|
17
18
|
#if SK_SUPPORT_GPU
|
|
18
19
|
#include "include/gpu/GrTypes.h"
|
|
19
20
|
#endif
|
|
20
|
-
#if SK_GRAPHITE_ENABLED
|
|
21
|
+
#if defined(SK_GRAPHITE_ENABLED)
|
|
21
22
|
#include "include/gpu/graphite/GraphiteTypes.h"
|
|
22
23
|
#endif
|
|
23
24
|
#include <functional> // std::function
|
|
@@ -49,8 +50,9 @@ class SkYUVAPixmaps;
|
|
|
49
50
|
|
|
50
51
|
enum class SkEncodedImageFormat;
|
|
51
52
|
|
|
52
|
-
#if SK_GRAPHITE_ENABLED
|
|
53
|
+
#if defined(SK_GRAPHITE_ENABLED)
|
|
53
54
|
namespace skgpu::graphite {
|
|
55
|
+
class BackendTexture;
|
|
54
56
|
class Recorder;
|
|
55
57
|
};
|
|
56
58
|
#endif
|
|
@@ -253,12 +255,13 @@ public:
|
|
|
253
255
|
@param paint SkPaint to apply transparency, filtering, and so on; may be nullptr
|
|
254
256
|
@param bitDepth 8-bit integer or 16-bit float: per component
|
|
255
257
|
@param colorSpace range of colors; may be nullptr
|
|
258
|
+
@param props props to use when rasterizing the picture
|
|
256
259
|
@return created SkImage, or nullptr
|
|
257
260
|
*/
|
|
258
261
|
static sk_sp<SkImage> MakeFromPicture(sk_sp<SkPicture> picture, const SkISize& dimensions,
|
|
259
262
|
const SkMatrix* matrix, const SkPaint* paint,
|
|
260
|
-
BitDepth bitDepth,
|
|
261
|
-
|
|
263
|
+
BitDepth bitDepth, sk_sp<SkColorSpace> colorSpace,
|
|
264
|
+
SkSurfaceProps props = {});
|
|
262
265
|
|
|
263
266
|
#if SK_SUPPORT_GPU
|
|
264
267
|
/** Creates a GPU-backed SkImage from compressed data.
|
|
@@ -942,6 +945,36 @@ public:
|
|
|
942
945
|
kRepeatedCubic,
|
|
943
946
|
};
|
|
944
947
|
|
|
948
|
+
/** Makes image pixel data available to caller, possibly asynchronously.
|
|
949
|
+
|
|
950
|
+
Currently asynchronous reads are only supported on the GPU backend and only when the
|
|
951
|
+
underlying 3D API supports transfer buffers and CPU/GPU synchronization primitives. In all
|
|
952
|
+
other cases this operates synchronously.
|
|
953
|
+
|
|
954
|
+
Data is read from the source sub-rectangle, then converted to the color space, color type,
|
|
955
|
+
and alpha type of 'info'. A 'srcRect' that is not contained by the bounds of the image
|
|
956
|
+
causes failure.
|
|
957
|
+
|
|
958
|
+
When the pixel data is ready the caller's ReadPixelsCallback is called with a
|
|
959
|
+
AsyncReadResult containing pixel data in the requested color type, alpha type, and color
|
|
960
|
+
space. The AsyncReadResult will have count() == 1. Upon failure the callback is called with
|
|
961
|
+
nullptr for AsyncReadResult. For a GPU image this flushes work but a submit must occur to
|
|
962
|
+
guarantee a finite time before the callback is called.
|
|
963
|
+
|
|
964
|
+
The data is valid for the lifetime of AsyncReadResult with the exception that if the SkImage
|
|
965
|
+
is GPU-backed the data is immediately invalidated if the context is abandoned or
|
|
966
|
+
destroyed.
|
|
967
|
+
|
|
968
|
+
@param info info of the requested pixels
|
|
969
|
+
@param srcRect subrectangle of image to read
|
|
970
|
+
@param callback function to call with result of the read
|
|
971
|
+
@param context passed to callback
|
|
972
|
+
*/
|
|
973
|
+
void asyncReadPixels(const SkImageInfo& info,
|
|
974
|
+
const SkIRect& srcRect,
|
|
975
|
+
ReadPixelsCallback callback,
|
|
976
|
+
ReadPixelsContext context) const;
|
|
977
|
+
|
|
945
978
|
/** Makes image pixel data available to caller, possibly asynchronously. It can also rescale
|
|
946
979
|
the image pixels.
|
|
947
980
|
|
|
@@ -1143,30 +1176,57 @@ public:
|
|
|
1143
1176
|
GrMipmapped = GrMipmapped::kNo,
|
|
1144
1177
|
SkBudgeted = SkBudgeted::kYes) const;
|
|
1145
1178
|
#endif
|
|
1179
|
+
|
|
1146
1180
|
#ifdef SK_GRAPHITE_ENABLED
|
|
1181
|
+
/** Creates an SkImage from a GPU texture associated with the recorder.
|
|
1182
|
+
|
|
1183
|
+
SkImage is returned if the format of backendTexture is recognized and supported.
|
|
1184
|
+
Recognized formats vary by GPU back-end.
|
|
1185
|
+
|
|
1186
|
+
@param recorder The recorder
|
|
1187
|
+
@param backendTexture texture residing on GPU
|
|
1188
|
+
@param colorSpace This describes the color space of this image's contents, as
|
|
1189
|
+
seen after sampling. In general, if the format of the backend
|
|
1190
|
+
texture is SRGB, some linear colorSpace should be supplied
|
|
1191
|
+
(e.g., SkColorSpace::MakeSRGBLinear()). If the format of the
|
|
1192
|
+
backend texture is linear, then the colorSpace should include
|
|
1193
|
+
a description of the transfer function as
|
|
1194
|
+
well (e.g., SkColorSpace::MakeSRGB()).
|
|
1195
|
+
@return created SkImage, or nullptr
|
|
1196
|
+
*/
|
|
1197
|
+
static sk_sp<SkImage> MakeGraphiteFromBackendTexture(skgpu::graphite::Recorder*,
|
|
1198
|
+
const skgpu::graphite::BackendTexture&,
|
|
1199
|
+
SkColorType colorType,
|
|
1200
|
+
SkAlphaType alphaType,
|
|
1201
|
+
sk_sp<SkColorSpace> colorSpace);
|
|
1202
|
+
|
|
1203
|
+
struct RequiredImageProperties {
|
|
1204
|
+
skgpu::graphite::Mipmapped fMipmapped;
|
|
1205
|
+
};
|
|
1206
|
+
|
|
1147
1207
|
/** Graphite version of makeTextureImage.
|
|
1148
1208
|
|
|
1149
|
-
Returns SkImage backed by
|
|
1150
|
-
The returned SkImage respects
|
|
1151
|
-
|
|
1209
|
+
Returns an SkImage backed by a Graphite texture, using the provided Recorder for creation
|
|
1210
|
+
and uploads if necessary. The returned SkImage respects the required image properties'
|
|
1211
|
+
mipmap setting for non-Graphite SkImages; i.e., if mipmapping is required, the backing
|
|
1212
|
+
Graphite texture will have allocated mip map levels.
|
|
1152
1213
|
|
|
1153
1214
|
It is assumed that MIP maps are always supported by the GPU.
|
|
1154
1215
|
|
|
1155
|
-
Returns original SkImage if the image is already
|
|
1156
|
-
|
|
1157
|
-
|
|
1216
|
+
Returns original SkImage if the image is already Graphite-backed and the required mipmapping
|
|
1217
|
+
is compatible with the backing Graphite texture. If the required mipmapping is not
|
|
1218
|
+
compatible, nullptr will be returned.
|
|
1158
1219
|
|
|
1159
|
-
Returns nullptr if
|
|
1220
|
+
Returns nullptr if no Recorder is provided, or if SkImage was created with another
|
|
1160
1221
|
Recorder and work on that Recorder has not been submitted.
|
|
1161
1222
|
|
|
1162
|
-
@param Recorder
|
|
1163
|
-
@param
|
|
1164
|
-
|
|
1223
|
+
@param Recorder the Recorder to use for storing commands
|
|
1224
|
+
@param RequiredImageProperties properties the returned SkImage must possess (e.g.,
|
|
1225
|
+
mipmaps)
|
|
1226
|
+
@return created SkImage, or nullptr
|
|
1165
1227
|
*/
|
|
1166
1228
|
sk_sp<SkImage> makeTextureImage(skgpu::graphite::Recorder*,
|
|
1167
|
-
|
|
1168
|
-
SkBudgeted = SkBudgeted::kYes) const;
|
|
1169
|
-
|
|
1229
|
+
RequiredImageProperties = {}) const;
|
|
1170
1230
|
#endif
|
|
1171
1231
|
|
|
1172
1232
|
/** Returns raster image or lazy image. Copies SkImage backed by GPU texture into
|
|
@@ -8,12 +8,14 @@
|
|
|
8
8
|
#ifndef SkImageEncoder_DEFINED
|
|
9
9
|
#define SkImageEncoder_DEFINED
|
|
10
10
|
|
|
11
|
-
#include "include/core/SkData.h"
|
|
12
11
|
#include "include/core/SkEncodedImageFormat.h"
|
|
13
|
-
#include "include/core/
|
|
14
|
-
#include "include/core/
|
|
12
|
+
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/core/SkTypes.h"
|
|
15
14
|
|
|
16
15
|
class SkBitmap;
|
|
16
|
+
class SkData;
|
|
17
|
+
class SkPixmap;
|
|
18
|
+
class SkWStream;
|
|
17
19
|
|
|
18
20
|
/**
|
|
19
21
|
* Encode SkPixmap in the given binary image format.
|