@shopify/react-native-skia 1.3.13 → 1.4.1

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 (361) hide show
  1. package/android/CMakeLists.txt +9 -4
  2. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +6 -0
  3. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +81 -0
  4. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +40 -0
  5. package/cpp/api/JsiSkApi.h +2 -0
  6. package/cpp/api/JsiSkPath.h +29 -19
  7. package/cpp/api/JsiSkRuntimeEffect.h +7 -0
  8. package/cpp/api/JsiSkiaContext.h +79 -0
  9. package/cpp/rnskia/RNSkPlatformContext.h +4 -0
  10. package/cpp/rnskia/SkiaContext.h +22 -0
  11. package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -2
  12. package/cpp/skia/include/android/SkImageAndroid.h +1 -1
  13. package/cpp/skia/include/android/SkSurfaceAndroid.h +1 -1
  14. package/cpp/skia/include/codec/SkAndroidCodec.h +13 -9
  15. package/cpp/skia/include/codec/SkCodec.h +28 -5
  16. package/cpp/skia/include/core/SkArc.h +69 -0
  17. package/cpp/skia/include/core/SkBitmap.h +10 -0
  18. package/cpp/skia/include/core/SkBlender.h +2 -3
  19. package/cpp/skia/include/core/SkCanvas.h +86 -16
  20. package/cpp/skia/include/core/SkCapabilities.h +0 -4
  21. package/cpp/skia/include/core/SkColorFilter.h +4 -4
  22. package/cpp/skia/include/core/SkColorPriv.h +5 -7
  23. package/cpp/skia/include/core/SkColorType.h +2 -0
  24. package/cpp/skia/include/core/SkFlattenable.h +1 -1
  25. package/cpp/skia/include/core/SkFontArguments.h +3 -1
  26. package/cpp/skia/include/core/SkFontParameters.h +3 -2
  27. package/cpp/skia/include/core/SkFourByteTag.h +19 -0
  28. package/cpp/skia/include/core/SkImage.h +41 -1
  29. package/cpp/skia/include/core/SkImageGenerator.h +0 -5
  30. package/cpp/skia/include/core/SkImageInfo.h +20 -0
  31. package/cpp/skia/include/core/SkM44.h +1 -1
  32. package/cpp/skia/include/core/SkMatrix.h +2 -1
  33. package/cpp/skia/include/core/SkMilestone.h +1 -1
  34. package/cpp/skia/include/core/SkPaint.h +1 -1
  35. package/cpp/skia/include/core/SkPath.h +20 -6
  36. package/cpp/skia/include/core/SkPathMeasure.h +1 -0
  37. package/cpp/skia/include/core/SkPicture.h +5 -5
  38. package/cpp/skia/include/core/SkPoint3.h +2 -12
  39. package/cpp/skia/include/core/SkRRect.h +5 -0
  40. package/cpp/skia/include/core/SkRect.h +5 -16
  41. package/cpp/skia/include/core/SkRefCnt.h +2 -0
  42. package/cpp/skia/include/core/SkScalar.h +20 -32
  43. package/cpp/skia/include/core/SkShader.h +17 -0
  44. package/cpp/skia/include/core/SkSize.h +2 -1
  45. package/cpp/skia/include/core/SkStream.h +2 -3
  46. package/cpp/skia/include/core/SkStrokeRec.h +6 -1
  47. package/cpp/skia/include/core/SkSurface.h +13 -4
  48. package/cpp/skia/include/core/SkSurfaceProps.h +5 -0
  49. package/cpp/skia/include/core/SkSwizzle.h +3 -1
  50. package/cpp/skia/include/core/SkTypeface.h +1 -0
  51. package/cpp/skia/include/core/SkTypes.h +1 -19
  52. package/cpp/skia/include/core/SkUnPreMultiply.h +4 -5
  53. package/cpp/skia/include/core/SkVertices.h +4 -2
  54. package/cpp/skia/include/docs/SkPDFDocument.h +11 -14
  55. package/cpp/skia/include/effects/SkHighContrastFilter.h +6 -6
  56. package/cpp/skia/include/effects/SkImageFilters.h +49 -23
  57. package/cpp/skia/include/effects/SkRuntimeEffect.h +51 -70
  58. package/cpp/skia/include/effects/SkShaderMaskFilter.h +2 -0
  59. package/cpp/skia/include/effects/SkTableMaskFilter.h +2 -0
  60. package/cpp/skia/include/gpu/GrBackendSemaphore.h +2 -120
  61. package/cpp/skia/include/gpu/GrBackendSurface.h +2 -466
  62. package/cpp/skia/include/gpu/GrContextOptions.h +2 -368
  63. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +2 -179
  64. package/cpp/skia/include/gpu/GrDirectContext.h +2 -1011
  65. package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -47
  66. package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +2 -41
  67. package/cpp/skia/include/gpu/GrRecordingContext.h +2 -279
  68. package/cpp/skia/include/gpu/GrTypes.h +2 -238
  69. package/cpp/skia/include/gpu/GrYUVABackendTextures.h +2 -118
  70. package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +2 -29
  71. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -242
  72. package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +80 -0
  73. package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +412 -0
  74. package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +386 -0
  75. package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
  76. package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +993 -0
  77. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
  78. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +45 -0
  79. package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
  80. package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +285 -0
  81. package/cpp/skia/include/gpu/ganesh/GrTypes.h +177 -0
  82. package/cpp/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
  83. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
  84. package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
  85. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
  86. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
  87. package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
  88. package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
  89. package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
  90. package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
  91. package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
  92. package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +306 -0
  93. package/cpp/skia/include/gpu/ganesh/gl/GrGLInterface.h +338 -0
  94. package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
  95. package/cpp/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
  96. package/cpp/skia/include/gpu/{gl → ganesh/gl}/egl/GrGLMakeEGLInterface.h +2 -2
  97. package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
  98. package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
  99. package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
  100. package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
  101. package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
  102. package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlBackendContext.h +2 -2
  103. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
  104. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
  105. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
  106. package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlTypes.h +1 -3
  107. package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +2 -2
  108. package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +2 -2
  109. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
  110. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +7 -3
  111. package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +6 -3
  112. package/cpp/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
  113. package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +2 -9
  114. package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +2 -38
  115. package/cpp/skia/include/gpu/gl/GrGLConfig.h +2 -73
  116. package/cpp/skia/include/gpu/gl/GrGLExtensions.h +2 -72
  117. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +2 -301
  118. package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -332
  119. package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -213
  120. package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +20 -41
  121. package/cpp/skia/include/gpu/graphite/BackendTexture.h +18 -118
  122. package/cpp/skia/include/gpu/graphite/Context.h +122 -44
  123. package/cpp/skia/include/gpu/graphite/ContextOptions.h +30 -3
  124. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +45 -17
  125. package/cpp/skia/include/gpu/graphite/Image.h +56 -54
  126. package/cpp/skia/include/gpu/graphite/Recorder.h +68 -14
  127. package/cpp/skia/include/gpu/graphite/Recording.h +3 -3
  128. package/cpp/skia/include/gpu/graphite/Surface.h +6 -2
  129. package/cpp/skia/include/gpu/graphite/TextureInfo.h +36 -117
  130. package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +108 -6
  131. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +4 -1
  132. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +41 -25
  133. package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +197 -0
  134. package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +48 -0
  135. package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +84 -0
  136. package/cpp/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
  137. package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +85 -0
  138. package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +119 -0
  139. package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +51 -0
  140. package/cpp/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
  141. package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +170 -0
  142. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +24 -2
  143. package/cpp/skia/include/gpu/mock/GrMockTypes.h +2 -157
  144. package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +2 -0
  145. package/cpp/skia/include/gpu/vk/GrVkTypes.h +2 -101
  146. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +13 -8
  147. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +9 -3
  148. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +4 -1
  149. package/cpp/skia/include/gpu/vk/VulkanTypes.h +25 -8
  150. package/cpp/skia/include/ports/SkFontMgr_Fontations.h +20 -0
  151. package/cpp/skia/include/ports/SkFontMgr_android.h +7 -0
  152. package/cpp/skia/include/ports/SkImageGeneratorCG.h +3 -1
  153. package/cpp/skia/include/ports/SkTypeface_win.h +0 -17
  154. package/cpp/skia/include/private/SkEncodedInfo.h +8 -2
  155. package/cpp/skia/include/private/SkExif.h +28 -75
  156. package/cpp/skia/include/private/SkGainmapInfo.h +47 -7
  157. package/cpp/skia/include/private/SkJpegMetadataDecoder.h +12 -0
  158. package/cpp/skia/include/private/SkPathRef.h +52 -44
  159. package/cpp/skia/include/private/SkXmp.h +13 -4
  160. package/cpp/skia/include/private/base/SkASAN.h +56 -0
  161. package/cpp/skia/include/private/base/SkAlign.h +5 -0
  162. package/cpp/skia/include/private/base/SkContainers.h +10 -2
  163. package/cpp/skia/include/private/base/SkFeatures.h +22 -1
  164. package/cpp/skia/include/private/base/SkFloatingPoint.h +51 -65
  165. package/cpp/skia/include/private/base/SkMacros.h +67 -0
  166. package/cpp/skia/include/private/base/SkMalloc.h +8 -0
  167. package/cpp/skia/include/private/base/SkPoint_impl.h +2 -11
  168. package/cpp/skia/include/private/base/SkTArray.h +108 -23
  169. package/cpp/skia/include/private/base/SkTFitsIn.h +1 -12
  170. package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
  171. package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +0 -39
  172. package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +1 -1
  173. package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +3 -3
  174. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -4
  175. package/cpp/skia/include/private/chromium/Slug.h +5 -11
  176. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
  177. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +2 -2
  178. package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
  179. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +21 -93
  180. package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +2 -2
  181. package/cpp/skia/include/utils/SkCustomTypeface.h +1 -0
  182. package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
  183. package/cpp/skia/include/utils/SkParse.h +0 -1
  184. package/cpp/skia/modules/skcms/src/Transform_inl.h +59 -56
  185. package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -0
  186. package/cpp/skia/modules/skcms/src/skcms_internals.h +2 -0
  187. package/cpp/skia/modules/skcms/src/skcms_public.h +46 -14
  188. package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +15 -1
  189. package/cpp/skia/modules/skparagraph/include/TextStyle.h +2 -2
  190. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -4
  191. package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
  192. package/cpp/skia/modules/skshaper/include/SkShaper.h +316 -0
  193. package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +19 -0
  194. package/cpp/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
  195. package/cpp/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
  196. package/cpp/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
  197. package/cpp/skia/modules/skunicode/include/SkUnicode.h +6 -23
  198. package/cpp/skia/modules/svg/include/SkSVGAttribute.h +0 -3
  199. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +12 -2
  200. package/cpp/skia/modules/svg/include/SkSVGCircle.h +13 -0
  201. package/cpp/skia/modules/svg/include/SkSVGClipPath.h +6 -0
  202. package/cpp/skia/modules/svg/include/SkSVGContainer.h +17 -1
  203. package/cpp/skia/modules/svg/include/SkSVGDOM.h +25 -15
  204. package/cpp/skia/modules/svg/include/SkSVGEllipse.h +13 -2
  205. package/cpp/skia/modules/svg/include/SkSVGFe.h +11 -2
  206. package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +9 -0
  207. package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +9 -0
  208. package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
  209. package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +10 -1
  210. package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +10 -0
  211. package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +10 -0
  212. package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +9 -0
  213. package/cpp/skia/modules/svg/include/SkSVGFeImage.h +9 -0
  214. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +5 -0
  215. package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +11 -0
  216. package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
  217. package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +8 -0
  218. package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +9 -0
  219. package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +9 -0
  220. package/cpp/skia/modules/svg/include/SkSVGFilter.h +9 -0
  221. package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +3 -3
  222. package/cpp/skia/modules/svg/include/SkSVGGradient.h +10 -2
  223. package/cpp/skia/modules/svg/include/SkSVGImage.h +9 -0
  224. package/cpp/skia/modules/svg/include/SkSVGLine.h +11 -0
  225. package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +10 -0
  226. package/cpp/skia/modules/svg/include/SkSVGMask.h +6 -0
  227. package/cpp/skia/modules/svg/include/SkSVGNode.h +13 -2
  228. package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +5 -0
  229. package/cpp/skia/modules/svg/include/SkSVGPath.h +10 -0
  230. package/cpp/skia/modules/svg/include/SkSVGPattern.h +5 -0
  231. package/cpp/skia/modules/svg/include/SkSVGPoly.h +11 -0
  232. package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +11 -0
  233. package/cpp/skia/modules/svg/include/SkSVGRect.h +11 -0
  234. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +43 -7
  235. package/cpp/skia/modules/svg/include/SkSVGSVG.h +7 -0
  236. package/cpp/skia/modules/svg/include/SkSVGShape.h +8 -2
  237. package/cpp/skia/modules/svg/include/SkSVGStop.h +5 -3
  238. package/cpp/skia/modules/svg/include/SkSVGText.h +8 -2
  239. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +8 -0
  240. package/cpp/skia/modules/svg/include/SkSVGTypes.h +9 -0
  241. package/cpp/skia/modules/svg/include/SkSVGUse.h +7 -0
  242. package/cpp/skia/src/base/SkMathPriv.h +337 -0
  243. package/cpp/skia/src/base/SkTLazy.h +208 -0
  244. package/cpp/skia/src/core/SkTHash.h +58 -7
  245. package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +3 -0
  246. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -0
  247. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +7 -0
  248. package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +7 -2
  249. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +78 -0
  250. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +20 -4
  251. package/lib/commonjs/renderer/HostConfig.js.map +1 -1
  252. package/lib/commonjs/skia/types/Paragraph/TextStyle.d.ts +2 -2
  253. package/lib/commonjs/skia/types/Paragraph/TextStyle.js.map +1 -1
  254. package/lib/commonjs/skia/types/Skia.d.ts +6 -1
  255. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  256. package/lib/commonjs/skia/web/JsiSkia.js +4 -1
  257. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  258. package/lib/commonjs/web/WithSkiaWeb.d.ts +11 -4
  259. package/lib/commonjs/web/WithSkiaWeb.js +3 -2
  260. package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
  261. package/lib/module/renderer/HostConfig.js.map +1 -1
  262. package/lib/module/skia/types/Paragraph/TextStyle.d.ts +2 -2
  263. package/lib/module/skia/types/Paragraph/TextStyle.js.map +1 -1
  264. package/lib/module/skia/types/Skia.d.ts +6 -1
  265. package/lib/module/skia/types/Skia.js.map +1 -1
  266. package/lib/module/skia/web/JsiSkia.js +4 -1
  267. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  268. package/lib/module/web/WithSkiaWeb.d.ts +11 -4
  269. package/lib/module/web/WithSkiaWeb.js +3 -2
  270. package/lib/module/web/WithSkiaWeb.js.map +1 -1
  271. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -0
  272. package/lib/typescript/lib/commonjs/web/WithSkiaWeb.d.ts +2 -1
  273. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
  274. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -0
  275. package/lib/typescript/lib/module/web/WithSkiaWeb.d.ts +2 -1
  276. package/lib/typescript/src/skia/types/Paragraph/TextStyle.d.ts +2 -2
  277. package/lib/typescript/src/skia/types/Skia.d.ts +6 -1
  278. package/lib/typescript/src/web/WithSkiaWeb.d.ts +11 -4
  279. package/libs/android/arm64-v8a/libskia.a +0 -0
  280. package/libs/android/arm64-v8a/libskottie.a +0 -0
  281. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  282. package/libs/android/arm64-v8a/libsksg.a +0 -0
  283. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  284. package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
  285. package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
  286. package/libs/android/arm64-v8a/libsvg.a +0 -0
  287. package/libs/android/armeabi-v7a/libskia.a +0 -0
  288. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  289. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  290. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  291. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  292. package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
  293. package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
  294. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  295. package/libs/android/x86/libskia.a +0 -0
  296. package/libs/android/x86/libskottie.a +0 -0
  297. package/libs/android/x86/libskparagraph.a +0 -0
  298. package/libs/android/x86/libsksg.a +0 -0
  299. package/libs/android/x86/libskshaper.a +0 -0
  300. package/libs/android/x86/libskunicode_core.a +0 -0
  301. package/libs/android/x86/libskunicode_icu.a +0 -0
  302. package/libs/android/x86/libsvg.a +0 -0
  303. package/libs/android/x86_64/libskia.a +0 -0
  304. package/libs/android/x86_64/libskottie.a +0 -0
  305. package/libs/android/x86_64/libskparagraph.a +0 -0
  306. package/libs/android/x86_64/libsksg.a +0 -0
  307. package/libs/android/x86_64/libskshaper.a +0 -0
  308. package/libs/android/x86_64/libskunicode_core.a +0 -0
  309. package/libs/android/x86_64/libskunicode_icu.a +0 -0
  310. package/libs/android/x86_64/libsvg.a +0 -0
  311. package/libs/ios/libskia.xcframework/Info.plist +5 -5
  312. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  313. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  314. package/libs/ios/libskottie.xcframework/Info.plist +5 -5
  315. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  316. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  317. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  318. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  319. package/libs/ios/libsksg.xcframework/Info.plist +5 -5
  320. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  321. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  322. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  323. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  324. package/libs/ios/libsvg.xcframework/Info.plist +5 -5
  325. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  326. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  327. package/package.json +3 -5
  328. package/react-native-skia.podspec +2 -1
  329. package/src/renderer/HostConfig.ts +5 -1
  330. package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +5 -2
  331. package/src/renderer/__tests__/e2e/Paths.spec.tsx +12 -5
  332. package/src/renderer/__tests__/e2e/SDF.spec.tsx +1 -1
  333. package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +1 -1
  334. package/src/skia/types/Paragraph/TextStyle.ts +2 -2
  335. package/src/skia/types/Skia.ts +7 -1
  336. package/src/skia/web/JsiSkia.ts +3 -0
  337. package/src/web/WithSkiaWeb.tsx +17 -6
  338. package/cpp/skia/include/core/SkDrawLooper.h +0 -135
  339. package/cpp/skia/include/effects/SkBlurDrawLooper.h +0 -26
  340. package/cpp/skia/include/effects/SkLayerDrawLooper.h +0 -161
  341. package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +0 -14
  342. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +0 -84
  343. package/cpp/skia/include/gpu/vk/GrVkExtensions.h +0 -15
  344. package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +0 -15
  345. package/cpp/skia/include/ports/SkFontMgr_indirect.h +0 -102
  346. package/cpp/skia/include/ports/SkRemotableFontMgr.h +0 -139
  347. package/cpp/skia/include/private/base/SkFloatBits.h +0 -90
  348. package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +0 -69
  349. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +0 -54
  350. package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +0 -95
  351. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +0 -83
  352. package/cpp/skia/src/core/SkPathEnums.h +0 -25
  353. package/cpp/skia/src/core/SkPathPriv.h +0 -540
  354. package/libs/android/arm64-v8a/libskunicode.a +0 -0
  355. package/libs/android/armeabi-v7a/libskunicode.a +0 -0
  356. package/libs/android/x86/libskunicode.a +0 -0
  357. package/libs/android/x86_64/libskunicode.a +0 -0
  358. package/libs/ios/libskunicode.xcframework/Info.plist +0 -46
  359. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
  360. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
  361. /package/cpp/skia/include/gpu/{gl → ganesh/gl}/glx/GrGLMakeGLXInterface.h +0 -0
