@shopify/react-native-skia 1.3.13 → 1.4.1

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