@shopify/react-native-skia 1.0.5 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (150) hide show
  1. package/android/CMakeLists.txt +4 -8
  2. package/android/build.gradle +9 -2
  3. package/android/cpp/jni/JniPlatformContext.cpp +7 -7
  4. package/android/cpp/jni/JniSkiaManager.cpp +1 -1
  5. package/android/cpp/jni/include/JniSkiaBaseView.h +2 -2
  6. package/android/cpp/jni/include/JniSkiaDomView.h +4 -4
  7. package/android/cpp/jni/include/JniSkiaManager.h +4 -4
  8. package/android/cpp/jni/include/JniSkiaPictureView.h +4 -4
  9. package/android/cpp/rnskia-android/GrAHardwareBufferUtils.cpp +245 -0
  10. package/android/cpp/rnskia-android/GrAHardwareBufferUtils.h +33 -0
  11. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +3 -3
  12. package/android/cpp/rnskia-android/RNSkAndroidView.h +1 -1
  13. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +2 -2
  14. package/android/cpp/rnskia-android/SkiaOpenGLHelper.h +4 -4
  15. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.cpp +32 -2
  16. package/android/cpp/rnskia-android/SkiaOpenGLSurfaceFactory.h +7 -4
  17. package/cpp/api/JsiSkAnimatedImage.h +1 -1
  18. package/cpp/api/JsiSkCanvas.h +8 -8
  19. package/cpp/api/JsiSkColor.h +1 -1
  20. package/cpp/api/JsiSkColorFilter.h +1 -1
  21. package/cpp/api/JsiSkColorFilterFactory.h +2 -2
  22. package/cpp/api/JsiSkContourMeasure.h +1 -1
  23. package/cpp/api/JsiSkContourMeasureIter.h +1 -1
  24. package/cpp/api/JsiSkData.h +2 -2
  25. package/cpp/api/JsiSkFont.h +2 -2
  26. package/cpp/api/JsiSkFontMgr.h +1 -1
  27. package/cpp/api/JsiSkFontMgrFactory.h +1 -1
  28. package/cpp/api/JsiSkFontStyle.h +2 -2
  29. package/cpp/api/JsiSkImage.h +2 -2
  30. package/cpp/api/JsiSkImageFactory.h +0 -1
  31. package/cpp/api/JsiSkImageFilter.h +1 -1
  32. package/cpp/api/JsiSkImageFilterFactory.h +1 -1
  33. package/cpp/api/JsiSkImageInfo.h +1 -1
  34. package/cpp/api/JsiSkMaskFilter.h +1 -1
  35. package/cpp/api/JsiSkMaskFilterFactory.h +1 -1
  36. package/cpp/api/JsiSkMatrix.h +1 -1
  37. package/cpp/api/JsiSkPaint.h +1 -1
  38. package/cpp/api/JsiSkParagraph.h +7 -7
  39. package/cpp/api/JsiSkParagraphBuilder.h +9 -9
  40. package/cpp/api/JsiSkParagraphBuilderFactory.h +4 -4
  41. package/cpp/api/JsiSkParagraphStyle.h +3 -3
  42. package/cpp/api/JsiSkPath.h +11 -11
  43. package/cpp/api/JsiSkPathEffect.h +1 -1
  44. package/cpp/api/JsiSkPathEffectFactory.h +4 -4
  45. package/cpp/api/JsiSkPathFactory.h +2 -2
  46. package/cpp/api/JsiSkPicture.h +1 -1
  47. package/cpp/api/JsiSkPictureFactory.h +2 -2
  48. package/cpp/api/JsiSkPictureRecorder.h +2 -2
  49. package/cpp/api/JsiSkPoint.h +1 -1
  50. package/cpp/api/JsiSkRRect.h +1 -1
  51. package/cpp/api/JsiSkRSXform.h +1 -1
  52. package/cpp/api/JsiSkRect.h +1 -1
  53. package/cpp/api/JsiSkRuntimeEffect.h +1 -1
  54. package/cpp/api/JsiSkRuntimeShaderBuilder.h +1 -1
  55. package/cpp/api/JsiSkSVGFactory.h +1 -1
  56. package/cpp/api/JsiSkShader.h +2 -2
  57. package/cpp/api/JsiSkShaderFactory.h +3 -3
  58. package/cpp/api/JsiSkStrutStyle.h +1 -1
  59. package/cpp/api/JsiSkSurface.h +1 -1
  60. package/cpp/api/JsiSkSurfaceFactory.h +1 -1
  61. package/cpp/api/JsiSkTextBlob.h +1 -1
  62. package/cpp/api/JsiSkTextBlobFactory.h +1 -1
  63. package/cpp/api/JsiSkTextStyle.h +2 -2
  64. package/cpp/api/JsiSkTypeface.h +3 -3
  65. package/cpp/api/JsiSkTypefaceFontProvider.h +2 -2
  66. package/cpp/api/JsiSkVertices.h +1 -1
  67. package/cpp/jsi/JsiHostObject.cpp +1 -1
  68. package/cpp/rnskia/RNSkDomView.cpp +1 -1
  69. package/cpp/rnskia/RNSkDomView.h +3 -3
  70. package/cpp/rnskia/RNSkJsiViewApi.h +48 -0
  71. package/cpp/rnskia/RNSkManager.cpp +5 -5
  72. package/cpp/rnskia/RNSkPictureView.h +3 -3
  73. package/cpp/rnskia/RNSkPlatformContext.h +5 -5
  74. package/cpp/rnskia/RNSkView.h +2 -2
  75. package/cpp/rnskia/dom/base/ConcatablePaint.h +6 -6
  76. package/cpp/rnskia/dom/base/Declaration.h +1 -1
  77. package/cpp/rnskia/dom/base/DeclarationContext.h +7 -7
  78. package/cpp/rnskia/dom/base/DrawingContext.h +3 -3
  79. package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +2 -2
  80. package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +1 -1
  81. package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +1 -1
  82. package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +1 -1
  83. package/cpp/rnskia/dom/nodes/JsiPathNode.h +1 -1
  84. package/cpp/rnskia/dom/nodes/JsiPointsNode.h +1 -1
  85. package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +1 -1
  86. package/cpp/rnskia/dom/props/BlendModeProp.h +1 -1
  87. package/cpp/rnskia/dom/props/BoxShadowProps.h +1 -1
  88. package/cpp/rnskia/dom/props/CircleProp.h +1 -1
  89. package/cpp/rnskia/dom/props/ClipProp.h +2 -2
  90. package/cpp/rnskia/dom/props/PaintProps.h +1 -1
  91. package/cpp/rnskia/dom/props/PathProp.h +1 -1
  92. package/cpp/rnskia/dom/props/PointProp.h +1 -1
  93. package/cpp/rnskia/dom/props/PointsProp.h +1 -1
  94. package/cpp/rnskia/dom/props/RRectProp.h +2 -2
  95. package/cpp/rnskia/dom/props/RSXformProp.h +1 -1
  96. package/cpp/rnskia/dom/props/RadiusProp.h +1 -1
  97. package/cpp/rnskia/dom/props/RectProp.h +1 -1
  98. package/cpp/rnskia/dom/props/StrokeProps.h +1 -1
  99. package/cpp/rnskia/dom/props/TileModeProp.h +1 -1
  100. package/cpp/rnskia/dom/props/UniformsProp.h +1 -1
  101. package/cpp/rnskia/dom/props/VertexModeProp.h +1 -1
  102. package/cpp/rnskia/dom/props/VerticesProps.h +1 -1
  103. package/cpp/skia/src/gpu/ganesh/gl/GrGLDefines.h +1158 -0
  104. package/cpp/utils/RNSkTypedArray.h +1 -1
  105. package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +6 -6
  106. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +3 -3
  107. package/ios/RNSkia-iOS/SkiaDomView.mm +7 -7
  108. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +7 -7
  109. package/ios/RNSkia-iOS/SkiaManager.h +1 -1
  110. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.h +1 -1
  111. package/ios/RNSkia-iOS/SkiaMetalSurfaceFactory.mm +5 -5
  112. package/ios/RNSkia-iOS/SkiaPictureView.mm +7 -7
  113. package/ios/RNSkia-iOS/SkiaPictureViewManager.mm +4 -4
  114. package/ios/RNSkia-iOS/SkiaUIView.h +3 -3
  115. package/ios/RNSkia-iOS/SkiaUIView.mm +2 -2
  116. package/ios/RNSkia-iOS/ViewScreenshotService.h +1 -1
  117. package/ios/RNSkia-iOS/ViewScreenshotService.mm +1 -1
  118. package/lib/commonjs/headless/index.d.ts +1 -0
  119. package/lib/commonjs/headless/index.js +17 -0
  120. package/lib/commonjs/headless/index.js.map +1 -1
  121. package/lib/commonjs/mock/index.js +1 -0
  122. package/lib/commonjs/mock/index.js.map +1 -1
  123. package/lib/commonjs/skia/web/JsiSkSurfaceFactory.js +1 -1
  124. package/lib/commonjs/skia/web/JsiSkSurfaceFactory.js.map +1 -1
  125. package/lib/commonjs/views/SkiaDomView.d.ts +6 -0
  126. package/lib/commonjs/views/SkiaDomView.js +10 -0
  127. package/lib/commonjs/views/SkiaDomView.js.map +1 -1
  128. package/lib/commonjs/views/types.d.ts +1 -0
  129. package/lib/commonjs/views/types.js.map +1 -1
  130. package/lib/module/headless/index.d.ts +1 -0
  131. package/lib/module/headless/index.js +1 -0
  132. package/lib/module/headless/index.js.map +1 -1
  133. package/lib/module/mock/index.js +1 -0
  134. package/lib/module/mock/index.js.map +1 -1
  135. package/lib/module/skia/web/JsiSkSurfaceFactory.js +1 -1
  136. package/lib/module/skia/web/JsiSkSurfaceFactory.js.map +1 -1
  137. package/lib/module/views/SkiaDomView.d.ts +6 -0
  138. package/lib/module/views/SkiaDomView.js +10 -0
  139. package/lib/module/views/SkiaDomView.js.map +1 -1
  140. package/lib/module/views/types.d.ts +1 -0
  141. package/lib/module/views/types.js.map +1 -1
  142. package/lib/typescript/src/headless/index.d.ts +1 -0
  143. package/lib/typescript/src/views/SkiaDomView.d.ts +6 -0
  144. package/lib/typescript/src/views/types.d.ts +1 -0
  145. package/package.json +1 -1
  146. package/src/headless/index.ts +2 -0
  147. package/src/mock/index.ts +1 -0
  148. package/src/skia/web/JsiSkSurfaceFactory.ts +1 -1
  149. package/src/views/SkiaDomView.tsx +10 -0
  150. package/src/views/types.ts +1 -0