@@ -1,219 +1,8 @@
1
-
2
1
  /*
3
2
  * Copyright 2015 Google Inc.
4
3
  *
5
4
  * Use of this source code is governed by a BSD-style license that can be
6
5
  * found in the LICENSE file.
7
6
  */
8
-
9
- #ifndef GrGLTypes_DEFINED
10
- #define GrGLTypes_DEFINED
11
-
12
- #include "include/core/SkRefCnt.h"
13
- #include "include/gpu/GpuTypes.h"
14
- #include "include/gpu/gl/GrGLConfig.h"
15
-
16
- /**
17
- * Classifies GL contexts by which standard they implement (currently as OpenGL vs. OpenGL ES).
18
- */
19
- enum GrGLStandard {
20
- kNone_GrGLStandard,
21
- kGL_GrGLStandard,
22
- kGLES_GrGLStandard,
23
- kWebGL_GrGLStandard,
24
- };
25
- static const int kGrGLStandardCnt = 4;
26
-
27
- // The following allow certain interfaces to be turned off at compile time
28
- // (for example, to lower code size).
29
- #if SK_ASSUME_GL_ES
30
- #define GR_IS_GR_GL(standard) false
31
- #define GR_IS_GR_GL_ES(standard) true
32
- #define GR_IS_GR_WEBGL(standard) false
33
- #define SK_DISABLE_GL_INTERFACE 1
34
- #define SK_DISABLE_WEBGL_INTERFACE 1
35
- #elif SK_ASSUME_GL
36
- #define GR_IS_GR_GL(standard) true
37
- #define GR_IS_GR_GL_ES(standard) false
38
- #define GR_IS_GR_WEBGL(standard) false
39
- #define SK_DISABLE_GL_ES_INTERFACE 1
40
- #define SK_DISABLE_WEBGL_INTERFACE 1
41
- #elif SK_ASSUME_WEBGL
42
- #define GR_IS_GR_GL(standard) false
43
- #define GR_IS_GR_GL_ES(standard) false
44
- #define GR_IS_GR_WEBGL(standard) true
45
- #define SK_DISABLE_GL_ES_INTERFACE 1
46
- #define SK_DISABLE_GL_INTERFACE 1
47
- #else
48
- #define GR_IS_GR_GL(standard) (kGL_GrGLStandard == standard)
49
- #define GR_IS_GR_GL_ES(standard) (kGLES_GrGLStandard == standard)
50
- #define GR_IS_GR_WEBGL(standard) (kWebGL_GrGLStandard == standard)
51
- #endif
52
-
53
- ///////////////////////////////////////////////////////////////////////////////
54
-
55
- /**
56
- * The supported GL formats represented as an enum. Actual support by GrContext depends on GL
57
- * context version and extensions.
58
- */
59
- enum class GrGLFormat {
60
- kUnknown,
61
-
62
- kRGBA8,
63
- kR8,
64
- kALPHA8,
65
- kLUMINANCE8,
66
- kLUMINANCE8_ALPHA8,
67
- kBGRA8,
68
- kRGB565,
69
- kRGBA16F,
70
- kR16F,
71
- kRGB8,
72
- kRGBX8,
73
- kRG8,
74
- kRGB10_A2,
75
- kRGBA4,
76
- kSRGB8_ALPHA8,
77
- kCOMPRESSED_ETC1_RGB8,
78
- kCOMPRESSED_RGB8_ETC2,
79
- kCOMPRESSED_RGB8_BC1,
80
- kCOMPRESSED_RGBA8_BC1,
81
- kR16,
82
- kRG16,
83
- kRGBA16,
84
- kRG16F,
85
- kLUMINANCE16F,
86
-
87
- kLastColorFormat = kLUMINANCE16F,
88
-
89
- // Depth/Stencil formats
90
- kSTENCIL_INDEX8,
91
- kSTENCIL_INDEX16,
92
- kDEPTH24_STENCIL8,
93
-
94
- kLast = kDEPTH24_STENCIL8
95
- };
96
-
97
- ///////////////////////////////////////////////////////////////////////////////
98
- /**
99
- * Declares typedefs for all the GL functions used in GrGLInterface
100
- */
101
-
102
- typedef unsigned int GrGLenum;
103
- typedef unsigned char GrGLboolean;
104
- typedef unsigned int GrGLbitfield;
105
- typedef signed char GrGLbyte;
106
- typedef char GrGLchar;
107
- typedef short GrGLshort;
108
- typedef int GrGLint;
109
- typedef int GrGLsizei;
110
- typedef int64_t GrGLint64;
111
- typedef unsigned char GrGLubyte;
112
- typedef unsigned short GrGLushort;
113
- typedef unsigned int GrGLuint;
114
- typedef uint64_t GrGLuint64;
115
- typedef unsigned short int GrGLhalf;
116
- typedef float GrGLfloat;
117
- typedef float GrGLclampf;
118
- typedef double GrGLdouble;
119
- typedef double GrGLclampd;
120
- typedef void GrGLvoid;
121
- #ifdef _WIN64
122
- typedef signed long long int GrGLintptr;
123
- typedef signed long long int GrGLsizeiptr;
124
- #else
125
- typedef signed long int GrGLintptr;
126
- typedef signed long int GrGLsizeiptr;
127
- #endif
128
- typedef void* GrGLeglImage;
129
- typedef struct __GLsync* GrGLsync;
130
-
131
- struct GrGLDrawArraysIndirectCommand {
132
- GrGLuint fCount;
133
- GrGLuint fInstanceCount;
134
- GrGLuint fFirst;
135
- GrGLuint fBaseInstance; // Requires EXT_base_instance on ES.
136
- };
137
-
138
- // static_asserts must have messages in this file because its included in C++14 client code.
139
- static_assert(16 == sizeof(GrGLDrawArraysIndirectCommand), "");
140
-
141
- struct GrGLDrawElementsIndirectCommand {
142
- GrGLuint fCount;
143
- GrGLuint fInstanceCount;
144
- GrGLuint fFirstIndex;
145
- GrGLuint fBaseVertex;
146
- GrGLuint fBaseInstance; // Requires EXT_base_instance on ES.
147
- };
148
-
149
- static_assert(20 == sizeof(GrGLDrawElementsIndirectCommand), "");
150
-
151
- /**
152
- * KHR_debug
153
- */
154
- typedef void (GR_GL_FUNCTION_TYPE* GRGLDEBUGPROC)(GrGLenum source,
155
- GrGLenum type,
156
- GrGLuint id,
157
- GrGLenum severity,
158
- GrGLsizei length,
159
- const GrGLchar* message,
160
- const void* userParam);
161
-
162
- /**
163
- * EGL types.
164
- */
165
- typedef void* GrEGLImage;
166
- typedef void* GrEGLDisplay;
167
- typedef void* GrEGLContext;
168
- typedef void* GrEGLClientBuffer;
169
- typedef unsigned int GrEGLenum;
170
- typedef int32_t GrEGLint;
171
- typedef unsigned int GrEGLBoolean;
172
-
173
- ///////////////////////////////////////////////////////////////////////////////
174
- /**
175
- * Types for interacting with GL resources created externally to Skia. GrBackendObjects for GL
176
- * textures are really const GrGLTexture*. The fFormat here should be a sized, internal format
177
- * for the texture. We will try to use the sized format if the GL Context supports it, otherwise
178
- * we will internally fall back to using the base internal formats.
179
- */
180
- struct GrGLTextureInfo {
181
- GrGLenum fTarget;
182
- GrGLuint fID;
183
- GrGLenum fFormat = 0;
184
- skgpu::Protected fProtected = skgpu::Protected::kNo;
185
-
186
- bool operator==(const GrGLTextureInfo& that) const {
187
- return fTarget == that.fTarget &&
188
- fID == that.fID &&
189
- fFormat == that.fFormat &&
190
- fProtected == that.fProtected;
191
- }
192
-
193
- bool isProtected() const { return fProtected == skgpu::Protected::kYes; }
194
- };
195
-
196
- struct GrGLFramebufferInfo {
197
- GrGLuint fFBOID;
198
- GrGLenum fFormat = 0;
199
- skgpu::Protected fProtected = skgpu::Protected::kNo;
200
-
201
- bool operator==(const GrGLFramebufferInfo& that) const {
202
- return fFBOID == that.fFBOID &&
203
- fFormat == that.fFormat &&
204
- fProtected == that.fProtected;
205
- }
206
-
207
- bool isProtected() const { return fProtected == skgpu::Protected::kYes; }
208
- };
209
-
210
- struct GrGLSurfaceInfo {
211
- uint32_t fSampleCount = 1;
212
- uint32_t fLevelCount = 0;
213
- skgpu::Protected fProtected = skgpu::Protected::kNo;
214
-
215
- GrGLenum fTarget = 0;
216
- GrGLenum fFormat = 0;
217
- };
218
-
219
- #endif
7
+ // TODO(kjlubick, egdaniel) Delete this after migrating clients.
8
+ #include "include/gpu/ganesh/gl/GrGLTypes.h"
@@ -10,28 +10,15 @@
10
10
 
