@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
@@ -8,10 +8,7 @@
8
8
  #ifndef SkCodec_DEFINED
9
9
  #define SkCodec_DEFINED
10
10
 
11
- #include "include/codec/SkCodecAnimation.h"
12
11
  #include "include/codec/SkEncodedOrigin.h"
13
- #include "include/core/SkAlphaType.h"
14
- #include "include/core/SkEncodedImageFormat.h"
15
12
  #include "include/core/SkImageInfo.h"
16
13
  #include "include/core/SkPixmap.h"
17
14
  #include "include/core/SkRect.h"
@@ -20,21 +17,30 @@
20
17
  #include "include/core/SkTypes.h"
21
18
  #include "include/core/SkYUVAPixmaps.h"
22
19
  #include "include/private/SkEncodedInfo.h"
23
- #include "include/private/SkNoncopyable.h"
20
+ #include "include/private/base/SkNoncopyable.h"
24
21
  #include "modules/skcms/skcms.h"
25
22
 
26
23
  #include <cstddef>
24
+ #include <functional>
27
25
  #include <memory>
28
26
  #include <tuple>
29
27
  #include <vector>
30
28
 
31
- class SkAndroidCodec;
32
29
  class SkData;
33
30
  class SkFrameHolder;
34
31
  class SkImage;
35
32
  class SkPngChunkReader;
36
33
  class SkSampler;
37
34
  class SkStream;
35
+ struct SkGainmapInfo;
36
+ enum SkAlphaType : int;
37
+ enum class SkEncodedImageFormat;
38
+
39
+ namespace SkCodecAnimation {
40
+ enum class Blend;
41
+ enum class DisposalMethod;
42
+ }
43
+
38
44
 
39
45
  namespace DM {
40
46
  class CodecSrc;
@@ -767,6 +773,8 @@ protected:
767
773
  return fSrcXformFormat;
768
774
  }
769
775
 
776
+ virtual bool onGetGainmapInfo(SkGainmapInfo*, std::unique_ptr<SkStream>*) { return false; }
777
+
770
778
  virtual SkISize onGetScaledDimensions(float /*desiredScale*/) const {
771
779
  // By default, scaling is not supported.
772
780
  return this->dimensions();
@@ -887,8 +895,8 @@ private:
887
895
  const SkEncodedInfo fEncodedInfo;
888
896
  XformFormat fSrcXformFormat;
889
897
  std::unique_ptr<SkStream> fStream;
890
- bool fNeedsRewind;
891
- const SkEncodedOrigin fOrigin;
898
+ bool fNeedsRewind = false;
899
+ const SkEncodedOrigin fOrigin;
892
900
 
893
901
  SkImageInfo fDstInfo;
894
902
  Options fOptions;
@@ -904,13 +912,13 @@ private:
904
912
  skcms_AlphaFormat fDstXformAlphaFormat;
905
913
 
906
914
  // Only meaningful during scanline decodes.
907
- int fCurrScanline;
915
+ int fCurrScanline = -1;
908
916
 
909
- bool fStartedIncrementalDecode;
917
+ bool fStartedIncrementalDecode = false;
910
918
 
911
919
  // Allows SkAndroidCodec to call handleFrameIndex (potentially decoding a prior frame and
912
- // clearing to transparent) without SkCodec calling it, too.
913
- bool fAndroidCodecHandlesFrameIndex;
920
+ // clearing to transparent) without SkCodec itself calling it, too.
921
+ bool fUsingCallbackForHandleFrameIndex = false;
914
922
 
915
923
  bool initializeColorXform(const SkImageInfo& dstInfo, SkEncodedInfo::Alpha, bool srcIsOpaque);
916
924
 
@@ -934,17 +942,23 @@ private:
934
942
  return nullptr;
935
943
  }
936
944
 
