@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
@@ -0,0 +1,130 @@
1
+ /*
2
+ * Copyright 2020 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef GrYUVABackendTextures_DEFINED
9
+ #define GrYUVABackendTextures_DEFINED
10
+
11
+ #include "include/core/SkTypes.h"
12
+ #include "include/core/SkYUVAInfo.h"
13
+ #include "include/gpu/GpuTypes.h"
14
+ #include "include/gpu/ganesh/GrBackendSurface.h"
15
+ #include "include/gpu/ganesh/GrTypes.h"
16
+
17
+ #include <array>
18
+ #include <cstddef>
19
+
20
+ enum SkYUVColorSpace : int;
21
+
22
+ /**
23
+ * A description of a set GrBackendTextures that hold the planar data described by a SkYUVAInfo.
24
+ */
25
+ class SK_API GrYUVABackendTextureInfo {
26
+ public:
27
+ static constexpr auto kMaxPlanes = SkYUVAInfo::kMaxPlanes;
28
+
29
+ /** Default GrYUVABackendTextureInfo is invalid. */
30
+ GrYUVABackendTextureInfo() = default;
31
+
32
+ /**
33
+ * Initializes a GrYUVABackendTextureInfo to describe a set of textures that can store the
34
+ * planes indicated by the SkYUVAInfo. The texture dimensions are taken from the SkYUVAInfo's
35
+ * plane dimensions. All the described textures share a common origin. The planar image this
36
+ * describes will be mip mapped if all the textures are individually mip mapped as indicated
37
+ * by skgpu::Mipmapped. This will produce an invalid result (return false from isValid()) if the
38
+ * passed formats' channels don't agree with SkYUVAInfo.
39
+ */
40
+ GrYUVABackendTextureInfo(const SkYUVAInfo&,
41
+ const GrBackendFormat[kMaxPlanes],
42
+ skgpu::Mipmapped,
43
+ GrSurfaceOrigin);
44
+
45
+ GrYUVABackendTextureInfo(const GrYUVABackendTextureInfo&) = default;
46
+
47
+ GrYUVABackendTextureInfo& operator=(const GrYUVABackendTextureInfo&) = default;
48
+
49
+ bool operator==(const GrYUVABackendTextureInfo&) const;
50
+ bool operator!=(const GrYUVABackendTextureInfo& that) const { return !(*this == that); }
51
+
52
+ const SkYUVAInfo& yuvaInfo() const { return fYUVAInfo; }
53
+
54
+ SkYUVColorSpace yuvColorSpace() const { return fYUVAInfo.yuvColorSpace(); }
55
+
56
+ skgpu::Mipmapped mipmapped() const { return fMipmapped; }
57
+
58
+ GrSurfaceOrigin textureOrigin() const { return fTextureOrigin; }
59
+
60
+ /** The number of SkPixmap planes, 0 if this GrYUVABackendTextureInfo is invalid. */
61
+ int numPlanes() const { return fYUVAInfo.numPlanes(); }
62
+
63
+ /** Format of the ith plane, or invalid format if i >= numPlanes() */
64
+ const GrBackendFormat& planeFormat(int i) const { return fPlaneFormats[i]; }
65
+
66
+ /**
67
+ * Returns true if this has been configured with a valid SkYUVAInfo with compatible texture
68
+ * formats.
69
+ */
70
+ bool isValid() const { return fYUVAInfo.isValid(); }
71
+
72
+ /**
73
+ * Computes a YUVALocations representation of the planar layout. The result is guaranteed to be
74
+ * valid if this->isValid().
75
+ */
76
+ SkYUVAInfo::YUVALocations toYUVALocations() const;
77
+
78
+ private:
79
+ SkYUVAInfo fYUVAInfo;
80
+ GrBackendFormat fPlaneFormats[kMaxPlanes];
81
+ skgpu::Mipmapped fMipmapped = skgpu::Mipmapped::kNo;
82
+ GrSurfaceOrigin fTextureOrigin = kTopLeft_GrSurfaceOrigin;
83
+ };
84
+
85
+ /**
86
+ * A set of GrBackendTextures that hold the planar data for an image described a SkYUVAInfo.
87
+ */
88
+ class SK_API GrYUVABackendTextures {
89
+ public:
90
+ GrYUVABackendTextures() = default;
91
+ GrYUVABackendTextures(const GrYUVABackendTextures&) = delete;
92
+ GrYUVABackendTextures(GrYUVABackendTextures&&) = default;
93
+
94
+ GrYUVABackendTextures& operator=(const GrYUVABackendTextures&) = delete;
95
+ GrYUVABackendTextures& operator=(GrYUVABackendTextures&&) = default;
96
+
97
+ GrYUVABackendTextures(const SkYUVAInfo&,
98
+ const GrBackendTexture[SkYUVAInfo::kMaxPlanes],
99
+ GrSurfaceOrigin textureOrigin);
100
+
101
+ const std::array<GrBackendTexture, SkYUVAInfo::kMaxPlanes>& textures() const {
102
+ return fTextures;
103
+ }
104
+
105
+ GrBackendTexture texture(int i) const {
106
+ SkASSERT(i >= 0 && i < SkYUVAInfo::kMaxPlanes);
107
+ return fTextures[static_cast<size_t>(i)];
108
+ }
109
+
110
+ const SkYUVAInfo& yuvaInfo() const { return fYUVAInfo; }
111
+
112
+ int numPlanes() const { return fYUVAInfo.numPlanes(); }
113
+
114
+ GrSurfaceOrigin textureOrigin() const { return fTextureOrigin; }
115
+
116
+ bool isValid() const { return fYUVAInfo.isValid(); }
117
+
118
+ /**
119
+ * Computes a YUVALocations representation of the planar layout. The result is guaranteed to be
120
+ * valid if this->isValid().
121
+ */
122
+ SkYUVAInfo::YUVALocations toYUVALocations() const;
123
+
124
+ private:
125
+ SkYUVAInfo fYUVAInfo;
126
+ std::array<GrBackendTexture, SkYUVAInfo::kMaxPlanes> fTextures;
127
+ GrSurfaceOrigin fTextureOrigin = kTopLeft_GrSurfaceOrigin;
128
+ };
129
+
130
+ #endif
@@ -11,7 +11,7 @@
11
11
  #include "include/core/SkImage.h"
