@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
|
@@ -14,6 +14,23 @@
|
|
|
14
14
|
|
|
15
15
|
class SK_API SkEncoder : SkNoncopyable {
|
|
16
16
|
public:
|
|
17
|
+
/**
|
|
18
|
+
* A single frame to be encoded into an animated image.
|
|
19
|
+
*
|
|
20
|
+
* If a frame does not fit in the canvas size, this is an error.
|
|
21
|
+
* TODO(skia:13705): Add offsets when we have support for an encoder that supports using
|
|
22
|
+
* offsets.
|
|
23
|
+
*/
|
|
24
|
+
struct SK_API Frame {
|
|
25
|
+
/**
|
|
26
|
+
* Pixmap of the frame.
|
|
27
|
+
*/
|
|
28
|
+
SkPixmap pixmap;
|
|
29
|
+
/**
|
|
30
|
+
* Duration of the frame in millseconds.
|
|
31
|
+
*/
|
|
32
|
+
int duration;
|
|
33
|
+
};
|
|
17
34
|
|
|
18
35
|
/**
|
|
19
36
|
* Encode |numRows| rows of input. If the caller requests more rows than are remaining
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#ifndef SkWebpEncoder_DEFINED
|
|
9
9
|
#define SkWebpEncoder_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkSpan.h"
|
|
11
12
|
#include "include/encode/SkEncoder.h"
|
|
12
13
|
|
|
13
14
|
class SkWStream;
|
|
@@ -43,6 +44,22 @@ namespace SkWebpEncoder {
|
|
|
43
44
|
* Returns true on success. Returns false on an invalid or unsupported |src|.
|
|
44
45
|
*/
|
|
45
46
|
SK_API bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Encode the |src| frames to the |dst| stream.
|
|
50
|
+
* |options| may be used to control the encoding behavior.
|
|
51
|
+
*
|
|
52
|
+
* The size of the first frame will be used as the canvas size. If any other frame does
|
|
53
|
+
* not match the canvas size, this is an error.
|
|
54
|
+
*
|
|
55
|
+
* Returns true on success. Returns false on an invalid or unsupported |src|.
|
|
56
|
+
*
|
|
57
|
+
* Note: libwebp API also supports set background color, loop limit and customize
|
|
58
|
+
* lossy/lossless for each frame. These could be added later as needed.
|
|
59
|
+
*/
|
|
60
|
+
SK_API bool EncodeAnimated(SkWStream* dst,
|
|
61
|
+
SkSpan<const SkEncoder::Frame> src,
|
|
62
|
+
const Options& options);
|
|
46
63
|
} // namespace SkWebpEncoder
|
|
47
64
|
|
|
48
65
|
#endif
|
|
@@ -16,6 +16,16 @@
|
|
|
16
16
|
|
|
17
17
|
namespace skgpu {
|
|
18
18
|
|
|
19
|
+
/**
|
|
20
|
+
* Possible 3D APIs that may be used by Graphite.
|
|
21
|
+
*/
|
|
22
|
+
enum class BackendApi : unsigned {
|
|
23
|
+
kDawn,
|
|
24
|
+
kMetal,
|
|
25
|
+
kVulkan,
|
|
26
|
+
kMock,
|
|
27
|
+
};
|
|
28
|
+
|
|
19
29
|
/**
|
|
20
30
|
* Value passed into various callbacks to tell the client the result of operations connected to a
|
|
21
31
|
* specific callback. The actual interpretation of kFailed and kSuccess are dependent on the
|
|
@@ -27,6 +37,14 @@ enum class CallbackResult : bool {
|
|
|
27
37
|
};
|
|
28
38
|
|
|
29
39
|
|
|
40
|
+
/**
|
|
41
|
+
* Is the data protected on the GPU or not.
|
|
42
|
+
*/
|
|
43
|
+
enum class Protected : bool {
|
|
44
|
+
kNo = false,
|
|
45
|
+
kYes = true,
|
|
46
|
+
};
|
|
47
|
+
|
|
30
48
|
} // namespace skgpu
|
|
31
49
|
|
|
32
50
|
#endif // skgpu_GpuTypes_DEFINED
|
|
@@ -8,9 +8,14 @@
|
|
|
8
8
|
#ifndef GrBackendSurface_DEFINED
|
|
9
9
|
#define GrBackendSurface_DEFINED
|
|
10
10
|
|
|
11
|
+
// This include of GrBackendSurfaceMutableState is not needed here, but some clients were depending
|
|
12
|
+
// on the include here instead of including it themselves. Adding this back here until we can fix
|
|
13
|
+
// up clients so it can be removed.
|
|
11
14
|
#include "include/gpu/GrBackendSurfaceMutableState.h"
|
|
15
|
+
|
|
12
16
|
#include "include/gpu/GrSurfaceInfo.h"
|
|
13
17
|
#include "include/gpu/GrTypes.h"
|
|
18
|
+
#include "include/gpu/MutableTextureState.h"
|
|
14
19
|
#ifdef SK_GL
|
|
15
20
|
#include "include/gpu/gl/GrGLTypes.h"
|
|
16
21
|
#include "include/private/gpu/ganesh/GrGLTypesPriv.h"
|
|
@@ -25,11 +30,16 @@
|
|
|
25
30
|
#include "include/gpu/dawn/GrDawnTypes.h"
|
|
26
31
|
#endif
|
|
27
32
|
|
|
28
|
-
|
|
33
|
+
#include <string>
|
|
34
|
+
|
|
29
35
|
class GrVkImageLayout;
|
|
30
36
|
class GrGLTextureParameters;
|
|
31
37
|
class GrColorFormatDesc;
|
|
32
38
|
|
|
39
|
+
namespace skgpu {
|
|
40
|
+
class MutableTextureStateRef;
|
|
41
|
+
}
|
|
42
|
+
|
|
33
43
|
#ifdef SK_DAWN
|
|
34
44
|
#include "webgpu/webgpu_cpp.h"
|
|
35
45
|
#endif
|
|
@@ -267,38 +277,44 @@ public:
|
|
|
267
277
|
GrBackendTexture(int width,
|
|
268
278
|
int height,
|
|
269
279
|
GrMipmapped,
|
|
270
|
-
const GrGLTextureInfo& glInfo
|
|
280
|
+
const GrGLTextureInfo& glInfo,
|
|
281
|
+
std::string_view label = {});
|
|
271
282
|
#endif
|
|
272
283
|
|
|
273
284
|
#ifdef SK_VULKAN
|
|
274
285
|
GrBackendTexture(int width,
|
|
275
286
|
int height,
|
|
276
|
-
const GrVkImageInfo& vkInfo
|
|
287
|
+
const GrVkImageInfo& vkInfo,
|
|
288
|
+
std::string_view label = {});
|
|
277
289
|
#endif
|
|
278
290
|
|
|
279
291
|
#ifdef SK_METAL
|
|
280
292
|
GrBackendTexture(int width,
|
|
281
293
|
int height,
|
|
282
294
|
GrMipmapped,
|
|
283
|
-
const GrMtlTextureInfo& mtlInfo
|
|
295
|
+
const GrMtlTextureInfo& mtlInfo,
|
|
296
|
+
std::string_view label = {});
|
|
284
297
|
#endif
|
|
285
298
|
|
|
286
299
|
#ifdef SK_DIRECT3D
|
|
287
300
|
GrBackendTexture(int width,
|
|
288
301
|
int height,
|
|
289
|
-
const GrD3DTextureResourceInfo& d3dInfo
|
|
302
|
+
const GrD3DTextureResourceInfo& d3dInfo,
|
|
303
|
+
std::string_view label = {});
|
|
290
304
|
#endif
|
|
291
305
|
|
|
292
306
|
#ifdef SK_DAWN
|
|
293
307
|
GrBackendTexture(int width,
|
|
294
308
|
int height,
|
|
295
|
-
const GrDawnTextureInfo& dawnInfo
|
|
309
|
+
const GrDawnTextureInfo& dawnInfo,
|
|
310
|
+
std::string_view label = {});
|
|
296
311
|
#endif
|
|
297
312
|
|
|
298
313
|
GrBackendTexture(int width,
|
|
299
314
|
int height,
|
|
300
315
|
GrMipmapped,
|
|
301
|
-
const GrMockTextureInfo& mockInfo
|
|
316
|
+
const GrMockTextureInfo& mockInfo,
|
|
317
|
+
std::string_view label = {});
|
|
302
318
|
|
|
303
319
|
GrBackendTexture(const GrBackendTexture& that);
|
|
304
320
|
|
|
@@ -309,6 +325,7 @@ public:
|
|
|
309
325
|
SkISize dimensions() const { return {fWidth, fHeight}; }
|
|
310
326
|
int width() const { return fWidth; }
|
|
311
327
|
int height() const { return fHeight; }
|
|
328
|
+
std::string_view getLabel() const { return fLabel; }
|
|
312
329
|
GrMipmapped mipmapped() const { return fMipmapped; }
|
|
313
330
|
bool hasMipmaps() const { return fMipmapped == GrMipmapped::kYes; }
|
|
314
331
|
/** deprecated alias of hasMipmaps(). */
|
|
@@ -372,7 +389,7 @@ public:
|
|
|
372
389
|
// that can be set from this function are:
|
|
373
390
|
//
|
|
374
391
|
// Vulkan: VkImageLayout and QueueFamilyIndex
|
|
375
|
-
void setMutableState(const
|
|
392
|
+
void setMutableState(const skgpu::MutableTextureState&);
|
|
376
393
|
|
|
377
394
|
// Returns true if we are working with protected content.
|
|
378
395
|
bool isProtected() const;
|
|
@@ -389,7 +406,7 @@ public:
|
|
|
389
406
|
|
|
390
407
|
private:
|
|
391
408
|
friend class GrVkGpu; // for getMutableState
|
|
392
|
-
sk_sp<
|
|
409
|
+
sk_sp<skgpu::MutableTextureStateRef> getMutableState() const;
|
|
393
410
|
|
|
394
411
|
#ifdef SK_GL
|
|
395
412
|
friend class GrGLTexture;
|
|
@@ -398,7 +415,8 @@ private:
|
|
|
398
415
|
int height,
|
|
399
416
|
GrMipmapped,
|
|
400
417
|
const GrGLTextureInfo,
|
|
401
|
-
sk_sp<GrGLTextureParameters
|
|
418
|
+
sk_sp<GrGLTextureParameters>,
|
|
419
|
+
std::string_view label = {});
|
|
402
420
|
sk_sp<GrGLTextureParameters> getGLTextureParams() const;
|
|
403
421
|
#endif
|
|
404
422
|
|
|
@@ -407,7 +425,8 @@ private:
|
|
|
407
425
|
GrBackendTexture(int width,
|
|
408
426
|
int height,
|
|
409
427
|
const GrVkImageInfo& vkInfo,
|
|
410
|
-
sk_sp<
|
|
428
|
+
sk_sp<skgpu::MutableTextureStateRef> mutableState,
|
|
429
|
+
std::string_view label = {});
|
|
411
430
|
#endif
|
|
412
431
|
|
|
413
432
|
#ifdef SK_DIRECT3D
|
|
@@ -416,7 +435,8 @@ private:
|
|
|
416
435
|
GrBackendTexture(int width,
|
|
417
436
|
int height,
|
|
418
437
|
const GrD3DTextureResourceInfo& vkInfo,
|
|
419
|
-
sk_sp<GrD3DResourceState> state
|
|
438
|
+
sk_sp<GrD3DResourceState> state,
|
|
439
|
+
std::string_view label = {});
|
|
420
440
|
sk_sp<GrD3DResourceState> getGrD3DResourceState() const;
|
|
421
441
|
#endif
|
|
422
442
|
|
|
@@ -426,6 +446,7 @@ private:
|
|
|
426
446
|
bool fIsValid;
|
|
427
447
|
int fWidth; //<! width in pixels
|
|
428
448
|
int fHeight; //<! height in pixels
|
|
449
|
+
const std::string fLabel;
|
|
429
450
|
GrMipmapped fMipmapped;
|
|
430
451
|
GrBackendApi fBackend;
|
|
431
452
|
GrTextureType fTextureType;
|
|
@@ -449,7 +470,7 @@ private:
|
|
|
449
470
|
GrDawnTextureInfo fDawnInfo;
|
|
450
471
|
#endif
|
|
451
472
|
|
|
452
|
-
sk_sp<
|
|
473
|
+
sk_sp<skgpu::MutableTextureStateRef> fMutableState;
|
|
453
474
|
};
|
|
454
475
|
|
|
455
476
|
class SK_API GrBackendRenderTarget {
|
|
@@ -570,7 +591,7 @@ public:
|
|
|
570
591
|
// that can be set from this function are:
|
|
571
592
|
//
|
|
572
593
|
// Vulkan: VkImageLayout and QueueFamilyIndex
|
|
573
|
-
void setMutableState(const
|
|
594
|
+
void setMutableState(const skgpu::MutableTextureState&);
|
|
574
595
|
|
|
575
596
|
// Returns true if we are working with protected content.
|
|
576
597
|
bool isProtected() const;
|
|
@@ -585,14 +606,14 @@ public:
|
|
|
585
606
|
|
|
586
607
|
private:
|
|
587
608
|
friend class GrVkGpu; // for getMutableState
|
|
588
|
-
sk_sp<
|
|
609
|
+
sk_sp<skgpu::MutableTextureStateRef> getMutableState() const;
|
|
589
610
|
|
|
590
611
|
#ifdef SK_VULKAN
|
|
591
612
|
friend class GrVkRenderTarget;
|
|
592
613
|
GrBackendRenderTarget(int width,
|
|
593
614
|
int height,
|
|
594
615
|
const GrVkImageInfo& vkInfo,
|
|
595
|
-
sk_sp<
|
|
616
|
+
sk_sp<skgpu::MutableTextureStateRef> mutableState);
|
|
596
617
|
#endif
|
|
597
618
|
|
|
598
619
|
#ifdef SK_DIRECT3D
|
|
@@ -636,7 +657,7 @@ private:
|
|
|
636
657
|
#ifdef SK_DAWN
|
|
637
658
|
GrDawnRenderTargetInfo fDawnInfo;
|
|
638
659
|
#endif
|
|
639
|
-
sk_sp<
|
|
660
|
+
sk_sp<skgpu::MutableTextureStateRef> fMutableState;
|
|
640
661
|
};
|
|
641
662
|
|
|
642
663
|
#endif
|
|
@@ -8,84 +8,19 @@
|
|
|
8
8
|
#ifndef GrBackendSurfaceMutableState_DEFINED
|
|
9
9
|
#define GrBackendSurfaceMutableState_DEFINED
|
|
10
10
|
|
|
11
|
-
#include "include/gpu/
|
|
11
|
+
#include "include/gpu/MutableTextureState.h"
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
#include "include/private/gpu/ganesh/GrVkTypesPriv.h"
|
|
15
|
-
#endif
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Since Skia and clients can both modify gpu textures and their connected state, Skia needs a way
|
|
19
|
-
* for clients to inform us if they have modifiend any of this state. In order to not need setters
|
|
20
|
-
* for every single API and state, we use this class to be a generic wrapper around all the mutable
|
|
21
|
-
* state. This class is used for calls that inform Skia of these texture/image state changes by the
|
|
22
|
-
* client as well as for requesting state changes to be done by Skia. The backend specific state
|
|
23
|
-
* that is wrapped by this class are:
|
|
24
|
-
*
|
|
25
|
-
* Vulkan: VkImageLayout and QueueFamilyIndex
|
|
26
|
-
*/
|
|
27
|
-
class SK_API GrBackendSurfaceMutableState {
|
|
13
|
+
class GrBackendSurfaceMutableState : public skgpu::MutableTextureState {
|
|
28
14
|
public:
|
|
29
|
-
GrBackendSurfaceMutableState()
|
|
15
|
+
GrBackendSurfaceMutableState() = default;
|
|
30
16
|
|
|
31
17
|
#ifdef SK_VULKAN
|
|
32
18
|
GrBackendSurfaceMutableState(VkImageLayout layout, uint32_t queueFamilyIndex)
|
|
33
|
-
:
|
|
34
|
-
, fBackend(GrBackend::kVulkan)
|
|
35
|
-
, fIsValid(true) {}
|
|
36
|
-
#endif
|
|
37
|
-
|
|
38
|
-
GrBackendSurfaceMutableState(const GrBackendSurfaceMutableState& that);
|
|
39
|
-
GrBackendSurfaceMutableState& operator=(const GrBackendSurfaceMutableState& that);
|
|
40
|
-
|
|
41
|
-
#ifdef SK_VULKAN
|
|
42
|
-
// If this class is not Vulkan backed it will return value of VK_IMAGE_LAYOUT_UNDEFINED.
|
|
43
|
-
// Otherwise it will return the VkImageLayout.
|
|
44
|
-
VkImageLayout getVkImageLayout() const {
|
|
45
|
-
if (this->isValid() && fBackend != GrBackendApi::kVulkan) {
|
|
46
|
-
return VK_IMAGE_LAYOUT_UNDEFINED;
|
|
47
|
-
}
|
|
48
|
-
return fVkState.getImageLayout();
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
// If this class is not Vulkan backed it will return value of VK_QUEUE_FAMILY_IGNORED.
|
|
52
|
-
// Otherwise it will return the VkImageLayout.
|
|
53
|
-
uint32_t getQueueFamilyIndex() const {
|
|
54
|
-
if (this->isValid() && fBackend != GrBackendApi::kVulkan) {
|
|
55
|
-
return VK_QUEUE_FAMILY_IGNORED;
|
|
56
|
-
}
|
|
57
|
-
return fVkState.getQueueFamilyIndex();
|
|
58
|
-
}
|
|
59
|
-
#endif
|
|
60
|
-
|
|
61
|
-
// Returns true if the backend mutable state has been initialized.
|
|
62
|
-
bool isValid() const { return fIsValid; }
|
|
63
|
-
|
|
64
|
-
GrBackendApi backend() const { return fBackend; }
|
|
65
|
-
|
|
66
|
-
private:
|
|
67
|
-
friend class GrBackendSurfaceMutableStateImpl;
|
|
68
|
-
friend class GrVkGpu;
|
|
69
|
-
|
|
70
|
-
#ifdef SK_VULKAN
|
|
71
|
-
void setVulkanState(VkImageLayout layout, uint32_t queueFamilyIndex) {
|
|
72
|
-
SkASSERT(!this->isValid() || fBackend == GrBackendApi::kVulkan);
|
|
73
|
-
fVkState.setImageLayout(layout);
|
|
74
|
-
fVkState.setQueueFamilyIndex(queueFamilyIndex);
|
|
75
|
-
fBackend = GrBackendApi::kVulkan;
|
|
76
|
-
fIsValid = true;
|
|
77
|
-
}
|
|
78
|
-
#endif
|
|
79
|
-
|
|
80
|
-
union {
|
|
81
|
-
char fPlaceholder;
|
|
82
|
-
#ifdef SK_VULKAN
|
|
83
|
-
GrVkSharedImageInfo fVkState;
|
|
19
|
+
: skgpu::MutableTextureState(layout, queueFamilyIndex) {}
|
|
84
20
|
#endif
|
|
85
|
-
};
|
|
86
21
|
|
|
87
|
-
|
|
88
|
-
|
|
22
|
+
GrBackendSurfaceMutableState(const GrBackendSurfaceMutableState& that)
|
|
23
|
+
: skgpu::MutableTextureState(that) {}
|
|
89
24
|
};
|
|
90
25
|
|
|
91
26
|
#endif
|
|
@@ -252,7 +252,7 @@ struct SK_API GrContextOptions {
|
|
|
252
252
|
|
|
253
253
|
/**
|
|
254
254
|
* If true, then add 1 pixel padding to all glyph masks in the atlas to support bi-lerp
|
|
255
|
-
* rendering of all glyphs. This must be set to true to use
|
|
255
|
+
* rendering of all glyphs. This must be set to true to use Slugs.
|
|
256
256
|
*/
|
|
257
257
|
#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG) || \
|
|
258
258
|
defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE) || \
|
|
@@ -21,12 +21,13 @@
|
|
|
21
21
|
class GrBackendFormat;
|
|
22
22
|
class GrCaps;
|
|
23
23
|
class GrContextThreadSafeProxyPriv;
|
|
24
|
-
class GrTextBlobRedrawCoordinator;
|
|
25
24
|
class GrThreadSafeCache;
|
|
26
25
|
class GrThreadSafePipelineBuilder;
|
|
27
26
|
class SkSurfaceCharacterization;
|
|
28
27
|
class SkSurfaceProps;
|
|
29
28
|
|
|
29
|
+
namespace sktext::gpu { class TextBlobRedrawCoordinator; }
|
|
30
|
+
|
|
30
31
|
/**
|
|
31
32
|
* Can be used to perform actions related to the generating GrContext in a thread safe manner. The
|
|
32
33
|
* proxy does not access the 3D API (e.g. OpenGL) that backs the generating GrContext.
|
|
@@ -149,14 +150,14 @@ private:
|
|
|
149
150
|
// `init` method on GrContext_Base).
|
|
150
151
|
void init(sk_sp<const GrCaps>, sk_sp<GrThreadSafePipelineBuilder>);
|
|
151
152
|
|
|
152
|
-
const GrBackendApi
|
|
153
|
-
const GrContextOptions
|
|
154
|
-
const uint32_t
|
|
155
|
-
sk_sp<const GrCaps>
|
|
156
|
-
std::unique_ptr<
|
|
157
|
-
std::unique_ptr<GrThreadSafeCache>
|
|
158
|
-
sk_sp<GrThreadSafePipelineBuilder>
|
|
159
|
-
std::atomic<bool>
|
|
153
|
+
const GrBackendApi fBackend;
|
|
154
|
+
const GrContextOptions fOptions;
|
|
155
|
+
const uint32_t fContextID;
|
|
156
|
+
sk_sp<const GrCaps> fCaps;
|
|
157
|
+
std::unique_ptr<sktext::gpu::TextBlobRedrawCoordinator> fTextBlobRedrawCoordinator;
|
|
158
|
+
std::unique_ptr<GrThreadSafeCache> fThreadSafeCache;
|
|
159
|
+
sk_sp<GrThreadSafePipelineBuilder> fPipelineBuilder;
|
|
160
|
+
std::atomic<bool> fAbandoned{false};
|
|
160
161
|
};
|
|
161
162
|
|
|
162
163
|
#else // !SK_SUPPORT_GPU
|
|
@@ -148,6 +148,9 @@ public:
|
|
|
148
148
|
* The typical use case for this function is that the underlying 3D context was lost and further
|
|
149
149
|
* API calls may crash.
|
|
150
150
|
*
|
|
151
|
+
* This call is not valid to be made inside ReleaseProcs passed into SkSurface or SkImages. The
|
|
152
|
+
* call will simply fail (and assert in debug) if it is called while inside a ReleaseProc.
|
|
153
|
+
*
|
|
151
154
|
* For Vulkan, even if the device becomes lost, the VkQueue, VkDevice, or VkInstance used to
|
|
152
155
|
* create the context must be kept alive even after abandoning the context. Those objects must
|
|
153
156
|
* live for the lifetime of the context object itself. The reason for this is so that
|
|
@@ -445,11 +448,13 @@ public:
|
|
|
445
448
|
* For the Vulkan backend the layout of the created VkImage will be:
|
|
446
449
|
* VK_IMAGE_LAYOUT_UNDEFINED.
|
|
447
450
|
*/
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
451
|
+
GrBackendTexture createBackendTexture(int width,
|
|
452
|
+
int height,
|
|
453
|
+
const GrBackendFormat&,
|
|
454
|
+
GrMipmapped,
|
|
455
|
+
GrRenderable,
|
|
456
|
+
GrProtected = GrProtected::kNo,
|
|
457
|
+
std::string_view label = {});
|
|
453
458
|
|
|
454
459
|
/**
|
|
455
460
|
* If possible, create an uninitialized backend texture. The client should ensure that the
|
|
@@ -463,7 +468,8 @@ public:
|
|
|
463
468
|
SkColorType,
|
|
464
469
|
GrMipmapped,
|
|
465
470
|
GrRenderable,
|
|
466
|
-
GrProtected = GrProtected::kNo
|
|
471
|
+
GrProtected = GrProtected::kNo,
|
|
472
|
+
std::string_view label = {});
|
|
467
473
|
|
|
468
474
|
/**
|
|
469
475
|
* If possible, create a backend texture initialized to a particular color. The client should
|
|
@@ -481,7 +487,8 @@ public:
|
|
|
481
487
|
GrRenderable,
|
|
482
488
|
GrProtected = GrProtected::kNo,
|
|
483
489
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
484
|
-
GrGpuFinishedContext finishedContext = nullptr
|
|
490
|
+
GrGpuFinishedContext finishedContext = nullptr,
|
|
491
|
+
std::string_view label = {});
|
|
485
492
|
|
|
486
493
|
/**
|
|
487
494
|
* If possible, create a backend texture initialized to a particular color. The client should
|
|
@@ -501,7 +508,8 @@ public:
|
|
|
501
508
|
GrRenderable,
|
|
502
509
|
GrProtected = GrProtected::kNo,
|
|
503
510
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
504
|
-
GrGpuFinishedContext finishedContext = nullptr
|
|
511
|
+
GrGpuFinishedContext finishedContext = nullptr,
|
|
512
|
+
std::string_view label = {});
|
|
505
513
|
|
|
506
514
|
/**
|
|
507
515
|
* If possible, create a backend texture initialized with the provided pixmap data. The client
|
|
@@ -528,7 +536,8 @@ public:
|
|
|
528
536
|
GrRenderable,
|
|
529
537
|
GrProtected,
|
|
530
538
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
531
|
-
GrGpuFinishedContext finishedContext = nullptr
|
|
539
|
+
GrGpuFinishedContext finishedContext = nullptr,
|
|
540
|
+
std::string_view label = {});
|
|
532
541
|
|
|
533
542
|
/**
|
|
534
543
|
* Convenience version createBackendTexture() that takes just a base level pixmap.
|
|
@@ -538,9 +547,10 @@ public:
|
|
|
538
547
|
GrRenderable renderable,
|
|
539
548
|
GrProtected isProtected,
|
|
540
549
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
541
|
-
GrGpuFinishedContext finishedContext = nullptr
|
|
550
|
+
GrGpuFinishedContext finishedContext = nullptr,
|
|
551
|
+
std::string_view label = {}) {
|
|
542
552
|
return this->createBackendTexture(&srcData, 1, textureOrigin, renderable, isProtected,
|
|
543
|
-
finishedProc, finishedContext);
|
|
553
|
+
finishedProc, finishedContext, label);
|
|
544
554
|
}
|
|
545
555
|
|
|
546
556
|
// Deprecated versions that do not take origin and assume top-left.
|
|
@@ -549,26 +559,30 @@ public:
|
|
|
549
559
|
GrRenderable renderable,
|
|
550
560
|
GrProtected isProtected,
|
|
551
561
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
552
|
-
GrGpuFinishedContext finishedContext = nullptr
|
|
562
|
+
GrGpuFinishedContext finishedContext = nullptr,
|
|
563
|
+
std::string_view label = {}) {
|
|
553
564
|
return this->createBackendTexture(srcData,
|
|
554
565
|
numLevels,
|
|
555
566
|
kTopLeft_GrSurfaceOrigin,
|
|
556
567
|
renderable,
|
|
557
568
|
isProtected,
|
|
558
569
|
finishedProc,
|
|
559
|
-
finishedContext
|
|
570
|
+
finishedContext,
|
|
571
|
+
label);
|
|
560
572
|
}
|
|
561
573
|
GrBackendTexture createBackendTexture(const SkPixmap& srcData,
|
|
562
574
|
GrRenderable renderable,
|
|
563
575
|
GrProtected isProtected,
|
|
564
576
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
565
|
-
GrGpuFinishedContext finishedContext = nullptr
|
|
577
|
+
GrGpuFinishedContext finishedContext = nullptr,
|
|
578
|
+
std::string_view label = {}) {
|
|
566
579
|
return this->createBackendTexture(&srcData,
|
|
567
580
|
1,
|
|
568
581
|
renderable,
|
|
569
582
|
isProtected,
|
|
570
583
|
finishedProc,
|
|
571
|
-
finishedContext
|
|
584
|
+
finishedContext,
|
|
585
|
+
label);
|
|
572
586
|
}
|
|
573
587
|
|
|
574
588
|
/**
|
|
@@ -754,16 +768,16 @@ public:
|
|
|
754
768
|
|
|
755
769
|
/**
|
|
756
770
|
* Updates the state of the GrBackendTexture/RenderTarget to have the passed in
|
|
757
|
-
*
|
|
771
|
+
* skgpu::MutableTextureState. All objects that wrap the backend surface (i.e. SkSurfaces and
|
|
758
772
|
* SkImages) will also be aware of this state change. This call does not submit the state change
|
|
759
773
|
* to the gpu, but requires the client to call `submit` to send it to the GPU. The work
|
|
760
774
|
* for this call is ordered linearly with all other calls that require GrContext::submit to be
|
|
761
775
|
* called (e.g updateBackendTexture and flush). If finishedProc is not null then it will be
|
|
762
776
|
* called with finishedContext after the state transition is known to have occurred on the GPU.
|
|
763
777
|
*
|
|
764
|
-
* See
|
|
778
|
+
* See skgpu::MutableTextureState to see what state can be set via this call.
|
|
765
779
|
*
|
|
766
|
-
* If the backend API is Vulkan, the caller can set the
|
|
780
|
+
* If the backend API is Vulkan, the caller can set the skgpu::MutableTextureState's
|
|
767
781
|
* VkImageLayout to VK_IMAGE_LAYOUT_UNDEFINED or queueFamilyIndex to VK_QUEUE_FAMILY_IGNORED to
|
|
768
782
|
* tell Skia to not change those respective states.
|
|
769
783
|
*
|
|
@@ -771,13 +785,13 @@ public:
|
|
|
771
785
|
* previousState to have the values of the state before this call.
|
|
772
786
|
*/
|
|
773
787
|
bool setBackendTextureState(const GrBackendTexture&,
|
|
774
|
-
const
|
|
775
|
-
|
|
788
|
+
const skgpu::MutableTextureState&,
|
|
789
|
+
skgpu::MutableTextureState* previousState = nullptr,
|
|
776
790
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
777
791
|
GrGpuFinishedContext finishedContext = nullptr);
|
|
778
792
|
bool setBackendRenderTargetState(const GrBackendRenderTarget&,
|
|
779
|
-
const
|
|
780
|
-
|
|
793
|
+
const skgpu::MutableTextureState&,
|
|
794
|
+
skgpu::MutableTextureState* previousState = nullptr,
|
|
781
795
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
782
796
|
GrGpuFinishedContext finishedContext = nullptr);
|
|
783
797
|
|
|
@@ -865,6 +879,12 @@ private:
|
|
|
865
879
|
std::unique_ptr<GrResourceCache> fResourceCache;
|
|
866
880
|
std::unique_ptr<GrResourceProvider> fResourceProvider;
|
|
867
881
|
|
|
882
|
+
// This is incremented before we start calling ReleaseProcs from GrSurfaces and decremented
|
|
883
|
+
// after. A ReleaseProc may trigger code causing another resource to get freed so we to track
|
|
884
|
+
// the count to know if we in a ReleaseProc at any level. When this is set to a value greated
|
|
885
|
+
// than zero we will not allow abandonContext calls to be made on the context.
|
|
886
|
+
int fInsideReleaseProcCnt = 0;
|
|
887
|
+
|
|
868
888
|
bool fDidTestPMConversions;
|
|
869
889
|
// true if the PM/UPM conversion succeeded; false otherwise
|
|
870
890
|
bool fPMUPMConversionsRoundTrip;
|
|
@@ -27,13 +27,14 @@ class GrProgramInfo;
|
|
|
27
27
|
class GrProxyProvider;
|
|
28
28
|
class GrRecordingContextPriv;
|
|
29
29
|
class GrSurfaceProxy;
|
|
30
|
-
class GrTextBlobRedrawCoordinator;
|
|
31
30
|
class GrThreadSafeCache;
|
|
32
31
|
class SkArenaAlloc;
|
|
32
|
+
class SkCapabilities;
|
|
33
33
|
class SkJSONWriter;
|
|
34
34
|
|
|
35
35
|
namespace sktext::gpu {
|
|
36
36
|
class SubRunAllocator;
|
|
37
|
+
class TextBlobRedrawCoordinator;
|
|
37
38
|
}
|
|
38
39
|
|
|
39
40
|
#if GR_TEST_UTILS
|
|
@@ -97,6 +98,8 @@ public:
|
|
|
97
98
|
return INHERITED::maxSurfaceSampleCountForColorType(colorType);
|
|
98
99
|
}
|
|
99
100
|
|
|
101
|
+
SK_API sk_sp<const SkCapabilities> skCapabilities() const;
|
|
102
|
+
|
|
100
103
|
// Provides access to functions that aren't part of the public API.
|
|
101
104
|
GrRecordingContextPriv priv();
|
|
102
105
|
const GrRecordingContextPriv priv() const; // NOLINT(readability-const-return-type)
|
|
@@ -189,8 +192,8 @@ protected:
|
|
|
189
192
|
// same lifetime at the DDL itself.
|
|
190
193
|
virtual void detachProgramData(SkTArray<ProgramData>*) {}
|
|
191
194
|
|
|
192
|
-
|
|
193
|
-
const
|
|
195
|
+
sktext::gpu::TextBlobRedrawCoordinator* getTextBlobRedrawCoordinator();
|
|
196
|
+
const sktext::gpu::TextBlobRedrawCoordinator* getTextBlobRedrawCoordinator() const;
|
|
194
197
|
|
|
195
198
|
GrThreadSafeCache* threadSafeCache();
|
|
196
199
|
const GrThreadSafeCache* threadSafeCache() const;
|
|
@@ -36,37 +36,37 @@ private:
|
|
|
36
36
|
* basic bitfield.
|
|
37
37
|
*/
|
|
38
38
|
#define GR_MAKE_BITFIELD_CLASS_OPS(X) \
|
|
39
|
-
|
|
39
|
+
[[maybe_unused]] constexpr GrTFlagsMask<X> operator~(X a) { \
|
|
40
40
|
return GrTFlagsMask<X>(~static_cast<int>(a)); \
|
|
41
41
|
} \
|
|
42
|
-
|
|
42
|
+
[[maybe_unused]] constexpr X operator|(X a, X b) { \
|
|
43
43
|
return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
|
|
44
44
|
} \
|
|
45
|
-
|
|
45
|
+
[[maybe_unused]] inline X& operator|=(X& a, X b) { \
|
|
46
46
|
return (a = a | b); \
|
|
47
47
|
} \
|
|
48
|
-
|
|
48
|
+
[[maybe_unused]] constexpr bool operator&(X a, X b) { \
|
|
49
49
|
return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
|
|
50
50
|
} \
|
|
51
|
-
|
|
51
|
+
[[maybe_unused]] constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X> a, GrTFlagsMask<X> b) { \
|
|
52
52
|
return GrTFlagsMask<X>(a.value() | b.value()); \
|
|
53
53
|
} \
|
|
54
|
-
|
|
54
|
+
[[maybe_unused]] constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X> a, X b) { \
|
|
55
55
|
return GrTFlagsMask<X>(a.value() | static_cast<int>(b)); \
|
|
56
56
|
} \
|
|
57
|
-
|
|
57
|
+
[[maybe_unused]] constexpr GrTFlagsMask<X> operator|(X a, GrTFlagsMask<X> b) { \
|
|
58
58
|
return GrTFlagsMask<X>(static_cast<int>(a) | b.value()); \
|
|
59
59
|
} \
|
|
60
|
-
|
|
60
|
+
[[maybe_unused]] constexpr X operator&(GrTFlagsMask<X> a, GrTFlagsMask<X> b) { \
|
|
61
61
|
return static_cast<X>(a.value() & b.value()); \
|
|
62
62
|
} \
|
|
63
|
-
|
|
63
|
+
[[maybe_unused]] constexpr X operator&(GrTFlagsMask<X> a, X b) { \
|
|
64
64
|
return static_cast<X>(a.value() & static_cast<int>(b)); \
|
|
65
65
|
} \
|
|
66
|
-
|
|
66
|
+
[[maybe_unused]] constexpr X operator&(X a, GrTFlagsMask<X> b) { \
|
|
67
67
|
return static_cast<X>(static_cast<int>(a) & b.value()); \
|
|
68
68
|
} \
|
|
69
|
-
|
|
69
|
+
[[maybe_unused]] inline X& operator&=(X& a, GrTFlagsMask<X> b) { \
|
|
70
70
|
return (a = a & b); \
|
|
71
71
|
} \
|
|
72
72
|
|