@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
@@ -13,9 +13,9 @@
13
13
  #include "include/core/SkTypeface.h"
14
14
  #include "include/core/SkTypes.h"
15
15
  #include "include/ports/SkRemotableFontMgr.h"
16
- #include "include/private/SkMutex.h"
17
- #include "include/private/SkOnce.h"
18
- #include "include/private/SkTArray.h"
16
+ #include "include/private/base/SkMutex.h"
17
+ #include "include/private/base/SkOnce.h"
18
+ #include "include/private/base/SkTArray.h"
19
19
 
20
20
  class SkData;
21
21
  class SkFontStyle;
@@ -34,18 +34,18 @@ public:
34
34
  protected:
35
35
  int onCountFamilies() const override;
36
36
  void onGetFamilyName(int index, SkString* familyName) const override;
37
- SkFontStyleSet* onCreateStyleSet(int index) const override;
37
+ sk_sp<SkFontStyleSet> onCreateStyleSet(int index) const override;
38
38
 
39
- SkFontStyleSet* onMatchFamily(const char familyName[]) const override;
39
+ sk_sp<SkFontStyleSet> onMatchFamily(const char familyName[]) const override;
40
40
 
41
- SkTypeface* onMatchFamilyStyle(const char familyName[],
42
- const SkFontStyle& fontStyle) const override;
41
+ sk_sp<SkTypeface> onMatchFamilyStyle(const char familyName[],
42
+ const SkFontStyle& fontStyle) const override;
43
43
 
44
- SkTypeface* onMatchFamilyStyleCharacter(const char familyName[],
45
- const SkFontStyle&,
46
- const char* bcp47[],
47
- int bcp47Count,
48
- SkUnichar character) const override;
44
+ sk_sp<SkTypeface> onMatchFamilyStyleCharacter(const char familyName[],
45
+ const SkFontStyle&,
46
+ const char* bcp47[],
47
+ int bcp47Count,
48
+ SkUnichar character) const override;
49
49
 
50
50
  sk_sp<SkTypeface> onMakeFromStreamIndex(std::unique_ptr<SkStreamAsset>, int ttcIndex) const override;
51
51
  sk_sp<SkTypeface> onMakeFromStreamArgs(std::unique_ptr<SkStreamAsset> stream,
@@ -55,7 +55,7 @@ protected:
55
55
  sk_sp<SkTypeface> onLegacyMakeTypeface(const char familyName[], SkFontStyle) const override;
56
56
 
57
57
  private:
58
- SkTypeface* createTypefaceFromFontId(const SkFontIdentity& fontId) const;
58
+ sk_sp<SkTypeface> createTypefaceFromFontId(const SkFontIdentity& fontId) const;
59
59
 
60
60
  sk_sp<SkFontMgr> fImpl;
61
61
  sk_sp<SkRemotableFontMgr> fProxy;
@@ -93,7 +93,7 @@ private:
93
93
  * typefaces with that data id. By storing the index next to the typeface,
94
94
  * this data cache also acts as a typeface cache.
95
95
  */
96
- mutable SkTArray<DataEntry> fDataCache;
96
+ mutable skia_private::TArray<DataEntry> fDataCache;
97
97
  mutable SkMutex fDataCacheMutex;
98
98
 
99
99
  friend class SkStyleSet_Indirect;
@@ -11,7 +11,7 @@
11
11
  #include "include/core/SkFontStyle.h"
12
12
  #include "include/core/SkRefCnt.h"
13
13
  #include "include/core/SkTypes.h"
14
- #include "include/private/SkTemplates.h"
14
+ #include "include/private/base/SkTemplates.h"
15
15
 
16
16
  class SkDataTable;
17
17
  class SkStreamAsset;
@@ -48,7 +48,7 @@ private:
48
48
  friend SkRemotableFontIdentitySet* sk_remotable_font_identity_set_new();
49
49
 
50
50
  int fCount;
51
- SkAutoTArray<SkFontIdentity> fData;
51
+ skia_private::AutoTArray<SkFontIdentity> fData;
52
52
 
53
53
  using INHERITED = SkRefCnt;
54
54
  };
