@shopify/react-native-skia 1.3.13 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
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