@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,47 @@
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 skgpu_graphite_precompile_PrecompileRuntimeEffect_DEFINED
9
+ #define skgpu_graphite_precompile_PrecompileRuntimeEffect_DEFINED
10
+
11
+ #include "include/core/SkRefCnt.h"
12
+ #include "include/core/SkSpan.h"
13
+
14
+ class SkRuntimeEffect;
15
+
16
+ namespace skgpu::graphite {
17
+
18
+ class PrecompileBase;
19
+ class PrecompileBlender;
20
+ class PrecompileColorFilter;
21
+ class PrecompileShader;
22
+
23
+ using PrecompileChildOptions = SkSpan<const sk_sp<PrecompileBase>>;
24
+
25
+ //--------------------------------------------------------------------------------------------------
26
+ // These factory functions correspond to the main API's SkRuntimeEffect makeShader, makeColorFilter,
27
+ // and makeBlender functions. The uniform values found in the main API are abstracted away since
28
+ // they do not alter the generated code.
29
+ namespace PrecompileRuntimeEffects {
30
+
31
+ SK_API sk_sp<PrecompileShader> MakePrecompileShader(
32
+ sk_sp<SkRuntimeEffect> effect,
33
+ SkSpan<const PrecompileChildOptions> childOptions = {});
34
+
35
+ SK_API sk_sp<PrecompileColorFilter> MakePrecompileColorFilter(
36
+ sk_sp<SkRuntimeEffect> effect,
37
+ SkSpan<const PrecompileChildOptions> childOptions = {});
38
+
39
+ SK_API sk_sp<PrecompileBlender> MakePrecompileBlender(
40
+ sk_sp<SkRuntimeEffect> effect,
41
+ SkSpan<const PrecompileChildOptions> childOptions = {});
42
+
43
+ } // namespace PrecompileRuntimeEffects
44
+
45
+ } // namespace skgpu::graphite
46
+
47
+ #endif // skgpu_graphite_precompile_PrecompileRuntimeEffect_DEFINED
@@ -0,0 +1,170 @@
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 skgpu_graphite_precompile_PrecompileShader_DEFINED
9
+ #define skgpu_graphite_precompile_PrecompileShader_DEFINED
10
+
11
+ #include "include/gpu/graphite/precompile/PrecompileBase.h"
12
+
13
+ #include "include/core/SkBlendMode.h"
14
+
15
+ class SkColorSpace;
16
+
17
+ namespace skgpu::graphite {
18
+
19
+ class PrecompileBlender;
20
+ class PrecompileColorFilter;
21
+ class PrecompileShaderPriv;
22
+
23
+ /** \class PrecompileShader
24
+ This class corresponds to the SkShader class in the main API.
25
+ */
26
+ class SK_API PrecompileShader : public PrecompileBase {
27
+ public:
28
+ /**
29
+ * This is the Precompile correlate to SkShader::makeWithLocalMatrix. The actual matrix
30
+ * involved is abstracted away, except for whether or the not the matrix involves perspective
31
+ * so the correct generated shader variation is chosen.
32
+ * The PrecompileShaders::LocalMatrix factory can be used to generate a set of shaders
33
+ * that would've been generated via multiple makeWithLocalMatrix calls. That is, rather than
34
+ * performing:
35
+ * sk_sp<PrecompileShader> option1 = source1->makeWithLocalMatrix(false);
36
+ * sk_sp<PrecompileShader> option2 = source2->makeWithLocalMatrix(false);
37
+ * one could call:
38
+ * sk_sp<PrecompileShader> combinedOptions = LocalMatrix({ source1, source2 }, false);
39
+ */
40
+ sk_sp<PrecompileShader> makeWithLocalMatrix(bool isPerspective) const;
41
+
42
+ /**
43
+ * This is the Precompile correlate to SkShader::makeWithColorFilter.
44
+ * The PrecompileShaders::ColorFilter factory can be used to generate a set of shaders that
45
+ * would've been generated via multiple makeWithColorFilter calls. That is, rather than
46
+ * performing:
47
+ * sk_sp<PrecompileShader> option1 = source->makeWithColorFilter(colorFilter1);
48
+ * sk_sp<PrecompileShader> option2 = source->makeWithColorFilter(colorFilter2);
49
+ * one could call:
50
+ * sk_sp<PrecompileShader> combinedOptions = ColorFilter({ source },
51
+ * { colorFilter1, colorFilter2 });
52
+ * With an alternative use case one could also use the ColorFilter factory thusly:
53
+ * sk_sp<PrecompileShader> combinedOptions = ColorFilter({ source1, source2 },
54
+ * { colorFilter });
55
+ */
56
+ sk_sp<PrecompileShader> makeWithColorFilter(sk_sp<PrecompileColorFilter>) const;
57
+
58
+ /**
59
+ * This is the Precompile correlate to SkShader::makeWithWorkingColorSpace.
60
+ * The PrecompileShaders::WorkingColorSpace factory can be used to generate a set of shaders
61
+ * that would've been generated via multiple makeWithWorkingColorSpace calls. That is, rather
62
+ * than performing:
63
+ * sk_sp<PrecompileShader> option1 = source->makeWithWorkingColorSpace(colorSpace1);
64
+ * sk_sp<PrecompileShader> option2 = source->makeWithWorkingColorSpace(colorSpace2);
65
+ * one could call:
66
+ * sk_sp<PrecompileShader> combinedOptions = WorkingColorSpace({ source },
67
+ * { colorSpace1,
68
+ * colorSpace2 });
69
+ * With an alternative use case one could also use the WorkingColorSpace factory thusly:
70
+ * sk_sp<PrecompileShader> combinedOptions = WorkingColorSpace({ source1, source2 },
71
+ * { colorSpace });
72
+ */
73
+ sk_sp<PrecompileShader> makeWithWorkingColorSpace(sk_sp<SkColorSpace>) const;
74
+
75
+ // Provides access to functions that aren't part of the public API.
76
+ PrecompileShaderPriv priv();
77
+ const PrecompileShaderPriv priv() const; // NOLINT(readability-const-return-type)
78
+
79
+ protected:
80
+ friend class PrecompileShaderPriv;
81
+
82
+ PrecompileShader() : PrecompileBase(Type::kShader) {}
83
+ ~PrecompileShader() override;
84
+
85
+ virtual bool isConstant(int /* desiredCombination */) const { return false; }
86
+
87
+ virtual bool isALocalMatrixShader() const { return false; }
88
+ };
89
+
90
+ //--------------------------------------------------------------------------------------------------
91
+ // This is the Precompile correlate to the SkShaders namespace in the main API
92
+ namespace PrecompileShaders {
93
+ // --- This block of eight matches the SkShaders factories in SkShader.h
94
+ // Note that some of the details of the main API have been elided since they don't impact
95
+ // the generated shader (e.g., the color parameter to the Color() factories).
96
+ SK_API sk_sp<PrecompileShader> Empty();
97
+ SK_API sk_sp<PrecompileShader> Color();
98
+ SK_API sk_sp<PrecompileShader> Color(sk_sp<SkColorSpace>);
99
+ SK_API sk_sp<PrecompileShader> Blend(SkSpan<const SkBlendMode> blendModes,
100
+ SkSpan<const sk_sp<PrecompileShader>> dsts,
101
+ SkSpan<const sk_sp<PrecompileShader>> srcs);
102
+ SK_API sk_sp<PrecompileShader> Blend(SkSpan<const sk_sp<PrecompileBlender>> blenders,
103
+ SkSpan<const sk_sp<PrecompileShader>> dsts,
104
+ SkSpan<const sk_sp<PrecompileShader>> srcs);
105
+ SK_API sk_sp<PrecompileShader> CoordClamp(SkSpan<const sk_sp<PrecompileShader>>);
106
+
107
+ // In the main Skia API ImageShaders are usually created via a SkImage::makeShader call.
108
+ // Since the SkImage used to create the ImageShader is unlikely to be present at precompilation
109
+ // time this entry point allows the equivalent precompilation program structure to be created.
110
+ // Note that this factory is for non-YUV SkImages, the YUVImage factory (below) should be used
111
+ // to represent the shading and sampling required for YUV images.
112
+ SK_API sk_sp<PrecompileShader> Image();
113
+ // As with the above Image call, raw ImageShaders are usually created via an
114
+ // SkImage::makeRawShader call. The RawImage call allows the equivalent precompilation
115
+ // program structure to be created without needing the SkImage.
116
+ SK_API sk_sp<PrecompileShader> RawImage();
117
+
118
+ // In the main Skia API, the specifics of the SkImage used for the SkImage::makeShader call
119
+ // can determine whether normal or YUV sampling is required. This entry point allows clients
120
+ // to specify that the future image will be a YUV image.
121
+ SK_API sk_sp<PrecompileShader> YUVImage();
122
+
123
+ // --- This block of two matches the SkShaders factories in SkPerlinNoiseShader.h
124
+ // Again, most of the details have been elided.
125
+ SK_API sk_sp<PrecompileShader> MakeFractalNoise();
126
+ SK_API sk_sp<PrecompileShader> MakeTurbulence();
127
+
128
+ // --- This block of four matches all the factories in SkGradientShader (SkGradientShader.h)
129
+ SK_API sk_sp<PrecompileShader> LinearGradient();
130
+ SK_API sk_sp<PrecompileShader> RadialGradient();
131
+ SK_API sk_sp<PrecompileShader> TwoPointConicalGradient();
132
+ SK_API sk_sp<PrecompileShader> SweepGradient();
133
+
134
+ // Normally, SkPicture shaders are only created via SkPicture::makeShader. Since the
135
+ // SkPicture to be drawn, most likely, won't be available at precompilation time, this
136
+ // entry point can be used to create a precompilation equivalent.
137
+ // Note: this will precompile the program that draws the SkPicture. It, obviously, won't
138
+ // precompile any SkPaints within the SkPicture.
139
+ SK_API sk_sp<PrecompileShader> Picture();
140
+
141
+ // Normally, LocalMatrixShaders are only created via SkShader::makeWithLocalMatrix.
142
+ // However, in the combination API, clients may want to create a set of precompile
143
+ // LocalMatrixShaders (i.e., pass an SkSpan to the factory function vs just creating a
144
+ // single option). This entry point allows that use case.
145
+ // Note: PrecompileShader::makeWithLocalMatrix() can still be used and works as expected.
146
+ SK_API sk_sp<PrecompileShader> LocalMatrix(SkSpan<const sk_sp<PrecompileShader>> wrapped,
147
+ bool isPerspective = false);
148
+
149
+ // Normally, ColorFilterShaders are only created via SkShader::makeWithColorFilter.
150
+ // However, in the combination API, clients may want to create a set of precompile
151
+ // ColorFilterShaders (i.e., pass SkSpans to the factory function vs just creating a
152
+ // single option). This entry point allows that use case.
153
+ // Note: PrecompileShader::makeWithColorFilter can still be used and works as expected.
154
+ SK_API sk_sp<PrecompileShader> ColorFilter(
155
+ SkSpan<const sk_sp<PrecompileShader>> shaders,
156
+ SkSpan<const sk_sp<PrecompileColorFilter>> colorFilters);
157
+
158
+ // Normally, WorkingColorSpaceShaders are only created via SkShader::makeWithWorkingColorSpace.
159
+ // However, in the combination API, clients may want to create a set of precompile
160
+ // WorkingColorSpaceShaders (i.e., pass SkSpans to the factory function vs just creating a
161
+ // single option). This entry point allows that use case.
162
+ // Note: PrecompileShader::makeWithWorkingColorSpace can still be used and works as expected.
163
+ SK_API sk_sp<PrecompileShader> WorkingColorSpace(SkSpan<const sk_sp<PrecompileShader>> shaders,
164
+ SkSpan<const sk_sp<SkColorSpace>> colorSpaces);
165
+
166
+ } // namespace PrecompileShaders
167
+
168
+ } // namespace skgpu::graphite
169
+
170
+ #endif // skgpu_graphite_precompile_PrecompileShader_DEFINED
@@ -8,7 +8,9 @@
8
8
  #ifndef skgpu_graphite_VulkanGraphiteTypes_DEFINED
