@shopify/react-native-skia 0.1.191 → 0.1.193

Sign up to get free protection for your applications and to get access to all the features.
Files changed (615) 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/JsiSkColorFilter.h +2 -17
  5. package/cpp/api/JsiSkContourMeasure.h +3 -17
  6. package/cpp/api/JsiSkContourMeasureIter.h +3 -18
  7. package/cpp/api/JsiSkData.h +1 -18
  8. package/cpp/api/JsiSkFont.h +4 -14
  9. package/cpp/api/JsiSkHostObjects.h +85 -10
  10. package/cpp/api/JsiSkImage.h +26 -16
  11. package/cpp/api/JsiSkImageFactory.h +2 -2
  12. package/cpp/api/JsiSkImageFilter.h +1 -17
  13. package/cpp/api/JsiSkMaskFilter.h +1 -17
  14. package/cpp/api/JsiSkMatrix.h +3 -6
  15. package/cpp/api/JsiSkPaint.h +3 -15
  16. package/cpp/api/JsiSkPath.h +10 -21
  17. package/cpp/api/JsiSkPathEffect.h +2 -17
  18. package/cpp/api/JsiSkPicture.h +4 -18
  19. package/cpp/api/JsiSkPictureRecorder.h +4 -1
  20. package/cpp/api/JsiSkPoint.h +6 -1
  21. package/cpp/api/JsiSkRRect.h +6 -1
  22. package/cpp/api/JsiSkRSXform.h +4 -6
  23. package/cpp/api/JsiSkRect.h +6 -2
  24. package/cpp/api/JsiSkRuntimeEffect.h +4 -7
  25. package/cpp/api/JsiSkRuntimeShaderBuilder.h +2 -10
  26. package/cpp/api/JsiSkSVG.h +1 -10
  27. package/cpp/api/JsiSkShader.h +2 -16
  28. package/cpp/api/JsiSkSurface.h +3 -16
  29. package/cpp/api/JsiSkTextBlob.h +2 -18
  30. package/cpp/api/JsiSkTypeface.h +1 -22
  31. package/cpp/api/JsiSkVertices.h +3 -17
  32. package/cpp/rnskia/dom/base/Declaration.h +5 -7
  33. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +1 -0
  34. package/cpp/rnskia/dom/nodes/JsiPathNode.h +2 -2
  35. package/cpp/rnskia/dom/props/BoxShadowProps.h +2 -0
  36. package/cpp/rnskia/values/RNSkReadonlyValue.h +2 -2
  37. package/cpp/rnskia/values/RNSkValue.h +1 -1
  38. package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +2 -8
  39. package/cpp/skia/include/android/SkImageAndroid.h +101 -0
  40. package/cpp/skia/include/codec/SkAndroidCodec.h +26 -8
  41. package/cpp/skia/include/codec/SkCodec.h +31 -17
  42. package/cpp/skia/include/codec/SkEncodedImageFormat.h +36 -0
  43. package/cpp/skia/include/codec/SkPixmapUtils.h +31 -0
  44. package/cpp/skia/include/config/SkUserConfig.h +61 -29
  45. package/cpp/skia/include/core/SkBitmap.h +25 -25
  46. package/cpp/skia/include/core/SkBlurTypes.h +0 -2
  47. package/cpp/skia/include/core/SkCanvas.h +32 -15
  48. package/cpp/skia/include/core/SkCapabilities.h +2 -2
  49. package/cpp/skia/include/core/SkColor.h +2 -0
  50. package/cpp/skia/include/core/SkColorPriv.h +19 -4
  51. package/cpp/skia/include/core/SkColorSpace.h +14 -17
  52. package/cpp/skia/include/core/SkColorType.h +1 -0
  53. package/cpp/skia/include/core/SkContourMeasure.h +1 -1
  54. package/cpp/skia/include/core/SkCoverageMode.h +0 -2
  55. package/cpp/skia/include/core/SkCubicMap.h +2 -0
  56. package/cpp/skia/include/core/SkData.h +5 -2
  57. package/cpp/skia/include/core/SkDataTable.h +6 -2
  58. package/cpp/skia/include/core/SkDeferredDisplayList.h +11 -10
  59. package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +9 -8
  60. package/cpp/skia/include/core/SkDrawable.h +10 -2
  61. package/cpp/skia/include/core/SkEncodedImageFormat.h +3 -30
  62. package/cpp/skia/include/core/SkFlattenable.h +4 -2
  63. package/cpp/skia/include/core/SkFont.h +1 -0
  64. package/cpp/skia/include/core/SkFontMetrics.h +1 -0
  65. package/cpp/skia/include/core/SkFontMgr.h +20 -29
  66. package/cpp/skia/include/core/SkFontStyle.h +4 -1
  67. package/cpp/skia/include/core/SkGraphics.h +21 -18
  68. package/cpp/skia/include/core/SkICC.h +3 -13
  69. package/cpp/skia/include/core/SkImage.h +395 -717
  70. package/cpp/skia/include/core/SkImageGenerator.h +19 -74
  71. package/cpp/skia/include/core/SkImageInfo.h +7 -5
  72. package/cpp/skia/include/core/SkM44.h +11 -0
  73. package/cpp/skia/include/core/SkMaskFilter.h +6 -3
  74. package/cpp/skia/include/core/SkMatrix.h +14 -4
  75. package/cpp/skia/include/core/SkMesh.h +52 -18
  76. package/cpp/skia/include/core/SkMilestone.h +1 -1
  77. package/cpp/skia/include/core/SkPaint.h +11 -34
  78. package/cpp/skia/include/core/SkPath.h +23 -4
  79. package/cpp/skia/include/core/SkPathBuilder.h +13 -5
  80. package/cpp/skia/include/core/SkPathMeasure.h +1 -1
  81. package/cpp/skia/include/core/SkPathTypes.h +0 -2
  82. package/cpp/skia/include/core/SkPathUtils.h +42 -0
  83. package/cpp/skia/include/core/SkPicture.h +3 -2
  84. package/cpp/skia/include/core/SkPictureRecorder.h +2 -0
  85. package/cpp/skia/include/core/SkPixelRef.h +4 -8
  86. package/cpp/skia/include/core/SkPixmap.h +12 -20
  87. package/cpp/skia/include/core/SkPoint.h +4 -2
  88. package/cpp/skia/include/core/SkPromiseImageTexture.h +2 -2
  89. package/cpp/skia/include/core/SkRRect.h +5 -1
  90. package/cpp/skia/include/core/SkRect.h +6 -3
  91. package/cpp/skia/include/core/SkRefCnt.h +9 -14
  92. package/cpp/skia/include/core/SkRegion.h +1 -1
  93. package/cpp/skia/include/core/SkScalar.h +2 -4
  94. package/cpp/skia/include/core/SkSerialProcs.h +18 -10
  95. package/cpp/skia/include/core/SkShader.h +1 -64
  96. package/cpp/skia/include/core/SkSize.h +2 -0
  97. package/cpp/skia/include/core/SkSpan.h +4 -112
  98. package/cpp/skia/include/core/SkStream.h +11 -12
  99. package/cpp/skia/include/core/SkString.h +9 -25
  100. package/cpp/skia/include/core/SkStrokeRec.h +1 -1
  101. package/cpp/skia/include/core/SkSurface.h +83 -61
  102. package/cpp/skia/include/core/SkSurfaceCharacterization.h +3 -3
  103. package/cpp/skia/include/core/SkSurfaceProps.h +9 -1
  104. package/cpp/skia/include/core/SkTextBlob.h +2 -2
  105. package/cpp/skia/include/core/SkTextureCompressionType.h +30 -0
  106. package/cpp/skia/include/core/SkTime.h +1 -1
  107. package/cpp/skia/include/core/SkTypeface.h +9 -2
  108. package/cpp/skia/include/core/SkTypes.h +37 -466
  109. package/cpp/skia/include/core/SkVertices.h +2 -0
  110. package/cpp/skia/include/core/SkYUVAInfo.h +4 -0
  111. package/cpp/skia/include/core/SkYUVAPixmaps.h +7 -1
  112. package/cpp/skia/include/docs/SkPDFDocument.h +12 -1
  113. package/cpp/skia/include/effects/SkColorMatrix.h +2 -1
  114. package/cpp/skia/include/effects/SkGradientShader.h +65 -14
  115. package/cpp/skia/include/effects/SkImageFilters.h +0 -11
  116. package/cpp/skia/include/effects/SkRuntimeEffect.h +41 -11
  117. package/cpp/skia/include/encode/SkEncoder.h +7 -3
  118. package/cpp/skia/include/encode/SkICC.h +36 -0
  119. package/cpp/skia/include/encode/SkJpegEncoder.h +102 -71
  120. package/cpp/skia/include/encode/SkPngEncoder.h +89 -71
  121. package/cpp/skia/include/encode/SkWebpEncoder.h +65 -38
  122. package/cpp/skia/include/gpu/GpuTypes.h +23 -1
  123. package/cpp/skia/include/gpu/GrBackendSurface.h +9 -7
  124. package/cpp/skia/include/gpu/GrContextOptions.h +28 -9
  125. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +6 -4
  126. package/cpp/skia/include/gpu/GrDirectContext.h +84 -63
  127. package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -1
  128. package/cpp/skia/include/gpu/GrRecordingContext.h +9 -5
  129. package/cpp/skia/include/gpu/GrTypes.h +18 -18
  130. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +4 -4
  131. package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +3 -3
  132. package/cpp/skia/include/gpu/ganesh/GrTextureGenerator.h +77 -0
  133. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +385 -0
  134. package/cpp/skia/include/gpu/gl/GrGLExtensions.h +3 -3
  135. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -1
  136. package/cpp/skia/include/gpu/gl/GrGLInterface.h +0 -3
  137. package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -1
  138. package/cpp/skia/include/gpu/graphite/BackendTexture.h +72 -3
  139. package/cpp/skia/include/gpu/graphite/Context.h +85 -32
  140. package/cpp/skia/include/gpu/graphite/ContextOptions.h +15 -11
  141. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +55 -5
  142. package/cpp/skia/include/gpu/graphite/ImageProvider.h +6 -4
  143. package/cpp/skia/include/gpu/graphite/Recorder.h +41 -11
  144. package/cpp/skia/include/gpu/graphite/Recording.h +50 -3
  145. package/cpp/skia/include/gpu/graphite/TextureInfo.h +47 -8
  146. package/cpp/skia/include/gpu/graphite/YUVABackendTextures.h +139 -0
  147. package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +40 -0
  148. package/cpp/skia/include/gpu/graphite/dawn/DawnUtils.h +28 -0
  149. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +1 -1
  150. package/cpp/skia/include/gpu/graphite/mtl/{MtlTypes.h → MtlGraphiteTypes.h} +7 -6
  151. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteUtils.h +27 -0
  152. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +4 -9
  153. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteUtils.h +28 -0
  154. package/cpp/skia/include/gpu/mock/GrMockTypes.h +17 -13
  155. package/cpp/skia/include/gpu/mtl/GrMtlTypes.h +2 -2
  156. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +1 -1
  157. package/cpp/skia/include/gpu/vk/GrVkTypes.h +3 -3
  158. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +3 -3
  159. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +5 -7
  160. package/cpp/skia/include/pathops/SkPathOps.h +3 -3
  161. package/cpp/skia/include/ports/SkFontMgr_data.h +22 -0
  162. package/cpp/skia/include/ports/SkFontMgr_indirect.h +14 -14
  163. package/cpp/skia/include/ports/SkRemotableFontMgr.h +2 -2
  164. package/cpp/skia/include/ports/SkTypeface_win.h +2 -1
  165. package/cpp/skia/include/private/SkChecksum.h +32 -7
  166. package/cpp/skia/include/private/SkColorData.h +1 -26
  167. package/cpp/skia/include/private/SkGainmapInfo.h +97 -0
  168. package/cpp/skia/include/private/SkGainmapShader.h +53 -0
  169. package/cpp/skia/include/private/SkIDChangeListener.h +4 -3
  170. package/cpp/skia/include/private/SkJpegGainmapEncoder.h +71 -0
  171. package/cpp/skia/include/private/SkJpegMetadataDecoder.h +61 -0
  172. package/cpp/skia/include/private/SkOpts_spi.h +3 -1
  173. package/cpp/skia/include/private/SkPathRef.h +64 -47
  174. package/cpp/skia/include/private/SkSLDefines.h +5 -5
  175. package/cpp/skia/include/private/SkSLSampleUsage.h +0 -4
  176. package/cpp/skia/include/private/SkSpinlock.h +1 -1
  177. package/cpp/skia/include/private/SkWeakRefCnt.h +3 -0
  178. package/cpp/skia/include/private/{SingleOwner.h → base/SingleOwner.h} +8 -5
  179. package/cpp/skia/include/private/base/SkAPI.h +52 -0
  180. package/cpp/skia/include/private/base/SkAlign.h +39 -0
  181. package/cpp/skia/include/private/base/SkAlignedStorage.h +32 -0
  182. package/cpp/skia/include/private/base/SkAssert.h +92 -0
  183. package/cpp/skia/include/private/base/SkAttributes.h +102 -0
  184. package/cpp/skia/include/private/base/SkCPUTypes.h +25 -0
  185. package/cpp/skia/include/private/base/SkContainers.h +46 -0
  186. package/cpp/skia/include/private/base/SkDebug.h +27 -0
  187. package/cpp/skia/include/private/{SkDeque.h → base/SkDeque.h} +3 -1
  188. package/cpp/skia/include/private/base/SkFeatures.h +151 -0
  189. package/cpp/skia/include/private/{SkFixed.h → base/SkFixed.h} +9 -7
  190. package/cpp/skia/include/private/{SkFloatBits.h → base/SkFloatBits.h} +2 -3
  191. package/cpp/skia/include/private/{SkFloatingPoint.h → base/SkFloatingPoint.h} +18 -9
  192. package/cpp/skia/include/private/base/SkLoadUserConfig.h +63 -0
  193. package/cpp/skia/include/private/{SkMacros.h → base/SkMacros.h} +17 -2
  194. package/cpp/skia/include/private/{SkMalloc.h → base/SkMalloc.h} +4 -7
  195. package/cpp/skia/include/{core → private/base}/SkMath.h +25 -2
  196. package/cpp/skia/include/private/{SkMutex.h → base/SkMutex.h} +5 -5
  197. package/cpp/skia/include/private/{SkNoncopyable.h → base/SkNoncopyable.h} +2 -2
  198. package/cpp/skia/include/private/{SkOnce.h → base/SkOnce.h} +3 -1
  199. package/cpp/skia/include/private/base/SkPathEnums.h +25 -0
  200. package/cpp/skia/include/private/{SkSafe32.h → base/SkSafe32.h} +16 -1
  201. package/cpp/skia/include/private/{SkSemaphore.h → base/SkSemaphore.h} +4 -3
  202. package/cpp/skia/include/private/base/SkSpan_impl.h +129 -0
  203. package/cpp/skia/include/private/base/SkTArray.h +694 -0
  204. package/cpp/skia/include/private/{SkTDArray.h → base/SkTDArray.h} +17 -54
  205. package/cpp/skia/include/private/{SkTFitsIn.h → base/SkTFitsIn.h} +14 -8
  206. package/cpp/skia/include/private/{SkTLogic.h → base/SkTLogic.h} +1 -1
  207. package/cpp/skia/include/private/{SkTemplates.h → base/SkTemplates.h} +63 -88
  208. package/cpp/skia/include/private/{SkThreadID.h → base/SkThreadID.h} +5 -2
  209. package/cpp/skia/include/private/{SkTo.h → base/SkTo.h} +13 -2
  210. package/cpp/skia/include/private/base/SkTypeTraits.h +33 -0
  211. package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +130 -0
  212. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +5 -9
  213. package/cpp/skia/include/private/chromium/SkDiscardableMemory.h +70 -0
  214. package/cpp/skia/include/private/chromium/Slug.h +0 -9
  215. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +2 -1
  216. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +1 -1
  217. package/cpp/skia/include/private/gpu/ganesh/GrDawnTypesPriv.h +1 -1
  218. package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +1 -1
  219. package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +1 -1
  220. package/cpp/skia/include/private/gpu/ganesh/GrMockTypesPriv.h +3 -2
  221. package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +1 -1
  222. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +17 -23
  223. package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +2 -2
  224. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +38 -0
  225. package/cpp/skia/include/private/gpu/graphite/{MtlTypesPriv.h → MtlGraphiteTypesPriv.h} +5 -5
  226. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +1 -9
  227. package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +4 -0
  228. package/cpp/skia/include/utils/SkCamera.h +1 -1
  229. package/cpp/skia/include/utils/SkCustomTypeface.h +7 -1
  230. package/cpp/skia/include/utils/SkNWayCanvas.h +6 -6
  231. package/cpp/skia/include/utils/SkOrderedFontMgr.h +7 -6
  232. package/cpp/skia/include/utils/SkPaintFilterCanvas.h +2 -2
  233. package/cpp/skia/include/utils/SkParsePath.h +1 -1
  234. package/cpp/skia/modules/skcms/skcms.h +14 -0
  235. package/cpp/skia/modules/skcms/src/Transform_inl.h +19 -0
  236. package/cpp/skia/modules/skparagraph/include/FontCollection.h +2 -2
  237. package/cpp/skia/modules/skparagraph/include/Paragraph.h +72 -2
  238. package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +1 -11
  239. package/cpp/skia/modules/skparagraph/include/ParagraphPainter.h +63 -0
  240. package/cpp/skia/modules/skparagraph/include/TextStyle.h +27 -4
  241. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +13 -13
  242. package/cpp/skia/modules/skresources/include/SkResources.h +18 -4
  243. package/cpp/skia/modules/svg/include/SkSVGAttribute.h +1 -1
  244. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +2 -2
  245. package/cpp/skia/modules/svg/include/SkSVGContainer.h +2 -2
  246. package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
  247. package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +2 -2
  248. package/cpp/skia/modules/svg/include/SkSVGGradient.h +2 -2
  249. package/cpp/skia/modules/svg/include/SkSVGIDMapper.h +2 -2
  250. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +3 -3
  251. package/cpp/skia/modules/svg/include/SkSVGSVG.h +1 -1
  252. package/cpp/skia/modules/svg/include/SkSVGTypes.h +22 -21
  253. package/cpp/skia/modules/svg/include/SkSVGValue.h +1 -1
  254. package/cpp/skia/{include/private → src/core}/SkTHash.h +41 -37
  255. package/ios/RNSkia-iOS/ViewScreenshotService.mm +1 -1
  256. package/lib/commonjs/renderer/Canvas.js +17 -1
  257. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  258. package/lib/commonjs/skia/core/Data.d.ts +2 -2
  259. package/lib/commonjs/skia/core/Data.js.map +1 -1
  260. package/lib/commonjs/skia/types/Data/Data.d.ts +2 -2
  261. package/lib/commonjs/skia/types/Data/Data.js.map +1 -1
  262. package/lib/commonjs/skia/types/Image/Image.d.ts +2 -2
  263. package/lib/commonjs/skia/types/Image/Image.js.map +1 -1
  264. package/lib/commonjs/skia/types/JsiInstance.d.ts +4 -4
  265. package/lib/commonjs/skia/types/JsiInstance.js.map +1 -1
  266. package/lib/commonjs/skia/types/SVG/SVG.d.ts +2 -2
  267. package/lib/commonjs/skia/types/SVG/SVG.js.map +1 -1
  268. package/lib/commonjs/skia/types/Typeface/Typeface.d.ts +2 -2
  269. package/lib/commonjs/skia/types/Typeface/Typeface.js.map +1 -1
  270. package/lib/commonjs/skia/web/Host.d.ts +1 -0
  271. package/lib/commonjs/skia/web/Host.js +2 -0
  272. package/lib/commonjs/skia/web/Host.js.map +1 -1
  273. package/lib/commonjs/skia/web/JsiSkCanvas.d.ts +1 -0
  274. package/lib/commonjs/skia/web/JsiSkCanvas.js +6 -0
  275. package/lib/commonjs/skia/web/JsiSkCanvas.js.map +1 -1
  276. package/lib/commonjs/skia/web/JsiSkColorFilter.d.ts +1 -0
  277. package/lib/commonjs/skia/web/JsiSkColorFilter.js +6 -0
  278. package/lib/commonjs/skia/web/JsiSkColorFilter.js.map +1 -1
  279. package/lib/commonjs/skia/web/JsiSkContourMeasure.d.ts +1 -0
  280. package/lib/commonjs/skia/web/JsiSkContourMeasure.js +6 -0
  281. package/lib/commonjs/skia/web/JsiSkContourMeasure.js.map +1 -1
  282. package/lib/commonjs/skia/web/JsiSkContourMeasureIter.d.ts +1 -0
  283. package/lib/commonjs/skia/web/JsiSkContourMeasureIter.js +6 -0
  284. package/lib/commonjs/skia/web/JsiSkContourMeasureIter.js.map +1 -1
  285. package/lib/commonjs/skia/web/JsiSkData.d.ts +1 -1
  286. package/lib/commonjs/skia/web/JsiSkData.js +4 -2
  287. package/lib/commonjs/skia/web/JsiSkData.js.map +1 -1
  288. package/lib/commonjs/skia/web/JsiSkFont.d.ts +1 -0
  289. package/lib/commonjs/skia/web/JsiSkFont.js +6 -0
  290. package/lib/commonjs/skia/web/JsiSkFont.js.map +1 -1
  291. package/lib/commonjs/skia/web/JsiSkImage.d.ts +1 -1
  292. package/lib/commonjs/skia/web/JsiSkImage.js +6 -4
  293. package/lib/commonjs/skia/web/JsiSkImage.js.map +1 -1
  294. package/lib/commonjs/skia/web/JsiSkImageFilter.d.ts +1 -0
  295. package/lib/commonjs/skia/web/JsiSkImageFilter.js +6 -0
  296. package/lib/commonjs/skia/web/JsiSkImageFilter.js.map +1 -1
  297. package/lib/commonjs/skia/web/JsiSkMaskFilter.d.ts +1 -0
  298. package/lib/commonjs/skia/web/JsiSkMaskFilter.js +6 -0
  299. package/lib/commonjs/skia/web/JsiSkMaskFilter.js.map +1 -1
  300. package/lib/commonjs/skia/web/JsiSkMatrix.d.ts +1 -0
  301. package/lib/commonjs/skia/web/JsiSkMatrix.js +5 -0
  302. package/lib/commonjs/skia/web/JsiSkMatrix.js.map +1 -1
  303. package/lib/commonjs/skia/web/JsiSkPaint.d.ts +1 -0
  304. package/lib/commonjs/skia/web/JsiSkPaint.js +6 -0
  305. package/lib/commonjs/skia/web/JsiSkPaint.js.map +1 -1
  306. package/lib/commonjs/skia/web/JsiSkPath.d.ts +1 -0
  307. package/lib/commonjs/skia/web/JsiSkPath.js +6 -0
  308. package/lib/commonjs/skia/web/JsiSkPath.js.map +1 -1
  309. package/lib/commonjs/skia/web/JsiSkPathEffect.d.ts +1 -0
  310. package/lib/commonjs/skia/web/JsiSkPathEffect.js +6 -0
  311. package/lib/commonjs/skia/web/JsiSkPathEffect.js.map +1 -1
  312. package/lib/commonjs/skia/web/JsiSkPicture.d.ts +1 -0
  313. package/lib/commonjs/skia/web/JsiSkPicture.js +6 -1
  314. package/lib/commonjs/skia/web/JsiSkPicture.js.map +1 -1
  315. package/lib/commonjs/skia/web/JsiSkPictureRecorder.d.ts +1 -0
  316. package/lib/commonjs/skia/web/JsiSkPictureRecorder.js +6 -0
  317. package/lib/commonjs/skia/web/JsiSkPictureRecorder.js.map +1 -1
  318. package/lib/commonjs/skia/web/JsiSkPoint.d.ts +1 -0
  319. package/lib/commonjs/skia/web/JsiSkPoint.js +5 -0
  320. package/lib/commonjs/skia/web/JsiSkPoint.js.map +1 -1
  321. package/lib/commonjs/skia/web/JsiSkRRect.d.ts +1 -0
  322. package/lib/commonjs/skia/web/JsiSkRRect.js +5 -0
  323. package/lib/commonjs/skia/web/JsiSkRRect.js.map +1 -1
  324. package/lib/commonjs/skia/web/JsiSkRSXform.d.ts +1 -0
  325. package/lib/commonjs/skia/web/JsiSkRSXform.js +5 -0
  326. package/lib/commonjs/skia/web/JsiSkRSXform.js.map +1 -1
  327. package/lib/commonjs/skia/web/JsiSkRect.d.ts +1 -0
  328. package/lib/commonjs/skia/web/JsiSkRect.js +5 -0
  329. package/lib/commonjs/skia/web/JsiSkRect.js.map +1 -1
  330. package/lib/commonjs/skia/web/JsiSkRuntimeEffect.d.ts +1 -0
  331. package/lib/commonjs/skia/web/JsiSkRuntimeEffect.js +6 -0
  332. package/lib/commonjs/skia/web/JsiSkRuntimeEffect.js.map +1 -1
  333. package/lib/commonjs/skia/web/JsiSkShader.d.ts +1 -0
  334. package/lib/commonjs/skia/web/JsiSkShader.js +6 -0
  335. package/lib/commonjs/skia/web/JsiSkShader.js.map +1 -1
  336. package/lib/commonjs/skia/web/JsiSkSurface.d.ts +1 -0
  337. package/lib/commonjs/skia/web/JsiSkSurface.js +6 -0
  338. package/lib/commonjs/skia/web/JsiSkSurface.js.map +1 -1
  339. package/lib/commonjs/skia/web/JsiSkTextBlob.d.ts +1 -0
  340. package/lib/commonjs/skia/web/JsiSkTextBlob.js +6 -0
  341. package/lib/commonjs/skia/web/JsiSkTextBlob.js.map +1 -1
  342. package/lib/commonjs/skia/web/JsiSkTypeface.d.ts +1 -1
  343. package/lib/commonjs/skia/web/JsiSkTypeface.js +6 -4
  344. package/lib/commonjs/skia/web/JsiSkTypeface.js.map +1 -1
  345. package/lib/commonjs/skia/web/JsiSkVertices.d.ts +1 -0
  346. package/lib/commonjs/skia/web/JsiSkVertices.js +6 -0
  347. package/lib/commonjs/skia/web/JsiSkVertices.js.map +1 -1
  348. package/lib/commonjs/values/hooks/useComputedValue.js +1 -1
  349. package/lib/commonjs/values/hooks/useComputedValue.js.map +1 -1
  350. package/lib/commonjs/values/types.d.ts +1 -1
  351. package/lib/commonjs/values/types.js.map +1 -1
  352. package/lib/commonjs/values/web/RNSkComputedValue.d.ts +1 -1
  353. package/lib/commonjs/values/web/RNSkComputedValue.js +1 -1
  354. package/lib/commonjs/values/web/RNSkComputedValue.js.map +1 -1
  355. package/lib/commonjs/values/web/RNSkReadonlyValue.d.ts +1 -1
  356. package/lib/commonjs/values/web/RNSkReadonlyValue.js +1 -1
  357. package/lib/commonjs/values/web/RNSkReadonlyValue.js.map +1 -1
  358. package/lib/commonjs/views/SkiaDomView.web.js +14 -4
  359. package/lib/commonjs/views/SkiaDomView.web.js.map +1 -1
  360. package/lib/commonjs/views/types.d.ts +2 -1
  361. package/lib/commonjs/views/types.js.map +1 -1
  362. package/lib/module/renderer/Canvas.js +15 -1
  363. package/lib/module/renderer/Canvas.js.map +1 -1
  364. package/lib/module/skia/core/Data.d.ts +2 -2
  365. package/lib/module/skia/core/Data.js.map +1 -1
  366. package/lib/module/skia/types/Data/Data.d.ts +2 -2
  367. package/lib/module/skia/types/Data/Data.js.map +1 -1
  368. package/lib/module/skia/types/Image/Image.d.ts +2 -2
  369. package/lib/module/skia/types/Image/Image.js.map +1 -1
  370. package/lib/module/skia/types/JsiInstance.d.ts +4 -4
  371. package/lib/module/skia/types/JsiInstance.js.map +1 -1
  372. package/lib/module/skia/types/SVG/SVG.d.ts +2 -2
  373. package/lib/module/skia/types/SVG/SVG.js.map +1 -1
  374. package/lib/module/skia/types/Typeface/Typeface.d.ts +2 -2
  375. package/lib/module/skia/types/Typeface/Typeface.js.map +1 -1
  376. package/lib/module/skia/web/Host.d.ts +1 -0
  377. package/lib/module/skia/web/Host.js +2 -0
  378. package/lib/module/skia/web/Host.js.map +1 -1
  379. package/lib/module/skia/web/JsiSkCanvas.d.ts +1 -0
  380. package/lib/module/skia/web/JsiSkCanvas.js +6 -0
  381. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  382. package/lib/module/skia/web/JsiSkColorFilter.d.ts +1 -0
  383. package/lib/module/skia/web/JsiSkColorFilter.js +6 -0
  384. package/lib/module/skia/web/JsiSkColorFilter.js.map +1 -1
  385. package/lib/module/skia/web/JsiSkContourMeasure.d.ts +1 -0
  386. package/lib/module/skia/web/JsiSkContourMeasure.js +6 -0
  387. package/lib/module/skia/web/JsiSkContourMeasure.js.map +1 -1
  388. package/lib/module/skia/web/JsiSkContourMeasureIter.d.ts +1 -0
  389. package/lib/module/skia/web/JsiSkContourMeasureIter.js +6 -0
  390. package/lib/module/skia/web/JsiSkContourMeasureIter.js.map +1 -1
  391. package/lib/module/skia/web/JsiSkData.d.ts +1 -1
  392. package/lib/module/skia/web/JsiSkData.js +4 -2
  393. package/lib/module/skia/web/JsiSkData.js.map +1 -1
  394. package/lib/module/skia/web/JsiSkFont.d.ts +1 -0
  395. package/lib/module/skia/web/JsiSkFont.js +6 -0
  396. package/lib/module/skia/web/JsiSkFont.js.map +1 -1
  397. package/lib/module/skia/web/JsiSkImage.d.ts +1 -1
  398. package/lib/module/skia/web/JsiSkImage.js +6 -4
  399. package/lib/module/skia/web/JsiSkImage.js.map +1 -1
  400. package/lib/module/skia/web/JsiSkImageFilter.d.ts +1 -0
  401. package/lib/module/skia/web/JsiSkImageFilter.js +6 -0
  402. package/lib/module/skia/web/JsiSkImageFilter.js.map +1 -1
  403. package/lib/module/skia/web/JsiSkMaskFilter.d.ts +1 -0
  404. package/lib/module/skia/web/JsiSkMaskFilter.js +6 -0
  405. package/lib/module/skia/web/JsiSkMaskFilter.js.map +1 -1
  406. package/lib/module/skia/web/JsiSkMatrix.d.ts +1 -0
  407. package/lib/module/skia/web/JsiSkMatrix.js +5 -0
  408. package/lib/module/skia/web/JsiSkMatrix.js.map +1 -1
  409. package/lib/module/skia/web/JsiSkPaint.d.ts +1 -0
  410. package/lib/module/skia/web/JsiSkPaint.js +6 -0
  411. package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
  412. package/lib/module/skia/web/JsiSkPath.d.ts +1 -0
  413. package/lib/module/skia/web/JsiSkPath.js +6 -0
  414. package/lib/module/skia/web/JsiSkPath.js.map +1 -1
  415. package/lib/module/skia/web/JsiSkPathEffect.d.ts +1 -0
  416. package/lib/module/skia/web/JsiSkPathEffect.js +6 -0
  417. package/lib/module/skia/web/JsiSkPathEffect.js.map +1 -1
  418. package/lib/module/skia/web/JsiSkPicture.d.ts +1 -0
  419. package/lib/module/skia/web/JsiSkPicture.js +6 -0
  420. package/lib/module/skia/web/JsiSkPicture.js.map +1 -1
  421. package/lib/module/skia/web/JsiSkPictureRecorder.d.ts +1 -0
  422. package/lib/module/skia/web/JsiSkPictureRecorder.js +6 -0
  423. package/lib/module/skia/web/JsiSkPictureRecorder.js.map +1 -1
  424. package/lib/module/skia/web/JsiSkPoint.d.ts +1 -0
  425. package/lib/module/skia/web/JsiSkPoint.js +5 -0
  426. package/lib/module/skia/web/JsiSkPoint.js.map +1 -1
  427. package/lib/module/skia/web/JsiSkRRect.d.ts +1 -0
  428. package/lib/module/skia/web/JsiSkRRect.js +5 -0
  429. package/lib/module/skia/web/JsiSkRRect.js.map +1 -1
  430. package/lib/module/skia/web/JsiSkRSXform.d.ts +1 -0
  431. package/lib/module/skia/web/JsiSkRSXform.js +5 -0
  432. package/lib/module/skia/web/JsiSkRSXform.js.map +1 -1
  433. package/lib/module/skia/web/JsiSkRect.d.ts +1 -0
  434. package/lib/module/skia/web/JsiSkRect.js +5 -0
  435. package/lib/module/skia/web/JsiSkRect.js.map +1 -1
  436. package/lib/module/skia/web/JsiSkRuntimeEffect.d.ts +1 -0
  437. package/lib/module/skia/web/JsiSkRuntimeEffect.js +6 -0
  438. package/lib/module/skia/web/JsiSkRuntimeEffect.js.map +1 -1
  439. package/lib/module/skia/web/JsiSkShader.d.ts +1 -0
  440. package/lib/module/skia/web/JsiSkShader.js +6 -0
  441. package/lib/module/skia/web/JsiSkShader.js.map +1 -1
  442. package/lib/module/skia/web/JsiSkSurface.d.ts +1 -0
  443. package/lib/module/skia/web/JsiSkSurface.js +6 -0
  444. package/lib/module/skia/web/JsiSkSurface.js.map +1 -1
  445. package/lib/module/skia/web/JsiSkTextBlob.d.ts +1 -0
  446. package/lib/module/skia/web/JsiSkTextBlob.js +6 -0
  447. package/lib/module/skia/web/JsiSkTextBlob.js.map +1 -1
  448. package/lib/module/skia/web/JsiSkTypeface.d.ts +1 -1
  449. package/lib/module/skia/web/JsiSkTypeface.js +6 -4
  450. package/lib/module/skia/web/JsiSkTypeface.js.map +1 -1
  451. package/lib/module/skia/web/JsiSkVertices.d.ts +1 -0
  452. package/lib/module/skia/web/JsiSkVertices.js +6 -0
  453. package/lib/module/skia/web/JsiSkVertices.js.map +1 -1
  454. package/lib/module/values/hooks/useComputedValue.js +1 -1
  455. package/lib/module/values/hooks/useComputedValue.js.map +1 -1
  456. package/lib/module/values/types.d.ts +1 -1
  457. package/lib/module/values/types.js.map +1 -1
  458. package/lib/module/values/web/RNSkComputedValue.d.ts +1 -1
  459. package/lib/module/values/web/RNSkComputedValue.js +1 -1
  460. package/lib/module/values/web/RNSkComputedValue.js.map +1 -1
  461. package/lib/module/values/web/RNSkReadonlyValue.d.ts +1 -1
  462. package/lib/module/values/web/RNSkReadonlyValue.js +1 -1
  463. package/lib/module/values/web/RNSkReadonlyValue.js.map +1 -1
  464. package/lib/module/views/SkiaDomView.web.js +13 -4
  465. package/lib/module/views/SkiaDomView.web.js.map +1 -1
  466. package/lib/module/views/types.d.ts +2 -1
  467. package/lib/module/views/types.js.map +1 -1
  468. package/lib/typescript/src/skia/core/Data.d.ts +2 -2
  469. package/lib/typescript/src/skia/types/Data/Data.d.ts +2 -2
  470. package/lib/typescript/src/skia/types/Image/Image.d.ts +2 -2
  471. package/lib/typescript/src/skia/types/JsiInstance.d.ts +4 -4
  472. package/lib/typescript/src/skia/types/SVG/SVG.d.ts +2 -2
  473. package/lib/typescript/src/skia/types/Typeface/Typeface.d.ts +2 -2
  474. package/lib/typescript/src/skia/web/Host.d.ts +1 -0
  475. package/lib/typescript/src/skia/web/JsiSkCanvas.d.ts +1 -0
  476. package/lib/typescript/src/skia/web/JsiSkColorFilter.d.ts +1 -0
  477. package/lib/typescript/src/skia/web/JsiSkContourMeasure.d.ts +1 -0
  478. package/lib/typescript/src/skia/web/JsiSkContourMeasureIter.d.ts +1 -0
  479. package/lib/typescript/src/skia/web/JsiSkData.d.ts +1 -1
  480. package/lib/typescript/src/skia/web/JsiSkFont.d.ts +1 -0
  481. package/lib/typescript/src/skia/web/JsiSkImage.d.ts +1 -1
  482. package/lib/typescript/src/skia/web/JsiSkImageFilter.d.ts +1 -0
  483. package/lib/typescript/src/skia/web/JsiSkMaskFilter.d.ts +1 -0
  484. package/lib/typescript/src/skia/web/JsiSkMatrix.d.ts +1 -0
  485. package/lib/typescript/src/skia/web/JsiSkPaint.d.ts +1 -0
  486. package/lib/typescript/src/skia/web/JsiSkPath.d.ts +1 -0
  487. package/lib/typescript/src/skia/web/JsiSkPathEffect.d.ts +1 -0
  488. package/lib/typescript/src/skia/web/JsiSkPicture.d.ts +1 -0
  489. package/lib/typescript/src/skia/web/JsiSkPictureRecorder.d.ts +1 -0
  490. package/lib/typescript/src/skia/web/JsiSkPoint.d.ts +1 -0
  491. package/lib/typescript/src/skia/web/JsiSkRRect.d.ts +1 -0
  492. package/lib/typescript/src/skia/web/JsiSkRSXform.d.ts +1 -0
  493. package/lib/typescript/src/skia/web/JsiSkRect.d.ts +1 -0
  494. package/lib/typescript/src/skia/web/JsiSkRuntimeEffect.d.ts +1 -0
  495. package/lib/typescript/src/skia/web/JsiSkShader.d.ts +1 -0
  496. package/lib/typescript/src/skia/web/JsiSkSurface.d.ts +1 -0
  497. package/lib/typescript/src/skia/web/JsiSkTextBlob.d.ts +1 -0
  498. package/lib/typescript/src/skia/web/JsiSkTypeface.d.ts +1 -1
  499. package/lib/typescript/src/skia/web/JsiSkVertices.d.ts +1 -0
  500. package/lib/typescript/src/values/types.d.ts +1 -1
  501. package/lib/typescript/src/values/web/RNSkComputedValue.d.ts +1 -1
  502. package/lib/typescript/src/values/web/RNSkReadonlyValue.d.ts +1 -1
  503. package/lib/typescript/src/views/types.d.ts +2 -1
  504. package/libs/android/arm64-v8a/libskia.a +0 -0
  505. package/libs/android/arm64-v8a/libskottie.a +0 -0
  506. package/libs/android/arm64-v8a/libsksg.a +0 -0
  507. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  508. package/libs/android/arm64-v8a/libsvg.a +0 -0
  509. package/libs/android/armeabi-v7a/libskia.a +0 -0
  510. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  511. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  512. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  513. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  514. package/libs/android/x86/libskia.a +0 -0
  515. package/libs/android/x86/libskottie.a +0 -0
  516. package/libs/android/x86/libsksg.a +0 -0
  517. package/libs/android/x86/libskshaper.a +0 -0
  518. package/libs/android/x86/libsvg.a +0 -0
  519. package/libs/android/x86_64/libskia.a +0 -0
  520. package/libs/android/x86_64/libskottie.a +0 -0
  521. package/libs/android/x86_64/libsksg.a +0 -0
  522. package/libs/android/x86_64/libskshaper.a +0 -0
  523. package/libs/android/x86_64/libsvg.a +0 -0
  524. package/libs/ios/libskia.xcframework/Info.plist +5 -5
  525. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  526. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  527. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  528. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  529. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  530. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  531. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  532. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  533. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  534. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  535. package/package.json +1 -1
  536. package/react-native-skia.podspec +1 -1
  537. package/scripts/install-npm.js +11 -1
  538. package/src/renderer/Canvas.tsx +21 -1
  539. package/src/skia/core/Data.ts +3 -3
  540. package/src/skia/types/Data/Data.ts +2 -2
  541. package/src/skia/types/Image/Image.ts +2 -2
  542. package/src/skia/types/JsiInstance.ts +4 -4
  543. package/src/skia/types/SVG/SVG.ts +2 -2
  544. package/src/skia/types/Typeface/Typeface.ts +2 -2
  545. package/src/skia/web/Host.ts +2 -0
  546. package/src/skia/web/JsiSkCanvas.ts +4 -0
  547. package/src/skia/web/JsiSkColorFilter.ts +4 -0
  548. package/src/skia/web/JsiSkContourMeasure.ts +4 -0
  549. package/src/skia/web/JsiSkContourMeasureIter.ts +4 -0
  550. package/src/skia/web/JsiSkData.ts +3 -3
  551. package/src/skia/web/JsiSkFont.ts +4 -0
  552. package/src/skia/web/JsiSkImage.ts +2 -2
  553. package/src/skia/web/JsiSkImageFilter.ts +4 -0
  554. package/src/skia/web/JsiSkMaskFilter.ts +4 -0
  555. package/src/skia/web/JsiSkMatrix.ts +4 -0
  556. package/src/skia/web/JsiSkPaint.ts +4 -0
  557. package/src/skia/web/JsiSkPath.ts +4 -0
  558. package/src/skia/web/JsiSkPathEffect.ts +4 -0
  559. package/src/skia/web/JsiSkPicture.ts +4 -0
  560. package/src/skia/web/JsiSkPictureRecorder.ts +4 -0
  561. package/src/skia/web/JsiSkPoint.ts +4 -0
  562. package/src/skia/web/JsiSkRRect.ts +4 -0
  563. package/src/skia/web/JsiSkRSXform.ts +4 -0
  564. package/src/skia/web/JsiSkRect.ts +4 -0
  565. package/src/skia/web/JsiSkRuntimeEffect.ts +4 -0
  566. package/src/skia/web/JsiSkShader.ts +4 -0
  567. package/src/skia/web/JsiSkSurface.ts +4 -0
  568. package/src/skia/web/JsiSkTextBlob.ts +4 -0
  569. package/src/skia/web/JsiSkTypeface.ts +2 -2
  570. package/src/skia/web/JsiSkVertices.ts +4 -0
  571. package/src/values/hooks/useComputedValue.ts +1 -1
  572. package/src/values/types.ts +1 -1
  573. package/src/values/web/RNSkComputedValue.ts +1 -1
  574. package/src/values/web/RNSkReadonlyValue.ts +1 -1
  575. package/src/views/SkiaDomView.web.tsx +6 -1
  576. package/src/views/types.ts +2 -1
  577. package/cpp/skia/include/core/SkImageEncoder.h +0 -71
  578. package/cpp/skia/include/gpu/GrConfig.h +0 -53
  579. package/cpp/skia/include/gpu/graphite/CombinationBuilder.h +0 -195
  580. package/cpp/skia/include/private/SkHalf.h +0 -38
  581. package/cpp/skia/include/private/SkImageInfoPriv.h +0 -199
  582. package/cpp/skia/include/private/SkSLIRNode.h +0 -64
  583. package/cpp/skia/include/private/SkSLLayout.h +0 -144
  584. package/cpp/skia/include/private/SkSLModifiers.h +0 -178
  585. package/cpp/skia/include/private/SkSLProgramElement.h +0 -77
  586. package/cpp/skia/include/private/SkSLProgramKind.h +0 -35
  587. package/cpp/skia/include/private/SkSLStatement.h +0 -86
  588. package/cpp/skia/include/private/SkSLString.h +0 -41
  589. package/cpp/skia/include/private/SkSLSymbol.h +0 -94
  590. package/cpp/skia/include/private/SkSafe_math.h +0 -52
  591. package/cpp/skia/include/private/SkStringView.h +0 -51
  592. package/cpp/skia/include/private/SkTArray.h +0 -655
  593. package/cpp/skia/include/private/SkUniquePaintParamsID.h +0 -35
  594. package/cpp/skia/include/private/SkVx.h +0 -1026
  595. package/cpp/skia/include/sksl/DSL.h +0 -37
  596. package/cpp/skia/include/sksl/DSLBlock.h +0 -58
  597. package/cpp/skia/include/sksl/DSLCase.h +0 -62
  598. package/cpp/skia/include/sksl/DSLCore.h +0 -492
  599. package/cpp/skia/include/sksl/DSLExpression.h +0 -241
  600. package/cpp/skia/include/sksl/DSLFunction.h +0 -113
  601. package/cpp/skia/include/sksl/DSLLayout.h +0 -92
  602. package/cpp/skia/include/sksl/DSLModifiers.h +0 -69
  603. package/cpp/skia/include/sksl/DSLStatement.h +0 -82
  604. package/cpp/skia/include/sksl/DSLSymbols.h +0 -61
  605. package/cpp/skia/include/sksl/DSLType.h +0 -271
  606. package/cpp/skia/include/sksl/DSLVar.h +0 -231
  607. package/cpp/skia/include/sksl/SkSLErrorReporter.h +0 -65
  608. package/cpp/skia/include/sksl/SkSLOperator.h +0 -154
  609. package/cpp/skia/include/sksl/SkSLPosition.h +0 -104
  610. package/cpp/skia/include/utils/SkRandom.h +0 -169
  611. package/cpp/skia/src/core/SkLRUCache.h +0 -126
  612. package/cpp/skia/src/core/SkTInternalLList.h +0 -302
  613. /package/cpp/skia/include/{core → codec}/SkPngChunkReader.h +0 -0
  614. /package/cpp/skia/include/private/{SkTPin.h → base/SkTPin.h} +0 -0
  615. /package/cpp/skia/include/private/{SkThreadAnnotations.h → base/SkThreadAnnotations.h} +0 -0