@@ -10,8 +10,8 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkFont.h"
14
- #include "SkStream.h"
13
+ #include "include/core/SkFont.h"
14
+ #include "include/core/SkStream.h"
15
15
 
16
16
  #pragma clang diagnostic pop
17
17
 
@@ -17,8 +17,8 @@
17
17
  #pragma clang diagnostic push
18
18
  #pragma clang diagnostic ignored "-Wdocumentation"
19
19
 
20
- #include "SkFont.h"
21
- #include "SkFontMetrics.h"
20
+ #include "include/core/SkFont.h"
21
+ #include "include/core/SkFontMetrics.h"
22
22
 
23
23
  #pragma clang diagnostic pop
24
24
 
@@ -13,7 +13,7 @@
13
13
  #pragma clang diagnostic push
14
14
  #pragma clang diagnostic ignored "-Wdocumentation"
15
15
 
16
- #include "SkFontMgr.h"
16
+ #include "include/core/SkFontMgr.h"
17
17
 
18
18
  #pragma clang diagnostic pop
19
19
 
@@ -11,7 +11,7 @@
11
11
  #pragma clang diagnostic push
12
12
  #pragma clang diagnostic ignored "-Wdocumentation"
13
13
 
14
- #include "SkFontMgr.h"
14
+ #include "include/core/SkFontMgr.h"
15
15
  #include "include/ports/SkFontMgr_data.h"
