@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
@@ -9,91 +9,109 @@
|
|
9
9
|
#define SkPngEncoder_DEFINED
|
10
10
|
|
11
11
|
#include "include/core/SkDataTable.h"
|
12
|
-
#include "include/
|
12
|
+
#include "include/core/SkRefCnt.h"
|
13
|
+
#include "include/private/base/SkAPI.h"
|
13
14
|
|
14
|
-
|
15
|
+
// TODO(kjlubick) update clients to directly include this
|
16
|
+
#include "include/encode/SkEncoder.h" // IWYU pragma: keep
|
17
|
+
|
18
|
+
#include <memory>
|
19
|
+
|
20
|
+
class GrDirectContext;
|
21
|
+
class SkData;
|
22
|
+
class SkImage;
|
23
|
+
class SkPixmap;
|
15
24
|
class SkWStream;
|
25
|
+
struct skcms_ICCProfile;
|
26
|
+
|
27
|
+
namespace SkPngEncoder {
|
28
|
+
|
29
|
+
enum class FilterFlag : int {
|
30
|
+
kZero = 0x00,
|
31
|
+
kNone = 0x08,
|
32
|
+
kSub = 0x10,
|
33
|
+
kUp = 0x20,
|
34
|
+
kAvg = 0x40,
|
35
|
+
kPaeth = 0x80,
|
36
|
+
kAll = kNone | kSub | kUp | kAvg | kPaeth,
|
37
|
+
};
|
16
38
|
|
17
|
-
|
18
|
-
public:
|
19
|
-
|
20
|
-
enum class FilterFlag : int {
|
21
|
-
kZero = 0x00,
|
22
|
-
kNone = 0x08,
|
23
|
-
kSub = 0x10,
|
24
|
-
kUp = 0x20,
|
25
|
-
kAvg = 0x40,
|
26
|
-
kPaeth = 0x80,
|
27
|
-
kAll = kNone | kSub | kUp | kAvg | kPaeth,
|
28
|
-
};
|
29
|
-
|
30
|
-
struct Options {
|
31
|
-
/**
|
32
|
-
* Selects which filtering strategies to use.
|
33
|
-
*
|
34
|
-
* If a single filter is chosen, libpng will use that filter for every row.
|
35
|
-
*
|
36
|
-
* If multiple filters are chosen, libpng will use a heuristic to guess which filter
|
37
|
-
* will encode smallest, then apply that filter. This happens on a per row basis,
|
38
|
-
* different rows can use different filters.
|
39
|
-
*
|
40
|
-
* Using a single filter (or less filters) is typically faster. Trying all of the
|
41
|
-
* filters may help minimize the output file size.
|
42
|
-
*
|
43
|
-
* Our default value matches libpng's default.
|
44
|
-
*/
|
45
|
-
FilterFlag fFilterFlags = FilterFlag::kAll;
|
46
|
-
|
47
|
-
/**
|
48
|
-
* Must be in [0, 9] where 9 corresponds to maximal compression. This value is passed
|
49
|
-
* directly to zlib. 0 is a special case to skip zlib entirely, creating dramatically
|
50
|
-
* larger pngs.
|
51
|
-
*
|
52
|
-
* Our default value matches libpng's default.
|
53
|
-
*/
|
54
|
-
int fZLibLevel = 6;
|
55
|
-
|
56
|
-
/**
|
57
|
-
* Represents comments in the tEXt ancillary chunk of the png.
|
58
|
-
* The 2i-th entry is the keyword for the i-th comment,
|
59
|
-
* and the (2i + 1)-th entry is the text for the i-th comment.
|
60
|
-
*/
|
61
|
-
sk_sp<SkDataTable> fComments;
|
62
|
-
};
|
39
|
+
inline FilterFlag operator|(FilterFlag x, FilterFlag y) { return (FilterFlag)((int)x | (int)y); }
|
63
40
|
|
41
|
+
struct Options {
|
64
42
|
/**
|
65
|
-
*
|
66
|
-
*
|
43
|
+
* Selects which filtering strategies to use.
|
44
|
+
*
|
45
|
+
* If a single filter is chosen, libpng will use that filter for every row.
|
46
|
+
*
|
47
|
+
* If multiple filters are chosen, libpng will use a heuristic to guess which filter
|
48
|
+
* will encode smallest, then apply that filter. This happens on a per row basis,
|
49
|
+
* different rows can use different filters.
|
50
|
+
*
|
51
|
+
* Using a single filter (or less filters) is typically faster. Trying all of the
|
52
|
+
* filters may help minimize the output file size.
|
67
53
|
*
|
68
|
-
*
|
54
|
+
* Our default value matches libpng's default.
|
69
55
|
*/
|
70
|
-
|
56
|
+
FilterFlag fFilterFlags = FilterFlag::kAll;
|
71
57
|
|
72
58
|
/**
|
73
|
-
*
|
74
|
-
*
|
59
|
+
* Must be in [0, 9] where 9 corresponds to maximal compression. This value is passed
|
60
|
+
* directly to zlib. 0 is a special case to skip zlib entirely, creating dramatically
|
61
|
+
* larger pngs.
|
75
62
|
*
|
76
|
-
*
|
77
|
-
*
|
78
|
-
* This returns nullptr on an invalid or unsupported |src|.
|
63
|
+
* Our default value matches libpng's default.
|
79
64
|
*/
|
80
|
-
|
81
|
-
const Options& options);
|
82
|
-
|
83
|
-
~SkPngEncoder() override;
|
84
|
-
|
85
|
-
protected:
|
86
|
-
bool onEncodeRows(int numRows) override;
|
65
|
+
int fZLibLevel = 6;
|
87
66
|
|
88
|
-
|
67
|
+
/**
|
68
|
+
* Represents comments in the tEXt ancillary chunk of the png.
|
69
|
+
* The 2i-th entry is the keyword for the i-th comment,
|
70
|
+
* and the (2i + 1)-th entry is the text for the i-th comment.
|
71
|
+
*/
|
72
|
+
sk_sp<SkDataTable> fComments;
|
89
73
|
|
90
|
-
|
91
|
-
|
74
|
+
/**
|
75
|
+
* An optional ICC profile to override the default behavior.
|
76
|
+
*
|
77
|
+
* The default behavior is to generate an ICC profile using a primary matrix and
|
78
|
+
* analytic transfer function. If the color space of |src| cannot be represented
|
79
|
+
* in this way (e.g, it is HLG or PQ), then no profile will be embedded.
|
80
|
+
*/
|
81
|
+
const skcms_ICCProfile* fICCProfile = nullptr;
|
82
|
+
const char* fICCProfileDescription = nullptr;
|
92
83
|
};
|
93
84
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
85
|
+
/**
|
86
|
+
* Encode the |src| pixels to the |dst| stream.
|
87
|
+
* |options| may be used to control the encoding behavior.
|
88
|
+
*
|
89
|
+
* Returns true on success. Returns false on an invalid or unsupported |src|.
|
90
|
+
*/
|
91
|
+
SK_API bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
|
92
|
+
|
93
|
+
/**
|
94
|
+
* Encode the provided image and return the resulting bytes. If the image was created as
|
95
|
+
* a texture-backed image on a GPU context, that |ctx| must be provided so the pixels
|
96
|
+
* can be read before being encoded. For raster-backed images, |ctx| can be nullptr.
|
97
|
+
* |options| may be used to control the encoding behavior.
|
98
|
+
*
|
99
|
+
* Returns nullptr if the pixels could not be read or encoding otherwise fails.
|
100
|
+
*/
|
101
|
+
SK_API sk_sp<SkData> Encode(GrDirectContext* ctx, const SkImage* img, const Options& options);
|
102
|
+
|
103
|
+
/**
|
104
|
+
* Create a png encoder that will encode the |src| pixels to the |dst| stream.
|
105
|
+
* |options| may be used to control the encoding behavior.
|
106
|
+
*
|
107
|
+
* The primary use of this is incremental encoding of the pixels.
|
108
|
+
*
|
109
|
+
* |dst| is unowned but must remain valid for the lifetime of the object.
|
110
|
+
*
|
111
|
+
* This returns nullptr on an invalid or unsupported |src|.
|
112
|
+
*/
|
113
|
+
SK_API std::unique_ptr<SkEncoder> Make(SkWStream* dst, const SkPixmap& src, const Options& options);
|
114
|
+
|
115
|
+
} // namespace SkPngEncoder
|
98
116
|
|
99
117
|
#endif
|
@@ -8,58 +8,85 @@
|
|
8
8
|
#ifndef SkWebpEncoder_DEFINED
|
9
9
|
#define SkWebpEncoder_DEFINED
|
10
10
|
|
11
|
-
#include "include/core/
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
#include "include/core/SkSpan.h" // IWYU pragma: keep
|
12
13
|
#include "include/encode/SkEncoder.h"
|
14
|
+
#include "include/private/base/SkAPI.h"
|
13
15
|
|
16
|
+
class SkPixmap;
|
14
17
|
class SkWStream;
|
18
|
+
class SkData;
|
19
|
+
class GrDirectContext;
|
20
|
+
class SkImage;
|
21
|
+
struct skcms_ICCProfile;
|
15
22
|
|
16
23
|
namespace SkWebpEncoder {
|
17
24
|
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
struct SK_API Options {
|
24
|
-
/**
|
25
|
-
* |fCompression| determines whether we will use webp lossy or lossless compression.
|
26
|
-
*
|
27
|
-
* |fQuality| must be in [0.0f, 100.0f].
|
28
|
-
* If |fCompression| is kLossy, |fQuality| corresponds to the visual quality of the
|
29
|
-
* encoding. Decreasing the quality will result in a smaller encoded image.
|
30
|
-
* If |fCompression| is kLossless, |fQuality| corresponds to the amount of effort
|
31
|
-
* put into the encoding. Lower values will compress faster into larger files,
|
32
|
-
* while larger values will compress slower into smaller files.
|
33
|
-
*
|
34
|
-
* This scheme is designed to match the libwebp API.
|
35
|
-
*/
|
36
|
-
Compression fCompression = Compression::kLossy;
|
37
|
-
float fQuality = 100.0f;
|
38
|
-
};
|
25
|
+
enum class Compression {
|
26
|
+
kLossy,
|
27
|
+
kLossless,
|
28
|
+
};
|
39
29
|
|
30
|
+
struct SK_API Options {
|
40
31
|
/**
|
41
|
-
*
|
42
|
-
*
|
32
|
+
* |fCompression| determines whether we will use webp lossy or lossless compression.
|
33
|
+
*
|
34
|
+
* |fQuality| must be in [0.0f, 100.0f].
|
35
|
+
* If |fCompression| is kLossy, |fQuality| corresponds to the visual quality of the
|
36
|
+
* encoding. Decreasing the quality will result in a smaller encoded image.
|
37
|
+
* If |fCompression| is kLossless, |fQuality| corresponds to the amount of effort
|
38
|
+
* put into the encoding. Lower values will compress faster into larger files,
|
39
|
+
* while larger values will compress slower into smaller files.
|
43
40
|
*
|
44
|
-
*
|
41
|
+
* This scheme is designed to match the libwebp API.
|
45
42
|
*/
|
46
|
-
|
43
|
+
Compression fCompression = Compression::kLossy;
|
44
|
+
float fQuality = 100.0f;
|
47
45
|
|
48
46
|
/**
|
49
|
-
*
|
50
|
-
* |options| may be used to control the encoding behavior.
|
51
|
-
*
|
52
|
-
* The size of the first frame will be used as the canvas size. If any other frame does
|
53
|
-
* not match the canvas size, this is an error.
|
54
|
-
*
|
55
|
-
* Returns true on success. Returns false on an invalid or unsupported |src|.
|
47
|
+
* An optional ICC profile to override the default behavior.
|
56
48
|
*
|
57
|
-
*
|
58
|
-
*
|
49
|
+
* The default behavior is to generate an ICC profile using a primary matrix and
|
50
|
+
* analytic transfer function. If the color space of |src| cannot be represented
|
51
|
+
* in this way (e.g, it is HLG or PQ), then no profile will be embedded.
|
59
52
|
*/
|
60
|
-
|
61
|
-
|
62
|
-
|
53
|
+
const skcms_ICCProfile* fICCProfile = nullptr;
|
54
|
+
const char* fICCProfileDescription = nullptr;
|
55
|
+
};
|
56
|
+
|
57
|
+
/**
|
58
|
+
* Encode the |src| pixels to the |dst| stream.
|
59
|
+
* |options| may be used to control the encoding behavior.
|
60
|
+
*
|
61
|
+
* Returns true on success. Returns false on an invalid or unsupported |src|.
|
62
|
+
*/
|
63
|
+
SK_API bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
|
64
|
+
|
65
|
+
/**
|
66
|
+
* Encode the provided image and return the resulting bytes. If the image was created as
|
67
|
+
* a texture-backed image on a GPU context, that |ctx| must be provided so the pixels
|
68
|
+
* can be read before being encoded. For raster-backed images, |ctx| can be nullptr.
|
69
|
+
* |options| may be used to control the encoding behavior.
|
70
|
+
*
|
71
|
+
* Returns nullptr if the pixels could not be read or encoding otherwise fails.
|
72
|
+
*/
|
73
|
+
SK_API sk_sp<SkData> Encode(GrDirectContext* ctx, const SkImage* img, const Options& options);
|
74
|
+
|
75
|
+
/**
|
76
|
+
* Encode the |src| frames to the |dst| stream.
|
77
|
+
* |options| may be used to control the encoding behavior.
|
78
|
+
*
|
79
|
+
* The size of the first frame will be used as the canvas size. If any other frame does
|
80
|
+
* not match the canvas size, this is an error.
|
81
|
+
*
|
82
|
+
* Returns true on success. Returns false on an invalid or unsupported |src|.
|
83
|
+
*
|
84
|
+
* Note: libwebp API also supports set background color, loop limit and customize
|
85
|
+
* lossy/lossless for each frame. These could be added later as needed.
|
86
|
+
*/
|
87
|
+
SK_API bool EncodeAnimated(SkWStream* dst,
|
88
|
+
SkSpan<const SkEncoder::Frame> src,
|
89
|
+
const Options& options);
|
63
90
|
} // namespace SkWebpEncoder
|
64
91
|
|
65
92
|
#endif
|
@@ -26,16 +26,29 @@ enum class BackendApi : unsigned {
|
|
26
26
|
kMock,
|
27
27
|
};
|
28
28
|
|
29
|
+
/** Indicates whether an allocation should count against a cache budget. */
|
30
|
+
enum class Budgeted : bool {
|
31
|
+
kNo = false,
|
32
|
+
kYes = true,
|
33
|
+
};
|
34
|
+
|
29
35
|
/**
|
30
36
|
* Value passed into various callbacks to tell the client the result of operations connected to a
|
31
37
|
* specific callback. The actual interpretation of kFailed and kSuccess are dependent on the
|
32
38
|
* specific callbacks and are documented with the callback itself.
|
33
39
|
*/
|
34
40
|
enum class CallbackResult : bool {
|
35
|
-
kFailed =
|
41
|
+
kFailed = false,
|
36
42
|
kSuccess = true,
|
37
43
|
};
|
38
44
|
|
45
|
+
/**
|
46
|
+
* Is the texture mipmapped or not
|
47
|
+
*/
|
48
|
+
enum class Mipmapped : bool {
|
49
|
+
kNo = false,
|
50
|
+
kYes = true,
|
51
|
+
};
|
39
52
|
|
40
53
|
/**
|
41
54
|
* Is the data protected on the GPU or not.
|
@@ -45,6 +58,15 @@ enum class Protected : bool {
|
|
45
58
|
kYes = true,
|
46
59
|
};
|
47
60
|
|
61
|
+
/**
|
62
|
+
* Is a texture renderable or not
|
63
|
+
*/
|
64
|
+
enum class Renderable : bool {
|
65
|
+
kNo = false,
|
66
|
+
kYes = true,
|
67
|
+
};
|
68
|
+
|
48
69
|
} // namespace skgpu
|
49
70
|
|
71
|
+
|
50
72
|
#endif // skgpu_GpuTypes_DEFINED
|
@@ -35,6 +35,7 @@
|
|
35
35
|
class GrVkImageLayout;
|
36
36
|
class GrGLTextureParameters;
|
37
37
|
class GrColorFormatDesc;
|
38
|
+
enum class SkTextureCompressionType;
|
38
39
|
|
39
40
|
namespace skgpu {
|
40
41
|
class MutableTextureStateRef;
|
@@ -57,7 +58,7 @@ class GrD3DResourceState;
|
|
57
58
|
class SkString;
|
58
59
|
#endif
|
59
60
|
|
60
|
-
#if !
|
61
|
+
#if !defined(SK_GANESH)
|
61
62
|
|
62
63
|
// SkSurfaceCharacterization always needs a minimal version of this
|
63
64
|
class SK_API GrBackendFormat {
|
@@ -124,7 +125,8 @@ public:
|
|
124
125
|
}
|
125
126
|
#endif
|
126
127
|
|
127
|
-
static GrBackendFormat MakeMock(GrColorType colorType,
|
128
|
+
static GrBackendFormat MakeMock(GrColorType colorType,
|
129
|
+
SkTextureCompressionType compression,
|
128
130
|
bool isStencilFormat = false);
|
129
131
|
|
130
132
|
bool operator==(const GrBackendFormat& that) const;
|
@@ -191,7 +193,7 @@ public:
|
|
191
193
|
* kUnknown, the compression type is not kNone, or this is a mock stencil format.
|
192
194
|
*/
|
193
195
|
GrColorType asMockColorType() const;
|
194
|
-
|
196
|
+
SkTextureCompressionType asMockCompressionType() const;
|
195
197
|
bool isMockStencilFormat() const;
|
196
198
|
|
197
199
|
// If possible, copies the GrBackendFormat and forces the texture type to be Texture2D. If the
|
@@ -228,7 +230,7 @@ private:
|
|
228
230
|
GrBackendFormat(DXGI_FORMAT dxgiFormat);
|
229
231
|
#endif
|
230
232
|
|
231
|
-
GrBackendFormat(GrColorType,
|
233
|
+
GrBackendFormat(GrColorType, SkTextureCompressionType, bool isStencilFormat);
|
232
234
|
|
233
235
|
#ifdef SK_DEBUG
|
234
236
|
bool validateMock() const;
|
@@ -259,9 +261,9 @@ private:
|
|
259
261
|
DXGI_FORMAT fDxgiFormat;
|
260
262
|
#endif
|
261
263
|
struct {
|
262
|
-
GrColorType
|
263
|
-
|
264
|
-
bool
|
264
|
+
GrColorType fColorType;
|
265
|
+
SkTextureCompressionType fCompressionType;
|
266
|
+
bool fIsStencilFormat;
|
265
267
|
} fMock;
|
266
268
|
};
|
267
269
|
GrTextureType fTextureType = GrTextureType::kNone;
|
@@ -20,7 +20,7 @@
|
|
20
20
|
|
21
21
|
class SkExecutor;
|
22
22
|
|
23
|
-
#if
|
23
|
+
#if defined(SK_GANESH)
|
24
24
|
struct SK_API GrContextOptions {
|
25
25
|
enum class Enable {
|
26
26
|
/** Forces an option to be disabled. */
|
@@ -80,8 +80,9 @@ struct SK_API GrContextOptions {
|
|
80
80
|
|
81
81
|
/**
|
82
82
|
* Controls whether we check for GL errors after functions that allocate resources (e.g.
|
83
|
-
* glTexImage2D),
|
84
|
-
*
|
83
|
+
* glTexImage2D), at the end of a GPU submission, or checking framebuffer completeness. The
|
84
|
+
* results of shader compilation and program linking are always checked, regardless of this
|
85
|
+
* option. Ignored on backends other than GL.
|
85
86
|
*/
|
86
87
|
Enable fSkipGLErrorChecks = Enable::kDefault;
|
87
88
|
|
@@ -244,6 +245,12 @@ struct SK_API GrContextOptions {
|
|
244
245
|
*/
|
245
246
|
bool fSuppressMipmapSupport = false;
|
246
247
|
|
248
|
+
/**
|
249
|
+
* If true, the TessellationPathRenderer will not be used for path rendering.
|
250
|
+
* If false, will fallback to any driver workarounds, if set.
|
251
|
+
*/
|
252
|
+
bool fDisableTessellationPathRenderer = false;
|
253
|
+
|
247
254
|
/**
|
248
255
|
* If true, and if supported, enables hardware tessellation in the caps.
|
249
256
|
* DEPRECATED: This value is ignored; experimental hardware tessellation is always disabled.
|
@@ -254,13 +261,7 @@ struct SK_API GrContextOptions {
|
|
254
261
|
* If true, then add 1 pixel padding to all glyph masks in the atlas to support bi-lerp
|
255
262
|
* rendering of all glyphs. This must be set to true to use Slugs.
|
256
263
|
*/
|
257
|
-
#if defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG) || \
|
258
|
-
defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_SERIALIZE) || \
|
259
|
-
defined(SK_EXPERIMENTAL_SIMULATE_DRAWGLYPHRUNLIST_WITH_SLUG_STRIKE_SERIALIZE)
|
260
|
-
bool fSupportBilerpFromGlyphAtlas = true;
|
261
|
-
#else
|
262
264
|
bool fSupportBilerpFromGlyphAtlas = false;
|
263
|
-
#endif
|
264
265
|
|
265
266
|
/**
|
266
267
|
* Uses a reduced variety of shaders. May perform less optimally in steady state but can reduce
|
@@ -273,6 +274,24 @@ struct SK_API GrContextOptions {
|
|
273
274
|
*/
|
274
275
|
bool fAllowMSAAOnNewIntel = false;
|
275
276
|
|
277
|
+
/**
|
278
|
+
* Currently on ARM Android we disable the use of GL TexStorage because of memory regressions.
|
279
|
+
* However, some clients may still want to use TexStorage. For example, TexStorage support is
|
280
|
+
* required for creating protected textures.
|
281
|
+
*
|
282
|
+
* This flag has no impact on non GL backends.
|
283
|
+
*/
|
284
|
+
bool fAlwaysUseTexStorageWhenAvailable = false;
|
285
|
+
|
286
|
+
/**
|
287
|
+
* Optional callback that can be passed into the GrDirectContext which will be called when the
|
288
|
+
* GrDirectContext is about to be destroyed. When this call is made, it will be safe for the
|
289
|
+
* client to delete the GPU backend context that is backing the GrDirectContext. The
|
290
|
+
* GrDirectContextDestroyedContext will be passed back to the client in the callback.
|
291
|
+
*/
|
292
|
+
GrDirectContextDestroyedContext fContextDeleteContext = nullptr;
|
293
|
+
GrDirectContextDestroyedProc fContextDeleteProc = nullptr;
|
294
|
+
|
276
295
|
#if GR_TEST_UTILS
|
277
296
|
/**
|
278
297
|
* Private options that are only meant for testing within Skia's tools.
|
@@ -10,9 +10,10 @@
|
|
10
10
|
|
11
11
|
#include "include/core/SkRefCnt.h"
|
12
12
|
|
13
|
-
#if
|
13
|
+
#if defined(SK_GANESH)
|
14
14
|
|
15
15
|
#include "include/core/SkImageInfo.h"
|
16
|
+
#include "include/gpu/GpuTypes.h"
|
16
17
|
#include "include/gpu/GrContextOptions.h"
|
17
18
|
#include "include/gpu/GrTypes.h"
|
18
19
|
|
@@ -25,6 +26,7 @@ class GrThreadSafeCache;
|
|
25
26
|
class GrThreadSafePipelineBuilder;
|
26
27
|
class SkSurfaceCharacterization;
|
27
28
|
class SkSurfaceProps;
|
29
|
+
enum class SkTextureCompressionType;
|
28
30
|
|
29
31
|
namespace sktext::gpu { class TextBlobRedrawCoordinator; }
|
30
32
|
|
@@ -107,13 +109,13 @@ public:
|
|
107
109
|
GrBackendFormat defaultBackendFormat(SkColorType ct, GrRenderable renderable) const;
|
108
110
|
|
109
111
|
/**
|
110
|
-
* Retrieve the GrBackendFormat for a given
|
112
|
+
* Retrieve the GrBackendFormat for a given SkTextureCompressionType. This is
|
111
113
|
* guaranteed to match the backend format used by the following
|
112
114
|
* createCompressedBackendTexture methods that take a CompressionType.
|
113
115
|
*
|
114
116
|
* The caller should check that the returned format is valid.
|
115
117
|
*/
|
116
|
-
GrBackendFormat compressedBackendFormat(
|
118
|
+
GrBackendFormat compressedBackendFormat(SkTextureCompressionType c) const;
|
117
119
|
|
118
120
|
/**
|
119
121
|
* Gets the maximum supported sample count for a color type. 1 is returned if only non-MSAA
|
@@ -160,7 +162,7 @@ private:
|
|
160
162
|
std::atomic<bool> fAbandoned{false};
|
161
163
|
};
|
162
164
|
|
163
|
-
#else // !
|
165
|
+
#else // !defined(SK_GANESH)
|
164
166
|
class SK_API GrContextThreadSafeProxy final : public SkNVRefCnt<GrContextThreadSafeProxy> {};
|
165
167
|
#endif
|
166
168
|
|