@shopify/react-native-skia 1.11.9-next.1 → 2.0.0-next.1

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 (243) hide show
  1. package/android/CMakeLists.txt +153 -30
  2. package/cpp/skia/include/codec/SkCodec.h +2 -7
  3. package/cpp/skia/include/config/SkUserConfig.h +0 -11
  4. package/cpp/skia/include/core/SkCanvas.h +7 -11
  5. package/cpp/skia/include/core/SkColor.h +0 -10
  6. package/cpp/skia/include/core/SkColorSpace.h +2 -184
  7. package/cpp/skia/include/core/SkColorType.h +32 -114
  8. package/cpp/skia/include/core/SkFontScanner.h +8 -5
  9. package/cpp/skia/include/core/SkFontStyle.h +1 -1
  10. package/cpp/skia/include/core/SkMaskFilter.h +8 -0
  11. package/cpp/skia/include/core/SkMilestone.h +1 -1
  12. package/cpp/skia/include/core/SkPath.h +1 -1
  13. package/cpp/skia/include/core/SkRRect.h +1 -3
  14. package/cpp/skia/include/core/SkShader.h +3 -3
  15. package/cpp/skia/include/core/SkString.h +8 -8
  16. package/cpp/skia/include/core/SkSurface.h +0 -14
  17. package/cpp/skia/include/core/SkTypeface.h +7 -24
  18. package/cpp/skia/include/effects/SkGradientShader.h +1 -6
  19. package/cpp/skia/include/effects/SkRuntimeEffect.h +0 -1
  20. package/cpp/skia/include/encode/SkPngEncoder.h +0 -14
  21. package/cpp/skia/include/gpu/GpuTypes.h +0 -9
  22. package/cpp/skia/include/gpu/ganesh/GrContextOptions.h +133 -135
  23. package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +0 -5
  24. package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +3 -3
  25. package/cpp/skia/include/gpu/ganesh/GrTypes.h +9 -14
  26. package/cpp/skia/include/gpu/graphite/Context.h +2 -25
  27. package/cpp/skia/include/gpu/graphite/ContextOptions.h +5 -23
  28. package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +1 -20
  29. package/cpp/skia/include/gpu/graphite/Image.h +0 -1
  30. package/cpp/skia/include/gpu/graphite/Recorder.h +0 -6
  31. package/cpp/skia/include/gpu/graphite/Recording.h +1 -3
  32. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +36 -4
  33. package/cpp/skia/include/gpu/graphite/precompile/Precompile.h +2 -3
  34. package/cpp/skia/include/pathops/SkPathOps.h +1 -9
  35. package/cpp/skia/include/ports/SkFontMgr_FontConfigInterface.h +0 -3
  36. package/cpp/skia/include/private/SkPathRef.h +21 -15
  37. package/cpp/skia/include/private/base/SkAttributes.h +10 -16
  38. package/cpp/skia/include/private/base/SkMutex.h +0 -8
  39. package/cpp/skia/include/private/base/SkTArray.h +1 -1
  40. package/cpp/skia/include/private/base/SkTDArray.h +1 -1
  41. package/cpp/skia/include/private/base/SkTemplates.h +11 -24
  42. package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +1 -1
  43. package/cpp/skia/include/sksl/SkSLDebugTrace.h +3 -0
  44. package/cpp/skia/modules/skcms/src/Transform_inl.h +20 -20
  45. package/cpp/skia/modules/skcms/src/skcms_Transform.h +3 -4
  46. package/cpp/skia/modules/skcms/src/skcms_public.h +15 -19
  47. package/cpp/skia/modules/skresources/include/SkResources.h +1 -3
  48. package/cpp/skia/modules/svg/include/SkSVGCircle.h +1 -1
  49. package/cpp/skia/modules/svg/include/SkSVGContainer.h +1 -1
  50. package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +1 -1
  51. package/cpp/skia/modules/svg/include/SkSVGImage.h +2 -2
  52. package/cpp/skia/modules/svg/include/SkSVGPath.h +1 -1
  53. package/cpp/skia/modules/svg/include/SkSVGPoly.h +1 -1
  54. package/cpp/skia/modules/svg/include/SkSVGRect.h +1 -1
  55. package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +0 -2
  56. package/cpp/skia/modules/svg/include/SkSVGShape.h +0 -1
  57. package/cpp/skia/modules/svg/include/SkSVGText.h +1 -1
  58. package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +0 -4
  59. package/cpp/skia/modules/svg/include/SkSVGUse.h +1 -1
  60. package/cpp/skia/src/core/SkLRUCache.h +13 -19
  61. package/cpp/skia/src/core/SkTHash.h +4 -50
  62. package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +0 -1
  63. package/lib/commonjs/Platform/Platform.web.js +1 -0
  64. package/lib/commonjs/Platform/Platform.web.js.map +1 -1
  65. package/lib/commonjs/renderer/Canvas.d.ts +1 -1
  66. package/lib/commonjs/renderer/Canvas.js +2 -4
  67. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  68. package/lib/commonjs/renderer/__tests__/setup.d.ts +1 -0
  69. package/lib/commonjs/sksg/Elements.d.ts +1 -1
  70. package/lib/commonjs/sksg/Elements.js.map +1 -1
  71. package/lib/commonjs/sksg/HostConfig.d.ts +1 -1
  72. package/lib/commonjs/sksg/Reconciler.js +0 -1
  73. package/lib/commonjs/sksg/Reconciler.js.map +1 -1
  74. package/lib/module/Platform/Platform.web.js +2 -1
  75. package/lib/module/Platform/Platform.web.js.map +1 -1
  76. package/lib/module/dom/nodes/datatypes/Circle.js +2 -1
  77. package/lib/module/dom/nodes/datatypes/Circle.js.map +1 -1
  78. package/lib/module/dom/nodes/datatypes/Gradient.js +3 -3
  79. package/lib/module/dom/nodes/datatypes/Gradient.js.map +1 -1
  80. package/lib/module/dom/nodes/datatypes/Rect.js +5 -3
  81. package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
  82. package/lib/module/external/reanimated/buffers.js +2 -1
  83. package/lib/module/external/reanimated/buffers.js.map +1 -1
  84. package/lib/module/external/reanimated/useAnimatedImageValue.js +1 -1
  85. package/lib/module/external/reanimated/useAnimatedImageValue.js.map +1 -1
  86. package/lib/module/external/reanimated/useVideo.js +23 -10
  87. package/lib/module/external/reanimated/useVideo.js.map +1 -1
  88. package/lib/module/renderer/Canvas.d.ts +1 -1
  89. package/lib/module/renderer/Canvas.js +3 -5
  90. package/lib/module/renderer/Canvas.js.map +1 -1
  91. package/lib/module/renderer/__tests__/setup.d.ts +1 -0
  92. package/lib/module/skia/core/Vector.js +1 -1
  93. package/lib/module/skia/core/Vector.js.map +1 -1
  94. package/lib/module/skia/web/CanvasKitWebGLBufferImpl.js +4 -1
  95. package/lib/module/skia/web/CanvasKitWebGLBufferImpl.js.map +1 -1
  96. package/lib/module/skia/web/Host.js +7 -1
  97. package/lib/module/skia/web/Host.js.map +1 -1
  98. package/lib/module/skia/web/JsiSkAnimatedImage.js +6 -3
  99. package/lib/module/skia/web/JsiSkAnimatedImage.js.map +1 -1
  100. package/lib/module/skia/web/JsiSkCanvas.js +6 -3
  101. package/lib/module/skia/web/JsiSkCanvas.js.map +1 -1
  102. package/lib/module/skia/web/JsiSkColorFilter.js +6 -3
  103. package/lib/module/skia/web/JsiSkColorFilter.js.map +1 -1
  104. package/lib/module/skia/web/JsiSkContourMeasure.js +6 -3
  105. package/lib/module/skia/web/JsiSkContourMeasure.js.map +1 -1
  106. package/lib/module/skia/web/JsiSkContourMeasureIter.js +6 -3
  107. package/lib/module/skia/web/JsiSkContourMeasureIter.js.map +1 -1
  108. package/lib/module/skia/web/JsiSkData.js +6 -3
  109. package/lib/module/skia/web/JsiSkData.js.map +1 -1
  110. package/lib/module/skia/web/JsiSkFont.js +6 -3
  111. package/lib/module/skia/web/JsiSkFont.js.map +1 -1
  112. package/lib/module/skia/web/JsiSkImage.js +12 -8
  113. package/lib/module/skia/web/JsiSkImage.js.map +1 -1
  114. package/lib/module/skia/web/JsiSkImageFilter.js +6 -3
  115. package/lib/module/skia/web/JsiSkImageFilter.js.map +1 -1
  116. package/lib/module/skia/web/JsiSkMaskFilter.js +6 -3
  117. package/lib/module/skia/web/JsiSkMaskFilter.js.map +1 -1
  118. package/lib/module/skia/web/JsiSkMatrix.js +8 -5
  119. package/lib/module/skia/web/JsiSkMatrix.js.map +1 -1
  120. package/lib/module/skia/web/JsiSkPaint.js +6 -3
  121. package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
  122. package/lib/module/skia/web/JsiSkParagraphBuilder.js +3 -2
  123. package/lib/module/skia/web/JsiSkParagraphBuilder.js.map +1 -1
  124. package/lib/module/skia/web/JsiSkParagraphBuilderFactory.js +1 -1
  125. package/lib/module/skia/web/JsiSkParagraphBuilderFactory.js.map +1 -1
  126. package/lib/module/skia/web/JsiSkParagraphStyle.js +15 -15
  127. package/lib/module/skia/web/JsiSkParagraphStyle.js.map +1 -1
  128. package/lib/module/skia/web/JsiSkPath.js +6 -3
  129. package/lib/module/skia/web/JsiSkPath.js.map +1 -1
  130. package/lib/module/skia/web/JsiSkPathEffect.js +6 -3
  131. package/lib/module/skia/web/JsiSkPathEffect.js.map +1 -1
  132. package/lib/module/skia/web/JsiSkPicture.js +6 -3
  133. package/lib/module/skia/web/JsiSkPicture.js.map +1 -1
  134. package/lib/module/skia/web/JsiSkPictureRecorder.js +6 -3
  135. package/lib/module/skia/web/JsiSkPictureRecorder.js.map +1 -1
  136. package/lib/module/skia/web/JsiSkPoint.js +6 -3
  137. package/lib/module/skia/web/JsiSkPoint.js.map +1 -1
  138. package/lib/module/skia/web/JsiSkRRect.js +6 -3
  139. package/lib/module/skia/web/JsiSkRRect.js.map +1 -1
  140. package/lib/module/skia/web/JsiSkRSXform.js +6 -3
  141. package/lib/module/skia/web/JsiSkRSXform.js.map +1 -1
  142. package/lib/module/skia/web/JsiSkRect.js +6 -3
  143. package/lib/module/skia/web/JsiSkRect.js.map +1 -1
  144. package/lib/module/skia/web/JsiSkRuntimeEffect.js +6 -3
  145. package/lib/module/skia/web/JsiSkRuntimeEffect.js.map +1 -1
  146. package/lib/module/skia/web/JsiSkSVG.js +8 -5
  147. package/lib/module/skia/web/JsiSkSVG.js.map +1 -1
  148. package/lib/module/skia/web/JsiSkShader.js +6 -3
  149. package/lib/module/skia/web/JsiSkShader.js.map +1 -1
  150. package/lib/module/skia/web/JsiSkSurface.js +6 -3
  151. package/lib/module/skia/web/JsiSkSurface.js.map +1 -1
  152. package/lib/module/skia/web/JsiSkTextBlob.js +6 -3
  153. package/lib/module/skia/web/JsiSkTextBlob.js.map +1 -1
  154. package/lib/module/skia/web/JsiSkTypeface.js +6 -3
  155. package/lib/module/skia/web/JsiSkTypeface.js.map +1 -1
  156. package/lib/module/skia/web/JsiSkTypefaceFontProvider.js +4 -1
  157. package/lib/module/skia/web/JsiSkTypefaceFontProvider.js.map +1 -1
  158. package/lib/module/skia/web/JsiSkVertices.js +6 -3
  159. package/lib/module/skia/web/JsiSkVertices.js.map +1 -1
  160. package/lib/module/skia/web/JsiVideo.js +5 -2
  161. package/lib/module/skia/web/JsiVideo.js.map +1 -1
  162. package/lib/module/sksg/Container.js +8 -5
  163. package/lib/module/sksg/Container.js.map +1 -1
  164. package/lib/module/sksg/Elements.d.ts +1 -1
  165. package/lib/module/sksg/Elements.js.map +1 -1
  166. package/lib/module/sksg/HostConfig.d.ts +1 -1
  167. package/lib/module/sksg/Reconciler.js +5 -1
  168. package/lib/module/sksg/Reconciler.js.map +1 -1
  169. package/lib/module/sksg/Recorder/ReanimatedRecorder.js +5 -1
  170. package/lib/module/sksg/Recorder/ReanimatedRecorder.js.map +1 -1
  171. package/lib/module/sksg/Recorder/Recorder.js +6 -3
  172. package/lib/module/sksg/Recorder/Recorder.js.map +1 -1
  173. package/lib/module/sksg/Recorder/Visitor.js +1 -1
  174. package/lib/module/sksg/Recorder/Visitor.js.map +1 -1
  175. package/lib/module/sksg/Recorder/commands/Drawing.js +4 -2
  176. package/lib/module/sksg/Recorder/commands/Drawing.js.map +1 -1
  177. package/lib/module/sksg/Recorder/commands/Shaders.js +3 -2
  178. package/lib/module/sksg/Recorder/commands/Shaders.js.map +1 -1
  179. package/lib/module/views/SkiaBaseWebView.js +12 -9
  180. package/lib/module/views/SkiaBaseWebView.js.map +1 -1
  181. package/lib/module/views/SkiaPictureView.js +5 -1
  182. package/lib/module/views/SkiaPictureView.js.map +1 -1
  183. package/lib/module/views/SkiaPictureView.web.js +4 -1
  184. package/lib/module/views/SkiaPictureView.web.js.map +1 -1
  185. package/lib/module/web/LoadSkiaWeb.js +2 -1
  186. package/lib/module/web/LoadSkiaWeb.js.map +1 -1
  187. package/lib/module/web/WithSkiaWeb.js +1 -1
  188. package/lib/module/web/WithSkiaWeb.js.map +1 -1
  189. package/lib/typescript/lib/module/Platform/Platform.web.d.ts +1 -1
  190. package/lib/typescript/lib/module/mock/index.d.ts +22 -11
  191. package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -1
  192. package/lib/typescript/lib/module/skia/web/CanvasKitWebGLBufferImpl.d.ts +2 -2
  193. package/lib/typescript/lib/module/skia/web/JsiSkAnimatedImage.d.ts +0 -1
  194. package/lib/typescript/lib/module/skia/web/JsiSkCanvas.d.ts +0 -1
  195. package/lib/typescript/lib/module/skia/web/JsiSkColorFilter.d.ts +0 -1
  196. package/lib/typescript/lib/module/skia/web/JsiSkContourMeasure.d.ts +0 -1
  197. package/lib/typescript/lib/module/skia/web/JsiSkContourMeasureIter.d.ts +0 -1
  198. package/lib/typescript/lib/module/skia/web/JsiSkData.d.ts +0 -1
  199. package/lib/typescript/lib/module/skia/web/JsiSkFont.d.ts +0 -1
  200. package/lib/typescript/lib/module/skia/web/JsiSkImage.d.ts +0 -1
  201. package/lib/typescript/lib/module/skia/web/JsiSkImageFilter.d.ts +0 -1
  202. package/lib/typescript/lib/module/skia/web/JsiSkMaskFilter.d.ts +0 -1
  203. package/lib/typescript/lib/module/skia/web/JsiSkMatrix.d.ts +0 -1
  204. package/lib/typescript/lib/module/skia/web/JsiSkPaint.d.ts +0 -1
  205. package/lib/typescript/lib/module/skia/web/JsiSkPath.d.ts +0 -1
  206. package/lib/typescript/lib/module/skia/web/JsiSkPathEffect.d.ts +0 -1
  207. package/lib/typescript/lib/module/skia/web/JsiSkPicture.d.ts +0 -1
  208. package/lib/typescript/lib/module/skia/web/JsiSkPictureRecorder.d.ts +0 -1
  209. package/lib/typescript/lib/module/skia/web/JsiSkPoint.d.ts +0 -1
  210. package/lib/typescript/lib/module/skia/web/JsiSkRRect.d.ts +0 -1
  211. package/lib/typescript/lib/module/skia/web/JsiSkRSXform.d.ts +0 -1
  212. package/lib/typescript/lib/module/skia/web/JsiSkRect.d.ts +0 -1
  213. package/lib/typescript/lib/module/skia/web/JsiSkRuntimeEffect.d.ts +0 -1
  214. package/lib/typescript/lib/module/skia/web/JsiSkSVG.d.ts +0 -1
  215. package/lib/typescript/lib/module/skia/web/JsiSkShader.d.ts +0 -1
  216. package/lib/typescript/lib/module/skia/web/JsiSkSurface.d.ts +0 -1
  217. package/lib/typescript/lib/module/skia/web/JsiSkTextBlob.d.ts +0 -1
  218. package/lib/typescript/lib/module/skia/web/JsiSkTypeface.d.ts +0 -1
  219. package/lib/typescript/lib/module/skia/web/JsiSkTypefaceFontProvider.d.ts +0 -1
  220. package/lib/typescript/lib/module/skia/web/JsiSkVertices.d.ts +0 -1
  221. package/lib/typescript/lib/module/skia/web/JsiVideo.d.ts +2 -2
  222. package/lib/typescript/lib/module/sksg/Container.d.ts +15 -7
  223. package/lib/typescript/lib/module/sksg/Reconciler.d.ts +21 -15
  224. package/lib/typescript/lib/module/sksg/Recorder/ReanimatedRecorder.d.ts +0 -1
  225. package/lib/typescript/lib/module/sksg/Recorder/Recorder.d.ts +2 -5
  226. package/lib/typescript/lib/module/views/SkiaBaseWebView.d.ts +11 -12
  227. package/lib/typescript/lib/module/views/SkiaPictureView.d.ts +1 -1
  228. package/lib/typescript/lib/module/views/SkiaPictureView.web.d.ts +1 -1
  229. package/lib/typescript/src/renderer/Canvas.d.ts +1 -1
  230. package/lib/typescript/src/renderer/__tests__/setup.d.ts +1 -0
  231. package/lib/typescript/src/sksg/Elements.d.ts +1 -1
  232. package/lib/typescript/src/sksg/HostConfig.d.ts +1 -1
  233. package/package.json +3 -3
  234. package/src/Platform/Platform.web.tsx +2 -1
  235. package/src/__tests__/snapshots/screens/snapshot2-android-ci.png +0 -0
  236. package/src/__tests__/snapshots/screens/snapshot3-android-ci.png +0 -0
  237. package/src/renderer/Canvas.tsx +3 -3
  238. package/src/renderer/__tests__/setup.tsx +5 -1
  239. package/src/sksg/Elements.tsx +1 -1
  240. package/src/sksg/Reconciler.ts +1 -2
  241. package/cpp/skia/include/gpu/graphite/LogPriority.h +0 -36
  242. package/cpp/skia/include/gpu/graphite/PrecompileContext.h +0 -52
  243. package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypesUtils.h +0 -48