12
12
  #include "include/core/SkRefCnt.h"
13
13
  #include "include/gpu/GpuTypes.h"
14
- #include "include/gpu/GrTypes.h"
14
+ #include "include/gpu/ganesh/GrTypes.h"
15
15
  #include "include/private/base/SkAPI.h"
16
16
 
17
17
  #include <functional>
@@ -11,7 +11,7 @@
11
11
  #include "include/core/SkImageInfo.h"
12
12
  #include "include/core/SkRefCnt.h"
13
13
  #include "include/core/SkSurface.h"
14
- #include "include/gpu/GrTypes.h"
14
+ #include "include/gpu/ganesh/GrTypes.h"
15
15
  #include "include/private/base/SkAPI.h"
16
16
 
17
17
  class GrBackendRenderTarget;
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Copyright 2020 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef GrD3DBackendContext_DEFINED
9
+ #define GrD3DBackendContext_DEFINED
10
+
11
+ // GrD3DTypes.h includes d3d12.h, which in turn includes windows.h, which redefines many
12
+ // common identifiers such as:
13
+ // * interface
14
+ // * small
15
+ // * near
16
+ // * far
17
+ // * CreateSemaphore
18
+ // * MemoryBarrier
19
+ //
20
+ // You should only include GrD3DBackendContext.h if you are prepared to rename those identifiers.
21
+ #include "include/gpu/ganesh/d3d/GrD3DTypes.h"
22
+
23
+ #include "include/gpu/ganesh/GrTypes.h"
24
+
25
+ // The BackendContext contains all of the base D3D objects needed by the GrD3DGpu. The assumption
26
+ // is that the client will set these up and pass them to the GrD3DGpu constructor.
27
+ struct SK_API GrD3DBackendContext {
28
+ gr_cp<IDXGIAdapter1> fAdapter;
29
+ gr_cp<ID3D12Device> fDevice;
30
+ gr_cp<ID3D12CommandQueue> fQueue;
31
+ sk_sp<GrD3DMemoryAllocator> fMemoryAllocator;
32
+ GrProtected fProtectedContext = GrProtected::kNo;
33
+ };
34
+
35
+ #endif
@@ -0,0 +1,248 @@
1
+
2
+ /*
3
+ * Copyright 2020 Google LLC
4
+ *
5
+ * Use of this source code is governed by a BSD-style license that can be
6
+ * found in the LICENSE file.
7
+ */
8
+
9
+ #ifndef GrD3DTypes_DEFINED
10
+ #define GrD3DTypes_DEFINED
11
+
12
+ // This file includes d3d12.h, which in turn includes windows.h, which redefines many
13
+ // common identifiers such as:
14
+ // * interface
15
+ // * small
16
+ // * near
17
+ // * far
18
+ // * CreateSemaphore
19
+ // * MemoryBarrier
20
+ //
21
+ // You should only include this header if you need the Direct3D definitions and are
22
+ // prepared to rename those identifiers.
23
+
24
+ #include "include/core/SkRefCnt.h"
25
+ #include "include/gpu/GpuTypes.h"
26
+ #include <d3d12.h>
27
+ #include <dxgi1_4.h>
28
+
29
+ class GrD3DGpu;
30
+
31
+ /** Check if the argument is non-null, and if so, call obj->AddRef() and return obj.
32
+ */
33
+ template <typename T> static inline T* GrSafeComAddRef(T* obj) {
34
+ if (obj) {
35
+ obj->AddRef();
36
+ }
37
+ return obj;
38
+ }
39
+
40
+ /** Check if the argument is non-null, and if so, call obj->Release()
41
+ */
42
+ template <typename T> static inline void GrSafeComRelease(T* obj) {
43
+ if (obj) {
44
+ obj->Release();
45
+ }
46
+ }
47
+
48
+ template <typename T> class gr_cp {
49
+ public:
50
+ using element_type = T;
51
+
52
+ constexpr gr_cp() : fObject(nullptr) {}
53
+ constexpr gr_cp(std::nullptr_t) : fObject(nullptr) {}
54
+
55
+ /**
56
+ * Shares the underlying object by calling AddRef(), so that both the argument and the newly
57
+ * created gr_cp both have a reference to it.
58
+ */
59
+ gr_cp(const gr_cp<T>& that) : fObject(GrSafeComAddRef(that.get())) {}
60
+
61
+ /**
62
+ * Move the underlying object from the argument to the newly created gr_cp. Afterwards only
63
+ * the new gr_cp will have a reference to the object, and the argument will point to null.
64
+ * No call to AddRef() or Release() will be made.
65
+ */
66
+ gr_cp(gr_cp<T>&& that) : fObject(that.release()) {}
67
+
68
+ /**
69
+ * Adopt the bare object into the newly created gr_cp.
70
+ * No call to AddRef() or Release() will be made.
71
+ */
72
+ explicit gr_cp(T* obj) {
73
+ fObject = obj;
74
+ }
75
+
76
+ /**
77
+ * Calls Release() on the underlying object pointer.
78
+ */
79
+ ~gr_cp() {
80
+ GrSafeComRelease(fObject);
81
+ SkDEBUGCODE(fObject = nullptr);
82
+ }
83
+
84
+ /**
85
+ * Shares the underlying object referenced by the argument by calling AddRef() on it. If this
86
+ * gr_cp previously had a reference to an object (i.e. not null) it will call Release()
87
+ * on that object.
88
+ */
89
+ gr_cp<T>& operator=(const gr_cp<T>& that) {
90
+ if (this != &that) {
91
+ this->reset(GrSafeComAddRef(that.get()));
92
+ }
93
+ return *this;
94
+ }
95
+
96
+ /**
97
+ * Move the underlying object from the argument to the gr_cp. If the gr_cp
98
+ * previously held a reference to another object, Release() will be called on that object.
99
+ * No call to AddRef() will be made.
100
+ */
101
+ gr_cp<T>& operator=(gr_cp<T>&& that) {
102
+ this->reset(that.release());
103
+ return *this;
104
+ }
105
+
106
+ explicit operator bool() const { return this->get() != nullptr; }
107
+
108
+ T* get() const { return fObject; }
109
+ T* operator->() const { return fObject; }
110
+ T** operator&() { return &fObject; }
111
+
112
+ /**
113
+ * Adopt the new object, and call Release() on any previously held object (if not null).
114
+ * No call to AddRef() will be made.
115
+ */
116
+ void reset(T* object = nullptr) {
117
+ T* oldObject = fObject;
118
+ fObject = object;
119
+ GrSafeComRelease(oldObject);
120
+ }
121
+
122
+ /**
123
+ * Shares the new object by calling AddRef() on it. If this gr_cp previously had a
124
+ * reference to an object (i.e. not null) it will call Release() on that object.
125
+ */
126
+ void retain(T* object) {
127
+ if (this->fObject != object) {
128
+ this->reset(GrSafeComAddRef(object));
129
+ }
130
+ }
131
+
132
+ /**
133
+ * Return the original object, and set the internal object to nullptr.
134
+ * The caller must assume ownership of the object, and manage its reference count directly.
135
+ * No call to Release() will be made.
136
+ */
137
+ [[nodiscard]] T* release() {
138
+ T* obj = fObject;
139
+ fObject = nullptr;
140
+ return obj;
141
+ }
142
+
143
+ private:
144
+ T* fObject;
145
+ };
146
+
147
+ template <typename T> inline bool operator==(const gr_cp<T>& a,
148
+ const gr_cp<T>& b) {
149
+ return a.get() == b.get();
150
+ }
151
+
152
+ template <typename T> inline bool operator!=(const gr_cp<T>& a,
153
+ const gr_cp<T>& b) {
154
+ return a.get() != b.get();
155
+ }
156
+
157
+ // interface classes for the GPU memory allocator
158
+ class GrD3DAlloc : public SkRefCnt {
159
+ public:
160
+ ~GrD3DAlloc() override = default;
161
+ };
162
+
163
+ class GrD3DMemoryAllocator : public SkRefCnt {
164
+ public:
165
+ virtual gr_cp<ID3D12Resource> createResource(D3D12_HEAP_TYPE, const D3D12_RESOURCE_DESC*,
166
+ D3D12_RESOURCE_STATES initialResourceState,
167
+ sk_sp<GrD3DAlloc>* allocation,
168
+ const D3D12_CLEAR_VALUE*) = 0;
169
+ virtual gr_cp<ID3D12Resource> createAliasingResource(sk_sp<GrD3DAlloc>& allocation,
170
+ uint64_t localOffset,
171
+ const D3D12_RESOURCE_DESC*,
172
+ D3D12_RESOURCE_STATES initialResourceState,
173
+ const D3D12_CLEAR_VALUE*) = 0;
174
+ };
175
+
176
+ // Note: there is no notion of Borrowed or Adopted resources in the D3D backend,
177
+ // so Ganesh will ref fResource once it's asked to wrap it.
178
+ // Clients are responsible for releasing their own ref to avoid memory leaks.
179
+ struct GrD3DTextureResourceInfo {
180
+ gr_cp<ID3D12Resource> fResource = nullptr;
181
+ sk_sp<GrD3DAlloc> fAlloc = nullptr;
182
+ D3D12_RESOURCE_STATES fResourceState = D3D12_RESOURCE_STATE_COMMON;
183
+ DXGI_FORMAT fFormat = DXGI_FORMAT_UNKNOWN;
184
+ uint32_t fSampleCount = 1;
185
+ uint32_t fLevelCount = 0;
186
+ unsigned int fSampleQualityPattern = DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN;
187
+ skgpu::Protected fProtected = skgpu::Protected::kNo;
188
+
189
+ GrD3DTextureResourceInfo() = default;
190
+
191
+ GrD3DTextureResourceInfo(ID3D12Resource* resource,
192
+ const sk_sp<GrD3DAlloc> alloc,
193
+ D3D12_RESOURCE_STATES resourceState,
194
+ DXGI_FORMAT format,
195
+ uint32_t sampleCount,
196
+ uint32_t levelCount,
197
+ unsigned int sampleQualityLevel,
198
+ skgpu::Protected isProtected = skgpu::Protected::kNo)
199
+ : fResource(resource)
200
+ , fAlloc(alloc)
201
+ , fResourceState(resourceState)
202
+ , fFormat(format)
203
+ , fSampleCount(sampleCount)
204
+ , fLevelCount(levelCount)
205
+ , fSampleQualityPattern(sampleQualityLevel)
206
+ , fProtected(isProtected) {}
207
+
208
+ GrD3DTextureResourceInfo(const GrD3DTextureResourceInfo& info,
209
+ D3D12_RESOURCE_STATES resourceState)
210
+ : fResource(info.fResource)
211
+ , fAlloc(info.fAlloc)
212
+ , fResourceState(resourceState)
213
+ , fFormat(info.fFormat)
214
+ , fSampleCount(info.fSampleCount)
215
+ , fLevelCount(info.fLevelCount)
216
+ , fSampleQualityPattern(info.fSampleQualityPattern)
217
+ , fProtected(info.fProtected) {}
218
+
219
+ #if defined(GPU_TEST_UTILS)
220
+ bool operator==(const GrD3DTextureResourceInfo& that) const {
221
+ return fResource == that.fResource && fResourceState == that.fResourceState &&
222
+ fFormat == that.fFormat && fSampleCount == that.fSampleCount &&
223
+ fLevelCount == that.fLevelCount &&
224
+ fSampleQualityPattern == that.fSampleQualityPattern && fProtected == that.fProtected;
225
+ }
226
+ #endif
227
+ };
228
+
229
+ struct GrD3DFenceInfo {
230
+ GrD3DFenceInfo()
231
+ : fFence(nullptr)
232
+ , fValue(0) {
233
+ }
234
+
235
+ gr_cp<ID3D12Fence> fFence;
236
+ uint64_t fValue; // signal value for the fence
237
+ };
238
+
239
+ struct GrD3DSurfaceInfo {
240
+ uint32_t fSampleCount = 1;
241
+ uint32_t fLevelCount = 0;
242
+ skgpu::Protected fProtected = skgpu::Protected::kNo;
243
+
244
+ DXGI_FORMAT fFormat = DXGI_FORMAT_UNKNOWN;
245
+ unsigned int fSampleQualityPattern = DXGI_STANDARD_MULTISAMPLE_QUALITY_PATTERN;
246
+ };
247
+
248
+ #endif
@@ -0,0 +1,17 @@
1
+ /*
2
+ * Copyright 2019 Google LLC
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+ #ifndef GrGLAssembleHelpers_DEFINED
8
+ #define GrGLAssembleHelpers_DEFINED
9
+
10
+ #include "include/gpu/ganesh/gl/GrGLAssembleInterface.h"
11
+ #include "include/gpu/ganesh/gl/GrGLFunctions.h"
12
+ #include "include/gpu/ganesh/gl/GrGLTypes.h"
13
+
14
+ void GrGetEGLQueryAndDisplay(GrEGLQueryStringFn** queryString, GrEGLDisplay* display,
15
+ void* ctx, GrGLGetProc get);
16
+
17
+ #endif // GrGLAssembleHelpers_DEFINED
@@ -0,0 +1,45 @@
1
+ /*
2
+ * Copyright 2014 Google Inc.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+ #ifndef GrGLAssembleInterface_DEFINED
8
+ #define GrGLAssembleInterface_DEFINED
9
+
10
+ #include "include/core/SkRefCnt.h"
11
+ #include "include/gpu/ganesh/gl/GrGLInterface.h"
12
+ #include "include/private/base/SkAPI.h"
13
+
14
+ typedef GrGLFuncPtr (*GrGLGetProc)(void* ctx, const char name[]);
15
+
16
+ /**
17
+ * Generic function for creating a GrGLInterface for an either OpenGL or GLES. It calls
18
+ * get() to get each function address. ctx is a generic ptr passed to and interpreted by get().
19
+ */
20
+ SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledInterface(void *ctx, GrGLGetProc get);
21
+
22
+ /**
23
+ * Generic function for creating a GrGLInterface for an OpenGL (but not GLES) context. It calls
24
+ * get() to get each function address. ctx is a generic ptr passed to and interpreted by get().
25
+ */
26
+ SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledGLInterface(void *ctx, GrGLGetProc get);
27
+
28
+ /**
29
+ * Generic function for creating a GrGLInterface for an OpenGL ES (but not Open GL) context. It
30
+ * calls get() to get each function address. ctx is a generic ptr passed to and interpreted by
31
+ * get().
32
+ */
33
+ SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledGLESInterface(void *ctx, GrGLGetProc get);
34
+
35
+ /**
36
+ * Generic function for creating a GrGLInterface for a WebGL (similar to OpenGL ES) context. It
37
+ * calls get() to get each function address. ctx is a generic ptr passed to and interpreted by
38
+ * get().
39
+ */
40
+ SK_API sk_sp<const GrGLInterface> GrGLMakeAssembledWebGLInterface(void *ctx, GrGLGetProc get);
41
+
42
+ /** Deprecated version of GrGLMakeAssembledInterface() that returns a bare pointer. */
43
+ SK_API const GrGLInterface* GrGLAssembleInterface(void *ctx, GrGLGetProc get);
44
+
45
+ #endif // GrGLAssembleInterface_DEFINED
@@ -8,7 +8,7 @@
8
8
  #ifndef GrGLBackendSurface_DEFINED