945
+ // Callback for decoding a prior frame. The `Options::fFrameIndex` is ignored,
946
+ // being replaced by frameIndex. This allows opts to actually be a subclass of
947
+ // SkCodec::Options which SkCodec itself does not know how to copy or modify,
948
+ // but just passes through to the caller (where it can be reinterpret_cast'd).
949
+ using GetPixelsCallback = std::function<Result(const SkImageInfo&, void* pixels,
950
+ size_t rowBytes, const Options& opts,
951
+ int frameIndex)>;
952
+
937
953
  /**
938
954
  * Check for a valid Options.fFrameIndex, and decode prior frames if necessary.
939
955
  *
940
- * If androidCodec is not null, that means this SkCodec is owned by an SkAndroidCodec. In that
941
- * case, the Options will be treated as an AndroidOptions, and SkAndroidCodec will be used to
942
- * decode a prior frame, if a prior frame is needed. When such an owned SkCodec calls
943
- * handleFrameIndex, it will immediately return kSuccess, since SkAndroidCodec already handled
944
- * it.
956
+ * If GetPixelsCallback is not null, it will be used to decode a prior frame instead
957
+ * of using this SkCodec directly. It may also be used recursively, if that in turn
958
+ * depends on a prior frame. This is used by SkAndroidCodec.
945
959
  */
946
960
  Result handleFrameIndex(const SkImageInfo&, void* pixels, size_t rowBytes, const Options&,
947
- SkAndroidCodec* androidCodec = nullptr);
961
+ GetPixelsCallback = nullptr);
948
962
 
949
963
  // Methods for scanline decoding.
950
964
  virtual Result onStartScanlineDecode(const SkImageInfo& /*dstInfo*/,
@@ -0,0 +1,36 @@
1
+ /*
2
+ * Copyright 2015 Google Inc.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef SkEncodedImageFormat_DEFINED
9
+ #define SkEncodedImageFormat_DEFINED
10
+
11
+ #include <stdint.h>
12
+
13
+ /**
14
+ * Enum describing format of encoded data.
15
+ */
16
+ enum class SkEncodedImageFormat {
17
+ #ifdef SK_BUILD_FOR_GOOGLE3
18
+ kUnknown,
19
+ #endif
20
+ kBMP,
21
+ kGIF,
22
+ kICO,
23
+ kJPEG,
24
+ kPNG,
25
+ kWBMP,
26
+ kWEBP,
27
+ kPKM,
28
+ kKTX,
29
+ kASTC,
30
+ kDNG,
31
+ kHEIF,
32
+ kAVIF,
33
+ kJPEGXL,
34
+ };
35
+
36
+ #endif // SkEncodedImageFormat_DEFINED
@@ -0,0 +1,31 @@
1
+ /*
2
+ * Copyright 2023 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef SkPixmapUtils_DEFINED
9
+ #define SkPixmapUtils_DEFINED
10
+
11
+ #include "include/codec/SkEncodedOrigin.h"
12
+ #include "include/core/SkImageInfo.h"
13
+ #include "include/private/base/SkAPI.h"
14
+
15
+ class SkPixmap;
16
+
17
+ namespace SkPixmapUtils {
18
+ /**
19
+ * Copy the pixels in src into dst, applying the orientation transformations specified
20
+ * by origin. If the inputs are invalid, this returns false and no copy is made.
21
+ */
22
+ SK_API bool Orient(const SkPixmap& dst, const SkPixmap& src, SkEncodedOrigin origin);
23
+
24
+ /**
25
+ * Return a copy of the provided ImageInfo with the width and height swapped.
26
+ */
27
+ SK_API SkImageInfo SwapWidthHeight(const SkImageInfo& info);
28
+
29
+ } // namespace SkPixmapUtils
30
+
31
+ #endif // SkPixmapUtils_DEFINED
@@ -1,4 +1,3 @@
1
-
2
1
  /*
3
2
  * Copyright 2006 The Android Open Source Project
4
3
  *
@@ -6,7 +5,6 @@
6
5
  * found in the LICENSE file.
7
6
  */
8
7
 
9
-
10
8
  #ifndef SkUserConfig_DEFINED
11
9
  #define SkUserConfig_DEFINED
12
10
 
@@ -16,9 +14,9 @@
16
14
 
17
15
  Below are optional defines that add, subtract, or change default behavior
18
16
  in Skia. Your port can locally edit this file to enable/disable flags as
19
- you choose, or these can be delared on your command line (i.e. -Dfoo).
17
+ you choose, or these can be declared on your command line (i.e. -Dfoo).
20
18
 
21
- By default, this include file will always default to having all of the flags
19
+ By default, this #include file will always default to having all the flags
22
20
  commented out, so including it will have no effect.
23
21
  */
24
22
 
