@shopify/react-native-skia 1.3.13 → 1.4.1
Sign up to get free protection for your applications and to get access to all the features.
- package/android/CMakeLists.txt +9 -4
- package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +6 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +81 -0
- package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +40 -0
- package/cpp/api/JsiSkApi.h +2 -0
- package/cpp/api/JsiSkPath.h +29 -19
- package/cpp/api/JsiSkRuntimeEffect.h +7 -0
- package/cpp/api/JsiSkiaContext.h +79 -0
- package/cpp/rnskia/RNSkPlatformContext.h +4 -0
- package/cpp/rnskia/SkiaContext.h +22 -0
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -2
- package/cpp/skia/include/android/SkImageAndroid.h +1 -1
- package/cpp/skia/include/android/SkSurfaceAndroid.h +1 -1
- package/cpp/skia/include/codec/SkAndroidCodec.h +13 -9
- package/cpp/skia/include/codec/SkCodec.h +28 -5
- package/cpp/skia/include/core/SkArc.h +69 -0
- package/cpp/skia/include/core/SkBitmap.h +10 -0
- package/cpp/skia/include/core/SkBlender.h +2 -3
- package/cpp/skia/include/core/SkCanvas.h +86 -16
- package/cpp/skia/include/core/SkCapabilities.h +0 -4
- package/cpp/skia/include/core/SkColorFilter.h +4 -4
- package/cpp/skia/include/core/SkColorPriv.h +5 -7
- package/cpp/skia/include/core/SkColorType.h +2 -0
- package/cpp/skia/include/core/SkFlattenable.h +1 -1
- package/cpp/skia/include/core/SkFontArguments.h +3 -1
- package/cpp/skia/include/core/SkFontParameters.h +3 -2
- package/cpp/skia/include/core/SkFourByteTag.h +19 -0
- package/cpp/skia/include/core/SkImage.h +41 -1
- package/cpp/skia/include/core/SkImageGenerator.h +0 -5
- package/cpp/skia/include/core/SkImageInfo.h +20 -0
- package/cpp/skia/include/core/SkM44.h +1 -1
- package/cpp/skia/include/core/SkMatrix.h +2 -1
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPaint.h +1 -1
- package/cpp/skia/include/core/SkPath.h +20 -6
- package/cpp/skia/include/core/SkPathMeasure.h +1 -0
- package/cpp/skia/include/core/SkPicture.h +5 -5
- package/cpp/skia/include/core/SkPoint3.h +2 -12
- package/cpp/skia/include/core/SkRRect.h +5 -0
- package/cpp/skia/include/core/SkRect.h +5 -16
- package/cpp/skia/include/core/SkRefCnt.h +2 -0
- package/cpp/skia/include/core/SkScalar.h +20 -32
- package/cpp/skia/include/core/SkShader.h +17 -0
- package/cpp/skia/include/core/SkSize.h +2 -1
- package/cpp/skia/include/core/SkStream.h +2 -3
- package/cpp/skia/include/core/SkStrokeRec.h +6 -1
- package/cpp/skia/include/core/SkSurface.h +13 -4
- package/cpp/skia/include/core/SkSurfaceProps.h +5 -0
- package/cpp/skia/include/core/SkSwizzle.h +3 -1
- package/cpp/skia/include/core/SkTypeface.h +1 -0
- package/cpp/skia/include/core/SkTypes.h +1 -19
- package/cpp/skia/include/core/SkUnPreMultiply.h +4 -5
- package/cpp/skia/include/core/SkVertices.h +4 -2
- package/cpp/skia/include/docs/SkPDFDocument.h +11 -14
- package/cpp/skia/include/effects/SkHighContrastFilter.h +6 -6
- package/cpp/skia/include/effects/SkImageFilters.h +49 -23
- package/cpp/skia/include/effects/SkRuntimeEffect.h +51 -70
- package/cpp/skia/include/effects/SkShaderMaskFilter.h +2 -0
- package/cpp/skia/include/effects/SkTableMaskFilter.h +2 -0
- package/cpp/skia/include/gpu/GrBackendSemaphore.h +2 -120
- package/cpp/skia/include/gpu/GrBackendSurface.h +2 -466
- package/cpp/skia/include/gpu/GrContextOptions.h +2 -368
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +2 -179
- package/cpp/skia/include/gpu/GrDirectContext.h +2 -1011
- package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -47
- package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +2 -41
- package/cpp/skia/include/gpu/GrRecordingContext.h +2 -279
- package/cpp/skia/include/gpu/GrTypes.h +2 -238
- package/cpp/skia/include/gpu/GrYUVABackendTextures.h +2 -118
- package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +2 -29
- package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -242
- package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +80 -0
- package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +412 -0
- package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +386 -0
- package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
- package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +993 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +45 -0
- package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +285 -0
- package/cpp/skia/include/gpu/ganesh/GrTypes.h +177 -0
- package/cpp/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
- package/cpp/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
- package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +306 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLInterface.h +338 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
- package/cpp/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
- package/cpp/skia/include/gpu/{gl → ganesh/gl}/egl/GrGLMakeEGLInterface.h +2 -2
- package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
- package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlBackendContext.h +2 -2
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
- package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlTypes.h +1 -3
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +2 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +7 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +6 -3
- package/cpp/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
- package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +2 -9
- package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +2 -38
- package/cpp/skia/include/gpu/gl/GrGLConfig.h +2 -73
- package/cpp/skia/include/gpu/gl/GrGLExtensions.h +2 -72
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +2 -301
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -332
- package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -213
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +20 -41
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +18 -118
- package/cpp/skia/include/gpu/graphite/Context.h +122 -44
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +30 -3
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +45 -17
- package/cpp/skia/include/gpu/graphite/Image.h +56 -54
- package/cpp/skia/include/gpu/graphite/Recorder.h +68 -14
- package/cpp/skia/include/gpu/graphite/Recording.h +3 -3
- package/cpp/skia/include/gpu/graphite/Surface.h +6 -2
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +36 -117
- package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +108 -6
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +4 -1
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +41 -25
- package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +197 -0
- package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +48 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +84 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +85 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +119 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +51 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +170 -0
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +24 -2
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +2 -157
- package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +2 -0
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +2 -101
- package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +13 -8
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +9 -3
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +4 -1
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +25 -8
- package/cpp/skia/include/ports/SkFontMgr_Fontations.h +20 -0
- package/cpp/skia/include/ports/SkFontMgr_android.h +7 -0
- package/cpp/skia/include/ports/SkImageGeneratorCG.h +3 -1
- package/cpp/skia/include/ports/SkTypeface_win.h +0 -17
- package/cpp/skia/include/private/SkEncodedInfo.h +8 -2
- package/cpp/skia/include/private/SkExif.h +28 -75
- package/cpp/skia/include/private/SkGainmapInfo.h +47 -7
- package/cpp/skia/include/private/SkJpegMetadataDecoder.h +12 -0
- package/cpp/skia/include/private/SkPathRef.h +52 -44
- package/cpp/skia/include/private/SkXmp.h +13 -4
- package/cpp/skia/include/private/base/SkASAN.h +56 -0
- package/cpp/skia/include/private/base/SkAlign.h +5 -0
- package/cpp/skia/include/private/base/SkContainers.h +10 -2
- package/cpp/skia/include/private/base/SkFeatures.h +22 -1
- package/cpp/skia/include/private/base/SkFloatingPoint.h +51 -65
- package/cpp/skia/include/private/base/SkMacros.h +67 -0
- package/cpp/skia/include/private/base/SkMalloc.h +8 -0
- package/cpp/skia/include/private/base/SkPoint_impl.h +2 -11
- package/cpp/skia/include/private/base/SkTArray.h +108 -23
- package/cpp/skia/include/private/base/SkTFitsIn.h +1 -12
- package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +0 -39
- package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +1 -1
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +3 -3
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -4
- package/cpp/skia/include/private/chromium/Slug.h +5 -11
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +2 -2
- package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +21 -93
- package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +2 -2
- package/cpp/skia/include/utils/SkCustomTypeface.h +1 -0
- package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
- package/cpp/skia/include/utils/SkParse.h +0 -1
- package/cpp/skia/modules/skcms/src/Transform_inl.h +59 -56
- package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -0
- package/cpp/skia/modules/skcms/src/skcms_internals.h +2 -0
- package/cpp/skia/modules/skcms/src/skcms_public.h +46 -14
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +15 -1
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +2 -2
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -4
- package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
- package/cpp/skia/modules/skshaper/include/SkShaper.h +316 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +19 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
- package/cpp/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
- package/cpp/skia/modules/skunicode/include/SkUnicode.h +6 -23
- package/cpp/skia/modules/svg/include/SkSVGAttribute.h +0 -3
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +12 -2
- package/cpp/skia/modules/svg/include/SkSVGCircle.h +13 -0
- package/cpp/skia/modules/svg/include/SkSVGClipPath.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGContainer.h +17 -1
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +25 -15
- package/cpp/skia/modules/svg/include/SkSVGEllipse.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGFe.h +11 -2
- package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
- package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +10 -1
- package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
- package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilter.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +3 -3
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +10 -2
- package/cpp/skia/modules/svg/include/SkSVGImage.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGLine.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGMask.h +6 -0
- package/cpp/skia/modules/svg/include/SkSVGNode.h +13 -2
- package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPath.h +10 -0
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +5 -0
- package/cpp/skia/modules/svg/include/SkSVGPoly.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRect.h +11 -0
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +43 -7
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +7 -0
- package/cpp/skia/modules/svg/include/SkSVGShape.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGStop.h +5 -3
- package/cpp/skia/modules/svg/include/SkSVGText.h +8 -2
- package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +8 -0
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +9 -0
- package/cpp/skia/modules/svg/include/SkSVGUse.h +7 -0
- package/cpp/skia/src/base/SkMathPriv.h +337 -0
- package/cpp/skia/src/base/SkTLazy.h +208 -0
- package/cpp/skia/src/core/SkTHash.h +58 -7
- package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -0
- package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +7 -0
- package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +7 -2
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +78 -0
- package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +20 -4
- package/lib/commonjs/renderer/HostConfig.js.map +1 -1
- package/lib/commonjs/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/commonjs/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/commonjs/skia/types/Skia.d.ts +6 -1
- package/lib/commonjs/skia/types/Skia.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkia.js +4 -1
- package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
- package/lib/commonjs/web/WithSkiaWeb.d.ts +11 -4
- package/lib/commonjs/web/WithSkiaWeb.js +3 -2
- package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
- package/lib/module/renderer/HostConfig.js.map +1 -1
- package/lib/module/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/module/skia/types/Paragraph/TextStyle.js.map +1 -1
- package/lib/module/skia/types/Skia.d.ts +6 -1
- package/lib/module/skia/types/Skia.js.map +1 -1
- package/lib/module/skia/web/JsiSkia.js +4 -1
- package/lib/module/skia/web/JsiSkia.js.map +1 -1
- package/lib/module/web/WithSkiaWeb.d.ts +11 -4
- package/lib/module/web/WithSkiaWeb.js +3 -2
- package/lib/module/web/WithSkiaWeb.js.map +1 -1
- package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/commonjs/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
- package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -0
- package/lib/typescript/lib/module/web/WithSkiaWeb.d.ts +2 -1
- package/lib/typescript/src/skia/types/Paragraph/TextStyle.d.ts +2 -2
- package/lib/typescript/src/skia/types/Skia.d.ts +6 -1
- package/lib/typescript/src/web/WithSkiaWeb.d.ts +11 -4
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libskparagraph.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libskshaper.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
- package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libskia.a +0 -0
- package/libs/android/armeabi-v7a/libskottie.a +0 -0
- package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libskshaper.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libskia.a +0 -0
- package/libs/android/x86/libskottie.a +0 -0
- package/libs/android/x86/libskparagraph.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libskshaper.a +0 -0
- package/libs/android/x86/libskunicode_core.a +0 -0
- package/libs/android/x86/libskunicode_icu.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libskia.a +0 -0
- package/libs/android/x86_64/libskottie.a +0 -0
- package/libs/android/x86_64/libskparagraph.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libskshaper.a +0 -0
- package/libs/android/x86_64/libskunicode_core.a +0 -0
- package/libs/android/x86_64/libskunicode_icu.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/Info.plist +5 -5
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/Info.plist +5 -5
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libsvg.xcframework/Info.plist +5 -5
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +3 -5
- package/react-native-skia.podspec +2 -1
- package/src/renderer/HostConfig.ts +5 -1
- package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +5 -2
- package/src/renderer/__tests__/e2e/Paths.spec.tsx +12 -5
- package/src/renderer/__tests__/e2e/SDF.spec.tsx +1 -1
- package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +1 -1
- package/src/skia/types/Paragraph/TextStyle.ts +2 -2
- package/src/skia/types/Skia.ts +7 -1
- package/src/skia/web/JsiSkia.ts +3 -0
- package/src/web/WithSkiaWeb.tsx +17 -6
- package/cpp/skia/include/core/SkDrawLooper.h +0 -135
- package/cpp/skia/include/effects/SkBlurDrawLooper.h +0 -26
- package/cpp/skia/include/effects/SkLayerDrawLooper.h +0 -161
- package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +0 -14
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +0 -84
- package/cpp/skia/include/gpu/vk/GrVkExtensions.h +0 -15
- package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +0 -15
- package/cpp/skia/include/ports/SkFontMgr_indirect.h +0 -102
- package/cpp/skia/include/ports/SkRemotableFontMgr.h +0 -139
- package/cpp/skia/include/private/base/SkFloatBits.h +0 -90
- package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +0 -69
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +0 -54
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +0 -95
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +0 -83
- package/cpp/skia/src/core/SkPathEnums.h +0 -25
- package/cpp/skia/src/core/SkPathPriv.h +0 -540
- package/libs/android/arm64-v8a/libskunicode.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode.a +0 -0
- package/libs/android/x86/libskunicode.a +0 -0
- package/libs/android/x86_64/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/Info.plist +0 -46
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- /package/cpp/skia/include/gpu/{gl → ganesh/gl}/glx/GrGLMakeGLXInterface.h +0 -0
@@ -14,9 +14,8 @@
|
|
14
14
|
#include "include/core/SkPath.h"
|
15
15
|
#include "include/core/SkPathTypes.h"
|
16
16
|
#include "include/core/SkRefCnt.h"
|
17
|
-
#include "include/core/SkTextureCompressionType.h"
|
18
|
-
#include "include/gpu/GrTypes.h"
|
19
17
|
#include "include/private/base/SkAssert.h"
|
18
|
+
#include "include/private/base/SkDebug.h"
|
20
19
|
#include "include/private/base/SkMacros.h"
|
21
20
|
#include "include/private/base/SkTypeTraits.h"
|
22
21
|
|
@@ -254,7 +253,7 @@ enum class GrQuadAAFlags {
|
|
254
253
|
kAll = 0b1111,
|
255
254
|
};
|
256
255
|
|
257
|
-
|
256
|
+
SK_MAKE_BITFIELD_CLASS_OPS(GrQuadAAFlags)
|
258
257
|
|
259
258
|
static inline GrQuadAAFlags SkToGrQuadAAFlags(unsigned flags) {
|
260
259
|
return static_cast<GrQuadAAFlags>(flags);
|
@@ -462,9 +461,9 @@ enum class GrInternalSurfaceFlags {
|
|
462
461
|
kVkRTSupportsInputAttachment = 1 << 4,
|
463
462
|
};
|
464
463
|
|
465
|
-
|
464
|
+
SK_MAKE_BITFIELD_CLASS_OPS(GrInternalSurfaceFlags)
|
466
465
|
|
467
|
-
// '
|
466
|
+
// 'SK_MAKE_BITFIELD_CLASS_OPS' defines the & operator on GrInternalSurfaceFlags to return bool.
|
468
467
|
// We want to find the bitwise & with these masks, so we declare them as ints.
|
469
468
|
constexpr static int kGrInternalTextureFlagsMask = static_cast<int>(
|
470
469
|
GrInternalSurfaceFlags::kReadOnly);
|
@@ -526,7 +525,7 @@ enum class GrMipmapStatus {
|
|
526
525
|
kValid, // All levels fully allocated and have valid data in them
|
527
526
|
};
|
528
527
|
|
529
|
-
|
528
|
+
SK_MAKE_BITFIELD_CLASS_OPS(GpuPathRenderers)
|
530
529
|
|
531
530
|
/**
|
532
531
|
* Like SkColorType this describes a layout of pixel data in CPU memory. It specifies the channels,
|
@@ -550,11 +549,13 @@ enum class GrColorType {
|
|
550
549
|
kBGRA_8888,
|
551
550
|
kRGBA_1010102,
|
552
551
|
kBGRA_1010102,
|
552
|
+
kRGB_101010x,
|
553
553
|
kRGBA_10x6,
|
554
554
|
kGray_8,
|
555
555
|
kGrayAlpha_88,
|
556
556
|
kAlpha_F16,
|
557
557
|
kRGBA_F16,
|
558
|
+
kRGB_F16F16F16x,
|
558
559
|
kRGBA_F16_Clamped,
|
559
560
|
kRGBA_F32,
|
560
561
|
|
@@ -600,12 +601,14 @@ static constexpr SkColorType GrColorTypeToSkColorType(GrColorType ct) {
|
|
600
601
|
case GrColorType::kBGRA_8888: return kBGRA_8888_SkColorType;
|
601
602
|
case GrColorType::kRGBA_1010102: return kRGBA_1010102_SkColorType;
|
602
603
|
case GrColorType::kBGRA_1010102: return kBGRA_1010102_SkColorType;
|
604
|
+
case GrColorType::kRGB_101010x: return kRGB_101010x_SkColorType;
|
603
605
|
case GrColorType::kRGBA_10x6: return kRGBA_10x6_SkColorType;
|
604
606
|
case GrColorType::kGray_8: return kGray_8_SkColorType;
|
605
607
|
case GrColorType::kGrayAlpha_88: return kUnknown_SkColorType;
|
606
608
|
case GrColorType::kAlpha_F16: return kA16_float_SkColorType;
|
607
609
|
case GrColorType::kRGBA_F16: return kRGBA_F16_SkColorType;
|
608
610
|
case GrColorType::kRGBA_F16_Clamped: return kRGBA_F16Norm_SkColorType;
|
611
|
+
case GrColorType::kRGB_F16F16F16x: return kRGB_F16F16F16x_SkColorType;
|
609
612
|
case GrColorType::kRGBA_F32: return kRGBA_F32_SkColorType;
|
610
613
|
case GrColorType::kAlpha_8xxx: return kUnknown_SkColorType;
|
611
614
|
case GrColorType::kAlpha_F32xxx: return kUnknown_SkColorType;
|
@@ -639,11 +642,13 @@ static constexpr GrColorType SkColorTypeToGrColorType(SkColorType ct) {
|
|
639
642
|
case kGray_8_SkColorType: return GrColorType::kGray_8;
|
640
643
|
case kRGBA_F16Norm_SkColorType: return GrColorType::kRGBA_F16_Clamped;
|
641
644
|
case kRGBA_F16_SkColorType: return GrColorType::kRGBA_F16;
|
645
|
+
case kRGB_F16F16F16x_SkColorType: return GrColorType::kRGB_F16F16F16x;
|
642
646
|
case kRGBA_1010102_SkColorType: return GrColorType::kRGBA_1010102;
|
643
|
-
case kRGB_101010x_SkColorType: return GrColorType::
|
647
|
+
case kRGB_101010x_SkColorType: return GrColorType::kRGB_101010x;
|
644
648
|
case kBGRA_1010102_SkColorType: return GrColorType::kBGRA_1010102;
|
645
649
|
case kBGR_101010x_SkColorType: return GrColorType::kUnknown;
|
646
650
|
case kBGR_101010x_XR_SkColorType: return GrColorType::kUnknown;
|
651
|
+
case kBGRA_10101010_XR_SkColorType: return GrColorType::kUnknown;
|
647
652
|
case kRGBA_10x6_SkColorType: return GrColorType::kRGBA_10x6;
|
648
653
|
case kRGBA_F32_SkColorType: return GrColorType::kRGBA_F32;
|
649
654
|
case kR8G8_unorm_SkColorType: return GrColorType::kRG_88;
|
@@ -671,12 +676,14 @@ static constexpr uint32_t GrColorTypeChannelFlags(GrColorType ct) {
|
|
671
676
|
case GrColorType::kBGRA_8888: return kRGBA_SkColorChannelFlags;
|
672
677
|
case GrColorType::kRGBA_1010102: return kRGBA_SkColorChannelFlags;
|
673
678
|
case GrColorType::kBGRA_1010102: return kRGBA_SkColorChannelFlags;
|
679
|
+
case GrColorType::kRGB_101010x: return kRGB_SkColorChannelFlags;
|
674
680
|
case GrColorType::kRGBA_10x6: return kRGBA_SkColorChannelFlags;
|
675
681
|
case GrColorType::kGray_8: return kGray_SkColorChannelFlag;
|
676
682
|
case GrColorType::kGrayAlpha_88: return kGrayAlpha_SkColorChannelFlags;
|
677
683
|
case GrColorType::kAlpha_F16: return kAlpha_SkColorChannelFlag;
|
678
684
|
case GrColorType::kRGBA_F16: return kRGBA_SkColorChannelFlags;
|
679
685
|
case GrColorType::kRGBA_F16_Clamped: return kRGBA_SkColorChannelFlags;
|
686
|
+
case GrColorType::kRGB_F16F16F16x: return kRGB_SkColorChannelFlags;
|
680
687
|
case GrColorType::kRGBA_F32: return kRGBA_SkColorChannelFlags;
|
681
688
|
case GrColorType::kAlpha_8xxx: return kAlpha_SkColorChannelFlag;
|
682
689
|
case GrColorType::kAlpha_F32xxx: return kAlpha_SkColorChannelFlag;
|
@@ -816,6 +823,8 @@ static constexpr GrColorFormatDesc GrGetColorTypeDesc(GrColorType ct) {
|
|
816
823
|
return GrColorFormatDesc::MakeRGBA(10, 2, GrColorTypeEncoding::kUnorm);
|
817
824
|
case GrColorType::kBGRA_1010102:
|
818
825
|
return GrColorFormatDesc::MakeRGBA(10, 2, GrColorTypeEncoding::kUnorm);
|
826
|
+
case GrColorType::kRGB_101010x:
|
827
|
+
return GrColorFormatDesc::MakeRGB(10, GrColorTypeEncoding::kUnorm);
|
819
828
|
case GrColorType::kRGBA_10x6:
|
820
829
|
return GrColorFormatDesc::MakeRGBA(10, GrColorTypeEncoding::kUnorm);
|
821
830
|
case GrColorType::kGray_8:
|
@@ -826,6 +835,8 @@ static constexpr GrColorFormatDesc GrGetColorTypeDesc(GrColorType ct) {
|
|
826
835
|
return GrColorFormatDesc::MakeAlpha(16, GrColorTypeEncoding::kFloat);
|
827
836
|
case GrColorType::kRGBA_F16:
|
828
837
|
return GrColorFormatDesc::MakeRGBA(16, GrColorTypeEncoding::kFloat);
|
838
|
+
case GrColorType::kRGB_F16F16F16x:
|
839
|
+
return GrColorFormatDesc::MakeRGB(16, GrColorTypeEncoding::kFloat);
|
829
840
|
case GrColorType::kRGBA_F16_Clamped:
|
830
841
|
return GrColorFormatDesc::MakeRGBA(16, GrColorTypeEncoding::kFloat);
|
831
842
|
case GrColorType::kRGBA_F32:
|
@@ -906,12 +917,14 @@ static constexpr size_t GrColorTypeBytesPerPixel(GrColorType ct) {
|
|
906
917
|
case GrColorType::kBGRA_8888: return 4;
|
907
918
|
case GrColorType::kRGBA_1010102: return 4;
|
908
919
|
case GrColorType::kBGRA_1010102: return 4;
|
920
|
+
case GrColorType::kRGB_101010x: return 4;
|
909
921
|
case GrColorType::kRGBA_10x6: return 8;
|
910
922
|
case GrColorType::kGray_8: return 1;
|
911
923
|
case GrColorType::kGrayAlpha_88: return 2;
|
912
924
|
case GrColorType::kAlpha_F16: return 2;
|
913
925
|
case GrColorType::kRGBA_F16: return 8;
|
914
926
|
case GrColorType::kRGBA_F16_Clamped: return 8;
|
927
|
+
case GrColorType::kRGB_F16F16F16x: return 8;
|
915
928
|
case GrColorType::kRGBA_F32: return 16;
|
916
929
|
case GrColorType::kAlpha_8xxx: return 4;
|
917
930
|
case GrColorType::kAlpha_F32xxx: return 16;
|
@@ -932,98 +945,13 @@ static constexpr size_t GrColorTypeBytesPerPixel(GrColorType ct) {
|
|
932
945
|
SkUNREACHABLE;
|
933
946
|
}
|
934
947
|
|
935
|
-
// In general we try to not mix CompressionType and ColorType, but currently SkImage still requires
|
936
|
-
// an SkColorType even for CompressedTypes so we need some conversion.
|
937
|
-
static constexpr SkColorType GrCompressionTypeToSkColorType(SkTextureCompressionType compression) {
|
938
|
-
switch (compression) {
|
939
|
-
case SkTextureCompressionType::kNone: return kUnknown_SkColorType;
|
940
|
-
case SkTextureCompressionType::kETC2_RGB8_UNORM: return kRGB_888x_SkColorType;
|
941
|
-
case SkTextureCompressionType::kBC1_RGB8_UNORM: return kRGB_888x_SkColorType;
|
942
|
-
case SkTextureCompressionType::kBC1_RGBA8_UNORM: return kRGBA_8888_SkColorType;
|
943
|
-
}
|
944
|
-
|
945
|
-
SkUNREACHABLE;
|
946
|
-
}
|
947
|
-
|
948
948
|
enum class GrDstSampleFlags {
|
949
949
|
kNone = 0,
|
950
950
|
kRequiresTextureBarrier = 1 << 0,
|
951
951
|
kAsInputAttachment = 1 << 1,
|
952
952
|
};
|
953
|
-
|
953
|
+
SK_MAKE_BITFIELD_CLASS_OPS(GrDstSampleFlags)
|
954
954
|
|
955
955
|
using GrVisitProxyFunc = std::function<void(GrSurfaceProxy*, skgpu::Mipmapped)>;
|
956
956
|
|
957
|
-
#if defined(SK_DEBUG) || defined(GR_TEST_UTILS) || defined(SK_ENABLE_DUMP_GPU)
|
958
|
-
static constexpr const char* GrBackendApiToStr(GrBackendApi api) {
|
959
|
-
switch (api) {
|
960
|
-
case GrBackendApi::kOpenGL: return "OpenGL";
|
961
|
-
case GrBackendApi::kVulkan: return "Vulkan";
|
962
|
-
case GrBackendApi::kMetal: return "Metal";
|
963
|
-
case GrBackendApi::kDirect3D: return "Direct3D";
|
964
|
-
case GrBackendApi::kMock: return "Mock";
|
965
|
-
case GrBackendApi::kUnsupported: return "Unsupported";
|
966
|
-
}
|
967
|
-
SkUNREACHABLE;
|
968
|
-
}
|
969
|
-
|
970
|
-
static constexpr const char* GrColorTypeToStr(GrColorType ct) {
|
971
|
-
switch (ct) {
|
972
|
-
case GrColorType::kUnknown: return "kUnknown";
|
973
|
-
case GrColorType::kAlpha_8: return "kAlpha_8";
|
974
|
-
case GrColorType::kBGR_565: return "kBGR_565";
|
975
|
-
case GrColorType::kRGB_565: return "kRGB_565";
|
976
|
-
case GrColorType::kABGR_4444: return "kABGR_4444";
|
977
|
-
case GrColorType::kRGBA_8888: return "kRGBA_8888";
|
978
|
-
case GrColorType::kRGBA_8888_SRGB: return "kRGBA_8888_SRGB";
|
979
|
-
case GrColorType::kRGB_888x: return "kRGB_888x";
|
980
|
-
case GrColorType::kRG_88: return "kRG_88";
|
981
|
-
case GrColorType::kBGRA_8888: return "kBGRA_8888";
|
982
|
-
case GrColorType::kRGBA_1010102: return "kRGBA_1010102";
|
983
|
-
case GrColorType::kBGRA_1010102: return "kBGRA_1010102";
|
984
|
-
case GrColorType::kRGBA_10x6: return "kBGRA_10x6";
|
985
|
-
case GrColorType::kGray_8: return "kGray_8";
|
986
|
-
case GrColorType::kGrayAlpha_88: return "kGrayAlpha_88";
|
987
|
-
case GrColorType::kAlpha_F16: return "kAlpha_F16";
|
988
|
-
case GrColorType::kRGBA_F16: return "kRGBA_F16";
|
989
|
-
case GrColorType::kRGBA_F16_Clamped: return "kRGBA_F16_Clamped";
|
990
|
-
case GrColorType::kRGBA_F32: return "kRGBA_F32";
|
991
|
-
case GrColorType::kAlpha_8xxx: return "kAlpha_8xxx";
|
992
|
-
case GrColorType::kAlpha_F32xxx: return "kAlpha_F32xxx";
|
993
|
-
case GrColorType::kGray_8xxx: return "kGray_8xxx";
|
994
|
-
case GrColorType::kR_8xxx: return "kR_8xxx";
|
995
|
-
case GrColorType::kAlpha_16: return "kAlpha_16";
|
996
|
-
case GrColorType::kRG_1616: return "kRG_1616";
|
997
|
-
case GrColorType::kRGBA_16161616: return "kRGBA_16161616";
|
998
|
-
case GrColorType::kRG_F16: return "kRG_F16";
|
999
|
-
case GrColorType::kRGB_888: return "kRGB_888";
|
1000
|
-
case GrColorType::kR_8: return "kR_8";
|
1001
|
-
case GrColorType::kR_16: return "kR_16";
|
1002
|
-
case GrColorType::kR_F16: return "kR_F16";
|
1003
|
-
case GrColorType::kGray_F16: return "kGray_F16";
|
1004
|
-
case GrColorType::kARGB_4444: return "kARGB_4444";
|
1005
|
-
case GrColorType::kBGRA_4444: return "kBGRA_4444";
|
1006
|
-
}
|
1007
|
-
SkUNREACHABLE;
|
1008
|
-
}
|
1009
|
-
|
1010
|
-
static constexpr const char* GrCompressionTypeToStr(SkTextureCompressionType compression) {
|
1011
|
-
switch (compression) {
|
1012
|
-
case SkTextureCompressionType::kNone: return "kNone";
|
1013
|
-
case SkTextureCompressionType::kETC2_RGB8_UNORM: return "kETC2_RGB8_UNORM";
|
1014
|
-
case SkTextureCompressionType::kBC1_RGB8_UNORM: return "kBC1_RGB8_UNORM";
|
1015
|
-
case SkTextureCompressionType::kBC1_RGBA8_UNORM: return "kBC1_RGBA8_UNORM";
|
1016
|
-
}
|
1017
|
-
SkUNREACHABLE;
|
1018
|
-
}
|
1019
|
-
|
1020
|
-
static constexpr const char* GrSurfaceOriginToStr(GrSurfaceOrigin origin) {
|
1021
|
-
switch (origin) {
|
1022
|
-
case kTopLeft_GrSurfaceOrigin: return "kTopLeft";
|
1023
|
-
case kBottomLeft_GrSurfaceOrigin: return "kBottomLeft";
|
1024
|
-
}
|
1025
|
-
SkUNREACHABLE;
|
1026
|
-
}
|
1027
|
-
#endif
|
1028
|
-
|
1029
957
|
#endif
|
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
// IWYU pragma: begin_exports
|
14
14
|
|
15
|
-
#if
|
15
|
+
#if defined(SK_USE_INTERNAL_VULKAN_HEADERS) && !defined(SK_BUILD_FOR_GOOGLE3)
|
16
16
|
#include "include/third_party/vulkan/vulkan/vulkan_core.h"
|
17
17
|
#else
|
18
18
|
// For google3 builds we don't set SKIA_IMPLEMENTATION so we need to make sure that the vulkan
|
@@ -22,7 +22,7 @@
|
|
22
22
|
|
23
23
|
#ifdef SK_BUILD_FOR_ANDROID
|
24
24
|
// This is needed to get android extensions for external memory
|
25
|
-
#if
|
25
|
+
#if defined(SK_USE_INTERNAL_VULKAN_HEADERS) && !defined(SK_BUILD_FOR_GOOGLE3)
|
26
26
|
#include "include/third_party/vulkan/vulkan/vulkan_android.h"
|
27
27
|
#else
|
28
28
|
// For google3 builds we don't set SKIA_IMPLEMENTATION so we need to make sure that the vulkan
|
@@ -11,6 +11,7 @@
|
|
11
11
|
#include "include/core/SkDrawable.h"
|
12
12
|
#include "include/core/SkFontMetrics.h"
|
13
13
|
#include "include/core/SkFontStyle.h"
|
14
|
+
#include "include/core/SkFourByteTag.h"
|
14
15
|
#include "include/core/SkPath.h"
|
15
16
|
#include "include/core/SkRect.h"
|
16
17
|
#include "include/core/SkRefCnt.h"
|
@@ -73,7 +73,7 @@ protected:
|
|
73
73
|
void onDrawGlyphRunList(const sktext::GlyphRunList&, const SkPaint&) override;
|
74
74
|
void onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y,
|
75
75
|
const SkPaint& paint) override;
|
76
|
-
void onDrawSlug(const sktext::gpu::Slug* slug) override;
|
76
|
+
void onDrawSlug(const sktext::gpu::Slug* slug, const SkPaint& paint) override;
|
77
77
|
void onDrawPatch(const SkPoint cubics[12], const SkColor colors[4],
|
78
78
|
const SkPoint texCoords[4], SkBlendMode, const SkPaint& paint) override;
|
79
79
|
|
@@ -23,7 +23,6 @@ public:
|
|
23
23
|
static int Count(const char str[], char separator);
|
24
24
|
static const char* FindColor(const char str[], SkColor* value);
|
25
25
|
static const char* FindHex(const char str[], uint32_t* value);
|
26
|
-
static const char* FindMSec(const char str[], SkMSec* value);
|
27
26
|
static const char* FindNamedColor(const char str[], size_t len, SkColor* color);
|
28
27
|
static const char* FindS32(const char str[], int32_t* value);
|
29
28
|
static const char* FindScalar(const char str[], SkScalar* value);
|
@@ -22,15 +22,11 @@ using U8 = V<uint8_t>;
|
|
22
22
|
// GCC is kind of weird, not allowing vector = scalar directly.
|
23
23
|
static constexpr F F0 = F() + 0.0f,
|
24
24
|
F1 = F() + 1.0f,
|
25
|
-
FHalf = F() + 0.5f,
|
26
25
|
FInfBits = F() + 0x7f800000; // equals 2139095040, the bit pattern of +Inf
|
27
|
-
static constexpr I32 F16InfBits = I32() + 0x4780'0000;
|
28
26
|
#else
|
29
27
|
static constexpr F F0 = 0.0f,
|
30
28
|
F1 = 1.0f,
|
31
|
-
FHalf = 0.5f,
|
32
29
|
FInfBits = 0x7f800000; // equals 2139095040, the bit pattern of +Inf
|
33
|
-
static constexpr I32 F16InfBits = 0x4780'0000; // equals +Inf in half float, shifted to 32-bits
|
34
30
|
#endif
|
35
31
|
|
36
32
|
// Instead of checking __AVX__ below, we'll check USING_AVX.
|
@@ -41,7 +37,7 @@ using U8 = V<uint8_t>;
|
|
41
37
|
#define USING_AVX
|
42
38
|
#endif
|
43
39
|
#if !defined(USING_AVX_F16C) && defined(USING_AVX) && defined(__F16C__)
|
44
|
-
#define
|
40
|
+
#define USING_AVX_F16C
|
45
41
|
#endif
|
46
42
|
#if !defined(USING_AVX2) && defined(USING_AVX) && defined(__AVX2__)
|
47
43
|
#define USING_AVX2
|
@@ -153,22 +149,7 @@ SI U32 to_fixed(F f) { return (U32)cast<I32>(f + 0.5f); }
|
|
153
149
|
}
|
154
150
|
#endif
|
155
151
|
|
156
|
-
#if defined(USING_NEON)
|
157
|
-
SI F min_(F x, F y) { return (F)vminq_f32((float32x4_t)x, (float32x4_t)y); }
|
158
|
-
SI F max_(F x, F y) { return (F)vmaxq_f32((float32x4_t)x, (float32x4_t)y); }
|
159
|
-
|
160
|
-
SI I32 min_(I32 x, I32 y) { return (I32)vminq_s32((int32x4_t)x, (int32x4_t)y); }
|
161
|
-
SI I32 max_(I32 x, I32 y) { return (I32)vmaxq_s32((int32x4_t)x, (int32x4_t)y); }
|
162
|
-
#else
|
163
|
-
SI F min_(F x, F y) { return if_then_else(x > y, y, x); }
|
164
|
-
SI F max_(F x, F y) { return if_then_else(x < y, y, x); }
|
165
|
-
|
166
|
-
SI I32 min_(I32 x, I32 y) { return if_then_else(x > y, y, x); }
|
167
|
-
SI I32 max_(I32 x, I32 y) { return if_then_else(x < y, y, x); }
|
168
|
-
#endif
|
169
152
|
|
170
|
-
// KEEP IN SYNC with skvx::from_half to ensure that f16 colors are computed consistently in both
|
171
|
-
// skcms and skvx.
|
172
153
|
SI F F_from_Half(U16 half) {
|
173
154
|
#if defined(USING_NEON_F16C)
|
174
155
|
return vcvt_f32_f16((float16x4_t)half);
|
@@ -178,27 +159,24 @@ SI F F_from_Half(U16 half) {
|
|
178
159
|
typedef int16_t __attribute__((vector_size(16))) I16;
|
179
160
|
return __builtin_ia32_vcvtph2ps256((I16)half);
|
180
161
|
#else
|
181
|
-
|
162
|
+
U32 wide = cast<U32>(half);
|
182
163
|
// A half is 1-5-10 sign-exponent-mantissa, with 15 exponent bias.
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
norm = ((em<<13) + ((127-15)<<23)), // Shifts mantissa, shifts + re-biases exponent
|
192
|
-
finite = if_then_else(is_norm, norm, sub);
|
193
|
-
// If 'x' is f16 +/- infinity, inf_or_nan will be the filled 8-bit exponent but 'norm' will be
|
194
|
-
// all 0s since 'x's mantissa is 0. Thus norm | inf_or_nan becomes f32 infinity. However, if
|
195
|
-
// 'x' is an f16 NaN, some bits of 'norm' will be non-zero, so it stays an f32 NaN after the OR.
|
196
|
-
return bit_pun<F>((s<<16) | finite | inf_or_nan);
|
164
|
+
U32 s = wide & 0x8000,
|
165
|
+
em = wide ^ s;
|
166
|
+
|
167
|
+
// Constructing the float is easy if the half is not denormalized.
|
168
|
+
F norm = bit_pun<F>( (s<<16) + (em<<13) + ((127-15)<<23) );
|
169
|
+
|
170
|
+
// Simply flush all denorm half floats to zero.
|
171
|
+
return if_then_else(em < 0x0400, F0, norm);
|
197
172
|
#endif
|
198
173
|
}
|
199
174
|
|
200
|
-
|
201
|
-
//
|
175
|
+
#if defined(__clang__)
|
176
|
+
// The -((127-15)<<10) underflows that side of the math when
|
177
|
+
// we pass a denorm half float. It's harmless... we'll take the 0 side anyway.
|
178
|
+
__attribute__((no_sanitize("unsigned-integer-overflow")))
|
179
|
+
#endif
|
202
180
|
SI U16 Half_from_F(F f) {
|
203
181
|
#if defined(USING_NEON_F16C)
|
204
182
|
return (U16)vcvt_f16_f32(f);
|
@@ -208,23 +186,13 @@ SI U16 Half_from_F(F f) {
|
|
208
186
|
return (U16)__builtin_ia32_vcvtps2ph256(f, 0x04/*_MM_FROUND_CUR_DIRECTION*/);
|
209
187
|
#else
|
210
188
|
// A float is 1-8-23 sign-exponent-mantissa, with 127 exponent bias.
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
// mantissa bits 13 to the right. We clamp to 1/2 for subnormal values, which
|
219
|
-
// automatically shifts the mantissa to match 2^-14 expected for a subnorm f16.
|
220
|
-
magic = bit_pun<I32>(max_(bit_pun<F>(em) * 8192.f, FHalf)) & (255 << 23),
|
221
|
-
// Shift mantissa with automatic round-to-even
|
222
|
-
rounded = bit_pun<I32>((bit_pun<F>(em) + bit_pun<F>(magic))),
|
223
|
-
// Subtract 127 for f32 bias, subtract 13 to undo the *8192, subtract 1 to remove
|
224
|
-
// the implicit leading 1., and add 15 to get the f16 biased exponent.
|
225
|
-
exp = ((magic >> 13) - ((127-15+13+1)<<10)), // shift and re-bias exponent
|
226
|
-
f16 = rounded + exp; // use + if 'rounded' rolled over into first exponent bit
|
227
|
-
return cast<U16>((s>>16) | f16);
|
189
|
+
U32 sem = bit_pun<U32>(f),
|
190
|
+
s = sem & 0x80000000,
|
191
|
+
em = sem ^ s;
|
192
|
+
|
193
|
+
// For simplicity we flush denorm half floats (including all denorm floats) to zero.
|
194
|
+
return cast<U16>(if_then_else(em < 0x38800000, (U32)F0
|
195
|
+
, (s>>16) + (em>>13) - ((127-15)<<10)));
|
228
196
|
#endif
|
229
197
|
}
|
230
198
|
|
@@ -240,6 +208,17 @@ SI U64 swap_endian_16x4(const U64& rgba) {
|
|
240
208
|
| (rgba & 0xff00ff00ff00ff00) >> 8;
|
241
209
|
}
|
242
210
|
|
211
|
+
#if defined(USING_NEON)
|
212
|
+
SI F min_(F x, F y) { return (F)vminq_f32((float32x4_t)x, (float32x4_t)y); }
|
213
|
+
SI F max_(F x, F y) { return (F)vmaxq_f32((float32x4_t)x, (float32x4_t)y); }
|
214
|
+
#elif defined(__loongarch_sx)
|
215
|
+
SI F min_(F x, F y) { return (F)__lsx_vfmin_s(x, y); }
|
216
|
+
SI F max_(F x, F y) { return (F)__lsx_vfmax_s(x, y); }
|
217
|
+
#else
|
218
|
+
SI F min_(F x, F y) { return if_then_else(x > y, y, x); }
|
219
|
+
SI F max_(F x, F y) { return if_then_else(x < y, y, x); }
|
220
|
+
#endif
|
221
|
+
|
243
222
|
SI F floor_(F x) {
|
244
223
|
#if N == 1
|
245
224
|
return floorf_(x);
|
@@ -255,6 +234,8 @@ SI F floor_(F x) {
|
|
255
234
|
return __builtin_ia32_roundps256(x, 0x01/*_MM_FROUND_FLOOR*/);
|
256
235
|
#elif defined(__SSE4_1__)
|
257
236
|
return _mm_floor_ps(x);
|
237
|
+
#elif defined(__loongarch_sx)
|
238
|
+
return __lsx_vfrintrm_s((__m128)x);
|
258
239
|
#else
|
259
240
|
// Round trip through integers with a truncating cast.
|
260
241
|
F roundtrip = cast<F>(cast<I32>(x));
|
@@ -668,7 +649,7 @@ SI void sample_clut_8(const uint8_t* grid_8, I32 ix, F* r, F* g, F* b, F* a) {
|
|
668
649
|
}
|
669
650
|
|
670
651
|
SI void sample_clut_16(const uint8_t* grid_16, I32 ix, F* r, F* g, F* b) {
|
671
|
-
#if defined(__arm__)
|
652
|
+
#if defined(__arm__) || defined(__loongarch_sx)
|
672
653
|
// This is up to 2x faster on 32-bit ARM than the #else-case fast path.
|
673
654
|
*r = F_from_U16_BE(gather_16(grid_16, 3*ix+0));
|
674
655
|
*g = F_from_U16_BE(gather_16(grid_16, 3*ix+1));
|
@@ -856,6 +837,12 @@ STAGE(load_g8, NoCtx) {
|
|
856
837
|
r = g = b = F_from_U8(load<U8>(src + 1*i));
|
857
838
|
}
|
858
839
|
|
840
|
+
STAGE(load_ga88, NoCtx) {
|
841
|
+
U16 u16 = load<U16>(src + 2 * i);
|
842
|
+
r = g = b = cast<F>((u16 >> 0) & 0xff) * (1 / 255.0f);
|
843
|
+
a = cast<F>((u16 >> 8) & 0xff) * (1 / 255.0f);
|
844
|
+
}
|
845
|
+
|
859
846
|
STAGE(load_4444, NoCtx) {
|
860
847
|
U16 abgr = load<U16>(src + 2*i);
|
861
848
|
|
@@ -926,6 +913,17 @@ STAGE(load_101010x_XR, NoCtx) {
|
|
926
913
|
b = cast<F>((rgba >> 20) & 0x3ff) * (1/1023.0f) * range + min;
|
927
914
|
}
|
928
915
|
|
916
|
+
STAGE(load_10101010_XR, NoCtx) {
|
917
|
+
static constexpr float min = -0.752941f;
|
918
|
+
static constexpr float max = 1.25098f;
|
919
|
+
static constexpr float range = max - min;
|
920
|
+
U64 rgba = load<U64>(src + 8 * i);
|
921
|
+
r = cast<F>((rgba >> (0+6)) & 0x3ff) * (1/1023.0f) * range + min;
|
922
|
+
g = cast<F>((rgba >> (16+6)) & 0x3ff) * (1/1023.0f) * range + min;
|
923
|
+
b = cast<F>((rgba >> (32+6)) & 0x3ff) * (1/1023.0f) * range + min;
|
924
|
+
a = cast<F>((rgba >> (48+6)) & 0x3ff) * (1/1023.0f) * range + min;
|
925
|
+
}
|
926
|
+
|
929
927
|
STAGE(load_161616LE, NoCtx) {
|
930
928
|
uintptr_t ptr = (uintptr_t)(src + 6*i);
|
931
929
|
assert( (ptr & 1) == 0 ); // src must be 2-byte aligned for this
|
@@ -1263,6 +1261,12 @@ FINAL_STAGE(store_g8, NoCtx) {
|
|
1263
1261
|
store(dst + 1*i, cast<U8>(to_fixed(g * 255)));
|
1264
1262
|
}
|
1265
1263
|
|
1264
|
+
FINAL_STAGE(store_ga88, NoCtx) {
|
1265
|
+
// g should be holding luminance (Y) (r,g,b ~~~> X,Y,Z)
|
1266
|
+
store<U16>(dst + 2*i, cast<U16>(to_fixed(g * 255) << 0 )
|
1267
|
+
| cast<U16>(to_fixed(a * 255) << 8 ));
|
1268
|
+
}
|
1269
|
+
|
1266
1270
|
FINAL_STAGE(store_4444, NoCtx) {
|
1267
1271
|
store<U16>(dst + 2*i, cast<U16>(to_fixed(r * 15) << 12)
|
1268
1272
|
| cast<U16>(to_fixed(g * 15) << 8)
|
@@ -1312,7 +1316,6 @@ FINAL_STAGE(store_101010x_XR, NoCtx) {
|
|
1312
1316
|
store(dst + 4*i, cast<U32>(to_fixed(((r - min) / range) * 1023)) << 0
|
1313
1317
|
| cast<U32>(to_fixed(((g - min) / range) * 1023)) << 10
|
1314
1318
|
| cast<U32>(to_fixed(((b - min) / range) * 1023)) << 20);
|
1315
|
-
return;
|
1316
1319
|
}
|
1317
1320
|
|
1318
1321
|
FINAL_STAGE(store_1010102, NoCtx) {
|
@@ -20,12 +20,14 @@ namespace skcms_private {
|
|
20
20
|
#define SKCMS_WORK_OPS(M) \
|
21
21
|
M(load_a8) \
|
22
22
|
M(load_g8) \
|
23
|
+
M(load_ga88) \
|
23
24
|
M(load_4444) \
|
24
25
|
M(load_565) \
|
25
26
|
M(load_888) \
|
26
27
|
M(load_8888) \
|
27
28
|
M(load_1010102) \
|
28
29
|
M(load_101010x_XR) \
|
30
|
+
M(load_10101010_XR) \
|
29
31
|
M(load_161616LE) \
|
30
32
|
M(load_16161616LE) \
|
31
33
|
M(load_161616BE) \
|
@@ -88,6 +90,7 @@ namespace skcms_private {
|
|
88
90
|
#define SKCMS_STORE_OPS(M) \
|
89
91
|
M(store_a8) \
|
90
92
|
M(store_g8) \
|
93
|
+
M(store_ga88) \
|
91
94
|
M(store_4444) \
|
92
95
|
M(store_565) \
|
93
96
|
M(store_888) \
|
@@ -39,6 +39,7 @@ extern "C" {
|
|
39
39
|
// - Clang 18 runs into an ICE on armv7/androideabi with [[clang::musttail]].
|
40
40
|
// (http://crbug.com/1504548)
|
41
41
|
// - Android RISC-V also runs into an ICE (b/314692534)
|
42
|
+
// - LoongArch developers indicate they had to turn it off
|
42
43
|
// - Windows builds generate incorrect code with [[clang::musttail]] and crash mysteriously.
|
43
44
|
// (http://crbug.com/1505442)
|
44
45
|
#if __has_cpp_attribute(clang::musttail) && !__has_feature(memory_sanitizer) \
|
@@ -46,6 +47,7 @@ extern "C" {
|
|
46
47
|
&& !defined(__EMSCRIPTEN__) \
|
47
48
|
&& !defined(__arm__) \
|
48
49
|
&& !defined(__riscv) \
|
50
|
+
&& !defined(__loongarch__) \
|
49
51
|
&& !defined(_WIN32) && !defined(__SYMBIAN32__)
|
50
52
|
#define SKCMS_HAS_MUSTTAIL 1
|
51
53
|
#endif
|
@@ -258,16 +258,44 @@ SKCMS_API bool skcms_ApproximateCurve(const skcms_Curve* curve,
|
|
258
258
|
SKCMS_API bool skcms_GetCHAD(const skcms_ICCProfile*, skcms_Matrix3x3*);
|
259
259
|
SKCMS_API bool skcms_GetWTPT(const skcms_ICCProfile*, float xyz[3]);
|
260
260
|
|
261
|
+
// Returns the number of channels of input data that are expected on the "A" side of the profile.
|
262
|
+
// This is useful for image codecs, where the image data and the accompanying profile might have
|
263
|
+
// conflicting data shapes. In some cases, the result is unclear or invalid. In that case, the
|
264
|
+
// function will return a negative value to signal an error.
|
265
|
+
SKCMS_API int skcms_GetInputChannelCount(const skcms_ICCProfile*);
|
266
|
+
|
261
267
|
// These are common ICC signature values
|
262
268
|
enum {
|
263
|
-
// data_color_space
|
269
|
+
// common data_color_space values
|
264
270
|
skcms_Signature_CMYK = 0x434D594B,
|
265
271
|
skcms_Signature_Gray = 0x47524159,
|
266
272
|
skcms_Signature_RGB = 0x52474220,
|
267
273
|
|
268
|
-
// pcs
|
274
|
+
// pcs (or data_color_space)
|
269
275
|
skcms_Signature_Lab = 0x4C616220,
|
270
276
|
skcms_Signature_XYZ = 0x58595A20,
|
277
|
+
|
278
|
+
// other, less common data_color_space values
|
279
|
+
skcms_Signature_CIELUV = 0x4C757620,
|
280
|
+
skcms_Signature_YCbCr = 0x59436272,
|
281
|
+
skcms_Signature_CIEYxy = 0x59787920,
|
282
|
+
skcms_Signature_HSV = 0x48535620,
|
283
|
+
skcms_Signature_HLS = 0x484C5320,
|
284
|
+
skcms_Signature_CMY = 0x434D5920,
|
285
|
+
skcms_Signature_2CLR = 0x32434C52,
|
286
|
+
skcms_Signature_3CLR = 0x33434C52,
|
287
|
+
skcms_Signature_4CLR = 0x34434C52,
|
288
|
+
skcms_Signature_5CLR = 0x35434C52,
|
289
|
+
skcms_Signature_6CLR = 0x36434C52,
|
290
|
+
skcms_Signature_7CLR = 0x37434C52,
|
291
|
+
skcms_Signature_8CLR = 0x38434C52,
|
292
|
+
skcms_Signature_9CLR = 0x39434C52,
|
293
|
+
skcms_Signature_10CLR = 0x41434C52,
|
294
|
+
skcms_Signature_11CLR = 0x42434C52,
|
295
|
+
skcms_Signature_12CLR = 0x43434C52,
|
296
|
+
skcms_Signature_13CLR = 0x44434C52,
|
297
|
+
skcms_Signature_14CLR = 0x45434C52,
|
298
|
+
skcms_Signature_15CLR = 0x46434C52,
|
271
299
|
};
|
272
300
|
|
273
301
|
typedef enum skcms_PixelFormat {
|
@@ -275,6 +303,8 @@ typedef enum skcms_PixelFormat {
|
|
275
303
|
skcms_PixelFormat_A_8_,
|
276
304
|
skcms_PixelFormat_G_8,
|
277
305
|
skcms_PixelFormat_G_8_,
|
306
|
+
skcms_PixelFormat_GA_88, // Grayscale with alpha.
|
307
|
+
skcms_PixelFormat_GA_88_,
|
278
308
|
|
279
309
|
skcms_PixelFormat_RGB_565,
|
280
310
|
skcms_PixelFormat_BGR_565,
|
@@ -286,39 +316,41 @@ typedef enum skcms_PixelFormat {
|
|
286
316
|
skcms_PixelFormat_BGR_888,
|
287
317
|
skcms_PixelFormat_RGBA_8888,
|
288
318
|
skcms_PixelFormat_BGRA_8888,
|
289
|
-
skcms_PixelFormat_RGBA_8888_sRGB,
|
290
|
-
skcms_PixelFormat_BGRA_8888_sRGB,
|
319
|
+
skcms_PixelFormat_RGBA_8888_sRGB, // Automatic sRGB encoding / decoding.
|
320
|
+
skcms_PixelFormat_BGRA_8888_sRGB, // (Generally used with linear transfer functions.)
|
291
321
|
|
292
322
|
skcms_PixelFormat_RGBA_1010102,
|
293
323
|
skcms_PixelFormat_BGRA_1010102,
|
294
324
|
|
295
|
-
skcms_PixelFormat_RGB_161616LE,
|
325
|
+
skcms_PixelFormat_RGB_161616LE, // Little-endian. Pointers must be 16-bit aligned.
|
296
326
|
skcms_PixelFormat_BGR_161616LE,
|
297
327
|
skcms_PixelFormat_RGBA_16161616LE,
|
298
328
|
skcms_PixelFormat_BGRA_16161616LE,
|
299
329
|
|
300
|
-
skcms_PixelFormat_RGB_161616BE,
|
330
|
+
skcms_PixelFormat_RGB_161616BE, // Big-endian. Pointers must be 16-bit aligned.
|
301
331
|
skcms_PixelFormat_BGR_161616BE,
|
302
332
|
skcms_PixelFormat_RGBA_16161616BE,
|
303
333
|
skcms_PixelFormat_BGRA_16161616BE,
|
304
334
|
|
305
|
-
skcms_PixelFormat_RGB_hhh_Norm,
|
306
|
-
skcms_PixelFormat_BGR_hhh_Norm,
|
335
|
+
skcms_PixelFormat_RGB_hhh_Norm, // 1-5-10 half-precision float in [0,1]
|
336
|
+
skcms_PixelFormat_BGR_hhh_Norm, // Pointers must be 16-bit aligned.
|
307
337
|
skcms_PixelFormat_RGBA_hhhh_Norm,
|
308
338
|
skcms_PixelFormat_BGRA_hhhh_Norm,
|
309
339
|
|
310
|
-
skcms_PixelFormat_RGB_hhh,
|
311
|
-
skcms_PixelFormat_BGR_hhh,
|
340
|
+
skcms_PixelFormat_RGB_hhh, // 1-5-10 half-precision float.
|
341
|
+
skcms_PixelFormat_BGR_hhh, // Pointers must be 16-bit aligned.
|
312
342
|
skcms_PixelFormat_RGBA_hhhh,
|
313
343
|
skcms_PixelFormat_BGRA_hhhh,
|
314
344
|
|
315
|
-
skcms_PixelFormat_RGB_fff,
|
316
|
-
skcms_PixelFormat_BGR_fff,
|
345
|
+
skcms_PixelFormat_RGB_fff, // 1-8-23 single-precision float (the normal kind).
|
346
|
+
skcms_PixelFormat_BGR_fff, // Pointers must be 32-bit aligned.
|
317
347
|
skcms_PixelFormat_RGBA_ffff,
|
318
348
|
skcms_PixelFormat_BGRA_ffff,
|
319
349
|
|
320
|
-
skcms_PixelFormat_RGB_101010x_XR,
|
321
|
-
skcms_PixelFormat_BGR_101010x_XR,
|
350
|
+
skcms_PixelFormat_RGB_101010x_XR, // Note: This is located here to signal no clamping.
|
351
|
+
skcms_PixelFormat_BGR_101010x_XR, // Compatible with MTLPixelFormatBGR10_XR.
|
352
|
+
skcms_PixelFormat_RGBA_10101010_XR, // Note: This is located here to signal no clamping.
|
353
|
+
skcms_PixelFormat_BGRA_10101010_XR, // Compatible with MTLPixelFormatBGRA10_XR.
|
322
354
|
} skcms_PixelFormat;
|
323
355
|
|
324
356
|
// We always store any alpha channel linearly. In the chart below, tf-1() is the inverse
|