9
9
  #define skgpu_graphite_VulkanGraphiteTypes_DEFINED
10
10
 
11
+ #include "include/gpu/graphite/BackendTexture.h"
11
12
  #include "include/gpu/graphite/GraphiteTypes.h"
13
+ #include "include/gpu/graphite/TextureInfo.h"
12
14
  #include "include/gpu/vk/VulkanTypes.h"
13
15
 
14
16
  namespace skgpu::graphite {
@@ -57,8 +59,28 @@ struct VulkanTextureInfo {
57
59
  , fYcbcrConversionInfo(ycbcrConversionInfo) {}
58
60
  };
59
61
 
60
- } // namespace skgpu::graphite
62
+ namespace TextureInfos {
63
+ SK_API TextureInfo MakeVulkan(const VulkanTextureInfo&);
61
64
 
62
- #endif // skgpu_graphite_VulkanGraphiteTypes_DEFINED
65
+ SK_API bool GetVulkanTextureInfo(const TextureInfo&, VulkanTextureInfo*);
66
+ } // namespace TextureInfos
63
67
 
68
+ namespace BackendTextures {
69
+ SK_API BackendTexture MakeVulkan(SkISize dimensions,
70
+ const VulkanTextureInfo&,
71
+ VkImageLayout,
72
+ uint32_t queueFamilyIndex,
73
+ VkImage,
74
+ VulkanAlloc);
75
+ } // namespace BackendTextures
64
76
 