@@ -32,58 +30,92 @@
32
30
  By default, these mutually exclusive flags are defined in SkTypes.h,
33
31
  based on the presence or absence of NDEBUG, but that decision can be changed
34
32
  here.
35
- */
33
+ */
36
34
  //#define SK_DEBUG
37
35
  //#define SK_RELEASE
38
36
 
39
37
  /* To write debug messages to a console, skia will call SkDebugf(...) following
40
38
  printf conventions (e.g. const char* format, ...). If you want to redirect
41
39
  this to something other than printf, define yours here
42
- */
40
+ */
43
41
  //#define SkDebugf(...) MyFunction(__VA_ARGS__)
44
42
 
45
- /*
46
- * To specify a different default font cache limit, define this. If this is
47
- * undefined, skia will use a built-in value.
48
- */
43
+ /* Skia has both debug and release asserts. When an assert fails SK_ABORT will
44
+ be used to report an abort message. SK_ABORT is expected not to return. Skia
45
+ provides a default implementation which will print the message with SkDebugf
46
+ and then call sk_abort_no_print.
47
+ */
48
+ //#define SK_ABORT(message, ...)
49
+
50
+ /* To specify a different default font strike cache memory limit, define this. If this is
51
+ undefined, skia will use a built-in value.
52
+ */
49
53
  //#define SK_DEFAULT_FONT_CACHE_LIMIT (1024 * 1024)
50
54
 
51
- /*
52
- * To specify the default size of the image cache, undefine this and set it to
53
- * the desired value (in bytes). SkGraphics.h as a runtime API to set this
54
- * value as well. If this is undefined, a built-in value will be used.
55
- */
55
+ /* To specify a different default font strike cache count limit, define this. If this is
56
+ undefined, skia will use a built-in value.
57
+ */
58
+ // #define SK_DEFAULT_FONT_CACHE_COUNT_LIMIT 2048
59
+
60
+ /* To specify the default size of the image cache, undefine this and set it to
61
+ the desired value (in bytes). SkGraphics.h as a runtime API to set this
62
+ value as well. If this is undefined, a built-in value will be used.
63
+ */
56
64
  //#define SK_DEFAULT_IMAGE_CACHE_LIMIT (1024 * 1024)
57
65
 
58
66
  /* Define this to set the upper limit for text to support LCD. Values that
59
67
  are very large increase the cost in the font cache and draw slower, without
60
68
  improving readability. If this is undefined, Skia will use its default
61
69
  value (e.g. 48)
62
- */
70
+ */
63
71
  //#define SK_MAX_SIZE_FOR_LCDTEXT 48
64
72
 
65
73
  /* Change the kN32_SkColorType ordering to BGRA to work in X windows.
66
- */
74
+ */
67
75
  //#define SK_R32_SHIFT 16
68
76
 
69
-
70
- /* Determines whether to build code that supports the GPU backend. Some classes
77
+ /* Determines whether to build code that supports the Ganesh GPU backend. Some classes
71
78
  that are not GPU-specific, such as SkShader subclasses, have optional code
72
- that is used allows them to interact with the GPU backend. If you'd like to
73
- omit this code set SK_SUPPORT_GPU to 0. This also allows you to omit the gpu
74
- directories from your include search path when you're not building the GPU
75
- backend. Defaults to 1 (build the GPU code).
76
- */
77
- //#define SK_SUPPORT_GPU 1
79
+ that is used allows them to interact with this GPU backend. If you'd like to
80
+ include this code, include -DSK_GANESH in your cflags or uncomment below.
81
+ Defaults to not set (No Ganesh GPU backend).
82
+ This define affects the ABI of Skia, so make sure it matches the client which uses
83
+ the compiled version of Skia.
84
+ */
85
+ //#define SK_GANESH
78
86
 
79
87
  /* Skia makes use of histogram logging macros to trace the frequency of
80
- * events. By default, Skia provides no-op versions of these macros.
81
- * Skia consumers can provide their own definitions of these macros to
82
- * integrate with their histogram collection backend.
83
- */
88
+ events. By default, Skia provides no-op versions of these macros.
89
+ Skia consumers can provide their own definitions of these macros to
90
+ integrate with their histogram collection backend.
91
+ */
84
92
  //#define SK_HISTOGRAM_BOOLEAN(name, sample)
