@shopify/react-native-skia 0.1.163 → 0.1.165
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/cpp/api/JsiSkPaint.h +6 -0
- package/cpp/api/JsiSkRuntimeEffect.h +7 -2
- package/cpp/jsi/JsiHostObject.h +25 -25
- package/cpp/rnskia/RNSkDomView.cpp +1 -1
- package/cpp/rnskia/RNSkPlatformContext.h +2 -6
- package/cpp/rnskia/dom/base/DrawingContext.cpp +23 -41
- package/cpp/rnskia/dom/base/DrawingContext.h +6 -19
- package/cpp/rnskia/dom/base/JsiDomDeclarationNode.h +12 -2
- package/cpp/rnskia/dom/base/JsiDomDrawingNode.h +4 -4
- package/cpp/rnskia/dom/base/JsiDomNode.h +68 -10
- package/cpp/rnskia/dom/base/JsiDomRenderNode.h +26 -61
- package/cpp/rnskia/dom/base/NodeProp.h +2 -1
- package/cpp/rnskia/dom/base/NodePropsContainer.h +10 -0
- package/cpp/rnskia/dom/nodes/JsiBlendNode.h +1 -2
- package/cpp/rnskia/dom/nodes/JsiBlurMaskNode.h +3 -6
- package/cpp/rnskia/dom/nodes/JsiBoxNode.h +2 -4
- package/cpp/rnskia/dom/nodes/JsiBoxShadowNode.h +1 -2
- package/cpp/rnskia/dom/nodes/JsiCircleNode.h +2 -5
- package/cpp/rnskia/dom/nodes/JsiColorFilterNodes.h +4 -8
- package/cpp/rnskia/dom/nodes/JsiCustomDrawingNode.h +2 -5
- package/cpp/rnskia/dom/nodes/JsiDiffRectNode.h +2 -7
- package/cpp/rnskia/dom/nodes/JsiGlyphsNode.h +4 -8
- package/cpp/rnskia/dom/nodes/JsiImageFilterNodes.h +20 -38
- package/cpp/rnskia/dom/nodes/JsiImageNode.h +1 -1
- package/cpp/rnskia/dom/nodes/JsiImageSvgNode.h +2 -4
- package/cpp/rnskia/dom/nodes/JsiLineNode.h +2 -7
- package/cpp/rnskia/dom/nodes/JsiOvalNode.h +1 -3
- package/cpp/rnskia/dom/nodes/JsiPaintNode.h +2 -3
- package/cpp/rnskia/dom/nodes/JsiPatchNode.h +4 -8
- package/cpp/rnskia/dom/nodes/JsiPathEffectNodes.h +14 -28
- package/cpp/rnskia/dom/nodes/JsiPathNode.h +6 -16
- package/cpp/rnskia/dom/nodes/JsiPictureNode.h +1 -2
- package/cpp/rnskia/dom/nodes/JsiPointsNode.h +2 -5
- package/cpp/rnskia/dom/nodes/JsiRRectNode.h +1 -2
- package/cpp/rnskia/dom/nodes/JsiRectNode.h +1 -2
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +37 -69
- package/cpp/rnskia/dom/nodes/JsiTextBlobNode.h +3 -6
- package/cpp/rnskia/dom/nodes/JsiTextNode.h +4 -8
- package/cpp/rnskia/dom/nodes/JsiTextPathNode.h +1 -2
- package/cpp/rnskia/dom/nodes/JsiVerticesNode.h +2 -4
- package/cpp/rnskia/dom/props/CircleProp.h +2 -0
- package/cpp/rnskia/dom/props/ColorProp.h +9 -4
- package/cpp/rnskia/dom/props/ImageProps.h +3 -2
- package/cpp/rnskia/dom/props/PaintProps.h +15 -7
- package/cpp/rnskia/dom/props/RectProp.h +11 -4
- package/cpp/rnskia/dom/props/TransformProp.h +0 -2
- package/cpp/rnskia/dom/props/UniformsProp.h +86 -123
- package/cpp/rnskia/values/RNSkReadonlyValue.h +2 -6
- package/cpp/utils/RNSkLog.h +1 -1
- package/lib/commonjs/dom/nodes/RenderNode.js +12 -16
- package/lib/commonjs/dom/nodes/RenderNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Circle.js +6 -1
- package/lib/commonjs/dom/nodes/datatypes/Circle.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Rect.js +3 -3
- package/lib/commonjs/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/commonjs/dom/nodes/datatypes/index.js +0 -13
- package/lib/commonjs/dom/nodes/datatypes/index.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/Box.js +6 -6
- package/lib/commonjs/dom/nodes/drawings/Box.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/ImageNode.js +2 -2
- package/lib/commonjs/dom/nodes/drawings/ImageNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/PatchNode.js +3 -7
- package/lib/commonjs/dom/nodes/drawings/PatchNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/drawings/VerticesNode.js +1 -1
- package/lib/commonjs/dom/nodes/drawings/VerticesNode.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/ColorFilters.js +1 -3
- package/lib/commonjs/dom/nodes/paint/ColorFilters.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/ImageFilters.js +1 -1
- package/lib/commonjs/dom/nodes/paint/ImageFilters.js.map +1 -1
- package/lib/commonjs/dom/nodes/paint/Shaders.js +1 -3
- package/lib/commonjs/dom/nodes/paint/Shaders.js.map +1 -1
- package/lib/commonjs/dom/types/Common.js.map +1 -1
- package/lib/commonjs/dom/types/DrawingContext.js.map +1 -1
- package/lib/commonjs/dom/types/Drawings.js.map +1 -1
- package/lib/commonjs/renderer/DrawingContext.js.map +1 -1
- package/lib/commonjs/renderer/components/Mask.js +2 -6
- package/lib/commonjs/renderer/components/Mask.js.map +1 -1
- package/lib/commonjs/renderer/components/image/Image.js +0 -5
- package/lib/commonjs/renderer/components/image/Image.js.map +1 -1
- package/lib/commonjs/renderer/components/image/ImageShader.js +20 -10
- package/lib/commonjs/renderer/components/image/ImageShader.js.map +1 -1
- package/lib/commonjs/renderer/components/imageFilters/Blur.js +10 -5
- package/lib/commonjs/renderer/components/imageFilters/Blur.js.map +1 -1
- package/lib/commonjs/renderer/components/imageFilters/Morphology.js +10 -5
- package/lib/commonjs/renderer/components/imageFilters/Morphology.js.map +1 -1
- package/lib/commonjs/renderer/components/imageFilters/Offset.js +12 -6
- package/lib/commonjs/renderer/components/imageFilters/Offset.js.map +1 -1
- package/lib/commonjs/renderer/components/maskFilters/Blur.js +12 -6
- package/lib/commonjs/renderer/components/maskFilters/Blur.js.map +1 -1
- package/lib/commonjs/renderer/components/pathEffects/Discrete.js +10 -5
- package/lib/commonjs/renderer/components/pathEffects/Discrete.js.map +1 -1
- package/lib/commonjs/renderer/components/shaders/FractalNoise.js +14 -7
- package/lib/commonjs/renderer/components/shaders/FractalNoise.js.map +1 -1
- package/lib/commonjs/renderer/components/shaders/Shader.js +10 -5
- package/lib/commonjs/renderer/components/shaders/Shader.js.map +1 -1
- package/lib/commonjs/renderer/components/shaders/Turbulence.js +14 -7
- package/lib/commonjs/renderer/components/shaders/Turbulence.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Circle.js +0 -6
- package/lib/commonjs/renderer/components/shapes/Circle.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/FitBox.js +1 -4
- package/lib/commonjs/renderer/components/shapes/FitBox.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Oval.js +0 -4
- package/lib/commonjs/renderer/components/shapes/Oval.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Path.js +12 -6
- package/lib/commonjs/renderer/components/shapes/Path.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Points.js +10 -5
- package/lib/commonjs/renderer/components/shapes/Points.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/RoundedRect.js +0 -3
- package/lib/commonjs/renderer/components/shapes/RoundedRect.js.map +1 -1
- package/lib/commonjs/renderer/components/shapes/Vertices.js +10 -5
- package/lib/commonjs/renderer/components/shapes/Vertices.js.map +1 -1
- package/lib/commonjs/renderer/components/text/Glyphs.js +12 -6
- package/lib/commonjs/renderer/components/text/Glyphs.js.map +1 -1
- package/lib/commonjs/renderer/components/text/Text.js +12 -6
- package/lib/commonjs/renderer/components/text/Text.js.map +1 -1
- package/lib/commonjs/renderer/components/text/TextBlob.js +12 -6
- package/lib/commonjs/renderer/components/text/TextBlob.js.map +1 -1
- package/lib/commonjs/renderer/components/text/TextPath.js +10 -5
- package/lib/commonjs/renderer/components/text/TextPath.js.map +1 -1
- package/lib/commonjs/renderer/processors/Animations/Animations.js.map +1 -1
- package/lib/commonjs/skia/types/Paint/Paint.js.map +1 -1
- package/lib/commonjs/skia/types/RuntimeEffect/RuntimeEffect.js.map +1 -1
- package/lib/commonjs/skia/types/Shader/Shader.js +3 -2
- package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkPaint.js +4 -0
- package/lib/commonjs/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkRuntimeEffect.js +6 -1
- package/lib/commonjs/skia/web/JsiSkRuntimeEffect.js.map +1 -1
- package/lib/commonjs/skia/web/JsiSkRuntimeEffectFactory.js +1 -1
- package/lib/commonjs/skia/web/JsiSkRuntimeEffectFactory.js.map +1 -1
- package/lib/commonjs/web/LoadSkiaWeb.js +1 -1
- package/lib/commonjs/web/LoadSkiaWeb.js.map +1 -1
- package/lib/module/dom/nodes/RenderNode.js +12 -16
- package/lib/module/dom/nodes/RenderNode.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Circle.js +8 -1
- package/lib/module/dom/nodes/datatypes/Circle.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/Rect.js +7 -3
- package/lib/module/dom/nodes/datatypes/Rect.js.map +1 -1
- package/lib/module/dom/nodes/datatypes/index.js +0 -1
- package/lib/module/dom/nodes/datatypes/index.js.map +1 -1
- package/lib/module/dom/nodes/drawings/Box.js +6 -5
- package/lib/module/dom/nodes/drawings/Box.js.map +1 -1
- package/lib/module/dom/nodes/drawings/ImageNode.js +4 -2
- package/lib/module/dom/nodes/drawings/ImageNode.js.map +1 -1
- package/lib/module/dom/nodes/drawings/PatchNode.js +4 -8
- package/lib/module/dom/nodes/drawings/PatchNode.js.map +1 -1
- package/lib/module/dom/nodes/drawings/VerticesNode.js +2 -2
- package/lib/module/dom/nodes/drawings/VerticesNode.js.map +1 -1
- package/lib/module/dom/nodes/paint/ColorFilters.js +1 -2
- package/lib/module/dom/nodes/paint/ColorFilters.js.map +1 -1
- package/lib/module/dom/nodes/paint/ImageFilters.js +2 -2
- package/lib/module/dom/nodes/paint/ImageFilters.js.map +1 -1
- package/lib/module/dom/nodes/paint/Shaders.js +1 -2
- package/lib/module/dom/nodes/paint/Shaders.js.map +1 -1
- package/lib/module/dom/types/Common.js.map +1 -1
- package/lib/module/dom/types/DrawingContext.js.map +1 -1
- package/lib/module/dom/types/Drawings.js.map +1 -1
- package/lib/module/renderer/DrawingContext.js.map +1 -1
- package/lib/module/renderer/components/Mask.js +2 -6
- package/lib/module/renderer/components/Mask.js.map +1 -1
- package/lib/module/renderer/components/image/Image.js +0 -5
- package/lib/module/renderer/components/image/Image.js.map +1 -1
- package/lib/module/renderer/components/image/ImageShader.js +20 -10
- package/lib/module/renderer/components/image/ImageShader.js.map +1 -1
- package/lib/module/renderer/components/imageFilters/Blur.js +10 -5
- package/lib/module/renderer/components/imageFilters/Blur.js.map +1 -1
- package/lib/module/renderer/components/imageFilters/Morphology.js +10 -5
- package/lib/module/renderer/components/imageFilters/Morphology.js.map +1 -1
- package/lib/module/renderer/components/imageFilters/Offset.js +12 -6
- package/lib/module/renderer/components/imageFilters/Offset.js.map +1 -1
- package/lib/module/renderer/components/maskFilters/Blur.js +12 -6
- package/lib/module/renderer/components/maskFilters/Blur.js.map +1 -1
- package/lib/module/renderer/components/pathEffects/Discrete.js +10 -5
- package/lib/module/renderer/components/pathEffects/Discrete.js.map +1 -1
- package/lib/module/renderer/components/shaders/FractalNoise.js +14 -7
- package/lib/module/renderer/components/shaders/FractalNoise.js.map +1 -1
- package/lib/module/renderer/components/shaders/Shader.js +10 -5
- package/lib/module/renderer/components/shaders/Shader.js.map +1 -1
- package/lib/module/renderer/components/shaders/Turbulence.js +14 -7
- package/lib/module/renderer/components/shaders/Turbulence.js.map +1 -1
- package/lib/module/renderer/components/shapes/Circle.js +0 -6
- package/lib/module/renderer/components/shapes/Circle.js.map +1 -1
- package/lib/module/renderer/components/shapes/FitBox.js +1 -4
- package/lib/module/renderer/components/shapes/FitBox.js.map +1 -1
- package/lib/module/renderer/components/shapes/Oval.js +0 -4
- package/lib/module/renderer/components/shapes/Oval.js.map +1 -1
- package/lib/module/renderer/components/shapes/Path.js +12 -6
- package/lib/module/renderer/components/shapes/Path.js.map +1 -1
- package/lib/module/renderer/components/shapes/Points.js +10 -5
- package/lib/module/renderer/components/shapes/Points.js.map +1 -1
- package/lib/module/renderer/components/shapes/RoundedRect.js +0 -3
- package/lib/module/renderer/components/shapes/RoundedRect.js.map +1 -1
- package/lib/module/renderer/components/shapes/Vertices.js +10 -5
- package/lib/module/renderer/components/shapes/Vertices.js.map +1 -1
- package/lib/module/renderer/components/text/Glyphs.js +12 -6
- package/lib/module/renderer/components/text/Glyphs.js.map +1 -1
- package/lib/module/renderer/components/text/Text.js +12 -6
- package/lib/module/renderer/components/text/Text.js.map +1 -1
- package/lib/module/renderer/components/text/TextBlob.js +12 -6
- package/lib/module/renderer/components/text/TextBlob.js.map +1 -1
- package/lib/module/renderer/components/text/TextPath.js +10 -5
- package/lib/module/renderer/components/text/TextPath.js.map +1 -1
- package/lib/module/renderer/processors/Animations/Animations.js.map +1 -1
- package/lib/module/skia/types/Paint/Paint.js.map +1 -1
- package/lib/module/skia/types/RuntimeEffect/RuntimeEffect.js.map +1 -1
- package/lib/module/skia/types/Shader/Shader.js +3 -2
- package/lib/module/skia/types/Shader/Shader.js.map +1 -1
- package/lib/module/skia/web/JsiSkPaint.js +4 -0
- package/lib/module/skia/web/JsiSkPaint.js.map +1 -1
- package/lib/module/skia/web/JsiSkRuntimeEffect.js +6 -1
- package/lib/module/skia/web/JsiSkRuntimeEffect.js.map +1 -1
- package/lib/module/skia/web/JsiSkRuntimeEffectFactory.js +1 -1
- package/lib/module/skia/web/JsiSkRuntimeEffectFactory.js.map +1 -1
- package/lib/module/web/LoadSkiaWeb.js +1 -1
- package/lib/module/web/LoadSkiaWeb.js.map +1 -1
- package/lib/typescript/src/dom/nodes/datatypes/Circle.d.ts +4 -1
- package/lib/typescript/src/dom/nodes/datatypes/index.d.ts +0 -1
- package/lib/typescript/src/dom/nodes/drawings/Box.d.ts +1 -1
- package/lib/typescript/src/dom/nodes/drawings/PatchNode.d.ts +1 -1
- package/lib/typescript/src/dom/types/Common.d.ts +4 -4
- package/lib/typescript/src/dom/types/DrawingContext.d.ts +0 -1
- package/lib/typescript/src/dom/types/Drawings.d.ts +1 -1
- package/lib/typescript/src/renderer/DrawingContext.d.ts +3 -5
- package/lib/typescript/src/renderer/components/Mask.d.ts +3 -9
- package/lib/typescript/src/renderer/components/image/Image.d.ts +1 -8
- package/lib/typescript/src/renderer/components/image/ImageShader.d.ts +2 -12
- package/lib/typescript/src/renderer/components/imageFilters/Blur.d.ts +2 -7
- package/lib/typescript/src/renderer/components/imageFilters/Morphology.d.ts +2 -7
- package/lib/typescript/src/renderer/components/imageFilters/Offset.d.ts +2 -8
- package/lib/typescript/src/renderer/components/maskFilters/Blur.d.ts +2 -8
- package/lib/typescript/src/renderer/components/pathEffects/Discrete.d.ts +2 -7
- package/lib/typescript/src/renderer/components/shaders/FractalNoise.d.ts +2 -9
- package/lib/typescript/src/renderer/components/shaders/Shader.d.ts +2 -7
- package/lib/typescript/src/renderer/components/shaders/Turbulence.d.ts +2 -9
- package/lib/typescript/src/renderer/components/shapes/Circle.d.ts +1 -9
- package/lib/typescript/src/renderer/components/shapes/FitBox.d.ts +2 -7
- package/lib/typescript/src/renderer/components/shapes/Oval.d.ts +1 -7
- package/lib/typescript/src/renderer/components/shapes/Path.d.ts +2 -8
- package/lib/typescript/src/renderer/components/shapes/Points.d.ts +2 -7
- package/lib/typescript/src/renderer/components/shapes/RoundedRect.d.ts +1 -6
- package/lib/typescript/src/renderer/components/shapes/Vertices.d.ts +2 -7
- package/lib/typescript/src/renderer/components/text/Glyphs.d.ts +2 -8
- package/lib/typescript/src/renderer/components/text/Text.d.ts +2 -8
- package/lib/typescript/src/renderer/components/text/TextBlob.d.ts +2 -8
- package/lib/typescript/src/renderer/components/text/TextPath.d.ts +2 -7
- package/lib/typescript/src/renderer/processors/Animations/Animations.d.ts +5 -0
- package/lib/typescript/src/skia/types/Paint/Paint.d.ts +4 -0
- package/lib/typescript/src/skia/types/RuntimeEffect/RuntimeEffect.d.ts +4 -0
- package/lib/typescript/src/skia/types/Shader/Shader.d.ts +1 -1
- package/lib/typescript/src/skia/web/JsiSkPaint.d.ts +1 -0
- package/lib/typescript/src/skia/web/JsiSkRuntimeEffect.d.ts +3 -1
- package/package.json +1 -1
- package/src/dom/nodes/RenderNode.ts +11 -21
- package/src/dom/nodes/datatypes/Circle.ts +1 -1
- package/src/dom/nodes/datatypes/Rect.ts +3 -3
- package/src/dom/nodes/datatypes/index.ts +0 -1
- package/src/dom/nodes/drawings/Box.ts +7 -4
- package/src/dom/nodes/drawings/ImageNode.ts +2 -1
- package/src/dom/nodes/drawings/PatchNode.ts +4 -18
- package/src/dom/nodes/drawings/VerticesNode.ts +2 -2
- package/src/dom/nodes/paint/ColorFilters.ts +1 -2
- package/src/dom/nodes/paint/ImageFilters.ts +2 -2
- package/src/dom/nodes/paint/Shaders.ts +1 -2
- package/src/dom/types/Common.ts +4 -4
- package/src/dom/types/DrawingContext.ts +0 -1
- package/src/dom/types/Drawings.ts +1 -1
- package/src/renderer/DrawingContext.ts +5 -5
- package/src/renderer/components/Mask.tsx +8 -8
- package/src/renderer/components/image/Image.tsx +0 -6
- package/src/renderer/components/image/ImageShader.tsx +24 -12
- package/src/renderer/components/imageFilters/Blur.tsx +6 -7
- package/src/renderer/components/imageFilters/Morphology.tsx +6 -7
- package/src/renderer/components/imageFilters/Offset.tsx +7 -8
- package/src/renderer/components/maskFilters/Blur.tsx +7 -8
- package/src/renderer/components/pathEffects/Discrete.tsx +6 -9
- package/src/renderer/components/shaders/FractalNoise.tsx +18 -9
- package/src/renderer/components/shaders/Shader.tsx +6 -7
- package/src/renderer/components/shaders/Turbulence.tsx +15 -9
- package/src/renderer/components/shapes/Circle.tsx +0 -4
- package/src/renderer/components/shapes/FitBox.tsx +2 -6
- package/src/renderer/components/shapes/Oval.tsx +0 -5
- package/src/renderer/components/shapes/Path.tsx +7 -8
- package/src/renderer/components/shapes/Points.tsx +6 -7
- package/src/renderer/components/shapes/RoundedRect.tsx +0 -4
- package/src/renderer/components/shapes/Vertices.tsx +6 -7
- package/src/renderer/components/text/Glyphs.tsx +7 -8
- package/src/renderer/components/text/Text.tsx +7 -8
- package/src/renderer/components/text/TextBlob.tsx +7 -8
- package/src/renderer/components/text/TextPath.tsx +6 -7
- package/src/renderer/processors/Animations/Animations.ts +9 -3
- package/src/skia/types/Paint/Paint.ts +5 -0
- package/src/skia/types/RuntimeEffect/RuntimeEffect.ts +5 -0
- package/src/skia/types/Shader/Shader.ts +5 -3
- package/src/skia/web/JsiSkPaint.ts +4 -0
- package/src/skia/web/JsiSkRuntimeEffect.ts +5 -1
- package/src/skia/web/JsiSkRuntimeEffectFactory.ts +1 -1
- package/src/web/LoadSkiaWeb.tsx +1 -1
- package/lib/commonjs/dom/nodes/datatypes/Color.js +0 -27
- package/lib/commonjs/dom/nodes/datatypes/Color.js.map +0 -1
- package/lib/module/dom/nodes/datatypes/Color.js +0 -11
- package/lib/module/dom/nodes/datatypes/Color.js.map +0 -1
- package/lib/typescript/src/dom/nodes/datatypes/Color.d.ts +0 -7
- package/src/dom/nodes/datatypes/Color.ts +0 -15
package/cpp/api/JsiSkPaint.h
CHANGED
|
@@ -63,6 +63,11 @@ public:
|
|
|
63
63
|
return static_cast<double>(getObject()->getStrokeWidth());
|
|
64
64
|
}
|
|
65
65
|
|
|
66
|
+
JSI_HOST_FUNCTION(getAlphaf) {
|
|
67
|
+
float alphaf = getObject()->getAlphaf();
|
|
68
|
+
return jsi::Value(SkScalarToDouble(alphaf));
|
|
69
|
+
}
|
|
70
|
+
|
|
66
71
|
JSI_HOST_FUNCTION(setColor) {
|
|
67
72
|
SkColor color = JsiSkColor::fromValue(runtime, arguments[0]);
|
|
68
73
|
getObject()->setColor(color);
|
|
@@ -159,6 +164,7 @@ public:
|
|
|
159
164
|
|
|
160
165
|
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkPaint, copy),
|
|
161
166
|
JSI_EXPORT_FUNC(JsiSkPaint, reset),
|
|
167
|
+
JSI_EXPORT_FUNC(JsiSkPaint, getAlphaf),
|
|
162
168
|
JSI_EXPORT_FUNC(JsiSkPaint, getColor),
|
|
163
169
|
JSI_EXPORT_FUNC(JsiSkPaint, getStrokeCap),
|
|
164
170
|
JSI_EXPORT_FUNC(JsiSkPaint, getStrokeJoin),
|
|
@@ -117,6 +117,10 @@ public:
|
|
|
117
117
|
return result;
|
|
118
118
|
}
|
|
119
119
|
|
|
120
|
+
JSI_HOST_FUNCTION(source) {
|
|
121
|
+
return jsi::String::createFromAscii(runtime, getObject()->source());
|
|
122
|
+
}
|
|
123
|
+
|
|
120
124
|
JSI_EXPORT_FUNCTIONS(JSI_EXPORT_FUNC(JsiSkRuntimeEffect, makeShader),
|
|
121
125
|
JSI_EXPORT_FUNC(JsiSkRuntimeEffect,
|
|
122
126
|
makeShaderWithChildren),
|
|
@@ -124,7 +128,8 @@ public:
|
|
|
124
128
|
JSI_EXPORT_FUNC(JsiSkRuntimeEffect,
|
|
125
129
|
getUniformFloatCount),
|
|
126
130
|
JSI_EXPORT_FUNC(JsiSkRuntimeEffect, getUniformName),
|
|
127
|
-
JSI_EXPORT_FUNC(JsiSkRuntimeEffect, getUniform)
|
|
131
|
+
JSI_EXPORT_FUNC(JsiSkRuntimeEffect, getUniform),
|
|
132
|
+
JSI_EXPORT_FUNC(JsiSkRuntimeEffect, source))
|
|
128
133
|
|
|
129
134
|
JsiSkRuntimeEffect(std::shared_ptr<RNSkPlatformContext> context,
|
|
130
135
|
sk_sp<SkRuntimeEffect> rt)
|
|
@@ -206,7 +211,7 @@ private:
|
|
|
206
211
|
const std::size_t offset = reu.slot + j;
|
|
207
212
|
float fValue = jsiUniforms.getValueAtIndex(runtime, offset).asNumber();
|
|
208
213
|
int iValue = static_cast<int>(fValue);
|
|
209
|
-
auto value = reu.isInteger ? iValue : fValue;
|
|
214
|
+
auto value = reu.isInteger ? SkBits2Float(iValue) : fValue;
|
|
210
215
|
memcpy(SkTAddOffset<void>(uniforms->writable_data(),
|
|
211
216
|
offset * sizeof(value)),
|
|
212
217
|
&value, sizeof(value));
|
package/cpp/jsi/JsiHostObject.h
CHANGED
|
@@ -132,31 +132,6 @@ public:
|
|
|
132
132
|
JsiHostObject();
|
|
133
133
|
~JsiHostObject();
|
|
134
134
|
|
|
135
|
-
protected:
|
|
136
|
-
/**
|
|
137
|
-
Override to return map of name/functions
|
|
138
|
-
*/
|
|
139
|
-
virtual const RNJsi::JsiFunctionMap &getExportedFunctionMap() {
|
|
140
|
-
static const RNJsi::JsiFunctionMap empty;
|
|
141
|
-
return empty;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
Override to get property getters map of name/functions
|
|
146
|
-
*/
|
|
147
|
-
virtual const JsiPropertyGettersMap &getExportedPropertyGettersMap() {
|
|
148
|
-
static const JsiPropertyGettersMap empty;
|
|
149
|
-
return empty;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
/**
|
|
153
|
-
Override to get property setters map of name/functions
|
|
154
|
-
*/
|
|
155
|
-
virtual const JsiPropertySettersMap &getExportedPropertySettersMap() {
|
|
156
|
-
static const JsiPropertySettersMap empty;
|
|
157
|
-
return empty;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
135
|
/**
|
|
161
136
|
* Overridden jsi::HostObject set property method
|
|
162
137
|
* @param rt Runtime
|
|
@@ -183,6 +158,31 @@ protected:
|
|
|
183
158
|
*/
|
|
184
159
|
std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime &runtime) override;
|
|
185
160
|
|
|
161
|
+
protected:
|
|
162
|
+
/**
|
|
163
|
+
Override to return map of name/functions
|
|
164
|
+
*/
|
|
165
|
+
virtual const RNJsi::JsiFunctionMap &getExportedFunctionMap() {
|
|
166
|
+
static const RNJsi::JsiFunctionMap empty;
|
|
167
|
+
return empty;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
Override to get property getters map of name/functions
|
|
172
|
+
*/
|
|
173
|
+
virtual const JsiPropertyGettersMap &getExportedPropertyGettersMap() {
|
|
174
|
+
static const JsiPropertyGettersMap empty;
|
|
175
|
+
return empty;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
/**
|
|
179
|
+
Override to get property setters map of name/functions
|
|
180
|
+
*/
|
|
181
|
+
virtual const JsiPropertySettersMap &getExportedPropertySettersMap() {
|
|
182
|
+
static const JsiPropertySettersMap empty;
|
|
183
|
+
return empty;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
186
|
/**
|
|
187
187
|
* Installs a function into the function map
|
|
188
188
|
*/
|
|
@@ -86,7 +86,7 @@ void RNSkDomRenderer::renderCanvas(SkCanvas *canvas, float scaledWidth,
|
|
|
86
86
|
if (_drawingContext == nullptr) {
|
|
87
87
|
auto paint = std::make_shared<SkPaint>();
|
|
88
88
|
paint->setAntiAlias(true);
|
|
89
|
-
_drawingContext = std::make_shared<DrawingContext>(paint
|
|
89
|
+
_drawingContext = std::make_shared<DrawingContext>(paint);
|
|
90
90
|
|
|
91
91
|
_drawingContext->setRequestRedraw([weakSelf = weak_from_this()]() {
|
|
92
92
|
auto self = weakSelf.lock();
|
|
@@ -178,12 +178,8 @@ public:
|
|
|
178
178
|
if (!_isValid) {
|
|
179
179
|
return;
|
|
180
180
|
}
|
|
181
|
-
std::
|
|
182
|
-
{
|
|
183
|
-
std::lock_guard<std::mutex> lock(_drawCallbacksLock);
|
|
184
|
-
tmp.insert(_drawCallbacks.cbegin(), _drawCallbacks.cend());
|
|
185
|
-
}
|
|
186
|
-
for (auto it = tmp.begin(); it != tmp.end(); it++) {
|
|
181
|
+
std::lock_guard<std::mutex> lock(_drawCallbacksLock);
|
|
182
|
+
for (auto it = _drawCallbacks.begin(); it != _drawCallbacks.end(); it++) {
|
|
187
183
|
it->second(invalidated);
|
|
188
184
|
}
|
|
189
185
|
}
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
namespace RNSkia {
|
|
4
4
|
|
|
5
|
-
DrawingContext::DrawingContext(std::shared_ptr<SkPaint> paint
|
|
5
|
+
DrawingContext::DrawingContext(std::shared_ptr<SkPaint> paint)
|
|
6
6
|
: DrawingContext("root") {
|
|
7
7
|
_paint = paint;
|
|
8
|
-
_opacity = opacity;
|
|
9
8
|
}
|
|
10
9
|
|
|
11
10
|
DrawingContext::DrawingContext(DrawingContext *parent, const char *source)
|
|
@@ -20,13 +19,6 @@ DrawingContext::inheritContext(const char *source) {
|
|
|
20
19
|
return result;
|
|
21
20
|
}
|
|
22
21
|
|
|
23
|
-
size_t DrawingContext::getLevel() {
|
|
24
|
-
if (_parent != nullptr) {
|
|
25
|
-
return _parent->getLevel() + 1;
|
|
26
|
-
}
|
|
27
|
-
return 0;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
22
|
std::string DrawingContext::getDebugDescription() {
|
|
31
23
|
std::string v = "ctx for " + std::string(_source) + ":";
|
|
32
24
|
|
|
@@ -50,10 +42,29 @@ std::string DrawingContext::getDebugDescription() {
|
|
|
50
42
|
v += " blendMode:" + std::to_string(static_cast<size_t>(blendMode));
|
|
51
43
|
}
|
|
52
44
|
|
|
53
|
-
|
|
45
|
+
auto opacity = _paint->getAlphaf();
|
|
46
|
+
v += " opacity:" + std::to_string(opacity);
|
|
47
|
+
|
|
54
48
|
if (_paint->getPathEffect() != nullptr) {
|
|
55
49
|
v += " [PathEffect]";
|
|
56
50
|
}
|
|
51
|
+
|
|
52
|
+
if (_paint->getShader() != nullptr) {
|
|
53
|
+
v += " [Shader]";
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if (_paint->getImageFilter() != nullptr) {
|
|
57
|
+
v += " [ImageFilter]";
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (_paint->getMaskFilter() != nullptr) {
|
|
61
|
+
v += " [MaskFilter]";
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (_paint->getColorFilter() != nullptr) {
|
|
65
|
+
v += " [ColorFilter]";
|
|
66
|
+
}
|
|
67
|
+
|
|
57
68
|
} else {
|
|
58
69
|
v = v + "[inherited] " +
|
|
59
70
|
(_parent != nullptr ? _parent->getDebugDescription() : "");
|
|
@@ -137,7 +148,6 @@ std::shared_ptr<SkPaint> DrawingContext::getMutablePaint() {
|
|
|
137
148
|
if (_paint == nullptr) {
|
|
138
149
|
auto parentPaint = _parent->getPaint();
|
|
139
150
|
_paint = std::make_shared<SkPaint>(*parentPaint);
|
|
140
|
-
_opacity = _parent->getOpacity();
|
|
141
151
|
}
|
|
142
152
|
// Calling the getMutablePaint accessor implies that the paint
|
|
143
153
|
// is about to be mutatet and will therefore invalidate
|
|
@@ -154,36 +164,6 @@ void DrawingContext::setMutablePaint(std::shared_ptr<SkPaint> paint) {
|
|
|
154
164
|
_paint = paint;
|
|
155
165
|
}
|
|
156
166
|
|
|
157
|
-
/**
|
|
158
|
-
Getd the opacity value
|
|
159
|
-
*/
|
|
160
|
-
double DrawingContext::getOpacity() {
|
|
161
|
-
if (_paint == nullptr) {
|
|
162
|
-
return _parent->getOpacity();
|
|
163
|
-
}
|
|
164
|
-
return _opacity;
|
|
165
|
-
}
|
|
166
|
-
|
|
167
|
-
/**
|
|
168
|
-
Sets the opacity value
|
|
169
|
-
*/
|
|
170
|
-
void DrawingContext::setOpacity(double opacity) {
|
|
171
|
-
getMutablePaint()->setAlphaf(_opacity);
|
|
172
|
-
_opacity = opacity;
|
|
173
|
-
}
|
|
174
|
-
|
|
175
|
-
/**
|
|
176
|
-
Clears the opacity value
|
|
177
|
-
*/
|
|
178
|
-
void DrawingContext::clearOpacity() {
|
|
179
|
-
if (_parent != nullptr) {
|
|
180
|
-
_opacity = _parent->getOpacity();
|
|
181
|
-
} else {
|
|
182
|
-
_opacity = 1.0;
|
|
183
|
-
}
|
|
184
|
-
markChildrenAsChanged();
|
|
185
|
-
}
|
|
186
|
-
|
|
187
167
|
float DrawingContext::getScaledWidth() {
|
|
188
168
|
if (_parent != nullptr) {
|
|
189
169
|
return _parent->getScaledWidth();
|
|
@@ -198,6 +178,8 @@ float DrawingContext::getScaledHeight() {
|
|
|
198
178
|
return _scaledHeight;
|
|
199
179
|
}
|
|
200
180
|
|
|
181
|
+
DrawingContext *DrawingContext::getParent() { return _parent; }
|
|
182
|
+
|
|
201
183
|
void DrawingContext::setScaledWidth(float v) { _scaledWidth = v; }
|
|
202
184
|
void DrawingContext::setScaledHeight(float v) { _scaledHeight = v; }
|
|
203
185
|
|
|
@@ -22,7 +22,7 @@ public:
|
|
|
22
22
|
/**
|
|
23
23
|
Creates a root drawing context with paint and opacity
|
|
24
24
|
*/
|
|
25
|
-
DrawingContext(std::shared_ptr<SkPaint> paint
|
|
25
|
+
explicit DrawingContext(std::shared_ptr<SkPaint> paint);
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
Initilalizes a new draw context.
|
|
@@ -34,8 +34,9 @@ public:
|
|
|
34
34
|
*/
|
|
35
35
|
std::shared_ptr<DrawingContext> inheritContext(const char *source);
|
|
36
36
|
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
/**
|
|
38
|
+
Returns the debug description for the context
|
|
39
|
+
*/
|
|
39
40
|
std::string getDebugDescription();
|
|
40
41
|
|
|
41
42
|
/**
|
|
@@ -86,21 +87,6 @@ public:
|
|
|
86
87
|
*/
|
|
87
88
|
void setMutablePaint(std::shared_ptr<SkPaint> paint);
|
|
88
89
|
|
|
89
|
-
/**
|
|
90
|
-
Getd the opacity value
|
|
91
|
-
*/
|
|
92
|
-
double getOpacity();
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
Sets the opacity value
|
|
96
|
-
*/
|
|
97
|
-
void setOpacity(double opacity);
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
Clears the opacity
|
|
101
|
-
*/
|
|
102
|
-
void clearOpacity();
|
|
103
|
-
|
|
104
90
|
float getScaledWidth();
|
|
105
91
|
|
|
106
92
|
float getScaledHeight();
|
|
@@ -111,6 +97,8 @@ public:
|
|
|
111
97
|
void setRequestRedraw(std::function<void()> &&requestRedraw);
|
|
112
98
|
const std::function<void()> &getRequestRedraw();
|
|
113
99
|
|
|
100
|
+
DrawingContext *getParent();
|
|
101
|
+
|
|
114
102
|
private:
|
|
115
103
|
explicit DrawingContext(const char *source);
|
|
116
104
|
|
|
@@ -119,7 +107,6 @@ private:
|
|
|
119
107
|
bool _isChanged = true;
|
|
120
108
|
|
|
121
109
|
std::shared_ptr<SkPaint> _paint;
|
|
122
|
-
double _opacity = 1.0f;
|
|
123
110
|
|
|
124
111
|
SkCanvas *_canvas = nullptr;
|
|
125
112
|
const char *_source;
|
|
@@ -36,7 +36,7 @@ public:
|
|
|
36
36
|
*/
|
|
37
37
|
virtual void decorateContext(DrawingContext *context) {
|
|
38
38
|
#if SKIA_DOM_DEBUG
|
|
39
|
-
printDebugInfo(
|
|
39
|
+
printDebugInfo("Begin Materialize " + std::string(getType()));
|
|
40
40
|
#endif
|
|
41
41
|
// Materialize children first so that any inner nodes get the opportunity
|
|
42
42
|
// to calculate their state before this node continues.
|
|
@@ -51,11 +51,21 @@ public:
|
|
|
51
51
|
decorate(context);
|
|
52
52
|
|
|
53
53
|
#if SKIA_DOM_DEBUG
|
|
54
|
-
printDebugInfo(
|
|
54
|
+
printDebugInfo("End / Commit Materialize " + std::string(getType()));
|
|
55
55
|
#endif
|
|
56
56
|
}
|
|
57
57
|
|
|
58
58
|
protected:
|
|
59
|
+
/**
|
|
60
|
+
Invalidates and marks then context as changed. The implementation in the
|
|
61
|
+
declaration node is to pass the call upwards to the parent node
|
|
62
|
+
*/
|
|
63
|
+
void invalidateContext() override {
|
|
64
|
+
if (getParent() != nullptr) {
|
|
65
|
+
getParent()->invalidateContext();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
59
69
|
/**
|
|
60
70
|
Override to implement materialization
|
|
61
71
|
*/
|
|
@@ -16,7 +16,7 @@ public:
|
|
|
16
16
|
protected:
|
|
17
17
|
void defineProperties(NodePropsContainer *container) override {
|
|
18
18
|
JsiDomRenderNode::defineProperties(container);
|
|
19
|
-
container->defineProperty
|
|
19
|
+
container->defineProperty<PaintProp>();
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
/**
|
|
@@ -26,11 +26,11 @@ protected:
|
|
|
26
26
|
|
|
27
27
|
void renderNode(DrawingContext *context) override {
|
|
28
28
|
#if SKIA_DOM_DEBUG
|
|
29
|
-
printDebugInfo(
|
|
29
|
+
printDebugInfo("Begin Draw", 1);
|
|
30
30
|
#endif
|
|
31
31
|
|
|
32
32
|
#if SKIA_DOM_DEBUG
|
|
33
|
-
printDebugInfo(context
|
|
33
|
+
printDebugInfo(context->getDebugDescription(), 2);
|
|
34
34
|
#endif
|
|
35
35
|
draw(context);
|
|
36
36
|
|
|
@@ -42,7 +42,7 @@ protected:
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
#if SKIA_DOM_DEBUG
|
|
45
|
-
printDebugInfo(
|
|
45
|
+
printDebugInfo("End Draw", 1);
|
|
46
46
|
#endif
|
|
47
47
|
}
|
|
48
48
|
};
|
|
@@ -168,6 +168,12 @@ public:
|
|
|
168
168
|
_disposeCallback = disposeCallback;
|
|
169
169
|
}
|
|
170
170
|
|
|
171
|
+
/**
|
|
172
|
+
Invalidates and marks then context as changed. The default behaviour is an
|
|
173
|
+
empty implementation
|
|
174
|
+
*/
|
|
175
|
+
virtual void invalidateContext() = 0;
|
|
176
|
+
|
|
171
177
|
/**
|
|
172
178
|
Updates any pending property changes in all nodes and child nodes. This
|
|
173
179
|
function will swap any pending property changes in this and children with any
|
|
@@ -188,6 +194,11 @@ public:
|
|
|
188
194
|
op();
|
|
189
195
|
}
|
|
190
196
|
|
|
197
|
+
// If there are any ops here we should invalidate the cached context
|
|
198
|
+
if (_queuedNodeOps.size() > 0) {
|
|
199
|
+
invalidateContext();
|
|
200
|
+
}
|
|
201
|
+
|
|
191
202
|
_queuedNodeOps.clear();
|
|
192
203
|
}
|
|
193
204
|
|
|
@@ -209,7 +220,11 @@ public:
|
|
|
209
220
|
}
|
|
210
221
|
|
|
211
222
|
// Now let's dispose if needed
|
|
212
|
-
if (_isDisposed) {
|
|
223
|
+
if (_isDisposing && !_isDisposed) {
|
|
224
|
+
_isDisposed = true;
|
|
225
|
+
|
|
226
|
+
this->setParent(nullptr);
|
|
227
|
+
|
|
213
228
|
// Callback signaling that we're done
|
|
214
229
|
if (_disposeCallback != nullptr) {
|
|
215
230
|
_disposeCallback();
|
|
@@ -266,6 +281,9 @@ protected:
|
|
|
266
281
|
always call the onPropsSet method as a signal that things have changed.
|
|
267
282
|
*/
|
|
268
283
|
void setProps(jsi::Runtime &runtime, jsi::Object &&props) {
|
|
284
|
+
#if SKIA_DOM_DEBUG
|
|
285
|
+
printDebugInfo("JS:setProps(nodeId: " + std::to_string(_nodeId) + ")");
|
|
286
|
+
#endif
|
|
269
287
|
if (_propsContainer == nullptr) {
|
|
270
288
|
|
|
271
289
|
// Initialize properties container
|
|
@@ -276,12 +294,18 @@ protected:
|
|
|
276
294
|
}
|
|
277
295
|
// Update properties container
|
|
278
296
|
_propsContainer->setProps(runtime, std::move(props));
|
|
297
|
+
|
|
298
|
+
// Invalidate context
|
|
299
|
+
invalidateContext();
|
|
279
300
|
}
|
|
280
301
|
|
|
281
302
|
/**
|
|
282
303
|
Called for components that has no properties
|
|
283
304
|
*/
|
|
284
305
|
void setEmptyProps() {
|
|
306
|
+
#if SKIA_DOM_DEBUG
|
|
307
|
+
printDebugInfo("JS:setEmptyProps(nodeId: " + std::to_string(_nodeId) + ")");
|
|
308
|
+
#endif
|
|
285
309
|
if (_propsContainer == nullptr) {
|
|
286
310
|
|
|
287
311
|
// Initialize properties container
|
|
@@ -304,8 +328,15 @@ protected:
|
|
|
304
328
|
Adds a child node to the array of children for this node
|
|
305
329
|
*/
|
|
306
330
|
virtual void addChild(std::shared_ptr<JsiDomNode> child) {
|
|
331
|
+
#if SKIA_DOM_DEBUG
|
|
332
|
+
printDebugInfo("JS:addChild(childId: " + std::to_string(child->_nodeId) +
|
|
333
|
+
")");
|
|
334
|
+
#endif
|
|
307
335
|
std::lock_guard<std::mutex> lock(_childrenLock);
|
|
308
|
-
_queuedNodeOps.push_back([child, this]() {
|
|
336
|
+
_queuedNodeOps.push_back([child, this]() {
|
|
337
|
+
_children.push_back(child);
|
|
338
|
+
child->setParent(this);
|
|
339
|
+
});
|
|
309
340
|
}
|
|
310
341
|
|
|
311
342
|
/**
|
|
@@ -314,10 +345,16 @@ protected:
|
|
|
314
345
|
*/
|
|
315
346
|
virtual void insertChildBefore(std::shared_ptr<JsiDomNode> child,
|
|
316
347
|
std::shared_ptr<JsiDomNode> before) {
|
|
348
|
+
#if SKIA_DOM_DEBUG
|
|
349
|
+
printDebugInfo(
|
|
350
|
+
"JS:insertChildBefore(childId: " + std::to_string(child->_nodeId) +
|
|
351
|
+
", beforeId: " + std::to_string(before->_nodeId) + ")");
|
|
352
|
+
#endif
|
|
317
353
|
std::lock_guard<std::mutex> lock(_childrenLock);
|
|
318
354
|
_queuedNodeOps.push_back([child, before, this]() {
|
|
319
355
|
auto position = std::find(_children.begin(), _children.end(), before);
|
|
320
356
|
_children.insert(position, child);
|
|
357
|
+
child->setParent(this);
|
|
321
358
|
});
|
|
322
359
|
}
|
|
323
360
|
|
|
@@ -326,6 +363,10 @@ protected:
|
|
|
326
363
|
children and call dispose on the child node.
|
|
327
364
|
*/
|
|
328
365
|
virtual void removeChild(std::shared_ptr<JsiDomNode> child) {
|
|
366
|
+
#if SKIA_DOM_DEBUG
|
|
367
|
+
printDebugInfo("JS:removeChild(childId: " + std::to_string(child->_nodeId) +
|
|
368
|
+
")");
|
|
369
|
+
#endif
|
|
329
370
|
std::lock_guard<std::mutex> lock(_childrenLock);
|
|
330
371
|
_queuedNodeOps.push_back([child, this]() {
|
|
331
372
|
// Delete child itself
|
|
@@ -343,26 +384,40 @@ protected:
|
|
|
343
384
|
up.
|
|
344
385
|
*/
|
|
345
386
|
virtual void dispose() {
|
|
346
|
-
if (
|
|
387
|
+
if (_isDisposing) {
|
|
347
388
|
return;
|
|
348
389
|
}
|
|
349
390
|
|
|
350
|
-
|
|
391
|
+
_isDisposing = true;
|
|
351
392
|
}
|
|
352
393
|
|
|
353
394
|
#if SKIA_DOM_DEBUG
|
|
354
|
-
std::string getLevelIndentation(
|
|
355
|
-
|
|
395
|
+
std::string getLevelIndentation(size_t indentation = 0) {
|
|
396
|
+
JsiDomNode *curParent = _parent;
|
|
397
|
+
while (curParent != nullptr) {
|
|
398
|
+
indentation++;
|
|
399
|
+
curParent = curParent->getParent();
|
|
400
|
+
}
|
|
401
|
+
return std::string(indentation * 2, ' ');
|
|
356
402
|
}
|
|
357
403
|
|
|
358
|
-
void printDebugInfo(
|
|
359
|
-
size_t indentation = 0) {
|
|
404
|
+
void printDebugInfo(const std::string &message, size_t indentation = 0) {
|
|
360
405
|
RNSkLogger::logToConsole("%s%s %lu: %s",
|
|
361
|
-
getLevelIndentation(
|
|
406
|
+
getLevelIndentation(indentation).c_str(),
|
|
362
407
|
getType(), getNodeId(), message.c_str());
|
|
363
408
|
}
|
|
364
409
|
#endif
|
|
365
410
|
|
|
411
|
+
/**
|
|
412
|
+
Sets the parent node
|
|
413
|
+
*/
|
|
414
|
+
void setParent(JsiDomNode *parent) { _parent = parent; }
|
|
415
|
+
|
|
416
|
+
/**
|
|
417
|
+
Returns the parent node if set.
|
|
418
|
+
*/
|
|
419
|
+
JsiDomNode *getParent() { return _parent; }
|
|
420
|
+
|
|
366
421
|
private:
|
|
367
422
|
const char *_type;
|
|
368
423
|
std::shared_ptr<RNSkPlatformContext> _context;
|
|
@@ -374,11 +429,14 @@ private:
|
|
|
374
429
|
std::vector<std::shared_ptr<JsiDomNode>> _children;
|
|
375
430
|
std::mutex _childrenLock;
|
|
376
431
|
|
|
377
|
-
std::atomic<bool>
|
|
432
|
+
std::atomic<bool> _isDisposing = {false};
|
|
433
|
+
bool _isDisposed = false;
|
|
378
434
|
|
|
379
435
|
size_t _nodeId;
|
|
380
436
|
|
|
381
437
|
std::vector<std::function<void()>> _queuedNodeOps;
|
|
438
|
+
|
|
439
|
+
JsiDomNode *_parent = nullptr;
|
|
382
440
|
};
|
|
383
441
|
|
|
384
442
|
} // namespace RNSkia
|