16
16
 
17
17
  #pragma clang diagnostic pop
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkFontStyle.h"
13
+ #include "include/core/SkFontStyle.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -64,4 +64,4 @@ public:
64
64
  std::make_shared<JsiSkFontStyle>(std::move(context), fontStyle));
65
65
  }
66
66
  };
67
- } // namespace RNSkia
67
+ } // namespace RNSkia
@@ -15,9 +15,9 @@
15
15
  #pragma clang diagnostic push
16
16
  #pragma clang diagnostic ignored "-Wdocumentation"
17
17
 
18
- #include "SkImage.h"
19
- #include "SkStream.h"
20
18
  #include "include/codec/SkEncodedImageFormat.h"
19
+ #include "include/core/SkImage.h"
20
+ #include "include/core/SkStream.h"
21
21
  #include "include/encode/SkJpegEncoder.h"
22
22
  #include "include/encode/SkPngEncoder.h"
23
23
  #include "include/encode/SkWebpEncoder.h"
@@ -47,7 +47,6 @@ public:
47
47
  [context = std::move(context), viewTag](
48
48
  jsi::Runtime &runtime,
49
49
  std::shared_ptr<RNJsi::JsiPromises::Promise> promise) -> void {
50
- // Create a stream operation - this will be run on the main thread
51
50
  context->makeViewScreenshot(
52
51
  viewTag, [&runtime, context = std::move(context),
53
52
  promise = std::move(promise)](sk_sp<SkImage> image) {
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkImageFilters.h"
13
+ #include "include/effects/SkImageFilters.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -12,7 +12,7 @@
12
12
  #pragma clang diagnostic push
13
13
  #pragma clang diagnostic ignored "-Wdocumentation"
14
14
 
15
- #include "SkImageFilter.h"
15
+ #include "include/core/SkImageFilter.h"
16
16
 
17
17
  #pragma clang diagnostic pop
18
18
 
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkImageInfo.h"
13
+ #include "include/core/SkImageInfo.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkMaskFilter.h"
13
+ #include "include/core/SkMaskFilter.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -11,7 +11,7 @@
11
11
  #pragma clang diagnostic push
12
12
  #pragma clang diagnostic ignored "-Wdocumentation"
13
13
 
14
- #include "SkMaskFilter.h"
14
+ #include "include/core/SkMaskFilter.h"
15
15
 
16
16
  #pragma clang diagnostic pop
17
17
 
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkMatrix.h"
13
+ #include "include/core/SkMatrix.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -16,7 +16,7 @@
16
16
  #pragma clang diagnostic push
17
17
  #pragma clang diagnostic ignored "-Wdocumentation"
18
18
 
19
- #include "SkPaint.h"
19
+ #include "include/core/SkPaint.h"
20
20
 
21
21
  #pragma clang diagnostic pop
22
22
 
@@ -7,17 +7,17 @@
7
7
 
8
8
  #include <jsi/jsi.h>
9
9
 
10
- #include <JsiSkCanvas.h>
11
- #include <JsiSkHostObjects.h>
12
- #include <JsiSkPath.h>
13
- #include <JsiSkRect.h>
10
+ #include "JsiSkCanvas.h"
11
+ #include "JsiSkHostObjects.h"
12
+ #include "JsiSkPath.h"
13
+ #include "JsiSkRect.h"
14
14
 
15
15
  #pragma clang diagnostic push
16
16
  #pragma clang diagnostic ignored "-Wdocumentation"
17
17
 
18
- #include "Paragraph.h"
19
- #include "ParagraphBuilder.h"
20
- #include "ParagraphStyle.h"
18
+ #include "modules/skparagraph/include/Paragraph.h"
19
+ #include "modules/skparagraph/include/ParagraphBuilder.h"
20
+ #include "modules/skparagraph/include/ParagraphStyle.h"
21
21
 
22
22
  #pragma clang diagnostic pop
23
23
 
@@ -5,19 +5,19 @@
5
5
 
6
6
  #include <jsi/jsi.h>
7
7
 
8
- #include <JsiSkFont.h>
9
- #include <JsiSkFontMgr.h>
10
- #include <JsiSkFontMgrFactory.h>
11
- #include <JsiSkHostObjects.h>
12
- #include <JsiSkParagraph.h>
13
- #include <JsiSkParagraphStyle.h>
14
- #include <JsiSkTextStyle.h>
15
- #include <JsiSkTypefaceFontProvider.h>
8
+ #include "JsiSkFont.h"
9
+ #include "JsiSkFontMgr.h"
10
+ #include "JsiSkFontMgrFactory.h"
11
+ #include "JsiSkHostObjects.h"
12
+ #include "JsiSkParagraph.h"
13
+ #include "JsiSkParagraphStyle.h"
14
+ #include "JsiSkTextStyle.h"
15
+ #include "JsiSkTypefaceFontProvider.h"
16
16
 
17
17
  #pragma clang diagnostic push
18
18
  #pragma clang diagnostic ignored "-Wdocumentation"
19
19
 
20
- #include "ParagraphBuilder.h"
20
+ #include "modules/skparagraph/include/ParagraphBuilder.h"
21
21
 
22
22
  #pragma clang diagnostic pop
23
23
 
@@ -5,13 +5,13 @@
5
5
 
6
6
  #include <jsi/jsi.h>
7
7
 
8
- #include <JsiSkParagraphBuilder.h>
9
- #include <JsiSkParagraphStyle.h>
8
+ #include "JsiSkParagraphBuilder.h"
9
+ #include "JsiSkParagraphStyle.h"
10
10
 
11
11
  #pragma clang diagnostic push
12
12
  #pragma clang diagnostic ignored "-Wdocumentation"
13
13
 
14
- #include "ParagraphBuilder.h"
14
+ #include "modules/skparagraph/include/ParagraphBuilder.h"
15
15
 
16
16
  #pragma clang diagnostic pop
17
17
 
@@ -51,4 +51,4 @@ public:
51
51
  : JsiSkHostObject(std::move(context)) {}
52
52
  };
53
53
 
54
- } // namespace RNSkia
54
+ } // namespace RNSkia
@@ -9,13 +9,13 @@
9
9
 
