@shopify/react-native-skia 1.3.13 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (361) hide show
  1. package/android/CMakeLists.txt +9 -4
  2. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +6 -0
  3. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +81 -0
  4. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +40 -0
  5. package/cpp/api/JsiSkApi.h +2 -0
  6. package/cpp/api/JsiSkPath.h +29 -19
  7. package/cpp/api/JsiSkRuntimeEffect.h +7 -0
  8. package/cpp/api/JsiSkiaContext.h +79 -0
  9. package/cpp/rnskia/RNSkPlatformContext.h +4 -0
  10. package/cpp/rnskia/SkiaContext.h +22 -0
  11. package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -2
  12. package/cpp/skia/include/android/SkImageAndroid.h +1 -1
  13. package/cpp/skia/include/android/SkSurfaceAndroid.h +1 -1
  14. package/cpp/skia/include/codec/SkAndroidCodec.h +13 -9
  15. package/cpp/skia/include/codec/SkCodec.h +28 -5
  16. package/cpp/skia/include/core/SkArc.h +69 -0
  17. package/cpp/skia/include/core/SkBitmap.h +10 -0
  18. package/cpp/skia/include/core/SkBlender.h +2 -3
  19. package/cpp/skia/include/core/SkCanvas.h +86 -16
  20. package/cpp/skia/include/core/SkCapabilities.h +0 -4
  21. package/cpp/skia/include/core/SkColorFilter.h +4 -4
  22. package/cpp/skia/include/core/SkColorPriv.h +5 -7
  23. package/cpp/skia/include/core/SkColorType.h +2 -0
  24. package/cpp/skia/include/core/SkFlattenable.h +1 -1
  25. package/cpp/skia/include/core/SkFontArguments.h +3 -1
  26. package/cpp/skia/include/core/SkFontParameters.h +3 -2
  27. package/cpp/skia/include/core/SkFourByteTag.h +19 -0
  28. package/cpp/skia/include/core/SkImage.h +41 -1
  29. package/cpp/skia/include/core/SkImageGenerator.h +0 -5
  30. package/cpp/skia/include/core/SkImageInfo.h +20 -0
  31. package/cpp/skia/include/core/SkM44.h +1 -1
  32. package/cpp/skia/include/core/SkMatrix.h +2 -1
  33. package/cpp/skia/include/core/SkMilestone.h +1 -1
  34. package/cpp/skia/include/core/SkPaint.h +1 -1
  35. package/cpp/skia/include/core/SkPath.h +20 -6
  36. package/cpp/skia/include/core/SkPathMeasure.h +1 -0
  37. package/cpp/skia/include/core/SkPicture.h +5 -5
  38. package/cpp/skia/include/core/SkPoint3.h +2 -12
  39. package/cpp/skia/include/core/SkRRect.h +5 -0
  40. package/cpp/skia/include/core/SkRect.h +5 -16
  41. package/cpp/skia/include/core/SkRefCnt.h +2 -0
  42. package/cpp/skia/include/core/SkScalar.h +20 -32
  43. package/cpp/skia/include/core/SkShader.h +17 -0
  44. package/cpp/skia/include/core/SkSize.h +2 -1
  45. package/cpp/skia/include/core/SkStream.h +2 -3
  46. package/cpp/skia/include/core/SkStrokeRec.h +6 -1
  47. package/cpp/skia/include/core/SkSurface.h +13 -4
  48. package/cpp/skia/include/core/SkSurfaceProps.h +5 -0
  49. package/cpp/skia/include/core/SkSwizzle.h +3 -1
  50. package/cpp/skia/include/core/SkTypeface.h +1 -0
  51. package/cpp/skia/include/core/SkTypes.h +1 -19
  52. package/cpp/skia/include/core/SkUnPreMultiply.h +4 -5
  53. package/cpp/skia/include/core/SkVertices.h +4 -2
  54. package/cpp/skia/include/docs/SkPDFDocument.h +11 -14
  55. package/cpp/skia/include/effects/SkHighContrastFilter.h +6 -6
  56. package/cpp/skia/include/effects/SkImageFilters.h +49 -23
  57. package/cpp/skia/include/effects/SkRuntimeEffect.h +51 -70
  58. package/cpp/skia/include/effects/SkShaderMaskFilter.h +2 -0
  59. package/cpp/skia/include/effects/SkTableMaskFilter.h +2 -0
  60. package/cpp/skia/include/gpu/GrBackendSemaphore.h +2 -120
  61. package/cpp/skia/include/gpu/GrBackendSurface.h +2 -466
  62. package/cpp/skia/include/gpu/GrContextOptions.h +2 -368
  63. package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +2 -179
  64. package/cpp/skia/include/gpu/GrDirectContext.h +2 -1011
  65. package/cpp/skia/include/gpu/GrDriverBugWorkarounds.h +2 -47
  66. package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +2 -41
  67. package/cpp/skia/include/gpu/GrRecordingContext.h +2 -279
  68. package/cpp/skia/include/gpu/GrTypes.h +2 -238
  69. package/cpp/skia/include/gpu/GrYUVABackendTextures.h +2 -118
  70. package/cpp/skia/include/gpu/d3d/GrD3DBackendContext.h +2 -29
  71. package/cpp/skia/include/gpu/d3d/GrD3DTypes.h +2 -242
  72. package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +80 -0
  73. package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +412 -0
  74. package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +386 -0
  75. package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +175 -0
  76. package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +993 -0
  77. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +53 -0
  78. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkaroundsAutogen.h +45 -0
  79. package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +1 -1
  80. package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +285 -0
  81. package/cpp/skia/include/gpu/ganesh/GrTypes.h +177 -0
  82. package/cpp/skia/include/gpu/ganesh/GrYUVABackendTextures.h +130 -0
  83. package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +1 -1
  84. package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
  85. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DBackendContext.h +35 -0
  86. package/cpp/skia/include/gpu/ganesh/d3d/GrD3DTypes.h +248 -0
  87. package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleHelpers.h +17 -0
  88. package/cpp/skia/include/gpu/ganesh/gl/GrGLAssembleInterface.h +45 -0
  89. package/cpp/skia/include/gpu/ganesh/gl/GrGLBackendSurface.h +1 -1
  90. package/cpp/skia/include/gpu/ganesh/gl/GrGLConfig.h +69 -0
  91. package/cpp/skia/include/gpu/ganesh/gl/GrGLExtensions.h +79 -0
  92. package/cpp/skia/include/gpu/ganesh/gl/GrGLFunctions.h +306 -0
  93. package/cpp/skia/include/gpu/ganesh/gl/GrGLInterface.h +338 -0
  94. package/cpp/skia/include/gpu/ganesh/gl/GrGLMakeWebGLInterface.h +19 -0
  95. package/cpp/skia/include/gpu/ganesh/gl/GrGLTypes.h +219 -0
  96. package/cpp/skia/include/gpu/{gl → ganesh/gl}/egl/GrGLMakeEGLInterface.h +2 -2
  97. package/cpp/skia/include/gpu/ganesh/gl/epoxy/GrGLMakeEpoxyEGLInterface.h +20 -0
  98. package/cpp/skia/include/gpu/ganesh/gl/ios/GrGLMakeIOSInterface.h +20 -0
  99. package/cpp/skia/include/gpu/ganesh/gl/mac/GrGLMakeMacInterface.h +20 -0
  100. package/cpp/skia/include/gpu/ganesh/gl/win/GrGLMakeWinInterface.h +20 -0
  101. package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +166 -0
  102. package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlBackendContext.h +2 -2
  103. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSemaphore.h +23 -0
  104. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendSurface.h +44 -0
  105. package/cpp/skia/include/gpu/ganesh/mtl/GrMtlDirectContext.h +30 -0
  106. package/cpp/skia/include/gpu/{mtl → ganesh/mtl}/GrMtlTypes.h +1 -3
  107. package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +2 -2
  108. package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +2 -2
  109. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +1 -1
  110. package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSurface.h +7 -3
  111. package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +6 -3
  112. package/cpp/skia/include/gpu/ganesh/vk/GrVkTypes.h +101 -0
  113. package/cpp/skia/include/gpu/gl/GrGLAssembleHelpers.h +2 -9
  114. package/cpp/skia/include/gpu/gl/GrGLAssembleInterface.h +2 -38
  115. package/cpp/skia/include/gpu/gl/GrGLConfig.h +2 -73
  116. package/cpp/skia/include/gpu/gl/GrGLExtensions.h +2 -72
  117. package/cpp/skia/include/gpu/gl/GrGLFunctions.h +2 -301
  118. package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -332
  119. package/cpp/skia/include/gpu/gl/GrGLTypes.h +2 -213
  120. package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +20 -41
  121. package/cpp/skia/include/gpu/graphite/BackendTexture.h +18 -118
  122. package/cpp/skia/include/gpu/graphite/Context.h +122 -44
  123. package/cpp/skia/include/gpu/graphite/ContextOptions.h +30 -3
  124. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +45 -17
  125. package/cpp/skia/include/gpu/graphite/Image.h +56 -54
  126. package/cpp/skia/include/gpu/graphite/Recorder.h +68 -14
  127. package/cpp/skia/include/gpu/graphite/Recording.h +3 -3
  128. package/cpp/skia/include/gpu/graphite/Surface.h +6 -2
  129. package/cpp/skia/include/gpu/graphite/TextureInfo.h +36 -117
  130. package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +108 -6
  131. package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +4 -1
  132. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +41 -25
  133. package/cpp/skia/include/gpu/graphite/precompile/PaintOptions.h +197 -0
  134. package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +48 -0
  135. package/cpp/skia/include/gpu/graphite/precompile/PrecompileBase.h +84 -0
  136. package/cpp/skia/include/gpu/graphite/precompile/PrecompileBlender.h +56 -0
  137. package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +85 -0
  138. package/cpp/skia/include/gpu/graphite/precompile/PrecompileImageFilter.h +119 -0
  139. package/cpp/skia/include/gpu/graphite/precompile/PrecompileMaskFilter.h +51 -0
  140. package/cpp/skia/include/gpu/graphite/precompile/PrecompileRuntimeEffect.h +47 -0
  141. package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +170 -0
  142. package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +24 -2
  143. package/cpp/skia/include/gpu/mock/GrMockTypes.h +2 -157
  144. package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +2 -0
  145. package/cpp/skia/include/gpu/vk/GrVkTypes.h +2 -101
  146. package/cpp/skia/include/gpu/vk/VulkanBackendContext.h +13 -8
  147. package/cpp/skia/include/gpu/vk/VulkanExtensions.h +9 -3
  148. package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +4 -1
  149. package/cpp/skia/include/gpu/vk/VulkanTypes.h +25 -8
  150. package/cpp/skia/include/ports/SkFontMgr_Fontations.h +20 -0
  151. package/cpp/skia/include/ports/SkFontMgr_android.h +7 -0
  152. package/cpp/skia/include/ports/SkImageGeneratorCG.h +3 -1
  153. package/cpp/skia/include/ports/SkTypeface_win.h +0 -17
  154. package/cpp/skia/include/private/SkEncodedInfo.h +8 -2
  155. package/cpp/skia/include/private/SkExif.h +28 -75
  156. package/cpp/skia/include/private/SkGainmapInfo.h +47 -7
  157. package/cpp/skia/include/private/SkJpegMetadataDecoder.h +12 -0
  158. package/cpp/skia/include/private/SkPathRef.h +52 -44
  159. package/cpp/skia/include/private/SkXmp.h +13 -4
  160. package/cpp/skia/include/private/base/SkASAN.h +56 -0
  161. package/cpp/skia/include/private/base/SkAlign.h +5 -0
  162. package/cpp/skia/include/private/base/SkContainers.h +10 -2
  163. package/cpp/skia/include/private/base/SkFeatures.h +22 -1
  164. package/cpp/skia/include/private/base/SkFloatingPoint.h +51 -65
  165. package/cpp/skia/include/private/base/SkMacros.h +67 -0
  166. package/cpp/skia/include/private/base/SkMalloc.h +8 -0
  167. package/cpp/skia/include/private/base/SkPoint_impl.h +2 -11
  168. package/cpp/skia/include/private/base/SkTArray.h +108 -23
  169. package/cpp/skia/include/private/base/SkTFitsIn.h +1 -12
  170. package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +1 -1
  171. package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +0 -39
  172. package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +1 -1
  173. package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +3 -3
  174. package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -4
  175. package/cpp/skia/include/private/chromium/Slug.h +5 -11
  176. package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
  177. package/cpp/skia/include/private/gpu/ganesh/GrD3DTypesMinimal.h +2 -2
  178. package/cpp/skia/include/private/gpu/ganesh/GrTextureGenerator.h +1 -1
  179. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +21 -93
  180. package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +2 -2
  181. package/cpp/skia/include/utils/SkCustomTypeface.h +1 -0
  182. package/cpp/skia/include/utils/SkNWayCanvas.h +1 -1
  183. package/cpp/skia/include/utils/SkParse.h +0 -1
  184. package/cpp/skia/modules/skcms/src/Transform_inl.h +59 -56
  185. package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -0
  186. package/cpp/skia/modules/skcms/src/skcms_internals.h +2 -0
  187. package/cpp/skia/modules/skcms/src/skcms_public.h +46 -14
  188. package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +15 -1
  189. package/cpp/skia/modules/skparagraph/include/TextStyle.h +2 -2
  190. package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +2 -4
  191. package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
  192. package/cpp/skia/modules/skshaper/include/SkShaper.h +316 -0
  193. package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +19 -0
  194. package/cpp/skia/modules/skshaper/include/SkShaper_factory.h +41 -0
  195. package/cpp/skia/modules/skshaper/include/SkShaper_harfbuzz.h +39 -0
  196. package/cpp/skia/modules/skshaper/include/SkShaper_skunicode.h +28 -0
  197. package/cpp/skia/modules/skunicode/include/SkUnicode.h +6 -23
  198. package/cpp/skia/modules/svg/include/SkSVGAttribute.h +0 -3
  199. package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +12 -2
  200. package/cpp/skia/modules/svg/include/SkSVGCircle.h +13 -0
  201. package/cpp/skia/modules/svg/include/SkSVGClipPath.h +6 -0
  202. package/cpp/skia/modules/svg/include/SkSVGContainer.h +17 -1
  203. package/cpp/skia/modules/svg/include/SkSVGDOM.h +25 -15
  204. package/cpp/skia/modules/svg/include/SkSVGEllipse.h +13 -2
  205. package/cpp/skia/modules/svg/include/SkSVGFe.h +11 -2
  206. package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +9 -0
  207. package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +9 -0
  208. package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +82 -0
  209. package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +10 -1
  210. package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +10 -0
  211. package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +10 -0
  212. package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +9 -0
  213. package/cpp/skia/modules/svg/include/SkSVGFeImage.h +9 -0
  214. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +5 -0
  215. package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +11 -0
  216. package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +63 -0
  217. package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +8 -0
  218. package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +9 -0
  219. package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +9 -0
  220. package/cpp/skia/modules/svg/include/SkSVGFilter.h +9 -0
  221. package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +3 -3
  222. package/cpp/skia/modules/svg/include/SkSVGGradient.h +10 -2
  223. package/cpp/skia/modules/svg/include/SkSVGImage.h +9 -0
  224. package/cpp/skia/modules/svg/include/SkSVGLine.h +11 -0
  225. package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +10 -0
  226. package/cpp/skia/modules/svg/include/SkSVGMask.h +6 -0
  227. package/cpp/skia/modules/svg/include/SkSVGNode.h +13 -2
  228. package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +5 -0
  229. package/cpp/skia/modules/svg/include/SkSVGPath.h +10 -0
  230. package/cpp/skia/modules/svg/include/SkSVGPattern.h +5 -0
  231. package/cpp/skia/modules/svg/include/SkSVGPoly.h +11 -0
  232. package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +11 -0
  233. package/cpp/skia/modules/svg/include/SkSVGRect.h +11 -0
  234. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +43 -7
  235. package/cpp/skia/modules/svg/include/SkSVGSVG.h +7 -0
  236. package/cpp/skia/modules/svg/include/SkSVGShape.h +8 -2
  237. package/cpp/skia/modules/svg/include/SkSVGStop.h +5 -3
  238. package/cpp/skia/modules/svg/include/SkSVGText.h +8 -2
  239. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +8 -0
  240. package/cpp/skia/modules/svg/include/SkSVGTypes.h +9 -0
  241. package/cpp/skia/modules/svg/include/SkSVGUse.h +7 -0
  242. package/cpp/skia/src/base/SkMathPriv.h +337 -0
  243. package/cpp/skia/src/base/SkTLazy.h +208 -0
  244. package/cpp/skia/src/core/SkTHash.h +58 -7
  245. package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +3 -0
  246. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +3 -0
  247. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +7 -0
  248. package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +7 -2
  249. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +78 -0
  250. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +20 -4
  251. package/lib/commonjs/renderer/HostConfig.js.map +1 -1
  252. package/lib/commonjs/skia/types/Paragraph/TextStyle.d.ts +2 -2
  253. package/lib/commonjs/skia/types/Paragraph/TextStyle.js.map +1 -1
  254. package/lib/commonjs/skia/types/Skia.d.ts +6 -1
  255. package/lib/commonjs/skia/types/Skia.js.map +1 -1
  256. package/lib/commonjs/skia/web/JsiSkia.js +4 -1
  257. package/lib/commonjs/skia/web/JsiSkia.js.map +1 -1
  258. package/lib/commonjs/web/WithSkiaWeb.d.ts +11 -4
  259. package/lib/commonjs/web/WithSkiaWeb.js +3 -2
  260. package/lib/commonjs/web/WithSkiaWeb.js.map +1 -1
  261. package/lib/module/renderer/HostConfig.js.map +1 -1
  262. package/lib/module/skia/types/Paragraph/TextStyle.d.ts +2 -2
  263. package/lib/module/skia/types/Paragraph/TextStyle.js.map +1 -1
  264. package/lib/module/skia/types/Skia.d.ts +6 -1
  265. package/lib/module/skia/types/Skia.js.map +1 -1
  266. package/lib/module/skia/web/JsiSkia.js +4 -1
  267. package/lib/module/skia/web/JsiSkia.js.map +1 -1
  268. package/lib/module/web/WithSkiaWeb.d.ts +11 -4
  269. package/lib/module/web/WithSkiaWeb.js +3 -2
  270. package/lib/module/web/WithSkiaWeb.js.map +1 -1
  271. package/lib/typescript/lib/commonjs/skia/web/JsiSkia.d.ts +1 -0
  272. package/lib/typescript/lib/commonjs/web/WithSkiaWeb.d.ts +2 -1
  273. package/lib/typescript/lib/module/skia/Skia.web.d.ts +1 -0
  274. package/lib/typescript/lib/module/skia/web/JsiSkia.d.ts +1 -0
  275. package/lib/typescript/lib/module/web/WithSkiaWeb.d.ts +2 -1
  276. package/lib/typescript/src/skia/types/Paragraph/TextStyle.d.ts +2 -2
  277. package/lib/typescript/src/skia/types/Skia.d.ts +6 -1
  278. package/lib/typescript/src/web/WithSkiaWeb.d.ts +11 -4
  279. package/libs/android/arm64-v8a/libskia.a +0 -0
  280. package/libs/android/arm64-v8a/libskottie.a +0 -0
  281. package/libs/android/arm64-v8a/libskparagraph.a +0 -0
  282. package/libs/android/arm64-v8a/libsksg.a +0 -0
  283. package/libs/android/arm64-v8a/libskshaper.a +0 -0
  284. package/libs/android/arm64-v8a/libskunicode_core.a +0 -0
  285. package/libs/android/arm64-v8a/libskunicode_icu.a +0 -0
  286. package/libs/android/arm64-v8a/libsvg.a +0 -0
  287. package/libs/android/armeabi-v7a/libskia.a +0 -0
  288. package/libs/android/armeabi-v7a/libskottie.a +0 -0
  289. package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
  290. package/libs/android/armeabi-v7a/libsksg.a +0 -0
  291. package/libs/android/armeabi-v7a/libskshaper.a +0 -0
  292. package/libs/android/armeabi-v7a/libskunicode_core.a +0 -0
  293. package/libs/android/armeabi-v7a/libskunicode_icu.a +0 -0
  294. package/libs/android/armeabi-v7a/libsvg.a +0 -0
  295. package/libs/android/x86/libskia.a +0 -0
  296. package/libs/android/x86/libskottie.a +0 -0
  297. package/libs/android/x86/libskparagraph.a +0 -0
  298. package/libs/android/x86/libsksg.a +0 -0
  299. package/libs/android/x86/libskshaper.a +0 -0
  300. package/libs/android/x86/libskunicode_core.a +0 -0
  301. package/libs/android/x86/libskunicode_icu.a +0 -0
  302. package/libs/android/x86/libsvg.a +0 -0
  303. package/libs/android/x86_64/libskia.a +0 -0
  304. package/libs/android/x86_64/libskottie.a +0 -0
  305. package/libs/android/x86_64/libskparagraph.a +0 -0
  306. package/libs/android/x86_64/libsksg.a +0 -0
  307. package/libs/android/x86_64/libskshaper.a +0 -0
  308. package/libs/android/x86_64/libskunicode_core.a +0 -0
  309. package/libs/android/x86_64/libskunicode_icu.a +0 -0
  310. package/libs/android/x86_64/libsvg.a +0 -0
  311. package/libs/ios/libskia.xcframework/Info.plist +5 -5
  312. package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
  313. package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
  314. package/libs/ios/libskottie.xcframework/Info.plist +5 -5
  315. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
  316. package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
  317. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
  318. package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
  319. package/libs/ios/libsksg.xcframework/Info.plist +5 -5
  320. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
  321. package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
  322. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
  323. package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
  324. package/libs/ios/libsvg.xcframework/Info.plist +5 -5
  325. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
  326. package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
  327. package/package.json +3 -5
  328. package/react-native-skia.podspec +2 -1
  329. package/src/renderer/HostConfig.ts +5 -1
  330. package/src/renderer/__tests__/e2e/ImageFilters.spec.tsx +5 -2
  331. package/src/renderer/__tests__/e2e/Paths.spec.tsx +12 -5
  332. package/src/renderer/__tests__/e2e/SDF.spec.tsx +1 -1
  333. package/src/renderer/__tests__/e2e/Snapshot.spec.tsx +1 -1
  334. package/src/skia/types/Paragraph/TextStyle.ts +2 -2
  335. package/src/skia/types/Skia.ts +7 -1
  336. package/src/skia/web/JsiSkia.ts +3 -0
  337. package/src/web/WithSkiaWeb.tsx +17 -6
  338. package/cpp/skia/include/core/SkDrawLooper.h +0 -135
  339. package/cpp/skia/include/effects/SkBlurDrawLooper.h +0 -26
  340. package/cpp/skia/include/effects/SkLayerDrawLooper.h +0 -161
  341. package/cpp/skia/include/gpu/gl/GrGLConfig_chrome.h +0 -14
  342. package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +0 -84
  343. package/cpp/skia/include/gpu/vk/GrVkExtensions.h +0 -15
  344. package/cpp/skia/include/gpu/vk/GrVkMemoryAllocator.h +0 -15
  345. package/cpp/skia/include/ports/SkFontMgr_indirect.h +0 -102
  346. package/cpp/skia/include/ports/SkRemotableFontMgr.h +0 -139
  347. package/cpp/skia/include/private/base/SkFloatBits.h +0 -90
  348. package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +0 -69
  349. package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +0 -54
  350. package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +0 -95
  351. package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +0 -83
  352. package/cpp/skia/src/core/SkPathEnums.h +0 -25
  353. package/cpp/skia/src/core/SkPathPriv.h +0 -540
  354. package/libs/android/arm64-v8a/libskunicode.a +0 -0
  355. package/libs/android/armeabi-v7a/libskunicode.a +0 -0
  356. package/libs/android/x86/libskunicode.a +0 -0
  357. package/libs/android/x86_64/libskunicode.a +0 -0
  358. package/libs/ios/libskunicode.xcframework/Info.plist +0 -46
  359. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
  360. package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
  361. /package/cpp/skia/include/gpu/{gl → ganesh/gl}/glx/GrGLMakeGLXInterface.h +0 -0
@@ -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"