@shopify/react-native-skia 1.5.8 → 1.5.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. package/android/CMakeLists.txt +0 -1
  2. package/android/cpp/jni/JniPlatformContext.cpp +0 -49
  3. package/android/cpp/jni/include/JniPlatformContext.h +1 -17
  4. package/android/cpp/jni/include/JniSkiaBaseView.h +0 -2
  5. package/android/cpp/jni/include/JniSkiaDomView.h +0 -3
  6. package/android/cpp/jni/include/JniSkiaManager.h +0 -2
  7. package/android/cpp/jni/include/JniSkiaPictureView.h +0 -3
  8. package/android/cpp/rnskia-android/MainThreadDispatcher.h +69 -0
  9. package/android/cpp/rnskia-android/RNSkAndroidPlatformContext.h +4 -11
  10. package/android/cpp/rnskia-android/RNSkAndroidView.h +3 -13
  11. package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +0 -1
  12. package/android/src/main/java/com/shopify/reactnative/skia/PlatformContext.java +0 -85
  13. package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaModule.java +1 -21
  14. package/android/src/main/java/com/shopify/reactnative/skia/SkiaManager.java +0 -4
  15. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java +1 -4
  16. package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java +0 -1
  17. package/cpp/rnskia/RNSkManager.cpp +2 -3
  18. package/cpp/rnskia/RNSkPlatformContext.h +2 -114
  19. package/cpp/rnskia/RNSkView.h +16 -75
  20. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.h +1 -10
  21. package/ios/RNSkia-iOS/RNSkiOSPlatformContext.mm +0 -16
  22. package/ios/RNSkia-iOS/SkiaDomView.mm +0 -1
  23. package/ios/RNSkia-iOS/SkiaDomViewManager.mm +0 -6
  24. package/ios/RNSkia-iOS/SkiaPictureView.mm +0 -1
  25. package/ios/RNSkia-iOS/SkiaPictureViewManager.mm +0 -6
  26. package/ios/RNSkia-iOS/SkiaUIView.h +0 -1
  27. package/ios/RNSkia-iOS/SkiaUIView.mm +1 -14
  28. package/lib/commonjs/renderer/Canvas.d.ts +1 -0
  29. package/lib/commonjs/renderer/Canvas.js +5 -5
  30. package/lib/commonjs/renderer/Canvas.js.map +1 -1
  31. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.d.ts +0 -1
  32. package/lib/commonjs/specs/SkiaPictureViewNativeComponent.js.map +1 -1
  33. package/lib/commonjs/views/SkiaBaseWebView.d.ts +1 -12
  34. package/lib/commonjs/views/SkiaBaseWebView.js +1 -19
  35. package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -1
  36. package/lib/commonjs/views/SkiaDomView.d.ts +8 -1
  37. package/lib/commonjs/views/SkiaDomView.js +14 -2
  38. package/lib/commonjs/views/SkiaDomView.js.map +1 -1
  39. package/lib/commonjs/views/SkiaDomView.web.d.ts +3 -3
  40. package/lib/commonjs/views/SkiaDomView.web.js.map +1 -1
  41. package/lib/commonjs/views/SkiaJSDomView.d.ts +12 -6
  42. package/lib/commonjs/views/SkiaJSDomView.js +12 -3
  43. package/lib/commonjs/views/SkiaJSDomView.js.map +1 -1
  44. package/lib/commonjs/views/SkiaPictureView.d.ts +8 -1
  45. package/lib/commonjs/views/SkiaPictureView.js +14 -1
  46. package/lib/commonjs/views/SkiaPictureView.js.map +1 -1
  47. package/lib/commonjs/views/SkiaPictureView.web.d.ts +3 -3
  48. package/lib/commonjs/views/SkiaPictureView.web.js.map +1 -1
  49. package/lib/commonjs/views/types.d.ts +2 -12
  50. package/lib/commonjs/views/types.js.map +1 -1
  51. package/lib/module/renderer/Canvas.d.ts +1 -0
  52. package/lib/module/renderer/Canvas.js +5 -5
  53. package/lib/module/renderer/Canvas.js.map +1 -1
  54. package/lib/module/specs/SkiaPictureViewNativeComponent.d.ts +0 -1
  55. package/lib/module/specs/SkiaPictureViewNativeComponent.js.map +1 -1
  56. package/lib/module/views/SkiaBaseWebView.d.ts +1 -12
  57. package/lib/module/views/SkiaBaseWebView.js +1 -19
  58. package/lib/module/views/SkiaBaseWebView.js.map +1 -1
  59. package/lib/module/views/SkiaDomView.d.ts +8 -1
  60. package/lib/module/views/SkiaDomView.js +14 -2
  61. package/lib/module/views/SkiaDomView.js.map +1 -1
  62. package/lib/module/views/SkiaDomView.web.d.ts +3 -3
  63. package/lib/module/views/SkiaDomView.web.js.map +1 -1
  64. package/lib/module/views/SkiaJSDomView.d.ts +12 -6
  65. package/lib/module/views/SkiaJSDomView.js +12 -3
  66. package/lib/module/views/SkiaJSDomView.js.map +1 -1
  67. package/lib/module/views/SkiaPictureView.d.ts +8 -1
  68. package/lib/module/views/SkiaPictureView.js +14 -1
  69. package/lib/module/views/SkiaPictureView.js.map +1 -1
  70. package/lib/module/views/SkiaPictureView.web.d.ts +3 -3
  71. package/lib/module/views/SkiaPictureView.web.js.map +1 -1
  72. package/lib/module/views/types.d.ts +2 -12
  73. package/lib/module/views/types.js.map +1 -1
  74. package/lib/typescript/lib/commonjs/views/SkiaBaseWebView.d.ts +0 -11
  75. package/lib/typescript/lib/commonjs/views/SkiaDomView.d.ts +3 -0
  76. package/lib/typescript/lib/commonjs/views/SkiaJSDomView.d.ts +2 -0
  77. package/lib/typescript/lib/commonjs/views/SkiaPictureView.d.ts +3 -0
  78. package/lib/typescript/lib/module/views/SkiaBaseWebView.d.ts +0 -11
  79. package/lib/typescript/lib/module/views/SkiaDomView.d.ts +3 -0
  80. package/lib/typescript/lib/module/views/SkiaJSDomView.d.ts +2 -0
  81. package/lib/typescript/lib/module/views/SkiaPictureView.d.ts +3 -0
  82. package/lib/typescript/src/renderer/Canvas.d.ts +1 -0
  83. package/lib/typescript/src/specs/SkiaPictureViewNativeComponent.d.ts +0 -1
  84. package/lib/typescript/src/views/SkiaBaseWebView.d.ts +1 -12
  85. package/lib/typescript/src/views/SkiaDomView.d.ts +8 -1
  86. package/lib/typescript/src/views/SkiaDomView.web.d.ts +3 -3
  87. package/lib/typescript/src/views/SkiaJSDomView.d.ts +12 -6
  88. package/lib/typescript/src/views/SkiaPictureView.d.ts +8 -1
  89. package/lib/typescript/src/views/SkiaPictureView.web.d.ts +3 -3
  90. package/lib/typescript/src/views/types.d.ts +2 -12
  91. package/package.json +1 -1
  92. package/src/renderer/Canvas.tsx +4 -3
  93. package/src/specs/SkiaPictureViewNativeComponent.ts +0 -1
  94. package/src/views/SkiaBaseWebView.tsx +3 -19
  95. package/src/views/SkiaDomView.tsx +23 -4
  96. package/src/views/SkiaDomView.web.tsx +3 -3
  97. package/src/views/SkiaJSDomView.tsx +30 -9
  98. package/src/views/SkiaPictureView.tsx +22 -2
  99. package/src/views/SkiaPictureView.web.tsx +3 -3
  100. package/src/views/types.ts +2 -13
  101. package/cpp/rnskia/RNSkDispatchQueue.cpp +0 -73
  102. package/cpp/rnskia/RNSkDispatchQueue.h +0 -49
  103. package/ios/RNSkia-iOS/DisplayLink.h +0 -17
  104. package/ios/RNSkia-iOS/DisplayLink.mm +0 -41