@@ -0,0 +1,385 @@
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 SkImageGanesh_DEFINED
9
+ #define SkImageGanesh_DEFINED
10
+
11
+ #include "include/core/SkImage.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/gpu/GpuTypes.h"
14
+ #include "include/gpu/GrTypes.h"
15
+ #include "include/private/base/SkAPI.h"
16
+
17
+ #include <functional>
18
+ #include <utility>
19
+
20
+ class GrBackendFormat;
21
+ class GrBackendTexture;
22
+ class GrContextThreadSafeProxy;
23
+ class GrDirectContext;
24
+ class GrRecordingContext;
25
+ class GrYUVABackendTextureInfo;
26
+ class GrYUVABackendTextures;
27
+ class SkColorSpace;
28
+ class SkData;
29
+ class SkPixmap;
30
+ class SkPromiseImageTexture;
31
+ class SkYUVAPixmaps;
32
+ enum SkAlphaType : int;
33
+ enum SkColorType : int;
34
+ enum class SkTextureCompressionType;
35
+ struct SkISize;
36
+
37
+ /**
38
+ * All factories in this file refer to the Ganesh GPU backend when they say GPU.
39
+ */
40
+
41
+ namespace SkImages {
42
+ /** Defines a callback function, taking one parameter of type GrBackendTexture with
43
+ no return value. Function is called when backend texture is to be released.
44
+ */
45
+ using BackendTextureReleaseProc = std::function<void(GrBackendTexture)>;
46
+ /** User function called when supplied texture may be deleted. */
47
+ using TextureReleaseProc = void (*)(ReleaseContext);
48
+
49
+ /** Creates GPU-backed SkImage from backendTexture associated with context.
50
+ Skia will assume ownership of the resource and will release it when no longer needed.
51
+ A non-null SkImage is returned if format of backendTexture is recognized and supported.
52
+ Recognized formats vary by GPU backend.
53
+ @param context GPU context
54
+ @param backendTexture texture residing on GPU
55
+ @param textureOrigin origin of backendTexture
56
+ @param colorType color type of the resulting image
57
+ @param alphaType alpha type of the resulting image
58
+ @param colorSpace range of colors; may be nullptr
59
+ @return created SkImage, or nullptr
60
+ */
61
+ SK_API sk_sp<SkImage> AdoptTextureFrom(GrRecordingContext* context,
62
+ const GrBackendTexture& backendTexture,
63
+ GrSurfaceOrigin textureOrigin,
64
+ SkColorType colorType);
65
+ SK_API sk_sp<SkImage> AdoptTextureFrom(GrRecordingContext* context,
66
+ const GrBackendTexture& backendTexture,
67
+ GrSurfaceOrigin textureOrigin,
68
+ SkColorType colorType,
69
+ SkAlphaType alphaType);
70
+ SK_API sk_sp<SkImage> AdoptTextureFrom(GrRecordingContext* context,
71
+ const GrBackendTexture& backendTexture,
72
+ GrSurfaceOrigin textureOrigin,
73
+ SkColorType colorType,
74
+ SkAlphaType alphaType,
75
+ sk_sp<SkColorSpace> colorSpace);
76
+
77
+ /** Creates GPU-backed SkImage from the provided GPU texture associated with context.
78
+ GPU texture must stay valid and unchanged until textureReleaseProc is called by Skia.
79
+ Skia will call textureReleaseProc with the passed-in releaseContext when SkImage
80
+ is deleted or no longer refers to the texture.
81
+ A non-null SkImage is returned if format of backendTexture is recognized and supported.
82
+ Recognized formats vary by GPU backend.
83
+ @note When using a DDL recording context, textureReleaseProc will be called on the
84
+ GPU thread after the DDL is played back on the direct context.
85
+ @param context GPU context
86
+ @param backendTexture texture residing on GPU
87
+ @param colorSpace This describes the color space of this image's contents, as
88
+ seen after sampling. In general, if the format of the backend
89
+ texture is SRGB, some linear colorSpace should be supplied
90
+ (e.g., SkColorSpace::MakeSRGBLinear()). If the format of the
91
+ backend texture is linear, then the colorSpace should include
92
+ a description of the transfer function as
93
+ well (e.g., SkColorSpace::MakeSRGB()).
94
+ @param textureReleaseProc function called when texture can be released
95
+ @param releaseContext state passed to textureReleaseProc
96
+ @return created SkImage, or nullptr
97
+ */
98
+ SK_API sk_sp<SkImage> BorrowTextureFrom(GrRecordingContext* context,
99
+ const GrBackendTexture& backendTexture,
100
+ GrSurfaceOrigin origin,
101
+ SkColorType colorType,
102
+ SkAlphaType alphaType,
103
+ sk_sp<SkColorSpace> colorSpace,
104
+ TextureReleaseProc textureReleaseProc = nullptr,
105
+ ReleaseContext releaseContext = nullptr);
106
+
107
+ /** Creates a GPU-backed SkImage from pixmap. It is uploaded to GPU backend using context.
108
+ Created SkImage is available to other GPU contexts, and is available across thread
109
+ boundaries. All contexts must be in the same GPU share group, or otherwise
110
+ share resources.
111
+ When SkImage is no longer referenced, context releases texture memory
112
+ asynchronously.
113
+ SkColorSpace of SkImage is determined by pixmap.colorSpace().
114
+ SkImage is returned referring to GPU backend if context is not nullptr,
115
+ format of data is recognized and supported, and if context supports moving
116
+ resources between contexts. Otherwise, pixmap pixel data is copied and SkImage
117
+ as returned in raster format if possible; nullptr may be returned.
118
+ Recognized GPU formats vary by platform and GPU backend.
119
+ @param context GPU context
120
+ @param pixmap SkImageInfo, pixel address, and row bytes
121
+ @param buildMips create SkImage as mip map if true
122
+ @param limitToMaxTextureSize downscale image to GPU maximum texture size, if necessary
123
+ @return created SkImage, or nullptr
124
+ */
125
+ SK_API sk_sp<SkImage> CrossContextTextureFromPixmap(GrDirectContext* context,
126
+ const SkPixmap& pixmap,
127
+ bool buildMips,
128
+ bool limitToMaxTextureSize = false);
129
+
130
+ /** Creates a GPU-backed SkImage from a GPU backend texture. The backend texture must stay
131
+ valid and unchanged until textureReleaseProc is called. The textureReleaseProc is
132
+ called when the SkImage is deleted or no longer refers to the texture and will be
133
+ passed the releaseContext.
134
+ An SkImage is returned if the format of backendTexture is recognized and supported.
135
+ Recognized formats vary by GPU backend.
136
+ @note When using a DDL recording context, textureReleaseProc will be called on the
137
+ GPU thread after the DDL is played back on the direct context.
138
+ @param context the GPU context
139
+ @param backendTexture a texture already allocated by the GPU
140
+ @param alphaType This characterizes the nature of the alpha values in the
141
+ backend texture. For opaque compressed formats (e.g., ETC1)
142
+ this should usually be set to kOpaq
143
+ ue_SkAlphaType.
144
+ @param colorSpace This describes the color space of this image's contents, as
145
+ seen after sampling. In general, if the format of the backend
146
+ texture is SRGB, some linear colorSpace should be supplied
147
+ (e.g., SkColorSpace::MakeSRGBLinear()). If the format of the
148
+ backend texture is linear, then the colorSpace should include
149
+ a description of the transfer function as
150
+ well (e.g., SkColorSpace::MakeSRGB()).
151
+ @param textureReleaseProc function called when the backend texture can be released
152
+ @param releaseContext state passed to textureReleaseProc
153
+ @return created SkImage, or nullptr
154
+ */
155
+ SK_API sk_sp<SkImage> TextureFromCompressedTexture(GrRecordingContext* context,
156
+ const GrBackendTexture& backendTexture,
157
+ GrSurfaceOrigin origin,
158
+ SkAlphaType alphaType,
159
+ sk_sp<SkColorSpace> colorSpace,
160
+ TextureReleaseProc textureReleaseProc = nullptr,
161
+ ReleaseContext releaseContext = nullptr);
162
+
163
+ /** Creates a GPU-backed SkImage from compressed data.
164
+ This method will return an SkImage representing the compressed data.
165
+ If the GPU doesn't support the specified compression method, the data
166
+ will be decompressed and then wrapped in a GPU-backed image.
167
+ Note: one can query the supported compression formats via
168
+ GrRecordingContext::compressedBackendFormat.
169
+ @param context GPU context
170
+ @param data compressed data to store in SkImage
171
+ @param width width of full SkImage
172
+ @param height height of full SkImage
173
+ @param type type of compression used
174
+ @param mipmapped does 'data' contain data for all the mipmap levels?
175
+ @param isProtected do the contents of 'data' require DRM protection (on Vulkan)?
176
+ @return created SkImage, or nullptr
177
+ */
178
+ SK_API sk_sp<SkImage> TextureFromCompressedTextureData(GrDirectContext* direct,
179
+ sk_sp<SkData> data,
180
+ int width,
181
+ int height,
182
+ SkTextureCompressionType type,
183
+ GrMipmapped mipmapped = GrMipmapped::kNo,
184
+ GrProtected isProtected = GrProtected::kNo);
185
+
186
+ /** Returns SkImage backed by GPU texture associated with context. Returned SkImage is
187
+ compatible with SkSurface created with dstColorSpace. The returned SkImage respects
188
+ mipmapped setting; if mipmapped equals skgpu::Mipmapped::kYes, the backing texture
189
+ allocates mip map levels.
190
+ The mipmapped parameter is effectively treated as kNo if MIP maps are not supported by the
191
+ GPU.
192
+ Returns original SkImage if the image is already texture-backed, the context matches, and
193
+ mipmapped is compatible with the backing GPU texture. skgpu::Budgeted is ignored in this
194
+ case.
195
+ Returns nullptr if context is nullptr, or if SkImage was created with another
196
+ GrDirectContext.
197
+ @param GrDirectContext the GrDirectContext in play, if it exists
198
+ @param SkImage a non-null pointer to an SkImage.
199
+ @param skgpu::Mipmapped Whether created SkImage texture must allocate mip map levels.
200
+ Defaults to no.
201
+ @param skgpu::Budgeted Whether to count a newly created texture for the returned image
202
+ counts against the context's budget. Defaults to yes.
203
+ @return created SkImage, or nullptr
204
+ */
205
+ SK_API sk_sp<SkImage> TextureFromImage(GrDirectContext*,
206
+ const SkImage*,
207
+ skgpu::Mipmapped = skgpu::Mipmapped::kNo,
208
+ skgpu::Budgeted = skgpu::Budgeted::kYes);
209
+ inline sk_sp<SkImage> TextureFromImage(GrDirectContext* ctx,
210
+ sk_sp<const SkImage> img,
211
+ skgpu::Mipmapped m = skgpu::Mipmapped::kNo,
212
+ skgpu::Budgeted b = skgpu::Budgeted::kYes) {
213
+ return TextureFromImage(ctx, img.get(), m, b);
214
+ }
215
+
216
+ /** Creates a GPU-backed SkImage from SkYUVAPixmaps.
217
+ The image will remain planar with each plane converted to a texture using the passed
218
+ GrRecordingContext.
219
+ SkYUVAPixmaps has a SkYUVAInfo which specifies the transformation from YUV to RGB.
220
+ The SkColorSpace of the resulting RGB values is specified by imageColorSpace. This will
221
+ be the SkColorSpace reported by the image and when drawn the RGB values will be converted
222
+ from this space into the destination space (if the destination is tagged).
223
+ Currently, this is only supported using the GPU backend and will fail if context is nullptr.
224
+ SkYUVAPixmaps does not need to remain valid after this returns.
225
+ @param context GPU context
226
+ @param pixmaps The planes as pixmaps with supported SkYUVAInfo that
227
+ specifies conversion to RGB.
228
+ @param buildMips create internal YUVA textures as mip map if kYes. This is
229
+ silently ignored if the context does not support mip maps.
230
+ @param limitToMaxTextureSize downscale image to GPU maximum texture size, if necessary
231
+ @param imageColorSpace range of colors of the resulting image; may be nullptr
232
+ @return created SkImage, or nullptr
233
+ */
234
+ SK_API sk_sp<SkImage> TextureFromYUVAPixmaps(GrRecordingContext* context,
235
+ const SkYUVAPixmaps& pixmaps,
236
+ GrMipmapped buildMips,
237
+ bool limitToMaxTextureSize,
238
+ sk_sp<SkColorSpace> imageColorSpace);
239
+ SK_API sk_sp<SkImage> TextureFromYUVAPixmaps(GrRecordingContext* context,
240
+ const SkYUVAPixmaps& pixmaps,
241
+ GrMipmapped buildMips = GrMipmapped::kNo,
242
+ bool limitToMaxTextureSize = false);
243
+
244
+ /** Creates a GPU-backed SkImage from YUV[A] planar textures. This requires that the textures
245
+ * stay valid for the lifetime of the image. The ReleaseContext can be used to know when it is
246
+ * safe to either delete or overwrite the textures. If ReleaseProc is provided it is also called
247
+ * before return on failure.
248
+ @param context GPU context
249
+ @param yuvaTextures A set of textures containing YUVA data and a description of the
250
+ data and transformation to RGBA.
251
+ @param imageColorSpace range of colors of the resulting image after conversion to RGB;
252
+ may be nullptr
253
+ @param textureReleaseProc called when the backend textures can be released
254
+ @param releaseContext state passed to textureReleaseProc
255
+ @return created SkImage, or nullptr
256
+ */
257
+ SK_API sk_sp<SkImage> TextureFromYUVATextures(GrRecordingContext* context,
258
+ const GrYUVABackendTextures& yuvaTextures,
259
+ sk_sp<SkColorSpace> imageColorSpace,
260
+ TextureReleaseProc textureReleaseProc = nullptr,
261
+ ReleaseContext releaseContext = nullptr);
262
+ SK_API sk_sp<SkImage> TextureFromYUVATextures(GrRecordingContext* context,
263
+ const GrYUVABackendTextures& yuvaTextures);
264
+
265
+ using PromiseImageTextureContext = void*;
266
+ using PromiseImageTextureFulfillProc = sk_sp<SkPromiseImageTexture> (*)(PromiseImageTextureContext);
267
+ using PromiseImageTextureReleaseProc = void (*)(PromiseImageTextureContext);
268
+
269
+ /** Create a new GPU-backed SkImage that is very similar to an SkImage created by BorrowTextureFrom.
270
+ The difference is that the caller need not have created the texture nor populated it with the
271
+ image pixel data. Moreover, the SkImage may be created on a thread as the creation of the
272
+ image does not require access to the backend API or GrDirectContext. Instead of passing a
273
+ GrBackendTexture the client supplies a description of the texture consisting of
274
+ GrBackendFormat, width, height, and GrMipmapped state. The resulting SkImage can be drawn
275
+ to a SkDeferredDisplayListRecorder or directly to a GPU-backed SkSurface.
276
+ When the actual texture is required to perform a backend API draw, textureFulfillProc will
277
+ be called to receive a GrBackendTexture. The properties of the GrBackendTexture must match
278
+ those set during the SkImage creation, and it must refer to a valid existing texture in the
279
+ backend API context/device, and be populated with the image pixel data. The texture cannot
280
+ be deleted until textureReleaseProc is called.
281
+ There is at most one call to each of textureFulfillProc and textureReleaseProc.
282
+ textureReleaseProc is always called even if image creation fails or if the
283
+ image is never fulfilled (e.g. it is never drawn or all draws are clipped out)
284
+ @param gpuContextProxy the thread-safe proxy of the gpu context. required.
285
+ @param backendFormat format of promised gpu texture
286
+ @param dimensions width & height of promised gpu texture
287
+ @param mipmapped mip mapped state of promised gpu texture
288
+ @param origin surface origin of promised gpu texture
289
+ @param colorType color type of promised gpu texture
290
+ @param alphaType alpha type of promised gpu texture
291
+ @param colorSpace range of colors; may be nullptr
292
+ @param textureFulfillProc function called to get actual gpu texture
293
+ @param textureReleaseProc function called when texture can be deleted
294
+ @param textureContext state passed to textureFulfillProc and textureReleaseProc
295
+ @return created SkImage, or nullptr
296
+ */
297
+ SK_API sk_sp<SkImage> PromiseTextureFrom(sk_sp<GrContextThreadSafeProxy> gpuContextProxy,
298
+ const GrBackendFormat& backendFormat,
299
+ SkISize dimensions,
300
+ GrMipmapped mipmapped,
301
+ GrSurfaceOrigin origin,
302
+ SkColorType colorType,
303
+ SkAlphaType alphaType,
304
+ sk_sp<SkColorSpace> colorSpace,
305
+ PromiseImageTextureFulfillProc textureFulfillProc,
306
+ PromiseImageTextureReleaseProc textureReleaseProc,
307
+ PromiseImageTextureContext textureContext);
308
+
309
+ /** This is similar to 'PromiseTextureFrom' but it creates a GPU-backed SkImage from YUV[A] data.
310
+ The source data may be planar (i.e. spread across multiple textures). In
311
+ the extreme Y, U, V, and A are all in different planes and thus the image is specified by
312
+ four textures. 'backendTextureInfo' describes the planar arrangement, texture formats,
313
+ conversion to RGB, and origin of the textures. Separate 'textureFulfillProc' and
314
+ 'textureReleaseProc' calls are made for each texture. Each texture has its own
315
+ PromiseImageTextureContext. If 'backendTextureInfo' is not valid then no release proc
316
+ calls are made. Otherwise, the calls will be made even on failure. 'textureContexts' has one
317
+ entry for each of the up to four textures, as indicated by 'backendTextureInfo'.
318
+ Currently the mip mapped property of 'backendTextureInfo' is ignored. However, in the
319
+ near future it will be required that if it is kYes then textureFulfillProc must return
320
+ a mip mapped texture for each plane in order to successfully draw the image.
321
+ @param gpuContextProxy the thread-safe proxy of the gpu context. required.
322
+ @param backendTextureInfo info about the promised yuva gpu texture
323
+ @param imageColorSpace range of colors; may be nullptr
324
+ @param textureFulfillProc function called to get actual gpu texture
325
+ @param textureReleaseProc function called when texture can be deleted
326
+ @param textureContexts state passed to textureFulfillProc and textureReleaseProc
327
+ @return created SkImage, or nullptr
328
+ */
329
+ SK_API sk_sp<SkImage> PromiseTextureFromYUVA(sk_sp<GrContextThreadSafeProxy> gpuContextProxy,
330
+ const GrYUVABackendTextureInfo& backendTextureInfo,
331
+ sk_sp<SkColorSpace> imageColorSpace,
332
+ PromiseImageTextureFulfillProc textureFulfillProc,
333
+ PromiseImageTextureReleaseProc textureReleaseProc,
334
+ PromiseImageTextureContext textureContexts[]);
335
+
336
+ /** Retrieves the existing backend texture. If SkImage is not a Ganesh-backend texture image
337
+ or otherwise does not have such a texture, false is returned. Otherwise, outTexture will
338
+ be set to the image's texture.
339
+
340
+ If flushPendingGrContextIO is true, completes deferred I/O operations.
341
+ If origin in not nullptr, copies location of content drawn into SkImage.
342
+ @param outTexture Will be set to the underlying texture of the image if non-null.
343
+ @param flushPendingGrContextIO flag to flush outstanding requests
344
+ @param origin Will be set to the origin orientation of the image if non-null.
345
+ @return false if a Ganesh backend texture cannot be retrieved.
346
+ */
347
+ SK_API bool GetBackendTextureFromImage(const SkImage* img,
348
+ GrBackendTexture* outTexture,
349
+ bool flushPendingGrContextIO,
350
+ GrSurfaceOrigin* origin = nullptr);
351
+ inline bool GetBackendTextureFromImage(sk_sp<const SkImage> img,
352
+ GrBackendTexture* outTexture,
353
+ bool flushPendingGrContextIO,
354
+ GrSurfaceOrigin* origin = nullptr) {
355
+ return GetBackendTextureFromImage(img.get(), outTexture, flushPendingGrContextIO, origin);
356
+ }
357
+
358
+ /** Extracts the backendTexture from an existing SkImage.
359
+ If the image is not already GPU-backed, the raster data will be uploaded as a texture
360
+ and returned.
361
+ If this is the only reference to the image, the old image's texture will be
362
+ moved out of the passed in image.
363
+ If the image is shared (has a refcount > 1), the texture will be copied and then returned.
364
+ @param context GPU context
365
+ @param image image, either CPU-backed or GPU-backed
366
+ @param backendTexture Will be set to the underlying texture of the image.
367
+ @param backendTextureReleaseProc Called when the texture is released
368
+ @return false if image cannot be uploaded.
369
+ */
370
+ SK_API bool MakeBackendTextureFromImage(GrDirectContext* context,
371
+ sk_sp<SkImage> image,
372
+ GrBackendTexture* backendTexture,
373
+ BackendTextureReleaseProc* backendTextureReleaseProc);
374
+ // Legacy name
375
+ inline bool GetBackendTextureFromImage(GrDirectContext* context,
376
+ sk_sp<SkImage> image,
377
+ GrBackendTexture* backendTexture,
378
+ BackendTextureReleaseProc* backendTextureReleaseProc) {
379
+ return MakeBackendTextureFromImage(context, std::move(image), backendTexture,
380
+ backendTextureReleaseProc);
381
+ }
382
+
383
+ } // namespace SkImages
384
+
385
+ #endif
@@ -10,7 +10,7 @@
10
10
 
