@shopify/react-native-skia 1.3.13 → 1.4.0

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
@@ -0,0 +1,19 @@
1
+ /*
2
+ * Copyright 2024 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
+ #ifndef GrGLMakeWebGLInterface_DEFINED
8
+ #define GrGLMakeWebGLInterface_DEFINED
9
+
10
+ #include "include/core/SkRefCnt.h"
11
+ #include "include/private/base/SkAPI.h"
12
+
13
+ struct GrGLInterface;
14
+
15
+ namespace GrGLInterfaces {
16
+ SK_API sk_sp<const GrGLInterface> MakeWebGL();
17
+ }
18
+
19
+ #endif // GrGLMakeWebGLInterface_DEFINED
@@ -0,0 +1,219 @@
1
+
2
+ /*
3
+ * Copyright 2015 Google Inc.
4
+ *
5
+ * Use of this source code is governed by a BSD-style license that can be
6
+ * found in the LICENSE file.
7
+ */
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/ganesh/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
@@ -8,7 +8,7 @@
8
8
  #define GrGLMakeEGLInterface_DEFINED
9
9
 
10
10
  #include "include/core/SkRefCnt.h"
11
- #include "include/gpu/GrTypes.h"
11
+ #include "include/gpu/ganesh/GrTypes.h"
12
12
 
13
13
  struct GrGLInterface;
14
14
 
@@ -16,7 +16,7 @@ namespace GrGLInterfaces {
16
16
  SK_API sk_sp<const GrGLInterface> MakeEGL();
17
17
  }
18
18
 
19
- #if !defined(SK_DISABLE_LEGACY_GLXINTERFACE_FACTORY)
19
+ #if !defined(SK_DISABLE_LEGACY_EGLINTERFACE_FACTORY)
20
20
  sk_sp<const GrGLInterface> GrGLMakeEGLInterface();
21
21
  #endif
