@shopify/react-native-skia 0.1.151 → 0.1.153
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.
- package/android/CMakeLists.txt +5 -5
- package/android/cpp/jni/JniLoad.cpp +7 -5
- package/android/cpp/jni/JniSkiaManager.cpp +2 -15
- package/android/cpp/jni/include/JniSkiaBaseView.h +68 -0
- package/android/cpp/jni/include/JniSkiaDrawView.h +64 -47
- package/android/cpp/jni/include/JniSkiaManager.h +8 -10
- package/android/cpp/jni/include/JniSkiaPictureView.h +96 -0
- package/android/cpp/rnskia-android/{RNSkPlatformContextImpl.h → RNSkAndroidPlatformContext.h} +4 -4
- package/android/cpp/rnskia-android/RNSkAndroidView.h +100 -0
- package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp +91 -0
- package/android/cpp/rnskia-android/RNSkOpenGLCanvasProvider.h +39 -0
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +15 -6
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +5 -4
- package/android/src/main/java/com/shopify/reactnative/skia/PlatformContext.java +5 -11
- package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -2
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaBaseView.java +143 -0
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDrawView.java +17 -145
- package/android/src/main/java/com/shopify/reactnative/skia/{RNSkiaViewManager.java → SkiaDrawViewManager.java} +4 -15
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaManager.java +1 -10
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaPictureView.java +45 -0
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaPictureViewManager.java +64 -0
- package/cpp/jsi/JsiValueWrapper.h +11 -0
- package/cpp/rnskia/RNSkInfoParameter.h +4 -14
- package/cpp/rnskia/RNSkJsView.cpp +211 -0
- package/cpp/rnskia/RNSkJsView.h +115 -0
- package/cpp/rnskia/RNSkJsiViewApi.h +6 -6
- package/cpp/rnskia/RNSkManager.cpp +7 -7
- package/cpp/rnskia/RNSkManager.h +7 -7
- package/cpp/rnskia/RNSkPictureView.h +124 -0
- package/cpp/rnskia/RNSkView.h +287 -0
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.h +38 -0
- package/ios/RNSkia-iOS/{RNSkDrawViewImpl.mm → RNSkMetalCanvasProvider.mm} +46 -23
- package/ios/RNSkia-iOS/{PlatformContext.h → RNSkiOSPlatformContext.h} +4 -4
- package/ios/RNSkia-iOS/{PlatformContext.mm → RNSkiOSPlatformContext.mm} +5 -5
- package/ios/RNSkia-iOS/RNSkiOSView.h +34 -0
- package/ios/RNSkia-iOS/SkiaDrawViewManager.mm +19 -11
- package/ios/RNSkia-iOS/SkiaManager.mm +3 -3
- package/ios/RNSkia-iOS/SkiaPictureViewManager.h +8 -0
- package/ios/RNSkia-iOS/SkiaPictureViewManager.mm +51 -0
- package/ios/RNSkia-iOS/SkiaUIView.h +26 -0
- package/ios/RNSkia-iOS/{SkiaDrawView.mm → SkiaUIView.mm} +29 -23
- package/lib/commonjs/views/SkiaBaseWebView.js +213 -0
- package/lib/commonjs/views/SkiaBaseWebView.js.map +1 -0
- package/lib/commonjs/views/SkiaPictureView.js +112 -0
- package/lib/commonjs/views/SkiaPictureView.js.map +1 -0
- package/lib/commonjs/views/SkiaPictureView.web.js +31 -0
- package/lib/commonjs/views/SkiaPictureView.web.js.map +1 -0
- package/lib/commonjs/views/SkiaView.js +1 -1
- package/lib/commonjs/views/SkiaView.js.map +1 -1
- package/lib/commonjs/views/SkiaView.web.js +14 -201
- package/lib/commonjs/views/SkiaView.web.js.map +1 -1
- package/lib/commonjs/views/index.js +13 -0
- package/lib/commonjs/views/index.js.map +1 -1
- package/lib/commonjs/views/types.js.map +1 -1
- package/lib/module/views/SkiaBaseWebView.js +198 -0
- package/lib/module/views/SkiaBaseWebView.js.map +1 -0
- package/lib/module/views/SkiaPictureView.js +94 -0
- package/lib/module/views/SkiaPictureView.js.map +1 -0
- package/lib/module/views/SkiaPictureView.web.js +19 -0
- package/lib/module/views/SkiaPictureView.web.js.map +1 -0
- package/lib/module/views/SkiaView.js +1 -1
- package/lib/module/views/SkiaView.js.map +1 -1
- package/lib/module/views/SkiaView.web.js +15 -199
- package/lib/module/views/SkiaView.web.js.map +1 -1
- package/lib/module/views/index.js +1 -0
- package/lib/module/views/index.js.map +1 -1
- package/lib/module/views/types.js.map +1 -1
- package/lib/typescript/src/views/SkiaBaseWebView.d.ts +58 -0
- package/lib/typescript/src/views/SkiaPictureView.d.ts +27 -0
- package/lib/typescript/src/views/SkiaPictureView.web.d.ts +7 -0
- package/lib/typescript/src/views/SkiaView.d.ts +4 -4
- package/lib/typescript/src/views/SkiaView.web.d.ts +6 -53
- package/lib/typescript/src/views/index.d.ts +1 -0
- package/lib/typescript/src/views/types.d.ts +7 -2
- package/package.json +3 -3
- package/src/views/SkiaBaseWebView.tsx +177 -0
- package/src/views/SkiaPictureView.tsx +93 -0
- package/src/views/SkiaPictureView.web.tsx +23 -0
- package/src/views/SkiaView.tsx +6 -7
- package/src/views/SkiaView.web.tsx +18 -167
- package/src/views/index.ts +1 -0
- package/src/views/types.ts +9 -2
- package/android/cpp/jni/JniSkiaDrawView.cpp +0 -113
- package/android/cpp/rnskia-android/RNSkDrawViewImpl.cpp +0 -73
- package/android/cpp/rnskia-android/RNSkDrawViewImpl.h +0 -48
- package/cpp/rnskia/RNSkDrawView.cpp +0 -315
- package/cpp/rnskia/RNSkDrawView.h +0 -226
- package/ios/RNSkia-iOS/RNSkDrawViewImpl.h +0 -52
- package/ios/RNSkia-iOS/SkiaDrawView.h +0 -23
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#include <functional>
|
|
4
|
-
#include <memory>
|
|
5
|
-
#include <mutex>
|
|
6
|
-
#include <vector>
|
|
7
|
-
#include <string>
|
|
8
|
-
|
|
9
|
-
#include <jsi/jsi.h>
|
|
10
|
-
|
|
11
|
-
#include <JsiValueWrapper.h>
|
|
12
|
-
|
|
13
|
-
#include <RNSkInfoParameter.h>
|
|
14
|
-
#include <RNSkPlatformContext.h>
|
|
15
|
-
#include <RNSkTimingInfo.h>
|
|
16
|
-
#include <RNSkLog.h>
|
|
17
|
-
|
|
18
|
-
#pragma clang diagnostic push
|
|
19
|
-
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
20
|
-
|
|
21
|
-
#include <SkCanvas.h>
|
|
22
|
-
|
|
23
|
-
#pragma clang diagnostic pop
|
|
24
|
-
|
|
25
|
-
class SkPicture;
|
|
26
|
-
class SkRect;
|
|
27
|
-
class SkImage;
|
|
28
|
-
|
|
29
|
-
namespace RNSkia {
|
|
30
|
-
class JsiSkCanvas;
|
|
31
|
-
using namespace facebook;
|
|
32
|
-
|
|
33
|
-
enum RNSkDrawingMode { Default, Continuous };
|
|
34
|
-
|
|
35
|
-
class RNSkDrawView: public std::enable_shared_from_this<RNSkDrawView> {
|
|
36
|
-
public:
|
|
37
|
-
/**
|
|
38
|
-
* Constructor
|
|
39
|
-
*/
|
|
40
|
-
RNSkDrawView(std::shared_ptr<RNSkPlatformContext> context);
|
|
41
|
-
|
|
42
|
-
/**
|
|
43
|
-
Destructor
|
|
44
|
-
*/
|
|
45
|
-
virtual ~RNSkDrawView();
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
Sets custom properties. Custom properties are properties that are set directly from Javascript without having
|
|
49
|
-
to go through the async bridge.
|
|
50
|
-
*/
|
|
51
|
-
void setJsiProperties(std::unordered_map<std::string, JsiValueWrapper> &props);
|
|
52
|
-
|
|
53
|
-
/**
|
|
54
|
-
Calls a custom action.
|
|
55
|
-
*/
|
|
56
|
-
jsi::Value callJsiMethod(jsi::Runtime& runtime,
|
|
57
|
-
const std::string& name,
|
|
58
|
-
const jsi::Value *arguments,
|
|
59
|
-
size_t count);
|
|
60
|
-
|
|
61
|
-
/**
|
|
62
|
-
* Repaints the Skia view using the underlying context and the drawcallback.
|
|
63
|
-
* This method schedules a draw request that will be run on the correct
|
|
64
|
-
* thread and js runtime.
|
|
65
|
-
*/
|
|
66
|
-
void requestRedraw();
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
Calls the drawing callback on the javascript thread
|
|
70
|
-
*/
|
|
71
|
-
void performDraw();
|
|
72
|
-
|
|
73
|
-
/**
|
|
74
|
-
Sets the native id of the view
|
|
75
|
-
*/
|
|
76
|
-
void setNativeId(size_t nativeId);
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
Returns the native id
|
|
80
|
-
*/
|
|
81
|
-
size_t getNativeId() { return _nativeId; }
|
|
82
|
-
|
|
83
|
-
/**
|
|
84
|
-
Sets the drawing mode for the view
|
|
85
|
-
*/
|
|
86
|
-
void setDrawingMode(RNSkDrawingMode mode);
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* Set to true to show the debug overlays on render
|
|
90
|
-
*/
|
|
91
|
-
void setShowDebugOverlays(bool show) { _showDebugOverlay = show; }
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
Update touch state with new touch points
|
|
95
|
-
*/
|
|
96
|
-
void updateTouchState(std::vector<RNSkTouchPoint>&& points);
|
|
97
|
-
|
|
98
|
-
/**
|
|
99
|
-
Draws the view's surface into an image
|
|
100
|
-
return an SkImage
|
|
101
|
-
*/
|
|
102
|
-
sk_sp<SkImage> makeImageSnapshot(std::shared_ptr<SkRect> bounds);
|
|
103
|
-
|
|
104
|
-
protected:
|
|
105
|
-
/**
|
|
106
|
-
Returns the scaled width of the view
|
|
107
|
-
*/
|
|
108
|
-
virtual float getScaledWidth() = 0;
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
Returns the scaled height of the view
|
|
112
|
-
*/
|
|
113
|
-
virtual float getScaledHeight() = 0;
|
|
114
|
-
|
|
115
|
-
/**
|
|
116
|
-
Override to render to a canvas
|
|
117
|
-
*/
|
|
118
|
-
virtual void renderToSkiaCanvas(const std::function<void(SkCanvas*)>&) = 0;
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* @return The platformcontext
|
|
122
|
-
*/
|
|
123
|
-
std::shared_ptr<RNSkPlatformContext> getPlatformContext() {
|
|
124
|
-
return _platformContext;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
private:
|
|
128
|
-
/**
|
|
129
|
-
* Calls the JS draw callback. This is the JS function that does the actual drawing so this
|
|
130
|
-
* method must be called from the JS thread.
|
|
131
|
-
*/
|
|
132
|
-
void callJsDrawCallback(std::shared_ptr<JsiSkCanvas> canvas, int width, int height, double timestamp);
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
Starts beginDrawCallback loop if the drawing mode is continuous
|
|
136
|
-
*/
|
|
137
|
-
void beginDrawingLoop();
|
|
138
|
-
|
|
139
|
-
/**
|
|
140
|
-
Ends an ongoing beginDrawCallback loop for this view
|
|
141
|
-
*/
|
|
142
|
-
void endDrawingLoop();
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
Draw loop callback
|
|
146
|
-
*/
|
|
147
|
-
void drawLoopCallback(bool invalidated);
|
|
148
|
-
|
|
149
|
-
/**
|
|
150
|
-
Draw in canvas
|
|
151
|
-
*/
|
|
152
|
-
void drawInCanvas(std::shared_ptr<JsiSkCanvas> canvas,
|
|
153
|
-
int width,
|
|
154
|
-
int height,
|
|
155
|
-
double time);
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Stores the draw drawCallback
|
|
159
|
-
*/
|
|
160
|
-
std::shared_ptr<jsi::Function> _drawCallback;
|
|
161
|
-
|
|
162
|
-
/**
|
|
163
|
-
* Stores a pointer to the jsi wrapper for the canvas. The reason for
|
|
164
|
-
* storing this pointer and not recreate it is that it creates a set of
|
|
165
|
-
* functions that we don't want to recreate on each render
|
|
166
|
-
*/
|
|
167
|
-
std::shared_ptr<JsiSkCanvas> _jsiCanvas;
|
|
168
|
-
|
|
169
|
-
/**
|
|
170
|
-
* JS Drawing mutex
|
|
171
|
-
*/
|
|
172
|
-
std::shared_ptr<std::timed_mutex> _jsDrawingLock;
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* SKIA Drawing mutex
|
|
176
|
-
*/
|
|
177
|
-
std::shared_ptr<std::timed_mutex> _gpuDrawingLock;
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Pointer to the platform context
|
|
181
|
-
*/
|
|
182
|
-
std::shared_ptr<RNSkPlatformContext> _platformContext;
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
Drawing mode
|
|
186
|
-
*/
|
|
187
|
-
RNSkDrawingMode _drawingMode;
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Show debug overlays
|
|
191
|
-
*/
|
|
192
|
-
bool _showDebugOverlay = false;
|
|
193
|
-
|
|
194
|
-
/**
|
|
195
|
-
* True if the drawing loop has been requested
|
|
196
|
-
*/
|
|
197
|
-
size_t _drawingLoopId = 0;
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Info object parameter
|
|
201
|
-
*/
|
|
202
|
-
std::shared_ptr<RNSkInfoObject> _infoObject;
|
|
203
|
-
|
|
204
|
-
/**
|
|
205
|
-
Timing information for javascript drawing
|
|
206
|
-
*/
|
|
207
|
-
RNSkTimingInfo _jsTimingInfo;
|
|
208
|
-
|
|
209
|
-
/**
|
|
210
|
-
Timing information for GPU rendering
|
|
211
|
-
*/
|
|
212
|
-
RNSkTimingInfo _gpuTimingInfo;
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
Redraw queue counter
|
|
216
|
-
*/
|
|
217
|
-
std::atomic<int> _redrawRequestCounter = { 1 };
|
|
218
|
-
|
|
219
|
-
/**
|
|
220
|
-
* Native id
|
|
221
|
-
*/
|
|
222
|
-
size_t _nativeId;
|
|
223
|
-
|
|
224
|
-
};
|
|
225
|
-
|
|
226
|
-
} // namespace RNSkia
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#import "PlatformContext.h"
|
|
4
|
-
#import "RNSKDrawView.h"
|
|
5
|
-
#import <CoreFoundation/CoreFoundation.h>
|
|
6
|
-
#import <UIKit/UIKit.h>
|
|
7
|
-
|
|
8
|
-
#import <GrMtlBackendContext.h>
|
|
9
|
-
#import <MetalKit/MetalKit.h>
|
|
10
|
-
#import <QuartzCore/CAMetalLayer.h>
|
|
11
|
-
|
|
12
|
-
#pragma clang diagnostic push
|
|
13
|
-
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
14
|
-
|
|
15
|
-
#import <SkPicture.h>
|
|
16
|
-
#import <SkRefCnt.h>
|
|
17
|
-
#import <include/gpu/GrDirectContext.h>
|
|
18
|
-
|
|
19
|
-
#pragma clang diagnostic pop
|
|
20
|
-
|
|
21
|
-
class RNSkDrawViewImpl : public RNSkia::RNSkDrawView {
|
|
22
|
-
public:
|
|
23
|
-
RNSkDrawViewImpl(std::shared_ptr<RNSkia::RNSkPlatformContext> context);
|
|
24
|
-
~RNSkDrawViewImpl();
|
|
25
|
-
|
|
26
|
-
CALayer* getLayer() { return _layer; }
|
|
27
|
-
|
|
28
|
-
void setSize(int width, int height);
|
|
29
|
-
|
|
30
|
-
protected:
|
|
31
|
-
float getScaledWidth() override { return _width * _context->getPixelDensity(); };
|
|
32
|
-
float getScaledHeight() override { return _height * _context->getPixelDensity(); };
|
|
33
|
-
|
|
34
|
-
private:
|
|
35
|
-
void renderToSkiaCanvas(const std::function<void(SkCanvas*)>& cb) override;
|
|
36
|
-
bool createSkiaSurface();
|
|
37
|
-
|
|
38
|
-
int _nativeId;
|
|
39
|
-
float _width = -1;
|
|
40
|
-
float _height = -1;
|
|
41
|
-
|
|
42
|
-
#pragma clang diagnostic push
|
|
43
|
-
#pragma clang diagnostic ignored "-Wunguarded-availability-new"
|
|
44
|
-
CAMetalLayer *_layer;
|
|
45
|
-
#pragma clang diagnostic pop
|
|
46
|
-
|
|
47
|
-
static id<MTLCommandQueue> _commandQueue;
|
|
48
|
-
static id<MTLDevice> _device;
|
|
49
|
-
static sk_sp<GrDirectContext> _skContext;
|
|
50
|
-
|
|
51
|
-
std::shared_ptr<RNSkia::RNSkPlatformContext> _context;
|
|
52
|
-
};
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
#pragma once
|
|
2
|
-
|
|
3
|
-
#import <memory>
|
|
4
|
-
#import <string>
|
|
5
|
-
|
|
6
|
-
#import <CoreFoundation/CoreFoundation.h>
|
|
7
|
-
#import <UIKit/UIKit.h>
|
|
8
|
-
|
|
9
|
-
#import <RNSkManager.h>
|
|
10
|
-
|
|
11
|
-
class RNSkDrawViewImpl;
|
|
12
|
-
|
|
13
|
-
@interface SkiaDrawView : UIView
|
|
14
|
-
|
|
15
|
-
- (instancetype)initWithManager: (RNSkia::RNSkManager*)manager;
|
|
16
|
-
|
|
17
|
-
- (std::shared_ptr<RNSkDrawViewImpl>) impl;
|
|
18
|
-
|
|
19
|
-
- (void) setDrawingMode:(std::string) mode;
|
|
20
|
-
- (void) setDebugMode:(bool) debugMode;
|
|
21
|
-
- (void) setNativeId:(size_t) nativeId;
|
|
22
|
-
|
|
23
|
-
@end
|