@shopify/react-native-skia 2.9.1-next.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/android/cpp/jni/JniWebGPUView.cpp +52 -7
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUSurfaceView.java +3 -1
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUTextureView.java +11 -5
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUView.java +10 -7
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewAPI.java +7 -2
- package/android/src/main/java/com/shopify/reactnative/skia/WebGPUViewManager.java +1 -1
- package/apple/WebGPUMetalView.mm +49 -6
- 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/JsiSkParagraphStyle.h +20 -10
- 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/JsiSkStrutStyle.h +18 -8
- 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/JsiSkTextStyle.h +34 -24
- 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 +29 -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/SurfaceRegistry.h +469 -131
- package/cpp/rnwgpu/api/GPU.cpp +4 -4
- package/cpp/rnwgpu/api/GPU.h +1 -1
- package/cpp/rnwgpu/api/GPUAdapter.cpp +12 -6
- package/cpp/rnwgpu/api/GPUAdapter.h +5 -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.cpp +12 -2
- package/cpp/rnwgpu/api/GPUBuffer.h +4 -3
- package/cpp/rnwgpu/api/GPUCanvasContext.cpp +33 -19
- package/cpp/rnwgpu/api/GPUCanvasContext.h +4 -2
- 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 +38 -24
- package/cpp/rnwgpu/api/GPUDevice.h +12 -10
- 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.cpp +6 -2
- package/cpp/rnwgpu/api/GPUQueue.h +4 -4
- 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 +8 -3
- package/cpp/rnwgpu/api/GPUShaderModule.h +4 -4
- 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 +21 -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/cpp/rnwgpu/async/RuntimeContext.cpp +5 -0
- package/cpp/rnwgpu/async/RuntimeContext.h +15 -2
- 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/commonjs/views/WebGPUCanvas.d.ts +1 -0
- package/lib/commonjs/views/WebGPUCanvas.js +13 -0
- package/lib/commonjs/views/WebGPUCanvas.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/module/views/WebGPUCanvas.d.ts +1 -0
- package/lib/module/views/WebGPUCanvas.js +14 -1
- package/lib/module/views/WebGPUCanvas.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/lib/typescript/src/views/WebGPUCanvas.d.ts +1 -0
- package/package.json +12 -8
- 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/src/views/WebGPUCanvas.tsx +17 -1
- package/cpp/api/JsiSkHostObjects.h +0 -257
- package/cpp/dawn/include/dawn/dawn_proc.h +0 -53
- package/cpp/dawn/include/dawn/dawn_proc_table.h +0 -330
- package/cpp/dawn/include/dawn/dawn_thread_dispatch_proc.h +0 -47
- package/cpp/dawn/include/dawn/dawn_version.h +0 -41
- package/cpp/dawn/include/dawn/native/D3D11Backend.h +0 -65
- package/cpp/dawn/include/dawn/native/D3D12Backend.h +0 -86
- package/cpp/dawn/include/dawn/native/D3DBackend.h +0 -56
- package/cpp/dawn/include/dawn/native/DawnNative.h +0 -369
- package/cpp/dawn/include/dawn/native/MetalBackend.h +0 -56
- package/cpp/dawn/include/dawn/native/NullBackend.h +0 -39
- package/cpp/dawn/include/dawn/native/OpenGLBackend.h +0 -89
- package/cpp/dawn/include/dawn/native/VulkanBackend.h +0 -183
- package/cpp/dawn/include/dawn/native/WebGPUBackend.h +0 -49
- package/cpp/dawn/include/dawn/native/dawn_native_export.h +0 -49
- package/cpp/dawn/include/dawn/platform/DawnPlatform.h +0 -210
- package/cpp/dawn/include/dawn/platform/dawn_platform_export.h +0 -49
- package/cpp/dawn/include/dawn/replay/Replay.h +0 -99
- package/cpp/dawn/include/dawn/replay/dawn_replay_export.h +0 -49
- package/cpp/dawn/include/dawn/webgpu_cpp_print.h +0 -2844
- package/cpp/dawn/include/tint/tint.h +0 -90
- package/cpp/dawn/include/webgpu/webgpu.h +0 -4987
- package/cpp/dawn/include/webgpu/webgpu_cpp.h +0 -10080
- package/cpp/dawn/include/webgpu/webgpu_cpp_chained_struct.h +0 -57
- package/cpp/dawn/include/webgpu/webgpu_enum_class_bitmasks.h +0 -161
- package/cpp/dawn/include/webgpu/webgpu_glfw.h +0 -88
- package/cpp/jsi/JsiHostObject.cpp +0 -137
- package/cpp/jsi/JsiHostObject.h +0 -385
- package/cpp/skia/src/gpu/graphite/ContextOptionsPriv.h +0 -45
- package/cpp/skia/src/gpu/graphite/ResourceTypes.h +0 -360
- package/cpp/skia/src/gpu/graphite/TextureProxyView.h +0 -105
- package/libs/.graphite +0 -1
- /package/cpp/{jsi2 → jsi}/JSIConverter.h +0 -0
- /package/cpp/{jsi2 → jsi}/Promise.cpp +0 -0
- /package/cpp/{jsi2 → jsi}/Promise.h +0 -0
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
#include <jsi/jsi.h>
|
|
8
8
|
|
|
9
|
-
#include "
|
|
9
|
+
#include "JsiSkNativeObjects.h"
|
|
10
10
|
|
|
11
11
|
#pragma clang diagnostic push
|
|
12
12
|
#pragma clang diagnostic ignored "-Wdocumentation"
|
|
@@ -20,8 +20,10 @@ namespace RNSkia {
|
|
|
20
20
|
|
|
21
21
|
namespace jsi = facebook::jsi;
|
|
22
22
|
|
|
23
|
-
class JsiSkFontMgrFactory : public
|
|
23
|
+
class JsiSkFontMgrFactory : public JsiSkNativeObject<JsiSkFontMgrFactory> {
|
|
24
24
|
public:
|
|
25
|
+
static constexpr const char *CLASS_NAME = "FontMgrFactory";
|
|
26
|
+
|
|
25
27
|
static sk_sp<SkFontMgr>
|
|
26
28
|
getFontMgr(std::shared_ptr<RNSkPlatformContext> context) {
|
|
27
29
|
static SkOnce once;
|
|
@@ -32,19 +34,19 @@ public:
|
|
|
32
34
|
|
|
33
35
|
JSI_HOST_FUNCTION(System) {
|
|
34
36
|
auto fontMgr = JsiSkFontMgrFactory::getFontMgr(getContext());
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
getContext());
|
|
37
|
+
return makeJsiObject(runtime,
|
|
38
|
+
std::make_shared<JsiSkFontMgr>(getContext(), fontMgr));
|
|
38
39
|
}
|
|
39
40
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
size_t getMemoryPressure() const override { return 1024; }
|
|
41
|
+
size_t getMemoryPressure() override { return 1024; }
|
|
43
42
|
|
|
44
|
-
|
|
43
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
44
|
+
installHostMethod(runtime, prototype, "System",
|
|
45
|
+
&JsiSkFontMgrFactory::System);
|
|
46
|
+
}
|
|
45
47
|
|
|
46
48
|
explicit JsiSkFontMgrFactory(std::shared_ptr<RNSkPlatformContext> context)
|
|
47
|
-
:
|
|
49
|
+
: JsiSkNativeObject<JsiSkFontMgrFactory>(std::move(context)) {}
|
|
48
50
|
};
|
|
49
51
|
|
|
50
52
|
} // namespace RNSkia
|
package/cpp/api/JsiSkFontStyle.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"
|
|
@@ -18,13 +18,14 @@ namespace RNSkia {
|
|
|
18
18
|
|
|
19
19
|
namespace jsi = facebook::jsi;
|
|
20
20
|
|
|
21
|
-
class JsiSkFontStyle
|
|
21
|
+
class JsiSkFontStyle
|
|
22
|
+
: public JsiSkWrappingSharedPtrNativeObject<JsiSkFontStyle, SkFontStyle> {
|
|
22
23
|
public:
|
|
23
|
-
|
|
24
|
+
static constexpr const char *CLASS_NAME = "FontStyle";
|
|
24
25
|
|
|
25
26
|
JsiSkFontStyle(std::shared_ptr<RNSkPlatformContext> context,
|
|
26
27
|
const SkFontStyle &fontStyle)
|
|
27
|
-
:
|
|
28
|
+
: JsiSkWrappingSharedPtrNativeObject<JsiSkFontStyle, SkFontStyle>(
|
|
28
29
|
std::move(context), std::make_shared<SkFontStyle>(fontStyle)) {}
|
|
29
30
|
|
|
30
31
|
/**
|
|
@@ -33,8 +34,9 @@ public:
|
|
|
33
34
|
static std::shared_ptr<SkFontStyle> fromValue(jsi::Runtime &runtime,
|
|
34
35
|
const jsi::Value &obj) {
|
|
35
36
|
const auto &object = obj.asObject(runtime);
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
auto fontStyle = tryGetJsiObject<JsiSkFontStyle>(runtime, object);
|
|
38
|
+
if (fontStyle) {
|
|
39
|
+
return fontStyle->getObject();
|
|
38
40
|
} else {
|
|
39
41
|
auto weightProp = object.getProperty(runtime, "weight");
|
|
40
42
|
auto weight = static_cast<int>(
|
|
@@ -56,11 +58,13 @@ public:
|
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
|
|
59
|
-
size_t getMemoryPressure()
|
|
61
|
+
size_t getMemoryPressure() override {
|
|
60
62
|
return std::max(sizeof(SkFontStyle), kMinMemoryPressure);
|
|
61
63
|
}
|
|
62
64
|
|
|
63
|
-
|
|
65
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
66
|
+
installCommon(runtime, prototype);
|
|
67
|
+
}
|
|
64
68
|
|
|
65
69
|
/**
|
|
66
70
|
Returns the jsi object from a host object of this type
|
|
@@ -68,10 +72,8 @@ public:
|
|
|
68
72
|
static jsi::Value toValue(jsi::Runtime &runtime,
|
|
69
73
|
std::shared_ptr<RNSkPlatformContext> context,
|
|
70
74
|
const SkFontStyle &fontStyle) {
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, fontStyleObj,
|
|
74
|
-
context);
|
|
75
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkFontStyle>(
|
|
76
|
+
std::move(context), fontStyle));
|
|
75
77
|
}
|
|
76
78
|
};
|
|
77
79
|
} // namespace RNSkia
|
package/cpp/api/JsiSkImage.h
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
#include <utility>
|
|
6
6
|
|
|
7
7
|
#include "JsiSkDispatcher.h"
|
|
8
|
-
#include "JsiSkHostObjects.h"
|
|
9
8
|
#include "JsiSkImageInfo.h"
|
|
10
9
|
#include "JsiSkMatrix.h"
|
|
10
|
+
#include "JsiSkNativeObjects.h"
|
|
11
11
|
#include "JsiSkShader.h"
|
|
12
12
|
#include "api/third_party/base64.h"
|
|
13
13
|
|
|
@@ -15,8 +15,8 @@
|
|
|
15
15
|
#include "utils/RNSkTypedArray.h"
|
|
16
16
|
|
|
17
17
|
#if defined(SK_GRAPHITE)
|
|
18
|
-
#include "rnskia/RNDawnContext.h"
|
|
19
18
|
#include "include/gpu/graphite/Context.h"
|
|
19
|
+
#include "rnskia/RNDawnContext.h"
|
|
20
20
|
#else
|
|
21
21
|
#include "include/gpu/ganesh/GrDirectContext.h"
|
|
22
22
|
#endif
|
|
@@ -140,11 +140,13 @@ inline SkSamplingOptions SamplingOptionsFromValue(jsi::Runtime &runtime,
|
|
|
140
140
|
return samplingOptions;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
|
-
class JsiSkImage : public
|
|
143
|
+
class JsiSkImage : public JsiSkWrappingSkPtrNativeObject<JsiSkImage, SkImage> {
|
|
144
144
|
private:
|
|
145
145
|
std::shared_ptr<Dispatcher> _dispatcher;
|
|
146
146
|
|
|
147
147
|
public:
|
|
148
|
+
static constexpr const char *CLASS_NAME = "Image";
|
|
149
|
+
|
|
148
150
|
// TODO-API: Properties?
|
|
149
151
|
JSI_HOST_FUNCTION(width) { return static_cast<double>(getObject()->width()); }
|
|
150
152
|
JSI_HOST_FUNCTION(height) {
|
|
@@ -166,10 +168,8 @@ public:
|
|
|
166
168
|
: nullptr;
|
|
167
169
|
auto shader =
|
|
168
170
|
getObject()->makeShader(tmx, tmy, SkSamplingOptions(fm, mm), m);
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shaderObj,
|
|
172
|
-
getContext());
|
|
171
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkShader>(
|
|
172
|
+
getContext(), std::move(shader)));
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
JSI_HOST_FUNCTION(makeShaderCubic) {
|
|
@@ -182,10 +182,8 @@ public:
|
|
|
182
182
|
: nullptr;
|
|
183
183
|
auto shader =
|
|
184
184
|
getObject()->makeShader(tmx, tmy, SkSamplingOptions({B, C}), m);
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(runtime, shaderObj,
|
|
188
|
-
getContext());
|
|
185
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkShader>(
|
|
186
|
+
getContext(), std::move(shader)));
|
|
189
187
|
}
|
|
190
188
|
|
|
191
189
|
sk_sp<SkData> encodeImageData(const jsi::Value *arguments, size_t count) {
|
|
@@ -344,10 +342,8 @@ public:
|
|
|
344
342
|
if (!rasterImage) {
|
|
345
343
|
return jsi::Value::null();
|
|
346
344
|
}
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
350
|
-
runtime, hostObjectInstance, getContext());
|
|
345
|
+
return makeJsiObject(runtime, std::make_shared<JsiSkImage>(
|
|
346
|
+
getContext(), std::move(rasterImage)));
|
|
351
347
|
}
|
|
352
348
|
|
|
353
349
|
JSI_HOST_FUNCTION(getNativeTextureUnstable) {
|
|
@@ -363,25 +359,42 @@ public:
|
|
|
363
359
|
return jsi::Value(getObject()->isTextureBacked());
|
|
364
360
|
}
|
|
365
361
|
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
362
|
+
/**
|
|
363
|
+
Returns the underlying object from a host object of this type
|
|
364
|
+
*/
|
|
365
|
+
static sk_sp<SkImage> fromValue(jsi::Runtime &runtime,
|
|
366
|
+
const jsi::Value &obj) {
|
|
367
|
+
return objectFromValue(runtime, obj);
|
|
368
|
+
}
|
|
369
|
+
|
|
370
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
371
|
+
installCommon(runtime, prototype);
|
|
372
|
+
installHostMethod(runtime, prototype, "width", &JsiSkImage::width);
|
|
373
|
+
installHostMethod(runtime, prototype, "height", &JsiSkImage::height);
|
|
374
|
+
installHostMethod(runtime, prototype, "getImageInfo",
|
|
375
|
+
&JsiSkImage::getImageInfo);
|
|
376
|
+
installHostMethod(runtime, prototype, "makeShaderOptions",
|
|
377
|
+
&JsiSkImage::makeShaderOptions);
|
|
378
|
+
installHostMethod(runtime, prototype, "makeShaderCubic",
|
|
379
|
+
&JsiSkImage::makeShaderCubic);
|
|
380
|
+
installHostMethod(runtime, prototype, "encodeToBytes",
|
|
381
|
+
&JsiSkImage::encodeToBytes);
|
|
382
|
+
installHostMethod(runtime, prototype, "encodeToBase64",
|
|
383
|
+
&JsiSkImage::encodeToBase64);
|
|
384
|
+
installHostMethod(runtime, prototype, "readPixels",
|
|
385
|
+
&JsiSkImage::readPixels);
|
|
386
|
+
installHostMethod(runtime, prototype, "makeNonTextureImage",
|
|
387
|
+
&JsiSkImage::makeNonTextureImage);
|
|
388
|
+
installHostMethod(runtime, prototype, "getNativeTextureUnstable",
|
|
389
|
+
&JsiSkImage::getNativeTextureUnstable);
|
|
390
|
+
installHostMethod(runtime, prototype, "isTextureBacked",
|
|
391
|
+
&JsiSkImage::isTextureBacked);
|
|
392
|
+
}
|
|
380
393
|
|
|
381
394
|
JsiSkImage(std::shared_ptr<RNSkPlatformContext> context,
|
|
382
395
|
const sk_sp<SkImage> image)
|
|
383
|
-
:
|
|
384
|
-
|
|
396
|
+
: JsiSkWrappingSkPtrNativeObject<JsiSkImage, SkImage>(std::move(context),
|
|
397
|
+
std::move(image)) {
|
|
385
398
|
// Get the dispatcher for the current thread
|
|
386
399
|
_dispatcher = Dispatcher::getDispatcher();
|
|
387
400
|
// Process any pending operations (e.g. deletions of previous resources)
|
|
@@ -406,7 +419,7 @@ public:
|
|
|
406
419
|
}
|
|
407
420
|
}
|
|
408
421
|
|
|
409
|
-
size_t getMemoryPressure()
|
|
422
|
+
size_t getMemoryPressure() override {
|
|
410
423
|
if (isDisposed()) {
|
|
411
424
|
return 0;
|
|
412
425
|
}
|
|
@@ -420,8 +433,6 @@ public:
|
|
|
420
433
|
}
|
|
421
434
|
return 0;
|
|
422
435
|
}
|
|
423
|
-
|
|
424
|
-
std::string getObjectType() const override { return "JsiSkImage"; }
|
|
425
436
|
};
|
|
426
437
|
|
|
427
438
|
} // namespace RNSkia
|
|
@@ -5,11 +5,11 @@
|
|
|
5
5
|
|
|
6
6
|
#include <jsi/jsi.h>
|
|
7
7
|
|
|
8
|
-
#include "jsi/JsiPromises.h"
|
|
9
8
|
#include "JsiSkData.h"
|
|
10
|
-
#include "JsiSkHostObjects.h"
|
|
11
9
|
#include "JsiSkImage.h"
|
|
12
10
|
#include "JsiSkImageInfo.h"
|
|
11
|
+
#include "JsiSkNativeObjects.h"
|
|
12
|
+
#include "jsi/JsiPromises.h"
|
|
13
13
|
|
|
14
14
|
#ifdef SK_GRAPHITE
|
|
15
15
|
#include "rnskia/RNDawnContext.h"
|
|
@@ -20,13 +20,13 @@ namespace RNSkia {
|
|
|
20
20
|
|
|
21
21
|
namespace jsi = facebook::jsi;
|
|
22
22
|
|
|
23
|
-
class JsiSkImageFactory : public
|
|
23
|
+
class JsiSkImageFactory : public JsiSkNativeObject<JsiSkImageFactory> {
|
|
24
24
|
public:
|
|
25
|
+
static constexpr const char *CLASS_NAME = "ImageFactory";
|
|
26
|
+
|
|
25
27
|
JSI_HOST_FUNCTION(MakeNull) {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
29
|
-
runtime, hostObjectInstance, getContext());
|
|
28
|
+
return makeJsiObject(runtime,
|
|
29
|
+
std::make_shared<JsiSkImage>(getContext(), nullptr));
|
|
30
30
|
}
|
|
31
31
|
|
|
32
32
|
JSI_HOST_FUNCTION(MakeImageFromEncoded) {
|
|
@@ -35,10 +35,8 @@ public:
|
|
|
35
35
|
if (image == nullptr) {
|
|
36
36
|
return jsi::Value::null();
|
|
37
37
|
}
|
|
38
|
-
|
|
39
|
-
std::make_shared<JsiSkImage>(getContext(), std::move(image));
|
|
40
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
41
|
-
runtime, hostObjectInstance, getContext());
|
|
38
|
+
return makeJsiObject(
|
|
39
|
+
runtime, std::make_shared<JsiSkImage>(getContext(), std::move(image)));
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
JSI_HOST_FUNCTION(MakeImageFromNativeBuffer) {
|
|
@@ -49,10 +47,8 @@ public:
|
|
|
49
47
|
if (image == nullptr) {
|
|
50
48
|
throw std::runtime_error("Failed to convert NativeBuffer to SkImage!");
|
|
51
49
|
}
|
|
52
|
-
|
|
53
|
-
std::make_shared<JsiSkImage>(getContext(), std::move(image));
|
|
54
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
55
|
-
runtime, hostObjectInstance, getContext());
|
|
50
|
+
return makeJsiObject(
|
|
51
|
+
runtime, std::make_shared<JsiSkImage>(getContext(), std::move(image)));
|
|
56
52
|
}
|
|
57
53
|
|
|
58
54
|
JSI_HOST_FUNCTION(MakeImage) {
|
|
@@ -63,10 +59,8 @@ public:
|
|
|
63
59
|
if (image == nullptr) {
|
|
64
60
|
return jsi::Value::null();
|
|
65
61
|
}
|
|
66
|
-
|
|
67
|
-
std::make_shared<JsiSkImage>(getContext(), std::move(image));
|
|
68
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
69
|
-
runtime, hostObjectInstance, getContext());
|
|
62
|
+
return makeJsiObject(
|
|
63
|
+
runtime, std::make_shared<JsiSkImage>(getContext(), std::move(image)));
|
|
70
64
|
}
|
|
71
65
|
|
|
72
66
|
JSI_HOST_FUNCTION(MakeImageFromViewTag) {
|
|
@@ -88,10 +82,9 @@ public:
|
|
|
88
82
|
promise->reject("Failed to create image from view tag");
|
|
89
83
|
return;
|
|
90
84
|
}
|
|
91
|
-
|
|
92
|
-
std::make_shared<JsiSkImage>(
|
|
93
|
-
|
|
94
|
-
runtime, hostObjectInstance, context));
|
|
85
|
+
promise->resolve(
|
|
86
|
+
makeJsiObject(runtime, std::make_shared<JsiSkImage>(
|
|
87
|
+
context, std::move(result))));
|
|
95
88
|
});
|
|
96
89
|
});
|
|
97
90
|
});
|
|
@@ -105,17 +98,15 @@ public:
|
|
|
105
98
|
if (image == nullptr) {
|
|
106
99
|
throw std::runtime_error("Failed to convert native texture to SkImage!");
|
|
107
100
|
}
|
|
108
|
-
if (count > 4
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
101
|
+
if (count > 4) {
|
|
102
|
+
auto jsiImage = tryGetJsiObject<JsiSkImage>(runtime, arguments[4]);
|
|
103
|
+
if (jsiImage) {
|
|
104
|
+
jsiImage->setObject(image);
|
|
105
|
+
return jsi::Value(runtime, arguments[4]);
|
|
106
|
+
}
|
|
114
107
|
}
|
|
115
|
-
|
|
116
|
-
std::make_shared<JsiSkImage>(getContext(), std::move(image));
|
|
117
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
118
|
-
runtime, hostObjectInstance, getContext());
|
|
108
|
+
return makeJsiObject(
|
|
109
|
+
runtime, std::make_shared<JsiSkImage>(getContext(), std::move(image)));
|
|
119
110
|
}
|
|
120
111
|
|
|
121
112
|
JSI_HOST_FUNCTION(MakeImageFromTexture) {
|
|
@@ -141,10 +132,8 @@ public:
|
|
|
141
132
|
if (image == nullptr) {
|
|
142
133
|
throw std::runtime_error("Failed to create SkImage from GPUTexture!");
|
|
143
134
|
}
|
|
144
|
-
|
|
145
|
-
std::make_shared<JsiSkImage>(getContext(), std::move(image));
|
|
146
|
-
return JSI_CREATE_HOST_OBJECT_WITH_MEMORY_PRESSURE(
|
|
147
|
-
runtime, hostObjectInstance, getContext());
|
|
135
|
+
return makeJsiObject(
|
|
136
|
+
runtime, std::make_shared<JsiSkImage>(getContext(), std::move(image)));
|
|
148
137
|
#else
|
|
149
138
|
throw std::runtime_error(
|
|
150
139
|
"MakeImageFromTexture is only available with the Graphite backend. "
|
|
@@ -179,23 +168,29 @@ public:
|
|
|
179
168
|
#endif
|
|
180
169
|
}
|
|
181
170
|
|
|
182
|
-
size_t getMemoryPressure()
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
171
|
+
size_t getMemoryPressure() override { return 1024; }
|
|
172
|
+
|
|
173
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
174
|
+
installHostMethod(runtime, prototype, "MakeImageFromEncoded",
|
|
175
|
+
&JsiSkImageFactory::MakeImageFromEncoded);
|
|
176
|
+
installHostMethod(runtime, prototype, "MakeImageFromViewTag",
|
|
177
|
+
&JsiSkImageFactory::MakeImageFromViewTag);
|
|
178
|
+
installHostMethod(runtime, prototype, "MakeImageFromNativeBuffer",
|
|
179
|
+
&JsiSkImageFactory::MakeImageFromNativeBuffer);
|
|
180
|
+
installHostMethod(runtime, prototype, "MakeImageFromNativeTextureUnstable",
|
|
181
|
+
&JsiSkImageFactory::MakeImageFromNativeTextureUnstable);
|
|
182
|
+
installHostMethod(runtime, prototype, "MakeImage",
|
|
183
|
+
&JsiSkImageFactory::MakeImage);
|
|
184
|
+
installHostMethod(runtime, prototype, "MakeNull",
|
|
185
|
+
&JsiSkImageFactory::MakeNull);
|
|
186
|
+
installHostMethod(runtime, prototype, "MakeImageFromTexture",
|
|
187
|
+
&JsiSkImageFactory::MakeImageFromTexture);
|
|
188
|
+
installHostMethod(runtime, prototype, "MakeTextureFromImage",
|
|
189
|
+
&JsiSkImageFactory::MakeTextureFromImage);
|
|
190
|
+
}
|
|
196
191
|
|
|
197
192
|
explicit JsiSkImageFactory(std::shared_ptr<RNSkPlatformContext> context)
|
|
198
|
-
:
|
|
193
|
+
: JsiSkNativeObject<JsiSkImageFactory>(std::move(context)) {}
|
|
199
194
|
};
|
|
200
195
|
|
|
201
196
|
} // 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"
|
|
@@ -18,19 +18,29 @@ namespace RNSkia {
|
|
|
18
18
|
|
|
19
19
|
namespace jsi = facebook::jsi;
|
|
20
20
|
|
|
21
|
-
class JsiSkImageFilter
|
|
21
|
+
class JsiSkImageFilter
|
|
22
|
+
: public JsiSkWrappingSkPtrNativeObject<JsiSkImageFilter, SkImageFilter> {
|
|
22
23
|
public:
|
|
24
|
+
static constexpr const char *CLASS_NAME = "ImageFilter";
|
|
25
|
+
|
|
23
26
|
JsiSkImageFilter(std::shared_ptr<RNSkPlatformContext> context,
|
|
24
27
|
sk_sp<SkImageFilter> imageFilter)
|
|
25
|
-
:
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
size_t getMemoryPressure()
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
28
|
+
: JsiSkWrappingSkPtrNativeObject<JsiSkImageFilter, SkImageFilter>(
|
|
29
|
+
std::move(context), std::move(imageFilter)) {}
|
|
30
|
+
|
|
31
|
+
size_t getMemoryPressure() override { return 1024 * 1024; }
|
|
32
|
+
|
|
33
|
+
static void definePrototype(jsi::Runtime &runtime, jsi::Object &prototype) {
|
|
34
|
+
installCommon(runtime, prototype);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
Returns the underlying object from a host object of this type
|
|
39
|
+
*/
|
|
40
|
+
static sk_sp<SkImageFilter> fromValue(jsi::Runtime &runtime,
|
|
41
|
+
const jsi::Value &obj) {
|
|
42
|
+
return objectFromValue(runtime, obj);
|
|
43
|
+
}
|
|
34
44
|
};
|
|
35
45
|
|
|
36
46
|
} // namespace RNSkia
|