@@ -9,7 +9,6 @@
9
9
  #include <unordered_map>
10
10
  #include <utility>
11
11
 
12
- #include "RNSkDispatchQueue.h"
13
12
  #include "RNSkVideo.h"
14
13
  #include "WindowContext.h"
15
14
 
@@ -42,57 +41,19 @@ public:
42
41
  std::shared_ptr<react::CallInvoker> callInvoker,
43
42
  float pixelDensity)
44
43
  : _pixelDensity(pixelDensity), _jsRuntime(runtime),
45
- _callInvoker(callInvoker),
46
- _dispatchQueue(
47
- std::make_unique<RNSkDispatchQueue>("skia-render-thread")) {
48
- _jsThreadId = std::this_thread::get_id();
44
+ _callInvoker(callInvoker) {
49
45
  }
50
46
 
51
- /**
52
- * Destructor
53
- */
54
- virtual ~RNSkPlatformContext() { invalidate(); }
55
-
56
- void invalidate() {
57
- if (!_isValid) {
58
- return;
59
- }
60
- // Stop the refresh loop
61
- stopDrawLoop();
62
- // Notify draw loop listeners once with the invalidated parameter
63
- // set to true signalling that we are done and can clean up.
64
- notifyDrawLoop(true);
65
- _isValid = false;
66
- }
67
-
68
- /*
69
- Returns true if the current execution context is the javascript thread.
70
- */
71
- bool isOnJavascriptThread() {
72
- return _jsThreadId == std::this_thread::get_id();
73
- }
47
+ virtual ~RNSkPlatformContext() = default;
74
48
 
75
49
  /**
76
50
  * Schedules the function to be run on the javascript thread async
77
51
  * @param func Function to run
78
52
  */
79
53
  void runOnJavascriptThread(std::function<void()> func) {
80
- if (!_isValid) {
81
- return;
82
- }
83
54
  _callInvoker->invokeAsync(std::move(func));
84
55
  }
85
56
 
86
- /**
87
- Runs the function on the render thread
88
- */
89
- void runOnRenderThread(std::function<void()> func) {
90
- if (!_isValid) {
91
- return;
92
- }
93
- _dispatchQueue->dispatch(std::move(func));
94
- }
95
-
96
57
  /**
97
58
  * Runs the passed function on the main thread
98
59
  * @param func Function to run.
@@ -192,82 +153,9 @@ public:
192
153
  */
193
154
  float getPixelDensity() { return _pixelDensity; }
194
155
 
195
- /**
196
- * Starts (if not started) a loop that will call back on display sync
197
- * @param callback Callback to call on sync
198
- * @returns Identifier of the draw loop entry
199
- */
200
- size_t beginDrawLoop(size_t nativeId, std::function<void(bool)> callback) {
201
- if (!_isValid) {
202
- return 0;
203
- }
204
- auto shouldStart = false;
205
- {
206
- std::lock_guard<std::mutex> lock(_drawCallbacksLock);
207
- _drawCallbacks.emplace(nativeId, std::move(callback));
208
- shouldStart = _drawCallbacks.size() == 1;
209
- }
210
- if (shouldStart) {
211
- // Start
212
- startDrawLoop();
213
- }
214
- return nativeId;
215
- }
216
-
217
- /**
218
- * Ends (if running) the drawing loop that was started with beginDrawLoop.
219
- * This method must be called symmetrically with the beginDrawLoop method.
220
- * @param nativeId Identifier of view to end
221
- */
222
- void endDrawLoop(size_t nativeId) {
223
- if (!_isValid) {
224
- return;
225
- }
226
- auto shouldStop = false;
227
- {
228
- std::lock_guard<std::mutex> lock(_drawCallbacksLock);
229
- if (_drawCallbacks.count(nativeId) > 0) {
230
- _drawCallbacks.erase(nativeId);
231
- }
232
- shouldStop = _drawCallbacks.size() == 0;
233
- }
234
- if (shouldStop) {
235
- stopDrawLoop();
236
- }
237
- }
238
-
239
- /**
240
- * Notifies all drawing callbacks
241
- * @param invalidated True if the context was invalidated, otherwise false.
242
- * This can be used to receive a notification that we have stopped the main
243
- * drawloop
244
- */
245
- void notifyDrawLoop(bool invalidated) {
246
- if (!_isValid) {
247
- return;
248
- }
249
- std::lock_guard<std::mutex> lock(_drawCallbacksLock);
250
- for (auto it = _drawCallbacks.begin(); it != _drawCallbacks.end(); it++) {
251
- it->second(invalidated);
252
- }
253
- }
254
-
255
- // default implementation does nothing, so it can be called from virtual
256
- // destructor.
257
- virtual void startDrawLoop() {}
258
- virtual void stopDrawLoop() {}
259
-
260
156
  private:
261
157
  float _pixelDensity;
262
-
263
- std::thread::id _jsThreadId;
264
-
265
158
  jsi::Runtime *_jsRuntime;
266
159
  std::shared_ptr<react::CallInvoker> _callInvoker;
267
- std::unique_ptr<RNSkDispatchQueue> _dispatchQueue;
268
-
269
- std::unordered_map<size_t, std::function<void(bool)>> _drawCallbacks;
270
- std::mutex _drawCallbacksLock;
271
- std::atomic<bool> _isValid = {true};
272
160
  };
