@shopify/react-native-skia 0.1.192 → 0.1.194
Sign up to get free protection for your applications and to get access to all the features.
- package/android/CMakeLists.txt +1 -1
- package/android/build.gradle +1 -0
- package/android/cpp/jni/JniPlatformContext.cpp +1 -1
- package/android/src/main/java/com/shopify/reactnative/skia/ViewScreenshotService.java +104 -103
- package/cpp/api/JsiSkImage.h +25 -4
- package/cpp/api/JsiSkImageFactory.h +2 -2
- package/cpp/api/JsiSkPath.h +8 -6
- package/cpp/rnskia/dom/base/Declaration.h +5 -7
- package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +3 -1
- package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +1 -0
- package/cpp/rnskia/dom/nodes/JsiPathNode.h +2 -2
- package/cpp/rnskia/dom/props/BoxShadowProps.h +2 -0
- package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +2 -8
- package/cpp/skia/include/android/SkImageAndroid.h +101 -0
- package/cpp/skia/include/codec/SkAndroidCodec.h +26 -8
- package/cpp/skia/include/codec/SkCodec.h +31 -17
- package/cpp/skia/include/codec/SkEncodedImageFormat.h +36 -0
- package/cpp/skia/include/codec/SkPixmapUtils.h +31 -0
- package/cpp/skia/include/config/SkUserConfig.h +61 -29
- package/cpp/skia/include/core/SkBitmap.h +25 -25
- package/cpp/skia/include/core/SkBlurTypes.h +0 -2
- package/cpp/skia/include/core/SkCanvas.h +32 -15
- package/cpp/skia/include/core/SkCapabilities.h +2 -2
- package/cpp/skia/include/core/SkColor.h +2 -0
- package/cpp/skia/include/core/SkColorPriv.h +19 -4
- package/cpp/skia/include/core/SkColorSpace.h +14 -17
- package/cpp/skia/include/core/SkColorType.h +1 -0
- package/cpp/skia/include/core/SkContourMeasure.h +1 -1
- package/cpp/skia/include/core/SkCoverageMode.h +0 -2
- package/cpp/skia/include/core/SkCubicMap.h +2 -0
- package/cpp/skia/include/core/SkData.h +5 -2
- package/cpp/skia/include/core/SkDataTable.h +6 -2
- package/cpp/skia/include/core/SkDeferredDisplayList.h +11 -10
- package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +9 -8
- package/cpp/skia/include/core/SkDrawable.h +10 -2
- package/cpp/skia/include/core/SkEncodedImageFormat.h +3 -30
- package/cpp/skia/include/core/SkFlattenable.h +4 -2
- package/cpp/skia/include/core/SkFont.h +1 -0
- package/cpp/skia/include/core/SkFontMetrics.h +1 -0
- package/cpp/skia/include/core/SkFontMgr.h +20 -29
- package/cpp/skia/include/core/SkFontStyle.h +4 -1
- package/cpp/skia/include/core/SkGraphics.h +21 -18
- package/cpp/skia/include/core/SkICC.h +3 -13
- package/cpp/skia/include/core/SkImage.h +395 -717
- package/cpp/skia/include/core/SkImageGenerator.h +19 -74
- package/cpp/skia/include/core/SkImageInfo.h +7 -5
- package/cpp/skia/include/core/SkM44.h +11 -0
- package/cpp/skia/include/core/SkMaskFilter.h +6 -3
- package/cpp/skia/include/core/SkMatrix.h +14 -4
- package/cpp/skia/include/core/SkMesh.h +52 -18
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPaint.h +11 -34
- package/cpp/skia/include/core/SkPath.h +23 -4
- package/cpp/skia/include/core/SkPathBuilder.h +13 -5
- package/cpp/skia/include/core/SkPathMeasure.h +1 -1
- package/cpp/skia/include/core/SkPathTypes.h +0 -2
- package/cpp/skia/include/core/SkPathUtils.h +42 -0
- package/cpp/skia/include/core/SkPicture.h +3 -2
- package/cpp/skia/include/core/SkPictureRecorder.h +2 -0
- package/cpp/skia/include/core/SkPixelRef.h +4 -8
- package/cpp/skia/include/core/SkPixmap.h +12 -20
- package/cpp/skia/include/core/SkPoint.h +4 -2
- package/cpp/skia/include/core/SkPromiseImageTexture.h +2 -2
- package/cpp/skia/include/core/SkRRect.h +5 -1
- package/cpp/skia/include/core/SkRect.h +6 -3
- package/cpp/skia/include/core/SkRefCnt.h +9 -14
- package/cpp/skia/include/core/SkRegion.h +1 -1
- package/cpp/skia/include/core/SkScalar.h +2 -4
- package/cpp/skia/include/core/SkSerialProcs.h +18 -10
- package/cpp/skia/include/core/SkShader.h +1 -64
- package/cpp/skia/include/core/SkSize.h +2 -0
- package/cpp/skia/include/core/SkSpan.h +4 -112
- package/cpp/skia/include/core/SkStream.h +11 -12
- package/cpp/skia/include/core/SkString.h +9 -25
- package/cpp/skia/include/core/SkStrokeRec.h +1 -1
- package/cpp/skia/include/core/SkSurface.h +83 -61
- package/cpp/skia/include/core/SkSurfaceCharacterization.h +3 -3
- package/cpp/skia/include/core/SkSurfaceProps.h +9 -1
- package/cpp/skia/include/core/SkTextBlob.h +2 -2
- package/cpp/skia/include/core/SkTextureCompressionType.h +30 -0
- package/cpp/skia/include/core/SkTime.h +1 -1
- package/cpp/skia/include/core/SkTypeface.h +9 -2
- package/cpp/skia/include/core/SkTypes.h +37 -466
- package/cpp/skia/include/core/SkVertices.h +2 -0
- package/cpp/skia/include/core/SkYUVAInfo.h +4 -0
- package/cpp/skia/include/core/SkYUVAPixmaps.h +7 -1
- package/cpp/skia/include/docs/SkPDFDocument.h +12 -1
- package/cpp/skia/include/effects/SkColorMatrix.h +2 -1
- package/cpp/skia/include/effects/SkGradientShader.h +65 -14
- package/cpp/skia/include/effects/SkImageFilters.h +0 -11
- package/cpp/skia/include/effects/SkRuntimeEffect.h +41 -11
- package/cpp/skia/include/encode/SkEncoder.h +7 -3
- package/cpp/skia/include/encode/SkICC.h +36 -0
- package/cpp/skia/include/encode/SkJpegEncoder.h +102 -71
- package/cpp/skia/include/encode/SkPngEncoder.h +89 -71
- package/cpp/skia/include/encode/SkWebpEncoder.h +65 -38
- package/cpp/skia/include/gpu/GpuTypes.h +23 -1
- package/cpp/skia/include/gpu/GrBackendSurface.h +9 -7
- package/cpp/skia/include/gpu/GrContextOptions.h +28 -9
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +6 -4
- package/cpp/skia/include/gpu/GrDirectContext.h +84 -63
- package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -1
- package/cpp/skia/include/gpu/GrRecordingContext.h +9 -5
- package/cpp/skia/include/gpu/GrTypes.h +18 -18
- package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +4 -4
- package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +3 -3
- package/cpp/skia/include/gpu/ganesh/GrTextureGenerator.h +77 -0
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +385 -0
- package/cpp/skia/include/gpu/gl/GrGLExtensions.h +3 -3
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -1
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +0 -3
- package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -1
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +72 -3
- package/cpp/skia/include/gpu/graphite/Context.h +85 -32
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +15 -11
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +55 -5
- package/cpp/skia/include/gpu/graphite/ImageProvider.h +6 -4
- package/cpp/skia/include/gpu/graphite/Recorder.h +41 -11
- package/cpp/skia/include/gpu/graphite/Recording.h +50 -3
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +47 -8
- package/cpp/skia/include/gpu/graphite/YUVABackendTextures.h +139 -0
- package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +40 -0
- package/cpp/skia/include/gpu/graphite/dawn/DawnUtils.h +28 -0
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +1 -1
- package/cpp/skia/include/gpu/graphite/mtl/{MtlTypes.h → MtlGraphiteTypes.h} +7 -6
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteUtils.h +27 -0
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +4 -9
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteUtils.h +28 -0
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +17 -13
- package/cpp/skia/include/gpu/mtl/GrMtlTypes.h +2 -2
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +1 -1
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +3 -3
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +3 -3
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +5 -7
- package/cpp/skia/include/pathops/SkPathOps.h +3 -3
- package/cpp/skia/include/ports/SkFontMgr_data.h +22 -0
- package/cpp/skia/include/ports/SkFontMgr_indirect.h +14 -14
- package/cpp/skia/include/ports/SkRemotableFontMgr.h +2 -2
- package/cpp/skia/include/ports/SkTypeface_win.h +2 -1
- package/cpp/skia/include/private/SkChecksum.h +32 -7
- package/cpp/skia/include/private/SkColorData.h +1 -26
- package/cpp/skia/include/private/SkGainmapInfo.h +97 -0
- package/cpp/skia/include/private/SkGainmapShader.h +53 -0
- package/cpp/skia/include/private/SkIDChangeListener.h +4 -3
- package/cpp/skia/include/private/SkJpegGainmapEncoder.h +71 -0
- package/cpp/skia/include/private/SkJpegMetadataDecoder.h +61 -0
- package/cpp/skia/include/private/SkOpts_spi.h +3 -1
- package/cpp/skia/include/private/SkPathRef.h +64 -47
- package/cpp/skia/include/private/SkSLDefines.h +5 -5
- package/cpp/skia/include/private/SkSLSampleUsage.h +0 -4
- package/cpp/skia/include/private/SkSpinlock.h +1 -1
- package/cpp/skia/include/private/SkWeakRefCnt.h +3 -0
- package/cpp/skia/include/private/{SingleOwner.h → base/SingleOwner.h} +8 -5
- package/cpp/skia/include/private/base/SkAPI.h +52 -0
- package/cpp/skia/include/private/base/SkAlign.h +39 -0
- package/cpp/skia/include/private/base/SkAlignedStorage.h +32 -0
- package/cpp/skia/include/private/base/SkAssert.h +92 -0
- package/cpp/skia/include/private/base/SkAttributes.h +102 -0
- package/cpp/skia/include/private/base/SkCPUTypes.h +25 -0
- package/cpp/skia/include/private/base/SkContainers.h +46 -0
- package/cpp/skia/include/private/base/SkDebug.h +27 -0
- package/cpp/skia/include/private/{SkDeque.h → base/SkDeque.h} +3 -1
- package/cpp/skia/include/private/base/SkFeatures.h +151 -0
- package/cpp/skia/include/private/{SkFixed.h → base/SkFixed.h} +9 -7
- package/cpp/skia/include/private/{SkFloatBits.h → base/SkFloatBits.h} +2 -3
- package/cpp/skia/include/private/{SkFloatingPoint.h → base/SkFloatingPoint.h} +18 -9
- package/cpp/skia/include/private/base/SkLoadUserConfig.h +63 -0
- package/cpp/skia/include/private/{SkMacros.h → base/SkMacros.h} +17 -2
- package/cpp/skia/include/private/{SkMalloc.h → base/SkMalloc.h} +4 -7
- package/cpp/skia/include/{core → private/base}/SkMath.h +25 -2
- package/cpp/skia/include/private/{SkMutex.h → base/SkMutex.h} +5 -5
- package/cpp/skia/include/private/{SkNoncopyable.h → base/SkNoncopyable.h} +2 -2
- package/cpp/skia/include/private/{SkOnce.h → base/SkOnce.h} +3 -1
- package/cpp/skia/include/private/base/SkPathEnums.h +25 -0
- package/cpp/skia/include/private/{SkSafe32.h → base/SkSafe32.h} +16 -1
- package/cpp/skia/include/private/{SkSemaphore.h → base/SkSemaphore.h} +4 -3
- package/cpp/skia/include/private/base/SkSpan_impl.h +129 -0
- package/cpp/skia/include/private/base/SkTArray.h +694 -0
- package/cpp/skia/include/private/{SkTDArray.h → base/SkTDArray.h} +17 -54
- package/cpp/skia/include/private/{SkTFitsIn.h → base/SkTFitsIn.h} +14 -8
- package/cpp/skia/include/private/{SkTLogic.h → base/SkTLogic.h} +1 -1
- package/cpp/skia/include/private/{SkTemplates.h → base/SkTemplates.h} +63 -88
- package/cpp/skia/include/private/{SkThreadID.h → base/SkThreadID.h} +5 -2
- package/cpp/skia/include/private/{SkTo.h → base/SkTo.h} +13 -2
- package/cpp/skia/include/private/base/SkTypeTraits.h +33 -0
- package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +130 -0
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +5 -9
- package/cpp/skia/include/private/chromium/SkDiscardableMemory.h +70 -0
- package/cpp/skia/include/private/chromium/Slug.h +0 -9
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +2 -1
- package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrMockTypesPriv.h +3 -2
- package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +17 -23
- package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +2 -2
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +38 -0
- package/cpp/skia/include/private/gpu/graphite/{MtlTypesPriv.h → MtlGraphiteTypesPriv.h} +5 -5
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +1 -9
- package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +4 -0
- package/cpp/skia/include/utils/SkCamera.h +1 -1
- package/cpp/skia/include/utils/SkCustomTypeface.h +7 -1
- package/cpp/skia/include/utils/SkNWayCanvas.h +6 -6
- package/cpp/skia/include/utils/SkOrderedFontMgr.h +7 -6
- package/cpp/skia/include/utils/SkPaintFilterCanvas.h +2 -2
- package/cpp/skia/include/utils/SkParsePath.h +1 -1
- package/cpp/skia/modules/skcms/skcms.h +14 -0
- package/cpp/skia/modules/skcms/src/Transform_inl.h +19 -0
- package/cpp/skia/modules/skparagraph/include/FontCollection.h +2 -2
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +72 -2
- package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +1 -11
- package/cpp/skia/modules/skparagraph/include/ParagraphPainter.h +63 -0
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +27 -4
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +13 -13
- package/cpp/skia/modules/skresources/include/SkResources.h +18 -4
- package/cpp/skia/modules/svg/include/SkSVGAttribute.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +2 -2
- package/cpp/skia/modules/svg/include/SkSVGContainer.h +2 -2
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +2 -2
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +2 -2
- package/cpp/skia/modules/svg/include/SkSVGIDMapper.h +2 -2
- 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/SkSVGTypes.h +22 -21
- package/cpp/skia/modules/svg/include/SkSVGValue.h +1 -1
- package/cpp/skia/{include/private → src/core}/SkTHash.h +41 -37
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +1 -2
- package/ios/RNSkia-iOS/ViewScreenshotService.mm +1 -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/libskshaper.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/libskshaper.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/libskshaper.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/libskshaper.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/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/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/scripts/install-npm.js +11 -1
- package/cpp/skia/include/core/SkImageEncoder.h +0 -71
- package/cpp/skia/include/gpu/GrConfig.h +0 -53
- package/cpp/skia/include/gpu/graphite/CombinationBuilder.h +0 -195
- package/cpp/skia/include/private/SkHalf.h +0 -38
- package/cpp/skia/include/private/SkImageInfoPriv.h +0 -199
- package/cpp/skia/include/private/SkSLIRNode.h +0 -64
- package/cpp/skia/include/private/SkSLLayout.h +0 -144
- package/cpp/skia/include/private/SkSLModifiers.h +0 -178
- package/cpp/skia/include/private/SkSLProgramElement.h +0 -77
- package/cpp/skia/include/private/SkSLProgramKind.h +0 -35
- package/cpp/skia/include/private/SkSLStatement.h +0 -86
- package/cpp/skia/include/private/SkSLString.h +0 -41
- package/cpp/skia/include/private/SkSLSymbol.h +0 -94
- package/cpp/skia/include/private/SkSafe_math.h +0 -52
- package/cpp/skia/include/private/SkStringView.h +0 -51
- package/cpp/skia/include/private/SkTArray.h +0 -655
- package/cpp/skia/include/private/SkUniquePaintParamsID.h +0 -35
- package/cpp/skia/include/private/SkVx.h +0 -1026
- package/cpp/skia/include/sksl/DSL.h +0 -37
- package/cpp/skia/include/sksl/DSLBlock.h +0 -58
- package/cpp/skia/include/sksl/DSLCase.h +0 -62
- package/cpp/skia/include/sksl/DSLCore.h +0 -492
- package/cpp/skia/include/sksl/DSLExpression.h +0 -241
- package/cpp/skia/include/sksl/DSLFunction.h +0 -113
- package/cpp/skia/include/sksl/DSLLayout.h +0 -92
- package/cpp/skia/include/sksl/DSLModifiers.h +0 -69
- package/cpp/skia/include/sksl/DSLStatement.h +0 -82
- package/cpp/skia/include/sksl/DSLSymbols.h +0 -61
- package/cpp/skia/include/sksl/DSLType.h +0 -271
- package/cpp/skia/include/sksl/DSLVar.h +0 -231
- package/cpp/skia/include/sksl/SkSLErrorReporter.h +0 -65
- package/cpp/skia/include/sksl/SkSLOperator.h +0 -154
- package/cpp/skia/include/sksl/SkSLPosition.h +0 -104
- package/cpp/skia/include/utils/SkRandom.h +0 -169
- package/cpp/skia/src/core/SkLRUCache.h +0 -126
- package/cpp/skia/src/core/SkTInternalLList.h +0 -302
- /package/cpp/skia/include/{core → codec}/SkPngChunkReader.h +0 -0
- /package/cpp/skia/include/private/{SkTPin.h → base/SkTPin.h} +0 -0
- /package/cpp/skia/include/private/{SkThreadAnnotations.h → base/SkThreadAnnotations.h} +0 -0
@@ -8,10 +8,7 @@
|
|
8
8
|
#ifndef SkCodec_DEFINED
|
9
9
|
#define SkCodec_DEFINED
|
10
10
|
|
11
|
-
#include "include/codec/SkCodecAnimation.h"
|
12
11
|
#include "include/codec/SkEncodedOrigin.h"
|
13
|
-
#include "include/core/SkAlphaType.h"
|
14
|
-
#include "include/core/SkEncodedImageFormat.h"
|
15
12
|
#include "include/core/SkImageInfo.h"
|
16
13
|
#include "include/core/SkPixmap.h"
|
17
14
|
#include "include/core/SkRect.h"
|
@@ -20,21 +17,30 @@
|
|
20
17
|
#include "include/core/SkTypes.h"
|
21
18
|
#include "include/core/SkYUVAPixmaps.h"
|
22
19
|
#include "include/private/SkEncodedInfo.h"
|
23
|
-
#include "include/private/SkNoncopyable.h"
|
20
|
+
#include "include/private/base/SkNoncopyable.h"
|
24
21
|
#include "modules/skcms/skcms.h"
|
25
22
|
|
26
23
|
#include <cstddef>
|
24
|
+
#include <functional>
|
27
25
|
#include <memory>
|
28
26
|
#include <tuple>
|
29
27
|
#include <vector>
|
30
28
|
|
31
|
-
class SkAndroidCodec;
|
32
29
|
class SkData;
|
33
30
|
class SkFrameHolder;
|
34
31
|
class SkImage;
|
35
32
|
class SkPngChunkReader;
|
36
33
|
class SkSampler;
|
37
34
|
class SkStream;
|
35
|
+
struct SkGainmapInfo;
|
36
|
+
enum SkAlphaType : int;
|
37
|
+
enum class SkEncodedImageFormat;
|
38
|
+
|
39
|
+
namespace SkCodecAnimation {
|
40
|
+
enum class Blend;
|
41
|
+
enum class DisposalMethod;
|
42
|
+
}
|
43
|
+
|
38
44
|
|
39
45
|
namespace DM {
|
40
46
|
class CodecSrc;
|
@@ -767,6 +773,8 @@ protected:
|
|
767
773
|
return fSrcXformFormat;
|
768
774
|
}
|
769
775
|
|
776
|
+
virtual bool onGetGainmapInfo(SkGainmapInfo*, std::unique_ptr<SkStream>*) { return false; }
|
777
|
+
|
770
778
|
virtual SkISize onGetScaledDimensions(float /*desiredScale*/) const {
|
771
779
|
// By default, scaling is not supported.
|
772
780
|
return this->dimensions();
|
@@ -887,8 +895,8 @@ private:
|
|
887
895
|
const SkEncodedInfo fEncodedInfo;
|
888
896
|
XformFormat fSrcXformFormat;
|
889
897
|
std::unique_ptr<SkStream> fStream;
|
890
|
-
bool
|
891
|
-
const SkEncodedOrigin
|
898
|
+
bool fNeedsRewind = false;
|
899
|
+
const SkEncodedOrigin fOrigin;
|
892
900
|
|
893
901
|
SkImageInfo fDstInfo;
|
894
902
|
Options fOptions;
|
@@ -904,13 +912,13 @@ private:
|
|
904
912
|
skcms_AlphaFormat fDstXformAlphaFormat;
|
905
913
|
|
906
914
|
// Only meaningful during scanline decodes.
|
907
|
-
int
|
915
|
+
int fCurrScanline = -1;
|
908
916
|
|
909
|
-
bool
|
917
|
+
bool fStartedIncrementalDecode = false;
|
910
918
|
|
911
919
|
// Allows SkAndroidCodec to call handleFrameIndex (potentially decoding a prior frame and
|
912
|
-
// clearing to transparent) without SkCodec calling it, too.
|
913
|
-
bool
|
920
|
+
// clearing to transparent) without SkCodec itself calling it, too.
|
921
|
+
bool fUsingCallbackForHandleFrameIndex = false;
|
914
922
|
|
915
923
|
bool initializeColorXform(const SkImageInfo& dstInfo, SkEncodedInfo::Alpha, bool srcIsOpaque);
|
916
924
|
|
@@ -934,17 +942,23 @@ private:
|
|
934
942
|
return nullptr;
|
935
943
|
}
|
936
944
|
|
945
|
+
// Callback for decoding a prior frame. The `Options::fFrameIndex` is ignored,
|
946
|
+
// being replaced by frameIndex. This allows opts to actually be a subclass of
|
947
|
+
// SkCodec::Options which SkCodec itself does not know how to copy or modify,
|
948
|
+
// but just passes through to the caller (where it can be reinterpret_cast'd).
|
949
|
+
using GetPixelsCallback = std::function<Result(const SkImageInfo&, void* pixels,
|
950
|
+
size_t rowBytes, const Options& opts,
|
951
|
+
int frameIndex)>;
|
952
|
+
|
937
953
|
/**
|
938
954
|
* Check for a valid Options.fFrameIndex, and decode prior frames if necessary.
|
939
955
|
*
|
940
|
-
*
|
941
|
-
*
|
942
|
-
*
|
943
|
-
* handleFrameIndex, it will immediately return kSuccess, since SkAndroidCodec already handled
|
944
|
-
* it.
|
956
|
+
* If GetPixelsCallback is not null, it will be used to decode a prior frame instead
|
957
|
+
* of using this SkCodec directly. It may also be used recursively, if that in turn
|
958
|
+
* depends on a prior frame. This is used by SkAndroidCodec.
|
945
959
|
*/
|
946
960
|
Result handleFrameIndex(const SkImageInfo&, void* pixels, size_t rowBytes, const Options&,
|
947
|
-
|
961
|
+
GetPixelsCallback = nullptr);
|
948
962
|
|
949
963
|
// Methods for scanline decoding.
|
950
964
|
virtual Result onStartScanlineDecode(const SkImageInfo& /*dstInfo*/,
|
@@ -0,0 +1,36 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2015 Google Inc.
|
3
|
+
*
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
5
|
+
* found in the LICENSE file.
|
6
|
+
*/
|
7
|
+
|
8
|
+
#ifndef SkEncodedImageFormat_DEFINED
|
9
|
+
#define SkEncodedImageFormat_DEFINED
|
10
|
+
|
11
|
+
#include <stdint.h>
|
12
|
+
|
13
|
+
/**
|
14
|
+
* Enum describing format of encoded data.
|
15
|
+
*/
|
16
|
+
enum class SkEncodedImageFormat {
|
17
|
+
#ifdef SK_BUILD_FOR_GOOGLE3
|
18
|
+
kUnknown,
|
19
|
+
#endif
|
20
|
+
kBMP,
|
21
|
+
kGIF,
|
22
|
+
kICO,
|
23
|
+
kJPEG,
|
24
|
+
kPNG,
|
25
|
+
kWBMP,
|
26
|
+
kWEBP,
|
27
|
+
kPKM,
|
28
|
+
kKTX,
|
29
|
+
kASTC,
|
30
|
+
kDNG,
|
31
|
+
kHEIF,
|
32
|
+
kAVIF,
|
33
|
+
kJPEGXL,
|
34
|
+
};
|
35
|
+
|
36
|
+
#endif // SkEncodedImageFormat_DEFINED
|
@@ -0,0 +1,31 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 Google LLC
|
3
|
+
*
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
5
|
+
* found in the LICENSE file.
|
6
|
+
*/
|
7
|
+
|
8
|
+
#ifndef SkPixmapUtils_DEFINED
|
9
|
+
#define SkPixmapUtils_DEFINED
|
10
|
+
|
11
|
+
#include "include/codec/SkEncodedOrigin.h"
|
12
|
+
#include "include/core/SkImageInfo.h"
|
13
|
+
#include "include/private/base/SkAPI.h"
|
14
|
+
|
15
|
+
class SkPixmap;
|
16
|
+
|
17
|
+
namespace SkPixmapUtils {
|
18
|
+
/**
|
19
|
+
* Copy the pixels in src into dst, applying the orientation transformations specified
|
20
|
+
* by origin. If the inputs are invalid, this returns false and no copy is made.
|
21
|
+
*/
|
22
|
+
SK_API bool Orient(const SkPixmap& dst, const SkPixmap& src, SkEncodedOrigin origin);
|
23
|
+
|
24
|
+
/**
|
25
|
+
* Return a copy of the provided ImageInfo with the width and height swapped.
|
26
|
+
*/
|
27
|
+
SK_API SkImageInfo SwapWidthHeight(const SkImageInfo& info);
|
28
|
+
|
29
|
+
} // namespace SkPixmapUtils
|
30
|
+
|
31
|
+
#endif // SkPixmapUtils_DEFINED
|
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
/*
|
3
2
|
* Copyright 2006 The Android Open Source Project
|
4
3
|
*
|
@@ -6,7 +5,6 @@
|
|
6
5
|
* found in the LICENSE file.
|
7
6
|
*/
|
8
7
|
|
9
|
-
|
10
8
|
#ifndef SkUserConfig_DEFINED
|
11
9
|
#define SkUserConfig_DEFINED
|
12
10
|
|
@@ -16,9 +14,9 @@
|
|
16
14
|
|
17
15
|
Below are optional defines that add, subtract, or change default behavior
|
18
16
|
in Skia. Your port can locally edit this file to enable/disable flags as
|
19
|
-
you choose, or these can be
|
17
|
+
you choose, or these can be declared on your command line (i.e. -Dfoo).
|
20
18
|
|
21
|
-
By default, this include file will always default to having all
|
19
|
+
By default, this #include file will always default to having all the flags
|
22
20
|
commented out, so including it will have no effect.
|
23
21
|
*/
|
24
22
|
|
@@ -32,58 +30,92 @@
|
|
32
30
|
By default, these mutually exclusive flags are defined in SkTypes.h,
|
33
31
|
based on the presence or absence of NDEBUG, but that decision can be changed
|
34
32
|
here.
|
35
|
-
|
33
|
+
*/
|
36
34
|
//#define SK_DEBUG
|
37
35
|
//#define SK_RELEASE
|
38
36
|
|
39
37
|
/* To write debug messages to a console, skia will call SkDebugf(...) following
|
40
38
|
printf conventions (e.g. const char* format, ...). If you want to redirect
|
41
39
|
this to something other than printf, define yours here
|
42
|
-
|
40
|
+
*/
|
43
41
|
//#define SkDebugf(...) MyFunction(__VA_ARGS__)
|
44
42
|
|
45
|
-
/*
|
46
|
-
|
47
|
-
|
48
|
-
|
43
|
+
/* Skia has both debug and release asserts. When an assert fails SK_ABORT will
|
44
|
+
be used to report an abort message. SK_ABORT is expected not to return. Skia
|
45
|
+
provides a default implementation which will print the message with SkDebugf
|
46
|
+
and then call sk_abort_no_print.
|
47
|
+
*/
|
48
|
+
//#define SK_ABORT(message, ...)
|
49
|
+
|
50
|
+
/* To specify a different default font strike cache memory limit, define this. If this is
|
51
|
+
undefined, skia will use a built-in value.
|
52
|
+
*/
|
49
53
|
//#define SK_DEFAULT_FONT_CACHE_LIMIT (1024 * 1024)
|
50
54
|
|
51
|
-
/*
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
55
|
+
/* To specify a different default font strike cache count limit, define this. If this is
|
56
|
+
undefined, skia will use a built-in value.
|
57
|
+
*/
|
58
|
+
// #define SK_DEFAULT_FONT_CACHE_COUNT_LIMIT 2048
|
59
|
+
|
60
|
+
/* To specify the default size of the image cache, undefine this and set it to
|
61
|
+
the desired value (in bytes). SkGraphics.h as a runtime API to set this
|
62
|
+
value as well. If this is undefined, a built-in value will be used.
|
63
|
+
*/
|
56
64
|
//#define SK_DEFAULT_IMAGE_CACHE_LIMIT (1024 * 1024)
|
57
65
|
|
58
66
|
/* Define this to set the upper limit for text to support LCD. Values that
|
59
67
|
are very large increase the cost in the font cache and draw slower, without
|
60
68
|
improving readability. If this is undefined, Skia will use its default
|
61
69
|
value (e.g. 48)
|
62
|
-
|
70
|
+
*/
|
63
71
|
//#define SK_MAX_SIZE_FOR_LCDTEXT 48
|
64
72
|
|
65
73
|
/* Change the kN32_SkColorType ordering to BGRA to work in X windows.
|
66
|
-
|
74
|
+
*/
|
67
75
|
//#define SK_R32_SHIFT 16
|
68
76
|
|
69
|
-
|
70
|
-
/* Determines whether to build code that supports the GPU backend. Some classes
|
77
|
+
/* Determines whether to build code that supports the Ganesh GPU backend. Some classes
|
71
78
|
that are not GPU-specific, such as SkShader subclasses, have optional code
|
72
|
-
that is used allows them to interact with
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
79
|
+
that is used allows them to interact with this GPU backend. If you'd like to
|
80
|
+
include this code, include -DSK_GANESH in your cflags or uncomment below.
|
81
|
+
Defaults to not set (No Ganesh GPU backend).
|
82
|
+
This define affects the ABI of Skia, so make sure it matches the client which uses
|
83
|
+
the compiled version of Skia.
|
84
|
+
*/
|
85
|
+
//#define SK_GANESH
|
78
86
|
|
79
87
|
/* Skia makes use of histogram logging macros to trace the frequency of
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
88
|
+
events. By default, Skia provides no-op versions of these macros.
|
89
|
+
Skia consumers can provide their own definitions of these macros to
|
90
|
+
integrate with their histogram collection backend.
|
91
|
+
*/
|
84
92
|
//#define SK_HISTOGRAM_BOOLEAN(name, sample)
|
85
93
|
//#define SK_HISTOGRAM_ENUMERATION(name, sample, enum_size)
|
86
94
|
//#define SK_HISTOGRAM_EXACT_LINEAR(name, sample, value_max)
|
87
95
|
//#define SK_HISTOGRAM_MEMORY_KB(name, sample)
|
88
96
|
|
97
|
+
/* Skia tries to make use of some non-standard C++ language extensions.
|
98
|
+
By default, Skia provides msvc and clang/gcc versions of these macros.
|
99
|
+
Skia consumers can provide their own definitions of these macros to
|
100
|
+
integrate with their own compilers and build system.
|
101
|
+
*/
|
102
|
+
//#define SK_UNUSED [[maybe_unused]]
|
103
|
+
//#define SK_WARN_UNUSED_RESULT [[nodiscard]]
|
104
|
+
//#define SK_ALWAYS_INLINE inline __attribute__((always_inline))
|
105
|
+
//#define SK_NEVER_INLINE __attribute__((noinline))
|
106
|
+
//#define SK_PRINTF_LIKE(A, B) __attribute__((format(printf, (A), (B))))
|
107
|
+
//#define SK_NO_SANITIZE(A) __attribute__((no_sanitize(A)))
|
108
|
+
//#define SK_TRIVIAL_ABI [[clang::trivial_abi]]
|
109
|
+
|
110
|
+
/*
|
111
|
+
* If compiling Skia as a DLL, public APIs should be exported. Skia will set
|
112
|
+
* SK_API to something sensible for Clang and MSVC, but if clients need to
|
113
|
+
* customize it for their build system or compiler, they may.
|
114
|
+
* If a client needs to use SK_API (e.g. overriding SK_ABORT), then they
|
115
|
+
* *must* define their own, the default will not be defined prior to loading
|
116
|
+
* this file.
|
117
|
+
*/
|
118
|
+
//#define SK_API __declspec(dllexport)
|
119
|
+
|
120
|
+
|
89
121
|
#endif
|
@@ -8,24 +8,32 @@
|
|
8
8
|
#ifndef SkBitmap_DEFINED
|
9
9
|
#define SkBitmap_DEFINED
|
10
10
|
|
11
|
+
#include "include/core/SkAlphaType.h"
|
11
12
|
#include "include/core/SkColor.h"
|
12
13
|
#include "include/core/SkImageInfo.h"
|
13
|
-
#include "include/core/SkMatrix.h"
|
14
14
|
#include "include/core/SkPixmap.h"
|
15
15
|
#include "include/core/SkPoint.h"
|
16
|
+
#include "include/core/SkRect.h"
|
16
17
|
#include "include/core/SkRefCnt.h"
|
17
|
-
#include "include/core/
|
18
|
-
#include "include/core/
|
18
|
+
#include "include/core/SkSamplingOptions.h"
|
19
|
+
#include "include/core/SkSize.h"
|
20
|
+
#include "include/core/SkTypes.h"
|
21
|
+
#include "include/private/base/SkCPUTypes.h"
|
22
|
+
#include "include/private/base/SkDebug.h"
|
23
|
+
|
24
|
+
#include <cstddef>
|
25
|
+
#include <cstdint>
|
19
26
|
|
20
|
-
class SkBitmap;
|
21
27
|
class SkColorSpace;
|
22
|
-
|
28
|
+
class SkImage;
|
29
|
+
class SkMatrix;
|
23
30
|
class SkMipmap;
|
24
|
-
struct SkIRect;
|
25
|
-
struct SkRect;
|
26
31
|
class SkPaint;
|
27
32
|
class SkPixelRef;
|
28
33
|
class SkShader;
|
34
|
+
enum SkColorType : int;
|
35
|
+
enum class SkTileMode;
|
36
|
+
struct SkMask;
|
29
37
|
|
30
38
|
/** \class SkBitmap
|
31
39
|
SkBitmap describes a two-dimensional raster pixel array. SkBitmap is built on
|
@@ -766,11 +774,10 @@ public:
|
|
766
774
|
treated as opaque. If colorType() is kAlpha_8_SkColorType, then RGB is ignored.
|
767
775
|
|
768
776
|
@param c unpremultiplied color
|
769
|
-
@param colorSpace SkColorSpace of c
|
770
777
|
|
771
778
|
example: https://fiddle.skia.org/c/@Bitmap_eraseColor
|
772
779
|
*/
|
773
|
-
void eraseColor(SkColor4f
|
780
|
+
void eraseColor(SkColor4f) const;
|
774
781
|
|
775
782
|
/** Replaces pixel values with c, interpreted as being in the sRGB SkColorSpace.
|
776
783
|
All pixels contained by bounds() are affected. If the colorType() is
|
@@ -810,11 +817,9 @@ public:
|
|
810
817
|
|
811
818
|
@param c unpremultiplied color
|
812
819
|
@param area rectangle to fill
|
813
|
-
@param colorSpace SkColorSpace of c
|
814
820
|
|
815
821
|
example: https://fiddle.skia.org/c/@Bitmap_erase
|
816
822
|
*/
|
817
|
-
void erase(SkColor4f c, SkColorSpace* colorSpace, const SkIRect& area) const;
|
818
823
|
void erase(SkColor4f c, const SkIRect& area) const;
|
819
824
|
|
820
825
|
/** Replaces pixel values inside area with c. interpreted as being in the sRGB
|
@@ -1168,23 +1173,18 @@ public:
|
|
1168
1173
|
example: https://fiddle.skia.org/c/@Bitmap_peekPixels
|
1169
1174
|
*/
|
1170
1175
|
bool peekPixels(SkPixmap* pixmap) const;
|
1171
|
-
sk_sp<SkShader> makeShader(SkTileMode tmx, SkTileMode tmy, const SkSamplingOptions&,
|
1172
|
-
const SkMatrix* = nullptr) const;
|
1173
1176
|
|
1177
|
+
/**
|
1178
|
+
* Make a shader with the specified tiling, matrix and sampling.
|
1179
|
+
*/
|
1180
|
+
sk_sp<SkShader> makeShader(SkTileMode tmx, SkTileMode tmy, const SkSamplingOptions&,
|
1181
|
+
const SkMatrix* localMatrix = nullptr) const;
|
1174
1182
|
sk_sp<SkShader> makeShader(SkTileMode tmx, SkTileMode tmy, const SkSamplingOptions& sampling,
|
1175
|
-
const SkMatrix&
|
1176
|
-
|
1177
|
-
|
1178
|
-
|
1179
|
-
sk_sp<SkShader> makeShader(const SkSamplingOptions& sampling,
|
1180
|
-
const SkMatrix* localMatrix = nullptr) const {
|
1181
|
-
return this->makeShader(SkTileMode::kClamp, SkTileMode::kClamp, sampling, localMatrix);
|
1182
|
-
}
|
1183
|
-
|
1183
|
+
const SkMatrix& lm) const;
|
1184
|
+
/** Defaults to clamp in both X and Y. */
|
1185
|
+
sk_sp<SkShader> makeShader(const SkSamplingOptions& sampling, const SkMatrix& lm) const;
|
1184
1186
|
sk_sp<SkShader> makeShader(const SkSamplingOptions& sampling,
|
1185
|
-
const SkMatrix
|
1186
|
-
return this->makeShader(sampling, &localMatrix);
|
1187
|
-
}
|
1187
|
+
const SkMatrix* lm = nullptr) const;
|
1188
1188
|
|
1189
1189
|
/**
|
1190
1190
|
* Returns a new image from the bitmap. If the bitmap is marked immutable, this will
|
@@ -12,6 +12,7 @@
|
|
12
12
|
#include "include/core/SkClipOp.h"
|
13
13
|
#include "include/core/SkColor.h"
|
14
14
|
#include "include/core/SkFontTypes.h"
|
15
|
+
#include "include/core/SkImageFilter.h"
|
15
16
|
#include "include/core/SkImageInfo.h"
|
16
17
|
#include "include/core/SkM44.h"
|
17
18
|
#include "include/core/SkMatrix.h"
|
@@ -26,13 +27,13 @@
|
|
26
27
|
#include "include/core/SkString.h"
|
27
28
|
#include "include/core/SkSurfaceProps.h"
|
28
29
|
#include "include/core/SkTypes.h"
|
29
|
-
#include "include/private/
|
30
|
-
#include "include/private/
|
30
|
+
#include "include/private/base/SkCPUTypes.h"
|
31
|
+
#include "include/private/base/SkDeque.h"
|
31
32
|
|
33
|
+
#include <cstdint>
|
32
34
|
#include <cstring>
|
33
35
|
#include <memory>
|
34
36
|
#include <optional>
|
35
|
-
#include <vector>
|
36
37
|
|
37
38
|
#ifndef SK_SUPPORT_LEGACY_GETTOTALMATRIX
|
38
39
|
#define SK_SUPPORT_LEGACY_GETTOTALMATRIX
|
@@ -44,34 +45,39 @@ class GlyphRunList;
|
|
44
45
|
}
|
45
46
|
|
46
47
|
class AutoLayerForImageFilter;
|
47
|
-
class GrBackendRenderTarget;
|
48
48
|
class GrRecordingContext;
|
49
|
+
|
49
50
|
class SkBaseDevice;
|
50
51
|
class SkBitmap;
|
52
|
+
class SkBlender;
|
51
53
|
class SkData;
|
52
54
|
class SkDrawable;
|
53
|
-
struct SkDrawShadowRec;
|
54
55
|
class SkFont;
|
55
56
|
class SkImage;
|
56
|
-
class
|
57
|
+
class SkMesh;
|
57
58
|
class SkPaintFilterCanvas;
|
58
59
|
class SkPath;
|
59
60
|
class SkPicture;
|
60
61
|
class SkPixmap;
|
61
|
-
class SkRegion;
|
62
62
|
class SkRRect;
|
63
|
-
|
64
|
-
class
|
63
|
+
class SkRegion;
|
64
|
+
class SkShader;
|
65
65
|
class SkSpecialImage;
|
66
66
|
class SkSurface;
|
67
67
|
class SkSurface_Base;
|
68
68
|
class SkTextBlob;
|
69
69
|
class SkVertices;
|
70
|
+
struct SkDrawShadowRec;
|
71
|
+
struct SkRSXform;
|
70
72
|
|
71
73
|
namespace skgpu::graphite { class Recorder; }
|
72
74
|
namespace sktext::gpu { class Slug; }
|
73
75
|
namespace SkRecords { class Draw; }
|
74
76
|
|
77
|
+
#if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) && defined(SK_GANESH)
|
78
|
+
class GrBackendRenderTarget;
|
79
|
+
#endif
|
80
|
+
|
75
81
|
// TODO:
|
76
82
|
// This is not ideal but Chrome is depending on a forward decl of GrSlug here.
|
77
83
|
// It should be removed once Chrome has migrated to sktext::gpu::Slug.
|
@@ -650,7 +656,7 @@ public:
|
|
650
656
|
SkRect bounds suggests but does not define layer size. To clip drawing to
|
651
657
|
a specific rectangle, use clipRect().
|
652
658
|
|
653
|
-
alpha of zero is fully transparent,
|
659
|
+
alpha of zero is fully transparent, 1.0f is fully opaque.
|
654
660
|
|
655
661
|
Call restoreToCount() with returned value to restore this and subsequent saves.
|
656
662
|
|
@@ -660,7 +666,11 @@ public:
|
|
660
666
|
|
661
667
|
example: https://fiddle.skia.org/c/@Canvas_saveLayerAlpha
|
662
668
|
*/
|
663
|
-
int
|
669
|
+
int saveLayerAlphaf(const SkRect* bounds, float alpha);
|
670
|
+
// Helper that accepts an int between 0 and 255, and divides it by 255.0
|
671
|
+
int saveLayerAlpha(const SkRect* bounds, U8CPU alpha) {
|
672
|
+
return this->saveLayerAlphaf(bounds, alpha * (1.0f / 255));
|
673
|
+
}
|
664
674
|
|
665
675
|
/** \enum SkCanvas::SaveLayerFlagsSet
|
666
676
|
SaveLayerFlags provides options that may be used in any combination in SaveLayerRec,
|
@@ -2173,7 +2183,7 @@ public:
|
|
2173
2183
|
|
2174
2184
|
///////////////////////////////////////////////////////////////////////////
|
2175
2185
|
|
2176
|
-
#if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) &&
|
2186
|
+
#if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) && defined(SK_GANESH)
|
2177
2187
|
// These methods exist to support WebView in Android Framework.
|
2178
2188
|
SkIRect topLayerBounds() const;
|
2179
2189
|
GrBackendRenderTarget topLayerBackendRenderTarget() const;
|
@@ -2290,7 +2300,7 @@ protected:
|
|
2290
2300
|
|
2291
2301
|
virtual void onDiscard();
|
2292
2302
|
|
2293
|
-
#if (
|
2303
|
+
#if (defined(SK_GANESH) || defined(SK_GRAPHITE))
|
2294
2304
|
/** Experimental
|
2295
2305
|
*/
|
2296
2306
|
virtual sk_sp<sktext::gpu::Slug> onConvertGlyphRunListToSlug(
|
@@ -2352,6 +2362,13 @@ private:
|
|
2352
2362
|
|
2353
2363
|
// Encapsulate state needed to restore from saveBehind()
|
2354
2364
|
struct BackImage {
|
2365
|
+
// Out of line to avoid including SkSpecialImage.h
|
2366
|
+
BackImage(sk_sp<SkSpecialImage>, SkIPoint);
|
2367
|
+
BackImage(const BackImage&);
|
2368
|
+
BackImage(BackImage&&);
|
2369
|
+
BackImage& operator=(const BackImage&);
|
2370
|
+
~BackImage();
|
2371
|
+
|
2355
2372
|
sk_sp<SkSpecialImage> fImage;
|
2356
2373
|
SkIPoint fLoc;
|
2357
2374
|
};
|
@@ -2406,7 +2423,7 @@ private:
|
|
2406
2423
|
fSurfaceBase = sb;
|
2407
2424
|
}
|
2408
2425
|
friend class SkSurface_Base;
|
2409
|
-
friend class
|
2426
|
+
friend class SkSurface_Ganesh;
|
2410
2427
|
|
2411
2428
|
SkIRect fClipRestrictionRect = SkIRect::MakeEmpty();
|
2412
2429
|
int fClipRestrictionSaveCount = -1;
|
@@ -2440,7 +2457,7 @@ private:
|
|
2440
2457
|
SkCanvas& operator=(SkCanvas&&) = delete;
|
2441
2458
|
SkCanvas& operator=(const SkCanvas&) = delete;
|
2442
2459
|
|
2443
|
-
#if (
|
2460
|
+
#if (defined(SK_GANESH) || defined(SK_GRAPHITE))
|
2444
2461
|
friend class sktext::gpu::Slug;
|
2445
2462
|
/** Experimental
|
2446
2463
|
* Convert a SkTextBlob to a sktext::gpu::Slug using the current canvas state.
|
@@ -15,7 +15,7 @@
|
|
15
15
|
namespace SkSL { struct ShaderCaps; }
|
16
16
|
#endif
|
17
17
|
|
18
|
-
#if defined(
|
18
|
+
#if defined(SK_GRAPHITE)
|
19
19
|
namespace skgpu::graphite { class Caps; }
|
20
20
|
#endif
|
21
21
|
|
@@ -28,7 +28,7 @@ public:
|
|
28
28
|
#endif
|
29
29
|
|
30
30
|
protected:
|
31
|
-
#if defined(
|
31
|
+
#if defined(SK_GRAPHITE)
|
32
32
|
friend class skgpu::graphite::Caps; // for ctor
|
33
33
|
#endif
|
34
34
|
|
@@ -9,9 +9,11 @@
|
|
9
9
|
#define SkColorPriv_DEFINED
|
10
10
|
|
11
11
|
#include "include/core/SkColor.h"
|
12
|
-
#include "include/
|
13
|
-
#include "include/private/SkTPin.h"
|
14
|
-
#include "include/private/SkTo.h"
|
12
|
+
#include "include/private/base/SkMath.h"
|
13
|
+
#include "include/private/base/SkTPin.h"
|
14
|
+
#include "include/private/base/SkTo.h"
|
15
|
+
|
16
|
+
#include <algorithm>
|
15
17
|
|
16
18
|
/** Turn 0..255 into 0..256 by adding 1 at the half-way point. Used to turn a
|
17
19
|
byte into a scale value, so that we can say scale * value >> 8 instead of
|
@@ -146,7 +148,20 @@ static SK_ALWAYS_INLINE uint32_t SkAlphaMulQ(uint32_t c, unsigned scale) {
|
|
146
148
|
}
|
147
149
|
|
148
150
|
static inline SkPMColor SkPMSrcOver(SkPMColor src, SkPMColor dst) {
|
149
|
-
|
151
|
+
uint32_t scale = SkAlpha255To256(255 - SkGetPackedA32(src));
|
152
|
+
|
153
|
+
uint32_t mask = 0xFF00FF;
|
154
|
+
uint32_t rb = (((dst & mask) * scale) >> 8) & mask;
|
155
|
+
uint32_t ag = (((dst >> 8) & mask) * scale) & ~mask;
|
156
|
+
|
157
|
+
rb += (src & mask);
|
158
|
+
ag += (src & ~mask);
|
159
|
+
|
160
|
+
// Color channels (but not alpha) can overflow, so we have to saturate to 0xFF in each lane.
|
161
|
+
return std::min(rb & 0x000001FF, 0x000000FFU) |
|
162
|
+
std::min(ag & 0x0001FF00, 0x0000FF00U) |
|
163
|
+
std::min(rb & 0x01FF0000, 0x00FF0000U) |
|
164
|
+
(ag & 0xFF000000);
|
150
165
|
}
|
151
166
|
|
152
167
|
#endif
|