11
11
  #include "include/core/SkString.h"
12
12
  #include "include/gpu/gl/GrGLFunctions.h"
13
- #include "include/private/SkTArray.h"
13
+ #include "include/private/base/SkTArray.h"
14
14
 
15
15
  #include <utility>
16
16
 
@@ -66,13 +66,13 @@ public:
66
66
  */
67
67
  void add(const char[]);
68
68
 
69
- void reset() { fStrings.reset(); }
69
+ void reset() { fStrings.clear(); }
70
70
 
71
71
  void dumpJSON(SkJSONWriter*) const;
72
72
 
73
73
  private:
74
74
  bool fInitialized = false;
75
- SkTArray<SkString> fStrings;
75
+ skia_private::TArray<SkString> fStrings;
76
76
  };
77
77
 
78
78
  #endif
@@ -11,7 +11,7 @@
11
11
 
12
12
  #include <cstring>
13
13
  #include "include/gpu/gl/GrGLTypes.h"
14
- #include "include/private/SkTLogic.h"
14
+ #include "include/private/base/SkTLogic.h"
15
15
 
16
16
 
17
17
  extern "C" {
@@ -304,9 +304,6 @@ public:
304
304
  GrGLFunction<GrGLVertexAttribPointerFn> fVertexAttribPointer;
305
305
  GrGLFunction<GrGLViewportFn> fViewport;
306
306
 
307
- /* NV_framebuffer_mixed_samples */
308
- GrGLFunction<GrGLCoverageModulationFn> fCoverageModulation;
309
-
310
307
  /* ARB_sync */
311
308
  GrGLFunction<GrGLFenceSyncFn> fFenceSync;
312
309
  GrGLFunction<GrGLIsSyncFn> fIsSync;
@@ -10,6 +10,7 @@
10
10
  #define GrGLTypes_DEFINED
11
11
 
12
12
  #include "include/core/SkRefCnt.h"
13
+ #include "include/gpu/GpuTypes.h"
13
14
  #include "include/gpu/gl/GrGLConfig.h"
14
15
 
15
16
  /**
@@ -198,7 +199,7 @@ struct GrGLFramebufferInfo {
198
199
  struct GrGLSurfaceInfo {
199
200
  uint32_t fSampleCount = 1;
200
201
  uint32_t fLevelCount = 0;
201
- GrProtected fProtected = GrProtected::kNo;
202
+ skgpu::Protected fProtected = skgpu::Protected::kNo;
202
203
 
203
204
  GrGLenum fTarget = 0;
204
205
  GrGLenum fFormat = 0;
@@ -8,29 +8,71 @@
8
8
  #ifndef skgpu_graphite_BackendTexture_DEFINED
9
9
  #define skgpu_graphite_BackendTexture_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
11
12
  #include "include/core/SkSize.h"
12
13
  #include "include/gpu/graphite/GraphiteTypes.h"
13
14
  #include "include/gpu/graphite/TextureInfo.h"
14
15
 
16
+ #ifdef SK_DAWN
17
+ #include "include/gpu/graphite/dawn/DawnTypes.h"
18
+ #endif
19
+
15
20
  #ifdef SK_METAL
16
- #include "include/gpu/graphite/mtl/MtlTypes.h"
21
+ #include "include/gpu/graphite/mtl/MtlGraphiteTypes.h"
17
22
  #endif
18
23
 
19
24
  #ifdef SK_VULKAN
20
25
  #include "include/private/gpu/vk/SkiaVulkan.h"
21
26
  #endif
22
27
 
28
+ namespace skgpu {
29
+ class MutableTextureState;
30
+ class MutableTextureStateRef;
31
+ }
32
+
23
33
  namespace skgpu::graphite {
24
34
 
25
- class BackendTexture {
35
+ class SK_API BackendTexture {
26
36
  public:
27
- BackendTexture() {}
37
+ BackendTexture();
38
+ #ifdef SK_DAWN
39
+ // Create a BackendTexture from a WGPUTexture. Texture info will be
40
+ // queried from the texture. Comparing to WGPUTextureView,
41
+ // SkImage::readPixels(), SkSurface::readPixels() and
42
+ // SkSurface::writePixels() are implemented by direct buffer copy. They
43
+ // should be more efficient. For WGPUTextureView, those methods will use
44
+ // create an intermediate WGPUTexture, and use it to transfer pixels.
45
+ // Note:
46
+ // - for better performance, using WGPUTexture IS RECOMMENDED.
47
+ // - The BackendTexture will not call retain or release on the passed in
48
+ // WGPUTexture. Thus the client must keep the WGPUTexture valid until
49
+ // they are no longer using the BackendTexture.
50
+ BackendTexture(WGPUTexture texture);
51
+ // Create a BackendTexture from a WGPUTextureView. Texture dimensions and
52
+ // info have to be provided.
53
+ // Note:
54
+ // - this method is for importing WGPUTextureView from wgpu::SwapChain only.
55
+ // - The BackendTexture will not call retain or release on the passed in
56
+ // WGPUTextureView. Thus the client must keep the WGPUTextureView valid
57
+ // until they are no longer using the BackendTexture.
58
+ BackendTexture(SkISize dimensions,
59
+ const DawnTextureInfo& info,
60
+ WGPUTextureView textureView);
61
+ #endif
28
62
  #ifdef SK_METAL
29
63
  // The BackendTexture will not call retain or release on the passed in MtlHandle. Thus the
30
64
  // client must keep the MtlHandle valid until they are no longer using the BackendTexture.
31
65
  BackendTexture(SkISize dimensions, MtlHandle mtlTexture);
32
66
  #endif
33
67
 
68
+ #ifdef SK_VULKAN
69
+ BackendTexture(SkISize dimensions,
70
+ const VulkanTextureInfo&,
71
+ VkImageLayout,
72
+ uint32_t queueFamilyIndex,
73
+ VkImage);
74
+ #endif
75
+
34
76
  BackendTexture(const BackendTexture&);
35
77
 
36
78
  ~BackendTexture();
@@ -47,15 +89,42 @@ public:
47
89
 
48
90
  const TextureInfo& info() const { return fInfo; }
49
91
 
92
+ // If the client changes any of the mutable backend of the GrBackendTexture they should call
93
+ // this function to inform Skia that those values have changed. The backend API specific state
94
+ // that can be set from this function are:
95
+ //
96
+ // Vulkan: VkImageLayout and QueueFamilyIndex
97
+ void setMutableState(const skgpu::MutableTextureState&);
98
+
99
+ #ifdef SK_DAWN
100
+ WGPUTexture getDawnTexturePtr() const;
101
+ WGPUTextureView getDawnTextureViewPtr() const;
102
+ #endif
50
103
  #ifdef SK_METAL
51
104
  MtlHandle getMtlTexture() const;
52
105
  #endif
53
106
 
107
+ #ifdef SK_VULKAN
108
+ VkImage getVkImage() const;
109
+ VkImageLayout getVkImageLayout() const;
110
+ uint32_t getVkQueueFamilyIndex() const;
111
+ #endif
112
+
54
113
  private:
114
+ sk_sp<MutableTextureStateRef> mutableState() const;
115
+
55
116
  SkISize fDimensions;
56
117
  TextureInfo fInfo;
57
118
 
119
+ sk_sp<MutableTextureStateRef> fMutableState;
120
+
58
121
  union {
122
+ #ifdef SK_DAWN
123
+ struct {
124
+ WGPUTexture fDawnTexture;
125
+ WGPUTextureView fDawnTextureView;
126
+ };
127
+ #endif
59
128
  #ifdef SK_METAL
60
129
  MtlHandle fMtlTexture;
61
130
  #endif