@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,371 +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 GrContextOptions_DEFINED
9
- #define GrContextOptions_DEFINED
10
-
11
- #include "include/core/SkData.h"
12
- #include "include/core/SkString.h"
13
- #include "include/core/SkTypes.h"
14
- #include "include/gpu/GrDriverBugWorkarounds.h"
15
- #include "include/gpu/GrTypes.h"
16
- #include "include/gpu/ShaderErrorHandler.h"
17
- #include "include/private/gpu/ganesh/GrTypesPriv.h"
18
-
19
- #include <vector>
20
-
21
- class SkExecutor;
22
-
23
- struct SK_API GrContextOptions {
24
- enum class Enable {
25
- /** Forces an option to be disabled. */
26
- kNo,
27
- /** Forces an option to be enabled. */
28
- kYes,
29
- /**
30
- * Uses Skia's default behavior, which may use runtime properties (e.g. driver version).
31
- */
32
- kDefault
33
- };
34
-
35
- enum class ShaderCacheStrategy {
36
- kSkSL,
37
- kBackendSource,
38
- kBackendBinary,
39
- };
40
-
41
- /**
42
- * Abstract class which stores Skia data in a cache that persists between sessions. Currently,
43
- * Skia stores compiled shader binaries (only when glProgramBinary / glGetProgramBinary are
44
- * supported) when provided a persistent cache, but this may extend to other data in the future.
45
- */
46
- class SK_API PersistentCache {
47
- public:
48
- virtual ~PersistentCache() = default;
49
-
50
- /**
51
- * Returns the data for the key if it exists in the cache, otherwise returns null.
52
- */
53
- virtual sk_sp<SkData> load(const SkData& key) = 0;
54
-
55
- // Placeholder until all clients override the 3-parameter store(), then remove this, and
56
- // make that version pure virtual.
57
- virtual void store(const SkData& /*key*/, const SkData& /*data*/) { SkASSERT(false); }
58
-
59
- /**
60
- * Stores data in the cache, indexed by key. description provides a human-readable
61
- * version of the key.
62
- */
63
- virtual void store(const SkData& key, const SkData& data, const SkString& /*description*/) {
64
- this->store(key, data);
65
- }
66
-
67
- protected:
68
- PersistentCache() = default;
69
- PersistentCache(const PersistentCache&) = delete;
70
- PersistentCache& operator=(const PersistentCache&) = delete;
71
- };
72
-
73
- using ShaderErrorHandler = skgpu::ShaderErrorHandler;
74
-
75
- GrContextOptions() {}
76
-
77
- // Suppress prints for the GrContext.
78
- bool fSuppressPrints = false;
79
-
80
- /**
81
- * Controls whether we check for GL errors after functions that allocate resources (e.g.
82
- * glTexImage2D), at the end of a GPU submission, or checking framebuffer completeness. The
83
- * results of shader compilation and program linking are always checked, regardless of this
84
- * option. Ignored on backends other than GL.
85
- */
86
- Enable fSkipGLErrorChecks = Enable::kDefault;
87
-
88
- /** Overrides: These options override feature detection using backend API queries. These
89
- overrides can only reduce the feature set or limits, never increase them beyond the
90
- detected values. */
91
-
92
- int fMaxTextureSizeOverride = SK_MaxS32;
93
-
94
- /** the threshold in bytes above which we will use a buffer mapping API to map vertex and index
95
- buffers to CPU memory in order to update them. A value of -1 means the GrContext should
96
- deduce the optimal value for this platform. */
97
- int fBufferMapThreshold = -1;
98
-
99
- /** Default minimum size to use when allocating buffers for uploading data to textures. The
100
- larger the value the more uploads can be packed into one buffer, but at the cost of
101
- more gpu memory allocated that may not be used. Uploads larger than the minimum will still
102
- work by allocating a dedicated buffer. */
103
- size_t fMinimumStagingBufferSize = 64 * 1024;
104
-
105
- /**
106
- * Executor to handle threaded work within Ganesh. If this is nullptr, then all work will be
107
- * done serially on the main thread. To have worker threads assist with various tasks, set this
108
- * to a valid SkExecutor instance. Currently, used for software path rendering, but may be used
109
- * for other tasks.
110
- */
111
- SkExecutor* fExecutor = nullptr;
112
-
113
- /** Construct mipmaps manually, via repeated downsampling draw-calls. This is used when
114
- the driver's implementation (glGenerateMipmap) contains bugs. This requires mipmap
115
- level control (ie desktop or ES3). */
116
- bool fDoManualMipmapping = false;
117
-
118
- /**
119
- * Disables the use of coverage counting shortcuts to render paths. Coverage counting can cause
120
- * artifacts along shared edges if care isn't taken to ensure both contours wind in the same
121
- * direction.
122
- */
123
- // FIXME: Once this is removed from Chrome and Android, rename to fEnable"".
124
- bool fDisableCoverageCountingPaths = true;
125
-
126
- /**
127
- * Disables distance field rendering for paths. Distance field computation can be expensive,
128
- * and yields no benefit if a path is not rendered multiple times with different transforms.
129
- */
130
- bool fDisableDistanceFieldPaths = false;
131
-
132
- /**
133
- * If true this allows path mask textures to be cached. This is only really useful if paths
134
- * are commonly rendered at the same scale and fractional translation.
135
- */
136
- bool fAllowPathMaskCaching = true;
137
-
138
- /**
139
- * If true, the GPU will not be used to perform YUV -> RGB conversion when generating
140
- * textures from codec-backed images.
141
- */
142
- bool fDisableGpuYUVConversion = false;
143
-
144
- /**
145
- * The maximum size of cache textures used for Skia's Glyph cache.
146
- */
147
- size_t fGlyphCacheTextureMaximumBytes = 2048 * 1024 * 4;
148
-
149
- /**
150
- * Below this threshold size in device space distance field fonts won't be used. Distance field
151
- * fonts don't support hinting which is more important at smaller sizes.
152
- */
153
- float fMinDistanceFieldFontSize = 18;
154
-
155
- /**
156
- * Above this threshold size in device space glyphs are drawn as individual paths.
157
- */
158
- #if defined(SK_BUILD_FOR_ANDROID)
159
- float fGlyphsAsPathsFontSize = 384;
160
- #elif defined(SK_BUILD_FOR_MAC)
161
- float fGlyphsAsPathsFontSize = 256;
162
- #else
163
- float fGlyphsAsPathsFontSize = 324;
164
- #endif
165
-
166
- /**
167
- * Can the glyph atlas use multiple textures. If allowed, the each texture's size is bound by
168
- * fGlypheCacheTextureMaximumBytes.
169
- */
170
- Enable fAllowMultipleGlyphCacheTextures = Enable::kDefault;
171
-
172
- /**
173
- * Bugs on certain drivers cause stencil buffers to leak. This flag causes Skia to avoid
174
- * allocating stencil buffers and use alternate rasterization paths, avoiding the leak.
175
- */
176
- bool fAvoidStencilBuffers = false;
177
-
178
- /**
179
- * Enables driver workaround to use draws instead of HW clears, e.g. glClear on the GL backend.
180
- */
181
- Enable fUseDrawInsteadOfClear = Enable::kDefault;
182
-
183
- /**
184
- * Allow Ganesh to more aggressively reorder operations to reduce the number of render passes.
185
- * Offscreen draws will be done upfront instead of interrupting the main render pass when
186
- * possible. May increase VRAM usage, but still observes the resource cache limit.
187
- * Enabled by default.
188
- */
189
- Enable fReduceOpsTaskSplitting = Enable::kDefault;
190
-
191
- /**
192
- * Some ES3 contexts report the ES2 external image extension, but not the ES3 version.
193
- * If support for external images is critical, enabling this option will cause Ganesh to limit
194
- * shaders to the ES2 shading language in that situation.
195
- */
196
- bool fPreferExternalImagesOverES3 = false;
197
-
198
- /**
199
- * Disables correctness workarounds that are enabled for particular GPUs, OSes, or drivers.
200
- * This does not affect code path choices that are made for perfomance reasons nor does it
201
- * override other GrContextOption settings.
202
- */
203
- bool fDisableDriverCorrectnessWorkarounds = false;
204
-
205
- /**
206
- * Maximum number of GPU programs or pipelines to keep active in the runtime cache.
207
- */
208
- int fRuntimeProgramCacheSize = 256;
209
-
210
- /**
211
- * Cache in which to store compiled shader binaries between runs.
212
- */
213
- PersistentCache* fPersistentCache = nullptr;
214
-
215
- /**
216
- * This affects the usage of the PersistentCache. We can cache SkSL, backend source (GLSL), or
217
- * backend binaries (GL program binaries). By default we cache binaries, but if the driver's
218
- * binary loading/storing is believed to have bugs, this can be limited to caching GLSL.
219
- * Caching GLSL strings still saves CPU work when a GL program is created.
220
- */
221
- ShaderCacheStrategy fShaderCacheStrategy = ShaderCacheStrategy::kBackendBinary;
222
-
223
- /**
224
- * If present, use this object to report shader compilation failures. If not, report failures
225
- * via SkDebugf and assert.
226
- */
227
- ShaderErrorHandler* fShaderErrorHandler = nullptr;
228
-
229
- /**
230
- * Specifies the number of samples Ganesh should use when performing internal draws with MSAA
231
- * (hardware capabilities permitting).
232
- *
233
- * If 0, Ganesh will disable internal code paths that use multisampling.
234
- */
235
- int fInternalMultisampleCount = 4;
236
-
237
- /**
238
- * In Skia's vulkan backend a single GrContext submit equates to the submission of a single
239
- * primary command buffer to the VkQueue. This value specifies how many vulkan secondary command
240
- * buffers we will cache for reuse on a given primary command buffer. A single submit may use
241
- * more than this many secondary command buffers, but after the primary command buffer is
242
- * finished on the GPU it will only hold on to this many secondary command buffers for reuse.
243
- *
244
- * A value of -1 means we will pick a limit value internally.
245
- */
246
- int fMaxCachedVulkanSecondaryCommandBuffers = -1;
247
-
248
- /**
249
- * If true, the caps will never support mipmaps.
250
- */
251
- bool fSuppressMipmapSupport = false;
252
-
253
- /**
254
- * If true, the TessellationPathRenderer will not be used for path rendering.
255
- * If false, will fallback to any driver workarounds, if set.
256
- */
257
- bool fDisableTessellationPathRenderer = false;
258
-
259
- /**
260
- * If true, and if supported, enables hardware tessellation in the caps.
261
- * DEPRECATED: This value is ignored; experimental hardware tessellation is always disabled.
262
- */
263
- bool fEnableExperimentalHardwareTessellation = false;
264
-
265
- /**
266
- * If true, then add 1 pixel padding to all glyph masks in the atlas to support bi-lerp
267
- * rendering of all glyphs. This must be set to true to use Slugs.
268
- */
269
- bool fSupportBilerpFromGlyphAtlas = false;
270
-
271
- /**
272
- * Uses a reduced variety of shaders. May perform less optimally in steady state but can reduce
273
- * jank due to shader compilations.
274
- */
275
- bool fReducedShaderVariations = false;
276
-
277
- /**
278
- * If true, then allow to enable MSAA on new Intel GPUs.
279
- */
280
- bool fAllowMSAAOnNewIntel = false;
281
-
282
- /**
283
- * Currently on ARM Android we disable the use of GL TexStorage because of memory regressions.
284
- * However, some clients may still want to use TexStorage. For example, TexStorage support is
285
- * required for creating protected textures.
286
- *
287
- * This flag has no impact on non GL backends.
288
- */
289
- bool fAlwaysUseTexStorageWhenAvailable = false;
290
-
291
- /**
292
- * Optional callback that can be passed into the GrDirectContext which will be called when the
293
- * GrDirectContext is about to be destroyed. When this call is made, it will be safe for the
294
- * client to delete the GPU backend context that is backing the GrDirectContext. The
295
- * GrDirectContextDestroyedContext will be passed back to the client in the callback.
296
- */
297
- GrDirectContextDestroyedContext fContextDeleteContext = nullptr;
298
- GrDirectContextDestroyedProc fContextDeleteProc = nullptr;
299
-
300
- #if defined(GR_TEST_UTILS)
301
- /**
302
- * Private options that are only meant for testing within Skia's tools.
303
- */
304
-
305
- /**
306
- * Testing-only mode to exercise allocation failures in the flush-time callback objects.
307
- * For now it only simulates allocation failure during the preFlush callback.
308
- */
309
- bool fFailFlushTimeCallbacks = false;
310
-
311
- /**
312
- * Prevents use of dual source blending, to test that all xfer modes work correctly without it.
313
- */
314
- bool fSuppressDualSourceBlending = false;
315
-
316
- /**
317
- * Prevents the use of non-coefficient-based blend equations, for testing dst reads, barriers,
318
- * and in-shader blending.
319
- */
320
- bool fSuppressAdvancedBlendEquations = false;
321
-
322
- /**
323
- * Prevents the use of framebuffer fetches, for testing dst reads and texture barriers.
324
- */
325
- bool fSuppressFramebufferFetch = false;
326
-
327
- /**
328
- * If true, then all paths are processed as if "setIsVolatile" had been called.
329
- */
330
- bool fAllPathsVolatile = false;
331
-
332
- /**
333
- * Render everything in wireframe
334
- */
335
- bool fWireframeMode = false;
336
-
337
- /**
338
- * Enforces clearing of all textures when they're created.
339
- */
340
- bool fClearAllTextures = false;
341
-
342
- /**
343
- * Randomly generate a (false) GL_OUT_OF_MEMORY error
344
- */
345
- bool fRandomGLOOM = false;
346
-
347
- /**
348
- * Force off support for write/transfer pixels row bytes in caps.
349
- */
350
- bool fDisallowWriteAndTransferPixelRowBytes = false;
351
-
352
- /**
353
- * Include or exclude specific GPU path renderers.
354
- */
355
- GpuPathRenderers fGpuPathRenderers = GpuPathRenderers::kDefault;
356
-
357
- /**
358
- * Specify the GPU resource cache limit. Equivalent to calling `setResourceCacheLimit` on the
359
- * context at construction time.
360
- *
361
- * A value of -1 means use the default limit value.
362
- */
363
- int fResourceCacheLimitOverride = -1;
364
-
365
- /**
366
- * Maximum width and height of internal texture atlases.
367
- */
368
- int fMaxTextureAtlasSize = 2048;
369
- #endif
370
-
371
- GrDriverBugWorkarounds fDriverBugWorkarounds;
372
- };
373
-
374
- #endif
7
+ // TODO(kjlubick, egdaniel) Delete this after migrating clients.
8
+ #include "include/gpu/ganesh/GrContextOptions.h"
@@ -4,182 +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 GrContextThreadSafeProxy_DEFINED
9
- #define GrContextThreadSafeProxy_DEFINED
10
-
11
- #include "include/core/SkImageInfo.h"
12
- #include "include/core/SkRefCnt.h"
13
- #include "include/gpu/GpuTypes.h"
14
- #include "include/gpu/GrContextOptions.h"
15
- #include "include/gpu/GrTypes.h"
16
-
17
- #include <atomic>
18
-
19
- class GrBackendFormat;
20
- class GrCaps;
21
- class GrContextThreadSafeProxyPriv;
22
- class GrSurfaceCharacterization;
23
- class GrThreadSafeCache;
24
- class GrThreadSafePipelineBuilder;
25
- class SkSurfaceProps;
26
- enum class SkTextureCompressionType;
27
-
28
- namespace sktext::gpu { class TextBlobRedrawCoordinator; }
29
-
30
- /**
31
- * Can be used to perform actions related to the generating GrContext in a thread safe manner. The
32
- * proxy does not access the 3D API (e.g. OpenGL) that backs the generating GrContext.
33
- */
34
- class SK_API GrContextThreadSafeProxy : public SkNVRefCnt<GrContextThreadSafeProxy> {
35
- public:
36
- virtual ~GrContextThreadSafeProxy();
37
-
38
- /**
39
- * Create a surface characterization for a DDL that will be replayed into the GrContext
40
- * that created this proxy. On failure the resulting characterization will be invalid (i.e.,
41
- * "!c.isValid()").
42
- *
43
- * @param cacheMaxResourceBytes The max resource bytes limit that will be in effect
44
- * when the DDL created with this characterization is
45
- * replayed.
46
- * Note: the contract here is that the DDL will be
47
- * created as if it had a full 'cacheMaxResourceBytes'
48
- * to use. If replayed into a GrContext that already has
49
- * locked GPU memory, the replay can exceed the budget.
50
- * To rephrase, all resource allocation decisions are
51
- * made at record time and at playback time the budget
52
- * limits will be ignored.
53
- * @param ii The image info specifying properties of the SkSurface
54
- * that the DDL created with this characterization will
55
- * be replayed into.
56
- * Note: Ganesh doesn't make use of the SkImageInfo's
57
- * alphaType
58
- * @param backendFormat Information about the format of the GPU surface that
59
- * will back the SkSurface upon replay
60
- * @param sampleCount The sample count of the SkSurface that the DDL
61
- * created with this characterization will be replayed
62
- * into
63
- * @param origin The origin of the SkSurface that the DDL created with
64
- * this characterization will be replayed into
65
- * @param surfaceProps The surface properties of the SkSurface that the DDL
66
- * created with this characterization will be replayed
67
- * into
68
- * @param isMipmapped Will the surface the DDL will be replayed into have
69
- * space allocated for mipmaps?
70
- * @param willUseGLFBO0 Will the surface the DDL will be replayed into be
71
- * backed by GL FBO 0. This flag is only valid if using
72
- * an GL backend.
73
- * @param isTextureable Will the surface be able to act as a texture?
74
- * @param isProtected Will the (Vulkan) surface be DRM protected?
75
- * @param vkRTSupportsInputAttachment Can the vulkan surface be used as in input
76
- attachment?
77
- * @param forVulkanSecondaryCommandBuffer Will the surface be wrapping a vulkan secondary
78
- * command buffer via a GrVkSecondaryCBDrawContext? If
79
- * this is true then the following is required:
80
- * isTexureable = false
81
- * isMipmapped = false
82
- * willUseGLFBO0 = false
83
- * vkRTSupportsInputAttachment = false
84
- */
85
- GrSurfaceCharacterization createCharacterization(
86
- size_t cacheMaxResourceBytes,
87
- const SkImageInfo& ii,
88
- const GrBackendFormat& backendFormat,
89
- int sampleCount,
90
- GrSurfaceOrigin origin,
91
- const SkSurfaceProps& surfaceProps,
92
- skgpu::Mipmapped isMipmapped,
93
- bool willUseGLFBO0 = false,
94
- bool isTextureable = true,
95
- skgpu::Protected isProtected = GrProtected::kNo,
96
- bool vkRTSupportsInputAttachment = false,
97
- bool forVulkanSecondaryCommandBuffer = false);
98
-
99
- #if !defined(SK_DISABLE_LEGACY_CREATE_CHARACTERIZATION)
100
- GrSurfaceCharacterization createCharacterization(
101
- size_t cacheMaxResourceBytes,
102
- const SkImageInfo& ii,
103
- const GrBackendFormat& backendFormat,
104
- int sampleCount,
105
- GrSurfaceOrigin origin,
106
- const SkSurfaceProps& surfaceProps,
107
- bool isMipmapped,
108
- bool willUseGLFBO0 = false,
109
- bool isTextureable = true,
110
- skgpu::Protected isProtected = GrProtected::kNo,
111
- bool vkRTSupportsInputAttachment = false,
112
- bool forVulkanSecondaryCommandBuffer = false);
113
- #endif
114
- /*
115
- * Retrieve the default GrBackendFormat for a given SkColorType and renderability.
116
- * It is guaranteed that this backend format will be the one used by the following
117
- * SkColorType and GrSurfaceCharacterization-based createBackendTexture methods.
118
- *
119
- * The caller should check that the returned format is valid.
120
- */
121
- GrBackendFormat defaultBackendFormat(SkColorType ct, GrRenderable renderable) const;
122
-
123
- /**
124
- * Retrieve the GrBackendFormat for a given SkTextureCompressionType. This is
125
- * guaranteed to match the backend format used by the following
126
- * createCompressedBackendTexture methods that take a CompressionType.
127
- *
128
- * The caller should check that the returned format is valid.
129
- */
130
- GrBackendFormat compressedBackendFormat(SkTextureCompressionType c) const;
131
-
132
- /**
133
- * Gets the maximum supported sample count for a color type. 1 is returned if only non-MSAA
134
- * rendering is supported for the color type. 0 is returned if rendering to this color type
135
- * is not supported at all.
136
- */
137
- int maxSurfaceSampleCountForColorType(SkColorType colorType) const;
138
-
139
- bool isValid() const { return nullptr != fCaps; }
140
-
141
- bool operator==(const GrContextThreadSafeProxy& that) const {
142
- // Each GrContext should only ever have a single thread-safe proxy.
143
- SkASSERT((this == &that) == (this->fContextID == that.fContextID));
144
- return this == &that;
145
- }
146
-
147
- bool operator!=(const GrContextThreadSafeProxy& that) const { return !(*this == that); }
148
-
149
- // Provides access to functions that aren't part of the public API.
150
- GrContextThreadSafeProxyPriv priv();
151
- const GrContextThreadSafeProxyPriv priv() const; // NOLINT(readability-const-return-type)
152
-
153
- protected:
154
- // DDL TODO: need to add unit tests for backend & maybe options
155
- GrContextThreadSafeProxy(GrBackendApi, const GrContextOptions&);
156
-
157
- private:
158
- friend class GrContextThreadSafeProxyPriv; // for ctor and hidden methods
159
-
160
- void abandonContext();
161
- bool abandoned() const;
162
-
163
- // TODO: This should be part of the constructor but right now we have a chicken-and-egg problem
164
- // with GrContext where we get the caps by creating a GPU which requires a context (see the
165
- // `init` method on GrContext_Base).
166
- void init(sk_sp<const GrCaps>, sk_sp<GrThreadSafePipelineBuilder>);
167
-
168
- virtual bool isValidCharacterizationForVulkan(sk_sp<const GrCaps>,
169
- bool isTextureable,
170
- skgpu::Mipmapped isMipmapped,
171
- skgpu::Protected isProtected,
172
- bool vkRTSupportsInputAttachment,
173
- bool forVulkanSecondaryCommandBuffer);
174
-
175
- const GrBackendApi fBackend;
176
- const GrContextOptions fOptions;
177
- const uint32_t fContextID;
178
- sk_sp<const GrCaps> fCaps;
179
- std::unique_ptr<sktext::gpu::TextBlobRedrawCoordinator> fTextBlobRedrawCoordinator;
180
- std::unique_ptr<GrThreadSafeCache> fThreadSafeCache;
181
- sk_sp<GrThreadSafePipelineBuilder> fPipelineBuilder;
182
- std::atomic<bool> fAbandoned{false};
183
- };
184
-
185
- #endif
7
+ // TODO(kjlubick, egdaniel) Delete this after migrating clients.
8
+ #include "include/gpu/ganesh/GrContextThreadSafeProxy.h"