@shopify/react-native-skia 0.1.192 → 0.1.193
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/android/CMakeLists.txt +1 -1
- package/android/build.gradle +1 -0
- package/android/cpp/jni/JniPlatformContext.cpp +1 -1
- 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/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/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,46 +8,52 @@
|
|
|
8
8
|
#ifndef GrDirectContext_DEFINED
|
|
9
9
|
#define GrDirectContext_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkColor.h"
|
|
12
|
+
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/core/SkTypes.h"
|
|
14
|
+
#include "include/gpu/GpuTypes.h"
|
|
15
|
+
#include "include/gpu/GrContextOptions.h"
|
|
11
16
|
#include "include/gpu/GrRecordingContext.h"
|
|
17
|
+
#include "include/gpu/GrTypes.h"
|
|
12
18
|
|
|
13
|
-
#include
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
#include
|
|
19
|
+
#include <chrono>
|
|
20
|
+
#include <cstddef>
|
|
21
|
+
#include <cstdint>
|
|
22
|
+
#include <memory>
|
|
23
|
+
#include <string_view>
|
|
17
24
|
|
|
18
25
|
class GrAtlasManager;
|
|
19
26
|
class GrBackendSemaphore;
|
|
27
|
+
class GrBackendFormat;
|
|
28
|
+
class GrBackendTexture;
|
|
29
|
+
class GrBackendRenderTarget;
|
|
20
30
|
class GrClientMappedBufferManager;
|
|
21
|
-
class GrDirectContextPriv;
|
|
22
31
|
class GrContextThreadSafeProxy;
|
|
23
|
-
|
|
24
|
-
class GrFragmentProcessor;
|
|
32
|
+
class GrDirectContextPriv;
|
|
25
33
|
class GrGpu;
|
|
26
|
-
struct GrGLInterface;
|
|
27
|
-
struct GrMtlBackendContext;
|
|
28
|
-
struct GrMockOptions;
|
|
29
|
-
class GrPath;
|
|
30
34
|
class GrResourceCache;
|
|
31
35
|
class GrResourceProvider;
|
|
32
|
-
class
|
|
33
|
-
class GrTextureProxy;
|
|
34
|
-
struct GrVkBackendContext;
|
|
35
|
-
|
|
36
|
+
class SkData;
|
|
36
37
|
class SkImage;
|
|
37
|
-
class
|
|
38
|
-
class SkSurfaceCharacterization;
|
|
39
|
-
class SkSurfaceProps;
|
|
38
|
+
class SkPixmap;
|
|
40
39
|
class SkTaskGroup;
|
|
41
40
|
class SkTraceMemoryDump;
|
|
41
|
+
enum SkColorType : int;
|
|
42
|
+
enum class SkTextureCompressionType;
|
|
43
|
+
struct GrGLInterface;
|
|
44
|
+
struct GrMockOptions;
|
|
45
|
+
struct GrVkBackendContext; // IWYU pragma: keep
|
|
46
|
+
struct GrD3DBackendContext; // IWYU pragma: keep
|
|
47
|
+
struct GrMtlBackendContext; // IWYU pragma: keep
|
|
42
48
|
|
|
43
49
|
namespace skgpu {
|
|
44
|
-
class
|
|
45
|
-
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
namespace sktext::gpu {
|
|
49
|
-
class StrikeCache;
|
|
50
|
+
class MutableTextureState;
|
|
51
|
+
#if !defined(SK_ENABLE_OPTIMIZE_SIZE)
|
|
52
|
+
namespace ganesh { class SmallPathAtlasMgr; }
|
|
53
|
+
#endif
|
|
50
54
|
}
|
|
55
|
+
namespace sktext { namespace gpu { class StrikeCache; } }
|
|
56
|
+
namespace wgpu { class Device; } // IWYU pragma: keep
|
|
51
57
|
|
|
52
58
|
class SK_API GrDirectContext : public GrRecordingContext {
|
|
53
59
|
public:
|
|
@@ -387,7 +393,24 @@ public:
|
|
|
387
393
|
*/
|
|
388
394
|
GrSemaphoresSubmitted flush(const GrFlushInfo& info);
|
|
389
395
|
|
|
390
|
-
void flush() { this->flush(
|
|
396
|
+
void flush() { this->flush(GrFlushInfo()); }
|
|
397
|
+
|
|
398
|
+
/** Flushes any pending uses of texture-backed images in the GPU backend. If the image is not
|
|
399
|
+
* texture-backed (including promise texture images) or if the GrDirectContext does not
|
|
400
|
+
* have the same context ID as the context backing the image then this is a no-op.
|
|
401
|
+
* If the image was not used in any non-culled draws in the current queue of work for the
|
|
402
|
+
* passed GrDirectContext then this is a no-op unless the GrFlushInfo contains semaphores or
|
|
403
|
+
* a finish proc. Those are respected even when the image has not been used.
|
|
404
|
+
* @param image the non-null image to flush.
|
|
405
|
+
* @param info flush options
|
|
406
|
+
*/
|
|
407
|
+
GrSemaphoresSubmitted flush(sk_sp<const SkImage> image, const GrFlushInfo& info);
|
|
408
|
+
void flush(sk_sp<const SkImage> image);
|
|
409
|
+
|
|
410
|
+
/** Version of flush() that uses a default GrFlushInfo. Also submits the flushed work to the
|
|
411
|
+
GPU.
|
|
412
|
+
*/
|
|
413
|
+
void flushAndSubmit(sk_sp<const SkImage> image);
|
|
391
414
|
|
|
392
415
|
/**
|
|
393
416
|
* Submit outstanding work to the gpu from all previously un-submitted flushes. The return
|
|
@@ -548,10 +571,7 @@ public:
|
|
|
548
571
|
GrProtected isProtected,
|
|
549
572
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
550
573
|
GrGpuFinishedContext finishedContext = nullptr,
|
|
551
|
-
std::string_view label = {})
|
|
552
|
-
return this->createBackendTexture(&srcData, 1, textureOrigin, renderable, isProtected,
|
|
553
|
-
finishedProc, finishedContext, label);
|
|
554
|
-
}
|
|
574
|
+
std::string_view label = {});
|
|
555
575
|
|
|
556
576
|
// Deprecated versions that do not take origin and assume top-left.
|
|
557
577
|
GrBackendTexture createBackendTexture(const SkPixmap srcData[],
|
|
@@ -560,30 +580,14 @@ public:
|
|
|
560
580
|
GrProtected isProtected,
|
|
561
581
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
562
582
|
GrGpuFinishedContext finishedContext = nullptr,
|
|
563
|
-
std::string_view label = {})
|
|
564
|
-
|
|
565
|
-
numLevels,
|
|
566
|
-
kTopLeft_GrSurfaceOrigin,
|
|
567
|
-
renderable,
|
|
568
|
-
isProtected,
|
|
569
|
-
finishedProc,
|
|
570
|
-
finishedContext,
|
|
571
|
-
label);
|
|
572
|
-
}
|
|
583
|
+
std::string_view label = {});
|
|
584
|
+
|
|
573
585
|
GrBackendTexture createBackendTexture(const SkPixmap& srcData,
|
|
574
586
|
GrRenderable renderable,
|
|
575
587
|
GrProtected isProtected,
|
|
576
588
|
GrGpuFinishedProc finishedProc = nullptr,
|
|
577
589
|
GrGpuFinishedContext finishedContext = nullptr,
|
|
578
|
-
std::string_view label = {})
|
|
579
|
-
return this->createBackendTexture(&srcData,
|
|
580
|
-
1,
|
|
581
|
-
renderable,
|
|
582
|
-
isProtected,
|
|
583
|
-
finishedProc,
|
|
584
|
-
finishedContext,
|
|
585
|
-
label);
|
|
586
|
-
}
|
|
590
|
+
std::string_view label = {});
|
|
587
591
|
|
|
588
592
|
/**
|
|
589
593
|
* If possible, updates a backend texture to be filled to a particular color. The client should
|
|
@@ -662,17 +666,10 @@ public:
|
|
|
662
666
|
const SkPixmap srcData[],
|
|
663
667
|
int numLevels,
|
|
664
668
|
GrGpuFinishedProc finishedProc,
|
|
665
|
-
GrGpuFinishedContext finishedContext)
|
|
666
|
-
return this->updateBackendTexture(texture,
|
|
667
|
-
srcData,
|
|
668
|
-
numLevels,
|
|
669
|
-
kTopLeft_GrSurfaceOrigin,
|
|
670
|
-
finishedProc,
|
|
671
|
-
finishedContext);
|
|
672
|
-
}
|
|
669
|
+
GrGpuFinishedContext finishedContext);
|
|
673
670
|
|
|
674
671
|
/**
|
|
675
|
-
* Retrieve the GrBackendFormat for a given
|
|
672
|
+
* Retrieve the GrBackendFormat for a given SkTextureCompressionType. This is
|
|
676
673
|
* guaranteed to match the backend format used by the following
|
|
677
674
|
* createCompressedBackendTexture methods that take a CompressionType.
|
|
678
675
|
*
|
|
@@ -698,7 +695,7 @@ public:
|
|
|
698
695
|
GrGpuFinishedContext finishedContext = nullptr);
|
|
699
696
|
|
|
700
697
|
GrBackendTexture createCompressedBackendTexture(int width, int height,
|
|
701
|
-
|
|
698
|
+
SkTextureCompressionType,
|
|
702
699
|
const SkColor4f& color,
|
|
703
700
|
GrMipmapped,
|
|
704
701
|
GrProtected = GrProtected::kNo,
|
|
@@ -726,7 +723,7 @@ public:
|
|
|
726
723
|
GrGpuFinishedContext finishedContext = nullptr);
|
|
727
724
|
|
|
728
725
|
GrBackendTexture createCompressedBackendTexture(int width, int height,
|
|
729
|
-
|
|
726
|
+
SkTextureCompressionType,
|
|
730
727
|
const void* data, size_t dataSize,
|
|
731
728
|
GrMipmapped,
|
|
732
729
|
GrProtected = GrProtected::kNo,
|
|
@@ -850,7 +847,9 @@ protected:
|
|
|
850
847
|
bool init() override;
|
|
851
848
|
|
|
852
849
|
GrAtlasManager* onGetAtlasManager() { return fAtlasManager.get(); }
|
|
853
|
-
|
|
850
|
+
#if !defined(SK_ENABLE_OPTIMIZE_SIZE)
|
|
851
|
+
skgpu::ganesh::SmallPathAtlasMgr* onGetSmallPathAtlasMgr();
|
|
852
|
+
#endif
|
|
854
853
|
|
|
855
854
|
GrDirectContext* asDirectContext() override { return this; }
|
|
856
855
|
|
|
@@ -868,6 +867,28 @@ private:
|
|
|
868
867
|
// bool is used for this signal.
|
|
869
868
|
void syncAllOutstandingGpuWork(bool shouldExecuteWhileAbandoned);
|
|
870
869
|
|
|
870
|
+
// This delete callback needs to be the first thing on the GrDirectContext so that it is the
|
|
871
|
+
// last thing destroyed. The callback may signal the client to clean up things that may need
|
|
872
|
+
// to survive the lifetime of some of the other objects on the GrDirectCotnext. So make sure
|
|
873
|
+
// we don't call it until all else has been destroyed.
|
|
874
|
+
class DeleteCallbackHelper {
|
|
875
|
+
public:
|
|
876
|
+
DeleteCallbackHelper(GrDirectContextDestroyedContext context,
|
|
877
|
+
GrDirectContextDestroyedProc proc)
|
|
878
|
+
: fContext(context), fProc(proc) {}
|
|
879
|
+
|
|
880
|
+
~DeleteCallbackHelper() {
|
|
881
|
+
if (fProc) {
|
|
882
|
+
fProc(fContext);
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
|
|
886
|
+
private:
|
|
887
|
+
GrDirectContextDestroyedContext fContext;
|
|
888
|
+
GrDirectContextDestroyedProc fProc;
|
|
889
|
+
};
|
|
890
|
+
std::unique_ptr<DeleteCallbackHelper> fDeleteCallbackHelper;
|
|
891
|
+
|
|
871
892
|
const DirectContextID fDirectContextID;
|
|
872
893
|
// fTaskGroup must appear before anything that uses it (e.g. fGpu), so that it is destroyed
|
|
873
894
|
// after all of its users. Clients of fTaskGroup will generally want to ensure that they call
|
|
@@ -894,11 +915,11 @@ private:
|
|
|
894
915
|
std::unique_ptr<GrClientMappedBufferManager> fMappedBufferManager;
|
|
895
916
|
std::unique_ptr<GrAtlasManager> fAtlasManager;
|
|
896
917
|
|
|
897
|
-
|
|
918
|
+
#if !defined(SK_ENABLE_OPTIMIZE_SIZE)
|
|
919
|
+
std::unique_ptr<skgpu::ganesh::SmallPathAtlasMgr> fSmallPathAtlasMgr;
|
|
920
|
+
#endif
|
|
898
921
|
|
|
899
922
|
friend class GrDirectContextPriv;
|
|
900
|
-
|
|
901
|
-
using INHERITED = GrRecordingContext;
|
|
902
923
|
};
|
|
903
924
|
|
|
904
925
|
|
|
@@ -13,7 +13,8 @@
|
|
|
13
13
|
#ifdef SK_GPU_WORKAROUNDS_HEADER
|
|
14
14
|
#include SK_GPU_WORKAROUNDS_HEADER
|
|
15
15
|
#else
|
|
16
|
-
// To regenerate this file, set gn arg "skia_generate_workarounds = true"
|
|
16
|
+
// To regenerate this file, set gn arg "skia_generate_workarounds = true"
|
|
17
|
+
// or invoke `bazel run //tools:generate_workarounds`
|
|
17
18
|
// This is not rebuilt by default to avoid embedders having to have extra
|
|
18
19
|
// build steps.
|
|
19
20
|
#include "include/gpu/GrDriverBugWorkaroundsAutogen.h"
|
|
@@ -9,7 +9,8 @@
|
|
|
9
9
|
#define GrRecordingContext_DEFINED
|
|
10
10
|
|
|
11
11
|
#include "include/core/SkRefCnt.h"
|
|
12
|
-
#include "include/
|
|
12
|
+
#include "include/core/SkTypes.h"
|
|
13
|
+
#include "include/private/base/SkTArray.h"
|
|
13
14
|
#include "include/private/gpu/ganesh/GrImageContext.h"
|
|
14
15
|
|
|
15
16
|
#if GR_GPU_STATS && GR_TEST_UTILS
|
|
@@ -190,7 +191,7 @@ protected:
|
|
|
190
191
|
// of the programInfos matches the intended use. For example, in DDL-record mode it
|
|
191
192
|
// is known that all the programInfos will have been allocated in an arena with the
|
|
192
193
|
// same lifetime at the DDL itself.
|
|
193
|
-
virtual void detachProgramData(
|
|
194
|
+
virtual void detachProgramData(skia_private::TArray<ProgramData>*) {}
|
|
194
195
|
|
|
195
196
|
sktext::gpu::TextBlobRedrawCoordinator* getTextBlobRedrawCoordinator();
|
|
196
197
|
const sktext::gpu::TextBlobRedrawCoordinator* getTextBlobRedrawCoordinator() const;
|
|
@@ -223,7 +224,8 @@ protected:
|
|
|
223
224
|
|
|
224
225
|
#if GR_TEST_UTILS
|
|
225
226
|
void dump(SkString* out) const;
|
|
226
|
-
void dumpKeyValuePairs(
|
|
227
|
+
void dumpKeyValuePairs(skia_private::TArray<SkString>* keys,
|
|
228
|
+
skia_private::TArray<double>* values) const;
|
|
227
229
|
#endif
|
|
228
230
|
|
|
229
231
|
private:
|
|
@@ -236,14 +238,16 @@ protected:
|
|
|
236
238
|
|
|
237
239
|
#if GR_TEST_UTILS
|
|
238
240
|
void dump(SkString*) const {}
|
|
239
|
-
void dumpKeyValuePairs(
|
|
241
|
+
void dumpKeyValuePairs(skia_private::TArray<SkString>* keys,
|
|
242
|
+
skia_private::TArray<double>* values) const {}
|
|
240
243
|
#endif
|
|
241
244
|
#endif // GR_GPU_STATS
|
|
242
245
|
} fStats;
|
|
243
246
|
|
|
244
247
|
#if GR_GPU_STATS && GR_TEST_UTILS
|
|
245
248
|
struct DMSAAStats {
|
|
246
|
-
void dumpKeyValuePairs(
|
|
249
|
+
void dumpKeyValuePairs(skia_private::TArray<SkString>* keys,
|
|
250
|
+
skia_private::TArray<double>* values) const;
|
|
247
251
|
void dump() const;
|
|
248
252
|
void merge(const DMSAAStats&);
|
|
249
253
|
int fNumRenderPasses = 0;
|
|
@@ -8,13 +8,18 @@
|
|
|
8
8
|
#ifndef GrTypes_DEFINED
|
|
9
9
|
#define GrTypes_DEFINED
|
|
10
10
|
|
|
11
|
-
#include "include/core/SkMath.h"
|
|
12
11
|
#include "include/core/SkTypes.h"
|
|
13
|
-
#include "include/
|
|
12
|
+
#include "include/private/base/SkTo.h" // IWYU pragma: keep
|
|
14
13
|
|
|
14
|
+
#include <cstddef>
|
|
15
|
+
#include <cstdint>
|
|
15
16
|
class GrBackendSemaphore;
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
|
|
18
|
+
namespace skgpu {
|
|
19
|
+
enum class Mipmapped : bool;
|
|
20
|
+
enum class Protected : bool;
|
|
21
|
+
enum class Renderable : bool;
|
|
22
|
+
}
|
|
18
23
|
|
|
19
24
|
////////////////////////////////////////////////////////////////////////////////
|
|
20
25
|
|
|
@@ -122,28 +127,20 @@ static constexpr GrBackendApi kMock_GrBackend = GrBackendApi::kMock;
|
|
|
122
127
|
/**
|
|
123
128
|
* Used to say whether a texture has mip levels allocated or not.
|
|
124
129
|
*/
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
/** Deprecated legacy alias of GrMipmapped. */
|
|
130
|
-
using GrMipMapped = GrMipmapped;
|
|
130
|
+
/** Deprecated legacy alias of skgpu::Mipmapped. */
|
|
131
|
+
using GrMipmapped = skgpu::Mipmapped;
|
|
132
|
+
/** Deprecated legacy alias of skgpu::Mipmapped. */
|
|
133
|
+
using GrMipMapped = skgpu::Mipmapped;
|
|
131
134
|
|
|
132
135
|
/*
|
|
133
136
|
* Can a GrBackendObject be rendered to?
|
|
134
137
|
*/
|
|
135
|
-
|
|
136
|
-
kNo = false,
|
|
137
|
-
kYes = true
|
|
138
|
-
};
|
|
138
|
+
using GrRenderable = skgpu::Renderable;
|
|
139
139
|
|
|
140
140
|
/*
|
|
141
141
|
* Used to say whether texture is backed by protected memory.
|
|
142
142
|
*/
|
|
143
|
-
|
|
144
|
-
kNo = false,
|
|
145
|
-
kYes = true
|
|
146
|
-
};
|
|
143
|
+
using GrProtected = skgpu::Protected;
|
|
147
144
|
|
|
148
145
|
///////////////////////////////////////////////////////////////////////////////
|
|
149
146
|
|
|
@@ -188,6 +185,9 @@ typedef void (*GrGpuFinishedProc)(GrGpuFinishedContext finishedContext);
|
|
|
188
185
|
typedef void* GrGpuSubmittedContext;
|
|
189
186
|
typedef void (*GrGpuSubmittedProc)(GrGpuSubmittedContext submittedContext, bool success);
|
|
190
187
|
|
|
188
|
+
typedef void* GrDirectContextDestroyedContext;
|
|
189
|
+
typedef void (*GrDirectContextDestroyedProc)(GrDirectContextDestroyedContext destroyedContext);
|
|
190
|
+
|
|
191
191
|
/**
|
|
192
192
|
* Struct to supply options to flush calls.
|
|
193
193
|
*
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
// prepared to rename those identifiers.
|
|
23
23
|
|
|
24
24
|
#include "include/core/SkRefCnt.h"
|
|
25
|
-
#include "include/gpu/
|
|
25
|
+
#include "include/gpu/GpuTypes.h"
|
|
26
26
|
#include <d3d12.h>
|
|
27
27
|
#include <dxgi1_4.h>
|
|
28
28
|
|
|
@@ -184,7 +184,7 @@ struct GrD3DTextureResourceInfo {
|
|
|
184
184
|
uint32_t fSampleCount = 1;
|
|
185
185
|
uint32_t fLevelCount = 0;
|
|
186
186
|
unsigned int fSampleQualityPattern = DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN;
|
|
187
|
-
|
|
187
|
+
skgpu::Protected fProtected = skgpu::Protected::kNo;
|
|
188
188
|
|
|
189
189
|
GrD3DTextureResourceInfo() = default;
|
|
190
190
|
|
|
@@ -195,7 +195,7 @@ struct GrD3DTextureResourceInfo {
|
|
|
195
195
|
uint32_t sampleCount,
|
|
196
196
|
uint32_t levelCount,
|
|
197
197
|
unsigned int sampleQualityLevel,
|
|
198
|
-
|
|
198
|
+
skgpu::Protected isProtected = skgpu::Protected::kNo)
|
|
199
199
|
: fResource(resource)
|
|
200
200
|
, fAlloc(alloc)
|
|
201
201
|
, fResourceState(resourceState)
|
|
@@ -239,7 +239,7 @@ struct GrD3DFenceInfo {
|
|
|
239
239
|
struct GrD3DSurfaceInfo {
|
|
240
240
|
uint32_t fSampleCount = 1;
|
|
241
241
|
uint32_t fLevelCount = 0;
|
|
242
|
-
|
|
242
|
+
skgpu::Protected fProtected = skgpu::Protected::kNo;
|
|
243
243
|
|
|
244
244
|
DXGI_FORMAT fFormat = DXGI_FORMAT_UNKNOWN;
|
|
245
245
|
unsigned int fSampleQualityPattern = DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN;
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
#ifndef GrDawnTypes_DEFINED
|
|
9
9
|
#define GrDawnTypes_DEFINED
|
|
10
10
|
|
|
11
|
-
#include "include/gpu/
|
|
11
|
+
#include "include/gpu/GpuTypes.h"
|
|
12
12
|
|
|
13
13
|
#ifdef Always
|
|
14
14
|
#undef Always
|
|
@@ -22,7 +22,7 @@ static constexpr int Success = 0;
|
|
|
22
22
|
#undef None
|
|
23
23
|
static constexpr int None = 0L;
|
|
24
24
|
#endif
|
|
25
|
-
#include "webgpu/webgpu_cpp.h"
|
|
25
|
+
#include "webgpu/webgpu_cpp.h" // IWYU pragma: export
|
|
26
26
|
|
|
27
27
|
struct GrDawnTextureInfo {
|
|
28
28
|
wgpu::Texture fTexture;
|
|
@@ -87,7 +87,7 @@ struct GrDawnRenderTargetInfo {
|
|
|
87
87
|
struct GrDawnSurfaceInfo {
|
|
88
88
|
uint32_t fSampleCount = 1;
|
|
89
89
|
uint32_t fLevelCount = 0;
|
|
90
|
-
|
|
90
|
+
skgpu::Protected fProtected = skgpu::Protected::kNo;
|
|
91
91
|
|
|
92
92
|
wgpu::TextureFormat fFormat;
|
|
93
93
|
};
|
|
@@ -0,0 +1,77 @@
|
|
|
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 GrTextureGenerator_DEFINED
|
|
9
|
+
#define GrTextureGenerator_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkImageGenerator.h"
|
|
12
|
+
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/gpu/GrTypes.h"
|
|
14
|
+
#include "include/private/base/SkAPI.h"
|
|
15
|
+
|
|
16
|
+
#include <cstdint>
|
|
17
|
+
#include <memory>
|
|
18
|
+
|
|
19
|
+
class GrRecordingContext;
|
|
20
|
+
class GrSurfaceProxyView;
|
|
21
|
+
class SkImage;
|
|
22
|
+
enum class GrImageTexGenPolicy : int;
|
|
23
|
+
namespace skgpu { enum class Mipmapped : bool; }
|
|
24
|
+
struct SkImageInfo;
|
|
25
|
+
|
|
26
|
+
class SK_API GrTextureGenerator : public SkImageGenerator {
|
|
27
|
+
public:
|
|
28
|
+
bool isTextureGenerator() const final { return true; }
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* If the generator can natively/efficiently return its pixels as a GPU image (backed by a
|
|
32
|
+
* texture) this will return that image. If not, this will return NULL.
|
|
33
|
+
*
|
|
34
|
+
* Regarding the GrRecordingContext parameter:
|
|
35
|
+
*
|
|
36
|
+
* It must be non-NULL. The generator should only succeed if:
|
|
37
|
+
* - its internal context is the same
|
|
38
|
+
* - it can somehow convert its texture into one that is valid for the provided context.
|
|
39
|
+
*
|
|
40
|
+
* If the mipmapped parameter is kYes, the generator should try to create a TextureProxy that
|
|
41
|
+
* at least has the mip levels allocated and the base layer filled in. If this is not possible,
|
|
42
|
+
* the generator is allowed to return a non mipped proxy, but this will have some additional
|
|
43
|
+
* overhead in later allocating mips and copying of the base layer.
|
|
44
|
+
*
|
|
45
|
+
* GrImageTexGenPolicy determines whether or not a new texture must be created (and its budget
|
|
46
|
+
* status) or whether this may (but is not required to) return a pre-existing texture that is
|
|
47
|
+
* retained by the generator (kDraw).
|
|
48
|
+
*/
|
|
49
|
+
GrSurfaceProxyView generateTexture(GrRecordingContext*,
|
|
50
|
+
const SkImageInfo& info,
|
|
51
|
+
skgpu::Mipmapped mipmapped,
|
|
52
|
+
GrImageTexGenPolicy);
|
|
53
|
+
|
|
54
|
+
virtual GrSurfaceProxyView onGenerateTexture(GrRecordingContext*, const SkImageInfo&,
|
|
55
|
+
skgpu::Mipmapped, GrImageTexGenPolicy) = 0;
|
|
56
|
+
|
|
57
|
+
// Most internal SkImageGenerators produce textures and views that use kTopLeft_GrSurfaceOrigin.
|
|
58
|
+
// If the generator may produce textures with different origins (e.g.
|
|
59
|
+
// GrAHardwareBufferImageGenerator) it should override this function to return the correct
|
|
60
|
+
// origin. Implementations should be thread-safe.
|
|
61
|
+
virtual GrSurfaceOrigin origin() const { return kTopLeft_GrSurfaceOrigin; }
|
|
62
|
+
|
|
63
|
+
protected:
|
|
64
|
+
GrTextureGenerator(const SkImageInfo& info, uint32_t uniqueId = kNeedNewImageUniqueID);
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
namespace SkImages {
|
|
68
|
+
/**
|
|
69
|
+
* Like SkImages::DeferredFromGenerator except allows for the use of SkGaneshTextureGenerator.
|
|
70
|
+
*
|
|
71
|
+
* @param gen producer of textures
|
|
72
|
+
* @return created SkImage, or nullptr
|
|
73
|
+
*/
|
|
74
|
+
SK_API sk_sp<SkImage> DeferredFromTextureGenerator(std::unique_ptr<GrTextureGenerator> gen);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
#endif // GrTextureGenerator_DEFINED
|