273
161
  } // namespace RNSkia
@@ -145,8 +145,6 @@ private:
145
145
  std::shared_ptr<RNSkPlatformContext> _context;
146
146
  };
147
147
 
148
- enum RNSkDrawingMode { Default, Continuous };
149
-
150
148
  class RNSkView : public std::enable_shared_from_this<RNSkView> {
151
149
  public:
152
150
  /**
@@ -161,7 +159,7 @@ public:
161
159
  /**
162
160
  Destructor
163
161
  */
164
- virtual ~RNSkView() { endDrawingLoop(); }
162
+ virtual ~RNSkView() {}
165
163
 
166
164
  /**
167
165
  Sets custom properties. Custom properties are properties that are set
@@ -172,43 +170,33 @@ public:
172
170
  // Nothing here...
173
171
  }
174
172
 
175
- /**
176
- * Repaints the Skia view using the underlying context and the drawcallback.
177
- * This method schedules a draw request that will be run on the correct
178
- * thread and js runtime.
179
- */
180
- void requestRedraw() { _redrawRequestCounter++; }
173
+ void requestRedraw() {
174
+ if (!_redrawRequested) {
175
+ _redrawRequested = true;
176
+ _platformContext->runOnMainThread([this]() {
177
+ if (_renderer) {
178
+ _renderer->renderImmediate(_canvasProvider);
179
+ _redrawRequested = false;
180
+ }
181
+ });
182
+ }
183
+ }
181
184
 
182
- /**
183
- Renders immediate. Be carefull to not call this method from another thread
184
- than the UI thread
185
- */
186
- void renderImmediate() {
185
+ void redraw() {
187
186
  _renderer->renderImmediate(_canvasProvider);
188
- _redrawRequestCounter = 0;
187
+ _redrawRequested = false;
189
188
  }
190
189
 
191
190
  /**
192
191
  Sets the native id of the view
193
192
  */
194
- virtual void setNativeId(size_t nativeId) {
195
- _nativeId = nativeId;
196
- beginDrawingLoop();
197
- }
193
+ virtual void setNativeId(size_t nativeId) { _nativeId = nativeId; }
198
194
 
199
195
  /**
200
196
  Returns the native id
201
197
  */
202
198
  size_t getNativeId() { return _nativeId; }
203
199
 
204
- /**
205
- Sets the drawing mode for the view
206
- */
207
- void setDrawingMode(RNSkDrawingMode mode) {
208
- _drawingMode = mode;
209
- requestRedraw();
210
- }
211
-
212
200
  /**
213
201
  * Set to true to show the debug overlays on render
214
202
  */
@@ -240,61 +228,14 @@ protected:
240
228
  return _canvasProvider;
241
229
  }
242
230
 
243
- /**
244
- Ends an ongoing beginDrawCallback loop for this view. This method is made
245
- protected if the drawing loop should be stopped before reaching the
246
- destructor (like we do for Android views)
247
- */
248
- void endDrawingLoop() {
249
- if (_drawingLoopId != 0) {
250
- _drawingLoopId = 0;
251
- _platformContext->endDrawLoop(_nativeId);
252
- }
253
- }
254
-
255
231
  private:
256
- /**
257
- Starts beginDrawCallback loop if the drawing mode is continuous
258
- */
259
- void beginDrawingLoop() {
260
- if (_drawingLoopId != 0 || _nativeId == 0) {
261
- return;
262
- }
263
- // Set to zero to avoid calling beginDrawLoop before we return
264
- _drawingLoopId = _platformContext->beginDrawLoop(
265
- _nativeId, [weakSelf = weak_from_this()](bool invalidated) {
266
- auto self = weakSelf.lock();
267
- if (self) {
268
- self->drawLoopCallback(invalidated);
269
- }
270
- });
271
- }
272
-
273
- /**
274
- Draw loop callback
275
- */
276
- void drawLoopCallback(bool invalidated) {
277
- if (_redrawRequestCounter > 0 ||
278
- _drawingMode == RNSkDrawingMode::Continuous) {
279
- _redrawRequestCounter = 0;
280
-
281
- if (!_renderer->tryRender(_canvasProvider)) {
282
- // The renderer could not render cause it was busy, just schedule
283
- // redrawing on the next frame.
284
- requestRedraw();
285
- }
286
- }
287
- }
288
-
289
232
  std::shared_ptr<RNSkPlatformContext> _platformContext;
290
233
  std::shared_ptr<RNSkCanvasProvider> _canvasProvider;
291
234
  std::shared_ptr<RNSkRenderer> _renderer;
292
235
 
293
- RNSkDrawingMode _drawingMode = RNSkDrawingMode::Default;
294
236
  size_t _nativeId;
295
237
 
296
- size_t _drawingLoopId = 0;
297
- std::atomic<int> _redrawRequestCounter = {1};
238
+ std::atomic<bool> _redrawRequested = {false};
298
239
  };