22
22
 
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright 2024 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 GrGLMakeEpoxyEGLInterface_DEFINED
9
+ #define GrGLMakeEpoxyEGLInterface_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
13
+
14
+ struct GrGLInterface;
15
+
16
+ namespace GrGLInterfaces {
17
+ SK_API sk_sp<const GrGLInterface> MakeEpoxyEGL();
18
+ }
19
+
20
+ #endif // GrGLMakeEpoxyEGLInterface_DEFINED
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright 2024 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 GrGLMakeIOSInterface_DEFINED
9
+ #define GrGLMakeIOSInterface_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
13
+
14
+ struct GrGLInterface;
15
+
16
+ namespace GrGLInterfaces {
17
+ SK_API sk_sp<const GrGLInterface> MakeIOS();
18
+ }
19
+
20
+ #endif // GrGLMakeIOSInterface_DEFINED
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright 2024 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 GrGLMakeMacInterface_DEFINED
9
+ #define GrGLMakeMacInterface_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
13
+
14
+ struct GrGLInterface;
15
+
16
+ namespace GrGLInterfaces {
17
+ SK_API sk_sp<const GrGLInterface> MakeMac();
18
+ }
19
+
20
+ #endif // GrGLMakeMacInterface_DEFINED
@@ -0,0 +1,20 @@
1
+ /*
2
+ * Copyright 2024 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 GrGLMakeWinInterface_DEFINED
9
+ #define GrGLMakeWinInterface_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
13
+
14
+ struct GrGLInterface;
15
+
16
+ namespace GrGLInterfaces {
17
+ SK_API sk_sp<const GrGLInterface> MakeWin();
18
+ }
19
+
20
+ #endif // GrGLMakeWinInterface_DEFINED
@@ -0,0 +1,166 @@
1
+ /*
2
+ * Copyright 2017 Google Inc.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef GrMockOptions_DEFINED
9
+ #define GrMockOptions_DEFINED
10
+
11
+ #include "include/core/SkTextureCompressionType.h"
12
+ #include "include/gpu/GpuTypes.h"
13
+ #include "include/private/base/SkAssert.h"
14
+ #include "include/private/gpu/ganesh/GrTypesPriv.h"
15
+
16
+ #include <cstdint>
17
+
18
+ class GrBackendFormat;
19
+
20
+ struct GrMockTextureInfo {
21
+ GrMockTextureInfo()
22
+ : fColorType(GrColorType::kUnknown)
23
+ , fCompressionType(SkTextureCompressionType::kNone)
24
+ , fID(0) {}
25
+
26
+ GrMockTextureInfo(GrColorType colorType,
27
+ SkTextureCompressionType compressionType,
28
+ int id,
29
+ skgpu::Protected isProtected = skgpu::Protected::kNo)
30
+ : fColorType(colorType)
31
+ , fCompressionType(compressionType)
32
+ , fID(id)
33
+ , fProtected(isProtected) {
34
+ SkASSERT(fID);
35
+ if (fCompressionType != SkTextureCompressionType::kNone) {
36
+ SkASSERT(colorType == GrColorType::kUnknown);
37
+ }
38
+ }
39
+
40
+ bool operator==(const GrMockTextureInfo& that) const {
41
+ return fColorType == that.fColorType &&
42
+ fCompressionType == that.fCompressionType &&
43
+ fID == that.fID &&
44
+ fProtected == that.fProtected;
45
+ }
46
+
47
+ GrBackendFormat getBackendFormat() const;
48
+
49
+ SkTextureCompressionType compressionType() const { return fCompressionType; }
50
+
51
+ GrColorType colorType() const {
52
+ SkASSERT(fCompressionType == SkTextureCompressionType::kNone);
53
+ return fColorType;
54
+ }
55
+
56
+ int id() const { return fID; }
57
+
58
+ skgpu::Protected getProtected() const { return fProtected; }
59
+ bool isProtected() const { return fProtected == skgpu::Protected::kYes; }
60
+
61
+ private:
62
+ GrColorType fColorType;
63
+ SkTextureCompressionType fCompressionType;
64
+ int fID;
65
+ skgpu::Protected fProtected = skgpu::Protected::kNo;
66
+ };
67
+
68
+ struct GrMockRenderTargetInfo {
69
+ GrMockRenderTargetInfo()
70
+ : fColorType(GrColorType::kUnknown)
71
+ , fID(0) {}
72
+
73
+ GrMockRenderTargetInfo(GrColorType colorType,
74
+ int id,
75
+ skgpu::Protected isProtected = skgpu::Protected::kNo)
76
+ : fColorType(colorType)
77
+ , fID(id)
78
+ , fProtected(isProtected) {
79
+ SkASSERT(fID);
80
+ }
81
+
82
+ bool operator==(const GrMockRenderTargetInfo& that) const {
83
+ return fColorType == that.fColorType &&
84
+ fID == that.fID &&
85
+ fProtected == that.fProtected;
86
+ }
87
+
88
+ GrBackendFormat getBackendFormat() const;
89
+
90
+ GrColorType colorType() const { return fColorType; }
91
+
92
+ skgpu::Protected getProtected() const { return fProtected; }
93
+ bool isProtected() const { return fProtected == skgpu::Protected::kYes; }
94
+
95
+ private:
96
+ GrColorType fColorType;
97
+ int fID;
98
+ skgpu::Protected fProtected = skgpu::Protected::kNo;
99
+ };
100
+
101
+ struct GrMockSurfaceInfo {
102
+ uint32_t fSampleCount = 1;
103
+ uint32_t fLevelCount = 0;
104
+ skgpu::Protected fProtected = skgpu::Protected::kNo;
105
+
106
+ GrColorType fColorType = GrColorType::kUnknown;
107
+ SkTextureCompressionType fCompressionType = SkTextureCompressionType::kNone;
108
+ };
109
+
110
+ static constexpr int kSkTextureCompressionTypeCount =
111
+ static_cast<int>(SkTextureCompressionType::kLast) + 1;
112
+
113
+ /**
114
+ * A pointer to this type is used as the GrBackendContext when creating a Mock GrContext. It can be
115
+ * used to specify capability options for the mock context. If nullptr is used a default constructed
116
+ * GrMockOptions is used.
117
+ */
118
+ struct GrMockOptions {
119
+ GrMockOptions() {
120
+ using Renderability = ConfigOptions::Renderability;
121
+ // By default RGBA_8888 and BGRA_8888 are textureable and renderable and
122
+ // A8 and RGB565 are texturable.
123
+ fConfigOptions[(int)GrColorType::kRGBA_8888].fRenderability = Renderability::kNonMSAA;
124
+ fConfigOptions[(int)GrColorType::kRGBA_8888].fTexturable = true;
125
+ fConfigOptions[(int)GrColorType::kAlpha_8].fTexturable = true;
126
+ fConfigOptions[(int)GrColorType::kBGR_565].fTexturable = true;
127
+ fConfigOptions[(int)GrColorType::kRGB_565].fTexturable = true;
128
+
129
+ fConfigOptions[(int)GrColorType::kBGRA_8888] = fConfigOptions[(int)GrColorType::kRGBA_8888];
130
+
131
+ fCompressedOptions[(int)SkTextureCompressionType::kETC2_RGB8_UNORM].fTexturable = true;
132
+ fCompressedOptions[(int)SkTextureCompressionType::kBC1_RGB8_UNORM].fTexturable = true;
133
+ fCompressedOptions[(int)SkTextureCompressionType::kBC1_RGBA8_UNORM].fTexturable = true;
134
+ }
135
+
136
+ struct ConfigOptions {
137
+ enum Renderability { kNo, kNonMSAA, kMSAA };
138
+ Renderability fRenderability = kNo;
139
+ bool fTexturable = false;
140
+ };
141
+
142
+ // GrCaps options.
143
+ bool fMipmapSupport = false;
144
+ bool fDrawInstancedSupport = false;
145
+ bool fHalfFloatVertexAttributeSupport = false;
146
+ uint32_t fMapBufferFlags = 0;
147
+ int fMaxTextureSize = 2048;
148
+ int fMaxRenderTargetSize = 2048;
149
+ int fMaxWindowRectangles = 0;
150
+ int fMaxVertexAttributes = 16;
151
+ ConfigOptions fConfigOptions[kGrColorTypeCnt];
152
+ ConfigOptions fCompressedOptions[kSkTextureCompressionTypeCount];
153
+
154
+ // GrShaderCaps options.
155
+ bool fIntegerSupport = false;
156
+ bool fFlatInterpolationSupport = false;
157
+ int fMaxVertexSamplers = 0;
158
+ int fMaxFragmentSamplers = 8;
159
+ bool fShaderDerivativeSupport = true;
160
+ bool fDualSourceBlendingSupport = false;
161
+
162
+ // GrMockGpu options.
163
+ bool fFailTextureAllocations = false;
164
+ };
165
+
166
+ #endif
@@ -8,14 +8,14 @@
8
8
  #ifndef GrMtlBackendContext_DEFINED