10
10
  #include <jsi/jsi.h>
11
11
 
12
- #include <JsiSkStrutStyle.h>
13
- #include <JsiSkTextStyle.h>
12
+ #include "JsiSkStrutStyle.h"
13
+ #include "JsiSkTextStyle.h"
14
14
 
15
15
  #pragma clang diagnostic push
16
16
  #pragma clang diagnostic ignored "-Wdocumentation"
17
17
 
18
- #include "Paragraph.h"
18
+ #include "modules/skparagraph/include/Paragraph.h"
19
19
 
20
20
  #pragma clang diagnostic pop
21
21
 
@@ -16,17 +16,17 @@
16
16
  #pragma clang diagnostic push
17
17
  #pragma clang diagnostic ignored "-Wdocumentation"
18
18
 
19
- #include "SkDashPathEffect.h"
20
- #include "SkParsePath.h"
21
- #include "SkPath.h"
22
- #include "SkPathEffect.h"
23
- #include "SkPathOps.h"
24
- #include "SkPathTypes.h"
25
- #include "SkPathUtils.h"
26
- #include "SkString.h"
27
- #include "SkStrokeRec.h"
28
- #include "SkTextUtils.h"
29
- #include "SkTrimPathEffect.h"
19
+ #include "include/core/SkPath.h"
20
+ #include "include/core/SkPathEffect.h"
21
+ #include "include/core/SkPathTypes.h"
22
+ #include "include/core/SkPathUtils.h"
23
+ #include "include/core/SkString.h"
24
+ #include "include/core/SkStrokeRec.h"
25
+ #include "include/effects/SkDashPathEffect.h"
26
+ #include "include/effects/SkTrimPathEffect.h"
27
+ #include "include/pathops/SkPathOps.h"
28
+ #include "include/utils/SkParsePath.h"
29
+ #include "include/utils/SkTextUtils.h"
30
30
  #include "src/core/SkPathPriv.h"