@@ -8,6 +8,7 @@
8
8
  #ifndef SkTypeface_win_DEFINED
9
9
  #define SkTypeface_win_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
11
12
  #include "include/core/SkTypeface.h"
12
13
  #include "include/core/SkTypes.h"
13
14
 
@@ -26,7 +27,7 @@ typedef LOGFONTA LOGFONT;
26
27
  * corresponding typeface for the specified logfont. The caller is responsible
27
28
  * for calling unref() when it is finished.
28
29
  */
29
- SK_API SkTypeface* SkCreateTypefaceFromLOGFONT(const LOGFONT&);
30
+ SK_API sk_sp<SkTypeface> SkCreateTypefaceFromLOGFONT(const LOGFONT&);
30
31
 
31
32
  /**
32
33
  * Copy the LOGFONT associated with this typeface into the lf parameter. Note
@@ -10,17 +10,22 @@
10
10
 
11
11
  #include "include/core/SkString.h"
12
12
  #include "include/core/SkTypes.h"
13
- #include "include/private/SkNoncopyable.h"
14
13
  #include "include/private/SkOpts_spi.h"
15
- #include "include/private/SkTLogic.h"
14
+ #include "include/private/base/SkTLogic.h"
16
15
 
17
16
  #include <string>
18
17
  #include <string_view>
18
+ #include <type_traits>
19
19
 
20
- class SkChecksum : SkNoncopyable {
20
+ class SkChecksum {
21
21
  public:
22
+ SkChecksum() = default;
23
+ // Make noncopyable
24
+ SkChecksum(const SkChecksum&) = delete;
25
+ SkChecksum& operator=(const SkChecksum&) = delete;
26
+
22
27
  /**
23
- * uint32_t -> uint32_t hash, useful for when you're about to trucate this hash but you
28
+ * uint32_t -> uint32_t hash, useful for when you're about to truncate this hash but you
24
29
  * suspect its low bits aren't well mixed.
25
30
  *
26
31
  * This is the Murmur3 finalizer.
@@ -35,7 +40,7 @@ public:
35
40
  }
36
41
 
37
42
  /**
38
- * uint32_t -> uint32_t hash, useful for when you're about to trucate this hash but you
43
+ * uint32_t -> uint32_t hash, useful for when you're about to truncate this hash but you
39
44
  * suspect its low bits aren't well mixed.
40
45
  *
41
46
  * This version is 2-lines cheaper than Mix, but seems to be sufficient for the font cache.
@@ -52,12 +57,14 @@ public:
52
57
  // It should be both reasonably fast and high quality.
53
58
  struct SkGoodHash {
54
59
  template <typename K>
55
- std::enable_if_t<sizeof(K) == 4, uint32_t> operator()(const K& k) const {
60
+ std::enable_if_t<std::has_unique_object_representations<K>::value && sizeof(K) == 4, uint32_t>
61
+ operator()(const K& k) const {
56
62
  return SkChecksum::Mix(*(const uint32_t*)&k);
57
63
  }
58
64
 
59
65
  template <typename K>
60
- std::enable_if_t<sizeof(K) != 4, uint32_t> operator()(const K& k) const {
66
+ std::enable_if_t<std::has_unique_object_representations<K>::value && sizeof(K) != 4, uint32_t>
67
+ operator()(const K& k) const {
61
68
  return SkOpts::hash_fn(&k, sizeof(K), 0);
62
69
  }
63
70
 
@@ -74,4 +81,22 @@ struct SkGoodHash {
74
81
  }
75
82
  };
76
83
 
84
+ // The default hashing behavior in SkGoodHash requires the type to have a unique object
85
+ // representation (i.e. all bits in contribute to its identity so can be hashed directly). This is
86
+ // false when a struct has padding for alignment (which can be avoided by using
87
+ // SK_BEGIN|END_REQUIRE_DENSE) or if the struct has floating point members since there are multiple
88
+ // bit representations for NaN.
89
+ //
90
+ // Often Skia code has externally removed the possibility of NaN so the bit representation of a
91
+ // non-NaN float will still hash correctly. SkForceDirectHash<K> produces the same as SkGoodHash
92
+ // for K's that do not satisfy std::has_unique_object_representation. It should be used sparingly
93
+ // and it's use may highlight design issues with the key's data that might warrant an explicitly
94
+ // implemented hash function.
95
+ template <typename K>
96
+ struct SkForceDirectHash {
97
+ uint32_t operator()(const K& k) const {
98
+ return SkOpts::hash_fn(&k, sizeof(K), 0);
99
+ }
100
+ };
101
+
77
102
  #endif
@@ -10,8 +10,7 @@
10
10
 
11
11
  #include "include/core/SkColor.h"
12
12
  #include "include/core/SkColorPriv.h"
13
- #include "include/private/SkTo.h"
14
- #include "include/private/SkVx.h"
13
+ #include "include/private/base/SkTo.h"
15
14
 
16
15
  ////////////////////////////////////////////////////////////////////////////////////////////
17
16
  // Convert a 16bit pixel to a 32bit pixel
@@ -374,30 +373,6 @@ static inline SkPMColor SkPixel4444ToPixel32(U16CPU c) {
374
373
  return d | (d << 4);
375
374
  }
376
375
 
377
- static inline skvx::float4 swizzle_rb(const skvx::float4& x) {
378
- return skvx::shuffle<2, 1, 0, 3>(x);
379
- }
380
-
381
- static inline skvx::float4 swizzle_rb_if_bgra(const skvx::float4& x) {
382
- #ifdef SK_PMCOLOR_IS_BGRA
383
- return swizzle_rb(x);
384
- #else
385
- return x;
386
- #endif
387
- }
388
-
389
- static inline skvx::float4 Sk4f_fromL32(uint32_t px) {
390
- return skvx::cast<float>(skvx::byte4::Load(&px)) * (1 / 255.0f);
391
- }
392
-
393
- static inline uint32_t Sk4f_toL32(const skvx::float4& px) {
394
- uint32_t l32;
395
- // For the expected positive color values, the +0.5 before the pin and cast effectively rounds
396
- // to the nearest int without having to call round() or lrint().
397
- skvx::cast<uint8_t>(pin(px * 255.f + 0.5f, skvx::float4(0.f), skvx::float4(255.f))).store(&l32);
398
- return l32;
399
- }
400
-
401
376
  using SkPMColor4f = SkRGBA4f<kPremul_SkAlphaType>;
402
377
 
403
378
  constexpr SkPMColor4f SK_PMColor4fTRANSPARENT = { 0, 0, 0, 0 };
@@ -0,0 +1,97 @@
1
+ /*
2
+ * Copyright 2023 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 SkGainmapInfo_DEFINED
9
+ #define SkGainmapInfo_DEFINED
10
+
11
+ #include "include/core/SkColor.h"
12
+
13
+ /**
14
+ * Gainmap rendering parameters. Suppose our display has HDR to SDR ratio of H and we wish to
15
+ * display an image with gainmap on this display. Let B be the pixel value from the base image
16
+ * in a color space that has the primaries of the base image and a linear transfer function. Let
17
+ * G be the pixel value from the gainmap. Let D be the output pixel in the same color space as B.
18
+ * The value of D is computed as follows:
19
+ *
20
+ * First, let W be a weight parameter determing how much the gainmap will be applied.
21
+ * W = clamp((log(H) - log(fDisplayRatioSdr)) /
22
+ * (log(fDisplayRatioHdr) - log(fDisplayRatioSdr), 0, 1)
23
+ *
24
+ * Next, let L be the gainmap value in log space. We compute this from the value G that was
25
+ * sampled from the texture as follows:
26
+ * L = mix(log(fGainmapRatioMin), log(fGainmapRatioMax), pow(G, fGainmapGamma))
27
+ *
28
+ * Finally, apply the gainmap to compute D, the displayed pixel. If the base image is SDR then
29
+ * compute:
30
+ * D = (B + fEpsilonSdr) * exp(L * W) - fEpsilonHdr
31
+ * If the base image is HDR then compute:
32
+ * D = (B + fEpsilonHdr) * exp(L * (W - 1)) - fEpsilonSdr
33
+ *
34
+ * In the above math, log() is a natural logarithm and exp() is natural exponentiation. Note,
35
+ * however, that the base used for the log() and exp() functions does not affect the results of
36
+ * the computation (it cancels out, as long as the same base is used throughout).
37
+ */
38
+ struct SkGainmapInfo {
39
+ /**
40
+ * Parameters for converting the gainmap from its image encoding to log space. These are
41
+ * specified per color channel. The alpha value is unused.
42
+ */
43
+ SkColor4f fGainmapRatioMin = {1.f, 1.f, 1.f, 1.0};
44
+ SkColor4f fGainmapRatioMax = {2.f, 2.f, 2.f, 1.0};
45
+ SkColor4f fGainmapGamma = {1.f, 1.f, 1.f, 1.f};
46
+
47
+ /**
48
+ * Parameters sometimes used in gainmap computation to avoid numerical instability.
49
+ */
50
+ SkColor4f fEpsilonSdr = {0.f, 0.f, 0.f, 1.0};
51
+ SkColor4f fEpsilonHdr = {0.f, 0.f, 0.f, 1.0};
52
+
53
+ /**
54
+ * If the output display's HDR to SDR ratio is less or equal than fDisplayRatioSdr then the SDR
55
+ * rendition is displayed. If the output display's HDR to SDR ratio is greater or equal than
56
+ * fDisplayRatioHdr then the HDR rendition is displayed. If the output display's HDR to SDR
57
+ * ratio is between these values then an interpolation between the two is displayed using the
58
+ * math above.
59
+ */
60
+ float fDisplayRatioSdr = 1.f;
61
+ float fDisplayRatioHdr = 2.f;
62
+
63
+ /**
64
+ * Whether the base image is the SDR image or the HDR image.
65
+ */
66
+ enum class BaseImageType {
67
+ kSDR,
68
+ kHDR,
69
+ };
70
+ BaseImageType fBaseImageType = BaseImageType::kSDR;
71
+
72
+ inline bool operator==(const SkGainmapInfo& other) {
73
+ return fGainmapRatioMin == other.fGainmapRatioMin &&
74
+ fGainmapRatioMax == other.fGainmapRatioMax && fGainmapGamma == other.fGainmapGamma &&
75
+ fEpsilonSdr == other.fEpsilonSdr && fEpsilonHdr == other.fEpsilonHdr &&
76
+ fDisplayRatioSdr == other.fDisplayRatioSdr &&
77
+ fDisplayRatioHdr == other.fDisplayRatioHdr && fBaseImageType == other.fBaseImageType;
78
+ }
79
+ inline bool operator!=(const SkGainmapInfo& other) { return !(*this == other); }
80
+
81
+ // TODO(ccameron): Remove these parameters once we are certain they are not used in Android.
82
+ enum class Type {
83
+ kUnknown,
84
+ kMultiPicture,
85
+ kJpegR_Linear,
86
+ kJpegR_HLG,
87
+ kJpegR_PQ,
88
+ kHDRGM,
89
+ };
90
+ SkColor4f fLogRatioMin = {0.f, 0.f, 0.f, 1.0};
91
+ SkColor4f fLogRatioMax = {1.f, 1.f, 1.f, 1.0};
92
+ float fHdrRatioMin = 1.f;
93
+ float fHdrRatioMax = 50.f;
94
+ Type fType = Type::kUnknown;
95
+ };
96
+
97
+ #endif
@@ -0,0 +1,53 @@
1
+ /*
2
+ * Copyright 2023 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 SkGainmapShader_DEFINED
9
+ #define SkGainmapShader_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+
13
+ class SkColorSpace;
14
+ class SkShader;
15
+ class SkImage;
16
+ struct SkGainmapInfo;
17
+ struct SkRect;
18
+ struct SkSamplingOptions;
19
+
20
+ /**
21
+ * A gainmap shader will apply a gainmap to an base image using the math described alongside the
22
+ * definition of SkGainmapInfo.
23
+ */
24
+ class SK_API SkGainmapShader {
25
+ public:
26
+ /**
27
+ * Make a gainmap shader.
28
+ *
29
+ * When sampling the base image baseImage, the rectangle baseRect will be sampled to map to
30
+ * the rectangle dstRect. Sampling will be done according to baseSamplingOptions.
31
+ *
32
+ * When sampling the gainmap image gainmapImage, the rectangle gainmapRect will be sampled to
33
+ * map to the rectangle dstRect. Sampling will be done according to gainmapSamplingOptions.
34
+ *
35
+ * The gainmap will be applied according to the HDR to SDR ratio specified in dstHdrRatio.
36
+ *
37
+ * This shader must know the color space of the canvas that it will be rendered to. This color
38
+ * space must be specified in dstColorSpace.
39
+ * TODO(ccameron): Remove the need for dstColorSpace.
40
+ */
41
+ static sk_sp<SkShader> Make(const sk_sp<const SkImage>& baseImage,
42
+ const SkRect& baseRect,
43
+ const SkSamplingOptions& baseSamplingOptions,
44
+ const sk_sp<const SkImage>& gainmapImage,
45
+ const SkRect& gainmapRect,
46
+ const SkSamplingOptions& gainmapSamplingOptions,
47
+ const SkGainmapInfo& gainmapInfo,
48
+ const SkRect& dstRect,
49
+ float dstHdrRatio,
50
+ sk_sp<SkColorSpace> dstColorSpace);
51
+ };
52
+
53
+ #endif
@@ -9,8 +9,9 @@
9
9
  #define SkIDChangeListener_DEFINED