77
+ namespace BackendSemaphores {
78
+ SK_API BackendSemaphore MakeVulkan(VkSemaphore);
79
+
80
+ SK_API VkSemaphore GetVkSemaphore(const BackendSemaphore&);
81
+
82
+ } // namespace BackendSemaphores
83
+
84
+ } // namespace skgpu::graphite
85
+
86
+ #endif // skgpu_graphite_VulkanGraphiteTypes_DEFINED
@@ -4,160 +4,5 @@
4
4
  * Use of this source code is governed by a BSD-style license that can be
5
5
  * found in the LICENSE file.
6
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/gpu/ganesh/GrTypesPriv.h"
14
-
15
- class GrBackendFormat;
16
-
17
- struct GrMockTextureInfo {
18
- GrMockTextureInfo()
19
- : fColorType(GrColorType::kUnknown)
20
- , fCompressionType(SkTextureCompressionType::kNone)
21
- , fID(0) {}
22
-
23
- GrMockTextureInfo(GrColorType colorType,
24
- SkTextureCompressionType compressionType,
25
- int id,
26
- skgpu::Protected isProtected = skgpu::Protected::kNo)
27
- : fColorType(colorType)
28
- , fCompressionType(compressionType)
29
- , fID(id)
30
- , fProtected(isProtected) {
31
- SkASSERT(fID);
32
- if (fCompressionType != SkTextureCompressionType::kNone) {
33
- SkASSERT(colorType == GrColorType::kUnknown);
34
- }
35
- }
36
-
37
- bool operator==(const GrMockTextureInfo& that) const {
38
- return fColorType == that.fColorType &&
39
- fCompressionType == that.fCompressionType &&
40
- fID == that.fID &&
41
- fProtected == that.fProtected;
42
- }
43
-
44
- GrBackendFormat getBackendFormat() const;
45
-
46
- SkTextureCompressionType compressionType() const { return fCompressionType; }
47
-
48
- GrColorType colorType() const {
49
- SkASSERT(fCompressionType == SkTextureCompressionType::kNone);
50
- return fColorType;
51
- }
52
-
53
- int id() const { return fID; }
54
-
55
- skgpu::Protected getProtected() const { return fProtected; }
56
- bool isProtected() const { return fProtected == skgpu::Protected::kYes; }
57
-
58
- private:
59
- GrColorType fColorType;
60
- SkTextureCompressionType fCompressionType;
61
- int fID;
62
- skgpu::Protected fProtected = skgpu::Protected::kNo;
63
- };
64
-
65
- struct GrMockRenderTargetInfo {
66
- GrMockRenderTargetInfo()
67
- : fColorType(GrColorType::kUnknown)
68
- , fID(0) {}
69
-
70
- GrMockRenderTargetInfo(GrColorType colorType,
71
- int id,
72
- skgpu::Protected isProtected = skgpu::Protected::kNo)
73
- : fColorType(colorType)
74
- , fID(id)
75
- , fProtected(isProtected) {
76
- SkASSERT(fID);
77
- }
78
-
79
- bool operator==(const GrMockRenderTargetInfo& that) const {
80
- return fColorType == that.fColorType &&
81
- fID == that.fID &&
82
- fProtected == that.fProtected;
83
- }
84
-
85
- GrBackendFormat getBackendFormat() const;
86
-
87
- GrColorType colorType() const { return fColorType; }
88
-
89
- skgpu::Protected getProtected() const { return fProtected; }
90
- bool isProtected() const { return fProtected == skgpu::Protected::kYes; }
91
-
92
- private:
93
- GrColorType fColorType;
94
- int fID;
95
- skgpu::Protected fProtected = skgpu::Protected::kNo;
96
- };
97
-
98
- struct GrMockSurfaceInfo {
99
- uint32_t fSampleCount = 1;
100
- uint32_t fLevelCount = 0;
101
- skgpu::Protected fProtected = skgpu::Protected::kNo;
102
-
103
- GrColorType fColorType = GrColorType::kUnknown;
104
- SkTextureCompressionType fCompressionType = SkTextureCompressionType::kNone;
105
- };
106
-
107
- static constexpr int kSkTextureCompressionTypeCount =
108
- static_cast<int>(SkTextureCompressionType::kLast) + 1;
109
-
110
- /**
111
- * A pointer to this type is used as the GrBackendContext when creating a Mock GrContext. It can be
112
- * used to specify capability options for the mock context. If nullptr is used a default constructed
113
- * GrMockOptions is used.
114
- */
115
- struct GrMockOptions {
116
- GrMockOptions() {
117
- using Renderability = ConfigOptions::Renderability;
118
- // By default RGBA_8888 and BGRA_8888 are textureable and renderable and
119
- // A8 and RGB565 are texturable.
120
- fConfigOptions[(int)GrColorType::kRGBA_8888].fRenderability = Renderability::kNonMSAA;
121
- fConfigOptions[(int)GrColorType::kRGBA_8888].fTexturable = true;
122
- fConfigOptions[(int)GrColorType::kAlpha_8].fTexturable = true;
123
- fConfigOptions[(int)GrColorType::kBGR_565].fTexturable = true;
124
- fConfigOptions[(int)GrColorType::kRGB_565].fTexturable = true;
125
-
126
- fConfigOptions[(int)GrColorType::kBGRA_8888] = fConfigOptions[(int)GrColorType::kRGBA_8888];
127
-
128
- fCompressedOptions[(int)SkTextureCompressionType::kETC2_RGB8_UNORM].fTexturable = true;
129
- fCompressedOptions[(int)SkTextureCompressionType::kBC1_RGB8_UNORM].fTexturable = true;
130
- fCompressedOptions[(int)SkTextureCompressionType::kBC1_RGBA8_UNORM].fTexturable = true;
131
- }
132
-
133
- struct ConfigOptions {
134
- enum Renderability { kNo, kNonMSAA, kMSAA };
135
- Renderability fRenderability = kNo;
136
- bool fTexturable = false;
137
- };
138
-
139
- // GrCaps options.
140
- bool fMipmapSupport = false;
141
- bool fDrawInstancedSupport = false;
142
- bool fHalfFloatVertexAttributeSupport = false;
143
- uint32_t fMapBufferFlags = 0;
144
- int fMaxTextureSize = 2048;
145
- int fMaxRenderTargetSize = 2048;
146
- int fMaxWindowRectangles = 0;
147
- int fMaxVertexAttributes = 16;
148
- ConfigOptions fConfigOptions[kGrColorTypeCnt];
149
- ConfigOptions fCompressedOptions[kSkTextureCompressionTypeCount];
150
-
151
- // GrShaderCaps options.
152
- bool fIntegerSupport = false;
153
- bool fFlatInterpolationSupport = false;
154
- int fMaxVertexSamplers = 0;
155
- int fMaxFragmentSamplers = 8;
156
- bool fShaderDerivativeSupport = true;
157
- bool fDualSourceBlendingSupport = false;
158
-
159
- // GrMockGpu options.
160
- bool fFailTextureAllocations = false;
161
- };
162
-
163
- #endif
7
+ // TODO(kjlubick, egdaniel) Delete this after migrating clients.
8
+ #include "include/gpu/ganesh/mock/GrMockTypes.h"
@@ -8,6 +8,8 @@
8
8
  #ifndef skgpu_MtlMemoryAllocator_DEFINED
