@shopify/react-native-skia 1.11.0 → 1.11.2
Sign up to get free protection for your applications and to get access to all the features.
- package/android/CMakeLists.txt +0 -8
- package/android/cpp/jni/JniLoad.cpp +0 -2
- package/android/src/main/java/com/shopify/reactnative/skia/RNSkiaPackage.java +1 -1
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaPictureViewManagerDelegate.java +4 -2
- package/cpp/api/recorder/Convertor.h +2 -1
- package/cpp/api/recorder/DataTypes.h +70 -72
- package/cpp/api/recorder/Drawings.h +25 -24
- package/cpp/api/recorder/RNRecorder.h +12 -10
- package/cpp/api/recorder/Shaders.h +5 -5
- package/cpp/jsi/ViewProperty.h +5 -16
- package/cpp/rnskia/RNSkManager.cpp +1 -7
- package/ios/RNSkia-iOS/SkiaCVPixelBufferUtils.mm +8 -4
- package/lib/commonjs/dom/nodes/index.d.ts +0 -1
- package/lib/commonjs/dom/nodes/index.js +0 -11
- package/lib/commonjs/dom/nodes/index.js.map +1 -1
- package/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -6
- package/lib/commonjs/external/reanimated/renderHelpers.js +0 -73
- package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/commonjs/index.d.ts +0 -1
- package/lib/commonjs/index.js +0 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.d.ts +10 -1
- package/lib/commonjs/renderer/Canvas.js +3 -1
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/sksg/Container.d.ts +2 -0
- package/lib/commonjs/sksg/Container.js +10 -0
- package/lib/commonjs/sksg/Container.js.map +1 -1
- package/lib/commonjs/sksg/Elements.d.ts +65 -0
- package/lib/commonjs/sksg/Elements.js +6 -0
- package/lib/commonjs/sksg/Elements.js.map +1 -0
- package/lib/commonjs/sksg/Reconciler.d.ts +1 -0
- package/lib/commonjs/sksg/Reconciler.js +2 -0
- package/lib/commonjs/sksg/Reconciler.js.map +1 -1
- package/lib/commonjs/views/index.d.ts +0 -1
- package/lib/commonjs/views/index.js +0 -11
- package/lib/commonjs/views/index.js.map +1 -1
- package/lib/module/dom/nodes/index.d.ts +0 -1
- package/lib/module/dom/nodes/index.js +0 -1
- package/lib/module/dom/nodes/index.js.map +1 -1
- package/lib/module/external/reanimated/renderHelpers.d.ts +0 -6
- package/lib/module/external/reanimated/renderHelpers.js +0 -68
- package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/module/index.d.ts +0 -1
- package/lib/module/index.js +0 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/renderer/Canvas.d.ts +10 -1
- package/lib/module/renderer/Canvas.js +1 -0
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/sksg/Container.d.ts +2 -0
- package/lib/module/sksg/Container.js +10 -0
- package/lib/module/sksg/Container.js.map +1 -1
- package/lib/module/sksg/Elements.d.ts +65 -0
- package/lib/module/sksg/Elements.js +2 -0
- package/lib/module/sksg/Elements.js.map +1 -0
- package/lib/module/sksg/Reconciler.d.ts +1 -0
- package/lib/module/sksg/Reconciler.js +2 -0
- package/lib/module/sksg/Reconciler.js.map +1 -1
- package/lib/module/views/index.d.ts +0 -1
- package/lib/module/views/index.js +0 -1
- package/lib/module/views/index.js.map +1 -1
- package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +0 -3
- package/lib/typescript/lib/commonjs/renderer/Canvas.d.ts +1 -0
- package/lib/typescript/lib/commonjs/sksg/Container.d.ts +2 -0
- package/lib/typescript/lib/commonjs/sksg/Elements.d.ts +1 -0
- package/lib/typescript/lib/commonjs/sksg/Reconciler.d.ts +6 -0
- package/lib/typescript/lib/module/dom/nodes/index.d.ts +0 -1
- package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +0 -3
- package/lib/typescript/lib/module/index.d.ts +0 -1
- package/lib/typescript/lib/module/mock/index.d.ts +0 -1
- package/lib/typescript/lib/module/renderer/Canvas.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/Container.d.ts +2 -0
- package/lib/typescript/lib/module/sksg/Elements.d.ts +1 -0
- package/lib/typescript/lib/module/sksg/Reconciler.d.ts +6 -0
- package/lib/typescript/lib/module/views/index.d.ts +0 -1
- package/lib/typescript/src/dom/nodes/index.d.ts +0 -1
- package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +0 -6
- package/lib/typescript/src/index.d.ts +0 -1
- package/lib/typescript/src/renderer/Canvas.d.ts +10 -1
- package/lib/typescript/src/sksg/Container.d.ts +2 -0
- package/lib/typescript/src/sksg/Elements.d.ts +65 -0
- package/lib/typescript/src/sksg/Reconciler.d.ts +1 -0
- package/lib/typescript/src/views/index.d.ts +0 -1
- package/package.json +1 -1
- package/src/dom/nodes/index.ts +0 -1
- package/src/external/reanimated/renderHelpers.ts +1 -78
- package/src/index.ts +0 -1
- package/src/renderer/Canvas.tsx +11 -1
- package/src/sksg/Container.ts +11 -0
- package/src/sksg/Elements.tsx +136 -0
- package/src/sksg/Reconciler.ts +2 -0
- package/src/views/index.ts +0 -1
- package/android/cpp/jni/include/JniSkiaDomView.h +0 -82
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomView.java +0 -41
- package/android/src/main/java/com/shopify/reactnative/skia/SkiaDomViewManager.java +0 -32
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerDelegate.java +0 -34
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaDomViewManagerInterface.java +0 -18
- package/cpp/rnskia/RNSkDomView.cpp +0 -121
- package/cpp/rnskia/RNSkDomView.h +0 -97
- package/cpp/rnskia/dom/JsiDomApi.h +0 -165
- package/cpp/rnskia/dom/base/BaseNodeProp.h +0 -72
- package/cpp/rnskia/dom/base/ConcatablePaint.cpp +0 -117
- package/cpp/rnskia/dom/base/ConcatablePaint.h +0 -49
- package/cpp/rnskia/dom/base/Declaration.h +0 -86
- package/cpp/rnskia/dom/base/DeclarationContext.h +0 -79
- package/cpp/rnskia/dom/base/DerivedNodeProp.h +0 -203
- package/cpp/rnskia/dom/base/DrawingContext.cpp +0 -55
- package/cpp/rnskia/dom/base/DrawingContext.h +0 -104
- package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +0 -119
- package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +0 -71
- package/cpp/rnskia/dom/base/JsiDomNode.h +0 -572
- package/cpp/rnskia/dom/base/JsiDomRenderNode.h +0 -262
- package/cpp/rnskia/dom/base/NodeProp.h +0 -139
- package/cpp/rnskia/dom/base/NodePropsContainer.h +0 -158
- package/cpp/rnskia/dom/nodes/JsiAtlasNode.h +0 -64
- package/cpp/rnskia/dom/nodes/JsiBackdropFilterNode.h +0 -49
- package/cpp/rnskia/dom/nodes/JsiBlendNode.h +0 -94
- package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +0 -75
- package/cpp/rnskia/dom/nodes/JsiBoxNode.h +0 -94
- package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +0 -33
- package/cpp/rnskia/dom/nodes/JsiCircleNode.h +0 -35
- package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +0 -164
- package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +0 -37
- package/cpp/rnskia/dom/nodes/JsiFillNode.h +0 -22
- package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +0 -53
- package/cpp/rnskia/dom/nodes/JsiGroupNode.h +0 -25
- package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +0 -361
- package/cpp/rnskia/dom/nodes/JsiImageNode.h +0 -43
- package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +0 -63
- package/cpp/rnskia/dom/nodes/JsiLayerNode.h +0 -74
- package/cpp/rnskia/dom/nodes/JsiLineNode.h +0 -38
- package/cpp/rnskia/dom/nodes/JsiOvalNode.h +0 -32
- package/cpp/rnskia/dom/nodes/JsiPaintNode.h +0 -119
- package/cpp/rnskia/dom/nodes/JsiParagraphNode.h +0 -62
- package/cpp/rnskia/dom/nodes/JsiPatchNode.h +0 -50
- package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +0 -268
- package/cpp/rnskia/dom/nodes/JsiPathNode.h +0 -181
- package/cpp/rnskia/dom/nodes/JsiPictureNode.h +0 -31
- package/cpp/rnskia/dom/nodes/JsiPointsNode.h +0 -48
- package/cpp/rnskia/dom/nodes/JsiRRectNode.h +0 -33
- package/cpp/rnskia/dom/nodes/JsiRectNode.h +0 -33
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +0 -434
- package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +0 -44
- package/cpp/rnskia/dom/nodes/JsiTextNode.h +0 -51
- package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +0 -33
- package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +0 -41
- package/cpp/rnskia/dom/props/BezierProps.h +0 -65
- package/cpp/rnskia/dom/props/BlendModeProp.h +0 -103
- package/cpp/rnskia/dom/props/BoxShadowProps.h +0 -62
- package/cpp/rnskia/dom/props/CircleProp.h +0 -49
- package/cpp/rnskia/dom/props/ClipProp.h +0 -57
- package/cpp/rnskia/dom/props/ColorProp.h +0 -96
- package/cpp/rnskia/dom/props/FontProp.h +0 -42
- package/cpp/rnskia/dom/props/GlyphsProp.h +0 -55
- package/cpp/rnskia/dom/props/LayerProp.h +0 -52
- package/cpp/rnskia/dom/props/MatrixProp.h +0 -54
- package/cpp/rnskia/dom/props/NumbersProp.h +0 -67
- package/cpp/rnskia/dom/props/PaintProps.h +0 -133
- package/cpp/rnskia/dom/props/ParagraphProp.h +0 -45
- package/cpp/rnskia/dom/props/PathProp.h +0 -59
- package/cpp/rnskia/dom/props/PictureProp.h +0 -40
- package/cpp/rnskia/dom/props/PointProp.h +0 -65
- package/cpp/rnskia/dom/props/PointsProp.h +0 -81
- package/cpp/rnskia/dom/props/RRectProp.h +0 -222
- package/cpp/rnskia/dom/props/RSXformProp.h +0 -52
- package/cpp/rnskia/dom/props/RadiusProp.h +0 -43
- package/cpp/rnskia/dom/props/RectProp.h +0 -164
- package/cpp/rnskia/dom/props/SamplingProp.h +0 -54
- package/cpp/rnskia/dom/props/SkImageProps.h +0 -196
- package/cpp/rnskia/dom/props/StrokeProps.h +0 -79
- package/cpp/rnskia/dom/props/SvgProp.h +0 -45
- package/cpp/rnskia/dom/props/TextBlobProp.h +0 -133
- package/cpp/rnskia/dom/props/TileModeProp.h +0 -52
- package/cpp/rnskia/dom/props/TransformProp.h +0 -147
- package/cpp/rnskia/dom/props/TransformsProps.h +0 -66
- package/cpp/rnskia/dom/props/UniformsProp.h +0 -159
- package/cpp/rnskia/dom/props/VertexModeProp.h +0 -49
- package/cpp/rnskia/dom/props/VerticesProps.h +0 -63
- package/ios/RNSkia-iOS/SkiaDomView.h +0 -7
- package/ios/RNSkia-iOS/SkiaDomView.mm +0 -63
- package/ios/RNSkia-iOS/SkiaDomViewManager.h +0 -8
- package/ios/RNSkia-iOS/SkiaDomViewManager.mm +0 -51
- package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -64
- package/lib/commonjs/dom/nodes/JsiSkDOM.js +0 -196
- package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +0 -1
- package/lib/commonjs/renderer/CanvasOld.d.ts +0 -11
- package/lib/commonjs/renderer/CanvasOld.js +0 -96
- package/lib/commonjs/renderer/CanvasOld.js.map +0 -1
- package/lib/commonjs/renderer/Container.d.ts +0 -10
- package/lib/commonjs/renderer/Container.js +0 -26
- package/lib/commonjs/renderer/Container.js.map +0 -1
- package/lib/commonjs/renderer/HostComponents.d.ts +0 -129
- package/lib/commonjs/renderer/HostComponents.js +0 -141
- package/lib/commonjs/renderer/HostComponents.js.map +0 -1
- package/lib/commonjs/renderer/HostConfig.d.ts +0 -18
- package/lib/commonjs/renderer/HostConfig.js +0 -157
- package/lib/commonjs/renderer/HostConfig.js.map +0 -1
- package/lib/commonjs/renderer/Reconciler.d.ts +0 -9
- package/lib/commonjs/renderer/Reconciler.js +0 -44
- package/lib/commonjs/renderer/Reconciler.js.map +0 -1
- package/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -6
- package/lib/commonjs/specs/SkiaDomViewNativeComponent.js +0 -11
- package/lib/commonjs/specs/SkiaDomViewNativeComponent.js.map +0 -1
- package/lib/commonjs/views/SkiaDomView.d.ts +0 -33
- package/lib/commonjs/views/SkiaDomView.js +0 -119
- package/lib/commonjs/views/SkiaDomView.js.map +0 -1
- package/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
- package/lib/commonjs/views/SkiaDomView.web.js +0 -2
- package/lib/commonjs/views/SkiaDomView.web.js.map +0 -1
- package/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -64
- package/lib/module/dom/nodes/JsiSkDOM.js +0 -189
- package/lib/module/dom/nodes/JsiSkDOM.js.map +0 -1
- package/lib/module/renderer/CanvasOld.d.ts +0 -11
- package/lib/module/renderer/CanvasOld.js +0 -87
- package/lib/module/renderer/CanvasOld.js.map +0 -1
- package/lib/module/renderer/Container.d.ts +0 -10
- package/lib/module/renderer/Container.js +0 -19
- package/lib/module/renderer/Container.js.map +0 -1
- package/lib/module/renderer/HostComponents.d.ts +0 -129
- package/lib/module/renderer/HostComponents.js +0 -134
- package/lib/module/renderer/HostComponents.js.map +0 -1
- package/lib/module/renderer/HostConfig.d.ts +0 -18
- package/lib/module/renderer/HostConfig.js +0 -150
- package/lib/module/renderer/HostConfig.js.map +0 -1
- package/lib/module/renderer/Reconciler.d.ts +0 -9
- package/lib/module/renderer/Reconciler.js +0 -36
- package/lib/module/renderer/Reconciler.js.map +0 -1
- package/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -6
- package/lib/module/specs/SkiaDomViewNativeComponent.js +0 -4
- package/lib/module/specs/SkiaDomViewNativeComponent.js.map +0 -1
- package/lib/module/views/SkiaDomView.d.ts +0 -33
- package/lib/module/views/SkiaDomView.js +0 -111
- package/lib/module/views/SkiaDomView.js.map +0 -1
- package/lib/module/views/SkiaDomView.web.d.ts +0 -0
- package/lib/module/views/SkiaDomView.web.js +0 -2
- package/lib/module/views/SkiaDomView.web.js.map +0 -1
- package/lib/typescript/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +0 -60
- package/lib/typescript/lib/commonjs/renderer/CanvasOld.d.ts +0 -3
- package/lib/typescript/lib/commonjs/renderer/Container.d.ts +0 -9
- package/lib/typescript/lib/commonjs/renderer/HostComponents.d.ts +0 -2
- package/lib/typescript/lib/commonjs/renderer/HostConfig.d.ts +0 -40
- package/lib/typescript/lib/commonjs/renderer/Reconciler.d.ts +0 -10
- package/lib/typescript/lib/commonjs/specs/SkiaDomViewNativeComponent.d.ts +0 -3
- package/lib/typescript/lib/commonjs/views/SkiaDomView.d.ts +0 -30
- package/lib/typescript/lib/commonjs/views/SkiaDomView.web.d.ts +0 -0
- package/lib/typescript/lib/module/dom/nodes/JsiSkDOM.d.ts +0 -59
- package/lib/typescript/lib/module/renderer/CanvasOld.d.ts +0 -3
- package/lib/typescript/lib/module/renderer/Container.d.ts +0 -9
- package/lib/typescript/lib/module/renderer/HostComponents.d.ts +0 -1
- package/lib/typescript/lib/module/renderer/HostConfig.d.ts +0 -39
- package/lib/typescript/lib/module/renderer/Reconciler.d.ts +0 -9
- package/lib/typescript/lib/module/specs/SkiaDomViewNativeComponent.d.ts +0 -2
- package/lib/typescript/lib/module/views/SkiaDomView.d.ts +0 -27
- package/lib/typescript/lib/module/views/SkiaDomView.web.d.ts +0 -0
- package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +0 -64
- package/lib/typescript/src/renderer/CanvasOld.d.ts +0 -11
- package/lib/typescript/src/renderer/Container.d.ts +0 -10
- package/lib/typescript/src/renderer/HostComponents.d.ts +0 -129
- package/lib/typescript/src/renderer/HostConfig.d.ts +0 -18
- package/lib/typescript/src/renderer/Reconciler.d.ts +0 -9
- package/lib/typescript/src/specs/SkiaDomViewNativeComponent.d.ts +0 -6
- package/lib/typescript/src/views/SkiaDomView.d.ts +0 -33
- package/lib/typescript/src/views/SkiaDomView.web.d.ts +0 -0
- package/src/dom/nodes/JsiSkDOM.ts +0 -298
- package/src/renderer/CanvasOld.tsx +0 -126
- package/src/renderer/Container.tsx +0 -19
- package/src/renderer/HostComponents.ts +0 -399
- package/src/renderer/HostConfig.ts +0 -258
- package/src/renderer/Reconciler.tsx +0 -54
- package/src/specs/SkiaDomViewNativeComponent.ts +0 -9
- package/src/views/SkiaDomView.tsx +0 -124
- package/src/views/SkiaDomView.web.tsx +0 -0
- /package/cpp/api/recorder/{Image.h → ImageFit.h} +0 -0
@@ -1,121 +0,0 @@
|
|
1
|
-
#include "RNSkDomView.h"
|
2
|
-
#include "DrawingContext.h"
|
3
|
-
|
4
|
-
#include <chrono>
|
5
|
-
#include <utility>
|
6
|
-
|
7
|
-
#pragma clang diagnostic push
|
8
|
-
#pragma clang diagnostic ignored "-Wdocumentation"
|
9
|
-
|
10
|
-
#include "include/core/SkFont.h"
|
11
|
-
|
12
|
-
#pragma clang diagnostic pop
|
13
|
-
|
14
|
-
namespace RNSkia {
|
15
|
-
|
16
|
-
RNSkDomRenderer::RNSkDomRenderer(std::function<void()> requestRedraw,
|
17
|
-
std::shared_ptr<RNSkPlatformContext> context)
|
18
|
-
: RNSkRenderer(requestRedraw), _platformContext(std::move(context)),
|
19
|
-
_renderLock(std::make_shared<std::timed_mutex>()),
|
20
|
-
_renderTimingInfo("SKIA/RENDER") {}
|
21
|
-
|
22
|
-
RNSkDomRenderer::~RNSkDomRenderer() {
|
23
|
-
if (_root != nullptr) {
|
24
|
-
_root->dispose(true);
|
25
|
-
_root = nullptr;
|
26
|
-
}
|
27
|
-
}
|
28
|
-
|
29
|
-
void RNSkDomRenderer::renderImmediate(
|
30
|
-
std::shared_ptr<RNSkCanvasProvider> canvasProvider) {
|
31
|
-
auto prevDebugOverlay = getShowDebugOverlays();
|
32
|
-
setShowDebugOverlays(false);
|
33
|
-
canvasProvider->renderToCanvas(std::bind(
|
34
|
-
&RNSkDomRenderer::renderCanvas, this, std::placeholders::_1,
|
35
|
-
canvasProvider->getScaledWidth(), canvasProvider->getScaledHeight()));
|
36
|
-
setShowDebugOverlays(prevDebugOverlay);
|
37
|
-
}
|
38
|
-
|
39
|
-
void RNSkDomRenderer::setRoot(std::shared_ptr<JsiDomRenderNode> node) {
|
40
|
-
std::lock_guard<std::mutex> lock(_rootLock);
|
41
|
-
if (_root != nullptr) {
|
42
|
-
_root->dispose(true);
|
43
|
-
_root = nullptr;
|
44
|
-
}
|
45
|
-
_root = node;
|
46
|
-
}
|
47
|
-
|
48
|
-
void RNSkDomRenderer::renderCanvas(SkCanvas *canvas, float scaledWidth,
|
49
|
-
float scaledHeight) {
|
50
|
-
_renderTimingInfo.beginTiming();
|
51
|
-
|
52
|
-
auto pd = _platformContext->getPixelDensity();
|
53
|
-
canvas->clear(SK_ColorTRANSPARENT);
|
54
|
-
canvas->save();
|
55
|
-
canvas->scale(pd, pd);
|
56
|
-
|
57
|
-
if (_drawingContext == nullptr) {
|
58
|
-
_drawingContext = std::make_shared<DrawingContext>();
|
59
|
-
|
60
|
-
_drawingContext->setRequestRedraw([weakSelf = weak_from_this()]() {
|
61
|
-
auto self = weakSelf.lock();
|
62
|
-
if (self) {
|
63
|
-
self->_requestRedraw();
|
64
|
-
}
|
65
|
-
});
|
66
|
-
}
|
67
|
-
|
68
|
-
_drawingContext->setScaledWidth(scaledWidth);
|
69
|
-
_drawingContext->setScaledHeight(scaledHeight);
|
70
|
-
|
71
|
-
// Update canvas before drawing
|
72
|
-
_drawingContext->setCanvas(canvas);
|
73
|
-
|
74
|
-
try {
|
75
|
-
// Ask the root node to render to the provided canvas
|
76
|
-
std::lock_guard<std::mutex> lock(_rootLock);
|
77
|
-
if (_root != nullptr) {
|
78
|
-
_root->commitPendingChanges();
|
79
|
-
_root->render(_drawingContext.get());
|
80
|
-
_root->resetPendingChanges();
|
81
|
-
}
|
82
|
-
} catch (std::runtime_error err) {
|
83
|
-
_platformContext->raiseError(err);
|
84
|
-
} catch (jsi::JSError err) {
|
85
|
-
_platformContext->raiseError(err);
|
86
|
-
} catch (...) {
|
87
|
-
_platformContext->raiseError(
|
88
|
-
std::runtime_error("Error rendering the Skia view."));
|
89
|
-
}
|
90
|
-
|
91
|
-
renderDebugOverlays(canvas);
|
92
|
-
|
93
|
-
canvas->restore();
|
94
|
-
|
95
|
-
_renderTimingInfo.stopTiming();
|
96
|
-
}
|
97
|
-
|
98
|
-
void RNSkDomRenderer::renderDebugOverlays(SkCanvas *canvas) {
|
99
|
-
if (!getShowDebugOverlays()) {
|
100
|
-
return;
|
101
|
-
}
|
102
|
-
auto renderAvg = _renderTimingInfo.getAverage();
|
103
|
-
auto fps = _renderTimingInfo.getFps();
|
104
|
-
|
105
|
-
// Build string
|
106
|
-
std::ostringstream stream;
|
107
|
-
stream << "render: " << renderAvg << "ms"
|
108
|
-
<< " fps: " << fps;
|
109
|
-
|
110
|
-
std::string debugString = stream.str();
|
111
|
-
|
112
|
-
// Set up debug font/paints
|
113
|
-
auto font = SkFont();
|
114
|
-
font.setSize(14);
|
115
|
-
auto paint = SkPaint();
|
116
|
-
paint.setColor(SkColors::kRed);
|
117
|
-
canvas->drawSimpleText(debugString.c_str(), debugString.size(),
|
118
|
-
SkTextEncoding::kUTF8, 8, 18, font, paint);
|
119
|
-
}
|
120
|
-
|
121
|
-
} // namespace RNSkia
|
package/cpp/rnskia/RNSkDomView.h
DELETED
@@ -1,97 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <functional>
|
4
|
-
#include <memory>
|
5
|
-
#include <mutex>
|
6
|
-
#include <string>
|
7
|
-
#include <unordered_map>
|
8
|
-
#include <vector>
|
9
|
-
|
10
|
-
#include <jsi/jsi.h>
|
11
|
-
|
12
|
-
#include "RNSkView.h"
|
13
|
-
#include "ViewProperty.h"
|
14
|
-
|
15
|
-
#include "JsiDomRenderNode.h"
|
16
|
-
#include "RNSkLog.h"
|
17
|
-
#include "RNSkPlatformContext.h"
|
18
|
-
#include "RNSkTimingInfo.h"
|
19
|
-
|
20
|
-
#pragma clang diagnostic push
|
21
|
-
#pragma clang diagnostic ignored "-Wdocumentation"
|
22
|
-
|
23
|
-
#include "include/core/SkBBHFactory.h"
|
24
|
-
#include "include/core/SkCanvas.h"
|
25
|
-
#include "include/core/SkPictureRecorder.h"
|
26
|
-
|
27
|
-
#pragma clang diagnostic pop
|
28
|
-
|
29
|
-
class SkPicture;
|
30
|
-
class SkRect;
|
31
|
-
class SkImage;
|
32
|
-
|
33
|
-
namespace RNSkia {
|
34
|
-
class JsiSkCanvas;
|
35
|
-
namespace jsi = facebook::jsi;
|
36
|
-
|
37
|
-
class RNSkDomRenderer : public RNSkRenderer,
|
38
|
-
public std::enable_shared_from_this<RNSkDomRenderer> {
|
39
|
-
public:
|
40
|
-
RNSkDomRenderer(std::function<void()> requestRedraw,
|
41
|
-
std::shared_ptr<RNSkPlatformContext> context);
|
42
|
-
|
43
|
-
~RNSkDomRenderer();
|
44
|
-
|
45
|
-
void
|
46
|
-
renderImmediate(std::shared_ptr<RNSkCanvasProvider> canvasProvider) override;
|
47
|
-
|
48
|
-
void setRoot(std::shared_ptr<JsiDomRenderNode> node);
|
49
|
-
|
50
|
-
private:
|
51
|
-
void renderCanvas(SkCanvas *canvas, float scaledWidth, float scaledHeight);
|
52
|
-
void renderDebugOverlays(SkCanvas *canvas);
|
53
|
-
|
54
|
-
std::shared_ptr<RNSkPlatformContext> _platformContext;
|
55
|
-
|
56
|
-
std::shared_ptr<std::timed_mutex> _renderLock;
|
57
|
-
|
58
|
-
std::shared_ptr<JsiDomRenderNode> _root;
|
59
|
-
std::shared_ptr<DrawingContext> _drawingContext;
|
60
|
-
|
61
|
-
RNSkTimingInfo _renderTimingInfo;
|
62
|
-
|
63
|
-
std::mutex _rootLock;
|
64
|
-
};
|
65
|
-
|
66
|
-
class RNSkDomView : public RNSkView {
|
67
|
-
public:
|
68
|
-
/**
|
69
|
-
* Constructor
|
70
|
-
*/
|
71
|
-
RNSkDomView(std::shared_ptr<RNSkPlatformContext> context,
|
72
|
-
std::shared_ptr<RNSkCanvasProvider> canvasProvider)
|
73
|
-
: RNSkView(context, canvasProvider,
|
74
|
-
std::make_shared<RNSkDomRenderer>(
|
75
|
-
std::bind(&RNSkView::requestRedraw, this), context)) {}
|
76
|
-
|
77
|
-
void setJsiProperties(
|
78
|
-
std::unordered_map<std::string, ViewProperty> &props) override {
|
79
|
-
|
80
|
-
for (auto &prop : props) {
|
81
|
-
if (prop.first == "root") {
|
82
|
-
// Save root
|
83
|
-
if (prop.second.isNull()) {
|
84
|
-
std::static_pointer_cast<RNSkDomRenderer>(getRenderer())
|
85
|
-
->setRoot(nullptr);
|
86
|
-
} else {
|
87
|
-
std::static_pointer_cast<RNSkDomRenderer>(getRenderer())
|
88
|
-
->setRoot(prop.second.getDomRenderNode());
|
89
|
-
}
|
90
|
-
|
91
|
-
// Request redraw
|
92
|
-
requestRedraw();
|
93
|
-
}
|
94
|
-
}
|
95
|
-
}
|
96
|
-
};
|
97
|
-
} // namespace RNSkia
|
@@ -1,165 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
/* Enable output of dom trees and paint contexts */
|
4
|
-
#define SKIA_DOM_DEBUG 0
|
5
|
-
#define SKIA_DOM_DEBUG_VERBOSE 0
|
6
|
-
|
7
|
-
#include <memory>
|
8
|
-
|
9
|
-
#include "JsiHostObject.h"
|
10
|
-
|
11
|
-
#include "nodes/JsiAtlasNode.h"
|
12
|
-
#include "nodes/JsiCircleNode.h"
|
13
|
-
#include "nodes/JsiDiffRectNode.h"
|
14
|
-
#include "nodes/JsiFillNode.h"
|
15
|
-
#include "nodes/JsiGroupNode.h"
|
16
|
-
#include "nodes/JsiImageNode.h"
|
17
|
-
#include "nodes/JsiLineNode.h"
|
18
|
-
#include "nodes/JsiOvalNode.h"
|
19
|
-
#include "nodes/JsiPatchNode.h"
|
20
|
-
#include "nodes/JsiPathNode.h"
|
21
|
-
#include "nodes/JsiPointsNode.h"
|
22
|
-
#include "nodes/JsiRRectNode.h"
|
23
|
-
#include "nodes/JsiRectNode.h"
|
24
|
-
|
25
|
-
#include "nodes/JsiBlurMaskNode.h"
|
26
|
-
#include "nodes/JsiImageSvgNode.h"
|
27
|
-
#include "nodes/JsiPictureNode.h"
|
28
|
-
#include "nodes/JsiVerticesNode.h"
|
29
|
-
|
30
|
-
#include "nodes/JsiColorFilterNodes.h"
|
31
|
-
#include "nodes/JsiImageFilterNodes.h"
|
32
|
-
#include "nodes/JsiPathEffectNodes.h"
|
33
|
-
#include "nodes/JsiShaderNodes.h"
|
34
|
-
|
35
|
-
#include "nodes/JsiPaintNode.h"
|
36
|
-
|
37
|
-
#include "nodes/JsiBackdropFilterNode.h"
|
38
|
-
#include "nodes/JsiBlendNode.h"
|
39
|
-
#include "nodes/JsiBoxNode.h"
|
40
|
-
#include "nodes/JsiBoxShadowNode.h"
|
41
|
-
|
42
|
-
#include "nodes/JsiGlyphsNode.h"
|
43
|
-
#include "nodes/JsiTextBlobNode.h"
|
44
|
-
#include "nodes/JsiTextNode.h"
|
45
|
-
#include "nodes/JsiTextPathNode.h"
|
46
|
-
|
47
|
-
#include "nodes/JsiLayerNode.h"
|
48
|
-
#include "nodes/JsiParagraphNode.h"
|
49
|
-
|
50
|
-
namespace RNSkia {
|
51
|
-
|
52
|
-
namespace jsi = facebook::jsi;
|
53
|
-
|
54
|
-
class JsiDomApi : public JsiHostObject {
|
55
|
-
public:
|
56
|
-
explicit JsiDomApi(std::shared_ptr<RNSkPlatformContext> context)
|
57
|
-
: JsiHostObject() {
|
58
|
-
|
59
|
-
// Shapes
|
60
|
-
installFunction("RectNode", JsiRectNode::createCtor(context));
|
61
|
-
installFunction("RRectNode", JsiRRectNode::createCtor(context));
|
62
|
-
installFunction("CircleNode", JsiCircleNode::createCtor(context));
|
63
|
-
installFunction("PathNode", JsiPathNode::createCtor(context));
|
64
|
-
installFunction("LineNode", JsiLineNode::createCtor(context));
|
65
|
-
installFunction("ImageNode", JsiImageNode::createCtor(context));
|
66
|
-
installFunction("OvalNode", JsiOvalNode::createCtor(context));
|
67
|
-
installFunction("PatchNode", JsiPatchNode::createCtor(context));
|
68
|
-
installFunction("PointsNode", JsiPointsNode::createCtor(context));
|
69
|
-
installFunction("DiffRectNode", JsiDiffRectNode::createCtor(context));
|
70
|
-
installFunction("AtlasNode", JsiAtlasNode::createCtor(context));
|
71
|
-
|
72
|
-
installFunction("FillNode", JsiFillNode::createCtor(context));
|
73
|
-
|
74
|
-
installFunction("GroupNode", JsiGroupNode::createCtor(context));
|
75
|
-
|
76
|
-
installFunction("PaintNode", JsiPaintNode::createCtor(context));
|
77
|
-
|
78
|
-
installFunction("BlurMaskFilterNode", JsiBlurMaskNode::createCtor(context));
|
79
|
-
|
80
|
-
installFunction("PictureNode", JsiPictureNode::createCtor(context));
|
81
|
-
installFunction("ImageSVGNode", JsiImageSvgNode::createCtor(context));
|
82
|
-
|
83
|
-
installFunction("VerticesNode", JsiVerticesNode::createCtor(context));
|
84
|
-
|
85
|
-
// Path effects
|
86
|
-
installFunction("DashPathEffectNode",
|
87
|
-
JsiDashPathEffectNode::createCtor(context));
|
88
|
-
installFunction("DiscretePathEffectNode",
|
89
|
-
JsiDiscretePathEffectNode::createCtor(context));
|
90
|
-
installFunction("CornerPathEffectNode",
|
91
|
-
JsiCornerPathEffectNode::createCtor(context));
|
92
|
-
installFunction("Path1DPathEffectNode",
|
93
|
-
JsiPath1DPathEffectNode::createCtor(context));
|
94
|
-
installFunction("Path2DPathEffectNode",
|
95
|
-
JsiPath2DPathEffectNode::createCtor(context));
|
96
|
-
installFunction("Line2DPathEffectNode",
|
97
|
-
JsiLine2DPathEffectNode::createCtor(context));
|
98
|
-
installFunction("SumPathEffectNode",
|
99
|
-
JsiSumPathEffectNode::createCtor(context));
|
100
|
-
|
101
|
-
// Image filters
|
102
|
-
installFunction("DashPathEffectNode",
|
103
|
-
JsiBlendImageFilterNode::createCtor(context));
|
104
|
-
installFunction("DropShadowImageFilterNode",
|
105
|
-
JsiDropShadowImageFilterNode::createCtor(context));
|
106
|
-
installFunction("DisplacementMapImageFilterNode",
|
107
|
-
JsiDisplacementMapImageFilterNode::createCtor(context));
|
108
|
-
installFunction("BlurImageFilterNode",
|
109
|
-
JsiBlurImageFilterNode::createCtor(context));
|
110
|
-
installFunction("OffsetImageFilterNode",
|
111
|
-
JsiOffsetImageFilterNode::createCtor(context));
|
112
|
-
installFunction("MorphologyImageFilterNode",
|
113
|
-
JsiMorphologyImageFilterNode::createCtor(context));
|
114
|
-
installFunction("RuntimeShaderImageFilterNode",
|
115
|
-
JsiRuntimeShaderImageFilterNode::createCtor(context));
|
116
|
-
|
117
|
-
// Color Filters
|
118
|
-
installFunction("MatrixColorFilterNode",
|
119
|
-
JsiMatrixColorFilterNode::createCtor(context));
|
120
|
-
installFunction("BlendColorFilterNode",
|
121
|
-
JsiBlendColorFilterNode::createCtor(context));
|
122
|
-
installFunction("LinearToSRGBGammaColorFilterNode",
|
123
|
-
JsiLinearToSRGBGammaColorFilterNode::createCtor(context));
|
124
|
-
installFunction("SRGBToLinearGammaColorFilterNode",
|
125
|
-
JsiSRGBToLinearGammaColorFilterNode::createCtor(context));
|
126
|
-
installFunction("LumaColorFilterNode",
|
127
|
-
JsiLumaColorFilterNode::createCtor(context));
|
128
|
-
installFunction("LerpColorFilterNode",
|
129
|
-
JsiLerpColorFilterNode::createCtor(context));
|
130
|
-
|
131
|
-
// Shaders
|
132
|
-
installFunction("ShaderNode", JsiShaderNode::createCtor(context));
|
133
|
-
installFunction("ImageShaderNode", JsiImageShaderNode::createCtor(context));
|
134
|
-
installFunction("ColorShaderNode", JsiColorShaderNode::createCtor(context));
|
135
|
-
installFunction("TurbulenceNode", JsiTurbulenceNode::createCtor(context));
|
136
|
-
installFunction("FractalNoiseNode",
|
137
|
-
JsiFractalNoiseNode::createCtor(context));
|
138
|
-
installFunction("LinearGradientNode",
|
139
|
-
JsiLinearGradientNode::createCtor(context));
|
140
|
-
installFunction("RadialGradientNode",
|
141
|
-
JsiRadialGradientNode::createCtor(context));
|
142
|
-
installFunction("SweepGradientNode",
|
143
|
-
JsiSweepGradientNode::createCtor(context));
|
144
|
-
installFunction("TwoPointConicalGradientNode",
|
145
|
-
JsiTwoPointConicalGradientNode::createCtor(context));
|
146
|
-
|
147
|
-
installFunction("BackdropFilterNode",
|
148
|
-
JsiBackdropFilterNode::createCtor(context));
|
149
|
-
installFunction("BlendNode", JsiBlendNode::createCtor(context));
|
150
|
-
installFunction("BoxNode", JsiBoxNode::createCtor(context));
|
151
|
-
installFunction("BoxShadowNode", JsiBoxShadowNode::createCtor(context));
|
152
|
-
|
153
|
-
installFunction("GlyphsNode", JsiGlyphsNode::createCtor(context));
|
154
|
-
installFunction("TextNode", JsiTextNode::createCtor(context));
|
155
|
-
installFunction("TextPathNode", JsiTextPathNode::createCtor(context));
|
156
|
-
installFunction("TextBlobNode", JsiTextBlobNode::createCtor(context));
|
157
|
-
|
158
|
-
installFunction("LayerNode", JsiLayerNode::createCtor(context));
|
159
|
-
|
160
|
-
// Paragraph node
|
161
|
-
installFunction("ParagraphNode", JsiParagraphNode::createCtor(context));
|
162
|
-
}
|
163
|
-
};
|
164
|
-
|
165
|
-
} // namespace RNSkia
|
@@ -1,72 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include "DrawingContext.h"
|
4
|
-
#include "JsiValue.h"
|
5
|
-
|
6
|
-
#include <string>
|
7
|
-
|
8
|
-
namespace RNSkia {
|
9
|
-
|
10
|
-
class NodeProp;
|
11
|
-
|
12
|
-
using namespace RNJsi; // NOLINT
|
13
|
-
|
14
|
-
using ReadPropFunc =
|
15
|
-
std::function<jsi::Value(jsi::Runtime &, PropId, NodeProp *prop)>;
|
16
|
-
|
17
|
-
/**
|
18
|
-
Base class for Dom Node Properties
|
19
|
-
*/
|
20
|
-
class BaseNodeProp {
|
21
|
-
public:
|
22
|
-
virtual ~BaseNodeProp() {}
|
23
|
-
|
24
|
-
/**
|
25
|
-
Use to check if the value represented by this property has a usable
|
26
|
-
(non-null/undefined) value or not.
|
27
|
-
*/
|
28
|
-
virtual bool isSet() = 0;
|
29
|
-
|
30
|
-
/**
|
31
|
-
True if the property has changed since we last visited it
|
32
|
-
*/
|
33
|
-
virtual bool isChanged() = 0;
|
34
|
-
|
35
|
-
/**
|
36
|
-
Updates any pending values that has happened from other threads, sets flags
|
37
|
-
for changed.
|
38
|
-
*/
|
39
|
-
virtual void updatePendingChanges() = 0;
|
40
|
-
|
41
|
-
/*
|
42
|
-
Marks property flags for changed as resolved
|
43
|
-
*/
|
44
|
-
virtual void markAsResolved() = 0;
|
45
|
-
|
46
|
-
/**
|
47
|
-
Override to read the value represented by this property from the Javascript
|
48
|
-
property object
|
49
|
-
*/
|
50
|
-
virtual void readValueFromJs(jsi::Runtime &runtime,
|
51
|
-
const ReadPropFunc &read) = 0;
|
52
|
-
|
53
|
-
/**
|
54
|
-
Returns the name (or names) in a property
|
55
|
-
*/
|
56
|
-
virtual std::string getName() = 0;
|
57
|
-
|
58
|
-
/**
|
59
|
-
Sets the property as required
|
60
|
-
*/
|
61
|
-
void require() { _isRequired = true; }
|
62
|
-
|
63
|
-
/**
|
64
|
-
Returns true for required props
|
65
|
-
*/
|
66
|
-
bool isRequired() { return _isRequired; }
|
67
|
-
|
68
|
-
private:
|
69
|
-
bool _isRequired = false;
|
70
|
-
};
|
71
|
-
|
72
|
-
} // namespace RNSkia
|
@@ -1,117 +0,0 @@
|
|
1
|
-
#include "ConcatablePaint.h"
|
2
|
-
|
3
|
-
#include "DeclarationContext.h"
|
4
|
-
#include "JsiDomNode.h"
|
5
|
-
#include "PaintProps.h"
|
6
|
-
|
7
|
-
namespace RNSkia {
|
8
|
-
|
9
|
-
ConcatablePaint::ConcatablePaint(
|
10
|
-
DeclarationContext *declarationContext, PaintProps *paintProps,
|
11
|
-
const std::vector<std::shared_ptr<JsiDomNode>> &children)
|
12
|
-
: _declarationContext(declarationContext), _paintProps(paintProps),
|
13
|
-
_children(children) {
|
14
|
-
|
15
|
-
auto hasPropertyValues = _paintProps->getColor()->isSet() ||
|
16
|
-
_paintProps->getStrokeWidth()->isSet() ||
|
17
|
-
_paintProps->getBlendMode()->isSet() ||
|
18
|
-
_paintProps->getStyle()->isSet() ||
|
19
|
-
_paintProps->getStrokeJoin()->isSet() ||
|
20
|
-
_paintProps->getStrokeCap()->isSet() ||
|
21
|
-
_paintProps->getStrokeMiter()->isSet() ||
|
22
|
-
_paintProps->getOpacity()->isSet() ||
|
23
|
-
_paintProps->getAntiAlias()->isSet();
|
24
|
-
|
25
|
-
_declarationContext->save();
|
26
|
-
|
27
|
-
for (auto &child : _children) {
|
28
|
-
child->decorateContext(_declarationContext);
|
29
|
-
}
|
30
|
-
|
31
|
-
_imageFilter = declarationContext->getImageFilters()->popAsOne();
|
32
|
-
_colorFilter = declarationContext->getColorFilters()->popAsOne();
|
33
|
-
_shader = declarationContext->getShaders()->pop();
|
34
|
-
_maskFilter = declarationContext->getMaskFilters()->pop();
|
35
|
-
_pathEffect = declarationContext->getPathEffects()->popAsOne();
|
36
|
-
|
37
|
-
_declarationContext->restore();
|
38
|
-
|
39
|
-
_isEmpty = !hasPropertyValues && _imageFilter == nullptr &&
|
40
|
-
_colorFilter == nullptr && _shader == nullptr &&
|
41
|
-
_maskFilter == nullptr && _pathEffect == nullptr;
|
42
|
-
}
|
43
|
-
|
44
|
-
bool ConcatablePaint::isEmpty() { return _isEmpty; }
|
45
|
-
|
46
|
-
void ConcatablePaint::concatTo(std::shared_ptr<SkPaint> paint) {
|
47
|
-
|
48
|
-
if (_paintProps->getOpacity()->isSet()) {
|
49
|
-
paint->setAlphaf(paint->getAlphaf() *
|
50
|
-
_paintProps->getOpacity()->value().getAsNumber());
|
51
|
-
}
|
52
|
-
|
53
|
-
if (_paintProps->getColor()->isSet()) {
|
54
|
-
auto currentOpacity = paint->getAlphaf();
|
55
|
-
paint->setShader(nullptr);
|
56
|
-
paint->setColor(*_paintProps->getColor()->getDerivedValue());
|
57
|
-
paint->setAlphaf(paint->getAlphaf() * currentOpacity);
|
58
|
-
}
|
59
|
-
|
60
|
-
if (_paintProps->getStrokeWidth()->isSet()) {
|
61
|
-
paint->setStrokeWidth(_paintProps->getStrokeWidth()->value().getAsNumber());
|
62
|
-
}
|
63
|
-
|
64
|
-
if (_paintProps->getBlendMode()->isSet()) {
|
65
|
-
paint->setBlendMode(*_paintProps->getBlendMode()->getDerivedValue());
|
66
|
-
}
|
67
|
-
|
68
|
-
if (_paintProps->getStyle()->isSet()) {
|
69
|
-
auto styleValue = _paintProps->getStyle()->value().getAsString();
|
70
|
-
if (styleValue == "stroke") {
|
71
|
-
paint->setStyle(SkPaint::Style::kStroke_Style);
|
72
|
-
} else if (styleValue == "fill") {
|
73
|
-
paint->setStyle(SkPaint::Style::kFill_Style);
|
74
|
-
} else {
|
75
|
-
throw std::runtime_error(styleValue +
|
76
|
-
" is not a valud value for the style property.");
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
if (_paintProps->getStrokeJoin()->isSet()) {
|
81
|
-
paint->setStrokeJoin(*_paintProps->getStrokeJoin()->getDerivedValue());
|
82
|
-
}
|
83
|
-
|
84
|
-
if (_paintProps->getStrokeCap()->isSet()) {
|
85
|
-
paint->setStrokeCap(*_paintProps->getStrokeCap()->getDerivedValue());
|
86
|
-
}
|
87
|
-
|
88
|
-
if (_paintProps->getStrokeMiter()->isSet()) {
|
89
|
-
paint->setStrokeMiter(_paintProps->getStrokeMiter()->value().getAsNumber());
|
90
|
-
}
|
91
|
-
|
92
|
-
if (_paintProps->getAntiAlias()->isSet()) {
|
93
|
-
paint->setAntiAlias(_paintProps->getAntiAlias()->value().getAsBool());
|
94
|
-
}
|
95
|
-
|
96
|
-
if (_imageFilter) {
|
97
|
-
paint->setImageFilter(_imageFilter);
|
98
|
-
}
|
99
|
-
|
100
|
-
if (_colorFilter) {
|
101
|
-
paint->setColorFilter(_colorFilter);
|
102
|
-
}
|
103
|
-
|
104
|
-
if (_shader) {
|
105
|
-
paint->setShader(_shader);
|
106
|
-
}
|
107
|
-
|
108
|
-
if (_maskFilter) {
|
109
|
-
paint->setMaskFilter(_maskFilter);
|
110
|
-
}
|
111
|
-
|
112
|
-
if (_pathEffect) {
|
113
|
-
paint->setPathEffect(_pathEffect);
|
114
|
-
}
|
115
|
-
}
|
116
|
-
|
117
|
-
} // namespace RNSkia
|
@@ -1,49 +0,0 @@
|
|
1
|
-
#pragma once
|
2
|
-
|
3
|
-
#include <memory>
|
4
|
-
#include <vector>
|
5
|
-
|
6
|
-
#pragma clang diagnostic push
|
7
|
-
#pragma clang diagnostic ignored "-Wdocumentation"
|
8
|
-
|
9
|
-
#include "include/core/SkColorFilter.h"
|
10
|
-
#include "include/core/SkImageFilter.h"
|
11
|
-
#include "include/core/SkMaskFilter.h"
|
12
|
-
#include "include/core/SkPaint.h"
|
13
|
-
#include "include/core/SkPathEffect.h"
|
14
|
-
#include "include/core/SkShader.h"
|
15
|
-
|
16
|
-
#pragma clang diagnostic pop
|
17
|
-
|
18
|
-
namespace RNSkia {
|
19
|
-
|
20
|
-
class JsiDomNode;
|
21
|
-
class PaintProps;
|
22
|
-
class DeclarationContext;
|
23
|
-
|
24
|
-
/**
|
25
|
-
Class for concatenating SkPaint objects.
|
26
|
-
*/
|
27
|
-
class ConcatablePaint {
|
28
|
-
public:
|
29
|
-
ConcatablePaint(DeclarationContext *context, PaintProps *paintProps,
|
30
|
-
const std::vector<std::shared_ptr<JsiDomNode>> &children);
|
31
|
-
|
32
|
-
void concatTo(std::shared_ptr<SkPaint> paint);
|
33
|
-
bool isEmpty();
|
34
|
-
|
35
|
-
private:
|
36
|
-
DeclarationContext *_declarationContext;
|
37
|
-
const std::vector<std::shared_ptr<JsiDomNode>> _children;
|
38
|
-
PaintProps *_paintProps;
|
39
|
-
|
40
|
-
bool _isEmpty{true};
|
41
|
-
|
42
|
-
sk_sp<SkImageFilter> _imageFilter;
|
43
|
-
sk_sp<SkColorFilter> _colorFilter;
|
44
|
-
sk_sp<SkPathEffect> _pathEffect;
|
45
|
-
sk_sp<SkMaskFilter> _maskFilter;
|
46
|
-
sk_sp<SkShader> _shader;
|
47
|
-
};
|
48
|
-
|
49
|
-
} // namespace RNSkia
|