9
9
  #define GrGLBackendSurface_DEFINED
10
10
 
11
- #include "include/gpu/gl/GrGLTypes.h"
11
+ #include "include/gpu/ganesh/gl/GrGLTypes.h"
12
12
  #include "include/private/base/SkAPI.h"
13
13
 
14
14
  #include <string_view>
@@ -0,0 +1,69 @@
1
+ /*
2
+ * Copyright 2011 Google Inc.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef GrGLConfig_DEFINED
9
+ #define GrGLConfig_DEFINED
10
+
11
+ #include "include/private/base/SkLoadUserConfig.h"
12
+
13
+ #if !defined(GR_GL_FUNCTION_TYPE)
14
+ #if defined(SK_BUILD_FOR_WIN)
15
+ #define GR_GL_FUNCTION_TYPE __stdcall
16
+ #else
17
+ #define GR_GL_FUNCTION_TYPE
18
+ #endif
19
+ #endif
20
+
21
+ /**
22
+ * The following are optional defines that can be enabled at the compiler
23
+ * command line, in a IDE project, in a GrUserConfig.h file, or in a GL custom
24
+ * file (if one is in use). If a GR_GL_CUSTOM_SETUP_HEADER is used they can
25
+ * also be placed there.
26
+ *
27
+ * GR_GL_LOG_CALLS: if 1 Gr can print every GL call using SkDebugf. Defaults to
28
+ * 0. Logging can be enabled and disabled at runtime using a debugger via to
29
+ * global gLogCallsGL. The initial value of gLogCallsGL is controlled by
30
+ * GR_GL_LOG_CALLS_START.
31
+ *
32
+ * GR_GL_LOG_CALLS_START: controls the initial value of gLogCallsGL when
33
+ * GR_GL_LOG_CALLS is 1. Defaults to 0.
34
+ *
35
+ * GR_GL_CHECK_ERROR: if enabled Gr can do a glGetError() after every GL call.
36
+ * Defaults to 1 if SK_DEBUG is set, otherwise 0. When GR_GL_CHECK_ERROR is 1
37
+ * this can be toggled in a debugger using the gCheckErrorGL global. The initial
38
+ * value of gCheckErrorGL is controlled by by GR_GL_CHECK_ERROR_START.
39
+ *
40
+ * GR_GL_CHECK_ERROR_START: controls the initial value of gCheckErrorGL
41
+ * when GR_GL_CHECK_ERROR is 1. Defaults to 1.
42
+ *
43
+ */
44
+
45
+ #if !defined(GR_GL_LOG_CALLS)
46
+ #ifdef SK_DEBUG
47
+ #define GR_GL_LOG_CALLS 1
48
+ #else
49
+ #define GR_GL_LOG_CALLS 0
50
+ #endif
51
+ #endif
52
+
53
+ #if !defined(GR_GL_LOG_CALLS_START)
54
+ #define GR_GL_LOG_CALLS_START 0
55
+ #endif
56
+
57
+ #if !defined(GR_GL_CHECK_ERROR)
58
+ #ifdef SK_DEBUG
59
+ #define GR_GL_CHECK_ERROR 1
60
+ #else
61
+ #define GR_GL_CHECK_ERROR 0
62
+ #endif
63
+ #endif
64
+
65
+ #if !defined(GR_GL_CHECK_ERROR_START)
66
+ #define GR_GL_CHECK_ERROR_START 1
67
+ #endif
68
+
69
+ #endif
@@ -0,0 +1,79 @@
1
+ /*
2
+ * Copyright 2013 Google Inc.
3
+ *
4
+ * Use of this source code is governed by a BSD-style license that can be
5
+ * found in the LICENSE file.
6
+ */
7
+
8
+ #ifndef GrGLExtensions_DEFINED
9
+ #define GrGLExtensions_DEFINED
10
+
11
+ #include "include/core/SkString.h"
12
+ #include "include/gpu/ganesh/gl/GrGLFunctions.h"
13
+ #include "include/gpu/ganesh/gl/GrGLTypes.h"
14
+ #include "include/private/base/SkAPI.h"
15
+ #include "include/private/base/SkTArray.h"
16
+
17
+ #include <utility>
18
+
19
+ class SkJSONWriter;
20
+
21
+ /**
22
+ * This helper queries the current GL context for its extensions, remembers them, and can be
23
+ * queried. It supports both glGetString- and glGetStringi-style extension string APIs and will
24
+ * use the latter if it is available. It also will query for EGL extensions if a eglQueryString
25
+ * implementation is provided.
26
+ */
27
+ class SK_API GrGLExtensions {
28
+ public:
29
+ GrGLExtensions() {}
30
+
31
+ GrGLExtensions(const GrGLExtensions&);
32
+
33
+ GrGLExtensions& operator=(const GrGLExtensions&);
34
+
35
+ void swap(GrGLExtensions* that) {
36
+ using std::swap;
37
+ swap(fStrings, that->fStrings);
38
+ swap(fInitialized, that->fInitialized);
39
+ }
40
+
41
+ /**
42
+ * We sometimes need to use this class without having yet created a GrGLInterface. This version
43
+ * of init expects that getString is always non-NULL while getIntegerv and getStringi are non-
44
+ * NULL if on desktop GL with version 3.0 or higher. Otherwise it will fail.
45
+ */
46
+ bool init(GrGLStandard standard,
47
+ GrGLFunction<GrGLGetStringFn> getString,
48
+ GrGLFunction<GrGLGetStringiFn> getStringi,
49
+ GrGLFunction<GrGLGetIntegervFn> getIntegerv,
50
+ GrGLFunction<GrEGLQueryStringFn> queryString = nullptr,
51
+ GrEGLDisplay eglDisplay = nullptr);
52
+
53
+ bool isInitialized() const { return fInitialized; }
54
+
55
+ /**
56
+ * Queries whether an extension is present. This will fail if init() has not been called.
57
+ */
58
+ bool has(const char[]) const;
59
+
60
+ /**
61
+ * Removes an extension if present. Returns true if the extension was present before the call.
62
+ */
63
+ bool remove(const char[]);
64
+
65
+ /**
66
+ * Adds an extension to list
67
+ */
68
+ void add(const char[]);
69
+
70
+ void reset() { fStrings.clear(); }
71
+
72
+ void dumpJSON(SkJSONWriter*) const;
73
+
74
+ private:
75
+ bool fInitialized = false;
76
+ skia_private::TArray<SkString> fStrings;
77
+ };
78
+
79
+ #endif