@shopify/react-native-skia 1.3.13 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (361) hide show
  1. package/android/CMakeLists.txt +9 -4
  2. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +6 -0
  3. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +81 -0
  4. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +40 -0
  5. package/cpp/api/JsiSkApi.h +2 -0
  6. package/cpp/api/JsiSkPath.h +29 -19
  7. package/cpp/api/JsiSkRuntimeEffect.h +7 -0
  8. package/cpp/api/JsiSkiaContext.h +79 -0
  9. package/cpp/rnskia/RNSkPlatformContext.h +4 -0
  10. package/cpp/rnskia/SkiaContext.h +22 -0
  11. package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -2
  12. package/cpp/skia/include/android/SkImageAndroid.h +1 -1
  13. package/cpp/skia/include/android/SkSurfaceAndroid.h +1 -1
  14. package/cpp/skia/include/codec/SkAndroidCodec.h +13 -9
  15. package/cpp/skia/include/codec/SkCodec.h +28 -5
  16. package/cpp/skia/include/core/SkArc.h +69 -0
  17. package/cpp/skia/include/core/SkBitmap.h +10 -0
  18. package/cpp/skia/include/core/SkBlender.h +2 -3
  19. package/cpp/skia/include/core/SkCanvas.h +86 -16
  20. package/cpp/skia/include/core/SkCapabilities.h +0 -4
  21. package/cpp/skia/include/core/SkColorFilter.h +4 -4
  22. package/cpp/skia/include/core/SkColorPriv.h +5 -7
  23. package/cpp/skia/include/core/SkColorType.h +2 -0
  24. package/cpp/skia/include/core/SkFlattenable.h +1 -1
  25. package/cpp/skia/include/core/SkFontArguments.h +3 -1
  26. package/cpp/skia/include/core/SkFontParameters.h +3 -2
  27. package/cpp/skia/include/core/SkFourByteTag.h +19 -0
  28. package/cpp/skia/include/core/SkImage.h +41 -1
  29. package/cpp/skia/include/core/SkImageGenerator.h +0 -5
  30. package/cpp/skia/include/core/SkImageInfo.h +20 -0
  31. package/cpp/skia/include/core/SkM44.h +1 -1
  32. package/cpp/skia/include/core/SkMatrix.h +2 -1
  33. package/cpp/skia/include/core/SkMilestone.h +1 -1
  34. package/cpp/skia/include/core/SkPaint.h +1 -1
  35. package/cpp/skia/include/core/SkPath.h +20 -6
  36. package/cpp/skia/include/core/SkPathMeasure.h +1 -0
  37. package/cpp/skia/include/core/SkPicture.h +5 -5
  38. package/cpp/skia/include/core/SkPoint3.h +2 -12
  39. package/cpp/skia/include/core/SkRRect.h +5 -0
  40. package/cpp/skia/include/core/SkRect.h +5 -16
  41. package/cpp/skia/include/core/SkRefCnt.h +2 -0
  42. package/cpp/skia/include/core/SkScalar.h +20 -32
  43. package/cpp/skia/include/core/SkShader.h +17 -0
  44. package/cpp/skia/include/core/SkSize.h +2 -1
  45. package/cpp/skia/include/core/SkStream.h +2 -3
  46. package/cpp/skia/include/core/SkStrokeRec.h +6 -1
  47. package/cpp/skia/include/core/SkSurface.h +13 -4
  48. package/cpp/skia/include/core/SkSurfaceProps.h +5 -0
  49. package/cpp/skia/include/core/SkSwizzle.h +3 -1
  50. package/cpp/skia/include/core/SkTypeface.h +1 -0
  51. package/cpp/skia/include/core/SkTypes.h +1 -19
  52. package/cpp/skia/include/core/SkUnPreMultiply.h +4 -5
  53. package/cpp/skia/include/core/SkVertices.h +4 -2
  54. package/cpp/skia/include/docs/SkPDFDocument.h +11 -14
  55. package/cpp/skia/include/effects/SkHighContrastFilter.h +6 -6
  56. package/cpp/skia/include/effects/SkImageFilters.h +49 -23
  57. package/cpp/skia/include/effects/SkRuntimeEffect.h +51 -70
  58. package/cpp/skia/include/effects/SkShaderMaskFilter.h +2 -0
  59. package/cpp/skia/include/effects/SkTableMaskFilter.h +2 -0
  60. package/cpp/skia/include/gpu/GrBackendSemaphore.h +2 -120
  61. package/cpp/skia/include/gpu/GrBackendSurface.h +2 -466
  62. package/cpp/skia/include/gpu/GrContextOptions.h +2 -368
  63. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +2 -179
  64. package/cpp/skia/include/gpu/GrDirectContext.h +2 -1011
  65. package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -47
  66. package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +2 -41
  67. package/cpp/skia/include/gpu/GrRecordingContext.h +2 -279
  68. package/cpp/skia/include/gpu/GrTypes.h +2 -238
  69. package/cpp/skia/include/gpu/GrYUVABackendTextures.h +2 -118
  70. package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +2 -29
  71. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -242
  72. package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +80 -0
  73. package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +412 -0
  74. package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +386 -0
  75. package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
  76. package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +993 -0
  77. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
  78. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +45 -0
  79. package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
  80. package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +285 -0
  81. package/cpp/skia/include/gpu/ganesh/GrTypes.h +177 -0
  82. package/cpp/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
  83. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
  84. package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
  85. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
  86. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
  87. package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
  88. package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
  89. package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
  90. package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
  91. package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
  92. package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +306 -0
  93. package/cpp/skia/include/gpu/ganesh/gl/GrGLInterface.h +338 -0
  94. package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
  95. package/cpp/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
  96. package/cpp/skia/include/gpu/{gl → ganesh/gl}/egl/GrGLMakeEGLInterface.h +2 -2
  97. package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
  98. package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
  99. package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
  100. package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
  101. package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
  102. package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlBackendContext.h +2 -2
  103. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
  104. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
  105. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
  106. package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlTypes.h +1 -3
  107. package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +2 -2
  108. package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +2 -2
  109. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
  110. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +7 -3
  111. package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +6 -3
  112. package/cpp/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
  113. package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +2 -9
  114. package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +2 -38
  115. package/cpp/skia/include/gpu/gl/GrGLConfig.h +2 -73
  116. package/cpp/skia/include/gpu/gl/GrGLExtensions.h +2 -72
  117. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +2 -301
  118. package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -332
  119. package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -213
  120. package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +20 -41
  121. package/cpp/skia/include/gpu/graphite/BackendTexture.h +18 -118
  122. package/cpp/skia/include/gpu/graphite/Context.h +122 -44
  123. package/cpp/skia/include/gpu/graphite/ContextOptions.h +30 -3
  124. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +45 -17
  125. package/cpp/skia/include/gpu/graphite/Image.h +56 -54
  126. package/cpp/skia/include/gpu/graphite/Recorder.h +68 -14
  127. package/cpp/skia/include/gpu/graphite/Recording.h +3 -3
  128. package/cpp/skia/include/gpu/graphite/Surface.h +6 -2
  129. package/cpp/skia/include/gpu/graphite/TextureInfo.h +36 -117
  130. package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +108 -6
  131. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +4 -1
  132. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +41 -25
  133. package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +197 -0
  134. package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +48 -0
  135. package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +84 -0
  136. package/cpp/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
  137. package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +85 -0
  138. package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +119 -0
  139. package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +51 -0
  140. package/cpp/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
  141. package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +170 -0
  142. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +24 -2
  143. package/cpp/skia/include/gpu/mock/GrMockTypes.h +2 -157
  144. package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +2 -0
  145. package/cpp/skia/include/gpu/vk/GrVkTypes.h +2 -101
  146. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +13 -8
  147. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +9 -3
  148. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +4 -1
  149. package/cpp/skia/include/gpu/vk/VulkanTypes.h +25 -8
  150. package/cpp/skia/include/ports/SkFontMgr_Fontations.h +20 -0
  151. package/cpp/skia/include/ports/SkFontMgr_android.h +7 -0
  152. package/cpp/skia/include/ports/SkImageGeneratorCG.h +3 -1
  153. package/cpp/skia/include/ports/SkTypeface_win.h +0 -17
  154. package/cpp/skia/include/private/SkEncodedInfo.h +8 -2
  155. package/cpp/skia/include/private/SkExif.h +28 -75
  156. package/cpp/skia/include/private/SkGainmapInfo.h +47 -7
  157. package/cpp/skia/include/private/SkJpegMetadataDecoder.h +12 -0
  158. package/cpp/skia/include/private/SkPathRef.h +52 -44
  159. package/cpp/skia/include/private/SkXmp.h +13 -4
  160. package/cpp/skia/include/private/base/SkASAN.h +56 -0
  161. package/cpp/skia/include/private/base/SkAlign.h +5 -0
  162. package/cpp/skia/include/private/base/SkContainers.h +10 -2
  163. package/cpp/skia/include/private/base/SkFeatures.h +22 -1
  164. package/cpp/skia/include/private/base/SkFloatingPoint.h +51 -65
  165. package/cpp/skia/include/private/base/SkMacros.h +67 -0
  166. package/cpp/skia/include/private/base/SkMalloc.h +8 -0
  167. package/cpp/skia/include/private/base/SkPoint_impl.h +2 -11
  168. package/cpp/skia/include/private/base/SkTArray.h +108 -23
  169. package/cpp/skia/include/private/base/SkTFitsIn.h +1 -12
  170. package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
  171. package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +0 -39
  172. package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +1 -1
  173. package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +3 -3
  174. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -4
  175. package/cpp/skia/include/private/chromium/Slug.h +5 -11
  176. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
  177. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +2 -2
  178. package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
  179. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +21 -93
  180. package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +2 -2
  181. package/cpp/skia/include/utils/SkCustomTypeface.h +1 -0
  182. package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
  183. package/cpp/skia/include/utils/SkParse.h +0 -1
  184. package/cpp/skia/modules/skcms/src/Transform_inl.h +59 -56
  185. package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -0
  186. package/cpp/skia/modules/skcms/src/skcms_internals.h +2 -0
  187. package/cpp/skia/modules/skcms/src/skcms_public.h +46 -14
  188. package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +15 -1
  189. package/cpp/skia/modules/skparagraph/include/TextStyle.h +2 -2
  190. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -4
  191. package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
  192. package/cpp/skia/modules/skshaper/include/SkShaper.h +316 -0
  193. package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +19 -0
  194. package/cpp/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
  195. package/cpp/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
  196. package/cpp/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
  197. package/cpp/skia/modules/skunicode/include/SkUnicode.h +6 -23
  198. package/cpp/skia/modules/svg/include/SkSVGAttribute.h +0 -3
  199. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +12 -2
  200. package/cpp/skia/modules/svg/include/SkSVGCircle.h +13 -0
  201. package/cpp/skia/modules/svg/include/SkSVGClipPath.h +6 -0
  202. package/cpp/skia/modules/svg/include/SkSVGContainer.h +17 -1
  203. package/cpp/skia/modules/svg/include/SkSVGDOM.h +25 -15
  204. package/cpp/skia/modules/svg/include/SkSVGEllipse.h +13 -2
  205. package/cpp/skia/modules/svg/include/SkSVGFe.h +11 -2
  206. package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +9 -0
  207. package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +9 -0
  208. package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
  209. package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +10 -1
  210. package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +10 -0
  211. package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +10 -0
  212. package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +9 -0
  213. package/cpp/skia/modules/svg/include/SkSVGFeImage.h +9 -0
  214. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +5 -0
  215. package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +11 -0
  216. package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
  217. package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +8 -0
  218. package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +9 -0
  219. package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +9 -0
  220. package/cpp/skia/modules/svg/include/SkSVGFilter.h +9 -0
  221. package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +3 -3
  222. package/cpp/skia/modules/svg/include/SkSVGGradient.h +10 -2
  223. package/cpp/skia/modules/svg/include/SkSVGImage.h +9 -0
  224. package/cpp/skia/modules/svg/include/SkSVGLine.h +11 -0
  225. package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +10 -0
  226. package/cpp/skia/modules/svg/include/SkSVGMask.h +6 -0
  227. package/cpp/skia/modules/svg/include/SkSVGNode.h +13 -2
  228. package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +5 -0
  229. package/cpp/skia/modules/svg/include/SkSVGPath.h +10 -0
  230. package/cpp/skia/modules/svg/include/SkSVGPattern.h +5 -0
  231. package/cpp/skia/modules/svg/include/SkSVGPoly.h +11 -0
  232. package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +11 -0
  233. package/cpp/skia/modules/svg/include/SkSVGRect.h +11 -0
  234. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +43 -7
  235. package/cpp/skia/modules/svg/include/SkSVGSVG.h +7 -0
  236. package/cpp/skia/modules/svg/include/SkSVGShape.h +8 -2
  237. package/cpp/skia/modules/svg/include/SkSVGStop.h +5 -3
  238. package/cpp/skia/modules/svg/include/SkSVGText.h +8 -2
  239. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +8 -0
  240. package/cpp/skia/modules/svg/include/SkSVGTypes.h +9 -0
  241. package/cpp/skia/modules/svg/include/SkSVGUse.h +7 -0
  242. package/cpp/skia/src/base/SkMathPriv.h +337 -0
  243. package/cpp/skia/src/base/SkTLazy.h +208 -0
  244. package/cpp/skia/src/core/SkTHash.h +58 -7
  245. package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +3 -0
  246. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -0
  247. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +7 -0
  248. package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +7 -2
  249. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +78 -0
  250. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +20 -4
  251. package/lib/commonjs/renderer/HostConfig.js.map +1 -1
  252. package/lib/commonjs/skia/types/Paragraph/TextStyle.d.ts +2 -2
  253. package/lib/commonjs/skia/types/Paragraph/TextStyle.js.map +1 -1
  254. package/lib/commonjs/skia/types/Skia.d.ts +6 -1
  255. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  256. package/lib/commonjs/skia/web/JsiSkia.js +4 -1
  257. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  258. package/lib/commonjs/web/WithSkiaWeb.d.ts +11 -4
  259. package/lib/commonjs/web/WithSkiaWeb.js +3 -2
  260. package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
  261. package/lib/module/renderer/HostConfig.js.map +1 -1
  262. package/lib/module/skia/types/Paragraph/TextStyle.d.ts +2 -2
  263. package/lib/module/skia/types/Paragraph/TextStyle.js.map +1 -1
  264. package/lib/module/skia/types/Skia.d.ts +6 -1
  265. package/lib/module/skia/types/Skia.js.map +1 -1
  266. package/lib/module/skia/web/JsiSkia.js +4 -1
  267. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  268. package/lib/module/web/WithSkiaWeb.d.ts +11 -4
  269. package/lib/module/web/WithSkiaWeb.js +3 -2
  270. package/lib/module/web/WithSkiaWeb.js.map +1 -1
  271. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -0
  272. package/lib/typescript/lib/commonjs/web/WithSkiaWeb.d.ts +2 -1
  273. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
  274. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -0
  275. package/lib/typescript/lib/module/web/WithSkiaWeb.d.ts +2 -1
  276. package/lib/typescript/src/skia/types/Paragraph/TextStyle.d.ts +2 -2
  277. package/lib/typescript/src/skia/types/Skia.d.ts +6 -1
  278. package/lib/typescript/src/web/WithSkiaWeb.d.ts +11 -4
  279. package/libs/android/arm64-v8a/libskia.a +0 -0
  280. package/libs/android/arm64-v8a/libskottie.a +0 -0
  281. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  282. package/libs/android/arm64-v8a/libsksg.a +0 -0
  283. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  284. package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
  285. package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
  286. package/libs/android/arm64-v8a/libsvg.a +0 -0
  287. package/libs/android/armeabi-v7a/libskia.a +0 -0
  288. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  289. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  290. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  291. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  292. package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
  293. package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
  294. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  295. package/libs/android/x86/libskia.a +0 -0
  296. package/libs/android/x86/libskottie.a +0 -0
  297. package/libs/android/x86/libskparagraph.a +0 -0
  298. package/libs/android/x86/libsksg.a +0 -0
  299. package/libs/android/x86/libskshaper.a +0 -0
  300. package/libs/android/x86/libskunicode_core.a +0 -0
  301. package/libs/android/x86/libskunicode_icu.a +0 -0
  302. package/libs/android/x86/libsvg.a +0 -0
  303. package/libs/android/x86_64/libskia.a +0 -0
  304. package/libs/android/x86_64/libskottie.a +0 -0
  305. package/libs/android/x86_64/libskparagraph.a +0 -0
  306. package/libs/android/x86_64/libsksg.a +0 -0
  307. package/libs/android/x86_64/libskshaper.a +0 -0
  308. package/libs/android/x86_64/libskunicode_core.a +0 -0
  309. package/libs/android/x86_64/libskunicode_icu.a +0 -0
  310. package/libs/android/x86_64/libsvg.a +0 -0
  311. package/libs/ios/libskia.xcframework/Info.plist +5 -5
  312. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  313. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  314. package/libs/ios/libskottie.xcframework/Info.plist +5 -5
  315. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  316. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  317. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  318. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  319. package/libs/ios/libsksg.xcframework/Info.plist +5 -5
  320. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  321. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  322. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  323. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  324. package/libs/ios/libsvg.xcframework/Info.plist +5 -5
  325. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  326. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  327. package/package.json +3 -5
  328. package/react-native-skia.podspec +2 -1
  329. package/src/renderer/HostConfig.ts +5 -1
  330. package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +5 -2
  331. package/src/renderer/__tests__/e2e/Paths.spec.tsx +12 -5
  332. package/src/renderer/__tests__/e2e/SDF.spec.tsx +1 -1
  333. package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +1 -1
  334. package/src/skia/types/Paragraph/TextStyle.ts +2 -2
  335. package/src/skia/types/Skia.ts +7 -1
  336. package/src/skia/web/JsiSkia.ts +3 -0
  337. package/src/web/WithSkiaWeb.tsx +17 -6
  338. package/cpp/skia/include/core/SkDrawLooper.h +0 -135
  339. package/cpp/skia/include/effects/SkBlurDrawLooper.h +0 -26
  340. package/cpp/skia/include/effects/SkLayerDrawLooper.h +0 -161
  341. package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +0 -14
  342. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +0 -84
  343. package/cpp/skia/include/gpu/vk/GrVkExtensions.h +0 -15
  344. package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +0 -15
  345. package/cpp/skia/include/ports/SkFontMgr_indirect.h +0 -102
  346. package/cpp/skia/include/ports/SkRemotableFontMgr.h +0 -139
  347. package/cpp/skia/include/private/base/SkFloatBits.h +0 -90
  348. package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +0 -69
  349. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +0 -54
  350. package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +0 -95
  351. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +0 -83
  352. package/cpp/skia/src/core/SkPathEnums.h +0 -25
  353. package/cpp/skia/src/core/SkPathPriv.h +0 -540
  354. package/libs/android/arm64-v8a/libskunicode.a +0 -0
  355. package/libs/android/armeabi-v7a/libskunicode.a +0 -0
  356. package/libs/android/x86/libskunicode.a +0 -0
  357. package/libs/android/x86_64/libskunicode.a +0 -0
  358. package/libs/ios/libskunicode.xcframework/Info.plist +0 -46
  359. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
  360. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
  361. /package/cpp/skia/include/gpu/{gl → ganesh/gl}/glx/GrGLMakeGLXInterface.h +0 -0