299
240
 
300
241
  } // namespace RNSkia
@@ -7,7 +7,6 @@
7
7
  #include <memory>
8
8
  #include <string>
9
9
 
10
- #include "DisplayLink.h"
11
10
  #include "RNSkPlatformContext.h"
12
11
  #include "ViewScreenshotService.h"
13
12
 
@@ -49,12 +48,8 @@ public:
49
48
  ~RNSkiOSPlatformContext() {
50
49
  CFNotificationCenterRemoveEveryObserver(
51
50
  CFNotificationCenterGetLocalCenter(), this);
52
- stopDrawLoop();
53
51
  }
54
52
 
55
- void startDrawLoop() override;
56
- void stopDrawLoop() override;
57
-
58
53
  void runOnMainThread(std::function<void()>) override;
59
54
 
60
55
  sk_sp<SkImage> takeScreenshotFromViewTag(size_t tag) override;
@@ -81,13 +76,9 @@ public:
81
76
  #endif
82
77
  sk_sp<SkFontMgr> createFontMgr() override;
83
78
 
84
- void willInvalidateModules() {
85
- // We need to do some house-cleaning here!
86
- invalidate();
87
- }
79
+ void willInvalidateModules() {}
88
80
 
89
81
  private:
90
- DisplayLink *_displayLink;
91
82
  ViewScreenshotService *_screenshotService;
92
83
  };
93
84
 
@@ -214,20 +214,4 @@ RNSkiOSPlatformContext::takeScreenshotFromViewTag(size_t viewTag) {
214
214
  screenshotOfViewWithTag:[NSNumber numberWithLong:viewTag]];
215
215
  }
216
216
 
217
- void RNSkiOSPlatformContext::startDrawLoop() {
218
- if (_displayLink == nullptr) {
219
- _displayLink = [[DisplayLink alloc] init];
220
- [_displayLink start:^(double time) {
221
- notifyDrawLoop(false);
222
- }];
223
- }
224
- }
225
-
226
- void RNSkiOSPlatformContext::stopDrawLoop() {
227
- if (_displayLink != nullptr) {
228
- [_displayLink stop];
229
- _displayLink = nullptr;
230
- }
231
- }
232
-
233
217
  } // namespace RNSkia
@@ -51,7 +51,6 @@ using namespace facebook::react;
51
51
  int nativeId =
52
52
  [[RCTConvert NSString:RCTNSStringFromString(newProps.nativeId)] intValue];