9
9
  #define skgpu_MtlMemoryAllocator_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
12
+
11
13
  #ifdef __APPLE__
12
14
 
13
15
  #ifdef __OBJC__
@@ -1,107 +1,8 @@
1
-
2
1
  /*
3
2
  * Copyright 2016 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 GrVkTypes_DEFINED
10
- #define GrVkTypes_DEFINED
11
-
12
- #include "include/gpu/GpuTypes.h"
13
- #include "include/gpu/vk/VulkanTypes.h"
14
-
15
- using GrVkBackendMemory = skgpu::VulkanBackendMemory;
16
- using GrVkAlloc = skgpu::VulkanAlloc;
17
- using GrVkYcbcrConversionInfo = skgpu::VulkanYcbcrConversionInfo;
18
-
19
- /*
20
- * When wrapping a GrBackendTexture or GrBackendRendenderTarget, the fCurrentQueueFamily should
21
- * either be VK_QUEUE_FAMILY_IGNORED, VK_QUEUE_FAMILY_EXTERNAL, or VK_QUEUE_FAMILY_FOREIGN_EXT. If
22
- * fSharingMode is VK_SHARING_MODE_EXCLUSIVE then fCurrentQueueFamily can also be the graphics
23
- * queue index passed into Skia.
24
- */
25
- struct GrVkImageInfo {
26
- VkImage fImage = VK_NULL_HANDLE;
27
- skgpu::VulkanAlloc fAlloc;
28
- VkImageTiling fImageTiling = VK_IMAGE_TILING_OPTIMAL;
29
- VkImageLayout fImageLayout = VK_IMAGE_LAYOUT_UNDEFINED;
30
- VkFormat fFormat = VK_FORMAT_UNDEFINED;
31
- VkImageUsageFlags fImageUsageFlags = 0;
32
- uint32_t fSampleCount = 1;
33
- uint32_t fLevelCount = 0;
34
- uint32_t fCurrentQueueFamily = VK_QUEUE_FAMILY_IGNORED;
35
- skgpu::Protected fProtected = skgpu::Protected::kNo;
36
- GrVkYcbcrConversionInfo fYcbcrConversionInfo;
37
- VkSharingMode fSharingMode = VK_SHARING_MODE_EXCLUSIVE;
38
- #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
39
- bool fPartOfSwapchainOrAndroidWindow = false;
40
- #endif
41
-
42
- bool operator==(const GrVkImageInfo& that) const {
43
- bool equal = fImage == that.fImage && fAlloc == that.fAlloc &&
44
- fImageTiling == that.fImageTiling &&
45
- fImageLayout == that.fImageLayout &&
46
- fFormat == that.fFormat &&
47
- fImageUsageFlags == that.fImageUsageFlags &&
48
- fSampleCount == that.fSampleCount &&
49
- fLevelCount == that.fLevelCount &&
50
- fCurrentQueueFamily == that.fCurrentQueueFamily &&
51
- fProtected == that.fProtected &&
52
- fYcbcrConversionInfo == that.fYcbcrConversionInfo &&
53
- fSharingMode == that.fSharingMode;
54
- #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
55
- equal = equal && (fPartOfSwapchainOrAndroidWindow == that.fPartOfSwapchainOrAndroidWindow);
56
- #endif
57
- return equal;
58
- }
59
- };
60
-
61
- using GrVkGetProc = skgpu::VulkanGetProc;
62
-
63
- /**
64
- * This object is wrapped in a GrBackendDrawableInfo and passed in as an argument to
65
- * drawBackendGpu() calls on an SkDrawable. The drawable will use this info to inject direct
66
- * Vulkan calls into our stream of GPU draws.
67
- *
68
- * The SkDrawable is given a secondary VkCommandBuffer in which to record draws. The GPU backend
69
- * will then execute that command buffer within a render pass it is using for its own draws. The
70
- * drawable is also given the attachment of the color index, a compatible VkRenderPass, and the
71
- * VkFormat of the color attachment so that it can make VkPipeline objects for the draws. The
72
- * SkDrawable must not alter the state of the VkRenderpass or sub pass.
73
- *
74
- * Additionally, the SkDrawable may fill in the passed in fDrawBounds with the bounds of the draws
75
- * that it submits to the command buffer. This will be used by the GPU backend for setting the
76
- * bounds in vkCmdBeginRenderPass. If fDrawBounds is not updated, we will assume that the entire
77
- * attachment may have been written to.
78
- *
79
- * The SkDrawable is always allowed to create its own command buffers and submit them to the queue
80
- * to render offscreen textures which will be sampled in draws added to the passed in
81
- * VkCommandBuffer. If this is done the SkDrawable is in charge of adding the required memory
82
- * barriers to the queue for the sampled images since the Skia backend will not do this.
83
- */
84
- struct GrVkDrawableInfo {
85
- VkCommandBuffer fSecondaryCommandBuffer;
86
- uint32_t fColorAttachmentIndex;
87
- VkRenderPass fCompatibleRenderPass;
88
- VkFormat fFormat;
89
- VkRect2D* fDrawBounds;
90
- #ifdef SK_BUILD_FOR_ANDROID_FRAMEWORK
91
- bool fFromSwapchainOrAndroidWindow;
92
- #endif
93
- };
94
-
95
- struct GrVkSurfaceInfo {
96
- uint32_t fSampleCount = 1;
97
- uint32_t fLevelCount = 0;
98
- skgpu::Protected fProtected = skgpu::Protected::kNo;
99
-
100
- VkImageTiling fImageTiling = VK_IMAGE_TILING_OPTIMAL;
101
- VkFormat fFormat = VK_FORMAT_UNDEFINED;
102
- VkImageUsageFlags fImageUsageFlags = 0;
103
- GrVkYcbcrConversionInfo fYcbcrConversionInfo;
104
- VkSharingMode fSharingMode = VK_SHARING_MODE_EXCLUSIVE;
105
- };
106
-
107
- #endif
7
+ // TODO(kjlubick, egdaniel) Delete this after migrating clients.
8
+ #include "include/gpu/ganesh/vk/GrVkTypes.h"
@@ -8,9 +8,14 @@
8
8
  #ifndef skgpu_VulkanBackendContext_DEFINED