31
31
 
32
32
  #pragma clang diagnostic pop
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkPathEffect.h"
13
+ #include "include/core/SkPathEffect.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -12,12 +12,12 @@
12
12
  #pragma clang diagnostic push
13
13
  #pragma clang diagnostic ignored "-Wdocumentation"
14
14
 
15
- #include "SkCornerPathEffect.h"
16
- #include "SkDashPathEffect.h"
17
- #include "SkDiscretePathEffect.h"
18
- #include "SkPathEffect.h"
15
+ #include "include/core/SkPathEffect.h"
19
16
  #include "include/effects/Sk1DPathEffect.h"
20
17
  #include "include/effects/Sk2DPathEffect.h"
18
+ #include "include/effects/SkCornerPathEffect.h"
19
+ #include "include/effects/SkDashPathEffect.h"
20
+ #include "include/effects/SkDiscretePathEffect.h"
21
21
 
22
22
  #pragma clang diagnostic pop
23
23
 
@@ -12,8 +12,8 @@
12
12
  #pragma clang diagnostic ignored "-Wdocumentation"
13
13
 
14
14
  #include "RNSkLog.h"
15
- #include "SkPath.h"
16
- #include "SkPathOps.h"
15
+ #include "include/core/SkPath.h"
16
+ #include "include/pathops/SkPathOps.h"
17
17
 