85
93
  //#define SK_HISTOGRAM_ENUMERATION(name, sample, enum_size)
86
94
  //#define SK_HISTOGRAM_EXACT_LINEAR(name, sample, value_max)
87
95
  //#define SK_HISTOGRAM_MEMORY_KB(name, sample)
88
96
 
97
+ /* Skia tries to make use of some non-standard C++ language extensions.
98
+ By default, Skia provides msvc and clang/gcc versions of these macros.
99
+ Skia consumers can provide their own definitions of these macros to
100
+ integrate with their own compilers and build system.
101
+ */
102
+ //#define SK_UNUSED [[maybe_unused]]
103
+ //#define SK_WARN_UNUSED_RESULT [[nodiscard]]
104
+ //#define SK_ALWAYS_INLINE inline __attribute__((always_inline))
105
+ //#define SK_NEVER_INLINE __attribute__((noinline))
106
+ //#define SK_PRINTF_LIKE(A, B) __attribute__((format(printf, (A), (B))))
107
+ //#define SK_NO_SANITIZE(A) __attribute__((no_sanitize(A)))
108
+ //#define SK_TRIVIAL_ABI [[clang::trivial_abi]]
109
+
110
+ /*
111
+ * If compiling Skia as a DLL, public APIs should be exported. Skia will set
112
+ * SK_API to something sensible for Clang and MSVC, but if clients need to
113
+ * customize it for their build system or compiler, they may.
114
+ * If a client needs to use SK_API (e.g. overriding SK_ABORT), then they
115
+ * *must* define their own, the default will not be defined prior to loading
116
+ * this file.
117
+ */
118
+ //#define SK_API __declspec(dllexport)
119
+
120
+
89
121
  #endif
@@ -8,24 +8,32 @@
8
8
  #ifndef SkBitmap_DEFINED
9
9
  #define SkBitmap_DEFINED
10
10
 
11
+ #include "include/core/SkAlphaType.h"
11
12
  #include "include/core/SkColor.h"
12
13
  #include "include/core/SkImageInfo.h"
13
- #include "include/core/SkMatrix.h"
14
14
  #include "include/core/SkPixmap.h"
15
15
  #include "include/core/SkPoint.h"
16
+ #include "include/core/SkRect.h"
16
17
  #include "include/core/SkRefCnt.h"
17
- #include "include/core/SkShader.h"
18
- #include "include/core/SkTileMode.h"
18
+ #include "include/core/SkSamplingOptions.h"
19
+ #include "include/core/SkSize.h"
20
+ #include "include/core/SkTypes.h"
21
+ #include "include/private/base/SkCPUTypes.h"
22
+ #include "include/private/base/SkDebug.h"
23
+
24
+ #include <cstddef>
25
+ #include <cstdint>
19
26
 
20
- class SkBitmap;
21
27
  class SkColorSpace;
22
- struct SkMask;
28
+ class SkImage;
29
+ class SkMatrix;
23
30
  class SkMipmap;
24
- struct SkIRect;
25
- struct SkRect;
26
31
  class SkPaint;
27
32
  class SkPixelRef;
28
33
  class SkShader;
34
+ enum SkColorType : int;
35
+ enum class SkTileMode;
36
+ struct SkMask;
29
37
 
30
38
  /** \class SkBitmap
31
39
  SkBitmap describes a two-dimensional raster pixel array. SkBitmap is built on
@@ -766,11 +774,10 @@ public:
766
774
  treated as opaque. If colorType() is kAlpha_8_SkColorType, then RGB is ignored.
767
775
 
768
776
  @param c unpremultiplied color
769
- @param colorSpace SkColorSpace of c
770
777
 
771
778
  example: https://fiddle.skia.org/c/@Bitmap_eraseColor
772
779
  */
773
- void eraseColor(SkColor4f c, SkColorSpace* colorSpace = nullptr) const;
780
+ void eraseColor(SkColor4f) const;
774
781
 
775
782
  /** Replaces pixel values with c, interpreted as being in the sRGB SkColorSpace.
776
783
  All pixels contained by bounds() are affected. If the colorType() is
@@ -810,11 +817,9 @@ public:
810
817
 
811
818
  @param c unpremultiplied color
812
819
  @param area rectangle to fill
813
- @param colorSpace SkColorSpace of c
814
820
 
815
821
  example: https://fiddle.skia.org/c/@Bitmap_erase
816
822
  */