11
11
  #include "include/core/SkRefCnt.h"
12
12
  #include "include/gpu/graphite/GraphiteTypes.h"
13
-
14
- #ifdef SK_METAL
15
- #include "include/gpu/graphite/mtl/MtlGraphiteTypes.h"
16
- #endif
17
-
18
- #ifdef SK_VULKAN
19
- #include "include/private/gpu/vk/SkiaVulkan.h"
20
- #endif
13
+ #include "include/private/base/SkAnySubclass.h"
21
14
 
22
15
  namespace skgpu::graphite {
23
16
 
17
+ class BackendSemaphoreData;
18
+
24
19
  class SK_API BackendSemaphore {
25
20
  public:
26
21
  BackendSemaphore();
27
- #ifdef SK_METAL
28
- // TODO: Determine creator's responsibility for setting refcnt.
29
- BackendSemaphore(CFTypeRef mtlEvent, uint64_t value);
30
- #endif
31
-
32
- #ifdef SK_VULKAN
33
- BackendSemaphore(VkSemaphore semaphore);
34
- #endif
35
22
 
36
23
  BackendSemaphore(const BackendSemaphore&);
37
24
 
@@ -42,34 +29,26 @@ public:
42
29
  bool isValid() const { return fIsValid; }
43
30
  BackendApi backend() const { return fBackend; }
44
31
 
45
- #ifdef SK_METAL
46
- CFTypeRef getMtlEvent() const;
47
- uint64_t getMtlValue() const;
48
- #endif
32
+ private:
33
+ friend class BackendSemaphoreData;
34
+ friend class BackendSemaphorePriv;
35
+
36
+ // Size determined by looking at the BackendSemaphoreData subclasses, then
37
+ // guessing-and-checking. Compiler will complain if this is too small - in that case, just
38
+ // increase the number.
39
+ inline constexpr static size_t kMaxSubclassSize = 24;
40
+ using AnyBackendSemaphoreData = SkAnySubclass<BackendSemaphoreData, kMaxSubclassSize>;
49
41
 
50
- #ifdef SK_VULKAN
51
- VkSemaphore getVkSemaphore() const;
52
- #endif
42
+ template <typename SomeBackendSemaphoreData>
43
+ BackendSemaphore(BackendApi backend, const SomeBackendSemaphoreData& data)
44
+ : fBackend(backend), fIsValid(true) {
45
+ fSemaphoreData.emplace<SomeBackendSemaphoreData>(data);
46
+ }
53
47
 
54
- private:
55
- // TODO: For now, implement as a union until we figure out the plan for this and BackendTexture.
56
- union {
57
- #ifdef SK_DAWN
58
- // TODO: WebGPU doesn't seem to have the notion of an Event or Semaphore
59
- #endif
60
- #ifdef SK_METAL
61
- struct {
62
- CFTypeRef fMtlEvent; // Expected to be an id<MTLEvent>
63
- uint64_t fMtlValue;
64
- };
65
- #endif
66
- #ifdef SK_VULKAN
67
- VkSemaphore fVkSemaphore;
68
- #endif
69
- void* fEnsureUnionNonEmpty;
70
- };
71
- bool fIsValid = false;
72
48
  BackendApi fBackend;
49
+ AnyBackendSemaphoreData fSemaphoreData;
50
+
51
+ bool fIsValid = false;
73
52
  };
74
53
 
75
54
  } // namespace skgpu::graphite