53
53
  [self setNativeId:nativeId];
54
- [self setDrawingMode:newProps.mode];
55
54
  [self setDebugMode:newProps.debug];
56
55
  }
57
56
 
@@ -26,12 +26,6 @@ RCT_CUSTOM_VIEW_PROPERTY(nativeID, NSNumber, SkiaUIView) {
26
26
  [(SkiaUIView *)view setNativeId:nativeId];
27
27
  }
28
28
 
29
- RCT_CUSTOM_VIEW_PROPERTY(mode, NSString, SkiaUIView) {
30
- std::string mode =
31
- json != NULL ? [[RCTConvert NSString:json] UTF8String] : "default";
32
- [(SkiaUIView *)view setDrawingMode:mode];
33
- }
34
-
35
29
  RCT_CUSTOM_VIEW_PROPERTY(debug, BOOL, SkiaUIView) {
36
30
  bool debug = json != NULL ? [RCTConvert BOOL:json] : false;
37
31
  [(SkiaUIView *)view setDebugMode:debug];
@@ -53,7 +53,6 @@ using namespace facebook::react;
53
53
  int nativeId =
54
54
  [[RCTConvert NSString:RCTNSStringFromString(newProps.nativeId)] intValue];
55
55
  [self setNativeId:nativeId];
56
- [self setDrawingMode:newProps.mode];
57
56
  [self setDebugMode:newProps.debug];
58
57
  }
59
58
 
@@ -26,12 +26,6 @@ RCT_CUSTOM_VIEW_PROPERTY(nativeID, NSNumber, SkiaUIView) {
26
26
  [(SkiaUIView *)view setNativeId:nativeId];
27
27
  }
28
28
 
29
- RCT_CUSTOM_VIEW_PROPERTY(mode, NSString, SkiaUIView) {
30
- std::string mode =
31
- json != NULL ? [[RCTConvert NSString:json] UTF8String] : "default";
32
- [(SkiaUIView *)view setDrawingMode:mode];
33
- }
34
-
35
29
  RCT_CUSTOM_VIEW_PROPERTY(debug, BOOL, SkiaUIView) {
36
30
  bool debug = json != NULL ? [RCTConvert BOOL:json] : false;
37
31
  [(SkiaUIView *)view setDebugMode:debug];
@@ -31,7 +31,6 @@
31
31
  - (std::shared_ptr<RNSkBaseiOSView>)impl;
32
32
  - (SkiaManager *)skiaManager;
33
33
 
34
- - (void)setDrawingMode:(std::string)mode;
35
34
  - (void)setDebugMode:(bool)debugMode;
36
35
  - (void)setNativeId:(size_t)nativeId;
37
36
 
@@ -11,7 +11,6 @@
11
11
  @implementation SkiaUIView {
12
12
  std::shared_ptr<RNSkBaseiOSView> _impl;
13
13
  RNSkia::RNSkManager *_manager;
14
- RNSkia::RNSkDrawingMode _drawingMode;
15
14
  std::function<std::shared_ptr<RNSkBaseiOSView>(
16
15
  std::shared_ptr<RNSkia::RNSkPlatformContext>)>
17
16
  _factory;
@@ -45,7 +44,6 @@
45
44
  _manager = manager;
46
45
  _nativeId = 0;
47
46
  _debugMode = false;
48
- _drawingMode = RNSkia::RNSkDrawingMode::Default;
49
47
  _factory = factory;
50
48
  }
51
49
 
@@ -86,7 +84,6 @@
86
84
  if (_nativeId != 0) {
87
85
  _manager->setSkiaView(_nativeId, _impl->getDrawView());
88
86
  }
89
- _impl->getDrawView()->setDrawingMode(_drawingMode);
90
87
  _impl->getDrawView()->setShowDebugOverlays(_debugMode);
91
88
  }
92
89
  }
@@ -131,7 +128,7 @@
131
128
  // We override drawRect to ensure we to direct rendering when the
132
129
  // underlying OS view needs to render:
133
130
  if (_impl != nullptr) {
134
- _impl->getDrawView()->renderImmediate();
131
+ _impl->getDrawView()->redraw();
135
132
  }
136
133
  }
137
134
 
@@ -146,16 +143,6 @@
146
143
 
147
144
  #pragma mark Properties
148
145
 