9
9
  #define GrMtlBackendContext_DEFINED
10
10
 
11
- #include "include/gpu/mtl/GrMtlTypes.h"
11
+ #include "include/gpu/ganesh/mtl/GrMtlTypes.h"
12
+ #include "include/ports/SkCFObject.h"
12
13
 
13
14
  // The BackendContext contains all of the base Metal objects needed by the GrMtlGpu. The assumption
14
15
  // is that the client will set these up and pass them to the GrMtlGpu constructor.
15
16
  struct SK_API GrMtlBackendContext {
16
17
  sk_cfp<GrMTLHandle> fDevice;
17
18
  sk_cfp<GrMTLHandle> fQueue;
18
- sk_cfp<GrMTLHandle> fBinaryArchive;
19
19
  };
20
20
 
21
21
  #endif
@@ -0,0 +1,23 @@
1
+ /*
2
+ * Copyright 2024 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 GrMtlBackendSemaphore_DEFINED
9
+ #define GrMtlBackendSemaphore_DEFINED
10
+
11
+ #include "include/gpu/ganesh/GrBackendSemaphore.h"
12
+ #include "include/gpu/ganesh/mtl/GrMtlTypes.h"
13
+ #include "include/private/base/SkAPI.h"
14
+
15
+ namespace GrBackendSemaphores {
16
+ // It is the creator's responsibility to ref the MTLEvent passed in here, via __bridge_retained.
17
+ // The other end will wrap this BackendSemaphore and take the ref, via __bridge_transfer.
18
+ SK_API GrBackendSemaphore MakeMtl(GrMTLHandle event, uint64_t value);
19
+ SK_API GrMTLHandle GetMtlHandle(const GrBackendSemaphore&);
20
+ SK_API uint64_t GetMtlValue(const GrBackendSemaphore&);
21
+ } // namespace GrBackendSemaphores
22
+
23
+ #endif
@@ -0,0 +1,44 @@
1
+ /*
2
+ * Copyright 2024 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
+ #ifndef GrMtlBackendSurface_DEFINED
8
+ #define GrMtlBackendSurface_DEFINED
9
+
10
+ #include "include/gpu/ganesh/mtl/GrMtlTypes.h"
11
+ #include "include/private/base/SkAPI.h"
12
+
13
+ #include <string_view>
14
+
15
+ class GrBackendFormat;
16
+ class GrBackendTexture;
17
+ class GrBackendRenderTarget;
18
+
19
+ namespace GrBackendFormats {
20
+ SK_API GrBackendFormat MakeMtl(GrMTLPixelFormat format);
21
+
22
+ SK_API GrMTLPixelFormat AsMtlFormat(const GrBackendFormat&);
23
+
24
+ } // namespace GrBackendFormats
25
+
26
+ namespace GrBackendTextures {
27
+ SK_API GrBackendTexture MakeMtl(int width,
28
+ int height,
29
+ skgpu::Mipmapped,
30
+ const GrMtlTextureInfo& mtlInfo,
31
+ std::string_view label = {});
32
+
33
+ SK_API bool GetMtlTextureInfo(const GrBackendTexture&, GrMtlTextureInfo*);
34
+
35
+ } // namespace GrBackendTextures
36
+
37
+ namespace GrBackendRenderTargets {
38
+ SK_API GrBackendRenderTarget MakeMtl(int width, int height, const GrMtlTextureInfo& mtlInfo);
39
+
40
+ SK_API bool GetMtlTextureInfo(const GrBackendRenderTarget&, GrMtlTextureInfo*);
41
+
42
+ } // namespace GrBackendRenderTargets
43
+
44
+ #endif
@@ -0,0 +1,30 @@
1
+ /*
2
+ * Copyright 2024 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 GrMtlDirectContext_DEFINED
9
+ #define GrMtlDirectContext_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/private/base/SkAPI.h"
13
+
14
+ class GrDirectContext;
15
+ struct GrContextOptions;
16
+ struct GrMtlBackendContext;
17
+
18
+ namespace GrDirectContexts {
19
+ /**
20
+ * Makes a GrDirectContext which uses Metal as the backend. The GrMtlBackendContext contains a
21
+ * MTLDevice and MTLCommandQueue which should be used by the backend. These objects must
22
+ * have their own ref which will be released when the GrMtlBackendContext is destroyed.
23
+ * Ganesh will take its own ref on the objects which will be released when the GrDirectContext
24
+ * is destroyed.
25
+ */
26
+ SK_API sk_sp<GrDirectContext> MakeMetal(const GrMtlBackendContext&, const GrContextOptions&);
27
+ SK_API sk_sp<GrDirectContext> MakeMetal(const GrMtlBackendContext&);
28
+ } // namespace GrDirectContexts
29
+
30
+ #endif
@@ -41,9 +41,7 @@ public:
41
41
 