@@ -12,81 +12,16 @@
12
12
  #include "include/core/SkSize.h"
13
13
  #include "include/gpu/graphite/GraphiteTypes.h"
14
14
  #include "include/gpu/graphite/TextureInfo.h"
15
-
16
- #ifdef SK_DAWN
17
- #include "include/gpu/graphite/dawn/DawnTypes.h"
18
- #endif
19
-
20
- #ifdef SK_METAL
21
- #include "include/gpu/graphite/mtl/MtlGraphiteTypes.h"
22
- #endif
23
-
24
- #ifdef SK_VULKAN
25
- #include "include/gpu/vk/VulkanTypes.h"
26
- #include "include/private/gpu/vk/SkiaVulkan.h"
27
- #endif
28
-
29
- namespace skgpu {
30
- class MutableTextureState;
31
- }
15
+ #include "include/private/base/SkAnySubclass.h"
32
16
 
33
17
  namespace skgpu::graphite {
34
18
 
19
+ class BackendTextureData;
20
+ struct VulkanTextureInfo;
21
+
35
22
  class SK_API BackendTexture {
36
23
  public:
37
24
  BackendTexture();
38
- #ifdef SK_DAWN
39
- // Create a BackendTexture from a WGPUTexture. Texture info will be queried from the texture.
40
- //
41
- // This is the recommended way of specifying a BackendTexture for Dawn. See the note below on
42
- // the constructor that takes a WGPUTextureView for a fuller explanation.
43
- //
44
- // The BackendTexture will not call retain or release on the passed in WGPUTexture. Thus, the
45
- // client must keep the WGPUTexture valid until they are no longer using the BackendTexture.
46
- // However, any SkImage or SkSurface that wraps the BackendTexture *will* retain and release
47
- // the WGPUTexture.
48
- BackendTexture(WGPUTexture texture);
49
-
50
- // Create a BackendTexture from a WGPUTexture. Texture planeDimensions, plane aspect and
51
- // info have to be provided. This is intended to be used only when accessing a plane
52
- // of a WGPUTexture.
53
- //
54
- // The BackendTexture will not call retain or release on the passed in WGPUTexture. Thus, the
55
- // client must keep the WGPUTexture valid until they are no longer using the BackendTexture.
56
- // However, any SkImage or SkSurface that wraps the BackendTexture *will* retain and release
57
- // the WGPUTexture.
58
- BackendTexture(SkISize planeDimensions, const DawnTextureInfo& info, WGPUTexture texture);
59
-
60
- // Create a BackendTexture from a WGPUTextureView. Texture dimensions and
61
- // info have to be provided.
62
- //
63
- // Using a WGPUTextureView rather than a WGPUTexture is less effecient for operations that
64
- // require buffer transfers to or from the texture (e.g. methods on graphite::Context that read
65
- // pixels or SkSurface::writePixels). In such cases an intermediate copy to or from a
66
- // WGPUTexture is required. Thus, it is recommended to use this functionality only for cases
67
- // where a WGPUTexture is unavailable, in particular when using wgpu::SwapChain.
68
- //
69
- // The BackendTexture will not call retain or release on the passed in WGPUTextureView. Thus,
70
- // the client must keep the WGPUTextureView valid until they are no longer using the
71
- // BackendTexture. However, any SkImage or SkSurface that wraps the BackendTexture *will* retain
72
- // and release the WGPUTextureView.
73
- BackendTexture(SkISize dimensions, const DawnTextureInfo& info, WGPUTextureView textureView);
74
- #endif
75
- #ifdef SK_METAL
76
- // The BackendTexture will not call retain or release on the passed in CFTypeRef. Thus the
77
- // client must keep the CFTypeRef valid until they are no longer using the BackendTexture.
78
- BackendTexture(SkISize dimensions, CFTypeRef mtlTexture);
79
- #endif
80
-
81
- #ifdef SK_VULKAN
82
- BackendTexture(SkISize dimensions,
83
- const VulkanTextureInfo&,
84
- VkImageLayout,
85
- uint32_t queueFamilyIndex,
86
- VkImage,
87
- VulkanAlloc);
88
- #endif
89
-
90
25
  BackendTexture(const BackendTexture&);
91
26
 
92
27
  ~BackendTexture();
@@ -103,59 +38,24 @@ public:
103
38
 
104
39
  const TextureInfo& info() const { return fInfo; }
105
40
 
106
- // If the client changes any of the mutable backend of the GrBackendTexture they should call
107
- // this function to inform Skia that those values have changed. The backend API specific state
108
- // that can be set from this function are:
109
- //
110
- // Vulkan: VkImageLayout and QueueFamilyIndex
111
- void setMutableState(const skgpu::MutableTextureState&);
112
-
113
- #ifdef SK_DAWN
114
- WGPUTexture getDawnTexturePtr() const;
115
- WGPUTextureView getDawnTextureViewPtr() const;
116
- #endif
117
- #ifdef SK_METAL
118
- CFTypeRef getMtlTexture() const;
119
- #endif
120
-
121
- #ifdef SK_VULKAN
122
- VkImage getVkImage() const;
123
- VkImageLayout getVkImageLayout() const;
124
- uint32_t getVkQueueFamilyIndex() const;
125
- const VulkanAlloc* getMemoryAlloc() const;
126
- #endif
127
-
128
41
  private:
129
- friend class VulkanResourceProvider; // for getMutableState
130
- sk_sp<MutableTextureState> getMutableState() const;
42
+ friend class BackendTextureData;
43
+ friend class BackendTexturePriv;
44
+
45
+ // Size determined by looking at the BackendTextureData subclasses, then guessing-and-checking.
46
+ // Compiler will complain if this is too small - in that case, just increase the number.
47
+ inline constexpr static size_t kMaxSubclassSize = 72;
48
+ using AnyBackendTextureData = SkAnySubclass<BackendTextureData, kMaxSubclassSize>;
49
+
50
+ template <typename SomeBackendTextureData>
51
+ BackendTexture(SkISize dimensions, TextureInfo info, const SomeBackendTextureData& textureData)
52
+ : fDimensions(dimensions), fInfo(info) {
53
+ fTextureData.emplace<SomeBackendTextureData>(textureData);
54
+ }
131
55
 
132
56
  SkISize fDimensions;
133
57
  TextureInfo fInfo;
134
-
135
- sk_sp<MutableTextureState> fMutableState;
136
-
137
- #ifdef SK_VULKAN
138
- // fMemoryAlloc == VulkanAlloc() if the client has already created their own VkImage and
139
- // will destroy it themselves as opposed to having Skia create/destroy it via
140
- // Recorder::createBackendTexture and Context::deleteBackendTexture.
141
- VulkanAlloc fMemoryAlloc = VulkanAlloc();
142
- #endif
143
-
144
- union {
145
- #ifdef SK_DAWN
146
- struct {
147
- WGPUTexture fDawnTexture;
148
- WGPUTextureView fDawnTextureView;
149
- };
150
- #endif
151
- #ifdef SK_METAL
152
- CFTypeRef fMtlTexture;
153
- #endif
154
- #ifdef SK_VULKAN
155
- VkImage fVkImage = VK_NULL_HANDLE;
156
- #endif
157
- void* fEnsureUnionNonEmpty;
158
- };
58
+ AnyBackendTextureData fTextureData;
159
59
  };
160
60
 
161
61
  } // namespace skgpu::graphite