149
- - (void)setDrawingMode:(std::string)mode {
150
- _drawingMode = mode.compare("continuous") == 0
151
- ? RNSkia::RNSkDrawingMode::Continuous
152
- : RNSkia::RNSkDrawingMode::Default;
153
-
154
- if (_impl != nullptr) {
155
- _impl->getDrawView()->setDrawingMode(_drawingMode);
156
- }
157
- }
158
-
159
146
  - (void)setDebugMode:(bool)debugMode {
160
147
  _debugMode = debugMode;
161
148
  if (_impl != nullptr) {
@@ -6,5 +6,6 @@ export declare const useCanvasRef: () => React.RefObject<SkiaDomView>;
6
6
  export interface CanvasProps extends SkiaBaseViewProps {
7
7
  ref?: RefObject<SkiaDomView>;
8
8
  children: ReactNode;
9
+ mode?: "default" | "continuous";
9
10
  }
10
11
  export declare const Canvas: FunctionComponent<CanvasProps & React.RefAttributes<SkiaDomView>>;
@@ -36,7 +36,7 @@ const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
36
36
  children,
37
37
  style,
38
38
  debug,
39
- mode,
39
+ mode = "default",
40
40
  onSize: _onSize,
41
41
  onLayout: _onLayout,
42
42
  ...props
@@ -70,19 +70,19 @@ const Canvas = exports.Canvas = /*#__PURE__*/(0, _react.forwardRef)(({
70
70
  style: style,
71
71
  root: root.dom,
72
72
  onLayout: onLayout,
73
- mode: mode,
74
- debug: debug
73
+ debug: debug,
74
+ mode: mode
75
75
  }, props));
76
76
  } else {
77
77
  return /*#__PURE__*/_react.default.createElement(_SkiaJSDomView.SkiaJSDomView, _extends({
78
- Skia: _Skia.Skia
78
+ Skia: _Skia.Skia,
79
+ mode: mode
79
80
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
80
81
  ,
81
82
  ref: ref,
82
83
  style: style,
83
84
  root: root.dom,
84
85
  onLayout: onLayout,
85
- mode: mode,
86
86
  debug: debug
87
87
  }, props));
88
88
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_views","_Skia","_SkiaJSDomView","_Reconciler","_HostComponents","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","useCanvasRef","useRef","exports","useOnSizeEvent","resultValue","onLayout","useCallback","event","width","height","nativeEvent","layout","value","Canvas","forwardRef","children","style","debug","mode","onSize","_onSize","_onLayout","props","forwardedRef","innerRef","ref","useCombinedRefs","redraw","_innerRef$current","current","getNativeId","_innerRef$current$nat","_innerRef$current2","id","nativeId","root","useMemo","SkiaRoot","Skia","NATIVE_DOM","useEffect","render","unmount","createElement","SkiaDomView","dom","SkiaJSDomView","refs","targetRef","React","forEach"],"sources":["Canvas.tsx"],"sourcesContent":["import React, {\n useEffect,\n useCallback,\n useMemo,\n forwardRef,\n useRef,\n} from \"react\";\nimport type {\n RefObject,\n ReactNode,\n MutableRefObject,\n ForwardedRef,\n FunctionComponent,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport { SkiaDomView } from \"../views\";\nimport { Skia } from \"../skia/Skia\";\nimport type { SkiaBaseViewProps } from \"../views\";\nimport { SkiaJSDomView } from \"../views/SkiaJSDomView\";\n\nimport { SkiaRoot } from \"./Reconciler\";\nimport { NATIVE_DOM } from \"./HostComponents\";\n\nexport const useCanvasRef = () => useRef<SkiaDomView>(null);\n\nexport interface CanvasProps extends SkiaBaseViewProps {\n ref?: RefObject<SkiaDomView>;\n children: ReactNode;\n}\n\nconst useOnSizeEvent = (\n resultValue: SkiaBaseViewProps[\"onSize\"],\n onLayout?: (event: LayoutChangeEvent) => void\n) => {\n return useCallback(\n (event: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(event);\n }\n const { width, height } = event.nativeEvent.layout;\n\n if (resultValue) {\n resultValue.value = { width, height };\n }\n },\n [onLayout, resultValue]\n );\n};\n\nexport const Canvas = forwardRef<SkiaDomView, CanvasProps>(\n (\n {\n children,\n style,\n debug,\n mode,\n onSize: _onSize,\n onLayout: _onLayout,\n ...props\n },\n forwardedRef\n ) => {\n const onLayout = useOnSizeEvent(_onSize, _onLayout);\n const innerRef = useCanvasRef();\n const ref = useCombinedRefs(forwardedRef, innerRef);\n const redraw = useCallback(() => {\n innerRef.current?.redraw();\n }, [innerRef]);\n const getNativeId = useCallback(() => {\n const id = innerRef.current?.nativeId ?? -1;\n return id;\n }, [innerRef]);\n\n const root = useMemo(\n () => new SkiaRoot(Skia, NATIVE_DOM, redraw, getNativeId),\n [redraw, getNativeId]\n );\n\n // Render effect\n useEffect(() => {\n root.render(children);\n }, [children, root, redraw]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n if (NATIVE_DOM) {\n return (\n <SkiaDomView\n ref={ref}\n style={style}\n root={root.dom}\n onLayout={onLayout}\n mode={mode}\n debug={debug}\n {...props}\n />\n );\n } else {\n return (\n <SkiaJSDomView\n Skia={Skia}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n style={style}\n root={root.dom}\n onLayout={onLayout}\n mode={mode}\n debug={debug}\n {...props}\n />\n );\n }\n }\n) as FunctionComponent<CanvasProps & React.RefAttributes<SkiaDomView>>;\n\n/**\n * Combines a list of refs into a single ref. This can be used to provide\n * both a forwarded ref and an internal ref keeping the same functionality\n * on both of the refs.\n * @param refs Array of refs to combine\n * @returns A single ref that can be used in a ref prop.\n */\nconst useCombinedRefs = <T,>(\n ...refs: Array<MutableRefObject<T> | ForwardedRef<T>>\n) => {\n const targetRef = React.useRef<T>(null);\n React.useEffect(() => {\n refs.forEach((ref) => {\n if (ref) {\n if (typeof ref === \"function\") {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n }\n });\n }, [refs]);\n return targetRef;\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_views","_Skia","_SkiaJSDomView","_Reconciler","_HostComponents","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_extends","assign","bind","arguments","length","apply","useCanvasRef","useRef","exports","useOnSizeEvent","resultValue","onLayout","useCallback","event","width","height","nativeEvent","layout","value","Canvas","forwardRef","children","style","debug","mode","onSize","_onSize","_onLayout","props","forwardedRef","innerRef","ref","useCombinedRefs","redraw","_innerRef$current","current","getNativeId","_innerRef$current$nat","_innerRef$current2","id","nativeId","root","useMemo","SkiaRoot","Skia","NATIVE_DOM","useEffect","render","unmount","createElement","SkiaDomView","dom","SkiaJSDomView","refs","targetRef","React","forEach"],"sources":["Canvas.tsx"],"sourcesContent":["import React, {\n useEffect,\n useCallback,\n useMemo,\n forwardRef,\n useRef,\n} from \"react\";\nimport type {\n RefObject,\n ReactNode,\n MutableRefObject,\n ForwardedRef,\n FunctionComponent,\n} from \"react\";\nimport type { LayoutChangeEvent } from \"react-native\";\n\nimport { SkiaDomView } from \"../views\";\nimport { Skia } from \"../skia/Skia\";\nimport type { SkiaBaseViewProps } from \"../views\";\nimport { SkiaJSDomView } from \"../views/SkiaJSDomView\";\n\nimport { SkiaRoot } from \"./Reconciler\";\nimport { NATIVE_DOM } from \"./HostComponents\";\n\nexport const useCanvasRef = () => useRef<SkiaDomView>(null);\n\nexport interface CanvasProps extends SkiaBaseViewProps {\n ref?: RefObject<SkiaDomView>;\n children: ReactNode;\n mode?: \"default\" | \"continuous\";\n}\n\nconst useOnSizeEvent = (\n resultValue: SkiaBaseViewProps[\"onSize\"],\n onLayout?: (event: LayoutChangeEvent) => void\n) => {\n return useCallback(\n (event: LayoutChangeEvent) => {\n if (onLayout) {\n onLayout(event);\n }\n const { width, height } = event.nativeEvent.layout;\n\n if (resultValue) {\n resultValue.value = { width, height };\n }\n },\n [onLayout, resultValue]\n );\n};\n\nexport const Canvas = forwardRef<SkiaDomView, CanvasProps>(\n (\n {\n children,\n style,\n debug,\n mode = \"default\",\n onSize: _onSize,\n onLayout: _onLayout,\n ...props\n },\n forwardedRef\n ) => {\n const onLayout = useOnSizeEvent(_onSize, _onLayout);\n const innerRef = useCanvasRef();\n const ref = useCombinedRefs(forwardedRef, innerRef);\n const redraw = useCallback(() => {\n innerRef.current?.redraw();\n }, [innerRef]);\n const getNativeId = useCallback(() => {\n const id = innerRef.current?.nativeId ?? -1;\n return id;\n }, [innerRef]);\n\n const root = useMemo(\n () => new SkiaRoot(Skia, NATIVE_DOM, redraw, getNativeId),\n [redraw, getNativeId]\n );\n\n // Render effect\n useEffect(() => {\n root.render(children);\n }, [children, root, redraw]);\n\n useEffect(() => {\n return () => {\n root.unmount();\n };\n }, [root]);\n\n if (NATIVE_DOM) {\n return (\n <SkiaDomView\n ref={ref}\n style={style}\n root={root.dom}\n onLayout={onLayout}\n debug={debug}\n mode={mode}\n {...props}\n />\n );\n } else {\n return (\n <SkiaJSDomView\n Skia={Skia}\n mode={mode}\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ref={ref as any}\n style={style}\n root={root.dom}\n onLayout={onLayout}\n debug={debug}\n {...props}\n />\n );\n }\n }\n) as FunctionComponent<CanvasProps & React.RefAttributes<SkiaDomView>>;\n\n/**\n * Combines a list of refs into a single ref. This can be used to provide\n * both a forwarded ref and an internal ref keeping the same functionality\n * on both of the refs.\n * @param refs Array of refs to combine\n * @returns A single ref that can be used in a ref prop.\n */\nconst useCombinedRefs = <T,>(\n ...refs: Array<MutableRefObject<T> | ForwardedRef<T>>\n) => {\n const targetRef = React.useRef<T>(null);\n React.useEffect(() => {\n refs.forEach((ref) => {\n if (ref) {\n if (typeof ref === \"function\") {\n ref(targetRef.current);\n } else {\n ref.current = targetRef.current;\n }\n }\n });\n }, [refs]);\n return targetRef;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,5 @@
1
1
  import type { ViewProps } from "react-native";
2
2
  export interface NativeProps extends ViewProps {
3
- mode: string;
4
3
  debug?: boolean;
5
4
  }
6
5
  declare const _default: import("react-native/Libraries/Utilities/codegenNativeComponent").NativeComponentType<NativeProps>;
@@ -1 +1 @@
1
- {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sources":["SkiaPictureViewNativeComponent.ts"],"sourcesContent":["import codegenNativeComponent from \"react-native/Libraries/Utilities/codegenNativeComponent\";\nimport type { ViewProps } from \"react-native\";\n\nexport interface NativeProps extends ViewProps {\n mode: string;\n debug?: boolean;\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default codegenNativeComponent<NativeProps>(\"SkiaPictureView\");\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAQ7F;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GACe,IAAAG,+BAAsB,EAAc,iBAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_codegenNativeComponent","_interopRequireDefault","require","e","__esModule","default","_default","exports","codegenNativeComponent"],"sources":["SkiaPictureViewNativeComponent.ts"],"sourcesContent":["import codegenNativeComponent from \"react-native/Libraries/Utilities/codegenNativeComponent\";\nimport type { ViewProps } from \"react-native\";\n\nexport interface NativeProps extends ViewProps {\n debug?: boolean;\n}\n\n// eslint-disable-next-line import/no-default-export\nexport default codegenNativeComponent<NativeProps>(\"SkiaPictureView\");\n"],"mappings":";;;;;;AAAA,IAAAA,uBAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAO7F;AAAA,IAAAG,QAAA,GAAAC,OAAA,CAAAF,OAAA,GACe,IAAAG,+BAAsB,EAAc,iBAAiB,CAAC","ignoreList":[]}
@@ -1,13 +1,12 @@
1
1
  import React from "react";
2
2
  import type { SkRect, SkCanvas } from "../skia/types";
3
- import type { DrawMode, SkiaBaseViewProps } from "./types";
3
+ import type { SkiaBaseViewProps } from "./types";
4
4
  export declare abstract class SkiaBaseWebView<TProps extends SkiaBaseViewProps> extends React.Component<TProps> {
5
5
  constructor(props: TProps);
6
6
  private _surface;
7
7
  private _unsubscriptions;
8
8
  private _canvas;
9
9
  private _canvasRef;
10
- private _mode;
11
10
  private _redrawRequests;
12
11
  private requestId;
13
12
  protected width: number;
@@ -36,16 +35,6 @@ export declare abstract class SkiaBaseWebView<TProps extends SkiaBaseViewProps>
36
35
  */
37
36
  private tick;
38
37
  redraw(): void;
39
- /**
40
- * Updates the drawing mode for the skia view. This is the same
41
- * as declaratively setting the mode property on the SkiaView.
42
- * There are two drawing modes, "continuous" and "default",
43
- * where the continuous mode will continuously redraw the view and
44
- * the default mode will only redraw when any of the regular react
45
- * properties are changed like size and margins.
46
- * @param mode Drawing mode to use.
47
- */
48
- setDrawMode(mode: DrawMode): void;
49
38
  private onLayout;
50
39
  render(): React.JSX.Element;
51
40
  }
@@ -15,19 +15,16 @@ function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e =
15
15
  const pd = _Platform.Platform.PixelRatio;
16
16
  class SkiaBaseWebView extends _react.default.Component {
17
17
  constructor(props) {
18
- var _props$mode;
19
18
  super(props);
20
19
  _defineProperty(this, "_surface", null);
21
20
  _defineProperty(this, "_unsubscriptions", []);
22
21
  _defineProperty(this, "_canvas", null);
23
22
  _defineProperty(this, "_canvasRef", /*#__PURE__*/_react.default.createRef());
24
- _defineProperty(this, "_mode", void 0);
25
23
  _defineProperty(this, "_redrawRequests", 0);
26
24
  _defineProperty(this, "requestId", 0);
27
25
  _defineProperty(this, "width", 0);
28
26
  _defineProperty(this, "height", 0);
29
27
  _defineProperty(this, "onLayout", this.onLayoutEvent.bind(this));
30
- this._mode = (_props$mode = props.mode) !== null && _props$mode !== void 0 ? _props$mode : "default";
31
28
  }
32
29
  unsubscribeAll() {
33
30
  this._unsubscriptions.forEach(u => u());
@@ -104,7 +101,7 @@ class SkiaBaseWebView extends _react.default.Component {
104
101
  * Sends a redraw request to the native SkiaView.
105
102
  */
106
103
  tick() {
107
- if (this._mode === "continuous" || this._redrawRequests > 0) {
104
+ if (this._redrawRequests > 0) {
108
105
  this._redrawRequests = 0;
109
106
  if (this._canvas) {
110
107
  var _this$_surface3;
@@ -122,23 +119,8 @@ class SkiaBaseWebView extends _react.default.Component {
122
119
  redraw() {
123
120
  this._redrawRequests++;
124
121
  }
125
-
126
- /**
127
- * Updates the drawing mode for the skia view. This is the same
128
- * as declaratively setting the mode property on the SkiaView.
129
- * There are two drawing modes, "continuous" and "default",
130
- * where the continuous mode will continuously redraw the view and
131
- * the default mode will only redraw when any of the regular react
132
- * properties are changed like size and margins.
133
- * @param mode Drawing mode to use.
134
- */
135
- setDrawMode(mode) {
136
- this._mode = mode;
137
- this.tick();
138
- }
139
122
  render() {
140
123
  const {
141
- mode,
142
124
  debug = false,
143
125
  ...viewProps
144
126
  } = this.props;