@shopify/react-native-skia 0.1.212 → 0.1.214
Sign up to get free protection for your applications and to get access to all the features.
- package/android/build.gradle +5 -0
- package/android/cpp/rnskia-android/SkiaOpenGLHelper.h +3 -2
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +9 -2
- package/cpp/api/JsiSkSurface.h +4 -1
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +99 -0
- package/cpp/skia/include/android/SkHeifDecoder.h +10 -3
- package/cpp/skia/include/codec/SkAvifDecoder.h +1 -0
- package/cpp/skia/include/codec/SkBmpDecoder.h +1 -0
- package/cpp/skia/include/codec/SkCodec.h +4 -3
- package/cpp/skia/include/codec/SkEncodedImageFormat.h +0 -3
- package/cpp/skia/include/codec/SkGifDecoder.h +1 -0
- package/cpp/skia/include/codec/SkIcoDecoder.h +1 -0
- package/cpp/skia/include/codec/SkJpegDecoder.h +1 -0
- package/cpp/skia/include/codec/SkJpegxlDecoder.h +1 -0
- package/cpp/skia/include/codec/SkPngDecoder.h +1 -0
- package/cpp/skia/include/codec/SkRawDecoder.h +1 -0
- package/cpp/skia/include/codec/SkWbmpDecoder.h +1 -0
- package/cpp/skia/include/codec/SkWebpDecoder.h +1 -0
- package/cpp/skia/include/config/SkUserConfig.h +0 -2
- package/cpp/skia/include/core/SkBitmap.h +8 -8
- package/cpp/skia/include/core/SkCanvas.h +37 -50
- package/cpp/skia/include/core/SkCapabilities.h +2 -7
- package/cpp/skia/include/core/SkColor.h +1 -1
- package/cpp/skia/include/core/SkColorFilter.h +6 -0
- package/cpp/skia/include/core/SkColorTable.h +3 -0
- package/cpp/skia/include/core/SkColorType.h +2 -0
- package/cpp/skia/include/core/SkContourMeasure.h +12 -8
- package/cpp/skia/include/core/SkDocument.h +1 -0
- package/cpp/skia/include/core/SkFont.h +11 -2
- package/cpp/skia/include/core/SkFontMgr.h +2 -3
- package/cpp/skia/include/core/SkGraphics.h +3 -13
- package/cpp/skia/include/core/SkImage.h +57 -111
- package/cpp/skia/include/core/SkImageFilter.h +6 -1
- package/cpp/skia/include/core/SkImageGenerator.h +8 -0
- package/cpp/skia/include/core/SkImageInfo.h +0 -2
- package/cpp/skia/include/core/SkM44.h +7 -3
- package/cpp/skia/include/core/SkMallocPixelRef.h +4 -1
- package/cpp/skia/include/core/SkMatrix.h +17 -17
- package/cpp/skia/include/core/SkMesh.h +71 -61
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkOverdrawCanvas.h +25 -0
- package/cpp/skia/include/core/SkPaint.h +1 -1
- package/cpp/skia/include/core/SkPath.h +12 -4
- package/cpp/skia/include/core/SkPathMeasure.h +3 -4
- package/cpp/skia/include/core/SkPicture.h +19 -6
- package/cpp/skia/include/core/SkPictureRecorder.h +6 -6
- package/cpp/skia/include/core/SkPixmap.h +2 -3
- package/cpp/skia/include/core/SkRRect.h +1 -1
- package/cpp/skia/include/core/SkRect.h +107 -110
- package/cpp/skia/include/core/SkRefCnt.h +1 -1
- package/cpp/skia/include/core/SkRegion.h +7 -1
- package/cpp/skia/include/core/SkSerialProcs.h +14 -0
- package/cpp/skia/include/core/SkShader.h +9 -0
- package/cpp/skia/include/core/SkStream.h +9 -9
- package/cpp/skia/include/core/SkString.h +1 -1
- package/cpp/skia/include/core/SkSurface.h +14 -25
- package/cpp/skia/include/core/SkTextBlob.h +17 -4
- package/cpp/skia/include/core/SkTiledImageUtils.h +28 -0
- package/cpp/skia/include/core/SkTypeface.h +7 -2
- package/cpp/skia/include/core/SkTypes.h +4 -12
- package/cpp/skia/include/docs/SkPDFDocument.h +17 -3
- package/cpp/skia/include/effects/SkImageFilters.h +73 -24
- package/cpp/skia/include/effects/SkRuntimeEffect.h +20 -51
- package/cpp/skia/include/gpu/GpuTypes.h +13 -0
- package/cpp/skia/include/gpu/GrBackendSurface.h +95 -262
- package/cpp/skia/include/gpu/GrContextOptions.h +7 -1
- package/cpp/skia/include/gpu/GrDirectContext.h +138 -128
- package/cpp/skia/include/gpu/GrRecordingContext.h +9 -4
- package/cpp/skia/include/gpu/GrSurfaceInfo.h +0 -24
- package/cpp/skia/include/gpu/GrTypes.h +16 -1
- package/cpp/skia/include/gpu/GrYUVABackendTextures.h +4 -4
- package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -2
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +44 -12
- package/cpp/skia/include/gpu/ganesh/SkMeshGanesh.h +57 -0
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +2 -1
- package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +58 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLDirectContext.h +29 -0
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +1 -1
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +67 -0
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -2
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +14 -3
- package/cpp/skia/include/gpu/graphite/Context.h +93 -13
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +19 -8
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +23 -0
- package/cpp/skia/include/gpu/graphite/Image.h +56 -0
- package/cpp/skia/include/gpu/graphite/ImageProvider.h +5 -0
- package/cpp/skia/include/gpu/graphite/Recorder.h +26 -9
- package/cpp/skia/include/gpu/graphite/Recording.h +7 -5
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +8 -0
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +2 -2
- package/cpp/skia/include/gpu/mtl/GrMtlTypes.h +2 -2
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +4 -3
- package/cpp/skia/include/ports/SkCFObject.h +1 -1
- package/cpp/skia/include/private/SkGainmapInfo.h +4 -13
- package/cpp/skia/include/private/SkJpegGainmapEncoder.h +1 -24
- package/cpp/skia/include/private/SkWeakRefCnt.h +1 -1
- package/cpp/skia/include/private/base/SkAnySubclass.h +73 -0
- package/cpp/skia/include/private/base/SkAssert.h +106 -12
- package/cpp/skia/include/private/base/SkAttributes.h +0 -12
- package/cpp/skia/include/private/base/SkFeatures.h +0 -3
- package/cpp/skia/include/private/base/SkFloatingPoint.h +58 -105
- package/cpp/skia/include/private/base/SkSpan_impl.h +18 -12
- package/cpp/skia/include/private/base/SkTArray.h +22 -17
- package/cpp/skia/include/private/base/SkTDArray.h +5 -6
- package/cpp/skia/include/private/base/SkTemplates.h +50 -30
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +5 -2
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +2 -2
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +13 -8
- package/cpp/skia/include/private/chromium/SkDiscardableMemory.h +1 -1
- package/cpp/skia/include/private/chromium/SkImageChromium.h +16 -3
- package/cpp/skia/include/private/chromium/Slug.h +11 -4
- package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +6 -9
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +29 -13
- package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +2 -28
- package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +34 -0
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +6 -0
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +8 -0
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +10 -0
- package/cpp/skia/include/utils/SkBase64.h +2 -2
- package/cpp/skia/include/utils/SkNWayCanvas.h +1 -11
- package/cpp/skia/include/utils/SkNoDrawCanvas.h +0 -2
- package/cpp/skia/include/utils/SkPaintFilterCanvas.h +1 -2
- package/cpp/skia/include/utils/SkShadowUtils.h +15 -1
- package/cpp/skia/include/utils/SkTextUtils.h +1 -1
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +107 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +3 -2
- package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +4 -0
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +5 -3
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +4 -0
- package/cpp/skia/src/core/SkChecksum.h +2 -1
- package/cpp/skia/src/core/SkPathPriv.h +1 -1
- package/cpp/skia/src/core/SkTHash.h +19 -9
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +3 -1
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Rect.js +5 -1
- package/lib/commonjs/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/commonjs/external/reanimated/index.d.ts +1 -0
- package/lib/commonjs/external/reanimated/index.js +13 -0
- package/lib/commonjs/external/reanimated/index.js.map +1 -1
- package/lib/commonjs/external/reanimated/moduleWrapper.js +3 -8
- package/lib/commonjs/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/commonjs/external/reanimated/renderHelpers.js +46 -1
- package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.d.ts +2 -0
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js +26 -0
- package/lib/commonjs/external/reanimated/useDerivedValueOnJS.js.map +1 -0
- package/lib/commonjs/external/reanimated/useSharedValueEffect.js +2 -5
- package/lib/commonjs/external/reanimated/useSharedValueEffect.js.map +1 -1
- package/lib/commonjs/index.d.ts +1 -0
- package/lib/commonjs/index.js +21 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/skia/types/MaskFilter.js +4 -0
- package/lib/commonjs/skia/types/MaskFilter.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPicture.js +2 -1
- package/lib/commonjs/skia/web/JsiSkPicture.js.map +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.js +1 -1
- package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
- package/lib/commonjs/views/types.js +3 -0
- package/lib/commonjs/views/types.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Rect.js +5 -1
- package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/module/external/reanimated/index.d.ts +1 -0
- package/lib/module/external/reanimated/index.js +1 -0
- package/lib/module/external/reanimated/index.js.map +1 -1
- package/lib/module/external/reanimated/moduleWrapper.js +1 -9
- package/lib/module/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/module/external/reanimated/renderHelpers.js +48 -2
- package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/module/external/reanimated/useDerivedValueOnJS.d.ts +2 -0
- package/lib/module/external/reanimated/useDerivedValueOnJS.js +15 -0
- package/lib/module/external/reanimated/useDerivedValueOnJS.js.map +1 -0
- package/lib/module/external/reanimated/useSharedValueEffect.js +3 -6
- package/lib/module/external/reanimated/useSharedValueEffect.js.map +1 -1
- package/lib/module/index.d.ts +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/skia/types/MaskFilter.js +3 -0
- package/lib/module/skia/types/MaskFilter.js.map +1 -1
- package/lib/module/views/types.js +3 -0
- package/lib/module/views/types.js.map +1 -1
- package/lib/typescript/src/external/reanimated/index.d.ts +1 -0
- package/lib/typescript/src/external/reanimated/useDerivedValueOnJS.d.ts +2 -0
- package/lib/typescript/src/index.d.ts +1 -0
- 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/Info.plist +5 -5
- 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 +5 -5
- 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 +5 -5
- 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/Info.plist +5 -5
- 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 +1 -1
- package/react-native-skia.podspec +1 -1
- package/src/dom/nodes/datatypes/Rect.ts +6 -2
- package/src/external/reanimated/index.ts +1 -0
- package/src/external/reanimated/moduleWrapper.ts +6 -10
- package/src/external/reanimated/renderHelpers.ts +41 -1
- package/src/external/reanimated/useDerivedValueOnJS.ts +24 -0
- package/src/external/reanimated/useSharedValueEffect.ts +4 -7
- package/src/index.ts +1 -0
- package/cpp/skia/include/core/SkDeferredDisplayList.h +0 -15
- package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +0 -15
- package/cpp/skia/include/core/SkPromiseImageTexture.h +0 -20
- package/cpp/skia/include/core/SkSurfaceCharacterization.h +0 -15
- package/cpp/skia/include/core/SkTime.h +0 -63
- package/cpp/skia/include/effects/SkOpPathEffect.h +0 -43
- package/cpp/skia/include/effects/SkStrokeAndFillPathEffect.h +0 -28
- package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +0 -32
- package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +0 -95
- package/cpp/skia/include/private/SkBitmaskEnum.h +0 -59
- package/cpp/skia/include/private/SkSLDefines.h +0 -64
- package/cpp/skia/include/private/SkShadowFlags.h +0 -27
- package/cpp/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h +0 -26
- /package/cpp/skia/{include/private/base → src/core}/SkPathEnums.h +0 -0
@@ -47,10 +47,10 @@ class GlyphRunList;
|
|
47
47
|
class AutoLayerForImageFilter;
|
48
48
|
class GrRecordingContext;
|
49
49
|
|
50
|
-
class SkBaseDevice;
|
51
50
|
class SkBitmap;
|
52
51
|
class SkBlender;
|
53
52
|
class SkData;
|
53
|
+
class SkDevice;
|
54
54
|
class SkDrawable;
|
55
55
|
class SkFont;
|
56
56
|
class SkImage;
|
@@ -78,7 +78,7 @@ namespace SkRecords { class Draw; }
|
|
78
78
|
SkCanvas provides an interface for drawing, and how the drawing is clipped and transformed.
|
79
79
|
SkCanvas contains a stack of SkMatrix and clip values.
|
80
80
|
|
81
|
-
SkCanvas and SkPaint together provide the state to draw into SkSurface or
|
81
|
+
SkCanvas and SkPaint together provide the state to draw into SkSurface or SkDevice.
|
82
82
|
Each SkCanvas draw call transforms the geometry of the object by the concatenation of all
|
83
83
|
SkMatrix values in the stack. The transformed geometry is clipped by the intersection
|
84
84
|
of all of clip values in the stack. The SkCanvas draw calls use SkPaint to supply drawing
|
@@ -90,7 +90,7 @@ namespace SkRecords { class Draw; }
|
|
90
90
|
SkCanvas generated by GPU surface uses Vulkan or OpenGL to draw to the GPU.
|
91
91
|
|
92
92
|
To draw to a document, obtain SkCanvas from SVG canvas, document PDF, or SkPictureRecorder.
|
93
|
-
SkDocument based SkCanvas and other SkCanvas subclasses reference
|
93
|
+
SkDocument based SkCanvas and other SkCanvas subclasses reference SkDevice describing the
|
94
94
|
destination.
|
95
95
|
|
96
96
|
SkCanvas can be constructed to draw to SkBitmap without first creating raster surface.
|
@@ -188,7 +188,7 @@ public:
|
|
188
188
|
|
189
189
|
/** Private. For internal use only.
|
190
190
|
*/
|
191
|
-
explicit SkCanvas(sk_sp<
|
191
|
+
explicit SkCanvas(sk_sp<SkDevice> device);
|
192
192
|
|
193
193
|
/** Constructs a canvas that draws into bitmap.
|
194
194
|
Sets kUnknown_SkPixelGeometry in constructed SkSurface.
|
@@ -281,15 +281,6 @@ public:
|
|
281
281
|
*/
|
282
282
|
SkSurfaceProps getTopProps() const;
|
283
283
|
|
284
|
-
/** Triggers the immediate execution of all pending draw operations.
|
285
|
-
If SkCanvas is associated with GPU surface, resolves all pending GPU operations.
|
286
|
-
If SkCanvas is associated with raster surface, has no effect; raster draw
|
287
|
-
operations are never deferred.
|
288
|
-
|
289
|
-
DEPRECATED: Replace usage with GrDirectContext::flush()
|
290
|
-
*/
|
291
|
-
void flush();
|
292
|
-
|
293
284
|
/** Gets the size of the base or root layer in global canvas coordinates. The
|
294
285
|
origin of the base layer is always (0,0). The area available for drawing may be
|
295
286
|
smaller (due to clipping or saveLayer).
|
@@ -314,19 +305,20 @@ public:
|
|
314
305
|
*/
|
315
306
|
sk_sp<SkSurface> makeSurface(const SkImageInfo& info, const SkSurfaceProps* props = nullptr);
|
316
307
|
|
317
|
-
/** Returns
|
308
|
+
/** Returns Ganesh context of the GPU surface associated with SkCanvas.
|
318
309
|
|
319
310
|
@return GPU context, if available; nullptr otherwise
|
320
311
|
|
321
312
|
example: https://fiddle.skia.org/c/@Canvas_recordingContext
|
322
313
|
*/
|
323
|
-
virtual GrRecordingContext* recordingContext();
|
314
|
+
virtual GrRecordingContext* recordingContext() const;
|
315
|
+
|
324
316
|
|
325
317
|
/** Returns Recorder for the GPU surface associated with SkCanvas.
|
326
318
|
|
327
319
|
@return Recorder, if available; nullptr otherwise
|
328
320
|
*/
|
329
|
-
virtual skgpu::graphite::Recorder* recorder();
|
321
|
+
virtual skgpu::graphite::Recorder* recorder() const;
|
330
322
|
|
331
323
|
/** Sometimes a canvas is owned by a surface. If it is, getSurface() will return a bare
|
332
324
|
* pointer to that surface, else this will return nullptr.
|
@@ -366,7 +358,7 @@ public:
|
|
366
358
|
|
367
359
|
/** Returns true if SkCanvas has direct access to its pixels.
|
368
360
|
|
369
|
-
Pixels are readable when
|
361
|
+
Pixels are readable when SkDevice is raster. Pixels are not readable when SkCanvas
|
370
362
|
is returned from GPU surface, returned by SkDocument::beginPage, returned by
|
371
363
|
SkPictureRecorder::beginRecording, or SkCanvas is the base of a utility class
|
372
364
|
like DebugCanvas.
|
@@ -389,7 +381,7 @@ public:
|
|
389
381
|
Copies each readable pixel intersecting both rectangles, without scaling,
|
390
382
|
converting to dstInfo.colorType() and dstInfo.alphaType() if required.
|
391
383
|
|
392
|
-
Pixels are readable when
|
384
|
+
Pixels are readable when SkDevice is raster, or backed by a GPU.
|
393
385
|
Pixels are not readable when SkCanvas is returned by SkDocument::beginPage,
|
394
386
|
returned by SkPictureRecorder::beginRecording, or SkCanvas is the base of a utility
|
395
387
|
class like DebugCanvas.
|
@@ -426,7 +418,7 @@ public:
|
|
426
418
|
Copies each readable pixel intersecting both rectangles, without scaling,
|
427
419
|
converting to pixmap.colorType() and pixmap.alphaType() if required.
|
428
420
|
|
429
|
-
Pixels are readable when
|
421
|
+
Pixels are readable when SkDevice is raster, or backed by a GPU.
|
430
422
|
Pixels are not readable when SkCanvas is returned by SkDocument::beginPage,
|
431
423
|
returned by SkPictureRecorder::beginRecording, or SkCanvas is the base of a utility
|
432
424
|
class like DebugCanvas.
|
@@ -463,7 +455,7 @@ public:
|
|
463
455
|
Copies each readable pixel intersecting both rectangles, without scaling,
|
464
456
|
converting to bitmap.colorType() and bitmap.alphaType() if required.
|
465
457
|
|
466
|
-
Pixels are readable when
|
458
|
+
Pixels are readable when SkDevice is raster, or backed by a GPU.
|
467
459
|
Pixels are not readable when SkCanvas is returned by SkDocument::beginPage,
|
468
460
|
returned by SkPictureRecorder::beginRecording, or SkCanvas is the base of a utility
|
469
461
|
class like DebugCanvas.
|
@@ -500,7 +492,7 @@ public:
|
|
500
492
|
Copies each readable pixel intersecting both rectangles, without scaling,
|
501
493
|
converting to imageInfo().colorType() and imageInfo().alphaType() if required.
|
502
494
|
|
503
|
-
Pixels are writable when
|
495
|
+
Pixels are writable when SkDevice is raster, or backed by a GPU.
|
504
496
|
Pixels are not writable when SkCanvas is returned by SkDocument::beginPage,
|
505
497
|
returned by SkPictureRecorder::beginRecording, or SkCanvas is the base of a utility
|
506
498
|
class like DebugCanvas.
|
@@ -539,7 +531,7 @@ public:
|
|
539
531
|
Copies each readable pixel intersecting both rectangles, without scaling,
|
540
532
|
converting to imageInfo().colorType() and imageInfo().alphaType() if required.
|
541
533
|
|
542
|
-
Pixels are writable when
|
534
|
+
Pixels are writable when SkDevice is raster, or backed by a GPU.
|
543
535
|
Pixels are not writable when SkCanvas is returned by SkDocument::beginPage,
|
544
536
|
returned by SkPictureRecorder::beginRecording, or SkCanvas is the base of a utility
|
545
537
|
class like DebugCanvas.
|
@@ -1108,7 +1100,7 @@ public:
|
|
1108
1100
|
|
1109
1101
|
Unlike getLocalClipBounds(), returned SkIRect is not outset.
|
1110
1102
|
|
1111
|
-
@return bounds of clip in
|
1103
|
+
@return bounds of clip in base device coordinates
|
1112
1104
|
|
1113
1105
|
example: https://fiddle.skia.org/c/@Canvas_getDeviceClipBounds
|
1114
1106
|
*/
|
@@ -1169,13 +1161,13 @@ public:
|
|
1169
1161
|
such as drawing with SkBlendMode, return undefined results. discard() does
|
1170
1162
|
not change clip or SkMatrix.
|
1171
1163
|
|
1172
|
-
discard() may do nothing, depending on the implementation of SkSurface or
|
1164
|
+
discard() may do nothing, depending on the implementation of SkSurface or SkDevice
|
1173
1165
|
that created SkCanvas.
|
1174
1166
|
|
1175
1167
|
discard() allows optimized performance on subsequent draws by removing
|
1176
|
-
cached data associated with SkSurface or
|
1168
|
+
cached data associated with SkSurface or SkDevice.
|
1177
1169
|
It is not necessary to call discard() once done with SkCanvas;
|
1178
|
-
any cached data is deleted when owning SkSurface or
|
1170
|
+
any cached data is deleted when owning SkSurface or SkDevice is deleted.
|
1179
1171
|
*/
|
1180
1172
|
void discard() { this->onDiscard(); }
|
1181
1173
|
|
@@ -1982,11 +1974,11 @@ public:
|
|
1982
1974
|
*/
|
1983
1975
|
void drawVertices(const sk_sp<SkVertices>& vertices, SkBlendMode mode, const SkPaint& paint);
|
1984
1976
|
|
1985
|
-
#if defined(SK_ENABLE_SKSL)
|
1986
1977
|
/**
|
1987
1978
|
Experimental, under active development, and subject to change without notice.
|
1988
1979
|
|
1989
|
-
Draws a mesh using a user-defined specification (see SkMeshSpecification).
|
1980
|
+
Draws a mesh using a user-defined specification (see SkMeshSpecification). Requires
|
1981
|
+
a GPU backend or SkSL to be compiled in.
|
1990
1982
|
|
1991
1983
|
SkBlender is ignored if SkMesh's specification does not output fragment shader color.
|
1992
1984
|
Otherwise, it combines
|
@@ -2003,7 +1995,6 @@ public:
|
|
2003
1995
|
@param paint specifies the SkShader, used as SkVertices texture, may be nullptr
|
2004
1996
|
*/
|
2005
1997
|
void drawMesh(const SkMesh& mesh, sk_sp<SkBlender> blender, const SkPaint& paint);
|
2006
|
-
#endif
|
2007
1998
|
|
2008
1999
|
/** Draws a Coons patch: the interpolation of four cubics with shared corners,
|
2009
2000
|
associating a color, and optionally a texture SkPoint, with each corner.
|
@@ -2192,7 +2183,6 @@ protected:
|
|
2192
2183
|
virtual bool onAccessTopLayerPixels(SkPixmap* pixmap);
|
2193
2184
|
virtual SkImageInfo onImageInfo() const;
|
2194
2185
|
virtual bool onGetProps(SkSurfaceProps* props, bool top) const;
|
2195
|
-
virtual void onFlush();
|
2196
2186
|
|
2197
2187
|
// Subclass save/restore notifiers.
|
2198
2188
|
// Overriders should call the corresponding INHERITED method up the inheritance chain.
|
@@ -2258,9 +2248,7 @@ protected:
|
|
2258
2248
|
|
2259
2249
|
virtual void onDrawVerticesObject(const SkVertices* vertices, SkBlendMode mode,
|
2260
2250
|
const SkPaint& paint);
|
2261
|
-
#ifdef SK_ENABLE_SKSL
|
2262
2251
|
virtual void onDrawMesh(const SkMesh&, sk_sp<SkBlender>, const SkPaint&);
|
2263
|
-
#endif
|
2264
2252
|
virtual void onDrawAnnotation(const SkRect& rect, const char key[], SkData* value);
|
2265
2253
|
virtual void onDrawShadowRec(const SkPath&, const SkDrawShadowRec&);
|
2266
2254
|
|
@@ -2305,8 +2293,8 @@ private:
|
|
2305
2293
|
// notify our surface (if we have one) that we are about to draw, so it
|
2306
2294
|
// can perform copy-on-write or invalidate any cached images
|
2307
2295
|
// returns false if the copy failed
|
2308
|
-
bool
|
2309
|
-
bool
|
2296
|
+
[[nodiscard]] bool predrawNotify(bool willOverwritesEntireSurface = false);
|
2297
|
+
[[nodiscard]] bool predrawNotify(const SkRect*, const SkPaint*, ShaderOverrideOpacity);
|
2310
2298
|
|
2311
2299
|
enum class CheckForOverwrite : bool {
|
2312
2300
|
kNo = false,
|
@@ -2322,25 +2310,25 @@ private:
|
|
2322
2310
|
|
2323
2311
|
// The bottom-most device in the stack, only changed by init(). Image properties and the final
|
2324
2312
|
// canvas pixels are determined by this device.
|
2325
|
-
|
2326
|
-
SkASSERT(
|
2327
|
-
return
|
2313
|
+
SkDevice* rootDevice() const {
|
2314
|
+
SkASSERT(fRootDevice);
|
2315
|
+
return fRootDevice.get();
|
2328
2316
|
}
|
2329
2317
|
|
2330
2318
|
// The top-most device in the stack, will change within saveLayer()'s. All drawing and clipping
|
2331
2319
|
// operations should route to this device.
|
2332
|
-
|
2320
|
+
SkDevice* topDevice() const;
|
2333
2321
|
|
2334
2322
|
// Canvases maintain a sparse stack of layers, where the top-most layer receives the drawing,
|
2335
2323
|
// clip, and matrix commands. There is a layer per call to saveLayer() using the
|
2336
2324
|
// kFullLayer_SaveLayerStrategy.
|
2337
2325
|
struct Layer {
|
2338
|
-
sk_sp<
|
2326
|
+
sk_sp<SkDevice> fDevice;
|
2339
2327
|
sk_sp<SkImageFilter> fImageFilter; // applied to layer *before* being drawn by paint
|
2340
2328
|
SkPaint fPaint;
|
2341
2329
|
bool fDiscard;
|
2342
2330
|
|
2343
|
-
Layer(sk_sp<
|
2331
|
+
Layer(sk_sp<SkDevice> device, sk_sp<SkImageFilter> imageFilter, const SkPaint& paint);
|
2344
2332
|
};
|
2345
2333
|
|
2346
2334
|
// Encapsulate state needed to restore from saveBehind()
|
@@ -2364,22 +2352,22 @@ private:
|
|
2364
2352
|
std::unique_ptr<Layer> fLayer;
|
2365
2353
|
|
2366
2354
|
// This points to the device of the top-most layer (which may be lower in the stack), or
|
2367
|
-
// to the canvas's
|
2368
|
-
|
2355
|
+
// to the canvas's fRootDevice. The MCRec does not own the device.
|
2356
|
+
SkDevice* fDevice;
|
2369
2357
|
|
2370
2358
|
std::unique_ptr<BackImage> fBackImage;
|
2371
2359
|
SkM44 fMatrix;
|
2372
2360
|
int fDeferredSaveCount = 0;
|
2373
2361
|
|
2374
|
-
MCRec(
|
2362
|
+
MCRec(SkDevice* device);
|
2375
2363
|
MCRec(const MCRec* prev);
|
2376
2364
|
~MCRec();
|
2377
2365
|
|
2378
|
-
void newLayer(sk_sp<
|
2366
|
+
void newLayer(sk_sp<SkDevice> layerDevice,
|
2379
2367
|
sk_sp<SkImageFilter> filter,
|
2380
2368
|
const SkPaint& restorePaint);
|
2381
2369
|
|
2382
|
-
void reset(
|
2370
|
+
void reset(SkDevice* device);
|
2383
2371
|
};
|
2384
2372
|
|
2385
2373
|
// the first N recs that can fit here mean we won't call malloc
|
@@ -2393,7 +2381,7 @@ private:
|
|
2393
2381
|
MCRec* fMCRec;
|
2394
2382
|
|
2395
2383
|
// Installed via init()
|
2396
|
-
sk_sp<
|
2384
|
+
sk_sp<SkDevice> fRootDevice;
|
2397
2385
|
const SkSurfaceProps fProps;
|
2398
2386
|
|
2399
2387
|
int fSaveCount; // value returned by getSaveCount()
|
@@ -2441,6 +2429,7 @@ private:
|
|
2441
2429
|
SkCanvas& operator=(const SkCanvas&) = delete;
|
2442
2430
|
|
2443
2431
|
friend class sktext::gpu::Slug;
|
2432
|
+
friend class SkPicturePlayback;
|
2444
2433
|
/**
|
2445
2434
|
* Convert a SkTextBlob to a sktext::gpu::Slug using the current canvas state.
|
2446
2435
|
*/
|
@@ -2473,7 +2462,7 @@ private:
|
|
2473
2462
|
// needs gettotalclip()
|
2474
2463
|
friend class SkCanvasStateUtils;
|
2475
2464
|
|
2476
|
-
void init(sk_sp<
|
2465
|
+
void init(sk_sp<SkDevice>);
|
2477
2466
|
|
2478
2467
|
// All base onDrawX() functions should call this and skip drawing if it returns true.
|
2479
2468
|
// If 'matrix' is non-null, it maps the paint's fast bounds before checking for quick rejection
|
@@ -2509,7 +2498,7 @@ private:
|
|
2509
2498
|
* Must be 1.0 if 'compat' is kYes (i.e. any scale factor has already been baked into the
|
2510
2499
|
* relative transforms between the devices).
|
2511
2500
|
*/
|
2512
|
-
void internalDrawDeviceWithFilter(
|
2501
|
+
void internalDrawDeviceWithFilter(SkDevice* src, SkDevice* dst,
|
2513
2502
|
const SkImageFilter* filter, const SkPaint& paint,
|
2514
2503
|
DeviceCompatibleWithFilter compat,
|
2515
2504
|
SkScalar scaleFactor = 1.f);
|
@@ -2554,8 +2543,6 @@ private:
|
|
2554
2543
|
void validateClip() const;
|
2555
2544
|
|
2556
2545
|
std::unique_ptr<sktext::GlyphRunBuilder> fScratchGlyphRunBuilder;
|
2557
|
-
|
2558
|
-
using INHERITED = SkRefCnt;
|
2559
2546
|
};
|
2560
2547
|
|
2561
2548
|
/** \class SkAutoCanvasRestore
|
@@ -9,11 +9,10 @@
|
|
9
9
|
#define SkCapabilities_DEFINED
|
10
10
|
|
11
11
|
#include "include/core/SkRefCnt.h"
|
12
|
-
|
13
|
-
#ifdef SK_ENABLE_SKSL
|
12
|
+
#include "include/core/SkTypes.h"
|
14
13
|
#include "include/sksl/SkSLVersion.h"
|
14
|
+
|
15
15
|
namespace SkSL { struct ShaderCaps; }
|
16
|
-
#endif
|
17
16
|
|
18
17
|
#if defined(SK_GRAPHITE)
|
19
18
|
namespace skgpu::graphite { class Caps; }
|
@@ -23,9 +22,7 @@ class SK_API SkCapabilities : public SkRefCnt {
|
|
23
22
|
public:
|
24
23
|
static sk_sp<const SkCapabilities> RasterBackend();
|
25
24
|
|
26
|
-
#ifdef SK_ENABLE_SKSL
|
27
25
|
SkSL::Version skslVersion() const { return fSkSLVersion; }
|
28
|
-
#endif
|
29
26
|
|
30
27
|
protected:
|
31
28
|
#if defined(SK_GRAPHITE)
|
@@ -34,11 +31,9 @@ protected:
|
|
34
31
|
|
35
32
|
SkCapabilities() = default;
|
36
33
|
|
37
|
-
#ifdef SK_ENABLE_SKSL
|
38
34
|
void initSkCaps(const SkSL::ShaderCaps*);
|
39
35
|
|
40
36
|
SkSL::Version fSkSLVersion = SkSL::Version::k100;
|
41
|
-
#endif
|
42
37
|
};
|
43
38
|
|
44
39
|
#endif
|
@@ -79,7 +79,7 @@ static constexpr inline SkColor SkColorSetARGB(U8CPU a, U8CPU r, U8CPU g, U8CPU
|
|
79
79
|
@param a alpha: transparent at zero, fully opaque at 255
|
80
80
|
@return color with transparency
|
81
81
|
*/
|
82
|
-
static constexpr inline SkColor
|
82
|
+
[[nodiscard]] static constexpr inline SkColor SkColorSetA(SkColor c, U8CPU a) {
|
83
83
|
return (c & 0x00FFFFFF) | (a << 24);
|
84
84
|
}
|
85
85
|
|
@@ -64,6 +64,12 @@ public:
|
|
64
64
|
*/
|
65
65
|
sk_sp<SkColorFilter> makeComposed(sk_sp<SkColorFilter> inner) const;
|
66
66
|
|
67
|
+
/** Return a colorfilter that will compute this filter in a specific color space. By default all
|
68
|
+
* filters operate in the destination (surface) color space. This allows filters like Blend and
|
69
|
+
* Matrix, or runtime color filters to perform their math in a known space.
|
70
|
+
*/
|
71
|
+
sk_sp<SkColorFilter> makeWithWorkingColorSpace(sk_sp<SkColorSpace>) const;
|
72
|
+
|
67
73
|
static sk_sp<SkColorFilter> Deserialize(const void* data, size_t size,
|
68
74
|
const SkDeserialProcs* procs = nullptr);
|
69
75
|
|
@@ -29,6 +29,8 @@ enum SkColorType : int {
|
|
29
29
|
kRGB_101010x_SkColorType, //!< pixel with 10 bits each for red, green, blue; in 32-bit word
|
30
30
|
kBGR_101010x_SkColorType, //!< pixel with 10 bits each for blue, green, red; in 32-bit word
|
31
31
|
kBGR_101010x_XR_SkColorType, //!< pixel with 10 bits each for blue, green, red; in 32-bit word, extended range
|
32
|
+
kRGBA_10x6_SkColorType, //!< pixel with 10 used bits (most significant) followed by 6 unused
|
33
|
+
// bits for red, green, blue, alpha; in 64-bit word
|
32
34
|
kGray_8_SkColorType, //!< pixel with grayscale level in 8-bit byte
|
33
35
|
kRGBA_F16Norm_SkColorType, //!< pixel with half floats in [0,1] for red, green, blue, alpha;
|
34
36
|
// in 64-bit word
|
@@ -8,11 +8,16 @@
|
|
8
8
|
#ifndef SkContourMeasure_DEFINED
|
9
9
|
#define SkContourMeasure_DEFINED
|
10
10
|
|
11
|
-
#include "include/core/
|
11
|
+
#include "include/core/SkPoint.h"
|
12
12
|
#include "include/core/SkRefCnt.h"
|
13
|
+
#include "include/core/SkScalar.h"
|
14
|
+
#include "include/private/base/SkAPI.h"
|
13
15
|
#include "include/private/base/SkTDArray.h"
|
14
16
|
|
15
|
-
|
17
|
+
#include <memory>
|
18
|
+
|
19
|
+
class SkMatrix;
|
20
|
+
class SkPath;
|
16
21
|
|
17
22
|
class SK_API SkContourMeasure : public SkRefCnt {
|
18
23
|
public:
|
@@ -23,8 +28,7 @@ public:
|
|
23
28
|
/** Pins distance to 0 <= distance <= length(), and then computes the corresponding
|
24
29
|
* position and tangent.
|
25
30
|
*/
|
26
|
-
bool
|
27
|
-
SkVector* tangent) const;
|
31
|
+
[[nodiscard]] bool getPosTan(SkScalar distance, SkPoint* position, SkVector* tangent) const;
|
28
32
|
|
29
33
|
enum MatrixFlags {
|
30
34
|
kGetPosition_MatrixFlag = 0x01,
|
@@ -37,8 +41,8 @@ public:
|
|
37
41
|
Returns false if there is no path, or a zero-length path was specified, in which case
|
38
42
|
matrix is unchanged.
|
39
43
|
*/
|
40
|
-
bool
|
41
|
-
|
44
|
+
[[nodiscard]] bool getMatrix(SkScalar distance, SkMatrix* matrix,
|
45
|
+
MatrixFlags flags = kGetPosAndTan_MatrixFlag) const;
|
42
46
|
|
43
47
|
/** Given a start and stop distance, return in dst the intervening segment(s).
|
44
48
|
If the segment is zero-length, return false, else return true.
|
@@ -46,8 +50,8 @@ public:
|
|
46
50
|
then return false (and leave dst untouched).
|
47
51
|
Begin the segment with a moveTo if startWithMoveTo is true
|
48
52
|
*/
|
49
|
-
bool
|
50
|
-
|
53
|
+
[[nodiscard]] bool getSegment(SkScalar startD, SkScalar stopD, SkPath* dst,
|
54
|
+
bool startWithMoveTo) const;
|
51
55
|
|
52
56
|
/** Return true if the contour is closed()
|
53
57
|
*/
|
@@ -8,17 +8,26 @@
|
|
8
8
|
#ifndef SkFont_DEFINED
|
9
9
|
#define SkFont_DEFINED
|
10
10
|
|
11
|
-
#include "include/core/
|
11
|
+
#include "include/core/SkRect.h"
|
12
|
+
#include "include/core/SkRefCnt.h"
|
12
13
|
#include "include/core/SkScalar.h"
|
13
14
|
#include "include/core/SkTypeface.h"
|
14
|
-
#include "include/
|
15
|
+
#include "include/core/SkTypes.h"
|
16
|
+
#include "include/private/base/SkTo.h"
|
17
|
+
#include "include/private/base/SkTypeTraits.h"
|
15
18
|
|
19
|
+
#include <cstddef>
|
20
|
+
#include <cstdint>
|
21
|
+
#include <type_traits>
|
16
22
|
#include <vector>
|
17
23
|
|
18
24
|
class SkMatrix;
|
19
25
|
class SkPaint;
|
20
26
|
class SkPath;
|
27
|
+
enum class SkFontHinting;
|
28
|
+
enum class SkTextEncoding;
|
21
29
|
struct SkFontMetrics;
|
30
|
+
struct SkPoint;
|
22
31
|
|
23
32
|
/** \class SkFont
|
24
33
|
SkFont controls options applied when drawing and measuring text.
|
@@ -8,18 +8,17 @@
|
|
8
8
|
#ifndef SkFontMgr_DEFINED
|
9
9
|
#define SkFontMgr_DEFINED
|
10
10
|
|
11
|
-
#include "include/core/SkFontArguments.h"
|
12
|
-
#include "include/core/SkFontStyle.h"
|
13
11
|
#include "include/core/SkRefCnt.h"
|
14
12
|
#include "include/core/SkTypes.h"
|
15
13
|
|
16
14
|
#include <memory>
|
17
15
|
|
18
16
|
class SkData;
|
19
|
-
class
|
17
|
+
class SkFontStyle;
|
20
18
|
class SkStreamAsset;
|
21
19
|
class SkString;
|
22
20
|
class SkTypeface;
|
21
|
+
struct SkFontArguments;
|
23
22
|
|
24
23
|
class SK_API SkFontStyleSet : public SkRefCnt {
|
25
24
|
public:
|
@@ -9,13 +9,15 @@
|
|
9
9
|
#define SkGraphics_DEFINED
|
10
10
|
|
11
11
|
#include "include/core/SkRefCnt.h"
|
12
|
+
#include "include/private/base/SkAPI.h"
|
12
13
|
|
14
|
+
#include <cstddef>
|
15
|
+
#include <cstdint>
|
13
16
|
#include <memory>
|
14
17
|
|
15
18
|
class SkData;
|
16
19
|
class SkImageGenerator;
|
17
20
|
class SkOpenTypeSVGDecoder;
|
18
|
-
class SkPath;
|
19
21
|
class SkTraceMemoryDump;
|
20
22
|
|
21
23
|
class SK_API SkGraphics {
|
@@ -149,18 +151,6 @@ public:
|
|
149
151
|
std::unique_ptr<SkOpenTypeSVGDecoder> (*)(const uint8_t* svg, size_t length);
|
150
152
|
static OpenTypeSVGDecoderFactory SetOpenTypeSVGDecoderFactory(OpenTypeSVGDecoderFactory);
|
151
153
|
static OpenTypeSVGDecoderFactory GetOpenTypeSVGDecoderFactory();
|
152
|
-
|
153
|
-
/**
|
154
|
-
* Call early in main() to allow Skia to use a JIT to accelerate CPU-bound operations.
|
155
|
-
*/
|
156
|
-
static void AllowJIT();
|
157
|
-
};
|
158
|
-
|
159
|
-
class SkAutoGraphics {
|
160
|
-
public:
|
161
|
-
SkAutoGraphics() {
|
162
|
-
SkGraphics::Init();
|
163
|
-
}
|
164
154
|
};
|
165
155
|
|
166
156
|
#endif
|