@@ -98,7 +98,8 @@ const useElementLayout = (ref: RefObject<Div>, onLayout: OnLayout) => {
98
98
  const View = (({ children, onLayout, style: rawStyle }: ViewProps) => {
99
99
  const style = useMemo(() => (rawStyle ?? {}) as CSSProperties, [rawStyle]);
100
100
  const ref = useRef<Div>(null);
101
- useElementLayout(ref, onLayout);
101
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
102
+ useElementLayout(ref as any, onLayout);
102
103
  const cssStyles = useMemo(() => {
103
104
  return {
104
105
  alignItems: "stretch" as const,
@@ -3,6 +3,7 @@ import React, {
3
3
  useCallback,
4
4
  useEffect,
5
5
  useImperativeHandle,
6
+ useLayoutEffect,
6
7
  useMemo,
7
8
  useRef,
8
9
  } from "react";
@@ -72,10 +73,9 @@ export const Canvas = ({
72
73
  // Root
73
74
  const root = useMemo(() => new SkiaSGRoot(Skia, nativeId), [nativeId]);
74
75
 
75
- // Render effects
76
- useEffect(() => {
76
+ useLayoutEffect(() => {
77
77
  root.render(children);
78
- }, [children, root]);
78
+ }, [root, children]);
79
79
 
80
80
  useEffect(() => {
81
81
  return () => {
@@ -194,6 +194,9 @@ export const mountCanvas = async (element: ReactNode) => {
194
194
  return {
195
195
  surface: ckSurface,
196
196
  root,
197
+ render: async () => {
198
+ await root.render(element);
199
+ },
197
200
  draw: async () => {
198
201
  await root.render(element);
199
202
  root.drawOnCanvas(canvas);
@@ -202,7 +205,8 @@ export const mountCanvas = async (element: ReactNode) => {
202
205
  };
203
206
 
204
207
  export const serialize = async (element: ReactNode) => {
205
- const { root } = await mountCanvas(element);
208
+ const { root, render } = await mountCanvas(element);
209
+ await render();
206
210
  const serialized = serializeNode(root.sg);
207
211
  return JSON.stringify(serialized);
208
212
  };
@@ -54,7 +54,7 @@ import type {
54
54
  } from "../dom/types";
55
55
  import type { SkiaProps } from "../renderer";
56
56
 
57
- declare global {
57
+ declare module "react" {
58
58
  // eslint-disable-next-line @typescript-eslint/no-namespace
59
59
  namespace JSX {
60
60
  interface IntrinsicElements {
@@ -43,8 +43,7 @@ export class SkiaSGRoot {
43
43
 
44
44
  private updateContainer(element: ReactNode) {
45
45
  return new Promise((resolve) => {
46
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
- skiaReconciler.updateContainer(element as any, this.root, null, () => {
46
+ skiaReconciler.updateContainer(element, this.root, null, () => {
48
47
  debug("updateContainer");
49
48
  resolve(true);
50
49
  });
@@ -1,36 +0,0 @@
1
- /*
2
- * Copyright 2024 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 skgpu_graphite_LogPriority_DEFINED
9
- #define skgpu_graphite_LogPriority_DEFINED
10
-
11
- /**
12
- * Note: this file may be included in clients' SkUserConfig.h files, so including any other headers
13
- * in this file should be avoided.
14
- */
15
-
16
- namespace skgpu::graphite {
17
- /**
18
- * SKGPU_GRAPHITE_LOWEST_ACTIVE_LOG_PRIORITY can be defined to one of these values (in
19
- * SkUserConfig.h) to control Graphite's logging behavior.
20
- *
21
- * For example:
22
- * ```
23
- * #define SKGPU_GRAPHITE_LOWEST_ACTIVE_LOG_PRIORITY skgpu::graphite::LogPriority::kWarning
24
- * ```
25
- * Would cause Graphite to log warnings, non-fatal errors, and fatal errors.
26
- * However, debug logs would be omitted.
27
- */
28
- enum class LogPriority : int {
29
- kFatal = 0,
30
- kError = 1,
31
- kWarning = 2,
32
- kDebug = 3,
33
- };
34
- }; // namespace skgpu::graphite
35
-
36
- #endif // skgpu_graphite_LogPriority_DEFINED
@@ -1,52 +0,0 @@
1
- /*
2
- * Copyright 2024 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 skgpu_graphite_PrecompileContext_DEFINED
9
- #define skgpu_graphite_PrecompileContext_DEFINED
10
-
11
- #include "include/core/SkRefCnt.h"
12
- #include "include/private/base/SingleOwner.h"
13
-
14
- #include <chrono>
15
- #include <memory>
16
-
17
- namespace skgpu::graphite {
18
-
19
- class SharedContext;
20
- class PrecompileContextPriv;
21
- class ResourceProvider;
22
-
23
- class SK_API PrecompileContext {
24
- public:
25
- ~PrecompileContext();
26
-
27
- /**
28
- * Purge Pipelines that haven't been used in the past 'msNotUsed' milliseconds
29
- * regardless of whether the pipeline cache is under budget.
30
- *
31
- * @param msNotUsed Pipelines not used in these last milliseconds will be cleaned up.
32
- */
33
- void purgePipelinesNotUsedInMs(std::chrono::milliseconds msNotUsed);
34
-
35
- // Provides access to functions that aren't part of the public API.
36
- PrecompileContextPriv priv();
37
- const PrecompileContextPriv priv() const; // NOLINT(readability-const-return-type)
38
-
39
- private:
40
- friend class PrecompileContextPriv;
41
- friend class Context; // for ctor
42
-
43
- PrecompileContext(sk_sp<SharedContext>);
44
-
45
- mutable SingleOwner fSingleOwner;
46
- sk_sp<SharedContext> fSharedContext;
47
- std::unique_ptr<ResourceProvider> fResourceProvider;
48
- };
49
-
50
- } // namespace skgpu::graphite
51
-
52
- #endif // skgpu_graphite_PrecompileContext_DEFINED
@@ -1,48 +0,0 @@
1
- /*
2
- * Copyright 2024 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 skgpu_graphite_MtlGraphiteTypesUtils_DEFINED
9
- #define skgpu_graphite_MtlGraphiteTypesUtils_DEFINED
10
-
11
- #include "include/core/SkTypes.h"
12
-
13
- #include "include/gpu/graphite/BackendTexture.h"
14
- #include "include/gpu/graphite/TextureInfo.h"
15
- #include "include/private/base/SkAPI.h"
16
-
17
- #import <CoreFoundation/CoreFoundation.h>
18
-
19
- namespace skgpu::graphite {
20
-
21
- struct SK_API MtlTextureInfo;
22
-
23
- namespace TextureInfos {
24
- SK_API TextureInfo MakeMetal(const MtlTextureInfo&);
25
- SK_API TextureInfo MakeMetal(CFTypeRef mtlTexture);
26
-
27
- SK_API bool GetMtlTextureInfo(const TextureInfo&, MtlTextureInfo*);
28
- } // namespace TextureInfos
29
-
30
- namespace BackendTextures {
31
- // The BackendTexture will not call retain or release on the passed in CFTypeRef. Thus the
32
- // client must keep the CFTypeRef valid until they are no longer using the BackendTexture.
33
- SK_API BackendTexture MakeMetal(SkISize dimensions, CFTypeRef mtlTexture);
34
-
35
- SK_API CFTypeRef GetMtlTexture(const BackendTexture&);
36
- } // namespace BackendTextures
37
-
38
- namespace BackendSemaphores {
39
- // TODO(b/286088355) Determine creator's responsibility for setting refcnt.
40
- SK_API BackendSemaphore MakeMetal(CFTypeRef mtlEvent, uint64_t value);
41
-
42
- SK_API CFTypeRef GetMtlEvent(const BackendSemaphore&);
43
- SK_API uint64_t GetMtlValue(const BackendSemaphore&);
44
- } // namespace BackendSemaphores
45
-
46
- } // namespace skgpu::graphite
47
-
48
- #endif // skgpu_graphite_MtlGraphiteTypesUtils_DEFINED