@shopify/react-native-skia 1.3.13 → 1.4.1

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,53 @@
1
+ /*
2
+ * Copyright 2018 Google Inc.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef GrDriverBugWorkarounds_DEFINED
9
+ #define GrDriverBugWorkarounds_DEFINED
10
+
11
+ // External embedders of Skia can override this to use their own list
12
+ // of workaround names.
13
+ #ifdef SK_GPU_WORKAROUNDS_HEADER
14
+ #include SK_GPU_WORKAROUNDS_HEADER
15
+ #else
16
+ // To regenerate this file, set gn arg "skia_generate_workarounds = true"
17
+ // or invoke `bazel run //tools:generate_workarounds`
18
+ // This is not rebuilt by default to avoid embedders having to have extra
19
+ // build steps.
20
+ #include "include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h"
21
+ #endif
22
+
23
+ #include "include/core/SkTypes.h"
24
+
25
+ #include <cstdint>
26
+ #include <vector>
27
+
28
+ enum GrDriverBugWorkaroundType {
29
+ #define GPU_OP(type, name) type,
30
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
31
+ #undef GPU_OP
32
+ NUMBER_OF_GPU_DRIVER_BUG_WORKAROUND_TYPES
33
+ };
34
+
35
+ class SK_API GrDriverBugWorkarounds {
36
+ public:
37
+ GrDriverBugWorkarounds();
38
+ GrDriverBugWorkarounds(const GrDriverBugWorkarounds&) = default;
39
+ explicit GrDriverBugWorkarounds(const std::vector<int32_t>& workarounds);
40
+
41
+ GrDriverBugWorkarounds& operator=(const GrDriverBugWorkarounds&) = default;
42
+
43
+ // Turn on any workarounds listed in |workarounds| (but don't turn any off).
44
+ void applyOverrides(const GrDriverBugWorkarounds& workarounds);
45
+
46
+ ~GrDriverBugWorkarounds();
47
+
48
+ #define GPU_OP(type, name) bool name = false;
49
+ GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP)
50
+ #undef GPU_OP
51
+ };
52
+
53
+ #endif
@@ -0,0 +1,45 @@
1
+ // Copyright 2018 The Chromium Authors. All rights reserved.
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+
5
+ // This file is auto-generated from build_workaround_header.py
6
+ // DO NOT EDIT!
7
+
8
+ #ifndef GPU_DRIVER_BUG_WORKAROUNDS
9
+ #define GPU_DRIVER_BUG_WORKAROUNDS(GPU_OP) \
10
+ GPU_OP(ADD_AND_TRUE_TO_LOOP_CONDITION, \
11
+ add_and_true_to_loop_condition) \
12
+ GPU_OP(DISABLE_BLEND_EQUATION_ADVANCED, \
13
+ disable_blend_equation_advanced) \
14
+ GPU_OP(DISABLE_DISCARD_FRAMEBUFFER, \
15
+ disable_discard_framebuffer) \
16
+ GPU_OP(DISABLE_DUAL_SOURCE_BLENDING_SUPPORT, \
17
+ disable_dual_source_blending_support) \
18
+ GPU_OP(DISABLE_TEXTURE_STORAGE, \
19
+ disable_texture_storage) \
20
+ GPU_OP(DISALLOW_LARGE_INSTANCED_DRAW, \
21
+ disallow_large_instanced_draw) \
22
+ GPU_OP(EMULATE_ABS_INT_FUNCTION, \
23
+ emulate_abs_int_function) \
24
+ GPU_OP(FLUSH_ON_FRAMEBUFFER_CHANGE, \
25
+ flush_on_framebuffer_change) \
26
+ GPU_OP(FORCE_UPDATE_SCISSOR_STATE_WHEN_BINDING_FBO0, \
27
+ force_update_scissor_state_when_binding_fbo0) \
28
+ GPU_OP(GL_CLEAR_BROKEN, \
29
+ gl_clear_broken) \
30
+ GPU_OP(MAX_FRAGMENT_UNIFORM_VECTORS_32, \
31
+ max_fragment_uniform_vectors_32) \
32
+ GPU_OP(MAX_MSAA_SAMPLE_COUNT_4, \
33
+ max_msaa_sample_count_4) \
34
+ GPU_OP(PACK_PARAMETERS_WORKAROUND_WITH_PACK_BUFFER, \
35
+ pack_parameters_workaround_with_pack_buffer) \
36
+ GPU_OP(REMOVE_POW_WITH_CONSTANT_EXPONENT, \
37
+ remove_pow_with_constant_exponent) \
38
+ GPU_OP(REWRITE_DO_WHILE_LOOPS, \
39
+ rewrite_do_while_loops) \
40
+ GPU_OP(UNBIND_ATTACHMENTS_ON_BOUND_RENDER_FBO_DELETE, \
41
+ unbind_attachments_on_bound_render_fbo_delete) \
42
+ GPU_OP(UNFOLD_SHORT_CIRCUIT_AS_TERNARY_OPERATION, \
43
+ unfold_short_circuit_as_ternary_operation) \
44
+
45
+ #endif // GPU_DRIVER_BUG_WORKAROUNDS
@@ -9,7 +9,7 @@
9
9
  #define GrExternalTextureGenerator_DEFINED
10
10
 
11
11
  #include "include/core/SkRefCnt.h"
12
- #include "include/gpu/GrBackendSurface.h"
12
+ #include "include/gpu/ganesh/GrBackendSurface.h"
13
13
  #include "include/private/base/SkAPI.h"
14
14
  #include "include/private/gpu/ganesh/GrTextureGenerator.h"
15
15
 
@@ -0,0 +1,285 @@
1
+ /*
2
+ * Copyright 2019 Google Inc.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef GrRecordingContext_DEFINED
9
+ #define GrRecordingContext_DEFINED
10
+
11
+ #include "include/core/SkColorType.h"
12
+ #include "include/core/SkRefCnt.h"
13
+ #include "include/core/SkString.h" // IWYU pragma: keep
14
+ #include "include/core/SkTypes.h"
15
+ #include "include/private/base/SkTArray.h"
16
+ #include "include/private/gpu/ganesh/GrContext_Base.h"
17
+ #include "include/private/gpu/ganesh/GrImageContext.h"
18
+
19
+ #include <map>
20
+ #include <memory>
21
+ #include <string>
22
+
23
+ class GrAuditTrail;
24
+ class GrContextThreadSafeProxy;
25
+ class GrDirectContext;
26
+ class GrDrawingManager;
27
+ class GrOnFlushCallbackObject;
28
+ class GrProgramDesc;
29
+ class GrProgramInfo;
30
+ class GrProxyProvider;
31
+ class GrRecordingContextPriv;
32
+ class GrThreadSafeCache;
33
+ class SkArenaAlloc;
34
+ class SkCapabilities;
35
+ class SkJSONWriter;
36
+
37
+ namespace sktext::gpu {
38
+ class SubRunAllocator;
39
+ class TextBlobRedrawCoordinator;
40
+ }
41
+
42
+ class GrRecordingContext : public GrImageContext {
43
+ public:
44
+ ~GrRecordingContext() override;
45
+
46
+ /**
47
+ * Reports whether the GrDirectContext associated with this GrRecordingContext is abandoned.
48
+ * When called on a GrDirectContext it may actively check whether the underlying 3D API
49
+ * device/context has been disconnected before reporting the status. If so, calling this
50
+ * method will transition the GrDirectContext to the abandoned state.
51
+ */
52
+ bool abandoned() override { return GrImageContext::abandoned(); }
53
+
54
+ /*
55
+ * Can a SkSurface be created with the given color type. To check whether MSAA is supported
56
+ * use maxSurfaceSampleCountForColorType().
57
+ */
58
+ SK_API bool colorTypeSupportedAsSurface(SkColorType colorType) const {
59
+ if (kR16G16_unorm_SkColorType == colorType ||
60
+ kA16_unorm_SkColorType == colorType ||
61
+ kA16_float_SkColorType == colorType ||
62
+ kR16G16_float_SkColorType == colorType ||
63
+ kR16G16B16A16_unorm_SkColorType == colorType ||
64
+ kGray_8_SkColorType == colorType) {
65
+ return false;
66
+ }
67
+
68
+ return this->maxSurfaceSampleCountForColorType(colorType) > 0;
69
+ }
70
+
71
+ /**
72
+ * Gets the maximum supported texture size.
73
+ */
74
+ SK_API int maxTextureSize() const;
75
+
76
+ /**
77
+ * Gets the maximum supported render target size.
78
+ */
79
+ SK_API int maxRenderTargetSize() const;
80
+
81
+ /**
82
+ * Can a SkImage be created with the given color type.
83
+ */
84
+ SK_API bool colorTypeSupportedAsImage(SkColorType) const;
85
+
86
+ /**
87
+ * Does this context support protected content?
88
+ */
89
+ SK_API bool supportsProtectedContent() const;
90
+
91
+ /**
92
+ * Gets the maximum supported sample count for a color type. 1 is returned if only non-MSAA
93
+ * rendering is supported for the color type. 0 is returned if rendering to this color type
94
+ * is not supported at all.
95
+ */
96
+ SK_API int maxSurfaceSampleCountForColorType(SkColorType colorType) const {
97
+ return GrImageContext::maxSurfaceSampleCountForColorType(colorType);
98
+ }
99
+
100
+ SK_API sk_sp<const SkCapabilities> skCapabilities() const;
101
+
102
+ // Provides access to functions that aren't part of the public API.
103
+ GrRecordingContextPriv priv();
104
+ const GrRecordingContextPriv priv() const; // NOLINT(readability-const-return-type)
105
+
106
+ // The collection of specialized memory arenas for different types of data recorded by a
107
+ // GrRecordingContext. Arenas does not maintain ownership of the pools it groups together.
108
+ class Arenas {
109
+ public:
110
+ Arenas(SkArenaAlloc*, sktext::gpu::SubRunAllocator*);
111
+
112
+ // For storing pipelines and other complex data as-needed by ops
113
+ SkArenaAlloc* recordTimeAllocator() { return fRecordTimeAllocator; }
114
+
115
+ // For storing GrTextBlob SubRuns
116
+ sktext::gpu::SubRunAllocator* recordTimeSubRunAllocator() {
117
+ return fRecordTimeSubRunAllocator;
118
+ }
119
+
120
+ private:
121
+ SkArenaAlloc* fRecordTimeAllocator;
122
+ sktext::gpu::SubRunAllocator* fRecordTimeSubRunAllocator;
123
+ };
124
+
125
+ protected:
126
+ friend class GrRecordingContextPriv; // for hidden functions
127
+ friend class GrDeferredDisplayList; // for OwnedArenas
128
+ friend class GrDeferredDisplayListPriv; // for ProgramData
129
+
130
+ // Like Arenas, but preserves ownership of the underlying pools.
131
+ class OwnedArenas {
132
+ public:
133
+ OwnedArenas(bool ddlRecording);
134
+ ~OwnedArenas();
135
+
136
+ Arenas get();
137
+
138
+ OwnedArenas& operator=(OwnedArenas&&);
139
+
140
+ private:
141
+ bool fDDLRecording;
142
+ std::unique_ptr<SkArenaAlloc> fRecordTimeAllocator;
143
+ std::unique_ptr<sktext::gpu::SubRunAllocator> fRecordTimeSubRunAllocator;
144
+ };
145
+
146
+ GrRecordingContext(sk_sp<GrContextThreadSafeProxy>, bool ddlRecording);
147
+
148
+ bool init() override;
149
+
150
+ void abandonContext() override;
151
+
152
+ GrDrawingManager* drawingManager();
153
+
154
+ // There is no going back from this method. It should only be called to control the timing
155
+ // during abandon or destruction of the context.
156
+ void destroyDrawingManager();
157
+
158
+ Arenas arenas() { return fArenas.get(); }
159
+ // This entry point should only be used for DDL creation where we want the ops' lifetime to
160
+ // match that of the DDL.
161
+ OwnedArenas&& detachArenas();
162
+
163
+ GrProxyProvider* proxyProvider() { return fProxyProvider.get(); }
164
+ const GrProxyProvider* proxyProvider() const { return fProxyProvider.get(); }
165
+
166
+ struct ProgramData {
167
+ ProgramData(std::unique_ptr<const GrProgramDesc>, const GrProgramInfo*);
168
+ ProgramData(ProgramData&&); // for SkTArray
169
+ ProgramData(const ProgramData&) = delete;
170
+ ~ProgramData();
171
+
172
+ const GrProgramDesc& desc() const { return *fDesc; }
173
+ const GrProgramInfo& info() const { return *fInfo; }
174
+
175
+ private:
176
+ // TODO: store the GrProgramDescs in the 'fRecordTimeData' arena
177
+ std::unique_ptr<const GrProgramDesc> fDesc;
178
+ // The program infos should be stored in 'fRecordTimeData' so do not need to be ref
179
+ // counted or deleted in the destructor.
180
+ const GrProgramInfo* fInfo = nullptr;
181
+ };
182
+
183
+ // This entry point gives the recording context a chance to cache the provided
184
+ // programInfo. The DDL context takes this opportunity to store programInfos as a sidecar
185
+ // to the DDL.
186
+ virtual void recordProgramInfo(const GrProgramInfo*) {}
187
+ // This asks the recording context to return any programInfos it may have collected
188
+ // via the 'recordProgramInfo' call. It is up to the caller to ensure that the lifetime
189
+ // of the programInfos matches the intended use. For example, in DDL-record mode it
190
+ // is known that all the programInfos will have been allocated in an arena with the
191
+ // same lifetime at the DDL itself.
192
+ virtual void detachProgramData(skia_private::TArray<ProgramData>*) {}
193
+
194
+ sktext::gpu::TextBlobRedrawCoordinator* getTextBlobRedrawCoordinator();
195
+ const sktext::gpu::TextBlobRedrawCoordinator* getTextBlobRedrawCoordinator() const;
196
+
197
+ GrThreadSafeCache* threadSafeCache();
198
+ const GrThreadSafeCache* threadSafeCache() const;
199
+
200
+ /**
201
+ * Registers an object for flush-related callbacks. (See GrOnFlushCallbackObject.)
202
+ *
203
+ * NOTE: the drawing manager tracks this object as a raw pointer; it is up to the caller to
204
+ * ensure its lifetime is tied to that of the context.
205
+ */
206
+ void addOnFlushCallbackObject(GrOnFlushCallbackObject*);
207
+
208
+ GrRecordingContext* asRecordingContext() override { return this; }
209
+
210
+ class Stats {
211
+ public:
212
+ Stats() = default;
213
+
214
+ #if GR_GPU_STATS
215
+ void reset() { *this = {}; }
216
+
217
+ int numPathMasksGenerated() const { return fNumPathMasksGenerated; }
218
+ void incNumPathMasksGenerated() { fNumPathMasksGenerated++; }
219
+
220
+ int numPathMaskCacheHits() const { return fNumPathMaskCacheHits; }
221
+ void incNumPathMasksCacheHits() { fNumPathMaskCacheHits++; }
222
+
223
+ #if defined(GPU_TEST_UTILS)
224
+ void dump(SkString* out) const;
225
+ void dumpKeyValuePairs(skia_private::TArray<SkString>* keys,
226
+ skia_private::TArray<double>* values) const;
227
+ #endif
228
+
229
+ private:
230
+ int fNumPathMasksGenerated{0};
231
+ int fNumPathMaskCacheHits{0};
232
+
233
+ #else // GR_GPU_STATS
234
+ void incNumPathMasksGenerated() {}
235
+ void incNumPathMasksCacheHits() {}
236
+
237
+ #if defined(GPU_TEST_UTILS)
238
+ void dump(SkString*) const {}
239
+ void dumpKeyValuePairs(skia_private::TArray<SkString>* keys,
240
+ skia_private::TArray<double>* values) const {}
241
+ #endif
242
+ #endif // GR_GPU_STATS
243
+ } fStats;
244
+
245
+ #if GR_GPU_STATS && defined(GPU_TEST_UTILS)
246
+ struct DMSAAStats {
247
+ void dumpKeyValuePairs(skia_private::TArray<SkString>* keys,
248
+ skia_private::TArray<double>* values) const;
249
+ void dump() const;
250
+ void merge(const DMSAAStats&);
251
+ int fNumRenderPasses = 0;
252
+ int fNumMultisampleRenderPasses = 0;
253
+ std::map<std::string, int> fTriggerCounts;
254
+ };
255
+
256
+ DMSAAStats fDMSAAStats;
257
+ #endif
258
+
259
+ Stats* stats() { return &fStats; }
260
+ const Stats* stats() const { return &fStats; }
261
+ void dumpJSON(SkJSONWriter*) const;
262
+
263
+ protected:
264
+ // Delete last in case other objects call it during destruction.
265
+ std::unique_ptr<GrAuditTrail> fAuditTrail;
266
+
267
+ private:
268
+ OwnedArenas fArenas;
269
+
270
+ std::unique_ptr<GrDrawingManager> fDrawingManager;
271
+ std::unique_ptr<GrProxyProvider> fProxyProvider;
272
+
273
+ #if defined(GPU_TEST_UTILS)
274
+ int fSuppressWarningMessages = 0;
275
+ #endif
276
+ };
277
+
278
+ /**
279
+ * Safely cast a possibly-null base context to direct context.
280
+ */
281
+ static inline GrDirectContext* GrAsDirectContext(GrContext_Base* base) {
282
+ return base ? base->asDirectContext() : nullptr;
283
+ }
284
+
285
+ #endif
@@ -0,0 +1,177 @@
1
+ /*
2
+ * Copyright 2010 Google Inc.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef GrTypes_DEFINED
9
+ #define GrTypes_DEFINED
10
+
11
+ #include "include/core/SkTypes.h"
12
+ #include "include/private/base/SkTo.h" // IWYU pragma: keep
13
+
14
+ #include <cstddef>
15
+ #include <cstdint>
16
+ class GrBackendSemaphore;
17
+
18
+ namespace skgpu {
19
+ enum class Protected : bool;
20
+ enum class Renderable : bool;
21
+ }
22
+
23
+ ///////////////////////////////////////////////////////////////////////////////
24
+
25
+ /**
26
+ * Possible 3D APIs that may be used by Ganesh.
27
+ */
28
+ enum class GrBackendApi : unsigned {
29
+ kOpenGL,
30
+ kVulkan,
31
+ kMetal,
32
+ kDirect3D,
33
+
34
+ /**
35
+ * Mock is a backend that does not draw anything. It is used for unit tests
36
+ * and to measure CPU overhead.
37
+ */
38
+ kMock,
39
+
40
+ /**
41
+ * Ganesh doesn't support some context types (e.g. Dawn) and will return Unsupported.
42
+ */
43
+ kUnsupported,
44
+
45
+ /**
46
+ * Added here to support the legacy GrBackend enum value and clients who referenced it using
47
+ * GrBackend::kOpenGL_GrBackend.
48
+ */
49
+ kOpenGL_GrBackend = kOpenGL,
50
+ };
51
+
52
+ /**
53
+ * Previously the above enum was not an enum class but a normal enum. To support the legacy use of
54
+ * the enum values we define them below so that no clients break.
55
+ */
56
+ typedef GrBackendApi GrBackend;
57
+
58
+ static constexpr GrBackendApi kMetal_GrBackend = GrBackendApi::kMetal;
59
+ static constexpr GrBackendApi kVulkan_GrBackend = GrBackendApi::kVulkan;
60
+ static constexpr GrBackendApi kMock_GrBackend = GrBackendApi::kMock;
61
+
62
+ ///////////////////////////////////////////////////////////////////////////////
63
+
64
+ /*
65
+ * Can a GrBackendObject be rendered to?
66
+ */
67
+ using GrRenderable = skgpu::Renderable;
68
+
69
+ /*
70
+ * Used to say whether texture is backed by protected memory.
71
+ */
72
+ using GrProtected = skgpu::Protected;
73
+
74
+ ///////////////////////////////////////////////////////////////////////////////
75
+
76
+ /**
77
+ * GPU SkImage and SkSurfaces can be stored such that (0, 0) in texture space may correspond to
78
+ * either the top-left or bottom-left content pixel.
79
+ */
80
+ enum GrSurfaceOrigin : int {
81
+ kTopLeft_GrSurfaceOrigin,
82
+ kBottomLeft_GrSurfaceOrigin,
83
+ };
84
+
85
+ /**
86
+ * A GrContext's cache of backend context state can be partially invalidated.
87
+ * These enums are specific to the GL backend and we'd add a new set for an alternative backend.
88
+ */
89
+ enum GrGLBackendState {
90
+ kRenderTarget_GrGLBackendState = 1 << 0,
91
+ // Also includes samplers bound to texture units.
92
+ kTextureBinding_GrGLBackendState = 1 << 1,
93
+ // View state stands for scissor and viewport
94
+ kView_GrGLBackendState = 1 << 2,
95
+ kBlend_GrGLBackendState = 1 << 3,
96
+ kMSAAEnable_GrGLBackendState = 1 << 4,
97
+ kVertex_GrGLBackendState = 1 << 5,
98
+ kStencil_GrGLBackendState = 1 << 6,
99
+ kPixelStore_GrGLBackendState = 1 << 7,
100
+ kProgram_GrGLBackendState = 1 << 8,
101
+ kFixedFunction_GrGLBackendState = 1 << 9,
102
+ kMisc_GrGLBackendState = 1 << 10,
103
+ kALL_GrGLBackendState = 0xffff
104
+ };
105
+
106
+ /**
107
+ * This value translates to reseting all the context state for any backend.
108
+ */
109
+ static const uint32_t kAll_GrBackendState = 0xffffffff;
110
+
111
+ typedef void* GrGpuFinishedContext;
112
+ typedef void (*GrGpuFinishedProc)(GrGpuFinishedContext finishedContext);
113
+
114
+ typedef void* GrGpuSubmittedContext;
115
+ typedef void (*GrGpuSubmittedProc)(GrGpuSubmittedContext submittedContext, bool success);
116
+
117
+ typedef void* GrDirectContextDestroyedContext;
118
+ typedef void (*GrDirectContextDestroyedProc)(GrDirectContextDestroyedContext destroyedContext);
119
+
120
+ /**
121
+ * Struct to supply options to flush calls.
122
+ *
123
+ * After issuing all commands, fNumSemaphore semaphores will be signaled by the gpu. The client
124
+ * passes in an array of fNumSemaphores GrBackendSemaphores. In general these GrBackendSemaphore's
125
+ * can be either initialized or not. If they are initialized, the backend uses the passed in
126
+ * semaphore. If it is not initialized, a new semaphore is created and the GrBackendSemaphore
127
+ * object is initialized with that semaphore. The semaphores are not sent to the GPU until the next
128
+ * GrContext::submit call is made. See the GrContext::submit for more information.
129
+ *
130
+ * The client will own and be responsible for deleting the underlying semaphores that are stored
131
+ * and returned in initialized GrBackendSemaphore objects. The GrBackendSemaphore objects
132
+ * themselves can be deleted as soon as this function returns.
133
+ *
134
+ * If a finishedProc is provided, the finishedProc will be called when all work submitted to the gpu
135
+ * from this flush call and all previous flush calls has finished on the GPU. If the flush call
136
+ * fails due to an error and nothing ends up getting sent to the GPU, the finished proc is called
137
+ * immediately.
138
+ *
139
+ * If a submittedProc is provided, the submittedProc will be called when all work from this flush
140
+ * call is submitted to the GPU. If the flush call fails due to an error and nothing will get sent
141
+ * to the GPU, the submitted proc is called immediately. It is possibly that when work is finally
142
+ * submitted, that the submission actual fails. In this case we will not reattempt to do the
143
+ * submission. Skia notifies the client of these via the success bool passed into the submittedProc.
144
+ * The submittedProc is useful to the client to know when semaphores that were sent with the flush
145
+ * have actually been submitted to the GPU so that they can be waited on (or deleted if the submit
146
+ * fails).
147
+ * GrBackendSemaphores are not supported for the GL backend and will be ignored if set.
148
+ */
149
+ struct GrFlushInfo {
150
+ size_t fNumSemaphores = 0;
151
+ GrBackendSemaphore* fSignalSemaphores = nullptr;
152
+ GrGpuFinishedProc fFinishedProc = nullptr;
153
+ GrGpuFinishedContext fFinishedContext = nullptr;
154
+ GrGpuSubmittedProc fSubmittedProc = nullptr;
155
+ GrGpuSubmittedContext fSubmittedContext = nullptr;
156
+ };
157
+
158
+ /**
159
+ * Enum used as return value when flush with semaphores so the client knows whether the valid
160
+ * semaphores will be submitted on the next GrContext::submit call.
161
+ */
162
+ enum class GrSemaphoresSubmitted : bool {
163
+ kNo = false,
164
+ kYes = true
165
+ };
166
+
167
+ enum class GrPurgeResourceOptions {
168
+ kAllResources,
169
+ kScratchResourcesOnly,
170
+ };
171
+
172
+ enum class GrSyncCpu : bool {
173
+ kNo = false,
174
+ kYes = true,
175
+ };
176
+
177
+ #endif