@shopify/react-native-skia 0.1.192 → 0.1.193

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (301) 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/cpp/api/JsiSkImage.h +25 -4
  5. package/cpp/api/JsiSkImageFactory.h +2 -2
  6. package/cpp/api/JsiSkPath.h +8 -6
  7. package/cpp/rnskia/dom/base/Declaration.h +5 -7
  8. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +1 -0
  9. package/cpp/rnskia/dom/nodes/JsiPathNode.h +2 -2
  10. package/cpp/rnskia/dom/props/BoxShadowProps.h +2 -0
  11. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +2 -8
  12. package/cpp/skia/include/android/SkImageAndroid.h +101 -0
  13. package/cpp/skia/include/codec/SkAndroidCodec.h +26 -8
  14. package/cpp/skia/include/codec/SkCodec.h +31 -17
  15. package/cpp/skia/include/codec/SkEncodedImageFormat.h +36 -0
  16. package/cpp/skia/include/codec/SkPixmapUtils.h +31 -0
  17. package/cpp/skia/include/config/SkUserConfig.h +61 -29
  18. package/cpp/skia/include/core/SkBitmap.h +25 -25
  19. package/cpp/skia/include/core/SkBlurTypes.h +0 -2
  20. package/cpp/skia/include/core/SkCanvas.h +32 -15
  21. package/cpp/skia/include/core/SkCapabilities.h +2 -2
  22. package/cpp/skia/include/core/SkColor.h +2 -0
  23. package/cpp/skia/include/core/SkColorPriv.h +19 -4
  24. package/cpp/skia/include/core/SkColorSpace.h +14 -17
  25. package/cpp/skia/include/core/SkColorType.h +1 -0
  26. package/cpp/skia/include/core/SkContourMeasure.h +1 -1
  27. package/cpp/skia/include/core/SkCoverageMode.h +0 -2
  28. package/cpp/skia/include/core/SkCubicMap.h +2 -0
  29. package/cpp/skia/include/core/SkData.h +5 -2
  30. package/cpp/skia/include/core/SkDataTable.h +6 -2
  31. package/cpp/skia/include/core/SkDeferredDisplayList.h +11 -10
  32. package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +9 -8
  33. package/cpp/skia/include/core/SkDrawable.h +10 -2
  34. package/cpp/skia/include/core/SkEncodedImageFormat.h +3 -30
  35. package/cpp/skia/include/core/SkFlattenable.h +4 -2
  36. package/cpp/skia/include/core/SkFont.h +1 -0
  37. package/cpp/skia/include/core/SkFontMetrics.h +1 -0
  38. package/cpp/skia/include/core/SkFontMgr.h +20 -29
  39. package/cpp/skia/include/core/SkFontStyle.h +4 -1
  40. package/cpp/skia/include/core/SkGraphics.h +21 -18
  41. package/cpp/skia/include/core/SkICC.h +3 -13
  42. package/cpp/skia/include/core/SkImage.h +395 -717
  43. package/cpp/skia/include/core/SkImageGenerator.h +19 -74
  44. package/cpp/skia/include/core/SkImageInfo.h +7 -5
  45. package/cpp/skia/include/core/SkM44.h +11 -0
  46. package/cpp/skia/include/core/SkMaskFilter.h +6 -3
  47. package/cpp/skia/include/core/SkMatrix.h +14 -4
  48. package/cpp/skia/include/core/SkMesh.h +52 -18
  49. package/cpp/skia/include/core/SkMilestone.h +1 -1
  50. package/cpp/skia/include/core/SkPaint.h +11 -34
  51. package/cpp/skia/include/core/SkPath.h +23 -4
  52. package/cpp/skia/include/core/SkPathBuilder.h +13 -5
  53. package/cpp/skia/include/core/SkPathMeasure.h +1 -1
  54. package/cpp/skia/include/core/SkPathTypes.h +0 -2
  55. package/cpp/skia/include/core/SkPathUtils.h +42 -0
  56. package/cpp/skia/include/core/SkPicture.h +3 -2
  57. package/cpp/skia/include/core/SkPictureRecorder.h +2 -0
  58. package/cpp/skia/include/core/SkPixelRef.h +4 -8
  59. package/cpp/skia/include/core/SkPixmap.h +12 -20
  60. package/cpp/skia/include/core/SkPoint.h +4 -2
  61. package/cpp/skia/include/core/SkPromiseImageTexture.h +2 -2
  62. package/cpp/skia/include/core/SkRRect.h +5 -1
  63. package/cpp/skia/include/core/SkRect.h +6 -3
  64. package/cpp/skia/include/core/SkRefCnt.h +9 -14
  65. package/cpp/skia/include/core/SkRegion.h +1 -1
  66. package/cpp/skia/include/core/SkScalar.h +2 -4
  67. package/cpp/skia/include/core/SkSerialProcs.h +18 -10
  68. package/cpp/skia/include/core/SkShader.h +1 -64
  69. package/cpp/skia/include/core/SkSize.h +2 -0
  70. package/cpp/skia/include/core/SkSpan.h +4 -112
  71. package/cpp/skia/include/core/SkStream.h +11 -12
  72. package/cpp/skia/include/core/SkString.h +9 -25
  73. package/cpp/skia/include/core/SkStrokeRec.h +1 -1
  74. package/cpp/skia/include/core/SkSurface.h +83 -61
  75. package/cpp/skia/include/core/SkSurfaceCharacterization.h +3 -3
  76. package/cpp/skia/include/core/SkSurfaceProps.h +9 -1
  77. package/cpp/skia/include/core/SkTextBlob.h +2 -2
  78. package/cpp/skia/include/core/SkTextureCompressionType.h +30 -0
  79. package/cpp/skia/include/core/SkTime.h +1 -1
  80. package/cpp/skia/include/core/SkTypeface.h +9 -2
  81. package/cpp/skia/include/core/SkTypes.h +37 -466
  82. package/cpp/skia/include/core/SkVertices.h +2 -0
  83. package/cpp/skia/include/core/SkYUVAInfo.h +4 -0
  84. package/cpp/skia/include/core/SkYUVAPixmaps.h +7 -1
  85. package/cpp/skia/include/docs/SkPDFDocument.h +12 -1
  86. package/cpp/skia/include/effects/SkColorMatrix.h +2 -1
  87. package/cpp/skia/include/effects/SkGradientShader.h +65 -14
  88. package/cpp/skia/include/effects/SkImageFilters.h +0 -11
  89. package/cpp/skia/include/effects/SkRuntimeEffect.h +41 -11
  90. package/cpp/skia/include/encode/SkEncoder.h +7 -3
  91. package/cpp/skia/include/encode/SkICC.h +36 -0
  92. package/cpp/skia/include/encode/SkJpegEncoder.h +102 -71
  93. package/cpp/skia/include/encode/SkPngEncoder.h +89 -71
  94. package/cpp/skia/include/encode/SkWebpEncoder.h +65 -38
  95. package/cpp/skia/include/gpu/GpuTypes.h +23 -1
  96. package/cpp/skia/include/gpu/GrBackendSurface.h +9 -7
  97. package/cpp/skia/include/gpu/GrContextOptions.h +28 -9
  98. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +6 -4
  99. package/cpp/skia/include/gpu/GrDirectContext.h +84 -63
  100. package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -1
  101. package/cpp/skia/include/gpu/GrRecordingContext.h +9 -5
  102. package/cpp/skia/include/gpu/GrTypes.h +18 -18
  103. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +4 -4
  104. package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +3 -3
  105. package/cpp/skia/include/gpu/ganesh/GrTextureGenerator.h +77 -0
  106. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +385 -0
  107. package/cpp/skia/include/gpu/gl/GrGLExtensions.h +3 -3
  108. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -1
  109. package/cpp/skia/include/gpu/gl/GrGLInterface.h +0 -3
  110. package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -1
  111. package/cpp/skia/include/gpu/graphite/BackendTexture.h +72 -3
  112. package/cpp/skia/include/gpu/graphite/Context.h +85 -32
  113. package/cpp/skia/include/gpu/graphite/ContextOptions.h +15 -11
  114. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +55 -5
  115. package/cpp/skia/include/gpu/graphite/ImageProvider.h +6 -4
  116. package/cpp/skia/include/gpu/graphite/Recorder.h +41 -11
  117. package/cpp/skia/include/gpu/graphite/Recording.h +50 -3
  118. package/cpp/skia/include/gpu/graphite/TextureInfo.h +47 -8
  119. package/cpp/skia/include/gpu/graphite/YUVABackendTextures.h +139 -0
  120. package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +40 -0
  121. package/cpp/skia/include/gpu/graphite/dawn/DawnUtils.h +28 -0
  122. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +1 -1
  123. package/cpp/skia/include/gpu/graphite/mtl/{MtlTypes.h → MtlGraphiteTypes.h} +7 -6
  124. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteUtils.h +27 -0
  125. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +4 -9
  126. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteUtils.h +28 -0
  127. package/cpp/skia/include/gpu/mock/GrMockTypes.h +17 -13
  128. package/cpp/skia/include/gpu/mtl/GrMtlTypes.h +2 -2
  129. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +1 -1
  130. package/cpp/skia/include/gpu/vk/GrVkTypes.h +3 -3
  131. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +3 -3
  132. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +5 -7
  133. package/cpp/skia/include/pathops/SkPathOps.h +3 -3
  134. package/cpp/skia/include/ports/SkFontMgr_data.h +22 -0
  135. package/cpp/skia/include/ports/SkFontMgr_indirect.h +14 -14
  136. package/cpp/skia/include/ports/SkRemotableFontMgr.h +2 -2
  137. package/cpp/skia/include/ports/SkTypeface_win.h +2 -1
  138. package/cpp/skia/include/private/SkChecksum.h +32 -7
  139. package/cpp/skia/include/private/SkColorData.h +1 -26
  140. package/cpp/skia/include/private/SkGainmapInfo.h +97 -0
  141. package/cpp/skia/include/private/SkGainmapShader.h +53 -0
  142. package/cpp/skia/include/private/SkIDChangeListener.h +4 -3
  143. package/cpp/skia/include/private/SkJpegGainmapEncoder.h +71 -0
  144. package/cpp/skia/include/private/SkJpegMetadataDecoder.h +61 -0
  145. package/cpp/skia/include/private/SkOpts_spi.h +3 -1
  146. package/cpp/skia/include/private/SkPathRef.h +64 -47
  147. package/cpp/skia/include/private/SkSLDefines.h +5 -5
  148. package/cpp/skia/include/private/SkSLSampleUsage.h +0 -4
  149. package/cpp/skia/include/private/SkSpinlock.h +1 -1
  150. package/cpp/skia/include/private/SkWeakRefCnt.h +3 -0
  151. package/cpp/skia/include/private/{SingleOwner.h → base/SingleOwner.h} +8 -5
  152. package/cpp/skia/include/private/base/SkAPI.h +52 -0
  153. package/cpp/skia/include/private/base/SkAlign.h +39 -0
  154. package/cpp/skia/include/private/base/SkAlignedStorage.h +32 -0
  155. package/cpp/skia/include/private/base/SkAssert.h +92 -0
  156. package/cpp/skia/include/private/base/SkAttributes.h +102 -0
  157. package/cpp/skia/include/private/base/SkCPUTypes.h +25 -0
  158. package/cpp/skia/include/private/base/SkContainers.h +46 -0
  159. package/cpp/skia/include/private/base/SkDebug.h +27 -0
  160. package/cpp/skia/include/private/{SkDeque.h → base/SkDeque.h} +3 -1
  161. package/cpp/skia/include/private/base/SkFeatures.h +151 -0
  162. package/cpp/skia/include/private/{SkFixed.h → base/SkFixed.h} +9 -7
  163. package/cpp/skia/include/private/{SkFloatBits.h → base/SkFloatBits.h} +2 -3
  164. package/cpp/skia/include/private/{SkFloatingPoint.h → base/SkFloatingPoint.h} +18 -9
  165. package/cpp/skia/include/private/base/SkLoadUserConfig.h +63 -0
  166. package/cpp/skia/include/private/{SkMacros.h → base/SkMacros.h} +17 -2
  167. package/cpp/skia/include/private/{SkMalloc.h → base/SkMalloc.h} +4 -7
  168. package/cpp/skia/include/{core → private/base}/SkMath.h +25 -2
  169. package/cpp/skia/include/private/{SkMutex.h → base/SkMutex.h} +5 -5
  170. package/cpp/skia/include/private/{SkNoncopyable.h → base/SkNoncopyable.h} +2 -2
  171. package/cpp/skia/include/private/{SkOnce.h → base/SkOnce.h} +3 -1
  172. package/cpp/skia/include/private/base/SkPathEnums.h +25 -0
  173. package/cpp/skia/include/private/{SkSafe32.h → base/SkSafe32.h} +16 -1
  174. package/cpp/skia/include/private/{SkSemaphore.h → base/SkSemaphore.h} +4 -3
  175. package/cpp/skia/include/private/base/SkSpan_impl.h +129 -0
  176. package/cpp/skia/include/private/base/SkTArray.h +694 -0
  177. package/cpp/skia/include/private/{SkTDArray.h → base/SkTDArray.h} +17 -54
  178. package/cpp/skia/include/private/{SkTFitsIn.h → base/SkTFitsIn.h} +14 -8
  179. package/cpp/skia/include/private/{SkTLogic.h → base/SkTLogic.h} +1 -1
  180. package/cpp/skia/include/private/{SkTemplates.h → base/SkTemplates.h} +63 -88
  181. package/cpp/skia/include/private/{SkThreadID.h → base/SkThreadID.h} +5 -2
  182. package/cpp/skia/include/private/{SkTo.h → base/SkTo.h} +13 -2
  183. package/cpp/skia/include/private/base/SkTypeTraits.h +33 -0
  184. package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +130 -0
  185. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +5 -9
  186. package/cpp/skia/include/private/chromium/SkDiscardableMemory.h +70 -0
  187. package/cpp/skia/include/private/chromium/Slug.h +0 -9
  188. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +2 -1
  189. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +1 -1
  190. package/cpp/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h +1 -1
  191. package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +1 -1
  192. package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +1 -1
  193. package/cpp/skia/include/private/gpu/ganesh/GrMockTypesPriv.h +3 -2
  194. package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +1 -1
  195. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +17 -23
  196. package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +2 -2
  197. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +38 -0
  198. package/cpp/skia/include/private/gpu/graphite/{MtlTypesPriv.h → MtlGraphiteTypesPriv.h} +5 -5
  199. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +1 -9
  200. package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +4 -0
  201. package/cpp/skia/include/utils/SkCamera.h +1 -1
  202. package/cpp/skia/include/utils/SkCustomTypeface.h +7 -1
  203. package/cpp/skia/include/utils/SkNWayCanvas.h +6 -6
  204. package/cpp/skia/include/utils/SkOrderedFontMgr.h +7 -6
  205. package/cpp/skia/include/utils/SkPaintFilterCanvas.h +2 -2
  206. package/cpp/skia/include/utils/SkParsePath.h +1 -1
  207. package/cpp/skia/modules/skcms/skcms.h +14 -0
  208. package/cpp/skia/modules/skcms/src/Transform_inl.h +19 -0
  209. package/cpp/skia/modules/skparagraph/include/FontCollection.h +2 -2
  210. package/cpp/skia/modules/skparagraph/include/Paragraph.h +72 -2
  211. package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +1 -11
  212. package/cpp/skia/modules/skparagraph/include/ParagraphPainter.h +63 -0
  213. package/cpp/skia/modules/skparagraph/include/TextStyle.h +27 -4
  214. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +13 -13
  215. package/cpp/skia/modules/skresources/include/SkResources.h +18 -4
  216. package/cpp/skia/modules/svg/include/SkSVGAttribute.h +1 -1
  217. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +2 -2
  218. package/cpp/skia/modules/svg/include/SkSVGContainer.h +2 -2
  219. package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
  220. package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +2 -2
  221. package/cpp/skia/modules/svg/include/SkSVGGradient.h +2 -2
  222. package/cpp/skia/modules/svg/include/SkSVGIDMapper.h +2 -2
  223. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +3 -3
  224. package/cpp/skia/modules/svg/include/SkSVGSVG.h +1 -1
  225. package/cpp/skia/modules/svg/include/SkSVGTypes.h +22 -21
  226. package/cpp/skia/modules/svg/include/SkSVGValue.h +1 -1
  227. package/cpp/skia/{include/private → src/core}/SkTHash.h +41 -37
  228. package/ios/RNSkia-iOS/ViewScreenshotService.mm +1 -1
  229. package/libs/android/arm64-v8a/libskia.a +0 -0
  230. package/libs/android/arm64-v8a/libskottie.a +0 -0
  231. package/libs/android/arm64-v8a/libsksg.a +0 -0
  232. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  233. package/libs/android/arm64-v8a/libsvg.a +0 -0
  234. package/libs/android/armeabi-v7a/libskia.a +0 -0
  235. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  236. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  237. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  238. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  239. package/libs/android/x86/libskia.a +0 -0
  240. package/libs/android/x86/libskottie.a +0 -0
  241. package/libs/android/x86/libsksg.a +0 -0
  242. package/libs/android/x86/libskshaper.a +0 -0
  243. package/libs/android/x86/libsvg.a +0 -0
  244. package/libs/android/x86_64/libskia.a +0 -0
  245. package/libs/android/x86_64/libskottie.a +0 -0
  246. package/libs/android/x86_64/libsksg.a +0 -0
  247. package/libs/android/x86_64/libskshaper.a +0 -0
  248. package/libs/android/x86_64/libsvg.a +0 -0
  249. package/libs/ios/libskia.xcframework/Info.plist +5 -5
  250. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  251. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  252. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  253. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  254. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  255. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  256. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  257. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  258. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  259. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  260. package/package.json +1 -1
  261. package/react-native-skia.podspec +1 -1
  262. package/scripts/install-npm.js +11 -1
  263. package/cpp/skia/include/core/SkImageEncoder.h +0 -71
  264. package/cpp/skia/include/gpu/GrConfig.h +0 -53
  265. package/cpp/skia/include/gpu/graphite/CombinationBuilder.h +0 -195
  266. package/cpp/skia/include/private/SkHalf.h +0 -38
  267. package/cpp/skia/include/private/SkImageInfoPriv.h +0 -199
  268. package/cpp/skia/include/private/SkSLIRNode.h +0 -64
  269. package/cpp/skia/include/private/SkSLLayout.h +0 -144
  270. package/cpp/skia/include/private/SkSLModifiers.h +0 -178
  271. package/cpp/skia/include/private/SkSLProgramElement.h +0 -77
  272. package/cpp/skia/include/private/SkSLProgramKind.h +0 -35
  273. package/cpp/skia/include/private/SkSLStatement.h +0 -86
  274. package/cpp/skia/include/private/SkSLString.h +0 -41
  275. package/cpp/skia/include/private/SkSLSymbol.h +0 -94
  276. package/cpp/skia/include/private/SkSafe_math.h +0 -52
  277. package/cpp/skia/include/private/SkStringView.h +0 -51
  278. package/cpp/skia/include/private/SkTArray.h +0 -655
  279. package/cpp/skia/include/private/SkUniquePaintParamsID.h +0 -35
  280. package/cpp/skia/include/private/SkVx.h +0 -1026
  281. package/cpp/skia/include/sksl/DSL.h +0 -37
  282. package/cpp/skia/include/sksl/DSLBlock.h +0 -58
  283. package/cpp/skia/include/sksl/DSLCase.h +0 -62
  284. package/cpp/skia/include/sksl/DSLCore.h +0 -492
  285. package/cpp/skia/include/sksl/DSLExpression.h +0 -241
  286. package/cpp/skia/include/sksl/DSLFunction.h +0 -113
  287. package/cpp/skia/include/sksl/DSLLayout.h +0 -92
  288. package/cpp/skia/include/sksl/DSLModifiers.h +0 -69
  289. package/cpp/skia/include/sksl/DSLStatement.h +0 -82
  290. package/cpp/skia/include/sksl/DSLSymbols.h +0 -61
  291. package/cpp/skia/include/sksl/DSLType.h +0 -271
  292. package/cpp/skia/include/sksl/DSLVar.h +0 -231
  293. package/cpp/skia/include/sksl/SkSLErrorReporter.h +0 -65
  294. package/cpp/skia/include/sksl/SkSLOperator.h +0 -154
  295. package/cpp/skia/include/sksl/SkSLPosition.h +0 -104
  296. package/cpp/skia/include/utils/SkRandom.h +0 -169
  297. package/cpp/skia/src/core/SkLRUCache.h +0 -126
  298. package/cpp/skia/src/core/SkTInternalLList.h +0 -302
  299. /package/cpp/skia/include/{core → codec}/SkPngChunkReader.h +0 -0
  300. /package/cpp/skia/include/private/{SkTPin.h → base/SkTPin.h} +0 -0
  301. /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