@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.
Files changed (304) hide show
  1. package/android/CMakeLists.txt +1 -1
  2. package/android/build.gradle +1 -0
  3. package/android/cpp/jni/JniPlatformContext.cpp +1 -1
  4. package/android/src/main/java/com/shopify/reactnative/skia/ViewScreenshotService.java +104 -103
  5. package/cpp/api/JsiSkImage.h +25 -4
  6. package/cpp/api/JsiSkImageFactory.h +2 -2
  7. package/cpp/api/JsiSkPath.h +8 -6
  8. package/cpp/rnskia/dom/base/Declaration.h +5 -7
  9. package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +3 -1
  10. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +1 -0
  11. package/cpp/rnskia/dom/nodes/JsiPathNode.h +2 -2
  12. package/cpp/rnskia/dom/props/BoxShadowProps.h +2 -0
  13. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +2 -8
  14. package/cpp/skia/include/android/SkImageAndroid.h +101 -0
  15. package/cpp/skia/include/codec/SkAndroidCodec.h +26 -8
  16. package/cpp/skia/include/codec/SkCodec.h +31 -17
  17. package/cpp/skia/include/codec/SkEncodedImageFormat.h +36 -0
  18. package/cpp/skia/include/codec/SkPixmapUtils.h +31 -0
  19. package/cpp/skia/include/config/SkUserConfig.h +61 -29
  20. package/cpp/skia/include/core/SkBitmap.h +25 -25
  21. package/cpp/skia/include/core/SkBlurTypes.h +0 -2
  22. package/cpp/skia/include/core/SkCanvas.h +32 -15
  23. package/cpp/skia/include/core/SkCapabilities.h +2 -2
  24. package/cpp/skia/include/core/SkColor.h +2 -0
  25. package/cpp/skia/include/core/SkColorPriv.h +19 -4
  26. package/cpp/skia/include/core/SkColorSpace.h +14 -17
  27. package/cpp/skia/include/core/SkColorType.h +1 -0
  28. package/cpp/skia/include/core/SkContourMeasure.h +1 -1
  29. package/cpp/skia/include/core/SkCoverageMode.h +0 -2
  30. package/cpp/skia/include/core/SkCubicMap.h +2 -0
  31. package/cpp/skia/include/core/SkData.h +5 -2
  32. package/cpp/skia/include/core/SkDataTable.h +6 -2
  33. package/cpp/skia/include/core/SkDeferredDisplayList.h +11 -10
  34. package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +9 -8
  35. package/cpp/skia/include/core/SkDrawable.h +10 -2
  36. package/cpp/skia/include/core/SkEncodedImageFormat.h +3 -30
  37. package/cpp/skia/include/core/SkFlattenable.h +4 -2
  38. package/cpp/skia/include/core/SkFont.h +1 -0
  39. package/cpp/skia/include/core/SkFontMetrics.h +1 -0
  40. package/cpp/skia/include/core/SkFontMgr.h +20 -29
  41. package/cpp/skia/include/core/SkFontStyle.h +4 -1
  42. package/cpp/skia/include/core/SkGraphics.h +21 -18
  43. package/cpp/skia/include/core/SkICC.h +3 -13
  44. package/cpp/skia/include/core/SkImage.h +395 -717
  45. package/cpp/skia/include/core/SkImageGenerator.h +19 -74
  46. package/cpp/skia/include/core/SkImageInfo.h +7 -5
  47. package/cpp/skia/include/core/SkM44.h +11 -0
  48. package/cpp/skia/include/core/SkMaskFilter.h +6 -3
  49. package/cpp/skia/include/core/SkMatrix.h +14 -4
  50. package/cpp/skia/include/core/SkMesh.h +52 -18
  51. package/cpp/skia/include/core/SkMilestone.h +1 -1
  52. package/cpp/skia/include/core/SkPaint.h +11 -34
  53. package/cpp/skia/include/core/SkPath.h +23 -4
  54. package/cpp/skia/include/core/SkPathBuilder.h +13 -5
  55. package/cpp/skia/include/core/SkPathMeasure.h +1 -1
  56. package/cpp/skia/include/core/SkPathTypes.h +0 -2
  57. package/cpp/skia/include/core/SkPathUtils.h +42 -0
  58. package/cpp/skia/include/core/SkPicture.h +3 -2
  59. package/cpp/skia/include/core/SkPictureRecorder.h +2 -0
  60. package/cpp/skia/include/core/SkPixelRef.h +4 -8
  61. package/cpp/skia/include/core/SkPixmap.h +12 -20
  62. package/cpp/skia/include/core/SkPoint.h +4 -2
  63. package/cpp/skia/include/core/SkPromiseImageTexture.h +2 -2
  64. package/cpp/skia/include/core/SkRRect.h +5 -1
  65. package/cpp/skia/include/core/SkRect.h +6 -3
  66. package/cpp/skia/include/core/SkRefCnt.h +9 -14
  67. package/cpp/skia/include/core/SkRegion.h +1 -1
  68. package/cpp/skia/include/core/SkScalar.h +2 -4
  69. package/cpp/skia/include/core/SkSerialProcs.h +18 -10
  70. package/cpp/skia/include/core/SkShader.h +1 -64
  71. package/cpp/skia/include/core/SkSize.h +2 -0
  72. package/cpp/skia/include/core/SkSpan.h +4 -112
  73. package/cpp/skia/include/core/SkStream.h +11 -12
  74. package/cpp/skia/include/core/SkString.h +9 -25
  75. package/cpp/skia/include/core/SkStrokeRec.h +1 -1
  76. package/cpp/skia/include/core/SkSurface.h +83 -61
  77. package/cpp/skia/include/core/SkSurfaceCharacterization.h +3 -3
  78. package/cpp/skia/include/core/SkSurfaceProps.h +9 -1
  79. package/cpp/skia/include/core/SkTextBlob.h +2 -2
  80. package/cpp/skia/include/core/SkTextureCompressionType.h +30 -0
  81. package/cpp/skia/include/core/SkTime.h +1 -1
  82. package/cpp/skia/include/core/SkTypeface.h +9 -2
  83. package/cpp/skia/include/core/SkTypes.h +37 -466
  84. package/cpp/skia/include/core/SkVertices.h +2 -0
  85. package/cpp/skia/include/core/SkYUVAInfo.h +4 -0
  86. package/cpp/skia/include/core/SkYUVAPixmaps.h +7 -1
  87. package/cpp/skia/include/docs/SkPDFDocument.h +12 -1
  88. package/cpp/skia/include/effects/SkColorMatrix.h +2 -1
  89. package/cpp/skia/include/effects/SkGradientShader.h +65 -14
  90. package/cpp/skia/include/effects/SkImageFilters.h +0 -11
  91. package/cpp/skia/include/effects/SkRuntimeEffect.h +41 -11
  92. package/cpp/skia/include/encode/SkEncoder.h +7 -3
  93. package/cpp/skia/include/encode/SkICC.h +36 -0
  94. package/cpp/skia/include/encode/SkJpegEncoder.h +102 -71
  95. package/cpp/skia/include/encode/SkPngEncoder.h +89 -71
  96. package/cpp/skia/include/encode/SkWebpEncoder.h +65 -38
  97. package/cpp/skia/include/gpu/GpuTypes.h +23 -1
  98. package/cpp/skia/include/gpu/GrBackendSurface.h +9 -7
  99. package/cpp/skia/include/gpu/GrContextOptions.h +28 -9
  100. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +6 -4
  101. package/cpp/skia/include/gpu/GrDirectContext.h +84 -63
  102. package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -1
  103. package/cpp/skia/include/gpu/GrRecordingContext.h +9 -5
  104. package/cpp/skia/include/gpu/GrTypes.h +18 -18
  105. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +4 -4
  106. package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +3 -3
  107. package/cpp/skia/include/gpu/ganesh/GrTextureGenerator.h +77 -0
  108. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +385 -0
  109. package/cpp/skia/include/gpu/gl/GrGLExtensions.h +3 -3
  110. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -1
  111. package/cpp/skia/include/gpu/gl/GrGLInterface.h +0 -3
  112. package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -1
  113. package/cpp/skia/include/gpu/graphite/BackendTexture.h +72 -3
  114. package/cpp/skia/include/gpu/graphite/Context.h +85 -32
  115. package/cpp/skia/include/gpu/graphite/ContextOptions.h +15 -11
  116. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +55 -5
  117. package/cpp/skia/include/gpu/graphite/ImageProvider.h +6 -4
  118. package/cpp/skia/include/gpu/graphite/Recorder.h +41 -11
  119. package/cpp/skia/include/gpu/graphite/Recording.h +50 -3
  120. package/cpp/skia/include/gpu/graphite/TextureInfo.h +47 -8
  121. package/cpp/skia/include/gpu/graphite/YUVABackendTextures.h +139 -0
  122. package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +40 -0
  123. package/cpp/skia/include/gpu/graphite/dawn/DawnUtils.h +28 -0
  124. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +1 -1
  125. package/cpp/skia/include/gpu/graphite/mtl/{MtlTypes.h → MtlGraphiteTypes.h} +7 -6
  126. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteUtils.h +27 -0
  127. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +4 -9
  128. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteUtils.h +28 -0
  129. package/cpp/skia/include/gpu/mock/GrMockTypes.h +17 -13
  130. package/cpp/skia/include/gpu/mtl/GrMtlTypes.h +2 -2
  131. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +1 -1
  132. package/cpp/skia/include/gpu/vk/GrVkTypes.h +3 -3
  133. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +3 -3
  134. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +5 -7
  135. package/cpp/skia/include/pathops/SkPathOps.h +3 -3
  136. package/cpp/skia/include/ports/SkFontMgr_data.h +22 -0
  137. package/cpp/skia/include/ports/SkFontMgr_indirect.h +14 -14
  138. package/cpp/skia/include/ports/SkRemotableFontMgr.h +2 -2
  139. package/cpp/skia/include/ports/SkTypeface_win.h +2 -1
  140. package/cpp/skia/include/private/SkChecksum.h +32 -7
  141. package/cpp/skia/include/private/SkColorData.h +1 -26
  142. package/cpp/skia/include/private/SkGainmapInfo.h +97 -0
  143. package/cpp/skia/include/private/SkGainmapShader.h +53 -0
  144. package/cpp/skia/include/private/SkIDChangeListener.h +4 -3
  145. package/cpp/skia/include/private/SkJpegGainmapEncoder.h +71 -0
  146. package/cpp/skia/include/private/SkJpegMetadataDecoder.h +61 -0
  147. package/cpp/skia/include/private/SkOpts_spi.h +3 -1
  148. package/cpp/skia/include/private/SkPathRef.h +64 -47
  149. package/cpp/skia/include/private/SkSLDefines.h +5 -5
  150. package/cpp/skia/include/private/SkSLSampleUsage.h +0 -4
  151. package/cpp/skia/include/private/SkSpinlock.h +1 -1
  152. package/cpp/skia/include/private/SkWeakRefCnt.h +3 -0
  153. package/cpp/skia/include/private/{SingleOwner.h → base/SingleOwner.h} +8 -5
  154. package/cpp/skia/include/private/base/SkAPI.h +52 -0
  155. package/cpp/skia/include/private/base/SkAlign.h +39 -0
  156. package/cpp/skia/include/private/base/SkAlignedStorage.h +32 -0
  157. package/cpp/skia/include/private/base/SkAssert.h +92 -0
  158. package/cpp/skia/include/private/base/SkAttributes.h +102 -0
  159. package/cpp/skia/include/private/base/SkCPUTypes.h +25 -0
  160. package/cpp/skia/include/private/base/SkContainers.h +46 -0
  161. package/cpp/skia/include/private/base/SkDebug.h +27 -0
  162. package/cpp/skia/include/private/{SkDeque.h → base/SkDeque.h} +3 -1
  163. package/cpp/skia/include/private/base/SkFeatures.h +151 -0
  164. package/cpp/skia/include/private/{SkFixed.h → base/SkFixed.h} +9 -7
  165. package/cpp/skia/include/private/{SkFloatBits.h → base/SkFloatBits.h} +2 -3
  166. package/cpp/skia/include/private/{SkFloatingPoint.h → base/SkFloatingPoint.h} +18 -9
  167. package/cpp/skia/include/private/base/SkLoadUserConfig.h +63 -0
  168. package/cpp/skia/include/private/{SkMacros.h → base/SkMacros.h} +17 -2
  169. package/cpp/skia/include/private/{SkMalloc.h → base/SkMalloc.h} +4 -7
  170. package/cpp/skia/include/{core → private/base}/SkMath.h +25 -2
  171. package/cpp/skia/include/private/{SkMutex.h → base/SkMutex.h} +5 -5
  172. package/cpp/skia/include/private/{SkNoncopyable.h → base/SkNoncopyable.h} +2 -2
  173. package/cpp/skia/include/private/{SkOnce.h → base/SkOnce.h} +3 -1
  174. package/cpp/skia/include/private/base/SkPathEnums.h +25 -0
  175. package/cpp/skia/include/private/{SkSafe32.h → base/SkSafe32.h} +16 -1
  176. package/cpp/skia/include/private/{SkSemaphore.h → base/SkSemaphore.h} +4 -3
  177. package/cpp/skia/include/private/base/SkSpan_impl.h +129 -0
  178. package/cpp/skia/include/private/base/SkTArray.h +694 -0
  179. package/cpp/skia/include/private/{SkTDArray.h → base/SkTDArray.h} +17 -54
  180. package/cpp/skia/include/private/{SkTFitsIn.h → base/SkTFitsIn.h} +14 -8
  181. package/cpp/skia/include/private/{SkTLogic.h → base/SkTLogic.h} +1 -1
  182. package/cpp/skia/include/private/{SkTemplates.h → base/SkTemplates.h} +63 -88
  183. package/cpp/skia/include/private/{SkThreadID.h → base/SkThreadID.h} +5 -2
  184. package/cpp/skia/include/private/{SkTo.h → base/SkTo.h} +13 -2
  185. package/cpp/skia/include/private/base/SkTypeTraits.h +33 -0
  186. package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +130 -0
  187. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +5 -9
  188. package/cpp/skia/include/private/chromium/SkDiscardableMemory.h +70 -0
  189. package/cpp/skia/include/private/chromium/Slug.h +0 -9
  190. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +2 -1
  191. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +1 -1
  192. package/cpp/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h +1 -1
  193. package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +1 -1
  194. package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +1 -1
  195. package/cpp/skia/include/private/gpu/ganesh/GrMockTypesPriv.h +3 -2
  196. package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +1 -1
  197. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +17 -23
  198. package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +2 -2
  199. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +38 -0
  200. package/cpp/skia/include/private/gpu/graphite/{MtlTypesPriv.h → MtlGraphiteTypesPriv.h} +5 -5
  201. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +1 -9
  202. package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +4 -0
  203. package/cpp/skia/include/utils/SkCamera.h +1 -1
  204. package/cpp/skia/include/utils/SkCustomTypeface.h +7 -1
  205. package/cpp/skia/include/utils/SkNWayCanvas.h +6 -6
  206. package/cpp/skia/include/utils/SkOrderedFontMgr.h +7 -6
  207. package/cpp/skia/include/utils/SkPaintFilterCanvas.h +2 -2
  208. package/cpp/skia/include/utils/SkParsePath.h +1 -1
  209. package/cpp/skia/modules/skcms/skcms.h +14 -0
  210. package/cpp/skia/modules/skcms/src/Transform_inl.h +19 -0
  211. package/cpp/skia/modules/skparagraph/include/FontCollection.h +2 -2
  212. package/cpp/skia/modules/skparagraph/include/Paragraph.h +72 -2
  213. package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +1 -11
  214. package/cpp/skia/modules/skparagraph/include/ParagraphPainter.h +63 -0
  215. package/cpp/skia/modules/skparagraph/include/TextStyle.h +27 -4
  216. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +13 -13
  217. package/cpp/skia/modules/skresources/include/SkResources.h +18 -4
  218. package/cpp/skia/modules/svg/include/SkSVGAttribute.h +1 -1
  219. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +2 -2
  220. package/cpp/skia/modules/svg/include/SkSVGContainer.h +2 -2
  221. package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
  222. package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +2 -2
  223. package/cpp/skia/modules/svg/include/SkSVGGradient.h +2 -2
  224. package/cpp/skia/modules/svg/include/SkSVGIDMapper.h +2 -2
  225. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +3 -3
  226. package/cpp/skia/modules/svg/include/SkSVGSVG.h +1 -1
  227. package/cpp/skia/modules/svg/include/SkSVGTypes.h +22 -21
  228. package/cpp/skia/modules/svg/include/SkSVGValue.h +1 -1
  229. package/cpp/skia/{include/private → src/core}/SkTHash.h +41 -37
  230. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +1 -2
  231. package/ios/RNSkia-iOS/ViewScreenshotService.mm +1 -1
  232. package/libs/android/arm64-v8a/libskia.a +0 -0
  233. package/libs/android/arm64-v8a/libskottie.a +0 -0
  234. package/libs/android/arm64-v8a/libsksg.a +0 -0
  235. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  236. package/libs/android/arm64-v8a/libsvg.a +0 -0
  237. package/libs/android/armeabi-v7a/libskia.a +0 -0
  238. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  239. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  240. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  241. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  242. package/libs/android/x86/libskia.a +0 -0
  243. package/libs/android/x86/libskottie.a +0 -0
  244. package/libs/android/x86/libsksg.a +0 -0
  245. package/libs/android/x86/libskshaper.a +0 -0
  246. package/libs/android/x86/libsvg.a +0 -0
  247. package/libs/android/x86_64/libskia.a +0 -0
  248. package/libs/android/x86_64/libskottie.a +0 -0
  249. package/libs/android/x86_64/libsksg.a +0 -0
  250. package/libs/android/x86_64/libskshaper.a +0 -0
  251. package/libs/android/x86_64/libsvg.a +0 -0
  252. package/libs/ios/libskia.xcframework/Info.plist +5 -5
  253. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  254. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  255. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  256. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  257. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  258. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  259. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  260. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  261. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  262. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  263. package/package.json +1 -1
  264. package/react-native-skia.podspec +1 -1
  265. package/scripts/install-npm.js +11 -1
  266. package/cpp/skia/include/core/SkImageEncoder.h +0 -71
  267. package/cpp/skia/include/gpu/GrConfig.h +0 -53
  268. package/cpp/skia/include/gpu/graphite/CombinationBuilder.h +0 -195
  269. package/cpp/skia/include/private/SkHalf.h +0 -38
  270. package/cpp/skia/include/private/SkImageInfoPriv.h +0 -199
  271. package/cpp/skia/include/private/SkSLIRNode.h +0 -64
  272. package/cpp/skia/include/private/SkSLLayout.h +0 -144
  273. package/cpp/skia/include/private/SkSLModifiers.h +0 -178
  274. package/cpp/skia/include/private/SkSLProgramElement.h +0 -77
  275. package/cpp/skia/include/private/SkSLProgramKind.h +0 -35
  276. package/cpp/skia/include/private/SkSLStatement.h +0 -86
  277. package/cpp/skia/include/private/SkSLString.h +0 -41
  278. package/cpp/skia/include/private/SkSLSymbol.h +0 -94
  279. package/cpp/skia/include/private/SkSafe_math.h +0 -52
  280. package/cpp/skia/include/private/SkStringView.h +0 -51
  281. package/cpp/skia/include/private/SkTArray.h +0 -655
  282. package/cpp/skia/include/private/SkUniquePaintParamsID.h +0 -35
  283. package/cpp/skia/include/private/SkVx.h +0 -1026
  284. package/cpp/skia/include/sksl/DSL.h +0 -37
  285. package/cpp/skia/include/sksl/DSLBlock.h +0 -58
  286. package/cpp/skia/include/sksl/DSLCase.h +0 -62
  287. package/cpp/skia/include/sksl/DSLCore.h +0 -492
  288. package/cpp/skia/include/sksl/DSLExpression.h +0 -241
  289. package/cpp/skia/include/sksl/DSLFunction.h +0 -113
  290. package/cpp/skia/include/sksl/DSLLayout.h +0 -92
  291. package/cpp/skia/include/sksl/DSLModifiers.h +0 -69
  292. package/cpp/skia/include/sksl/DSLStatement.h +0 -82
  293. package/cpp/skia/include/sksl/DSLSymbols.h +0 -61
  294. package/cpp/skia/include/sksl/DSLType.h +0 -271
  295. package/cpp/skia/include/sksl/DSLVar.h +0 -231
  296. package/cpp/skia/include/sksl/SkSLErrorReporter.h +0 -65
  297. package/cpp/skia/include/sksl/SkSLOperator.h +0 -154
  298. package/cpp/skia/include/sksl/SkSLPosition.h +0 -104
  299. package/cpp/skia/include/utils/SkRandom.h +0 -169
  300. package/cpp/skia/src/core/SkLRUCache.h +0 -126
  301. package/cpp/skia/src/core/SkTInternalLList.h +0 -302
  302. /package/cpp/skia/include/{core → codec}/SkPngChunkReader.h +0 -0
  303. /package/cpp/skia/include/private/{SkTPin.h → base/SkTPin.h} +0 -0
  304. /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/encode/SkEncoder.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/private/base/SkAPI.h"
