@shopify/react-native-skia 2.9.1 → 2.10.0
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 +1 -5
- package/cpp/api/JsiNativeBuffer.h +15 -10
- package/cpp/api/JsiSkAnimatedImage.h +21 -19
- package/cpp/api/JsiSkAnimatedImageFactory.h +13 -14
- package/cpp/api/JsiSkApi.h +246 -92
- package/cpp/api/JsiSkCanvas.h +76 -58
- package/cpp/api/JsiSkColor.h +7 -5
- package/cpp/api/JsiSkColorFilter.h +15 -8
- package/cpp/api/JsiSkColorFilterFactory.h +45 -45
- package/cpp/api/JsiSkContourMeasure.h +24 -21
- package/cpp/api/JsiSkContourMeasureIter.h +18 -21
- package/cpp/api/JsiSkData.h +13 -7
- package/cpp/api/JsiSkDataFactory.h +22 -21
- package/cpp/api/JsiSkFont.h +56 -44
- package/cpp/api/JsiSkFontMgr.h +22 -13
- package/cpp/api/JsiSkFontMgrFactory.h +12 -10
- package/cpp/api/JsiSkFontStyle.h +14 -12
- package/cpp/api/JsiSkImage.h +45 -34
- package/cpp/api/JsiSkImageFactory.h +47 -52
- package/cpp/api/JsiSkImageFilter.h +21 -11
- package/cpp/api/JsiSkImageFilterFactory.h +96 -96
- package/cpp/api/JsiSkImageInfo.h +22 -19
- package/cpp/api/JsiSkMaskFilter.h +21 -11
- package/cpp/api/JsiSkMaskFilterFactory.h +16 -13
- package/cpp/api/JsiSkMatrix.h +31 -31
- package/cpp/api/JsiSkNativeObjects.h +419 -0
- package/cpp/api/JsiSkPaint.h +59 -39
- package/cpp/api/JsiSkParagraph.h +39 -32
- package/cpp/api/JsiSkParagraphBuilder.h +24 -21
- package/cpp/api/JsiSkParagraphBuilderFactory.h +13 -12
- package/cpp/api/JsiSkPath.h +95 -70
- package/cpp/api/JsiSkPathBuilder.h +83 -67
- package/cpp/api/JsiSkPathBuilderFactory.h +16 -17
- package/cpp/api/JsiSkPathEffect.h +21 -11
- package/cpp/api/JsiSkPathEffectFactory.h +33 -32
- package/cpp/api/JsiSkPathFactory.h +79 -103
- package/cpp/api/JsiSkPicture.h +24 -13
- package/cpp/api/JsiSkPictureFactory.h +21 -26
- package/cpp/api/JsiSkPictureRecorder.h +21 -22
- package/cpp/api/JsiSkPoint.h +19 -22
- package/cpp/api/JsiSkRRect.h +22 -29
- package/cpp/api/JsiSkRSXform.h +26 -30
- package/cpp/api/JsiSkRect.h +28 -30
- package/cpp/api/JsiSkRuntimeEffect.h +39 -30
- package/cpp/api/JsiSkRuntimeEffectFactory.h +12 -12
- package/cpp/api/JsiSkRuntimeShaderBuilder.h +25 -18
- package/cpp/api/JsiSkSVG.h +13 -13
- package/cpp/api/JsiSkSVGFactory.h +17 -20
- package/cpp/api/JsiSkShader.h +15 -8
- package/cpp/api/JsiSkShaderFactory.h +41 -48
- package/cpp/api/JsiSkSkottie.h +49 -39
- package/cpp/api/JsiSkSurface.h +24 -24
- package/cpp/api/JsiSkSurfaceFactory.h +15 -16
- package/cpp/api/JsiSkTextBlob.h +15 -8
- package/cpp/api/JsiSkTextBlobFactory.h +25 -28
- package/cpp/api/JsiSkTypeface.h +19 -12
- package/cpp/api/JsiSkTypefaceFactory.h +12 -12
- package/cpp/api/JsiSkTypefaceFontProvider.h +30 -25
- package/cpp/api/JsiSkTypefaceFontProviderFactory.h +14 -12
- package/cpp/api/JsiSkVertices.h +21 -18
- package/cpp/api/JsiSkiaContext.h +17 -17
- package/cpp/api/JsiSkottieFactory.h +16 -17
- package/cpp/api/JsiVideo.h +27 -25
- package/cpp/api/recorder/Convertor.h +31 -61
- package/cpp/api/recorder/DataTypes.h +8 -16
- package/cpp/api/recorder/JsiRecorder.h +83 -55
- package/cpp/api/recorder/RNRecorder.h +1 -1
- package/cpp/jsi/BoxedNativeObject.h +146 -0
- package/cpp/{jsi2 → jsi}/EnumMapper.h +4 -1
- package/cpp/{jsi2 → jsi}/NativeObject.h +120 -146
- package/cpp/jsi/RuntimeAwareCache.cpp +1 -1
- package/cpp/jsi/RuntimeAwareCache.h +26 -8
- package/cpp/jsi/ViewProperty.h +5 -11
- package/cpp/rnskia/RNSkJsiViewApi.h +20 -11
- package/cpp/rnskia/RNSkManager.cpp +23 -25
- package/cpp/rnskia/RNSkPictureView.h +1 -1
- package/cpp/rnwgpu/ArrayBuffer.h +5 -6
- package/cpp/rnwgpu/Canvas.h +4 -2
- package/cpp/rnwgpu/api/GPU.cpp +4 -4
- package/cpp/rnwgpu/api/GPU.h +1 -1
- package/cpp/rnwgpu/api/GPUAdapter.cpp +2 -3
- package/cpp/rnwgpu/api/GPUAdapter.h +4 -4
- package/cpp/rnwgpu/api/GPUAdapterInfo.h +1 -1
- package/cpp/rnwgpu/api/GPUBindGroup.h +1 -1
- package/cpp/rnwgpu/api/GPUBindGroupLayout.h +1 -1
- package/cpp/rnwgpu/api/GPUBuffer.h +1 -1
- package/cpp/rnwgpu/api/GPUCanvasContext.h +1 -1
- package/cpp/rnwgpu/api/GPUCommandBuffer.h +1 -1
- package/cpp/rnwgpu/api/GPUCommandEncoder.h +1 -1
- package/cpp/rnwgpu/api/GPUCompilationInfo.h +1 -1
- package/cpp/rnwgpu/api/GPUCompilationMessage.h +1 -1
- package/cpp/rnwgpu/api/GPUComputePassEncoder.h +1 -1
- package/cpp/rnwgpu/api/GPUComputePipeline.h +1 -1
- package/cpp/rnwgpu/api/GPUDevice.cpp +6 -7
- package/cpp/rnwgpu/api/GPUDevice.h +3 -3
- package/cpp/rnwgpu/api/GPUDeviceLostInfo.h +1 -1
- package/cpp/rnwgpu/api/GPUError.h +1 -1
- package/cpp/rnwgpu/api/GPUExtent3D.h +1 -1
- package/cpp/rnwgpu/api/GPUExternalTexture.h +1 -1
- package/cpp/rnwgpu/api/GPUInternalError.h +1 -1
- package/cpp/rnwgpu/api/GPUOrigin2D.h +1 -1
- package/cpp/rnwgpu/api/GPUOrigin3D.h +1 -1
- package/cpp/rnwgpu/api/GPUOutOfMemoryError.h +1 -1
- package/cpp/rnwgpu/api/GPUPipelineLayout.h +1 -1
- package/cpp/rnwgpu/api/GPUQuerySet.h +1 -1
- package/cpp/rnwgpu/api/GPUQueue.h +1 -1
- package/cpp/rnwgpu/api/GPURenderBundle.h +1 -1
- package/cpp/rnwgpu/api/GPURenderBundleEncoder.h +1 -1
- package/cpp/rnwgpu/api/GPURenderPassEncoder.h +1 -1
- package/cpp/rnwgpu/api/GPURenderPipeline.h +1 -1
- package/cpp/rnwgpu/api/GPUSampler.h +1 -1
- package/cpp/rnwgpu/api/GPUShaderModule.cpp +1 -1
- package/cpp/rnwgpu/api/GPUShaderModule.h +1 -1
- package/cpp/rnwgpu/api/GPUSharedFence.h +1 -1
- package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +1 -1
- package/cpp/rnwgpu/api/GPUSupportedLimits.h +1 -1
- package/cpp/rnwgpu/api/GPUTexture.h +1 -1
- package/cpp/rnwgpu/api/GPUTextureView.h +1 -1
- package/cpp/rnwgpu/api/GPUUncapturedErrorEvent.h +1 -1
- package/cpp/rnwgpu/api/GPUValidationError.h +1 -1
- package/cpp/rnwgpu/api/ImageBitmap.h +1 -1
- package/cpp/rnwgpu/api/RNWebGPU.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupEntry.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUBindGroupLayoutEntry.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUBlendComponent.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUBlendState.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUBufferBinding.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUBufferBindingLayout.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUBufferDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUCanvasConfiguration.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUColor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUColorTargetState.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUCommandBufferDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUCommandEncoderDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUComputePassDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUComputePassTimestampWrites.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUComputePipelineDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUDawnTogglesDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUDepthStencilState.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUDeviceDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureBindingLayout.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUExternalTextureDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUFragmentState.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyBuffer.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyExternalImage.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTexture.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUImageCopyTextureTagged.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUImageDataLayout.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUMultisampleState.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUPipelineLayoutDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUPrimitiveState.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUProgrammableStage.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUQuerySetDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUQueueDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPURenderBundleDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPURenderBundleEncoderDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPURenderPassColorAttachment.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPURenderPassDepthStencilAttachment.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPURenderPassDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPURenderPassTimestampWrites.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPURenderPipelineDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPURequestAdapterOptions.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUSamplerBindingLayout.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUSamplerDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUShaderModuleCompilationHint.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUShaderModuleDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUSharedTextureMemoryDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUStencilFaceState.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUStorageTextureBindingLayout.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUTextureBindingLayout.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUTextureDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUTextureViewDescriptor.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUUncapturedErrorEventInit.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUVertexAttribute.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUVertexBufferLayout.h +1 -1
- package/cpp/rnwgpu/api/descriptors/GPUVertexState.h +1 -1
- package/cpp/rnwgpu/api/descriptors/Unions.h +1 -1
- package/cpp/rnwgpu/async/AsyncTaskHandle.cpp +20 -21
- package/lib/commonjs/external/reanimated/renderHelpers.d.ts +15 -0
- package/lib/commonjs/external/reanimated/renderHelpers.js +30 -1
- package/lib/commonjs/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/commonjs/skia/NativeSetup.js +4 -0
- package/lib/commonjs/skia/NativeSetup.js.map +1 -1
- package/lib/commonjs/skia/SkiaWorkletSerialization.d.ts +1 -0
- package/lib/commonjs/skia/SkiaWorkletSerialization.js +66 -0
- package/lib/commonjs/skia/SkiaWorkletSerialization.js.map +1 -0
- package/lib/commonjs/sksg/Container.native.js +20 -1
- package/lib/commonjs/sksg/Container.native.js.map +1 -1
- package/lib/module/external/reanimated/renderHelpers.d.ts +15 -0
- package/lib/module/external/reanimated/renderHelpers.js +29 -0
- package/lib/module/external/reanimated/renderHelpers.js.map +1 -1
- package/lib/module/skia/NativeSetup.js +4 -0
- package/lib/module/skia/NativeSetup.js.map +1 -1
- package/lib/module/skia/SkiaWorkletSerialization.d.ts +1 -0
- package/lib/module/skia/SkiaWorkletSerialization.js +59 -0
- package/lib/module/skia/SkiaWorkletSerialization.js.map +1 -0
- package/lib/module/sksg/Container.native.js +21 -2
- package/lib/module/sksg/Container.native.js.map +1 -1
- package/lib/typescript/lib/commonjs/external/reanimated/renderHelpers.d.ts +2 -0
- package/lib/typescript/lib/commonjs/skia/SkiaWorkletSerialization.d.ts +2 -0
- package/lib/typescript/lib/module/external/reanimated/renderHelpers.d.ts +15 -0
- package/lib/typescript/lib/module/skia/SkiaWorkletSerialization.d.ts +1 -0
- package/lib/typescript/src/external/reanimated/renderHelpers.d.ts +15 -0
- package/lib/typescript/src/skia/SkiaWorkletSerialization.d.ts +1 -0
- package/package.json +6 -2
- package/react-native-skia.podspec +1 -2
- package/src/external/reanimated/renderHelpers.ts +30 -0
- package/src/skia/NativeSetup.ts +5 -0
- package/src/skia/SkiaWorkletSerialization.ts +67 -0
- package/src/sksg/Container.native.ts +40 -2
- package/cpp/api/JsiSkHostObjects.h +0 -257
- package/cpp/jsi/JsiHostObject.cpp +0 -137
- package/cpp/jsi/JsiHostObject.h +0 -385
- /package/cpp/{jsi2 → jsi}/JSIConverter.h +0 -0
- /package/cpp/{jsi2 → jsi}/Promise.cpp +0 -0
- /package/cpp/{jsi2 → jsi}/Promise.h +0 -0
package/cpp/api/JsiSkCanvas.h
CHANGED
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
#include <vector>
|
|
6
6
|
|
|
7
7
|
#include "JsiSkFont.h"
|
|
8
|
-
#include "JsiSkHostObjects.h"
|
|
9
8
|
#include "JsiSkImage.h"
|
|
10
9
|
#include "JsiSkImageInfo.h"
|
|
11
10
|
#include "JsiSkMatrix.h"
|
|
11
|
+
#include "JsiSkNativeObjects.h"
|
|
12
12
|
#include "JsiSkPaint.h"
|
|
13
13
|
#include "JsiSkPath.h"
|
|
14
14
|
#include "JsiSkPicture.h"
|
|
@@ -49,8 +49,10 @@ namespace RNSkia {
|
|
|
49
49
|
|
|
50
50
|
namespace jsi = facebook::jsi;
|
|
51
51
|
|
|
52
|
-
class JsiSkCanvas : public
|
|
52
|
+
class JsiSkCanvas : public JsiSkNativeObject<JsiSkCanvas> {
|
|
53
53
|
public:
|
|
54
|
+
static constexpr const char *CLASS_NAME = "Canvas";
|
|
55
|
+
|
|
54
56
|
JSI_HOST_FUNCTION(drawPaint) {
|
|
55
57
|
auto paint = JsiSkPaint::fromValue(runtime, arguments[0]);
|
|
56
58
|
_canvas->drawPaint(*paint);
|
|
@@ -246,10 +248,8 @@ public:
|
|
|
246
248
|
}
|
|
247
249
|
|
|
248
250
|
JSI_HOST_FUNCTION(getTotalMatrix) {
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, matrix,
|
|
252
|
-
getContext());
|
|
251
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkMatrix>(
|
|
252
|
+
getContext(), _canvas->getTotalMatrix()));
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
JSI_HOST_FUNCTION(drawPoints) {
|
|
@@ -651,9 +651,10 @@ public:
|
|
|
651
651
|
#if defined(SK_GRAPHITE)
|
|
652
652
|
// Graphite records draws lazily and offers no synchronous GPU readback. If
|
|
653
653
|
// this canvas belongs to a surface, snap & submit its recording, snapshot
|
|
654
|
-
// it to a CPU raster image and read from that (mirroring
|
|
655
|
-
// A canvas without an owning surface (e.g. a
|
|
656
|
-
// no texture to read back, so fall through to
|
|
654
|
+
// it to a CPU raster image and read from that (mirroring
|
|
655
|
+
// makeImageSnapshot). A canvas without an owning surface (e.g. a
|
|
656
|
+
// picture-recording canvas) has no texture to read back, so fall through to
|
|
657
|
+
// the raster canvas read below.
|
|
657
658
|
if (_surface) {
|
|
658
659
|
// Snapshot first: makeImageSnapshot records a copy task into the recorder
|
|
659
660
|
// that must be submitted before the texture can be read back (this is the
|
|
@@ -663,8 +664,8 @@ public:
|
|
|
663
664
|
DawnContext::getInstance().submitRecording(recorder->snap().get());
|
|
664
665
|
}
|
|
665
666
|
auto raster = DawnContext::getInstance().MakeRasterImage(snapshot);
|
|
666
|
-
if (!raster ||
|
|
667
|
-
|
|
667
|
+
if (!raster || !raster->readPixels(nullptr, *info, bfrPtr, bytesPerRow,
|
|
668
|
+
srcX, srcY)) {
|
|
668
669
|
return jsi::Value::null();
|
|
669
670
|
}
|
|
670
671
|
return dest;
|
|
@@ -677,55 +678,72 @@ public:
|
|
|
677
678
|
return dest;
|
|
678
679
|
}
|
|
679
680
|
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
681
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
682
|
+
installHostMethod(runtime, prototype, "drawPaint", &JsiSkCanvas::drawPaint);
|
|
683
|
+
installHostMethod(runtime, prototype, "drawLine", &JsiSkCanvas::drawLine);
|
|
684
|
+
installHostMethod(runtime, prototype, "drawRect", &JsiSkCanvas::drawRect);
|
|
685
|
+
installHostMethod(runtime, prototype, "drawImage", &JsiSkCanvas::drawImage);
|
|
686
|
+
installHostMethod(runtime, prototype, "drawImageRect",
|
|
687
|
+
&JsiSkCanvas::drawImageRect);
|
|
688
|
+
installHostMethod(runtime, prototype, "drawImageCubic",
|
|
689
|
+
&JsiSkCanvas::drawImageCubic);
|
|
690
|
+
installHostMethod(runtime, prototype, "drawImageOptions",
|
|
691
|
+
&JsiSkCanvas::drawImageOptions);
|
|
692
|
+
installHostMethod(runtime, prototype, "drawImageNine",
|
|
693
|
+
&JsiSkCanvas::drawImageNine);
|
|
694
|
+
installHostMethod(runtime, prototype, "drawImageRectCubic",
|
|
695
|
+
&JsiSkCanvas::drawImageRectCubic);
|
|
696
|
+
installHostMethod(runtime, prototype, "drawImageRectOptions",
|
|
697
|
+
&JsiSkCanvas::drawImageRectOptions);
|
|
698
|
+
installHostMethod(runtime, prototype, "drawCircle",
|
|
699
|
+
&JsiSkCanvas::drawCircle);
|
|
700
|
+
installHostMethod(runtime, prototype, "drawArc", &JsiSkCanvas::drawArc);
|
|
701
|
+
installHostMethod(runtime, prototype, "drawRRect", &JsiSkCanvas::drawRRect);
|
|
702
|
+
installHostMethod(runtime, prototype, "drawDRRect",
|
|
703
|
+
&JsiSkCanvas::drawDRRect);
|
|
704
|
+
installHostMethod(runtime, prototype, "drawOval", &JsiSkCanvas::drawOval);
|
|
705
|
+
installHostMethod(runtime, prototype, "restoreToCount",
|
|
706
|
+
&JsiSkCanvas::restoreToCount);
|
|
707
|
+
installHostMethod(runtime, prototype, "getSaveCount",
|
|
708
|
+
&JsiSkCanvas::getSaveCount);
|
|
709
|
+
installHostMethod(runtime, prototype, "getTotalMatrix",
|
|
710
|
+
&JsiSkCanvas::getTotalMatrix);
|
|
711
|
+
installHostMethod(runtime, prototype, "drawPoints",
|
|
712
|
+
&JsiSkCanvas::drawPoints);
|
|
713
|
+
installHostMethod(runtime, prototype, "drawPatch", &JsiSkCanvas::drawPatch);
|
|
714
|
+
installHostMethod(runtime, prototype, "drawPath", &JsiSkCanvas::drawPath);
|
|
715
|
+
installHostMethod(runtime, prototype, "drawVertices",
|
|
716
|
+
&JsiSkCanvas::drawVertices);
|
|
717
|
+
installHostMethod(runtime, prototype, "drawText", &JsiSkCanvas::drawText);
|
|
718
|
+
installHostMethod(runtime, prototype, "drawTextBlob",
|
|
719
|
+
&JsiSkCanvas::drawTextBlob);
|
|
720
|
+
installHostMethod(runtime, prototype, "drawGlyphs",
|
|
721
|
+
&JsiSkCanvas::drawGlyphs);
|
|
722
|
+
installHostMethod(runtime, prototype, "drawSvg", &JsiSkCanvas::drawSvg);
|
|
723
|
+
installHostMethod(runtime, prototype, "clipPath", &JsiSkCanvas::clipPath);
|
|
724
|
+
installHostMethod(runtime, prototype, "clipRect", &JsiSkCanvas::clipRect);
|
|
725
|
+
installHostMethod(runtime, prototype, "clipRRect", &JsiSkCanvas::clipRRect);
|
|
726
|
+
installHostMethod(runtime, prototype, "save", &JsiSkCanvas::save);
|
|
727
|
+
installHostMethod(runtime, prototype, "saveLayer", &JsiSkCanvas::saveLayer);
|
|
728
|
+
installHostMethod(runtime, prototype, "restore", &JsiSkCanvas::restore);
|
|
729
|
+
installHostMethod(runtime, prototype, "rotate", &JsiSkCanvas::rotate);
|
|
730
|
+
installHostMethod(runtime, prototype, "translate", &JsiSkCanvas::translate);
|
|
731
|
+
installHostMethod(runtime, prototype, "scale", &JsiSkCanvas::scale);
|
|
732
|
+
installHostMethod(runtime, prototype, "skew", &JsiSkCanvas::skew);
|
|
733
|
+
installHostMethod(runtime, prototype, "drawColor", &JsiSkCanvas::drawColor);
|
|
734
|
+
installHostMethod(runtime, prototype, "clear", &JsiSkCanvas::clear);
|
|
735
|
+
installHostMethod(runtime, prototype, "concat", &JsiSkCanvas::concat);
|
|
736
|
+
installHostMethod(runtime, prototype, "drawPicture",
|
|
737
|
+
&JsiSkCanvas::drawPicture);
|
|
738
|
+
installHostMethod(runtime, prototype, "drawAtlas", &JsiSkCanvas::drawAtlas);
|
|
739
|
+
installHostMethod(runtime, prototype, "readPixels",
|
|
740
|
+
&JsiSkCanvas::readPixels);
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
size_t getMemoryPressure() override { return 1024; }
|
|
726
744
|
|
|
727
745
|
explicit JsiSkCanvas(std::shared_ptr<RNSkPlatformContext> context)
|
|
728
|
-
:
|
|
746
|
+
: JsiSkNativeObject<JsiSkCanvas>(std::move(context)) {}
|
|
729
747
|
|
|
730
748
|
JsiSkCanvas(std::shared_ptr<RNSkPlatformContext> context, SkCanvas *canvas)
|
|
731
749
|
: JsiSkCanvas(std::move(context)) {
|
package/cpp/api/JsiSkColor.h
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
#include <jsi/jsi.h>
|
|
8
8
|
|
|
9
|
-
#include "
|
|
9
|
+
#include "JsiSkNativeObjects.h"
|
|
10
10
|
#include "api/third_party/CSSColorParser.h"
|
|
11
11
|
|
|
12
12
|
#pragma clang diagnostic push
|
|
@@ -20,11 +20,13 @@ namespace RNSkia {
|
|
|
20
20
|
|
|
21
21
|
namespace jsi = facebook::jsi;
|
|
22
22
|
|
|
23
|
-
|
|
23
|
+
/**
|
|
24
|
+
* JsiSkColor is a pure utility class — colors are represented as
|
|
25
|
+
* Float32Arrays on the JS side, so there is no wrapper object.
|
|
26
|
+
*/
|
|
27
|
+
class JsiSkColor {
|
|
24
28
|
public:
|
|
25
|
-
JsiSkColor()
|
|
26
|
-
|
|
27
|
-
~JsiSkColor() override = default;
|
|
29
|
+
JsiSkColor() = default;
|
|
28
30
|
|
|
29
31
|
static jsi::Object toValue(jsi::Runtime &runtime, SkColor color) {
|
|
30
32
|
auto result = runtime.global()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
#pragma once
|
|
2
2
|
|
|
3
|
-
#include "
|
|
3
|
+
#include "JsiSkNativeObjects.h"
|
|
4
4
|
#include <jsi/jsi.h>
|
|
5
5
|
#include <memory>
|
|
6
6
|
#include <utility>
|
|
@@ -16,19 +16,26 @@ namespace RNSkia {
|
|
|
16
16
|
|
|
17
17
|
namespace jsi = facebook::jsi;
|
|
18
18
|
|
|
19
|
-
class JsiSkColorFilter
|
|
19
|
+
class JsiSkColorFilter
|
|
20
|
+
: public JsiSkWrappingSkPtrNativeObject<JsiSkColorFilter, SkColorFilter> {
|
|
20
21
|
public:
|
|
22
|
+
static constexpr const char *CLASS_NAME = "ColorFilter";
|
|
23
|
+
|
|
21
24
|
JsiSkColorFilter(std::shared_ptr<RNSkPlatformContext> context,
|
|
22
25
|
sk_sp<SkColorFilter> colorFilter)
|
|
23
|
-
:
|
|
24
|
-
|
|
26
|
+
: JsiSkWrappingSkPtrNativeObject<JsiSkColorFilter, SkColorFilter>(
|
|
27
|
+
std::move(context), std::move(colorFilter)) {}
|
|
25
28
|
|
|
26
|
-
size_t getMemoryPressure()
|
|
29
|
+
size_t getMemoryPressure() override { return 2048; }
|
|
27
30
|
|
|
28
|
-
|
|
31
|
+
static sk_sp<SkColorFilter> fromValue(jsi::Runtime &runtime,
|
|
32
|
+
const jsi::Value &obj) {
|
|
33
|
+
return objectFromValue(runtime, obj);
|
|
34
|
+
}
|
|
29
35
|
|
|
30
|
-
|
|
31
|
-
|
|
36
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
37
|
+
installCommon(runtime, prototype);
|
|
38
|
+
}
|
|
32
39
|
};
|
|
33
40
|
|
|
34
41
|
} // namespace RNSkia
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
#include "JsiSkColor.h"
|
|
4
4
|
#include "JsiSkColorFilter.h"
|
|
5
|
-
#include "
|
|
5
|
+
#include "JsiSkNativeObjects.h"
|
|
6
6
|
#include <jsi/jsi.h>
|
|
7
7
|
#include <memory>
|
|
8
8
|
#include <utility>
|
|
@@ -19,8 +19,11 @@ namespace RNSkia {
|
|
|
19
19
|
|
|
20
20
|
namespace jsi = facebook::jsi;
|
|
21
21
|
|
|
22
|
-
class JsiSkColorFilterFactory
|
|
22
|
+
class JsiSkColorFilterFactory
|
|
23
|
+
: public JsiSkNativeObject<JsiSkColorFilterFactory> {
|
|
23
24
|
public:
|
|
25
|
+
static constexpr const char *CLASS_NAME = "ColorFilterFactory";
|
|
26
|
+
|
|
24
27
|
JSI_HOST_FUNCTION(MakeMatrix) {
|
|
25
28
|
auto jsiMatrix = arguments[0].asObject(runtime).asArray(runtime);
|
|
26
29
|
float matrix[20];
|
|
@@ -30,31 +33,28 @@ public:
|
|
|
30
33
|
}
|
|
31
34
|
}
|
|
32
35
|
// Return the newly constructed object
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
getContext());
|
|
36
|
+
return makeJsiObject(
|
|
37
|
+
runtime, std::make_shared<JsiSkColorFilter>(
|
|
38
|
+
getContext(), SkColorFilters::Matrix(std::move(matrix))));
|
|
37
39
|
}
|
|
38
40
|
|
|
39
41
|
JSI_HOST_FUNCTION(MakeBlend) {
|
|
40
42
|
auto color = JsiSkColor::fromValue(runtime, arguments[0]);
|
|
41
43
|
SkBlendMode blend = (SkBlendMode)arguments[1].asNumber();
|
|
42
44
|
// Return the newly constructed object
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
getContext());
|
|
45
|
+
return makeJsiObject(
|
|
46
|
+
runtime, std::make_shared<JsiSkColorFilter>(
|
|
47
|
+
getContext(), SkColorFilters::Blend(color, blend)));
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
JSI_HOST_FUNCTION(MakeCompose) {
|
|
50
51
|
auto outer = JsiSkColorFilter::fromValue(runtime, arguments[0]);
|
|
51
52
|
auto inner = JsiSkColorFilter::fromValue(runtime, arguments[1]);
|
|
52
53
|
// Return the newly constructed object
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
getContext());
|
|
54
|
+
return makeJsiObject(
|
|
55
|
+
runtime, std::make_shared<JsiSkColorFilter>(
|
|
56
|
+
getContext(), SkColorFilters::Compose(std::move(outer),
|
|
57
|
+
std::move(inner))));
|
|
58
58
|
}
|
|
59
59
|
|
|
60
60
|
JSI_HOST_FUNCTION(MakeLerp) {
|
|
@@ -62,52 +62,52 @@ public:
|
|
|
62
62
|
auto dst = JsiSkColorFilter::fromValue(runtime, arguments[1]);
|
|
63
63
|
auto src = JsiSkColorFilter::fromValue(runtime, arguments[2]);
|
|
64
64
|
// Return the newly constructed object
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
65
|
+
return makeJsiObject(
|
|
66
|
+
runtime, std::make_shared<JsiSkColorFilter>(
|
|
67
|
+
getContext(),
|
|
68
|
+
SkColorFilters::Lerp(t, std::move(dst), std::move(src))));
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
JSI_HOST_FUNCTION(MakeSRGBToLinearGamma) {
|
|
72
72
|
// Return the newly constructed object
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
getContext());
|
|
73
|
+
return makeJsiObject(
|
|
74
|
+
runtime, std::make_shared<JsiSkColorFilter>(
|
|
75
|
+
getContext(), SkColorFilters::SRGBToLinearGamma()));
|
|
77
76
|
}
|
|
78
77
|
|
|
79
78
|
JSI_HOST_FUNCTION(MakeLinearToSRGBGamma) {
|
|
80
79
|
// Return the newly constructed object
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
getContext());
|
|
80
|
+
return makeJsiObject(
|
|
81
|
+
runtime, std::make_shared<JsiSkColorFilter>(
|
|
82
|
+
getContext(), SkColorFilters::LinearToSRGBGamma()));
|
|
85
83
|
}
|
|
86
84
|
|
|
87
85
|
JSI_HOST_FUNCTION(MakeLumaColorFilter) {
|
|
88
86
|
// Return the newly constructed object
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, colorFilter,
|
|
92
|
-
getContext());
|
|
87
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkColorFilter>(
|
|
88
|
+
getContext(), SkLumaColorFilter::Make()));
|
|
93
89
|
}
|
|
94
90
|
|
|
95
|
-
size_t getMemoryPressure()
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
91
|
+
size_t getMemoryPressure() override { return 1024; }
|
|
92
|
+
|
|
93
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
94
|
+
installHostMethod(runtime, prototype, "MakeMatrix",
|
|
95
|
+
&JsiSkColorFilterFactory::MakeMatrix);
|
|
96
|
+
installHostMethod(runtime, prototype, "MakeBlend",
|
|
97
|
+
&JsiSkColorFilterFactory::MakeBlend);
|
|
98
|
+
installHostMethod(runtime, prototype, "MakeCompose",
|
|
99
|
+
&JsiSkColorFilterFactory::MakeCompose);
|
|
100
|
+
installHostMethod(runtime, prototype, "MakeLerp",
|
|
101
|
+
&JsiSkColorFilterFactory::MakeLerp);
|
|
102
|
+
installHostMethod(runtime, prototype, "MakeSRGBToLinearGamma",
|
|
103
|
+
&JsiSkColorFilterFactory::MakeSRGBToLinearGamma);
|
|
104
|
+
installHostMethod(runtime, prototype, "MakeLinearToSRGBGamma",
|
|
105
|
+
&JsiSkColorFilterFactory::MakeLinearToSRGBGamma);
|
|
106
|
+
installHostMethod(runtime, prototype, "MakeLumaColorFilter",
|
|
107
|
+
&JsiSkColorFilterFactory::MakeLumaColorFilter);
|
|
99
108
|
}
|
|
100
109
|
|
|
101
|
-
JSI_EXPORT_FUNCTIONS(
|
|
102
|
-
JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeMatrix),
|
|
103
|
-
JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeBlend),
|
|
104
|
-
JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeCompose),
|
|
105
|
-
JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeLerp),
|
|
106
|
-
JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeSRGBToLinearGamma),
|
|
107
|
-
JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeLinearToSRGBGamma),
|
|
108
|
-
JSI_EXPORT_FUNC(JsiSkColorFilterFactory, MakeLumaColorFilter))
|
|
109
|
-
|
|
110
110
|
explicit JsiSkColorFilterFactory(std::shared_ptr<RNSkPlatformContext> context)
|
|
111
|
-
:
|
|
111
|
+
: JsiSkNativeObject<JsiSkColorFilterFactory>(std::move(context)) {}
|
|
112
112
|
};
|
|
113
113
|
} // namespace RNSkia
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#include <jsi/jsi.h>
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "JsiSkNativeObjects.h"
|
|
9
9
|
|
|
10
10
|
#pragma clang diagnostic push
|
|
11
11
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
@@ -21,12 +21,15 @@ namespace RNSkia {
|
|
|
21
21
|
namespace jsi = facebook::jsi;
|
|
22
22
|
|
|
23
23
|
class JsiSkContourMeasure
|
|
24
|
-
: public
|
|
24
|
+
: public JsiSkWrappingSkPtrNativeObject<JsiSkContourMeasure,
|
|
25
|
+
SkContourMeasure> {
|
|
25
26
|
public:
|
|
27
|
+
static constexpr const char *CLASS_NAME = "ContourMeasure";
|
|
28
|
+
|
|
26
29
|
JsiSkContourMeasure(std::shared_ptr<RNSkPlatformContext> context,
|
|
27
30
|
const sk_sp<SkContourMeasure> contourMeasure)
|
|
28
|
-
:
|
|
29
|
-
|
|
31
|
+
: JsiSkWrappingSkPtrNativeObject<JsiSkContourMeasure, SkContourMeasure>(
|
|
32
|
+
std::move(context), std::move(contourMeasure)) {}
|
|
30
33
|
|
|
31
34
|
JSI_HOST_FUNCTION(getPosTan) {
|
|
32
35
|
auto dist = arguments[0].asNumber();
|
|
@@ -37,12 +40,10 @@ public:
|
|
|
37
40
|
throw jsi::JSError(runtime, "getPosTan() failed");
|
|
38
41
|
}
|
|
39
42
|
auto posTan = jsi::Array(runtime, 2);
|
|
40
|
-
auto
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
auto tan = JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, tanPoint,
|
|
45
|
-
getContext());
|
|
43
|
+
auto pos = makeJsiObject(
|
|
44
|
+
runtime, std::make_shared<JsiSkPoint>(getContext(), position));
|
|
45
|
+
auto tan = makeJsiObject(
|
|
46
|
+
runtime, std::make_shared<JsiSkPoint>(getContext(), tangent));
|
|
46
47
|
posTan.setValueAtIndex(runtime, 0, pos);
|
|
47
48
|
posTan.setValueAtIndex(runtime, 1, tan);
|
|
48
49
|
return posTan;
|
|
@@ -67,16 +68,18 @@ public:
|
|
|
67
68
|
return JsiSkPath::toValue(runtime, getContext(), builder.snapshot());
|
|
68
69
|
}
|
|
69
70
|
|
|
70
|
-
size_t getMemoryPressure()
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
71
|
+
size_t getMemoryPressure() override { return 1024; }
|
|
72
|
+
|
|
73
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
74
|
+
installCommon(runtime, prototype);
|
|
75
|
+
installHostMethod(runtime, prototype, "getPosTan",
|
|
76
|
+
&JsiSkContourMeasure::getPosTan);
|
|
77
|
+
installHostMethod(runtime, prototype, "length",
|
|
78
|
+
&JsiSkContourMeasure::length);
|
|
79
|
+
installHostMethod(runtime, prototype, "isClosed",
|
|
80
|
+
&JsiSkContourMeasure::isClosed);
|
|
81
|
+
installHostMethod(runtime, prototype, "getSegment",
|
|
82
|
+
&JsiSkContourMeasure::getSegment);
|
|
83
|
+
}
|
|
81
84
|
};
|
|
82
85
|
} // namespace RNSkia
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#include <utility>
|
|
5
5
|
|
|
6
6
|
#include "JsiSkContourMeasure.h"
|
|
7
|
-
#include "
|
|
7
|
+
#include "JsiSkNativeObjects.h"
|
|
8
8
|
|
|
9
9
|
#pragma clang diagnostic push
|
|
10
10
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
@@ -20,12 +20,16 @@ namespace RNSkia {
|
|
|
20
20
|
namespace jsi = facebook::jsi;
|
|
21
21
|
|
|
22
22
|
class JsiSkContourMeasureIter
|
|
23
|
-
: public
|
|
23
|
+
: public JsiSkWrappingSharedPtrNativeObject<JsiSkContourMeasureIter,
|
|
24
|
+
SkContourMeasureIter> {
|
|
24
25
|
public:
|
|
26
|
+
static constexpr const char *CLASS_NAME = "ContourMeasureIter";
|
|
27
|
+
|
|
25
28
|
JsiSkContourMeasureIter(std::shared_ptr<RNSkPlatformContext> context,
|
|
26
29
|
const SkPath &path, bool forceClosed,
|
|
27
30
|
SkScalar resScale = 1)
|
|
28
|
-
:
|
|
31
|
+
: JsiSkWrappingSharedPtrNativeObject<JsiSkContourMeasureIter,
|
|
32
|
+
SkContourMeasureIter>(
|
|
29
33
|
std::move(context), std::make_shared<SkContourMeasureIter>(
|
|
30
34
|
path, forceClosed, resScale)) {}
|
|
31
35
|
|
|
@@ -34,24 +38,18 @@ public:
|
|
|
34
38
|
if (next == nullptr) {
|
|
35
39
|
return jsi::Value::undefined();
|
|
36
40
|
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, nextObject,
|
|
41
|
-
getContext());
|
|
41
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkContourMeasure>(
|
|
42
|
+
getContext(), std::move(next)));
|
|
42
43
|
}
|
|
43
44
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
size_t getMemoryPressure() const override {
|
|
50
|
-
return std::max(sizeof(SkContourMeasureIter), kMinMemoryPressure);
|
|
45
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
46
|
+
installCommon(runtime, prototype);
|
|
47
|
+
installHostMethod(runtime, prototype, "next",
|
|
48
|
+
&JsiSkContourMeasureIter::next);
|
|
51
49
|
}
|
|
52
50
|
|
|
53
|
-
|
|
54
|
-
return
|
|
51
|
+
size_t getMemoryPressure() override {
|
|
52
|
+
return std::max(sizeof(SkContourMeasureIter), kMinMemoryPressure);
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
/**
|
|
@@ -68,10 +66,9 @@ public:
|
|
|
68
66
|
auto forceClosed = arguments[1].getBool();
|
|
69
67
|
auto resScale = arguments[2].asNumber();
|
|
70
68
|
// Return the newly constructed object
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
context);
|
|
69
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkContourMeasureIter>(
|
|
70
|
+
std::move(context), path->snapshot(),
|
|
71
|
+
forceClosed, resScale));
|
|
75
72
|
};
|
|
76
73
|
}
|
|
77
74
|
};
|
package/cpp/api/JsiSkData.h
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
|
|
6
6
|
#include <jsi/jsi.h>
|
|
7
7
|
|
|
8
|
-
#include "
|
|
8
|
+
#include "JsiSkNativeObjects.h"
|
|
9
9
|
|
|
10
10
|
#pragma clang diagnostic push
|
|
11
11
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
@@ -19,19 +19,25 @@ namespace RNSkia {
|
|
|
19
19
|
|
|
20
20
|
namespace jsi = facebook::jsi;
|
|
21
21
|
|
|
22
|
-
class JsiSkData : public
|
|
22
|
+
class JsiSkData : public JsiSkWrappingSkPtrNativeObject<JsiSkData, SkData> {
|
|
23
23
|
public:
|
|
24
|
+
static constexpr const char *CLASS_NAME = "Data";
|
|
25
|
+
|
|
24
26
|
JsiSkData(std::shared_ptr<RNSkPlatformContext> context, sk_sp<SkData> asset)
|
|
25
|
-
:
|
|
27
|
+
: JsiSkWrappingSkPtrNativeObject<JsiSkData, SkData>(std::move(context),
|
|
28
|
+
std::move(asset)) {}
|
|
26
29
|
|
|
27
|
-
size_t getMemoryPressure()
|
|
30
|
+
size_t getMemoryPressure() override {
|
|
28
31
|
auto data = getObject();
|
|
29
32
|
return data ? data->size() : 0;
|
|
30
33
|
}
|
|
31
34
|
|
|
32
|
-
|
|
35
|
+
static sk_sp<SkData> fromValue(jsi::Runtime &runtime, const jsi::Value &obj) {
|
|
36
|
+
return objectFromValue(runtime, obj);
|
|
37
|
+
}
|
|
33
38
|
|
|
34
|
-
|
|
35
|
-
|
|
39
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
40
|
+
installCommon(runtime, prototype);
|
|
41
|
+
}
|
|
36
42
|
};
|
|
37
43
|
} // namespace RNSkia
|