@shopify/react-native-skia 2.6.5 → 2.6.6
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 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerDelegate.java +35 -0
- package/android/src/paper/java/com/facebook/react/viewmanagers/SkiaWebGPUViewManagerInterface.java +17 -0
- package/cpp/api/JsiSkCanvas.h +33 -0
- package/cpp/api/JsiSkImage.h +12 -4
- package/cpp/api/JsiSkSurface.h +5 -1
- package/cpp/rnwgpu/api/GPU.cpp +0 -3
- package/cpp/rnwgpu/api/GPUAdapter.cpp +9 -5
- package/cpp/rnwgpu/api/GPUDevice.cpp +55 -4
- package/cpp/rnwgpu/api/GPUDevice.h +6 -0
- package/cpp/rnwgpu/api/GPUShaderModule.cpp +1 -1
- package/cpp/rnwgpu/api/GPUSharedFence.cpp +80 -0
- package/cpp/rnwgpu/api/GPUSharedFence.h +53 -0
- package/cpp/rnwgpu/api/GPUSharedTextureMemory.cpp +64 -11
- package/cpp/rnwgpu/api/GPUSharedTextureMemory.h +13 -8
- package/cpp/rnwgpu/api/descriptors/GPUSharedFenceDescriptor.h +58 -0
- package/cpp/rnwgpu/api/descriptors/GPUSharedFenceState.h +51 -0
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +1 -1
- package/cpp/skia/include/android/SkAndroidFrameworkUtils.h +1 -1
- package/cpp/skia/include/android/SkAnimatedImage.h +1 -1
- package/cpp/skia/include/codec/SkCodec.h +0 -8
- package/cpp/skia/include/codec/SkEncodedOrigin.h +1 -1
- package/cpp/skia/include/codec/SkPngRustDecoder.h +1 -1
- package/cpp/skia/include/core/SkBitmap.h +2 -8
- package/cpp/skia/include/core/SkCPURecorder.h +3 -1
- package/cpp/skia/include/core/SkCanvasVirtualEnforcer.h +1 -1
- package/cpp/skia/include/core/SkColorType.h +5 -3
- package/cpp/skia/include/core/SkContourMeasure.h +1 -1
- package/cpp/skia/include/core/SkCoverageMode.h +1 -1
- package/cpp/skia/include/core/SkCubicMap.h +1 -1
- package/cpp/skia/include/core/SkExecutor.h +1 -1
- package/cpp/skia/include/core/SkFont.h +15 -0
- package/cpp/skia/include/core/SkFontArguments.h +6 -1
- package/cpp/skia/include/core/SkFontMetrics.h +1 -1
- package/cpp/skia/include/core/SkFontMgr.h +36 -1
- package/cpp/skia/include/core/SkFontParameters.h +1 -1
- package/cpp/skia/include/core/SkFontScanner.h +1 -1
- package/cpp/skia/include/core/SkFontTypes.h +1 -1
- package/cpp/skia/include/core/SkM44.h +1 -1
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkOpenTypeSVGDecoder.h +1 -1
- package/cpp/skia/include/core/SkPathBuilder.h +10 -4
- package/cpp/skia/include/core/SkPathIter.h +1 -1
- package/cpp/skia/include/core/SkPathTypes.h +1 -1
- package/cpp/skia/include/core/SkPixelRef.h +4 -1
- package/cpp/skia/include/core/SkRecorder.h +2 -1
- package/cpp/skia/include/core/SkRegion.h +7 -1
- package/cpp/skia/include/core/SkSamplingOptions.h +1 -1
- package/cpp/skia/include/core/SkSerialProcs.h +8 -1
- package/cpp/skia/include/core/SkShader.h +3 -5
- package/cpp/skia/include/core/SkSpan.h +1 -1
- package/cpp/skia/include/core/SkStream.h +1 -1
- package/cpp/skia/include/core/SkStrikeRef.h +80 -0
- package/cpp/skia/include/core/SkTileMode.h +1 -1
- package/cpp/skia/include/core/SkVertices.h +1 -1
- package/cpp/skia/include/core/SkYUVAPixmaps.h +3 -5
- package/cpp/skia/include/docs/SkPDFDocument.h +1 -1
- package/cpp/skia/include/docs/SkXPSDocument.h +1 -1
- package/cpp/skia/include/effects/SkGradient.h +1 -1
- package/cpp/skia/include/effects/SkHighContrastFilter.h +1 -1
- package/cpp/skia/include/effects/SkShaderMaskFilter.h +1 -1
- package/cpp/skia/include/effects/SkTrimPathEffect.h +1 -1
- package/cpp/skia/include/encode/SkEncoder.h +1 -1
- package/cpp/skia/include/encode/SkJpegEncoder.h +1 -1
- package/cpp/skia/include/encode/SkPngEncoder.h +1 -1
- package/cpp/skia/include/encode/SkPngRustEncoder.h +1 -1
- package/cpp/skia/include/encode/SkWebpEncoder.h +1 -1
- package/cpp/skia/include/gpu/GpuTypes.h +2 -0
- package/cpp/skia/include/gpu/MutableTextureState.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrBackendSemaphore.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrBackendSurface.h +6 -62
- package/cpp/skia/include/gpu/ganesh/GrContextThreadSafeProxy.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrDirectContext.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrDriverBugWorkarounds.h +1 -1
- package/cpp/skia/include/gpu/ganesh/GrRecordingContext.h +2 -1
- package/cpp/skia/include/gpu/ganesh/mock/GrMockBackendSurface.h +59 -0
- package/cpp/skia/include/gpu/ganesh/mock/GrMockTypes.h +1 -1
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlBackendContext.h +1 -1
- package/cpp/skia/include/gpu/ganesh/mtl/GrMtlTypes.h +1 -1
- package/cpp/skia/include/gpu/ganesh/vk/GrBackendDrawableInfo.h +1 -1
- package/cpp/skia/include/gpu/graphite/Context.h +11 -4
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +6 -0
- package/cpp/skia/include/gpu/graphite/Image.h +82 -9
- package/cpp/skia/include/gpu/graphite/PrecompileContext.h +7 -2
- package/cpp/skia/include/gpu/graphite/Recorder.h +6 -4
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileColorFilter.h +11 -1
- package/cpp/skia/include/gpu/graphite/precompile/PrecompileShader.h +1 -0
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +1 -1
- package/cpp/skia/include/gpu/mtl/MtlMemoryAllocator.h +1 -1
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +1 -1
- package/cpp/skia/include/gpu/vk/VulkanMemoryAllocator.h +1 -1
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +1 -1
- package/cpp/skia/include/ports/SkCFObject.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_Fontations.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_android_ndk.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_data.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_fuchsia.h +1 -1
- package/cpp/skia/include/ports/SkFontMgr_mac_ct.h +1 -1
- package/cpp/skia/include/ports/SkFontScanner_Fontations.h +1 -1
- package/cpp/skia/include/ports/SkFontScanner_FreeType.h +1 -1
- package/cpp/skia/include/ports/SkTypeface_fontations.h +1 -1
- package/cpp/skia/include/private/SkExif.h +1 -1
- package/cpp/skia/include/private/SkGainmapInfo.h +1 -1
- package/cpp/skia/include/private/SkGainmapShader.h +1 -1
- package/cpp/skia/include/private/SkHdrMetadata.h +21 -0
- package/cpp/skia/include/private/SkJpegGainmapEncoder.h +1 -1
- package/cpp/skia/include/private/SkPixelStorage.h +37 -0
- package/cpp/skia/include/private/SkXmp.h +1 -1
- package/cpp/skia/include/private/base/SkAssert.h +6 -5
- package/cpp/skia/include/private/base/SkContainers.h +1 -1
- package/cpp/skia/include/private/base/SkFeatures.h +30 -30
- package/cpp/skia/include/private/base/SkLog.h +1 -7
- package/cpp/skia/include/private/base/SkLogPriority.h +4 -5
- package/cpp/skia/include/private/base/SkMacros.h +1 -1
- package/cpp/skia/include/private/base/SkMalloc.h +1 -1
- package/cpp/skia/include/private/base/SkSafe32.h +1 -1
- package/cpp/skia/include/private/base/SkSpan_impl.h +1 -1
- package/cpp/skia/include/private/base/SkTDArray.h +13 -1
- package/cpp/skia/include/private/base/SkTPin.h +1 -1
- package/cpp/skia/include/private/base/SkTo.h +1 -1
- package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +1 -1
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +1 -1
- package/cpp/skia/include/private/chromium/SkCodecsICCProfileChromium.h +52 -0
- package/cpp/skia/include/private/chromium/SkExifChromium.h +26 -0
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +2 -1
- package/cpp/skia/include/private/gpu/vk/SkiaVulkan.h +1 -1
- package/cpp/skia/include/sksl/SkSLDebugTrace.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_icd.h +41 -51
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_layer.h +42 -53
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_platform.h +2 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std.h +158 -154
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_decode.h +68 -65
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_av1std_encode.h +90 -87
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std.h +9 -9
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_decode.h +2 -2
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_encode.h +82 -79
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std.h +24 -24
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_decode.h +2 -2
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_encode.h +95 -96
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_vp9std.h +151 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_vp9std_decode.h +68 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codecs_common.h +1 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +5 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +7 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_beta.h +291 -158
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +13174 -10113
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_directfb.h +23 -19
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_fuchsia.h +159 -165
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ggp.h +22 -19
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +3 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +3 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_metal.h +94 -88
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ohos.h +120 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_screen.h +55 -51
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_vi.h +18 -15
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_wayland.h +23 -19
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +31 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +5 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib.h +27 -27
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xlib_xrandr.h +20 -16
- package/cpp/skia/include/utils/SkEventTracer.h +6 -1
- package/cpp/skia/include/utils/SkOrderedFontMgr.h +1 -1
- package/cpp/skia/include/utils/SkShadowUtils.h +1 -1
- package/cpp/skia/include/utils/SkTextUtils.h +1 -1
- package/cpp/skia/modules/jsonreader/SkJSONReader.cpp +20 -4
- package/cpp/skia/modules/skcms/src/Transform_inl.h +11 -15
- package/cpp/skia/modules/skcms/src/skcms_public.h +2 -0
- package/cpp/skia/modules/skottie/include/ExternalLayer.h +1 -1
- package/cpp/skia/modules/skottie/include/Skottie.h +1 -1
- package/cpp/skia/modules/skottie/include/SkottieProperty.h +1 -1
- package/cpp/skia/modules/skottie/include/SlotManager.h +1 -1
- package/cpp/skia/modules/skottie/include/TextShaper.h +1 -1
- package/cpp/skia/modules/skottie/src/SkottieValue.h +1 -1
- package/cpp/skia/modules/skottie/src/animator/Animator.h +1 -1
- package/cpp/skia/modules/skottie/src/text/Font.h +1 -1
- package/cpp/skia/modules/skottie/src/text/TextAdapter.h +1 -1
- package/cpp/skia/modules/skottie/src/text/TextAnimator.h +3 -2
- package/cpp/skia/modules/skottie/src/text/TextValue.h +1 -1
- package/cpp/skia/modules/skparagraph/include/DartTypes.h +1 -1
- package/cpp/skia/modules/skparagraph/include/FontArguments.h +1 -1
- package/cpp/skia/modules/skparagraph/include/FontCollection.h +5 -1
- package/cpp/skia/modules/skparagraph/include/Metrics.h +1 -1
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +1 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +1 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphCache.h +1 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphPainter.h +1 -1
- package/cpp/skia/modules/skparagraph/include/ParagraphStyle.h +12 -5
- package/cpp/skia/modules/skparagraph/include/TextShadow.h +1 -1
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +1 -1
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGClipEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGColorFilter.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGDraw.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGEffectNode.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGGeometryEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGGeometryNode.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGGradient.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGGroup.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGImage.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGInvalidationController.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGMaskEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGMerge.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGNode.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGOpacityEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGPaint.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGPath.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGPlane.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGRect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGRenderEffect.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGRenderNode.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGScene.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGText.h +1 -1
- package/cpp/skia/modules/sksg/include/SkSGTransform.h +1 -1
- package/cpp/skia/modules/skshaper/include/SkShaper_coretext.h +8 -1
- package/cpp/skia/modules/svg/include/SkSVGFe.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeBlend.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeColorMatrix.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeComponentTransfer.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeComposite.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeDisplacementMap.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeFlood.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeGaussianBlur.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeImage.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLightSource.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeLighting.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeMerge.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeMorphology.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeOffset.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFeTurbulence.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFilter.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGFilterContext.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGImage.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGMask.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGText.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGUse.h +1 -1
- package/cpp/skia/src/base/SkAutoLocaleSetter.h +94 -0
- package/cpp/skia/src/base/SkUTF.h +1 -1
- package/lib/commonjs/skia/types/WebGPU.d.ts +70 -5
- package/lib/commonjs/skia/types/WebGPU.js.map +1 -1
- package/lib/module/skia/types/WebGPU.d.ts +70 -5
- package/lib/module/skia/types/WebGPU.js.map +1 -1
- package/lib/typescript/src/skia/types/WebGPU.d.ts +70 -5
- package/package.json +5 -5
- package/src/skia/types/WebGPU.ts +83 -5
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <memory>
|
|
4
|
+
#include <optional>
|
|
5
|
+
#include <string>
|
|
6
|
+
|
|
7
|
+
#include "webgpu/webgpu_cpp.h"
|
|
8
|
+
|
|
9
|
+
#include "jsi2/JSIConverter.h"
|
|
10
|
+
|
|
11
|
+
namespace jsi = facebook::jsi;
|
|
12
|
+
|
|
13
|
+
namespace rnwgpu {
|
|
14
|
+
|
|
15
|
+
// Descriptor for GPUDevice.importSharedFence. `handle` is the native handle
|
|
16
|
+
// (an id<MTLSharedEvent> pointer on Apple, an OS file descriptor on Android),
|
|
17
|
+
// passed from JS as a BigInt.
|
|
18
|
+
struct GPUSharedFenceDescriptor {
|
|
19
|
+
std::string type;
|
|
20
|
+
void *handle = nullptr;
|
|
21
|
+
std::optional<std::string> label;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
} // namespace rnwgpu
|
|
25
|
+
|
|
26
|
+
namespace rnwgpu {
|
|
27
|
+
|
|
28
|
+
template <>
|
|
29
|
+
struct JSIConverter<std::shared_ptr<rnwgpu::GPUSharedFenceDescriptor>> {
|
|
30
|
+
static std::shared_ptr<rnwgpu::GPUSharedFenceDescriptor>
|
|
31
|
+
fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
|
|
32
|
+
auto result = std::make_unique<rnwgpu::GPUSharedFenceDescriptor>();
|
|
33
|
+
if (!outOfBounds && arg.isObject()) {
|
|
34
|
+
auto value = arg.getObject(runtime);
|
|
35
|
+
if (value.hasProperty(runtime, "type")) {
|
|
36
|
+
result->type =
|
|
37
|
+
value.getProperty(runtime, "type").asString(runtime).utf8(runtime);
|
|
38
|
+
}
|
|
39
|
+
if (value.hasProperty(runtime, "handle")) {
|
|
40
|
+
auto prop = value.getProperty(runtime, "handle");
|
|
41
|
+
result->handle = JSIConverter<void *>::fromJSI(runtime, prop, false);
|
|
42
|
+
}
|
|
43
|
+
if (value.hasProperty(runtime, "label")) {
|
|
44
|
+
auto prop = value.getProperty(runtime, "label");
|
|
45
|
+
result->label = JSIConverter<std::optional<std::string>>::fromJSI(
|
|
46
|
+
runtime, prop, false);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}
|
|
51
|
+
static jsi::Value
|
|
52
|
+
toJSI(jsi::Runtime & /*runtime*/,
|
|
53
|
+
std::shared_ptr<rnwgpu::GPUSharedFenceDescriptor> /*arg*/) {
|
|
54
|
+
throw std::runtime_error("Invalid GPUSharedFenceDescriptor::toJSI()");
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
} // namespace rnwgpu
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
#pragma once
|
|
2
|
+
|
|
3
|
+
#include <cstdint>
|
|
4
|
+
#include <memory>
|
|
5
|
+
|
|
6
|
+
#include "webgpu/webgpu_cpp.h"
|
|
7
|
+
|
|
8
|
+
#include "jsi2/JSIConverter.h"
|
|
9
|
+
|
|
10
|
+
#include "rnwgpu/api/GPUSharedFence.h"
|
|
11
|
+
|
|
12
|
+
namespace jsi = facebook::jsi;
|
|
13
|
+
|
|
14
|
+
namespace rnwgpu {
|
|
15
|
+
|
|
16
|
+
// A fence and the timeline value to wait for / signal at.
|
|
17
|
+
struct GPUSharedFenceState {
|
|
18
|
+
std::shared_ptr<GPUSharedFence> fence;
|
|
19
|
+
uint64_t signaledValue = 0;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
} // namespace rnwgpu
|
|
23
|
+
|
|
24
|
+
namespace rnwgpu {
|
|
25
|
+
|
|
26
|
+
template <> struct JSIConverter<std::shared_ptr<rnwgpu::GPUSharedFenceState>> {
|
|
27
|
+
static std::shared_ptr<rnwgpu::GPUSharedFenceState>
|
|
28
|
+
fromJSI(jsi::Runtime &runtime, const jsi::Value &arg, bool outOfBounds) {
|
|
29
|
+
auto result = std::make_unique<rnwgpu::GPUSharedFenceState>();
|
|
30
|
+
if (!outOfBounds && arg.isObject()) {
|
|
31
|
+
auto value = arg.getObject(runtime);
|
|
32
|
+
if (value.hasProperty(runtime, "fence")) {
|
|
33
|
+
auto prop = value.getProperty(runtime, "fence");
|
|
34
|
+
result->fence = JSIConverter<std::shared_ptr<GPUSharedFence>>::fromJSI(
|
|
35
|
+
runtime, prop, false);
|
|
36
|
+
}
|
|
37
|
+
if (value.hasProperty(runtime, "signaledValue")) {
|
|
38
|
+
auto prop = value.getProperty(runtime, "signaledValue");
|
|
39
|
+
result->signaledValue =
|
|
40
|
+
JSIConverter<uint64_t>::fromJSI(runtime, prop, false);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
return result;
|
|
44
|
+
}
|
|
45
|
+
static jsi::Value toJSI(jsi::Runtime &runtime,
|
|
46
|
+
std::shared_ptr<rnwgpu::GPUSharedFenceState> arg) {
|
|
47
|
+
throw std::runtime_error("Invalid GPUSharedFenceState::toJSI()");
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
} // namespace rnwgpu
|
|
@@ -834,14 +834,6 @@ public:
|
|
|
834
834
|
};
|
|
835
835
|
IsAnimated isAnimated() { return this->onIsAnimated(); }
|
|
836
836
|
|
|
837
|
-
// Register a decoder at runtime by passing two function pointers:
|
|
838
|
-
// - peek() to return true if the span of bytes appears to be your encoded format;
|
|
839
|
-
// - make() to attempt to create an SkCodec from the given stream.
|
|
840
|
-
// Not thread safe.
|
|
841
|
-
static void Register(
|
|
842
|
-
bool (*peek)(const void*, size_t),
|
|
843
|
-
std::unique_ptr<SkCodec> (*make)(std::unique_ptr<SkStream>, SkCodec::Result*));
|
|
844
|
-
|
|
845
837
|
protected:
|
|
846
838
|
const SkEncodedInfo& getEncodedInfo() const { return fEncodedInfo; }
|
|
847
839
|
|
|
@@ -27,7 +27,6 @@
|
|
|
27
27
|
class SkColorSpace;
|
|
28
28
|
class SkImage;
|
|
29
29
|
class SkMatrix;
|
|
30
|
-
class SkMipmap;
|
|
31
30
|
class SkPaint;
|
|
32
31
|
class SkPixelRef;
|
|
33
32
|
class SkShader;
|
|
@@ -1241,13 +1240,8 @@ public:
|
|
|
1241
1240
|
};
|
|
1242
1241
|
|
|
1243
1242
|
private:
|
|
1244
|
-
sk_sp<SkPixelRef>
|
|
1245
|
-
SkPixmap
|
|
1246
|
-
sk_sp<SkMipmap> fMips;
|
|
1247
|
-
|
|
1248
|
-
friend class SkImage_Raster;
|
|
1249
|
-
friend class SkReadBuffer; // unflatten
|
|
1250
|
-
friend class GrProxyProvider; // fMips
|
|
1243
|
+
sk_sp<SkPixelRef> fPixelRef;
|
|
1244
|
+
SkPixmap fPixmap;
|
|
1251
1245
|
};
|
|
1252
1246
|
|
|
1253
1247
|
///////////////////////////////////////////////////////////////////////////////
|
|
@@ -8,11 +8,13 @@
|
|
|
8
8
|
#ifndef skcpu_Recorder_DEFINED
|
|
9
9
|
#define skcpu_Recorder_DEFINED
|
|
10
10
|
|
|
11
|
+
#include <cstdint>
|
|
11
12
|
#include "include/core/SkRecorder.h"
|
|
12
13
|
#include "include/core/SkRefCnt.h"
|
|
13
14
|
#include "include/private/base/SkAPI.h"
|
|
14
15
|
|
|
15
16
|
class SkCanvas;
|
|
17
|
+
class SkContentID;
|
|
16
18
|
class SkSurface;
|
|
17
19
|
class SkSurfaceProps;
|
|
18
20
|
struct SkImageInfo;
|
|
@@ -57,7 +59,7 @@ public:
|
|
|
57
59
|
private:
|
|
58
60
|
// TODO (b/412351769): Implement this so we can capture from a CPU Recorder.
|
|
59
61
|
SkCanvas* makeCaptureCanvas(SkCanvas*) final { return nullptr; }
|
|
60
|
-
|
|
62
|
+
SkContentID createCaptureBreakpoint(SkSurface*) final;
|
|
61
63
|
};
|
|
62
64
|
|
|
63
65
|
inline Recorder* AsRecorder(SkRecorder* recorder) {
|
|
@@ -103,15 +103,17 @@ enum SkColorType : int {
|
|
|
103
103
|
// Four channel RGBA data (32-bit float per channel) packed into a LE 128-bit word.
|
|
104
104
|
// Bits: [A:127..96 B:95..64 G:63..32 R:31..0]
|
|
105
105
|
kRGBA_F32_SkColorType,
|
|
106
|
-
|
|
107
|
-
// The following 8 colortypes are just for reading from - not for rendering to
|
|
108
|
-
|
|
109
106
|
// Two channel RG data (8 bits per channel). Blue is forced to 0, alpha is forced to opaque.
|
|
110
107
|
// Bits: [G:15..8 R:7..0]
|
|
111
108
|
kR8G8_unorm_SkColorType,
|
|
112
109
|
// Single channel data (16-bit half-float) interpreted as alpha. RGB are 0.
|
|
113
110
|
// Bits: [A:15..0]
|
|
114
111
|
kA16_float_SkColorType,
|
|
112
|
+
|
|
113
|
+
// Single channel data (16 bits half-float) interpreted as red. G and B are forced to 0, alpha
|
|
114
|
+
// is forced to opaque.
|
|
115
|
+
// Bits: [R:15..0]
|
|
116
|
+
kR16_float_SkColorType,
|
|
115
117
|
// Two channel RG data (16-bit half-float per channel) packed into a LE 32-bit word.
|
|
116
118
|
// Blue is forced to 0, alpha is forced to opaque.
|
|
117
119
|
// Bits: [G:31..16 R:15..0]
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
|
|
27
27
|
class SkMatrix;
|
|
28
28
|
class SkPaint;
|
|
29
|
+
class SkStrikeRef;
|
|
29
30
|
enum class SkFontHinting;
|
|
30
31
|
enum class SkTextEncoding;
|
|
31
32
|
struct SkFontMetrics;
|
|
@@ -356,6 +357,20 @@ public:
|
|
|
356
357
|
SkScalar measureText(const void* text, size_t byteLength, SkTextEncoding encoding,
|
|
357
358
|
SkRect* bounds, const SkPaint* paint) const;
|
|
358
359
|
|
|
360
|
+
/** Returns an SkStrikeRef for this font's current settings.
|
|
361
|
+
|
|
362
|
+
An SkStrikeRef caches the resolved strike (font metrics engine), avoiding the overhead
|
|
363
|
+
of descriptor construction, hashing, and global cache lookup on each glyph query.
|
|
364
|
+
This is useful when making many glyph metric calls (e.g. getWidths) with the same
|
|
365
|
+
font configuration.
|
|
366
|
+
|
|
367
|
+
The returned SkStrikeRef is independent of this SkFont; subsequent changes to this
|
|
368
|
+
SkFont do not affect it. Create a new SkStrikeRef after changing font properties.
|
|
369
|
+
|
|
370
|
+
@return an SkStrikeRef for the current font settings
|
|
371
|
+
*/
|
|
372
|
+
SkStrikeRef makeStrikeRef() const;
|
|
373
|
+
|
|
359
374
|
/** Retrieves the advance and bounds for each glyph in glyphs.
|
|
360
375
|
widths receives min(widths.size(), glyphs.size()) values.
|
|
361
376
|
bounds receives min(bounds.size(), glyphs.size()) values.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2017 Google
|
|
2
|
+
* Copyright 2017 Google LLC
|
|
3
3
|
*
|
|
4
4
|
* Use of this source code is governed by a BSD-style license that can be
|
|
5
5
|
* found in the LICENSE file.
|
|
@@ -19,6 +19,11 @@
|
|
|
19
19
|
struct SkFontArguments {
|
|
20
20
|
struct VariationPosition {
|
|
21
21
|
struct Coordinate {
|
|
22
|
+
static constexpr SkFourByteTag wght = SkSetFourByteTag('w', 'g', 'h', 't');
|
|
23
|
+
static constexpr SkFourByteTag wdth = SkSetFourByteTag('w', 'd', 't', 'h');
|
|
24
|
+
static constexpr SkFourByteTag slnt = SkSetFourByteTag('s', 'l', 'n', 't');
|
|
25
|
+
static constexpr SkFourByteTag ital = SkSetFourByteTag('i', 't', 'a', 'l');
|
|
26
|
+
static constexpr SkFourByteTag opsz = SkSetFourByteTag('o', 'p', 's', 'z');
|
|
22
27
|
SkFourByteTag axis;
|
|
23
28
|
float value;
|
|
24
29
|
};
|
|
@@ -8,7 +8,9 @@
|
|
|
8
8
|
#ifndef SkFontMgr_DEFINED
|
|
9
9
|
#define SkFontMgr_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkFontArguments.h"
|
|
11
12
|
#include "include/core/SkRefCnt.h"
|
|
13
|
+
#include "include/core/SkSpan.h"
|
|
12
14
|
#include "include/core/SkTypes.h"
|
|
13
15
|
|
|
14
16
|
#include <memory>
|
|
@@ -18,7 +20,6 @@ class SkFontStyle;
|
|
|
18
20
|
class SkStreamAsset;
|
|
19
21
|
class SkString;
|
|
20
22
|
class SkTypeface;
|
|
21
|
-
struct SkFontArguments;
|
|
22
23
|
|
|
23
24
|
class SK_API SkFontStyleSet : public SkRefCnt {
|
|
24
25
|
public:
|
|
@@ -85,6 +86,38 @@ public:
|
|
|
85
86
|
const char* bcp47[], int bcp47Count,
|
|
86
87
|
SkUnichar character) const;
|
|
87
88
|
|
|
89
|
+
struct Request {
|
|
90
|
+
struct CMapEntry {
|
|
91
|
+
SkUnichar character;
|
|
92
|
+
SkUnichar variation; // Zero for default variation.
|
|
93
|
+
};
|
|
94
|
+
SkSpan<const CMapEntry> cmapEntries;
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* bcp47[0] is the least significant fallback, bcp47[bcp47Count-1] is the most significant.
|
|
98
|
+
* If no specified bcp47 codes match any font with the requested character will be matched.
|
|
99
|
+
*/
|
|
100
|
+
SkSpan<const char*> bcp47;
|
|
101
|
+
|
|
102
|
+
const char* familyName;
|
|
103
|
+
|
|
104
|
+
SkSpan<const SkFontArguments::VariationPosition::Coordinate> model;
|
|
105
|
+
SkFontStyle fontStyleFromModel() const;
|
|
106
|
+
static void SetModel(SkFontStyle s, SkFontArguments::VariationPosition::Coordinate(&m)[4]);
|
|
107
|
+
|
|
108
|
+
std::optional<bool> syntheticBold;
|
|
109
|
+
std::optional<bool> syntheticOblique;
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
/** The familyName must strongly match, everything else is tie breakers. */
|
|
113
|
+
sk_sp<SkTypeface> match(const Request&) const;
|
|
114
|
+
|
|
115
|
+
/**
|
|
116
|
+
* The first cmapEntry must match. Then matched by bcp47, then familyName,
|
|
117
|
+
* then model (italic, slant, width, weight), with synthetics allowed or not.
|
|
118
|
+
*/
|
|
119
|
+
sk_sp<SkTypeface> fallback(const Request&) const;
|
|
120
|
+
|
|
88
121
|
/**
|
|
89
122
|
* Create a typeface for the specified data and TTC index (pass 0 for none)
|
|
90
123
|
* or NULL if the data is not recognized. The caller must call unref() on
|
|
@@ -129,6 +162,8 @@ protected:
|
|
|
129
162
|
const SkFontStyle&,
|
|
130
163
|
const char* bcp47[], int bcp47Count,
|
|
131
164
|
SkUnichar character) const = 0;
|
|
165
|
+
virtual sk_sp<SkTypeface> onMatch(const Request&) const; // TODO: pure virtual
|
|
166
|
+
virtual sk_sp<SkTypeface> onFallback(const Request&) const; // TODO: pure virtual
|
|
132
167
|
|
|
133
168
|
virtual sk_sp<SkTypeface> onMakeFromData(sk_sp<SkData>, int ttcIndex) const = 0;
|
|
134
169
|
virtual sk_sp<SkTypeface> onMakeFromStreamIndex(std::unique_ptr<SkStreamAsset>,
|
|
@@ -36,9 +36,9 @@ class SkString;
|
|
|
36
36
|
#endif
|
|
37
37
|
|
|
38
38
|
class SK_API SkPathBuilder {
|
|
39
|
-
using PointsArray
|
|
40
|
-
using VerbsArray
|
|
41
|
-
using ConicWeightsArray = skia_private::STArray<
|
|
39
|
+
using PointsArray = skia_private::STArray<32, SkPoint>;
|
|
40
|
+
using VerbsArray = skia_private::STArray<32, SkPathVerb>;
|
|
41
|
+
using ConicWeightsArray = skia_private::STArray<16, float>;
|
|
42
42
|
public:
|
|
43
43
|
/** Constructs an empty SkPathBuilder. By default, SkPathBuilder has no verbs, no SkPoint, and
|
|
44
44
|
no weights. FillType is set to kWinding.
|
|
@@ -987,7 +987,13 @@ public:
|
|
|
987
987
|
return fConicWeights;
|
|
988
988
|
}
|
|
989
989
|
|
|
990
|
-
|
|
990
|
+
enum class Reserve {
|
|
991
|
+
// Reserves the exact amount of storage needed for pathraw (never overallocates).
|
|
992
|
+
kExact,
|
|
993
|
+
// Allows the storage buffers to overallocate, based on their internal growth policy.
|
|
994
|
+
kGrow
|
|
995
|
+
};
|
|
996
|
+
SkPathBuilder& addRaw(const SkPathRaw&, Reserve);
|
|
991
997
|
|
|
992
998
|
SkPathIter iter() const;
|
|
993
999
|
|
|
@@ -11,6 +11,7 @@
|
|
|
11
11
|
#include "include/core/SkRefCnt.h"
|
|
12
12
|
#include "include/core/SkSize.h"
|
|
13
13
|
#include "include/private/SkIDChangeListener.h"
|
|
14
|
+
#include "include/private/SkPixelStorage.h"
|
|
14
15
|
#include "include/private/base/SkAPI.h"
|
|
15
16
|
#include "include/private/base/SkTo.h"
|
|
16
17
|
|
|
@@ -25,11 +26,13 @@ class SkDiscardableMemory;
|
|
|
25
26
|
This class is the smart container for pixel memory, and is used with SkBitmap.
|
|
26
27
|
This class can be shared/accessed between multiple threads.
|
|
27
28
|
*/
|
|
28
|
-
class SK_API SkPixelRef : public SkRefCnt {
|
|
29
|
+
class SK_API SkPixelRef : public SkPixelStorage, public SkRefCnt {
|
|
29
30
|
public:
|
|
30
31
|
SkPixelRef(int width, int height, void* addr, size_t rowBytes);
|
|
31
32
|
~SkPixelRef() override;
|
|
32
33
|
|
|
34
|
+
Type type() const override;
|
|
35
|
+
|
|
33
36
|
SkISize dimensions() const { return {fWidth, fHeight}; }
|
|
34
37
|
int width() const { return fWidth; }
|
|
35
38
|
int height() const { return fHeight; }
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
#include "include/private/base/SkAPI.h"
|
|
11
11
|
|
|
12
12
|
class SkCanvas;
|
|
13
|
+
class SkContentID;
|
|
13
14
|
class SkSurface;
|
|
14
15
|
|
|
15
16
|
namespace skcpu {
|
|
@@ -41,7 +42,7 @@ private:
|
|
|
41
42
|
* Returns nullptr if capture is not enabled.
|
|
42
43
|
*/
|
|
43
44
|
virtual SkCanvas* makeCaptureCanvas(SkCanvas*) = 0;
|
|
44
|
-
virtual
|
|
45
|
+
virtual SkContentID createCaptureBreakpoint(SkSurface*) = 0;
|
|
45
46
|
|
|
46
47
|
friend class SkSurface_Base; // for capture functionality
|
|
47
48
|
};
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
#include "include/core/SkPath.h"
|
|
12
12
|
#include "include/core/SkRect.h"
|
|
13
|
+
#include "include/core/SkSpan.h"
|
|
13
14
|
#include "include/private/base/SkAPI.h"
|
|
14
15
|
#include "include/private/base/SkAssert.h"
|
|
15
16
|
#include "include/private/base/SkDebug.h"
|
|
@@ -224,7 +225,12 @@ public:
|
|
|
224
225
|
|
|
225
226
|
example: https://fiddle.skia.org/c/@Region_setRects
|
|
226
227
|
*/
|
|
227
|
-
bool setRects(const SkIRect rects
|
|
228
|
+
bool setRects(SkSpan<const SkIRect> rects);
|
|
229
|
+
#if !defined(SK_DISABLE_LEGACY_SKREGION_UNSPANNED_APIS)
|
|
230
|
+
bool setRects(const SkIRect rects[], int count) {
|
|
231
|
+
return this->setRects({rects, count});
|
|
232
|
+
}
|
|
233
|
+
#endif
|
|
228
234
|
|
|
229
235
|
/** Constructs a copy of an existing region.
|
|
230
236
|
Makes two regions identical by value. Internally, region and
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2017 Google
|
|
2
|
+
* Copyright 2017 Google LLC
|
|
3
3
|
*
|
|
4
4
|
* Use of this source code is governed by a BSD-style license that can be
|
|
5
5
|
* found in the LICENSE file.
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
#ifndef SkSerialProcs_DEFINED
|
|
9
9
|
#define SkSerialProcs_DEFINED
|
|
10
10
|
|
|
11
|
+
#include "include/core/SkFourByteTag.h"
|
|
11
12
|
#include "include/core/SkRefCnt.h"
|
|
12
13
|
#include "include/private/base/SkAPI.h"
|
|
13
14
|
|
|
@@ -86,6 +87,8 @@ using SkSlugProc = sk_sp<sktext::gpu::Slug> (*)(SkReadBuffer&, void* ctx);
|
|
|
86
87
|
using SkDeserialTypefaceStreamProc = sk_sp<SkTypeface> (*)(SkStream&, void* ctx);
|
|
87
88
|
using SkDeserialTypefaceProc = sk_sp<SkTypeface> (*)(const void* data, size_t length, void* ctx);
|
|
88
89
|
|
|
90
|
+
using SkDeserialAllowTagsProc = bool(*)(SkFourByteTag, void* ctx);
|
|
91
|
+
|
|
89
92
|
struct SK_API SkSerialProcs {
|
|
90
93
|
SkSerialPictureProc fPictureProc = nullptr;
|
|
91
94
|
void* fPictureCtx = nullptr;
|
|
@@ -115,6 +118,10 @@ struct SK_API SkDeserialProcs {
|
|
|
115
118
|
// parameters and returns a bool). Given that there are only two valid implementations of that
|
|
116
119
|
// proc, we just insert the bool directly.
|
|
117
120
|
bool fAllowSkSL = true;
|
|
121
|
+
|
|
122
|
+
// Can be used to restrict the tags that will be deserialized from SkPictures.
|
|
123
|
+
SkDeserialAllowTagsProc fAllowTagsProc = nullptr;
|
|
124
|
+
void* fAllowTagsCtx = nullptr;
|
|
118
125
|
};
|
|
119
126
|
|
|
120
127
|
#endif
|
|
@@ -36,12 +36,10 @@ struct SkSamplingOptions;
|
|
|
36
36
|
class SK_API SkShader : public SkFlattenable {
|
|
37
37
|
public:
|
|
38
38
|
/**
|
|
39
|
-
* Returns true if the shader is guaranteed to produce only opaque
|
|
40
|
-
*
|
|
41
|
-
* alpha value. Subclasses should override this to allow some
|
|
42
|
-
* optimizations.
|
|
39
|
+
* Returns true if the shader is guaranteed to produce only opaque colors, subject to the
|
|
40
|
+
* SkPaint using the shader to apply an opaque alpha value.
|
|
43
41
|
*/
|
|
44
|
-
virtual bool isOpaque() const
|
|
42
|
+
virtual bool isOpaque() const = 0;
|
|
45
43
|
|
|
46
44
|
/**
|
|
47
45
|
* Iff this shader is backed by a single SkImage, return its ptr (the caller must ref this
|
|
@@ -319,7 +319,7 @@ public:
|
|
|
319
319
|
~SkFILEStream() override;
|
|
320
320
|
|
|
321
321
|
static std::unique_ptr<SkFILEStream> Make(const char path[]) {
|
|
322
|
-
std::
|
|
322
|
+
auto stream = std::make_unique<SkFILEStream>(path);
|
|
323
323
|
return stream->isValid() ? std::move(stream) : nullptr;
|
|
324
324
|
}
|
|
325
325
|
|