817
- void erase(SkColor4f c, SkColorSpace* colorSpace, const SkIRect& area) const;
818
823
  void erase(SkColor4f c, const SkIRect& area) const;
819
824
 
820
825
  /** Replaces pixel values inside area with c. interpreted as being in the sRGB
@@ -1168,23 +1173,18 @@ public:
1168
1173
  example: https://fiddle.skia.org/c/@Bitmap_peekPixels
1169
1174
  */
1170
1175
  bool peekPixels(SkPixmap* pixmap) const;
1171
- sk_sp<SkShader> makeShader(SkTileMode tmx, SkTileMode tmy, const SkSamplingOptions&,
1172
- const SkMatrix* = nullptr) const;
1173
1176
 
1177
+ /**
1178
+ * Make a shader with the specified tiling, matrix and sampling.
1179
+ */
1180
+ sk_sp<SkShader> makeShader(SkTileMode tmx, SkTileMode tmy, const SkSamplingOptions&,
1181
+ const SkMatrix* localMatrix = nullptr) const;
1174
1182
  sk_sp<SkShader> makeShader(SkTileMode tmx, SkTileMode tmy, const SkSamplingOptions& sampling,
1175
- const SkMatrix& localMatrix) const {
1176
- return this->makeShader(tmx, tmy, sampling, &localMatrix);
1177
- }
1178
-
1179
- sk_sp<SkShader> makeShader(const SkSamplingOptions& sampling,
1180
- const SkMatrix* localMatrix = nullptr) const {
1181
- return this->makeShader(SkTileMode::kClamp, SkTileMode::kClamp, sampling, localMatrix);
1182
- }
1183
-
1183
+ const SkMatrix& lm) const;
1184
+ /** Defaults to clamp in both X and Y. */
1185
+ sk_sp<SkShader> makeShader(const SkSamplingOptions& sampling, const SkMatrix& lm) const;
1184
1186
  sk_sp<SkShader> makeShader(const SkSamplingOptions& sampling,
1185
- const SkMatrix& localMatrix) const {
1186
- return this->makeShader(sampling, &localMatrix);
1187
- }
1187
+ const SkMatrix* lm = nullptr) const;
1188
1188
 