@@ -4,50 +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 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/GrDriverBugWorkaroundsAutogen.h"
21
- #endif
22
-
23
- #include "include/core/SkTypes.h"
24
-
25
- #include <stdint.h>
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
7
+ // TODO(kjlubick, egdaniel) Delete this after migrating clients.
8
+ #include "include/gpu/ganesh/GrDriverBugWorkarounds.h"
@@ -2,44 +2,5 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
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
5
+ // TODO(kjlubick, egdaniel) Delete this after migrating clients.
6
+ #include "include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h"
@@ -4,282 +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 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(GR_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(GR_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(GR_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(GR_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
7
+ // TODO(kjlubick, egdaniel) Delete this after migrating clients.
8
+ #include "include/gpu/ganesh/GrRecordingContext.h"
@@ -4,241 +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 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
- * Wraps a C++11 enum that we use as a bitfield, and enables a limited amount of
27
- * masking with type safety. Instantiated with the ~ operator.
28
- */
29
- template<typename TFlags> class GrTFlagsMask {
30
- public:
31
- constexpr explicit GrTFlagsMask(TFlags value) : GrTFlagsMask(static_cast<int>(value)) {}
32
- constexpr explicit GrTFlagsMask(int value) : fValue(value) {}
33
- constexpr int value() const { return fValue; }
34
- private:
35
- const int fValue;
36
- };
37
-
38
- /**
39
- * Defines bitwise operators that make it possible to use an enum class as a
40
- * basic bitfield.
41
- */
42
- #define GR_MAKE_BITFIELD_CLASS_OPS(X) \
43
- [[maybe_unused]] constexpr GrTFlagsMask<X> operator~(X a) { \
44
- return GrTFlagsMask<X>(~static_cast<int>(a)); \
45
- } \
46
- [[maybe_unused]] constexpr X operator|(X a, X b) { \
47
- return static_cast<X>(static_cast<int>(a) | static_cast<int>(b)); \
48
- } \
49
- [[maybe_unused]] inline X& operator|=(X& a, X b) { \
50
- return (a = a | b); \
51
- } \
52
- [[maybe_unused]] constexpr bool operator&(X a, X b) { \
53
- return SkToBool(static_cast<int>(a) & static_cast<int>(b)); \
54
- } \
55
- [[maybe_unused]] constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X> a, GrTFlagsMask<X> b) { \
56
- return GrTFlagsMask<X>(a.value() | b.value()); \
57
- } \
58
- [[maybe_unused]] constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X> a, X b) { \
59
- return GrTFlagsMask<X>(a.value() | static_cast<int>(b)); \
60
- } \
61
- [[maybe_unused]] constexpr GrTFlagsMask<X> operator|(X a, GrTFlagsMask<X> b) { \
62
- return GrTFlagsMask<X>(static_cast<int>(a) | b.value()); \
63
- } \
64
- [[maybe_unused]] constexpr X operator&(GrTFlagsMask<X> a, GrTFlagsMask<X> b) { \
65
- return static_cast<X>(a.value() & b.value()); \
66
- } \
67
- [[maybe_unused]] constexpr X operator&(GrTFlagsMask<X> a, X b) { \
68
- return static_cast<X>(a.value() & static_cast<int>(b)); \
69
- } \
70
- [[maybe_unused]] constexpr X operator&(X a, GrTFlagsMask<X> b) { \
71
- return static_cast<X>(static_cast<int>(a) & b.value()); \
72
- } \
73
- [[maybe_unused]] inline X& operator&=(X& a, GrTFlagsMask<X> b) { \
74
- return (a = a & b); \
75
- } \
76
-
77
- #define GR_DECL_BITFIELD_CLASS_OPS_FRIENDS(X) \
78
- friend constexpr GrTFlagsMask<X> operator ~(X); \
79
- friend constexpr X operator |(X, X); \
80
- friend X& operator |=(X&, X); \
81
- friend constexpr bool operator &(X, X); \
82
- friend constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X>, GrTFlagsMask<X>); \
83
- friend constexpr GrTFlagsMask<X> operator|(GrTFlagsMask<X>, X); \
84
- friend constexpr GrTFlagsMask<X> operator|(X, GrTFlagsMask<X>); \
85
- friend constexpr X operator&(GrTFlagsMask<X>, GrTFlagsMask<X>); \
86
- friend constexpr X operator&(GrTFlagsMask<X>, X); \
87
- friend constexpr X operator&(X, GrTFlagsMask<X>); \
88
- friend X& operator &=(X&, GrTFlagsMask<X>)
89
-
90
- ///////////////////////////////////////////////////////////////////////////////
91
-
92
- /**
93
- * Possible 3D APIs that may be used by Ganesh.
94
- */
95
- enum class GrBackendApi : unsigned {
96
- kOpenGL,
97
- kVulkan,
98
- kMetal,
99
- kDirect3D,
100
-
101
- /**
102
- * Mock is a backend that does not draw anything. It is used for unit tests
103
- * and to measure CPU overhead.
104
- */
105
- kMock,
106
-
107
- /**
108
- * Ganesh doesn't support some context types (e.g. Dawn) and will return Unsupported.
109
- */
110
- kUnsupported,
111
-
112
- /**
113
- * Added here to support the legacy GrBackend enum value and clients who referenced it using
114
- * GrBackend::kOpenGL_GrBackend.
115
- */
116
- kOpenGL_GrBackend = kOpenGL,
117
- };
118
-
119
- /**
120
- * Previously the above enum was not an enum class but a normal enum. To support the legacy use of
121
- * the enum values we define them below so that no clients break.
122
- */
123
- typedef GrBackendApi GrBackend;
124
-
125
- static constexpr GrBackendApi kMetal_GrBackend = GrBackendApi::kMetal;
126
- static constexpr GrBackendApi kVulkan_GrBackend = GrBackendApi::kVulkan;
127
- static constexpr GrBackendApi kMock_GrBackend = GrBackendApi::kMock;
128
-
129
- ///////////////////////////////////////////////////////////////////////////////
130
-
131
- /*
132
- * Can a GrBackendObject be rendered to?
133
- */
134
- using GrRenderable = skgpu::Renderable;
135
-
136
- /*
137
- * Used to say whether texture is backed by protected memory.
138
- */
139
- using GrProtected = skgpu::Protected;
140
-
141
- ///////////////////////////////////////////////////////////////////////////////
142
-
143
- /**
144
- * GPU SkImage and SkSurfaces can be stored such that (0, 0) in texture space may correspond to
145
- * either the top-left or bottom-left content pixel.
146
- */
147
- enum GrSurfaceOrigin : int {
148
- kTopLeft_GrSurfaceOrigin,
149
- kBottomLeft_GrSurfaceOrigin,
150
- };
151
-
152
- /**
153
- * A GrContext's cache of backend context state can be partially invalidated.
154
- * These enums are specific to the GL backend and we'd add a new set for an alternative backend.
155
- */
156
- enum GrGLBackendState {
157
- kRenderTarget_GrGLBackendState = 1 << 0,
158
- // Also includes samplers bound to texture units.
159
- kTextureBinding_GrGLBackendState = 1 << 1,
160
- // View state stands for scissor and viewport
161
- kView_GrGLBackendState = 1 << 2,
162
- kBlend_GrGLBackendState = 1 << 3,
163
- kMSAAEnable_GrGLBackendState = 1 << 4,
164
- kVertex_GrGLBackendState = 1 << 5,
165
- kStencil_GrGLBackendState = 1 << 6,
166
- kPixelStore_GrGLBackendState = 1 << 7,
167
- kProgram_GrGLBackendState = 1 << 8,
168
- kFixedFunction_GrGLBackendState = 1 << 9,
169
- kMisc_GrGLBackendState = 1 << 10,
170
- kALL_GrGLBackendState = 0xffff
171
- };
172
-
173
- /**
174
- * This value translates to reseting all the context state for any backend.
175
- */
176
- static const uint32_t kAll_GrBackendState = 0xffffffff;
177
-
178
- typedef void* GrGpuFinishedContext;
179
- typedef void (*GrGpuFinishedProc)(GrGpuFinishedContext finishedContext);
180
-
181
- typedef void* GrGpuSubmittedContext;
182
- typedef void (*GrGpuSubmittedProc)(GrGpuSubmittedContext submittedContext, bool success);
183
-
184
- typedef void* GrDirectContextDestroyedContext;
185
- typedef void (*GrDirectContextDestroyedProc)(GrDirectContextDestroyedContext destroyedContext);
186
-
187
- /**
188
- * Struct to supply options to flush calls.
189
- *
190
- * After issuing all commands, fNumSemaphore semaphores will be signaled by the gpu. The client
191
- * passes in an array of fNumSemaphores GrBackendSemaphores. In general these GrBackendSemaphore's
192
- * can be either initialized or not. If they are initialized, the backend uses the passed in
193
- * semaphore. If it is not initialized, a new semaphore is created and the GrBackendSemaphore
194
- * object is initialized with that semaphore. The semaphores are not sent to the GPU until the next
195
- * GrContext::submit call is made. See the GrContext::submit for more information.
196
- *
197
- * The client will own and be responsible for deleting the underlying semaphores that are stored
198
- * and returned in initialized GrBackendSemaphore objects. The GrBackendSemaphore objects
199
- * themselves can be deleted as soon as this function returns.
200
- *
201
- * If a finishedProc is provided, the finishedProc will be called when all work submitted to the gpu
202
- * from this flush call and all previous flush calls has finished on the GPU. If the flush call
203
- * fails due to an error and nothing ends up getting sent to the GPU, the finished proc is called
204
- * immediately.
205
- *
206
- * If a submittedProc is provided, the submittedProc will be called when all work from this flush
207
- * call is submitted to the GPU. If the flush call fails due to an error and nothing will get sent
208
- * to the GPU, the submitted proc is called immediately. It is possibly that when work is finally
209
- * submitted, that the submission actual fails. In this case we will not reattempt to do the
210
- * submission. Skia notifies the client of these via the success bool passed into the submittedProc.
211
- * The submittedProc is useful to the client to know when semaphores that were sent with the flush
212
- * have actually been submitted to the GPU so that they can be waited on (or deleted if the submit
213
- * fails).
214
- * GrBackendSemaphores are not supported for the GL backend and will be ignored if set.
215
- */
216
- struct GrFlushInfo {
217
- size_t fNumSemaphores = 0;
218
- GrBackendSemaphore* fSignalSemaphores = nullptr;
219
- GrGpuFinishedProc fFinishedProc = nullptr;
220
- GrGpuFinishedContext fFinishedContext = nullptr;
221
- GrGpuSubmittedProc fSubmittedProc = nullptr;
222
- GrGpuSubmittedContext fSubmittedContext = nullptr;
223
- };
224
-
225
- /**
226
- * Enum used as return value when flush with semaphores so the client knows whether the valid
227
- * semaphores will be submitted on the next GrContext::submit call.
228
- */
229
- enum class GrSemaphoresSubmitted : bool {
230
- kNo = false,
231
- kYes = true
232
- };
233
-
234
- enum class GrPurgeResourceOptions {
235
- kAllResources,
236
- kScratchResourcesOnly,
237
- };
238
-
239
- enum class GrSyncCpu : bool {
240
- kNo = false,
241
- kYes = true,
242
- };
243
-
244
- #endif
7
+ // TODO(kjlubick, egdaniel) Delete this after migrating clients.
8
+ #include "include/gpu/ganesh/GrTypes.h"