9
9
  #define skgpu_VulkanBackendContext_DEFINED
10
10
 
11
+ #include "include/core/SkRefCnt.h"
11
12
  #include "include/gpu/GpuTypes.h"
12
13
  #include "include/gpu/vk/VulkanMemoryAllocator.h"
13
14
  #include "include/gpu/vk/VulkanTypes.h"
15
+ #include "include/private/base/SkAPI.h"
16
+ #include "include/private/gpu/vk/SkiaVulkan.h"
17
+
18
+ #include <cstdint>
14
19
 
15
20
  namespace skgpu {
16
21
 
@@ -18,14 +23,14 @@ class VulkanExtensions;
18
23
 
19
24
  // The VkBackendContext contains all of the base Vk objects needed by the skia Vulkan context.
20
25
  struct SK_API VulkanBackendContext {
21
- VkInstance fInstance;
22
- VkPhysicalDevice fPhysicalDevice;
23
- VkDevice fDevice;
24
- VkQueue fQueue;
25
- uint32_t fGraphicsQueueIndex;
26
+ VkInstance fInstance = VK_NULL_HANDLE;
27
+ VkPhysicalDevice fPhysicalDevice = VK_NULL_HANDLE;
28
+ VkDevice fDevice = VK_NULL_HANDLE;
29
+ VkQueue fQueue = VK_NULL_HANDLE;
30
+ uint32_t fGraphicsQueueIndex = 0;
26
31
  // The max api version set here should match the value set in VkApplicationInfo::apiVersion when
27
32
  // then VkInstance was created.
28
- uint32_t fMaxAPIVersion;
33
+ uint32_t fMaxAPIVersion = 0;
29
34
  const skgpu::VulkanExtensions* fVkExtensions = nullptr;
30
35
  // The client can create their VkDevice with either a VkPhysicalDeviceFeatures or
31
36
  // VkPhysicalDeviceFeatures2 struct, thus we have to support taking both. The
@@ -38,7 +43,7 @@ struct SK_API VulkanBackendContext {
38
43
  // for allocating Vulkan resources that use VkDeviceMemory.
39
44
  sk_sp<VulkanMemoryAllocator> fMemoryAllocator;
40
45
  skgpu::VulkanGetProc fGetProc;
41
- Protected fProtectedContext;
46
+ Protected fProtectedContext = Protected::kNo;
42
47
  // Optional callback which will be invoked if a VK_ERROR_DEVICE_LOST error code is received from
43
48
  // the driver. Debug information from the driver will be provided to the callback if the
44
49
  // VK_EXT_device_fault extension is supported and enabled (VkPhysicalDeviceFaultFeaturesEXT must
@@ -47,6 +52,6 @@ struct SK_API VulkanBackendContext {
47
52
  skgpu::VulkanDeviceLostProc fDeviceLostProc = nullptr;
48
53
  };
49
54
 
50
- } // namespace skgpu::graphite
55
+ } // namespace skgpu
51
56
 
52
57
  #endif // skgpu_VulkanBackendContext_DEFINED
@@ -10,7 +10,13 @@
10
10
 
11
11
  #include "include/core/SkString.h"
12
12
  #include "include/gpu/vk/VulkanTypes.h"
13
+ #include "include/private/base/SkAPI.h"
14
+ #include "include/private/base/SkDebug.h"
13
15
  #include "include/private/base/SkTArray.h"
16
+ #include "include/private/gpu/vk/SkiaVulkan.h"
17
+
18
+ #include <cstdint>
19
+ #include <cstring>
14
20
 
15
21
  namespace skgpu {
16
22
 
@@ -37,10 +43,10 @@ public:
37
43
 
38
44
  struct Less {
39
45
  bool operator()(const Info& a, const SkString& b) const {
40
- return strcmp(a.fName.c_str(), b.c_str()) < 0;
46
+ return std::strcmp(a.fName.c_str(), b.c_str()) < 0;
41
47
  }
42
48
  bool operator()(const SkString& a, const VulkanExtensions::Info& b) const {
43
- return strcmp(a.c_str(), b.fName.c_str()) < 0;
49
+ return std::strcmp(a.c_str(), b.fName.c_str()) < 0;
44
50
  }
45
51
  };
46
52
  };
@@ -49,7 +55,7 @@ public:
49
55
  void dump() const {
50
56
  SkDebugf("**Vulkan Extensions**\n");
51
57
  for (int i = 0; i < fExtensions.size(); ++i) {
52
- SkDebugf("%s. Version: %d\n",
58
+ SkDebugf("%s. Version: %u\n",
53
59
  fExtensions[i].fName.c_str(), fExtensions[i].fSpecVersion);
54
60
  }
55
61
  SkDebugf("**End Vulkan Extensions**\n");
@@ -9,8 +9,11 @@
9
9
  #define skgpu_VulkanMemoryAllocator_DEFINED
10
10
 
11
11
  #include "include/core/SkRefCnt.h"
12
- #include "include/gpu/GpuTypes.h"
13
12
  #include "include/gpu/vk/VulkanTypes.h"
13
+ #include "include/private/gpu/vk/SkiaVulkan.h"
14
+
15
+ #include <cstdint>
16
+ #include <utility>
14
17
 
15
18
  namespace skgpu {
16
19