18
18
  #pragma clang diagnostic pop
19
19
 
@@ -9,7 +9,7 @@
9
9
  #pragma clang diagnostic push
10
10
  #pragma clang diagnostic ignored "-Wdocumentation"
11
11
 
12
- #include "SkPicture.h"
12
+ #include "include/core/SkPicture.h"
13
13
 
14
14
  #pragma clang diagnostic pop
15
15
 
@@ -10,8 +10,8 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkData.h"
14
- #include "SkPicture.h"
13
+ #include "include/core/SkData.h"
14
+ #include "include/core/SkPicture.h"
15
15
 
16
16
  #pragma clang diagnostic pop
17
17
 
@@ -10,8 +10,8 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkBBHFactory.h"
14
- #include "SkPictureRecorder.h"
13
+ #include "include/core/SkBBHFactory.h"
14
+ #include "include/core/SkPictureRecorder.h"
15
15
 
16
16
  #pragma clang diagnostic pop
17
17
 
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkPoint.h"
13
+ #include "include/core/SkPoint.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -11,7 +11,7 @@
11
11
  #pragma clang diagnostic push
12
12
  #pragma clang diagnostic ignored "-Wdocumentation"
13
13
 
14
- #include "SkRRect.h"
14
+ #include "include/core/SkRRect.h"
15
15
 
16
16
  #include "JsiSkRect.h"
17
17
 
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkRSXform.h"
13
+ #include "include/core/SkRSXform.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkRect.h"
13
+ #include "include/core/SkRect.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -14,7 +14,7 @@
14
14
  #pragma clang diagnostic push
15
15
  #pragma clang diagnostic ignored "-Wdocumentation"
16
16
 
17
- #include "SkRuntimeEffect.h"
17
+ #include "include/effects/SkRuntimeEffect.h"
18
18
 
19
19
  #pragma clang diagnostic pop
20
20
 
@@ -12,7 +12,7 @@
12
12
  #pragma clang diagnostic ignored "-Wdocumentation"
13
13
 
14
14
  #include "JsiSkRuntimeEffect.h"
15
- #include "SkRuntimeEffect.h"
15
+ #include "include/effects/SkRuntimeEffect.h"
16
16
 
17
17
  #pragma clang diagnostic pop
18
18
 
@@ -13,7 +13,7 @@
13
13
  #pragma clang diagnostic push
14
14
  #pragma clang diagnostic ignored "-Wdocumentation"