13
14
 
14
- class SkPngEncoderMgr;
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
- class SK_API SkPngEncoder : public SkEncoder {
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
- * Encode the |src| pixels to the |dst| stream.
66
- * |options| may be used to control the encoding behavior.
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
- * Returns true on success. Returns false on an invalid or unsupported |src|.
54
+ * Our default value matches libpng's default.
69
55
  */
70
- static bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
56
+ FilterFlag fFilterFlags = FilterFlag::kAll;
71
57
 
72
58
  /**
73
- * Create a png encoder that will encode the |src| pixels to the |dst| stream.
74
- * |options| may be used to control the encoding behavior.
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
- * |dst| is unowned but must remain valid for the lifetime of the object.
77
- *
78
- * This returns nullptr on an invalid or unsupported |src|.
63
+ * Our default value matches libpng's default.
79
64
  */
80
- static std::unique_ptr<SkEncoder> Make(SkWStream* dst, const SkPixmap& src,
81
- const Options& options);
82
-
83
- ~SkPngEncoder() override;
84
-
85
- protected:
86
- bool onEncodeRows(int numRows) override;
65
+ int fZLibLevel = 6;
87
66
 
88
- SkPngEncoder(std::unique_ptr<SkPngEncoderMgr>, const SkPixmap& src);
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
- std::unique_ptr<SkPngEncoderMgr> fEncoderMgr;
91
- using INHERITED = SkEncoder;
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
- static inline SkPngEncoder::FilterFlag operator|(SkPngEncoder::FilterFlag x,
95
- SkPngEncoder::FilterFlag y) {
96
- return (SkPngEncoder::FilterFlag)((int)x | (int)y);
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/SkSpan.h"
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
- enum class Compression {
19
- kLossy,
20
- kLossless,
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
- * Encode the |src| pixels to the |dst| stream.
42
- * |options| may be used to control the encoding behavior.
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
- * Returns true on success. Returns false on an invalid or unsupported |src|.
41
+ * This scheme is designed to match the libwebp API.
45
42
  */
46
- SK_API bool Encode(SkWStream* dst, const SkPixmap& src, const Options& options);
43
+ Compression fCompression = Compression::kLossy;
44
+ float fQuality = 100.0f;
47
45
 
48
46
  /**
49
- * Encode the |src| frames to the |dst| stream.
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
- * Note: libwebp API also supports set background color, loop limit and customize
58
- * lossy/lossless for each frame. These could be added later as needed.
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
- SK_API bool EncodeAnimated(SkWStream* dst,
61
- SkSpan<const SkEncoder::Frame> src,
62
- const Options& options);
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 = true,
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 !SK_SUPPORT_GPU
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, SkImage::CompressionType compression,
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
- SkImage::CompressionType asMockCompressionType() const;
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, SkImage::CompressionType, bool isStencilFormat);
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 fColorType;
263
- SkImage::CompressionType fCompressionType;
264
- bool fIsStencilFormat;
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 SK_SUPPORT_GPU
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), for shader compilation success, and program link success. Ignored on
84
- * backends other than GL.
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 SK_SUPPORT_GPU
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 SkImage::CompressionType. This is
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(SkImage::CompressionType c) const;
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 // !SK_SUPPORT_GPU
165
+ #else // !defined(SK_GANESH)
164
166
  class SK_API GrContextThreadSafeProxy final : public SkNVRefCnt<GrContextThreadSafeProxy> {};
165
167
  #endif
166
168