10
10
 
11
11
  #include "include/core/SkRefCnt.h"
12
- #include "include/private/SkMutex.h"
13
- #include "include/private/SkTDArray.h"
12
+ #include "include/private/base/SkMutex.h"
13
+ #include "include/private/base/SkTArray.h"
14
+ #include "include/private/base/SkThreadAnnotations.h"
14
15
 
15
16
  #include <atomic>
16
17
 
@@ -65,7 +66,7 @@ public:
65
66
 
66
67
  private:
67
68
  mutable SkMutex fMutex;
68
- SkTDArray<SkIDChangeListener*> fListeners SK_GUARDED_BY(fMutex); // pointers are reffed
69
+ skia_private::STArray<1, sk_sp<SkIDChangeListener>> fListeners SK_GUARDED_BY(fMutex);
69
70
  };
70
71
 
71
72
  private:
@@ -0,0 +1,71 @@
1
+ /*
2
+ * Copyright 2023 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 SkJpegGainmapEncoder_DEFINED
9
+ #define SkJpegGainmapEncoder_DEFINED
10
+
11
+ #include "include/encode/SkJpegEncoder.h"
12
+
13
+ class SkPixmap;
14
+ class SkWStream;
15
+ struct SkGainmapInfo;
16
+
17
+ class SK_API SkJpegGainmapEncoder {
18
+ public:
19
+ /**
20
+ * Encode a JpegR image to |dst|.
21
+ *
22
+ * The base image is specified by |base|, and |baseOptions| controls the encoding behavior for
23
+ * the base image.
24
+ *
25
+ * The gainmap image is specified by |gainmap|, and |gainmapOptions| controls the encoding
26
+ * behavior for the gainmap image.
27
+ *
28
+ * The rendering behavior of the gainmap image is provided in |gainmapInfo|. Not all gainmap
29
+ * based images are compatible with JpegR. If the image is not compatible with JpegR, then
30
+ * convert the gainmap to a format that is capable with JpegR. This conversion may result in
31
+ * less precise quantization of the gainmap image.
32
+ *
33
+ * Returns true on success. Returns false on an invalid or unsupported |src|.
34
+ */
35
+ static bool EncodeJpegR(SkWStream* dst,
36
+ const SkPixmap& base,
37
+ const SkJpegEncoder::Options& baseOptions,
38
+ const SkPixmap& gainmap,
39
+ const SkJpegEncoder::Options& gainmapOptions,
40
+ const SkGainmapInfo& gainmapInfo);
41
+
42
+ /**
43
+ * Encode an HDRGM image to |dst|.
44
+ *
45
+ * The base image is specified by |base|, and |baseOptions| controls the encoding behavior for
46
+ * the base image.
47
+ *
48
+ * The gainmap image is specified by |gainmap|, and |gainmapOptions| controls the encoding
49
+ * behavior for the gainmap image.
50
+ *
51
+ * The rendering behavior of the gainmap image is provided in |gainmapInfo|.
52
+ *
53
+ * If |baseOptions| or |gainmapOptions| specify XMP metadata, then that metadata will be
54
+ * overwritten.
55
+ *
56
+ * Returns true on success. Returns false on an invalid or unsupported |src|.
57
+ */
58
+ static bool EncodeHDRGM(SkWStream* dst,
59
+ const SkPixmap& base,
60
+ const SkJpegEncoder::Options& baseOptions,
61
+ const SkPixmap& gainmap,
62
+ const SkJpegEncoder::Options& gainmapOptions,
63
+ const SkGainmapInfo& gainmapInfo);
64
+
65
+ /**
66
+ * Write a Multi Picture Format containing the |imageCount| images specified by |images|.
67
+ */
68
+ static bool MakeMPF(SkWStream* dst, const SkData** images, size_t imageCount);
69
+ };
70
+
71
+ #endif
@@ -0,0 +1,61 @@
1
+ /*
2
+ * Copyright 2013 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 SkJpegMetadataDecoder_DEFINED
9
+ #define SkJpegMetadataDecoder_DEFINED
10
+
11
+ #include "include/core/SkData.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/core/SkTypes.h"
14
+
15
+ #include <memory>
16
+ #include <vector>
17
+
18
+ struct SkGainmapInfo;
19
+
20
+ /**
21
+ * An interface that can be used to extract metadata from an encoded JPEG file.
22
+ * TODO(https://crbug.com/1404000): Add interface for ICC profile and EXIF extraction.
23
+ */
24
+ class SK_API SkJpegMetadataDecoder {
25
+ public:
26
+ SkJpegMetadataDecoder() {}
27
+ virtual ~SkJpegMetadataDecoder() {}
28
+
29
+ SkJpegMetadataDecoder(const SkJpegMetadataDecoder&) = delete;
30
+ SkJpegMetadataDecoder& operator=(const SkJpegMetadataDecoder&) = delete;
31
+
32
+ /**
33
+ * A segment from a JPEG file. This is usually populated from a jpeg_marker_struct.
34
+ */
35
+ struct SK_API Segment {
36
+ Segment(uint8_t marker, sk_sp<SkData> data) : fMarker(marker), fData(std::move(data)) {}
37
+
38
+ // The segment's marker.
39
+ uint8_t fMarker = 0;
40
+
41
+ // The segment's parameters (not including the marker and parameter length).
42
+ sk_sp<SkData> fData;
43
+ };
44
+
45
+ /**
46
+ * Create metadata for the specified segments from a JPEG file's header (defined as all segments
47
+ * before the first StartOfScan). This may return nullptr.
48
+ */
49
+ static std::unique_ptr<SkJpegMetadataDecoder> Make(std::vector<Segment> headerSegments);
50
+
51
+ /**
52
+ * Given a JPEG encoded image |baseImageData|, return in |outGainmapImageData| the JPEG encoded
53
+ * gainmap image and return in |outGainmapInfo| its gainmap rendering parameters. Return true if
54
+ * both output variables were successfully populated, otherwise return false.
55
+ */
56
+ virtual bool findGainmapImage(sk_sp<SkData> baseImageData,
57
+ sk_sp<SkData>& outGainmapImagedata,
58
+ SkGainmapInfo& outGainmapInfo) = 0;
59
+ };
60
+
61
+ #endif
@@ -8,7 +8,9 @@
8
8
  #ifndef SkOpts_spi_DEFINED
9
9
  #define SkOpts_spi_DEFINED
10
10
 
11
- #include "include/core/SkTypes.h"
11
+ #include "include/private/base/SkAPI.h"
12
+
13
+ #include <cstddef>
12
14
 
13
15
  // These are exposed as SK_SPI (e.g. SkParagraph), the rest of SkOpts is
14
16
  // declared in src/core