1189
1189
  /**
1190
1190
  * Returns a new image from the bitmap. If the bitmap is marked immutable, this will
@@ -8,8 +8,6 @@
8
8
  #ifndef SkBlurTypes_DEFINED
9
9
  #define SkBlurTypes_DEFINED
10
10
 
11
- #include "include/core/SkTypes.h"
12
-
13
11
  enum SkBlurStyle : int {
14
12
  kNormal_SkBlurStyle, //!< fuzzy inside and outside
15
13
  kSolid_SkBlurStyle, //!< solid inside, fuzzy outside
@@ -12,6 +12,7 @@
12
12
  #include "include/core/SkClipOp.h"
13
13
  #include "include/core/SkColor.h"
14
14
  #include "include/core/SkFontTypes.h"
15
+ #include "include/core/SkImageFilter.h"
15
16
  #include "include/core/SkImageInfo.h"
16
17
  #include "include/core/SkM44.h"
17
18
  #include "include/core/SkMatrix.h"
@@ -26,13 +27,13 @@
26
27
  #include "include/core/SkString.h"
27
28
  #include "include/core/SkSurfaceProps.h"
28
29
  #include "include/core/SkTypes.h"
29
- #include "include/private/SkDeque.h"
30
- #include "include/private/SkMacros.h"
30
+ #include "include/private/base/SkCPUTypes.h"
31
+ #include "include/private/base/SkDeque.h"
31
32
 
33
+ #include <cstdint>
32
34
  #include <cstring>
33
35
  #include <memory>
34
36
  #include <optional>
35
- #include <vector>
36
37
 
37
38
  #ifndef SK_SUPPORT_LEGACY_GETTOTALMATRIX
38
39
  #define SK_SUPPORT_LEGACY_GETTOTALMATRIX
@@ -44,34 +45,39 @@ class GlyphRunList;
44
45
  }
45
46
 
46
47
  class AutoLayerForImageFilter;
47
- class GrBackendRenderTarget;
48
48
  class GrRecordingContext;
49
+
49
50
  class SkBaseDevice;
50
51
  class SkBitmap;
52
+ class SkBlender;
51
53
  class SkData;
52
54
  class SkDrawable;
53
- struct SkDrawShadowRec;
54
55
  class SkFont;
55
56
  class SkImage;
56
- class SkImageFilter;
57
+ class SkMesh;
57
58
  class SkPaintFilterCanvas;
58
59
  class SkPath;
59
60
  class SkPicture;
60
61
  class SkPixmap;
61
- class SkRegion;
62
62
  class SkRRect;
63
- struct SkRSXform;
64
- class SkMesh;
63
+ class SkRegion;
64
+ class SkShader;
65
65
  class SkSpecialImage;
66
66
  class SkSurface;
67
67
  class SkSurface_Base;
68
68
  class SkTextBlob;
69
69
  class SkVertices;
70
+ struct SkDrawShadowRec;
71
+ struct SkRSXform;
70
72
 
71
73
  namespace skgpu::graphite { class Recorder; }
72
74
  namespace sktext::gpu { class Slug; }
73
75
  namespace SkRecords { class Draw; }
74
76
 
77
+ #if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) && defined(SK_GANESH)
78
+ class GrBackendRenderTarget;
79
+ #endif
80
+
75
81
  // TODO:
76
82
  // This is not ideal but Chrome is depending on a forward decl of GrSlug here.
77
83
  // It should be removed once Chrome has migrated to sktext::gpu::Slug.
@@ -650,7 +656,7 @@ public:
650
656
  SkRect bounds suggests but does not define layer size. To clip drawing to
651
657
  a specific rectangle, use clipRect().
652
658
 
653
- alpha of zero is fully transparent, 255 is fully opaque.
659
+ alpha of zero is fully transparent, 1.0f is fully opaque.
654
660
 
655
661
  Call restoreToCount() with returned value to restore this and subsequent saves.
656
662
 
@@ -660,7 +666,11 @@ public:
660
666
 
661
667
  example: https://fiddle.skia.org/c/@Canvas_saveLayerAlpha
662
668
  */
663
- int saveLayerAlpha(const SkRect* bounds, U8CPU alpha);
669
+ int saveLayerAlphaf(const SkRect* bounds, float alpha);
670
+ // Helper that accepts an int between 0 and 255, and divides it by 255.0
671
+ int saveLayerAlpha(const SkRect* bounds, U8CPU alpha) {
672
+ return this->saveLayerAlphaf(bounds, alpha * (1.0f / 255));
673
+ }
664
674
 
665
675
  /** \enum SkCanvas::SaveLayerFlagsSet
666
676
  SaveLayerFlags provides options that may be used in any combination in SaveLayerRec,
@@ -2173,7 +2183,7 @@ public:
2173
2183
 
2174
2184
  ///////////////////////////////////////////////////////////////////////////
2175
2185
 
2176
- #if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) && SK_SUPPORT_GPU
2186
+ #if defined(SK_BUILD_FOR_ANDROID_FRAMEWORK) && defined(SK_GANESH)
2177
2187
  // These methods exist to support WebView in Android Framework.
2178
2188
  SkIRect topLayerBounds() const;
2179
2189
  GrBackendRenderTarget topLayerBackendRenderTarget() const;
@@ -2290,7 +2300,7 @@ protected:
2290
2300
 
2291
2301
  virtual void onDiscard();
2292
2302
 
2293
- #if (SK_SUPPORT_GPU || defined(SK_GRAPHITE_ENABLED))
2303
+ #if (defined(SK_GANESH) || defined(SK_GRAPHITE))
2294
2304
  /** Experimental
2295
2305
  */
2296
2306
  virtual sk_sp<sktext::gpu::Slug> onConvertGlyphRunListToSlug(
@@ -2352,6 +2362,13 @@ private:
2352
2362
 
2353
2363
  // Encapsulate state needed to restore from saveBehind()
2354
2364
  struct BackImage {
2365
+ // Out of line to avoid including SkSpecialImage.h
2366
+ BackImage(sk_sp<SkSpecialImage>, SkIPoint);
2367
+ BackImage(const BackImage&);
2368
+ BackImage(BackImage&&);
2369
+ BackImage& operator=(const BackImage&);
2370
+ ~BackImage();
2371
+
2355
2372
  sk_sp<SkSpecialImage> fImage;
2356
2373
  SkIPoint fLoc;
2357
2374
  };
@@ -2406,7 +2423,7 @@ private:
2406
2423
  fSurfaceBase = sb;
2407
2424
  }
