@shopify/react-native-skia 0.1.197 → 0.1.200
Sign up to get free protection for your applications and to get access to all the features.
- package/android/CMakeLists.txt +32 -31
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +4 -2
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +3 -0
- package/cpp/api/JsiSkShaderFactory.h +4 -4
- package/cpp/api/JsiSkSurfaceFactory.h +2 -1
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +2 -2
- package/cpp/skia/include/android/SkCanvasAndroid.h +20 -0
- package/cpp/skia/include/android/SkHeifDecoder.h +43 -0
- package/cpp/skia/include/android/SkSurfaceAndroid.h +50 -0
- package/cpp/skia/include/codec/SkAvifDecoder.h +43 -0
- package/cpp/skia/include/codec/SkBmpDecoder.h +43 -0
- package/cpp/skia/include/codec/SkCodec.h +25 -1
- package/cpp/skia/include/codec/SkGifDecoder.h +43 -0
- package/cpp/skia/include/codec/SkIcoDecoder.h +43 -0
- package/cpp/skia/include/codec/SkJpegDecoder.h +43 -0
- package/cpp/skia/include/codec/SkJpegxlDecoder.h +43 -0
- package/cpp/skia/include/codec/SkPngDecoder.h +43 -0
- package/cpp/skia/include/codec/SkRawDecoder.h +49 -0
- package/cpp/skia/include/codec/SkWbmpDecoder.h +43 -0
- package/cpp/skia/include/codec/SkWebpDecoder.h +43 -0
- package/cpp/skia/include/core/SkBBHFactory.h +5 -1
- package/cpp/skia/include/core/SkBlender.h +0 -2
- package/cpp/skia/include/core/SkCanvas.h +4 -23
- package/cpp/skia/include/core/SkColorFilter.h +14 -1
- package/cpp/skia/include/core/SkColorTable.h +59 -0
- package/cpp/skia/include/core/SkContourMeasure.h +3 -0
- package/cpp/skia/include/core/SkDeferredDisplayList.h +8 -104
- package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +8 -91
- package/cpp/skia/include/core/SkDrawable.h +5 -2
- package/cpp/skia/include/core/SkGraphics.h +7 -19
- package/cpp/skia/include/core/SkImage.h +157 -249
- package/cpp/skia/include/core/SkImageGenerator.h +0 -31
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPathMeasure.h +3 -3
- package/cpp/skia/include/core/SkPictureRecorder.h +1 -1
- package/cpp/skia/include/core/SkPoint.h +5 -563
- package/cpp/skia/include/core/SkPoint3.h +1 -0
- package/cpp/skia/include/core/SkPromiseImageTexture.h +4 -30
- package/cpp/skia/include/core/SkRect.h +8 -8
- package/cpp/skia/include/core/SkSamplingOptions.h +4 -2
- package/cpp/skia/include/core/SkScalar.h +1 -1
- package/cpp/skia/include/core/SkSerialProcs.h +5 -1
- package/cpp/skia/include/core/SkShader.h +14 -21
- package/cpp/skia/include/core/SkString.h +2 -0
- package/cpp/skia/include/core/SkSurface.h +169 -701
- package/cpp/skia/include/core/SkSurfaceCharacterization.h +8 -256
- package/cpp/skia/include/core/SkTiledImageUtils.h +97 -0
- package/cpp/skia/include/core/SkTypes.h +4 -2
- package/cpp/skia/include/core/SkYUVAPixmaps.h +0 -5
- package/cpp/skia/include/effects/SkGradientShader.h +10 -1
- package/cpp/skia/include/effects/SkImageFilters.h +62 -37
- package/cpp/skia/include/effects/SkPerlinNoiseShader.h +28 -29
- package/cpp/skia/include/effects/SkRuntimeEffect.h +17 -12
- package/cpp/skia/include/gpu/GrBackendSurface.h +12 -39
- package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +6 -0
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +3 -3
- package/cpp/skia/include/gpu/GrDirectContext.h +103 -3
- package/cpp/skia/include/gpu/GrRecordingContext.h +10 -19
- package/cpp/skia/include/gpu/MutableTextureState.h +4 -0
- package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +54 -0
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +20 -76
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +217 -0
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +73 -0
- package/cpp/skia/include/gpu/gl/GrGLTypes.h +13 -2
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +78 -0
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +1 -0
- package/cpp/skia/include/gpu/graphite/Image.h +277 -0
- package/cpp/skia/include/gpu/graphite/ImageProvider.h +1 -1
- package/cpp/skia/include/gpu/graphite/Recording.h +1 -4
- package/cpp/skia/include/gpu/graphite/Surface.h +81 -0
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +5 -7
- package/cpp/skia/include/gpu/graphite/YUVABackendTextures.h +2 -2
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +23 -8
- package/cpp/skia/include/ports/SkTypeface_fontations.h +21 -0
- package/cpp/skia/include/private/SkGainmapInfo.h +2 -0
- package/cpp/skia/include/private/SkGainmapShader.h +1 -0
- package/cpp/skia/include/private/SkJpegMetadataDecoder.h +19 -1
- package/cpp/skia/include/private/SkPathRef.h +13 -15
- package/cpp/skia/include/private/SkXmp.h +53 -0
- package/cpp/skia/include/private/base/SkFeatures.h +0 -4
- package/cpp/skia/include/private/base/SkFloatingPoint.h +11 -5
- package/cpp/skia/include/private/base/SkPoint_impl.h +569 -0
- package/cpp/skia/include/private/base/SkSpan_impl.h +3 -7
- package/cpp/skia/include/private/base/SkTArray.h +11 -11
- package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +120 -0
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +98 -0
- package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +43 -0
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +215 -0
- package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +6 -6
- package/cpp/skia/include/private/chromium/SkImageChromium.h +104 -0
- package/cpp/skia/include/private/chromium/Slug.h +7 -3
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +7 -3
- package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +2 -0
- package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +3 -2
- package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +10 -2
- package/cpp/skia/include/{gpu → private/gpu}/ganesh/GrTextureGenerator.h +2 -13
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +1 -1
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +7 -0
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +19 -6
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +13 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +0 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +14 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +999 -79
- package/cpp/skia/modules/skcms/src/Transform_inl.h +36 -236
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +2 -0
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +16 -0
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +6 -2
- package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGCircle.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGClipPath.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGContainer.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGDefs.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGEllipse.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFe.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeImage.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFilter.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGG.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGHiddenContainer.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGImage.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGLine.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGMask.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGNode.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPath.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPoly.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRect.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +3 -3
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGShape.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGStop.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGText.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +21 -21
- package/cpp/skia/modules/svg/include/SkSVGUse.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGValue.h +2 -2
- package/cpp/skia/{include/private → src/core}/SkChecksum.h +32 -17
- package/cpp/skia/src/core/SkTHash.h +1 -1
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +3 -1
- package/ios/RNSkia-iOS/SkiaMetalRenderer.mm +3 -1
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libsksg.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/libsksg.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/libsksg.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/libsksg.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/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/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 -3
- package/cpp/skia/include/effects/SkTableColorFilter.h +0 -29
- package/cpp/skia/include/private/SkOpts_spi.h +0 -23
- package/cpp/skia/include/private/SkSpinlock.h +0 -57
- package/cpp/skia/include/private/chromium/GrSlug.h +0 -16
- package/scripts/install-npm.js +0 -33
@@ -15,11 +15,6 @@
|
|
15
15
|
#include "include/core/SkSize.h"
|
16
16
|
#include "include/private/base/SkAPI.h"
|
17
17
|
|
18
|
-
#if defined(SK_GRAPHITE)
|
19
|
-
#include "include/gpu/graphite/GraphiteTypes.h"
|
20
|
-
class SkYUVAPixmaps;
|
21
|
-
#endif
|
22
|
-
|
23
18
|
#include <cstddef>
|
24
19
|
#include <cstdint>
|
25
20
|
#include <memory>
|
@@ -47,7 +42,12 @@ enum class SkTileMode;
|
|
47
42
|
struct SkIPoint;
|
48
43
|
struct SkSamplingOptions;
|
49
44
|
|
50
|
-
|
45
|
+
namespace skgpu::graphite { class Recorder; }
|
46
|
+
|
47
|
+
#if !defined(SK_DISABLE_LEGACY_GRAPHITE_IMAGE_FACTORIES) && defined(SK_GRAPHITE)
|
48
|
+
#include "include/gpu/graphite/GraphiteTypes.h"
|
49
|
+
|
50
|
+
namespace skgpu { enum class Mipmapped : bool; }
|
51
51
|
namespace skgpu::graphite {
|
52
52
|
class BackendTexture;
|
53
53
|
class Recorder;
|
@@ -680,263 +680,64 @@ public:
|
|
680
680
|
Returns nullptr if any of the following are true:
|
681
681
|
- Subset is empty
|
682
682
|
- Subset is not contained inside the image's bounds
|
683
|
-
- Pixels in the image could not be read or copied
|
683
|
+
- Pixels in the source image could not be read or copied
|
684
|
+
- This image is texture-backed and the provided context is null or does not match
|
685
|
+
the source image's context.
|
684
686
|
|
685
|
-
If
|
686
|
-
|
687
|
-
raster-backed, the subset will be converted to texture-backed.
|
687
|
+
If the source image was texture-backed, the resulting image will be texture-backed also.
|
688
|
+
Otherwise, the returned image will be raster-backed.
|
688
689
|
|
690
|
+
@param direct the GrDirectContext of the source image (nullptr is ok if the source image
|
691
|
+
is not texture-backed).
|
689
692
|
@param subset bounds of returned SkImage
|
690
|
-
@param context the GrDirectContext in play, if it exists
|
691
693
|
@return the subsetted image, or nullptr
|
692
694
|
|
693
695
|
example: https://fiddle.skia.org/c/@Image_makeSubset
|
694
696
|
*/
|
695
|
-
sk_sp<SkImage> makeSubset(const SkIRect& subset
|
696
|
-
|
697
|
-
/**
|
698
|
-
* Returns true if the image has mipmap levels.
|
699
|
-
*/
|
700
|
-
bool hasMipmaps() const;
|
697
|
+
virtual sk_sp<SkImage> makeSubset(GrDirectContext* direct, const SkIRect& subset) const = 0;
|
701
698
|
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
sk_sp<SkImage> withDefaultMipmaps() const;
|
707
|
-
|
708
|
-
#if defined(SK_GANESH) || defined(SK_GRAPHITE)
|
709
|
-
using ReleaseContext = SkImages::ReleaseContext;
|
710
|
-
using TextureReleaseProc = void (*)(ReleaseContext);
|
699
|
+
#if !defined(SK_DISABLE_LEGACY_IMAGE_SUBSET_METHODS)
|
700
|
+
sk_sp<SkImage> makeSubset(const SkIRect& subset, GrDirectContext* direct = nullptr) const {
|
701
|
+
return this->makeSubset(direct, subset);
|
702
|
+
}
|
711
703
|
#endif
|
712
704
|
|
713
|
-
|
714
|
-
|
715
|
-
using GraphitePromiseImageContext = void*;
|
716
|
-
// Returned from fulfill and passed into textureRelease
|
717
|
-
using GraphitePromiseTextureReleaseContext = void*;
|
718
|
-
|
719
|
-
using GraphitePromiseImageFulfillProc =
|
720
|
-
std::tuple<skgpu::graphite::BackendTexture, GraphitePromiseTextureReleaseContext>
|
721
|
-
(*)(GraphitePromiseImageContext);
|
722
|
-
using GraphitePromiseImageReleaseProc = void (*)(GraphitePromiseImageContext);
|
723
|
-
using GraphitePromiseTextureReleaseProc = void (*)(GraphitePromiseTextureReleaseContext);
|
724
|
-
|
725
|
-
/** Create a new SkImage that is very similar to an SkImage created by
|
726
|
-
MakeGraphiteFromBackendTexture. The difference is that the caller need not have created the
|
727
|
-
backend texture nor populated it with data when creating the image. Instead of passing a
|
728
|
-
BackendTexture to the factory the client supplies a description of the texture consisting
|
729
|
-
of dimensions, TextureInfo, SkColorInfo and Volatility.
|
730
|
-
|
731
|
-
In general, 'fulfill' must return a BackendTexture that matches the properties
|
732
|
-
provided at SkImage creation time. The BackendTexture must refer to a valid existing
|
733
|
-
texture in the backend API context/device, and already be populated with data.
|
734
|
-
The texture cannot be deleted until 'textureRelease' is called. 'textureRelease' will
|
735
|
-
be called with the textureReleaseContext returned by 'fulfill'.
|
736
|
-
|
737
|
-
Wrt when and how often the fulfill, imageRelease, and textureRelease callbacks will
|
738
|
-
be called:
|
739
|
-
|
740
|
-
For non-volatile promise images, 'fulfill' will be called at Context::insertRecording
|
741
|
-
time. Regardless of whether 'fulfill' succeeded or failed, 'imageRelease' will always be
|
742
|
-
called only once - when Skia will no longer try calling 'fulfill' to get a backend
|
743
|
-
texture. If 'fulfill' failed (i.e., it didn't return a valid backend texture) then
|
744
|
-
'textureRelease' will never be called. If 'fulfill' was successful then
|
745
|
-
'textureRelease' will be called only once when the GPU is done with the contents of the
|
746
|
-
promise image. This will usually occur during a Context::submit call but it could occur
|
747
|
-
earlier due to error conditions. 'fulfill' can be called multiple times if the promise
|
748
|
-
image is used in multiple recordings. If 'fulfill' fails, the insertRecording itself will
|
749
|
-
fail. Subsequent insertRecording calls (with Recordings that use the promise image) will
|
750
|
-
keep calling 'fulfill' until it succeeds.
|
751
|
-
|
752
|
-
For volatile promise images, 'fulfill' will be called each time the Recording is inserted
|
753
|
-
into a Context. Regardless of whether 'fulfill' succeeded or failed, 'imageRelease'
|
754
|
-
will always be called only once just like the non-volatile case. If 'fulfill' fails at
|
755
|
-
insertRecording-time, 'textureRelease' will never be called. If 'fulfill' was successful
|
756
|
-
then a 'textureRelease' matching that 'fulfill' will be called when the GPU is done with
|
757
|
-
the contents of the promise image. This will usually occur during a Context::submit call
|
758
|
-
but it could occur earlier due to error conditions.
|
759
|
-
|
760
|
-
@param recorder the recorder that will capture the commands creating the image
|
761
|
-
@param dimensions width & height of promised gpu texture
|
762
|
-
@param textureInfo structural information for the promised gpu texture
|
763
|
-
@param colorInfo color type, alpha type and colorSpace information for the image
|
764
|
-
@param isVolatile volatility of the promise image
|
765
|
-
@param fulfill function called to get the actual backend texture
|
766
|
-
@param imageRelease function called when any image-centric data can be deleted
|
767
|
-
@param textureRelease function called when the backend texture can be deleted
|
768
|
-
@param imageContext state passed to fulfill and imageRelease
|
769
|
-
@return created SkImage, or nullptr
|
770
|
-
*/
|
771
|
-
static sk_sp<SkImage> MakeGraphitePromiseTexture(skgpu::graphite::Recorder*,
|
772
|
-
SkISize dimensions,
|
773
|
-
const skgpu::graphite::TextureInfo&,
|
774
|
-
const SkColorInfo&,
|
775
|
-
skgpu::graphite::Volatile,
|
776
|
-
GraphitePromiseImageFulfillProc,
|
777
|
-
GraphitePromiseImageReleaseProc,
|
778
|
-
GraphitePromiseTextureReleaseProc,
|
779
|
-
GraphitePromiseImageContext);
|
780
|
-
|
781
|
-
/** Creates an SkImage from a GPU texture associated with the recorder.
|
782
|
-
|
783
|
-
SkImage is returned if the format of backendTexture is recognized and supported.
|
784
|
-
Recognized formats vary by GPU back-end.
|
785
|
-
|
786
|
-
@param recorder The recorder
|
787
|
-
@param backendTexture texture residing on GPU
|
788
|
-
@param colorSpace This describes the color space of this image's contents, as
|
789
|
-
seen after sampling. In general, if the format of the backend
|
790
|
-
texture is SRGB, some linear colorSpace should be supplied
|
791
|
-
(e.g., SkColorSpace::MakeSRGBLinear()). If the format of the
|
792
|
-
backend texture is linear, then the colorSpace should include
|
793
|
-
a description of the transfer function as
|
794
|
-
well (e.g., SkColorSpace::MakeSRGB()).
|
795
|
-
@return created SkImage, or nullptr
|
796
|
-
*/
|
797
|
-
static sk_sp<SkImage> MakeGraphiteFromBackendTexture(skgpu::graphite::Recorder*,
|
798
|
-
const skgpu::graphite::BackendTexture&,
|
799
|
-
SkColorType colorType,
|
800
|
-
SkAlphaType alphaType,
|
801
|
-
sk_sp<SkColorSpace> colorSpace,
|
802
|
-
TextureReleaseProc = nullptr,
|
803
|
-
ReleaseContext = nullptr);
|
804
|
-
|
805
|
-
/** Creates an SkImage from YUV[A] planar textures associated with the recorder.
|
806
|
-
@param recorder The recorder.
|
807
|
-
@param yuvaBackendTextures A set of textures containing YUVA data and a description of the
|
808
|
-
data and transformation to RGBA.
|
809
|
-
@param imageColorSpace range of colors of the resulting image after conversion to RGB;
|
810
|
-
may be nullptr
|
811
|
-
@param TextureReleaseProc called when the backend textures can be released
|
812
|
-
@param ReleaseContext state passed to TextureReleaseProc
|
813
|
-
@return created SkImage, or nullptr
|
814
|
-
*/
|
815
|
-
static sk_sp<SkImage> MakeGraphiteFromYUVABackendTextures(
|
816
|
-
skgpu::graphite::Recorder* recorder,
|
817
|
-
const skgpu::graphite::YUVABackendTextures& yuvaBackendTextures,
|
818
|
-
sk_sp<SkColorSpace> imageColorSpace,
|
819
|
-
TextureReleaseProc = nullptr,
|
820
|
-
ReleaseContext = nullptr);
|
821
|
-
|
822
|
-
struct RequiredImageProperties {
|
823
|
-
skgpu::Mipmapped fMipmapped;
|
705
|
+
struct RequiredProperties {
|
706
|
+
bool fMipmapped;
|
824
707
|
};
|
825
708
|
|
826
|
-
/** Creates SkImage from SkYUVAPixmaps.
|
827
|
-
|
828
|
-
The image will remain planar with each plane converted to a texture using the passed
|
829
|
-
Recorder.
|
830
|
-
|
831
|
-
SkYUVAPixmaps has a SkYUVAInfo which specifies the transformation from YUV to RGB.
|
832
|
-
The SkColorSpace of the resulting RGB values is specified by imgColorSpace. This will
|
833
|
-
be the SkColorSpace reported by the image and when drawn the RGB values will be converted
|
834
|
-
from this space into the destination space (if the destination is tagged).
|
835
|
-
|
836
|
-
This is only supported using the GPU backend and will fail if recorder is nullptr.
|
837
|
-
|
838
|
-
SkYUVAPixmaps does not need to remain valid after this returns.
|
839
|
-
|
840
|
-
@param Recorder The Recorder to use for storing commands
|
841
|
-
@param pixmaps The planes as pixmaps with supported SkYUVAInfo that
|
842
|
-
specifies conversion to RGB.
|
843
|
-
@param RequiredImageProperties Properties the returned SkImage must possess (e.g.,
|
844
|
-
mipmaps)
|
845
|
-
@param limitToMaxTextureSize Downscale image to GPU maximum texture size, if necessary
|
846
|
-
@param imgColorSpace Range of colors of the resulting image; may be nullptr
|
847
|
-
@return Created SkImage, or nullptr
|
848
|
-
*/
|
849
|
-
static sk_sp<SkImage> MakeGraphiteFromYUVAPixmaps(skgpu::graphite::Recorder*,
|
850
|
-
const SkYUVAPixmaps& pixmaps,
|
851
|
-
RequiredImageProperties = {},
|
852
|
-
bool limitToMaxTextureSize = false,
|
853
|
-
sk_sp<SkColorSpace> imgColorSpace = nullptr);
|
854
|
-
|
855
|
-
/** Graphite version of makeTextureImage.
|
856
|
-
|
857
|
-
Returns an SkImage backed by a Graphite texture, using the provided Recorder for creation
|
858
|
-
and uploads if necessary. The returned SkImage respects the required image properties'
|
859
|
-
mipmap setting for non-Graphite SkImages; i.e., if mipmapping is required, the backing
|
860
|
-
Graphite texture will have allocated mip map levels.
|
861
|
-
|
862
|
-
It is assumed that MIP maps are always supported by the GPU.
|
863
|
-
|
864
|
-
Returns original SkImage if the image is already Graphite-backed and the required mipmapping
|
865
|
-
is compatible with the backing Graphite texture. If the required mipmapping is not
|
866
|
-
compatible, nullptr will be returned.
|
867
|
-
|
868
|
-
Returns nullptr if no Recorder is provided, or if SkImage was created with another
|
869
|
-
Recorder and work on that Recorder has not been submitted.
|
870
|
-
|
871
|
-
@param Recorder the Recorder to use for storing commands
|
872
|
-
@param RequiredImageProperties properties the returned SkImage must possess (e.g.,
|
873
|
-
mipmaps)
|
874
|
-
@return created SkImage, or nullptr
|
875
|
-
*/
|
876
|
-
virtual sk_sp<SkImage> makeTextureImage(skgpu::graphite::Recorder*,
|
877
|
-
RequiredImageProperties = {}) const = 0;
|
878
|
-
|
879
709
|
/** Returns subset of this image.
|
880
710
|
|
881
711
|
Returns nullptr if any of the following are true:
|
882
712
|
- Subset is empty
|
883
713
|
- Subset is not contained inside the image's bounds
|
884
714
|
- Pixels in the image could not be read or copied
|
715
|
+
- This image is texture-backed and the provided context is null or does not match
|
716
|
+
the source image's context.
|
885
717
|
|
886
|
-
If
|
887
|
-
|
888
|
-
be converted to texture-backed.
|
718
|
+
If the source image was texture-backed, the resulting image will be texture-backed also.
|
719
|
+
Otherwise, the returned image will be raster-backed.
|
889
720
|
|
890
|
-
@param
|
891
|
-
|
892
|
-
@param
|
893
|
-
|
894
|
-
@return
|
721
|
+
@param recorder the recorder of the source image (nullptr is ok if the
|
722
|
+
source image was texture-backed).
|
723
|
+
@param subset bounds of returned SkImage
|
724
|
+
@param RequiredProperties properties the returned SkImage must possess (e.g. mipmaps)
|
725
|
+
@return the subsetted image, or nullptr
|
895
726
|
*/
|
896
|
-
sk_sp<SkImage> makeSubset(
|
897
|
-
|
898
|
-
|
899
|
-
|
900
|
-
/** Creates SkImage in target SkColorSpace.
|
901
|
-
Returns nullptr if SkImage could not be created.
|
902
|
-
|
903
|
-
Returns original SkImage if it is in target SkColorSpace.
|
904
|
-
Otherwise, converts pixels from SkImage SkColorSpace to target SkColorSpace.
|
905
|
-
If SkImage colorSpace() returns nullptr, SkImage SkColorSpace is assumed to be sRGB.
|
906
|
-
|
907
|
-
If this image is graphite-backed, the recorder parameter is required.
|
908
|
-
|
909
|
-
@param targetColorSpace SkColorSpace describing color range of returned SkImage
|
910
|
-
@param recorder The Recorder in which to create the new image
|
911
|
-
@param RequiredImageProperties properties the returned SkImage must possess (e.g.,
|
912
|
-
mipmaps)
|
913
|
-
@return created SkImage in target SkColorSpace
|
914
|
-
*/
|
915
|
-
sk_sp<SkImage> makeColorSpace(sk_sp<SkColorSpace> targetColorSpace,
|
916
|
-
skgpu::graphite::Recorder*,
|
917
|
-
RequiredImageProperties = {}) const;
|
918
|
-
|
919
|
-
/** Experimental.
|
920
|
-
Creates SkImage in target SkColorType and SkColorSpace.
|
921
|
-
Returns nullptr if SkImage could not be created.
|
922
|
-
|
923
|
-
Returns original SkImage if it is in target SkColorType and SkColorSpace.
|
924
|
-
|
925
|
-
If this image is graphite-backed, the recorder parameter is required.
|
727
|
+
virtual sk_sp<SkImage> makeSubset(skgpu::graphite::Recorder*,
|
728
|
+
const SkIRect& subset,
|
729
|
+
RequiredProperties) const = 0;
|
926
730
|
|
927
|
-
|
928
|
-
|
929
|
-
|
930
|
-
|
931
|
-
mipmaps)
|
932
|
-
@return created SkImage in target SkColorType and SkColorSpace
|
933
|
-
*/
|
934
|
-
sk_sp<SkImage> makeColorTypeAndColorSpace(SkColorType targetColorType,
|
935
|
-
sk_sp<SkColorSpace> targetColorSpace,
|
936
|
-
skgpu::graphite::Recorder*,
|
937
|
-
RequiredImageProperties = {}) const;
|
731
|
+
/**
|
732
|
+
* Returns true if the image has mipmap levels.
|
733
|
+
*/
|
734
|
+
bool hasMipmaps() const;
|
938
735
|
|
939
|
-
|
736
|
+
/**
|
737
|
+
* Returns an image with the same "base" pixels as the this image, but with mipmap levels
|
738
|
+
* automatically generated and attached.
|
739
|
+
*/
|
740
|
+
sk_sp<SkImage> withDefaultMipmaps() const;
|
940
741
|
|
941
742
|
/** Returns raster image or lazy image. Copies SkImage backed by GPU texture into
|
942
743
|
CPU memory if needed. Returns original SkImage if decoded in raster bitmap,
|
@@ -948,7 +749,7 @@ public:
|
|
948
749
|
|
949
750
|
example: https://fiddle.skia.org/c/@Image_makeNonTextureImage
|
950
751
|
*/
|
951
|
-
sk_sp<SkImage> makeNonTextureImage() const;
|
752
|
+
sk_sp<SkImage> makeNonTextureImage(GrDirectContext* = nullptr) const;
|
952
753
|
|
953
754
|
/** Returns raster image. Copies SkImage backed by GPU texture into CPU memory,
|
954
755
|
or decodes SkImage from lazy image. Returns original SkImage if decoded in
|
@@ -963,7 +764,14 @@ public:
|
|
963
764
|
|
964
765
|
example: https://fiddle.skia.org/c/@Image_makeRasterImage
|
965
766
|
*/
|
966
|
-
sk_sp<SkImage> makeRasterImage(
|
767
|
+
sk_sp<SkImage> makeRasterImage(GrDirectContext*,
|
768
|
+
CachingHint cachingHint = kDisallow_CachingHint) const;
|
769
|
+
|
770
|
+
#if !defined(SK_IMAGE_READ_PIXELS_DISABLE_LEGACY_API)
|
771
|
+
sk_sp<SkImage> makeRasterImage(CachingHint cachingHint = kDisallow_CachingHint) const {
|
772
|
+
return this->makeRasterImage(nullptr, cachingHint);
|
773
|
+
}
|
774
|
+
#endif
|
967
775
|
|
968
776
|
/** Creates filtered SkImage. filter processes original SkImage, potentially changing
|
969
777
|
color, position, and size. subset is the bounds of original SkImage processed
|
@@ -989,10 +797,12 @@ public:
|
|
989
797
|
@param offset storage for returned SkImage translation
|
990
798
|
@return filtered SkImage, or nullptr
|
991
799
|
*/
|
992
|
-
sk_sp<SkImage> makeWithFilter(GrRecordingContext* context,
|
993
|
-
|
994
|
-
|
995
|
-
|
800
|
+
virtual sk_sp<SkImage> makeWithFilter(GrRecordingContext* context,
|
801
|
+
const SkImageFilter* filter,
|
802
|
+
const SkIRect& subset,
|
803
|
+
const SkIRect& clipBounds,
|
804
|
+
SkIRect* outSubset,
|
805
|
+
SkIPoint* offset) const = 0;
|
996
806
|
|
997
807
|
/** Deprecated.
|
998
808
|
*/
|
@@ -1021,7 +831,7 @@ public:
|
|
1021
831
|
example: https://fiddle.skia.org/c/@Image_isLazyGenerated_a
|
1022
832
|
example: https://fiddle.skia.org/c/@Image_isLazyGenerated_b
|
1023
833
|
*/
|
1024
|
-
bool isLazyGenerated() const;
|
834
|
+
virtual bool isLazyGenerated() const = 0;
|
1025
835
|
|
1026
836
|
/** Creates SkImage in target SkColorSpace.
|
1027
837
|
Returns nullptr if SkImage could not be created.
|
@@ -1033,14 +843,37 @@ public:
|
|
1033
843
|
If this image is texture-backed, the context parameter is required and must match the
|
1034
844
|
context of the source image.
|
1035
845
|
|
1036
|
-
@param target SkColorSpace describing color range of returned SkImage
|
1037
846
|
@param direct The GrDirectContext in play, if it exists
|
847
|
+
@param target SkColorSpace describing color range of returned SkImage
|
1038
848
|
@return created SkImage in target SkColorSpace
|
1039
849
|
|
1040
850
|
example: https://fiddle.skia.org/c/@Image_makeColorSpace
|
1041
851
|
*/
|
852
|
+
virtual sk_sp<SkImage> makeColorSpace(GrDirectContext* direct,
|
853
|
+
sk_sp<SkColorSpace> target) const = 0;
|
854
|
+
|
855
|
+
#if !defined(SK_DISABLE_LEGACY_IMAGE_COLORSPACE_METHODS)
|
1042
856
|
sk_sp<SkImage> makeColorSpace(sk_sp<SkColorSpace> target,
|
1043
857
|
GrDirectContext* direct = nullptr) const;
|
858
|
+
#endif
|
859
|
+
|
860
|
+
/** Creates SkImage in target SkColorSpace.
|
861
|
+
Returns nullptr if SkImage could not be created.
|
862
|
+
|
863
|
+
Returns original SkImage if it is in target SkColorSpace.
|
864
|
+
Otherwise, converts pixels from SkImage SkColorSpace to target SkColorSpace.
|
865
|
+
If SkImage colorSpace() returns nullptr, SkImage SkColorSpace is assumed to be sRGB.
|
866
|
+
|
867
|
+
If this image is graphite-backed, the recorder parameter is required.
|
868
|
+
|
869
|
+
@param targetColorSpace SkColorSpace describing color range of returned SkImage
|
870
|
+
@param recorder The Recorder in which to create the new image
|
871
|
+
@param RequiredProperties properties the returned SkImage must possess (e.g. mipmaps)
|
872
|
+
@return created SkImage in target SkColorSpace
|
873
|
+
*/
|
874
|
+
virtual sk_sp<SkImage> makeColorSpace(skgpu::graphite::Recorder*,
|
875
|
+
sk_sp<SkColorSpace> targetColorSpace,
|
876
|
+
RequiredProperties) const = 0;
|
1044
877
|
|
1045
878
|
/** Experimental.
|
1046
879
|
Creates SkImage in target SkColorType and SkColorSpace.
|
@@ -1051,14 +884,39 @@ public:
|
|
1051
884
|
If this image is texture-backed, the context parameter is required and must match the
|
1052
885
|
context of the source image.
|
1053
886
|
|
887
|
+
@param direct The GrDirectContext in play, if it exists
|
1054
888
|
@param targetColorType SkColorType of returned SkImage
|
1055
889
|
@param targetColorSpace SkColorSpace of returned SkImage
|
1056
|
-
@param direct The GrDirectContext in play, if it exists
|
1057
890
|
@return created SkImage in target SkColorType and SkColorSpace
|
1058
891
|
*/
|
892
|
+
virtual sk_sp<SkImage> makeColorTypeAndColorSpace(GrDirectContext* direct,
|
893
|
+
SkColorType targetColorType,
|
894
|
+
sk_sp<SkColorSpace> targetCS) const = 0;
|
895
|
+
|
896
|
+
#if !defined(SK_DISABLE_LEGACY_IMAGE_COLORSPACE_METHODS)
|
1059
897
|
sk_sp<SkImage> makeColorTypeAndColorSpace(SkColorType targetColorType,
|
1060
898
|
sk_sp<SkColorSpace> targetColorSpace,
|
1061
899
|
GrDirectContext* direct = nullptr) const;
|
900
|
+
#endif
|
901
|
+
|
902
|
+
/** Experimental.
|
903
|
+
Creates SkImage in target SkColorType and SkColorSpace.
|
904
|
+
Returns nullptr if SkImage could not be created.
|
905
|
+
|
906
|
+
Returns original SkImage if it is in target SkColorType and SkColorSpace.
|
907
|
+
|
908
|
+
If this image is graphite-backed, the recorder parameter is required.
|
909
|
+
|
910
|
+
@param targetColorType SkColorType of returned SkImage
|
911
|
+
@param targetColorSpace SkColorSpace of returned SkImage
|
912
|
+
@param recorder The Recorder in which to create the new image
|
913
|
+
@param RequiredProperties properties the returned SkImage must possess (e.g. mipmaps)
|
914
|
+
@return created SkImage in target SkColorType and SkColorSpace
|
915
|
+
*/
|
916
|
+
virtual sk_sp<SkImage> makeColorTypeAndColorSpace(skgpu::graphite::Recorder*,
|
917
|
+
SkColorType targetColorType,
|
918
|
+
sk_sp<SkColorSpace> targetColorSpace,
|
919
|
+
RequiredProperties) const = 0;
|
1062
920
|
|
1063
921
|
/** Creates a new SkImage identical to this one, but with a different SkColorSpace.
|
1064
922
|
This does not convert the underlying pixel data, so the resulting image will draw
|
@@ -1080,6 +938,56 @@ private:
|
|
1080
938
|
sk_sp<SkImage> withMipmaps(sk_sp<SkMipmap>) const;
|
1081
939
|
|
1082
940
|
using INHERITED = SkRefCnt;
|
941
|
+
|
942
|
+
public:
|
943
|
+
#if !defined(SK_DISABLE_LEGACY_IMAGE_RELEASE_PROCS)
|
944
|
+
using ReleaseContext = SkImages::ReleaseContext;
|
945
|
+
using TextureReleaseProc = void (*)(ReleaseContext);
|
946
|
+
#endif
|
947
|
+
#if !defined(SK_DISABLE_LEGACY_GRAPHITE_IMAGE_METHODS) && defined(SK_GRAPHITE)
|
948
|
+
struct RequiredImageProperties {
|
949
|
+
skgpu::Mipmapped fMipmapped;
|
950
|
+
};
|
951
|
+
|
952
|
+
sk_sp<SkImage> makeTextureImage(skgpu::graphite::Recorder*, RequiredImageProperties) const;
|
953
|
+
#endif
|
954
|
+
#if !defined(SK_DISABLE_LEGACY_GRAPHITE_IMAGE_FACTORIES) && defined(SK_GRAPHITE)
|
955
|
+
// Passed to both fulfill and imageRelease
|
956
|
+
using GraphitePromiseImageContext = void*;
|
957
|
+
// Returned from fulfill and passed into textureRelease
|
958
|
+
using GraphitePromiseTextureReleaseContext = void*;
|
959
|
+
|
960
|
+
using GraphitePromiseImageFulfillProc =
|
961
|
+
std::tuple<skgpu::graphite::BackendTexture, GraphitePromiseTextureReleaseContext>
|
962
|
+
(*)(GraphitePromiseImageContext);
|
963
|
+
using GraphitePromiseImageReleaseProc = void (*)(GraphitePromiseImageContext);
|
964
|
+
using GraphitePromiseTextureReleaseProc = void (*)(GraphitePromiseTextureReleaseContext);
|
965
|
+
|
966
|
+
static sk_sp<SkImage> MakeGraphitePromiseTexture(skgpu::graphite::Recorder*,
|
967
|
+
SkISize,
|
968
|
+
const skgpu::graphite::TextureInfo&,
|
969
|
+
const SkColorInfo&,
|
970
|
+
skgpu::graphite::Volatile,
|
971
|
+
GraphitePromiseImageFulfillProc,
|
972
|
+
GraphitePromiseImageReleaseProc,
|
973
|
+
GraphitePromiseTextureReleaseProc,
|
974
|
+
GraphitePromiseImageContext);
|
975
|
+
|
976
|
+
static sk_sp<SkImage> MakeGraphiteFromBackendTexture(skgpu::graphite::Recorder*,
|
977
|
+
const skgpu::graphite::BackendTexture&,
|
978
|
+
SkColorType,
|
979
|
+
SkAlphaType,
|
980
|
+
sk_sp<SkColorSpace>,
|
981
|
+
TextureReleaseProc = nullptr,
|
982
|
+
ReleaseContext = nullptr);
|
983
|
+
|
984
|
+
static sk_sp<SkImage> MakeGraphiteFromYUVABackendTextures(
|
985
|
+
skgpu::graphite::Recorder*,
|
986
|
+
const skgpu::graphite::YUVABackendTextures&,
|
987
|
+
sk_sp<SkColorSpace>,
|
988
|
+
TextureReleaseProc = nullptr,
|
989
|
+
ReleaseContext = nullptr);
|
990
|
+
#endif
|
1083
991
|
};
|
1084
992
|
|
1085
993
|
#endif
|
@@ -22,11 +22,8 @@
|
|
22
22
|
|
23
23
|
#include <cstddef>
|
24
24
|
#include <cstdint>
|
25
|
-
#include <memory>
|
26
|
-
#include <optional>
|
27
25
|
|
28
26
|
class GrRecordingContext;
|
29
|
-
enum SkAlphaType : int;
|
30
27
|
|
31
28
|
class SK_API SkImageGenerator {
|
32
29
|
public:
|
@@ -116,23 +113,6 @@ public:
|
|
116
113
|
|
117
114
|
virtual bool isTextureGenerator() const { return false; }
|
118
115
|
|
119
|
-
#if defined(SK_GRAPHITE)
|
120
|
-
sk_sp<SkImage> makeTextureImage(skgpu::graphite::Recorder*,
|
121
|
-
const SkImageInfo&,
|
122
|
-
skgpu::Mipmapped);
|
123
|
-
#endif
|
124
|
-
|
125
|
-
/**
|
126
|
-
* If the default image decoder system can interpret the specified (encoded) data, then
|
127
|
-
* this returns a new ImageGenerator for it. Otherwise this returns NULL. Either way
|
128
|
-
* the caller is still responsible for managing their ownership of the data.
|
129
|
-
* By default, images will be converted to premultiplied pixels. The alpha type can be
|
130
|
-
* overridden by specifying kPremul_SkAlphaType or kUnpremul_SkAlphaType. Specifying
|
131
|
-
* kOpaque_SkAlphaType is not supported, and will return NULL.
|
132
|
-
*/
|
133
|
-
static std::unique_ptr<SkImageGenerator> MakeFromEncoded(
|
134
|
-
sk_sp<SkData>, std::optional<SkAlphaType> = std::nullopt);
|
135
|
-
|
136
116
|
protected:
|
137
117
|
static constexpr int kNeedNewImageUniqueID = 0;
|
138
118
|
|
@@ -146,22 +126,11 @@ protected:
|
|
146
126
|
SkYUVAPixmapInfo*) const { return false; }
|
147
127
|
virtual bool onGetYUVAPlanes(const SkYUVAPixmaps&) { return false; }
|
148
128
|
|
149
|
-
#if defined(SK_GRAPHITE)
|
150
|
-
virtual sk_sp<SkImage> onMakeTextureImage(skgpu::graphite::Recorder*,
|
151
|
-
const SkImageInfo&,
|
152
|
-
skgpu::Mipmapped);
|
153
|
-
#endif
|
154
129
|
const SkImageInfo fInfo;
|
155
130
|
|
156
131
|
private:
|
157
132
|
const uint32_t fUniqueID;
|
158
133
|
|
159
|
-
// This is our default impl, which may be different on different platforms.
|
160
|
-
// It is called from NewFromEncoded() after it has checked for any runtime factory.
|
161
|
-
// The SkData will never be NULL, as that will have been checked by NewFromEncoded.
|
162
|
-
static std::unique_ptr<SkImageGenerator> MakeFromEncodedImpl(sk_sp<SkData>,
|
163
|
-
std::optional<SkAlphaType>);
|
164
|
-
|
165
134
|
SkImageGenerator(SkImageGenerator&&) = delete;
|
166
135
|
SkImageGenerator(const SkImageGenerator&) = delete;
|
167
136
|
SkImageGenerator& operator=(SkImageGenerator&&) = delete;
|
@@ -24,6 +24,9 @@ public:
|
|
24
24
|
SkPathMeasure(const SkPath& path, bool forceClosed, SkScalar resScale = 1);
|
25
25
|
~SkPathMeasure();
|
26
26
|
|
27
|
+
SkPathMeasure(SkPathMeasure&&) = default;
|
28
|
+
SkPathMeasure& operator=(SkPathMeasure&&) = default;
|
29
|
+
|
27
30
|
/** Reset the pathmeasure with the specified path. The parts of the path that are needed
|
28
31
|
* are copied, so the client is free to modify/delete the path after this call..
|
29
32
|
*/
|
@@ -80,9 +83,6 @@ public:
|
|
80
83
|
private:
|
81
84
|
SkContourMeasureIter fIter;
|
82
85
|
sk_sp<SkContourMeasure> fContour;
|
83
|
-
|
84
|
-
SkPathMeasure(const SkPathMeasure&) = delete;
|
85
|
-
SkPathMeasure& operator=(const SkPathMeasure&) = delete;
|
86
86
|
};
|
87
87
|
|
88
88
|
#endif
|
@@ -86,7 +86,7 @@ public:
|
|
86
86
|
* Unlike finishRecordingAsPicture(), which returns an immutable picture, the returned drawable
|
87
87
|
* may contain live references to other drawables (if they were added to the recording canvas)
|
88
88
|
* and therefore this drawable will reflect the current state of those nested drawables anytime
|
89
|
-
* it is drawn or a new picture is snapped from it (by calling drawable->
|
89
|
+
* it is drawn or a new picture is snapped from it (by calling drawable->makePictureSnapshot()).
|
90
90
|
*/
|
91
91
|
sk_sp<SkDrawable> finishRecordingAsDrawable();
|
92
92
|
|