@shopify/react-native-skia 0.1.192 → 0.1.194

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 (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
@@ -1,655 +0,0 @@
1
- /*
2
- * Copyright 2011 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 SkTArray_DEFINED
9
- #define SkTArray_DEFINED
10
-
11
- #include "include/core/SkMath.h"
12
- #include "include/core/SkTypes.h"
13
- #include "include/private/SkMalloc.h"
14
- #include "include/private/SkSafe32.h"
15
- #include "include/private/SkTLogic.h"
16
- #include "include/private/SkTemplates.h"
17
- #include "include/private/SkTo.h"
18
-
19
- #include <algorithm>
20
- #include <string.h>
21
- #include <initializer_list>
22
- #include <memory>
23
- #include <new>
24
- #include <utility>
25
-
26
- /** SkTArray<T> implements a typical, mostly std::vector-like array.
27
- Each T will be default-initialized on allocation, and ~T will be called on destruction.
28
-
29
- MEM_MOVE controls the behavior when a T needs to be moved (e.g. when the array is resized)
30
- - true: T will be bit-copied via memcpy.
31
- - false: T will be moved via move-constructors.
32
-
33
- Modern implementations of std::vector<T> will generally provide similar performance
34
- characteristics when used with appropriate care. Consider using std::vector<T> in new code.
35
- */
36
- template <typename T, bool MEM_MOVE = sk_is_trivially_relocatable<T>::value> class SkTArray {
37
- private:
38
- enum ReallocType { kExactFit, kGrowing, kShrinking };
39
-
40
- public:
41
- using value_type = T;
42
-
43
- /**
44
- * Creates an empty array with no initial storage
45
- */
46
- SkTArray() { this->init(0); }
47
-
48
- /**
49
- * Creates an empty array that will preallocate space for reserveCount
50
- * elements.
51
- */
52
- explicit SkTArray(int reserveCount) : SkTArray() { this->reserve_back(reserveCount); }
53
-
54
- /**
55
- * Copies one array to another. The new array will be heap allocated.
56
- */
57
- SkTArray(const SkTArray& that)
58
- : SkTArray(that.fItemArray, that.fCount) {}
59
-
60
- SkTArray(SkTArray&& that) {
61
- if (that.fOwnMemory) {
62
- fItemArray = that.fItemArray;
63
- fCount = that.fCount;
64
- fAllocCount = that.fAllocCount;
65
- fOwnMemory = true;
66
- fReserved = that.fReserved;
67
-
68
- that.fItemArray = nullptr;
69
- that.fCount = 0;
70
- that.fAllocCount = 0;
71
- that.fOwnMemory = true;
72
- that.fReserved = false;
73
- } else {
74
- this->init(that.fCount);
75
- that.move(fItemArray);
76
- that.fCount = 0;
77
- }
78
- }
79
-
80
- /**
81
- * Creates a SkTArray by copying contents of a standard C array. The new
82
- * array will be heap allocated. Be careful not to use this constructor
83
- * when you really want the (void*, int) version.
84
- */
85
- SkTArray(const T* array, int count) {
86
- this->init(count);
87
- this->copy(array);
88
- }
89
- /**
90
- * Creates a SkTArray by copying contents of an initializer list.
91
- */
92
- SkTArray(std::initializer_list<T> data)
93
- : SkTArray(data.begin(), data.size()) {}
94
-
95
- SkTArray& operator=(const SkTArray& that) {
96
- if (this == &that) {
97
- return *this;
98
- }
99
- for (int i = 0; i < this->count(); ++i) {
100
- fItemArray[i].~T();
101
- }
102
- fCount = 0;
103
- this->checkRealloc(that.count(), kExactFit);
104
- fCount = that.fCount;
105
- this->copy(that.fItemArray);
106
- return *this;
107
- }
108
- SkTArray& operator=(SkTArray&& that) {
109
- if (this == &that) {
110
- return *this;
111
- }
112
- for (int i = 0; i < this->count(); ++i) {
113
- fItemArray[i].~T();
114
- }
115
- fCount = 0;
116
- this->checkRealloc(that.count(), kExactFit);
117
- fCount = that.fCount;
118
- that.move(fItemArray);
119
- that.fCount = 0;
120
- return *this;
121
- }
122
-
123
- ~SkTArray() {
124
- for (int i = 0; i < this->count(); ++i) {
125
- fItemArray[i].~T();
126
- }
127
- if (fOwnMemory) {
128
- sk_free(fItemArray);
129
- }
130
- }
131
-
132
- /**
133
- * Resets to count() == 0 and resets any reserve count.
134
- */
135
- void reset() {
136
- this->pop_back_n(fCount);
137
- fReserved = false;
138
- }
139
-
140
- /**
141
- * Resets to count() = n newly constructed T objects and resets any reserve count.
142
- */
143
- void reset(int n) {
144
- SkASSERT(n >= 0);
145
- for (int i = 0; i < this->count(); ++i) {
146
- fItemArray[i].~T();
147
- }
148
- // Set fCount to 0 before calling checkRealloc so that no elements are moved.
149
- fCount = 0;
150
- this->checkRealloc(n, kExactFit);
151
- fCount = n;
152
- for (int i = 0; i < this->count(); ++i) {
153
- new (fItemArray + i) T;
154
- }
155
- fReserved = false;
156
- }
157
-
158
- /**
159
- * Resets to a copy of a C array and resets any reserve count.
160
- */
161
- void reset(const T* array, int count) {
162
- for (int i = 0; i < this->count(); ++i) {
163
- fItemArray[i].~T();
164
- }
165
- fCount = 0;
166
- this->checkRealloc(count, kExactFit);
167
- fCount = count;
168
- this->copy(array);
169
- fReserved = false;
170
- }
171
-
172
- /**
173
- * Ensures there is enough reserved space for n additional elements. The is guaranteed at least
174
- * until the array size grows above n and subsequently shrinks below n, any version of reset()
175
- * is called, or reserve_back() is called again.
176
- */
177
- void reserve_back(int n) {
178
- SkASSERT(n >= 0);
179
- if (n > 0) {
180
- this->checkRealloc(n, kExactFit);
181
- fReserved = fOwnMemory;
182
- } else {
183
- fReserved = false;
184
- }
185
- }
186
-
187
- void removeShuffle(int n) {
188
- SkASSERT(n < this->count());
189
- int newCount = fCount - 1;
190
- fCount = newCount;
191
- fItemArray[n].~T();
192
- if (n != newCount) {
193
- this->move(n, newCount);
194
- }
195
- }
196
-
197
- /**
198
- * Number of elements in the array.
199
- */
200
- int count() const { return fCount; }
201
-
202
- /**
203
- * Is the array empty.
204
- */
205
- bool empty() const { return !fCount; }
206
-
207
- /**
208
- * Adds 1 new default-initialized T value and returns it by reference. Note
209
- * the reference only remains valid until the next call that adds or removes
210
- * elements.
211
- */
212
- T& push_back() {
213
- void* newT = this->push_back_raw(1);
214
- return *new (newT) T;
215
- }
216
-
217
- /**
218
- * Version of above that uses a copy constructor to initialize the new item
219
- */
220
- T& push_back(const T& t) {
221
- void* newT = this->push_back_raw(1);
222
- return *new (newT) T(t);
223
- }
224
-
225
- /**
226
- * Version of above that uses a move constructor to initialize the new item
227
- */
228
- T& push_back(T&& t) {
229
- void* newT = this->push_back_raw(1);
230
- return *new (newT) T(std::move(t));
231
- }
232
-
233
- /**
234
- * Construct a new T at the back of this array.
235
- */
236
- template<class... Args> T& emplace_back(Args&&... args) {
237
- void* newT = this->push_back_raw(1);
238
- return *new (newT) T(std::forward<Args>(args)...);
239
- }
240
-
241
- /**
242
- * Allocates n more default-initialized T values, and returns the address of
243
- * the start of that new range. Note: this address is only valid until the
244
- * next API call made on the array that might add or remove elements.
245
- */
246
- T* push_back_n(int n) {
247
- SkASSERT(n >= 0);
248
- void* newTs = this->push_back_raw(n);
249
- for (int i = 0; i < n; ++i) {
250
- new (static_cast<char*>(newTs) + i * sizeof(T)) T;
251
- }
252
- return static_cast<T*>(newTs);
253
- }
254
-
255
- /**
256
- * Version of above that uses a copy constructor to initialize all n items
257
- * to the same T.
258
- */
259
- T* push_back_n(int n, const T& t) {
260
- SkASSERT(n >= 0);
261
- void* newTs = this->push_back_raw(n);
262
- for (int i = 0; i < n; ++i) {
263
- new (static_cast<char*>(newTs) + i * sizeof(T)) T(t);
264
- }
265
- return static_cast<T*>(newTs);
266
- }
267
-
268
- /**
269
- * Version of above that uses a copy constructor to initialize the n items
270
- * to separate T values.
271
- */
272
- T* push_back_n(int n, const T t[]) {
273
- SkASSERT(n >= 0);
274
- this->checkRealloc(n, kGrowing);
275
- for (int i = 0; i < n; ++i) {
276
- new (fItemArray + fCount + i) T(t[i]);
277
- }
278
- fCount += n;
279
- return fItemArray + fCount - n;
280
- }
281
-
282
- /**
283
- * Version of above that uses the move constructor to set n items.
284
- */
285
- T* move_back_n(int n, T* t) {
286
- SkASSERT(n >= 0);
287
- this->checkRealloc(n, kGrowing);
288
- for (int i = 0; i < n; ++i) {
289
- new (fItemArray + fCount + i) T(std::move(t[i]));
290
- }
291
- fCount += n;
292
- return fItemArray + fCount - n;
293
- }
294
-
295
- /**
296
- * Removes the last element. Not safe to call when count() == 0.
297
- */
298
- void pop_back() {
299
- SkASSERT(fCount > 0);
300
- --fCount;
301
- fItemArray[fCount].~T();
302
- this->checkRealloc(0, kShrinking);
303
- }
304
-
305
- /**
306
- * Removes the last n elements. Not safe to call when count() < n.
307
- */
308
- void pop_back_n(int n) {
309
- SkASSERT(n >= 0);
310
- SkASSERT(this->count() >= n);
311
- fCount -= n;
312
- for (int i = 0; i < n; ++i) {
313
- fItemArray[fCount + i].~T();
314
- }
315
- this->checkRealloc(0, kShrinking);
316
- }
317
-
318
- /**
319
- * Pushes or pops from the back to resize. Pushes will be default
320
- * initialized.
321
- */
322
- void resize_back(int newCount) {
323
- SkASSERT(newCount >= 0);
324
-
325
- if (newCount > this->count()) {
326
- this->push_back_n(newCount - fCount);
327
- } else if (newCount < this->count()) {
328
- this->pop_back_n(fCount - newCount);
329
- }
330
- }
331
-
332
- /** Swaps the contents of this array with that array. Does a pointer swap if possible,
333
- otherwise copies the T values. */
334
- void swap(SkTArray& that) {
335
- using std::swap;
336
- if (this == &that) {
337
- return;
338
- }
339
- if (fOwnMemory && that.fOwnMemory) {
340
- swap(fItemArray, that.fItemArray);
341
-
342
- auto count = fCount;
343
- fCount = that.fCount;
344
- that.fCount = count;
345
-
346
- auto allocCount = fAllocCount;
347
- fAllocCount = that.fAllocCount;
348
- that.fAllocCount = allocCount;
349
- } else {
350
- // This could be more optimal...
351
- SkTArray copy(std::move(that));
352
- that = std::move(*this);
353
- *this = std::move(copy);
354
- }
355
- }
356
-
357
- T* begin() {
358
- return fItemArray;
359
- }
360
- const T* begin() const {
361
- return fItemArray;
362
- }
363
- T* end() {
364
- return fItemArray ? fItemArray + fCount : nullptr;
365
- }
366
- const T* end() const {
367
- return fItemArray ? fItemArray + fCount : nullptr;
368
- }
369
- T* data() { return fItemArray; }
370
- const T* data() const { return fItemArray; }
371
- size_t size() const { return (size_t)fCount; }
372
- void resize(size_t count) { this->resize_back((int)count); }
373
-
374
- /**
375
- * Get the i^th element.
376
- */
377
- T& operator[] (int i) {
378
- SkASSERT(i < this->count());
379
- SkASSERT(i >= 0);
380
- return fItemArray[i];
381
- }
382
-
383
- const T& operator[] (int i) const {
384
- SkASSERT(i < this->count());
385
- SkASSERT(i >= 0);
386
- return fItemArray[i];
387
- }
388
-
389
- T& at(int i) { return (*this)[i]; }
390
- const T& at(int i) const { return (*this)[i]; }
391
-
392
- /**
393
- * equivalent to operator[](0)
394
- */
395
- T& front() { SkASSERT(fCount > 0); return fItemArray[0];}
396
-
397
- const T& front() const { SkASSERT(fCount > 0); return fItemArray[0];}
398
-
399
- /**
400
- * equivalent to operator[](count() - 1)
401
- */
402
- T& back() { SkASSERT(fCount); return fItemArray[fCount - 1];}
403
-
404
- const T& back() const { SkASSERT(fCount > 0); return fItemArray[fCount - 1];}
405
-
406
- /**
407
- * equivalent to operator[](count()-1-i)
408
- */
409
- T& fromBack(int i) {
410
- SkASSERT(i >= 0);
411
- SkASSERT(i < this->count());
412
- return fItemArray[fCount - i - 1];
413
- }
414
-
415
- const T& fromBack(int i) const {
416
- SkASSERT(i >= 0);
417
- SkASSERT(i < this->count());
418
- return fItemArray[fCount - i - 1];
419
- }
420
-
421
- bool operator==(const SkTArray<T, MEM_MOVE>& right) const {
422
- int leftCount = this->count();
423
- if (leftCount != right.count()) {
424
- return false;
425
- }
426
- for (int index = 0; index < leftCount; ++index) {
427
- if (fItemArray[index] != right.fItemArray[index]) {
428
- return false;
429
- }
430
- }
431
- return true;
432
- }
433
-
434
- bool operator!=(const SkTArray<T, MEM_MOVE>& right) const {
435
- return !(*this == right);
436
- }
437
-
438
- int capacity() const {
439
- return fAllocCount;
440
- }
441
-
442
- protected:
443
- /**
444
- * Creates an empty array that will use the passed storage block until it
445
- * is insufficiently large to hold the entire array.
446
- */
447
- template <int N>
448
- SkTArray(SkAlignedSTStorage<N,T>* storage) {
449
- this->initWithPreallocatedStorage(0, storage->get(), N);
450
- }
451
-
452
- /**
453
- * Copy a C array, using preallocated storage if preAllocCount >=
454
- * count. Otherwise storage will only be used when array shrinks
455
- * to fit.
456
- */
457
- template <int N>
458
- SkTArray(const T* array, int count, SkAlignedSTStorage<N,T>* storage) {
459
- this->initWithPreallocatedStorage(count, storage->get(), N);
460
- this->copy(array);
461
- }
462
-
463
- private:
464
- // We disable Control-Flow Integrity sanitization (go/cfi) when casting item-array buffers.
465
- // CFI flags this code as dangerous because we are casting `buffer` to a T* while the buffer's
466
- // contents might still be uninitialized memory. When T has a vtable, this is especially risky
467
- // because we could hypothetically access a virtual method on fItemArray and jump to an
468
- // unpredictable location in memory. Of course, SkTArray won't actually use fItemArray in this
469
- // way, and we don't want to construct a T before the user requests one. There's no real risk
470
- // here, so disable CFI when doing these casts.
471
- SK_ATTRIBUTE(no_sanitize("cfi"))
472
- static T* TCast(void* buffer) {
473
- return (T*)buffer;
474
- }
475
-
476
- void init(int count) {
477
- fCount = SkToU32(count);
478
- if (!count) {
479
- fAllocCount = 0;
480
- fItemArray = nullptr;
481
- } else {
482
- fAllocCount = SkToU32(std::max(count, kMinHeapAllocCount));
483
- fItemArray = TCast(sk_malloc_throw((size_t)fAllocCount, sizeof(T)));
484
- }
485
- fOwnMemory = true;
486
- fReserved = false;
487
- }
488
-
489
- void initWithPreallocatedStorage(int count, void* preallocStorage, int preallocCount) {
490
- SkASSERT(count >= 0);
491
- SkASSERT(preallocCount > 0);
492
- SkASSERT(preallocStorage);
493
- fCount = SkToU32(count);
494
- fItemArray = nullptr;
495
- fReserved = false;
496
- if (count > preallocCount) {
497
- fAllocCount = SkToU32(std::max(count, kMinHeapAllocCount));
498
- fItemArray = TCast(sk_malloc_throw(fAllocCount, sizeof(T)));
499
- fOwnMemory = true;
500
- } else {
501
- fAllocCount = SkToU32(preallocCount);
502
- fItemArray = TCast(preallocStorage);
503
- fOwnMemory = false;
504
- }
505
- }
506
-
507
- /** In the following move and copy methods, 'dst' is assumed to be uninitialized raw storage.
508
- * In the following move methods, 'src' is destroyed leaving behind uninitialized raw storage.
509
- */
510
- void copy(const T* src) {
511
- // Some types may be trivially copyable, in which case we *could* use memcopy; but
512
- // MEM_MOVE == true implies that the type is trivially movable, and not necessarily
513
- // trivially copyable (think sk_sp<>). So short of adding another template arg, we
514
- // must be conservative and use copy construction.
515
- for (int i = 0; i < this->count(); ++i) {
516
- new (fItemArray + i) T(src[i]);
517
- }
518
- }
519
-
520
- template <bool E = MEM_MOVE> std::enable_if_t<E, void> move(int dst, int src) {
521
- memcpy(static_cast<void*>(&fItemArray[dst]),
522
- static_cast<void*>(&fItemArray[src]),
523
- sizeof(T));
524
- }
525
- template <bool E = MEM_MOVE> std::enable_if_t<E, void> move(void* dst) {
526
- sk_careful_memcpy(dst, fItemArray, fCount * sizeof(T));
527
- }
528
-
529
- template <bool E = MEM_MOVE> std::enable_if_t<!E, void> move(int dst, int src) {
530
- new (&fItemArray[dst]) T(std::move(fItemArray[src]));
531
- fItemArray[src].~T();
532
- }
533
- template <bool E = MEM_MOVE> std::enable_if_t<!E, void> move(void* dst) {
534
- for (int i = 0; i < this->count(); ++i) {
535
- new (static_cast<char*>(dst) + sizeof(T) * (size_t)i) T(std::move(fItemArray[i]));
536
- fItemArray[i].~T();
537
- }
538
- }
539
-
540
- static constexpr int kMinHeapAllocCount = 8;
541
-
542
- // Helper function that makes space for n objects, adjusts the count, but does not initialize
543
- // the new objects.
544
- void* push_back_raw(int n) {
545
- this->checkRealloc(n, kGrowing);
546
- void* ptr = fItemArray + fCount;
547
- fCount += n;
548
- return ptr;
549
- }
550
-
551
- void checkRealloc(int delta, ReallocType reallocType) {
552
- SkASSERT(fCount >= 0);
553
- SkASSERT(fAllocCount >= 0);
554
- SkASSERT(-delta <= this->count());
555
-
556
- // Move into 64bit math temporarily, to avoid local overflows
557
- int64_t newCount = fCount + delta;
558
-
559
- // We allow fAllocCount to be in the range [newCount, 3*newCount]. We also never shrink
560
- // when we're currently using preallocated memory, would allocate less than
561
- // kMinHeapAllocCount, or a reserve count was specified that has yet to be exceeded.
562
- bool mustGrow = newCount > fAllocCount;
563
- bool shouldShrink = fAllocCount > 3 * newCount && fOwnMemory && !fReserved;
564
- if (!mustGrow && !shouldShrink) {
565
- return;
566
- }
567
-
568
- int64_t newAllocCount = newCount;
569
- if (reallocType != kExactFit) {
570
- // Whether we're growing or shrinking, leave at least 50% extra space for future growth.
571
- newAllocCount += ((newCount + 1) >> 1);
572
- // Align the new allocation count to kMinHeapAllocCount.
573
- static_assert(SkIsPow2(kMinHeapAllocCount), "min alloc count not power of two.");
574
- newAllocCount = (newAllocCount + (kMinHeapAllocCount - 1)) & ~(kMinHeapAllocCount - 1);
575
- }
576
-
577
- // At small sizes the old and new alloc count can both be kMinHeapAllocCount.
578
- if (newAllocCount == fAllocCount) {
579
- return;
580
- }
581
-
582
- fAllocCount = SkToU32(Sk64_pin_to_s32(newAllocCount));
583
- SkASSERT(fAllocCount >= newCount);
584
- T* newItemArray = TCast(sk_malloc_throw((size_t)fAllocCount, sizeof(T)));
585
- this->move(newItemArray);
586
- if (fOwnMemory) {
587
- sk_free(fItemArray);
588
- }
589
- fItemArray = newItemArray;
590
- fOwnMemory = true;
591
- fReserved = false;
592
- }
593
-
594
- T* fItemArray;
595
- uint32_t fOwnMemory : 1;
596
- uint32_t fCount : 31;
597
- uint32_t fReserved : 1;
598
- uint32_t fAllocCount : 31;
599
- };
600
-
601
- template <typename T, bool M> static inline void swap(SkTArray<T, M>& a, SkTArray<T, M>& b) {
602
- a.swap(b);
603
- }
604
-
605
- template<typename T, bool MEM_MOVE> constexpr int SkTArray<T, MEM_MOVE>::kMinHeapAllocCount;
606
-
607
- /**
608
- * Subclass of SkTArray that contains a preallocated memory block for the array.
609
- */
610
- template <int N, typename T, bool MEM_MOVE = sk_is_trivially_relocatable<T>::value>
611
- class SkSTArray : private SkAlignedSTStorage<N,T>, public SkTArray<T, MEM_MOVE> {
612
- private:
613
- using STORAGE = SkAlignedSTStorage<N,T>;
614
- using INHERITED = SkTArray<T, MEM_MOVE>;
615
-
616
- public:
617
- SkSTArray()
618
- : STORAGE{}, INHERITED(static_cast<STORAGE*>(this)) {}
619
-
620
- SkSTArray(const T* array, int count)
621
- : STORAGE{}, INHERITED(array, count, static_cast<STORAGE*>(this)) {}
622
-
623
- SkSTArray(std::initializer_list<T> data)
624
- : SkSTArray(data.begin(), data.size()) {}
625
-
626
- explicit SkSTArray(int reserveCount)
627
- : SkSTArray() {
628
- this->reserve_back(reserveCount);
629
- }
630
-
631
- SkSTArray (const SkSTArray& that) : SkSTArray() { *this = that; }
632
- explicit SkSTArray(const INHERITED& that) : SkSTArray() { *this = that; }
633
- SkSTArray ( SkSTArray&& that) : SkSTArray() { *this = std::move(that); }
634
- explicit SkSTArray( INHERITED&& that) : SkSTArray() { *this = std::move(that); }
635
-
636
- SkSTArray& operator=(const SkSTArray& that) {
637
- INHERITED::operator=(that);
638
- return *this;
639
- }
640
- SkSTArray& operator=(const INHERITED& that) {
641
- INHERITED::operator=(that);
642
- return *this;
643
- }
644
-
645
- SkSTArray& operator=(SkSTArray&& that) {
646
- INHERITED::operator=(std::move(that));
647
- return *this;
648
- }
649
- SkSTArray& operator=(INHERITED&& that) {
650
- INHERITED::operator=(std::move(that));
651
- return *this;
652
- }
653
- };
654
-
655
- #endif
@@ -1,35 +0,0 @@
1
- /*
2
- * Copyright 2022 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 SkUniquePaintParamsID_DEFINED
9
- #define SkUniquePaintParamsID_DEFINED
10
-
11
- #include "include/core/SkTypes.h"
12
-
13
- // This class boils down to a unique uint that can be used instead of a variable length
14
- // key derived from a PaintParams.
15
- class SkUniquePaintParamsID {
16
- public:
17
- explicit SkUniquePaintParamsID(uint32_t id) : fID(id) {
18
- SkASSERT(id != SK_InvalidUniqueID);
19
- }
20
-
21
- static SkUniquePaintParamsID InvalidID() { return SkUniquePaintParamsID(); }
22
-
23
- SkUniquePaintParamsID() : fID(SK_InvalidUniqueID) {}
24
-
25
- bool operator==(const SkUniquePaintParamsID &that) const { return fID == that.fID; }
26
- bool operator!=(const SkUniquePaintParamsID &that) const { return !(*this == that); }
27
-
28
- bool isValid() const { return fID != SK_InvalidUniqueID; }
29
- uint32_t asUInt() const { return fID; }
30
-
31
- private:
32
- uint32_t fID;
33
- };
34
-
35
- #endif // SkUniquePaintParamsID_DEFINED