42
42
  sk_cfp<GrMTLHandle> fTexture;
43
43
 
44
- bool operator==(const GrMtlTextureInfo& that) const {
45
- return fTexture == that.fTexture;
46
- }
44
+ bool operator==(const GrMtlTextureInfo& that) const { return fTexture == that.fTexture; }
47
45
  };
48
46
 
49
47
  struct GrMtlSurfaceInfo {
@@ -10,9 +10,9 @@
10
10
 
11
11
  #include "include/core/SkRefCnt.h"
12
12
  #include "include/core/SkSurface.h"
13
- #include "include/gpu/GrTypes.h"
13
+ #include "include/gpu/ganesh/GrTypes.h"
14
14
  #include "include/gpu/ganesh/SkSurfaceGanesh.h"
15
- #include "include/gpu/mtl/GrMtlTypes.h"
15
+ #include "include/gpu/ganesh/mtl/GrMtlTypes.h"
16
16
 
17
17
  namespace SkSurfaces {
18
18
  /** Creates SkSurface from CAMetalLayer.
@@ -8,9 +8,9 @@
8
8
  #ifndef GrBackendDrawableInfo_DEFINED
9
9
  #define GrBackendDrawableInfo_DEFINED
10
10
 
11
- #include "include/gpu/GrTypes.h"
11
+ #include "include/gpu/ganesh/GrTypes.h"
12
12
 
13
- #include "include/gpu/vk/GrVkTypes.h"
13
+ #include "include/gpu/ganesh/vk/GrVkTypes.h"
14
14
 
15
15
  // If necessary, this could be pulled into a generic interface, but at this point, we only expect
16
16
  // it to be used by the Ganesh Vulkan backend.
@@ -8,7 +8,7 @@
8
8
  #ifndef GrVkBackendSemaphore_DEFINED
9
9
  #define GrVkBackendSemaphore_DEFINED
10
10
 
11
- #include "include/gpu/GrBackendSemaphore.h"
11
+ #include "include/gpu/ganesh/GrBackendSemaphore.h"
12
12
  #include "include/private/base/SkAPI.h"
13
13
  #include "include/private/gpu/vk/SkiaVulkan.h"
14
14