15
15
 
16
- #include "SkStream.h"
16
+ #include "include/core/SkStream.h"
17
17
 
18
18
  #pragma clang diagnostic pop
19
19
 
@@ -10,8 +10,8 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkGradientShader.h"
14
- #include "SkShader.h"
13
+ #include "include/core/SkShader.h"
14
+ #include "include/effects/SkGradientShader.h"
15
15
 
16
16
  #pragma clang diagnostic pop
17
17
 
@@ -12,9 +12,9 @@
12
12
  #pragma clang diagnostic push
13
13
  #pragma clang diagnostic ignored "-Wdocumentation"
14
14
 
15
- #include "SkColorFilter.h"
16
- #include "SkImageFilters.h"
17
- #include "SkPerlinNoiseShader.h"
15
+ #include "include/core/SkColorFilter.h"
16
+ #include "include/effects/SkImageFilters.h"
17
+ #include "include/effects/SkPerlinNoiseShader.h"
18
18
 
19
19
  #pragma clang diagnostic pop
20
20
 
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "Paragraph.h"
13
+ #include "modules/skparagraph/include/Paragraph.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -13,7 +13,7 @@
13
13
  #pragma clang diagnostic push
14
14
  #pragma clang diagnostic ignored "-Wdocumentation"
15
15
 
16
- #include "SkSurface.h"
16
+ #include "include/core/SkSurface.h"
17
17
  #include "include/gpu/GrDirectContext.h"
18
18
 
19
19
  #pragma clang diagnostic pop
@@ -12,7 +12,7 @@
12
12
  #pragma clang diagnostic push
13
13
  #pragma clang diagnostic ignored "-Wdocumentation"
14
14
 
15
- #include "SkSurface.h"
15
+ #include "include/core/SkSurface.h"
16
16
 
17
17
  #pragma clang diagnostic pop
18
18
 
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkTextBlob.h"
13
+ #include "include/core/SkTextBlob.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -14,7 +14,7 @@
14
14
  #pragma clang diagnostic push
15
15
  #pragma clang diagnostic ignored "-Wdocumentation"
16
16
 
17
- #include "SkTextBlob.h"
17
+ #include "include/core/SkTextBlob.h"
18
18
 
19
19
  #pragma clang diagnostic pop
20
20
 
@@ -10,8 +10,8 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "Paragraph.h"
14
- #include "ParagraphStyle.h"
13
+ #include "modules/skparagraph/include/Paragraph.h"
14
+ #include "modules/skparagraph/include/ParagraphStyle.h"
15
15
 
16
16
  #pragma clang diagnostic pop
17
17
 
@@ -12,9 +12,9 @@
12
12
  #pragma clang diagnostic push
13
13
  #pragma clang diagnostic ignored "-Wdocumentation"
14
14
 
15
- #include "SkFont.h"
16
- #include "SkFontTypes.h"
17
- #include "SkTypeface.h"
15
+ #include "include/core/SkFont.h"
16
+ #include "include/core/SkFontTypes.h"
17
+ #include "include/core/SkTypeface.h"
18
18
 
19
19
  #pragma clang diagnostic pop
20
20
 
@@ -14,8 +14,8 @@
14
14
  #pragma clang diagnostic push
15
15
  #pragma clang diagnostic ignored "-Wdocumentation"
16
16
 
17
- #include "SkFont.h"
18
- #include "skparagraph/include/TypefaceFontProvider.h"
17
+ #include "include/core/SkFont.h"
18
+ #include "modules/skparagraph/include/TypefaceFontProvider.h"
19
19
 
20
20
  #pragma clang diagnostic pop
21
21
 
@@ -10,7 +10,7 @@
10
10
  #pragma clang diagnostic push
11
11
  #pragma clang diagnostic ignored "-Wdocumentation"
12
12
 
13
- #include "SkVertices.h"
13
+ #include "include/core/SkVertices.h"
14
14
 
15
15
  #pragma clang diagnostic pop
16
16
 