2408
2425
  friend class SkSurface_Base;
2409
- friend class SkSurface_Gpu;
2426
+ friend class SkSurface_Ganesh;
2410
2427
 
2411
2428
  SkIRect fClipRestrictionRect = SkIRect::MakeEmpty();
2412
2429
  int fClipRestrictionSaveCount = -1;
@@ -2440,7 +2457,7 @@ private:
2440
2457
  SkCanvas& operator=(SkCanvas&&) = delete;
2441
2458
  SkCanvas& operator=(const SkCanvas&) = delete;
2442
2459
 
2443
- #if (SK_SUPPORT_GPU || defined(SK_GRAPHITE_ENABLED))
2460
+ #if (defined(SK_GANESH) || defined(SK_GRAPHITE))
2444
2461
  friend class sktext::gpu::Slug;
2445
2462
  /** Experimental
2446
2463
  * Convert a SkTextBlob to a sktext::gpu::Slug using the current canvas state.
@@ -15,7 +15,7 @@
15
15
  namespace SkSL { struct ShaderCaps; }
16
16
  #endif
17
17
 
18
- #if defined(SK_GRAPHITE_ENABLED)
18
+ #if defined(SK_GRAPHITE)
19
19
  namespace skgpu::graphite { class Caps; }
20
20
  #endif
21
21
 
@@ -28,7 +28,7 @@ public:
28
28
  #endif
29
29
 
30
30
  protected:
31
- #if defined(SK_GRAPHITE_ENABLED)
31
+ #if defined(SK_GRAPHITE)
32
32
  friend class skgpu::graphite::Caps; // for ctor
33
33
  #endif
34
34
 
@@ -11,8 +11,10 @@
11
11
  #include "include/core/SkAlphaType.h"
12
12
  #include "include/core/SkScalar.h"
13
13
  #include "include/core/SkTypes.h"
14
+ #include "include/private/base/SkCPUTypes.h"
14
15
 
15
16
  #include <array>
17
+ #include <cstdint>
16
18
 
17
19
  /** \file SkColor.h
18
20
 
@@ -9,9 +9,11 @@
9
9
  #define SkColorPriv_DEFINED
10
10
 
11
11
  #include "include/core/SkColor.h"
12
- #include "include/core/SkMath.h"
13
- #include "include/private/SkTPin.h"
14
- #include "include/private/SkTo.h"
12
+ #include "include/private/base/SkMath.h"
13
+ #include "include/private/base/SkTPin.h"
14
+ #include "include/private/base/SkTo.h"
15
+
16
+ #include <algorithm>
15
17
 
16
18
  /** Turn 0..255 into 0..256 by adding 1 at the half-way point. Used to turn a
17
19
  byte into a scale value, so that we can say scale * value >> 8 instead of
@@ -146,7 +148,20 @@ static SK_ALWAYS_INLINE uint32_t SkAlphaMulQ(uint32_t c, unsigned scale) {
146
148
  }
147
149
 
148
150
  static inline SkPMColor SkPMSrcOver(SkPMColor src, SkPMColor dst) {
149
- return src + SkAlphaMulQ(dst, SkAlpha255To256(255 - SkGetPackedA32(src)));
151
+ uint32_t scale = SkAlpha255To256(255 - SkGetPackedA32(src));
152
+
153
+ uint32_t mask = 0xFF00FF;
154
+ uint32_t rb = (((dst & mask) * scale) >> 8) & mask;
155
+ uint32_t ag = (((dst >> 8) & mask) * scale) & ~mask;
156
+
157
+ rb += (src & mask);
158
+ ag += (src & ~mask);
159
+
160
+ // Color channels (but not alpha) can overflow, so we have to saturate to 0xFF in each lane.
161
+ return std::min(rb & 0x000001FF, 0x000000FFU) |
162
+ std::min(ag & 0x0001FF00, 0x0000FF00U) |
163
+ std::min(rb & 0x01FF0000, 0x00FF0000U) |
164
+ (ag & 0xFF000000);
150
165
  }
151
166
 
152
167
  #endif