@@ -1,4 +1,4 @@
1
- #include <JsiHostObject.h>
1
+ #include "JsiHostObject.h"
2
2
  #include <functional>
3
3
  #include <vector>
4
4
 
@@ -7,7 +7,7 @@
7
7
  #pragma clang diagnostic push
8
8
  #pragma clang diagnostic ignored "-Wdocumentation"
9
9
 
10
- #include <SkFont.h>
10
+ #include "include/core/SkFont.h"
11
11
 
12
12
  #pragma clang diagnostic pop
13
13
 
@@ -21,9 +21,9 @@
21
21
  #pragma clang diagnostic push
22
22
  #pragma clang diagnostic ignored "-Wdocumentation"
23
23
 
24
- #include "SkBBHFactory.h"
25
- #include "SkCanvas.h"
26
- #include "SkPictureRecorder.h"
24
+ #include "include/core/SkBBHFactory.h"
25
+ #include "include/core/SkCanvas.h"
26
+ #include "include/core/SkPictureRecorder.h"
27
27
 
28
28
  #pragma clang diagnostic pop
29
29
 
@@ -5,6 +5,7 @@
5
5
  #include <mutex>
6
6
  #include <string>
7
7
  #include <unordered_map>
8
+ #include <utility>
8
9
  #include <vector>
9
10
 
10
11
  #include "JsiHostObject.h"
@@ -177,9 +178,56 @@ public:
177
178
  return jsi::Value::undefined();
178
179
  }
179
180
 
181
+ JSI_HOST_FUNCTION(makeImageSnapshotAsync) {
182
+ if (count < 1) {
183
+ _platformContext->raiseError(std::string(
184
+ "makeImageSnapshotAsync: Expected at least 1 argument, got " +
185
+ std::to_string(count) + "."));
186
+ return jsi::Value::undefined();
187
+ }
188
+
189
+ if (!arguments[0].isNumber()) {
190
+ _platformContext->raiseError(
191
+ "makeImageSnapshot: First argument must be a number");
192
+ return jsi::Value::undefined();
193
+ }
194
+
195
+ // find Skia view
196
+ int nativeId = arguments[0].asNumber();
197
+ auto info = getEnsuredViewInfo(nativeId);
198
+ auto context = _platformContext;
199
+ auto bounds =
200
+ count > 1 && !arguments[1].isUndefined() && !arguments[1].isNull()
201
+ ? JsiSkRect::fromValue(runtime, arguments[1])
202
+ : nullptr;
203
+ return RNJsi::JsiPromises::createPromiseAsJSIValue(
204
+ runtime, [context = std::move(context), info, bounds](
205
+ jsi::Runtime &runtime,
206
+ std::shared_ptr<RNJsi::JsiPromises::Promise> promise) {
207
+ context->runOnMainThread([&runtime, info = std::move(info),
208
+ promise = std::move(promise),
209
+ context = std::move(context), bounds]() {
210
+ auto image = info->view->makeImageSnapshot(
211
+ bounds == nullptr ? nullptr : bounds.get());
212
+ context->runOnJavascriptThread(
213
+ [&runtime, context = std::move(context),
214
+ promise = std::move(promise), image = std::move(image)]() {
215
+ if (image == nullptr) {
216
+ promise->reject("Failed to make snapshot from view.");
217
+ return;
218
+ }
219
+ promise->resolve(jsi::Object::createFromHostObject(
220
+ runtime, std::make_shared<JsiSkImage>(std::move(context),
221
+ std::move(image))));
222
+ });
223
+ });
224
+ });
225
+ }
226
+
180
227
  JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(RNSkJsiViewApi, setJsiProperty),
181
228
  JSI_EXPORT_FUNC(RNSkJsiViewApi, callJsiMethod),
182
229
  JSI_EXPORT_FUNC(RNSkJsiViewApi, requestRedraw),
230
+ JSI_EXPORT_FUNC(RNSkJsiViewApi, makeImageSnapshotAsync),
183
231
  JSI_EXPORT_FUNC(RNSkJsiViewApi, makeImageSnapshot))
184
232
 
185
233
  /**