@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,80 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
#ifndef SkStrikeRef_DEFINED
|
|
9
|
+
#define SkStrikeRef_DEFINED
|
|
10
|
+
|
|
11
|
+
#include "include/core/SkRefCnt.h"
|
|
12
|
+
#include "include/core/SkScalar.h"
|
|
13
|
+
#include "include/core/SkSpan.h"
|
|
14
|
+
#include "include/core/SkTypes.h"
|
|
15
|
+
|
|
16
|
+
class SkFont;
|
|
17
|
+
class SkStrike;
|
|
18
|
+
struct SkRect;
|
|
19
|
+
|
|
20
|
+
/** \class SkStrikeRef
|
|
21
|
+
SkStrikeRef is a lightweight, thread-safe handle to a resolved font strike.
|
|
22
|
+
It caches the result of looking up an SkStrike for a particular SkFont configuration,
|
|
23
|
+
allowing repeated glyph metric queries (advances, bounds) without the overhead of
|
|
24
|
+
descriptor construction, hashing, and global cache lookup on each call.
|
|
25
|
+
|
|
26
|
+
Obtain an SkStrikeRef from SkFont::makeStrikeRef(). The returned object remains valid
|
|
27
|
+
as long as it is held; the underlying SkStrike is atomically reference counted.
|
|
28
|
+
|
|
29
|
+
SkStrikeRef does not track changes to the SkFont it was created from. If the SkFont's
|
|
30
|
+
properties change (size, typeface, hinting, etc.), a new SkStrikeRef must be obtained.
|
|
31
|
+
*/
|
|
32
|
+
class SK_API SkStrikeRef {
|
|
33
|
+
public:
|
|
34
|
+
SkStrikeRef();
|
|
35
|
+
~SkStrikeRef();
|
|
36
|
+
|
|
37
|
+
SkStrikeRef(const SkStrikeRef&);
|
|
38
|
+
SkStrikeRef& operator=(const SkStrikeRef&);
|
|
39
|
+
SkStrikeRef(SkStrikeRef&&);
|
|
40
|
+
SkStrikeRef& operator=(SkStrikeRef&&);
|
|
41
|
+
|
|
42
|
+
/** Returns true if this SkStrikeRef holds a valid strike. */
|
|
43
|
+
explicit operator bool() const { return fStrike != nullptr; }
|
|
44
|
+
|
|
45
|
+
/** Retrieves the advance widths for each glyph.
|
|
46
|
+
widths receives min(widths.size(), glyphs.size()) values.
|
|
47
|
+
|
|
48
|
+
@param glyphs array of glyph indices to be measured
|
|
49
|
+
@param widths returns text advances for each glyph, in font units
|
|
50
|
+
*/
|
|
51
|
+
void getWidths(SkSpan<const SkGlyphID> glyphs, SkSpan<SkScalar> widths) const;
|
|
52
|
+
|
|
53
|
+
/** Retrieves the advance width for a single glyph.
|
|
54
|
+
|
|
55
|
+
@param glyph glyph index to be measured
|
|
56
|
+
@return advance width in font units
|
|
57
|
+
*/
|
|
58
|
+
SkScalar getWidth(SkGlyphID glyph) const;
|
|
59
|
+
|
|
60
|
+
/** Retrieves the advance widths and bounds for each glyph.
|
|
61
|
+
widths receives min(widths.size(), glyphs.size()) values.
|
|
62
|
+
bounds receives min(bounds.size(), glyphs.size()) values.
|
|
63
|
+
|
|
64
|
+
@param glyphs array of glyph indices to be measured
|
|
65
|
+
@param widths returns text advances for each glyph
|
|
66
|
+
@param bounds returns bounds for each glyph relative to (0, 0)
|
|
67
|
+
*/
|
|
68
|
+
void getWidthsBounds(SkSpan<const SkGlyphID> glyphs,
|
|
69
|
+
SkSpan<SkScalar> widths,
|
|
70
|
+
SkSpan<SkRect> bounds) const;
|
|
71
|
+
|
|
72
|
+
private:
|
|
73
|
+
friend class SkFont;
|
|
74
|
+
SkStrikeRef(sk_sp<SkStrike> strike, SkScalar strikeToSourceScale);
|
|
75
|
+
|
|
76
|
+
sk_sp<SkStrike> fStrike;
|
|
77
|
+
SkScalar fStrikeToSourceScale = 0;
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
#endif // SkStrikeRef_DEFINED
|
|
@@ -126,12 +126,11 @@ public:
|
|
|
126
126
|
DataType dataType() const { return fDataType; }
|
|
127
127
|
|
|
128
128
|
/**
|
|
129
|
-
* Row bytes for the ith plane. Returns zero if
|
|
130
|
-
* invalid.
|
|
129
|
+
* Row bytes for the ith plane. Returns zero if this SkYUVAPixmapInfo is invalid.
|
|
131
130
|
*/
|
|
132
131
|
size_t rowBytes(int i) const { return fRowBytes[static_cast<size_t>(i)]; }
|
|
133
132
|
|
|
134
|
-
/** Image info for the ith plane
|
|
133
|
+
/** Image info for the ith plane */
|
|
135
134
|
const SkImageInfo& planeInfo(int i) const { return fPlaneInfos[static_cast<size_t>(i)]; }
|
|
136
135
|
|
|
137
136
|
/**
|
|
@@ -234,8 +233,7 @@ public:
|
|
|
234
233
|
const std::array<SkPixmap, kMaxPlanes>& planes() const { return fPlanes; }
|
|
235
234
|
|
|
236
235
|
/**
|
|
237
|
-
* Get the ith SkPixmap plane. SkPixmap will be default initialized if
|
|
238
|
-
* SkYUVAPixmaps is invalid.
|
|
236
|
+
* Get the ith SkPixmap plane. SkPixmap will be default initialized if SkYUVAPixmaps is invalid.
|
|
239
237
|
*/
|
|
240
238
|
const SkPixmap& plane(int i) const { return fPlanes[SkToSizeT(i)]; }
|
|
241
239
|
|
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
#define skgpu_GpuTypes_DEFINED
|
|
10
10
|
|
|
11
11
|
#include "include/core/SkTypes.h"
|
|
12
|
+
#include "include/private/base/SkMacros.h"
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
15
|
* This file includes numerous public types that are used by all of our gpu backends.
|
|
@@ -84,6 +85,7 @@ enum class GpuStatsFlags : uint32_t {
|
|
|
84
85
|
kElapsedTime = 0b01,
|
|
85
86
|
kOcclusionPassSamples = 0b10,
|
|
86
87
|
};
|
|
88
|
+
SK_MAKE_BITFIELD_CLASS_OPS(GpuStatsFlags)
|
|
87
89
|
|
|
88
90
|
struct GpuStats {
|
|
89
91
|
uint64_t elapsedTime = 0;
|
|
@@ -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.
|
|
@@ -12,13 +12,11 @@
|
|
|
12
12
|
#include "include/core/SkSize.h"
|
|
13
13
|
#include "include/gpu/GpuTypes.h"
|
|
14
14
|
#include "include/gpu/ganesh/GrTypes.h"
|
|
15
|
-
#include "include/gpu/ganesh/mock/GrMockTypes.h"
|
|
16
15
|
#include "include/private/base/SkAPI.h"
|
|
17
16
|
#include "include/private/base/SkAnySubclass.h"
|
|
18
17
|
#include "include/private/base/SkDebug.h"
|
|
19
18
|
#include "include/private/gpu/ganesh/GrTypesPriv.h"
|
|
20
19
|
|
|
21
|
-
enum class SkTextureCompressionType;
|
|
22
20
|
class GrBackendFormatData;
|
|
23
21
|
class GrBackendTextureData;
|
|
24
22
|
class GrBackendRenderTargetData;
|
|
@@ -44,10 +42,6 @@ public:
|
|
|
44
42
|
GrBackendFormat& operator=(const GrBackendFormat&);
|
|
45
43
|
~GrBackendFormat();
|
|
46
44
|
|
|
47
|
-
static GrBackendFormat MakeMock(GrColorType colorType,
|
|
48
|
-
SkTextureCompressionType compression,
|
|
49
|
-
bool isStencilFormat = false);
|
|
50
|
-
|
|
51
45
|
bool operator==(const GrBackendFormat& that) const;
|
|
52
46
|
bool operator!=(const GrBackendFormat& that) const { return !(*this == that); }
|
|
53
47
|
|
|
@@ -62,15 +56,6 @@ public:
|
|
|
62
56
|
|
|
63
57
|
GrColorFormatDesc desc() const;
|
|
64
58
|
|
|
65
|
-
/**
|
|
66
|
-
* If the backend API is not Mock these three calls will return kUnknown, kNone or false,
|
|
67
|
-
* respectively. Otherwise, only one of the following can be true. The GrColorType is not
|
|
68
|
-
* kUnknown, the compression type is not kNone, or this is a mock stencil format.
|
|
69
|
-
*/
|
|
70
|
-
GrColorType asMockColorType() const;
|
|
71
|
-
SkTextureCompressionType asMockCompressionType() const;
|
|
72
|
-
bool isMockStencilFormat() const;
|
|
73
|
-
|
|
74
59
|
// If possible, copies the GrBackendFormat and forces the texture type to be Texture2D. If the
|
|
75
60
|
// GrBackendFormat was for Vulkan and it originally had a skgpu::VulkanYcbcrConversionInfo,
|
|
76
61
|
// we will remove the conversion and set the format to be VK_FORMAT_R8G8B8A8_UNORM.
|
|
@@ -96,43 +81,22 @@ private:
|
|
|
96
81
|
// GrBackendFormats::MakeGL instead.
|
|
97
82
|
template <typename FormatData>
|
|
98
83
|
GrBackendFormat(GrTextureType textureType, GrBackendApi api, const FormatData& formatData)
|
|
99
|
-
: fBackend(api),
|
|
84
|
+
: fBackend(api), fTextureType(textureType), fValid(true) {
|
|
100
85
|
fFormatData.emplace<FormatData>(formatData);
|
|
101
86
|
}
|
|
102
87
|
|
|
103
|
-
GrBackendFormat(GrColorType, SkTextureCompressionType, bool isStencilFormat);
|
|
104
|
-
|
|
105
|
-
#ifdef SK_DEBUG
|
|
106
|
-
bool validateMock() const;
|
|
107
|
-
#endif
|
|
108
|
-
|
|
109
|
-
GrBackendApi fBackend = GrBackendApi::kMock;
|
|
110
|
-
bool fValid = false;
|
|
111
88
|
AnyFormatData fFormatData;
|
|
112
|
-
|
|
113
|
-
struct {
|
|
114
|
-
GrColorType fColorType;
|
|
115
|
-
SkTextureCompressionType fCompressionType;
|
|
116
|
-
bool fIsStencilFormat;
|
|
117
|
-
} fMock;
|
|
89
|
+
GrBackendApi fBackend = GrBackendApi::kUnsupported;
|
|
118
90
|
GrTextureType fTextureType = GrTextureType::kNone;
|
|
91
|
+
bool fValid = false;
|
|
119
92
|
};
|
|
120
93
|
|
|
121
94
|
class SK_API GrBackendTexture {
|
|
122
95
|
public:
|
|
123
96
|
// Creates an invalid backend texture.
|
|
124
97
|
GrBackendTexture();
|
|
125
|
-
|
|
126
|
-
GrBackendTexture(int width,
|
|
127
|
-
int height,
|
|
128
|
-
skgpu::Mipmapped,
|
|
129
|
-
const GrMockTextureInfo& mockInfo,
|
|
130
|
-
std::string_view label = {});
|
|
131
|
-
|
|
132
98
|
GrBackendTexture(const GrBackendTexture& that);
|
|
133
|
-
|
|
134
99
|
~GrBackendTexture();
|
|
135
|
-
|
|
136
100
|
GrBackendTexture& operator=(const GrBackendTexture& that);
|
|
137
101
|
|
|
138
102
|
SkISize dimensions() const { return {fWidth, fHeight}; }
|
|
@@ -147,10 +111,6 @@ public:
|
|
|
147
111
|
// Get the GrBackendFormat for this texture (or an invalid format if this is not valid).
|
|
148
112
|
GrBackendFormat getBackendFormat() const;
|
|
149
113
|
|
|
150
|
-
// If the backend API is Mock, copies a snapshot of the GrMockTextureInfo struct into the passed
|
|
151
|
-
// in pointer and returns true. Otherwise returns false if the backend API is not Mock.
|
|
152
|
-
bool getMockTextureInfo(GrMockTextureInfo*) const;
|
|
153
|
-
|
|
154
114
|
// If the client changes any of the mutable backend of the GrBackendTexture they should call
|
|
155
115
|
// this function to inform Skia that those values have changed. The backend API specific state
|
|
156
116
|
// that can be set from this function are:
|
|
@@ -208,26 +168,16 @@ private:
|
|
|
208
168
|
int fHeight; //<! height in pixels
|
|
209
169
|
const std::string fLabel;
|
|
210
170
|
skgpu::Mipmapped fMipmapped;
|
|
211
|
-
GrBackendApi fBackend;
|
|
171
|
+
GrBackendApi fBackend = GrBackendApi::kUnsupported;
|
|
212
172
|
GrTextureType fTextureType;
|
|
213
173
|
AnyTextureData fTextureData;
|
|
214
|
-
|
|
215
|
-
GrMockTextureInfo fMockInfo;
|
|
216
174
|
};
|
|
217
175
|
|
|
218
176
|
class SK_API GrBackendRenderTarget {
|
|
219
177
|
public:
|
|
220
178
|
// Creates an invalid backend texture.
|
|
221
179
|
GrBackendRenderTarget();
|
|
222
|
-
|
|
223
|
-
GrBackendRenderTarget(int width,
|
|
224
|
-
int height,
|
|
225
|
-
int sampleCnt,
|
|
226
|
-
int stencilBits,
|
|
227
|
-
const GrMockRenderTargetInfo& mockInfo);
|
|
228
|
-
|
|
229
180
|
~GrBackendRenderTarget();
|
|
230
|
-
|
|
231
181
|
GrBackendRenderTarget(const GrBackendRenderTarget& that);
|
|
232
182
|
GrBackendRenderTarget& operator=(const GrBackendRenderTarget&);
|
|
233
183
|
|
|
@@ -242,10 +192,6 @@ public:
|
|
|
242
192
|
// Get the GrBackendFormat for this render target (or an invalid format if this is not valid).
|
|
243
193
|
GrBackendFormat getBackendFormat() const;
|
|
244
194
|
|
|
245
|
-
// If the backend API is Mock, copies a snapshot of the GrMockTextureInfo struct into the passed
|
|
246
|
-
// in pointer and returns true. Otherwise returns false if the backend API is not Mock.
|
|
247
|
-
bool getMockRenderTargetInfo(GrMockRenderTargetInfo*) const;
|
|
248
|
-
|
|
249
195
|
// If the client changes any of the mutable backend of the GrBackendTexture they should call
|
|
250
196
|
// this function to inform Skia that those values have changed. The backend API specific state
|
|
251
197
|
// that can be set from this function are:
|
|
@@ -304,10 +250,8 @@ private:
|
|
|
304
250
|
int fSampleCnt;
|
|
305
251
|
int fStencilBits;
|
|
306
252
|
|
|
307
|
-
GrBackendApi fBackend;
|
|
253
|
+
GrBackendApi fBackend = GrBackendApi::kUnsupported;
|
|
308
254
|
AnyRenderTargetData fRTData;
|
|
309
|
-
|
|
310
|
-
GrMockRenderTargetInfo fMockInfo;
|
|
311
255
|
};
|
|
312
256
|
|
|
313
257
|
#endif
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* Copyright 2019 Google
|
|
2
|
+
* Copyright 2019 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.
|
|
@@ -67,6 +67,7 @@ public:
|
|
|
67
67
|
colorType == kA16_unorm_SkColorType ||
|
|
68
68
|
colorType == kA16_float_SkColorType ||
|
|
69
69
|
colorType == kR16_unorm_SkColorType ||
|
|
70
|
+
colorType == kR16_float_SkColorType ||
|
|
70
71
|
colorType == kR16G16_float_SkColorType ||
|
|
71
72
|
colorType == kR16G16B16A16_unorm_SkColorType ||
|
|
72
73
|
colorType == kGray_8_SkColorType) {
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright 2026 Google LLC
|
|
3
|
+
*
|
|
4
|
+
* Use of this source code is governed by a BSD-style license that can be
|
|
5
|
+
* found in the LICENSE file.
|
|
6
|
+
*/
|
|
7
|
+
#ifndef GrMockBackendSurface_DEFINED
|
|
8
|
+
#define GrMockBackendSurface_DEFINED
|
|
9
|
+
|
|
10
|
+
#include "include/gpu/ganesh/GrTypes.h"
|
|
11
|
+
#include "include/gpu/ganesh/mock/GrMockTypes.h"
|
|
12
|
+
#include "include/private/base/SkAPI.h"
|
|
13
|
+
|
|
14
|
+
#include <string_view>
|
|
15
|
+
|
|
16
|
+
class GrBackendFormat;
|
|
17
|
+
class GrBackendTexture;
|
|
18
|
+
class GrBackendRenderTarget;
|
|
19
|
+
enum class SkTextureCompressionType;
|
|
20
|
+
enum class GrColorType;
|
|
21
|
+
|
|
22
|
+
namespace GrBackendFormats {
|
|
23
|
+
|
|
24
|
+
SK_API GrBackendFormat MakeMockColorType(GrColorType colorType);
|
|
25
|
+
SK_API GrBackendFormat MakeMockCompressionType(SkTextureCompressionType compression);
|
|
26
|
+
SK_API GrBackendFormat MakeMockStencilFormat();
|
|
27
|
+
|
|
28
|
+
// Only one of these getters will return a non-unknown, non-false value
|
|
29
|
+
SK_API GrColorType AsMockColorType(const GrBackendFormat&);
|
|
30
|
+
SK_API SkTextureCompressionType AsMockCompressionType(const GrBackendFormat&);
|
|
31
|
+
SK_API bool IsMockStencilFormat(const GrBackendFormat&);
|
|
32
|
+
|
|
33
|
+
} // namespace GrBackendFormats
|
|
34
|
+
|
|
35
|
+
namespace GrBackendTextures {
|
|
36
|
+
|
|
37
|
+
SK_API GrBackendTexture MakeMock(int width,
|
|
38
|
+
int height,
|
|
39
|
+
skgpu::Mipmapped,
|
|
40
|
+
const GrMockTextureInfo& mockInfo,
|
|
41
|
+
std::string_view label = {});
|
|
42
|
+
|
|
43
|
+
SK_API GrMockTextureInfo GetMockTextureInfo(const GrBackendTexture&);
|
|
44
|
+
|
|
45
|
+
} // namespace GrBackendTextures
|
|
46
|
+
|
|
47
|
+
namespace GrBackendRenderTargets {
|
|
48
|
+
|
|
49
|
+
SK_API GrBackendRenderTarget MakeMock(int width,
|
|
50
|
+
int height,
|
|
51
|
+
int sampleCnt,
|
|
52
|
+
int stencilBits,
|
|
53
|
+
const GrMockRenderTargetInfo& mockInfo);
|
|
54
|
+
|
|
55
|
+
SK_API GrMockRenderTargetInfo GetMockRenderTargetInfo(const GrBackendRenderTarget&);
|
|
56
|
+
|
|
57
|
+
} // namespace GrBackendRenderTargets
|
|
58
|
+
|
|
59
|
+
#endif
|
|
@@ -61,6 +61,7 @@ class QueueManager;
|
|
|
61
61
|
class ResourceProvider;
|
|
62
62
|
class SharedContext;
|
|
63
63
|
class TextureProxy;
|
|
64
|
+
class TextureProxyView;
|
|
64
65
|
|
|
65
66
|
class SK_API Context final {
|
|
66
67
|
public:
|
|
@@ -87,6 +88,9 @@ public:
|
|
|
87
88
|
/** Returns true if there is work that was submitted to the GPU that has not finished. */
|
|
88
89
|
bool hasUnfinishedGpuWork() const;
|
|
89
90
|
|
|
91
|
+
/** Returns true if there is pending GPU work that needs to be submitted. */
|
|
92
|
+
bool hasPendingGPUWork() const;
|
|
93
|
+
|
|
90
94
|
/** Makes image pixel data available to caller, possibly asynchronously. It can also rescale
|
|
91
95
|
the image pixels.
|
|
92
96
|
|
|
@@ -226,9 +230,12 @@ public:
|
|
|
226
230
|
/**
|
|
227
231
|
* Purge GPU resources on the Context that haven't been used in the past 'msNotUsed'
|
|
228
232
|
* milliseconds or are otherwise marked for deletion, regardless of whether the context is under
|
|
229
|
-
* budget.
|
|
233
|
+
* budget. Optionally provide a `microsMaxPurgingDur` after which Skia should stop purging
|
|
234
|
+
* resources.
|
|
230
235
|
*/
|
|
231
|
-
void performDeferredCleanup(
|
|
236
|
+
void performDeferredCleanup(
|
|
237
|
+
std::chrono::milliseconds msNotUsed,
|
|
238
|
+
std::optional<std::chrono::microseconds> microsMaxPurgingDur = std::nullopt);
|
|
232
239
|
|
|
233
240
|
/**
|
|
234
241
|
* Returns the number of bytes of the Context's gpu memory cache budget that are currently in
|
|
@@ -382,14 +389,14 @@ private:
|
|
|
382
389
|
// Like asyncReadPixels() except it performs no fallbacks, and requires that the texture be
|
|
383
390
|
// readable. However, the texture does not need to be sampleable.
|
|
384
391
|
void asyncReadTexture(std::unique_ptr<Recorder>,
|
|
385
|
-
const AsyncParams<
|
|
392
|
+
const AsyncParams<TextureProxyView>&,
|
|
386
393
|
const SkColorInfo& srcColorInfo);
|
|
387
394
|
|
|
388
395
|
// Inserts a texture to buffer transfer task, used by asyncReadPixels methods. If the
|
|
389
396
|
// Recorder is non-null, tasks will be added to the Recorder's list; otherwise the transfer
|
|
390
397
|
// tasks will be added to the queue manager directly.
|
|
391
398
|
PixelTransferResult transferPixels(Recorder*,
|
|
392
|
-
const
|
|
399
|
+
const TextureProxyView& srcView,
|
|
393
400
|
const SkColorInfo& srcColorInfo,
|
|
394
401
|
const SkColorInfo& dstColorInfo,
|
|
395
402
|
const SkIRect& srcRect);
|
|
@@ -190,6 +190,12 @@ struct SubmitInfo {
|
|
|
190
190
|
MarkFrameBoundary fMarkBoundary = MarkFrameBoundary::kNo;
|
|
191
191
|
uint64_t fFrameID = 0;
|
|
192
192
|
|
|
193
|
+
// Optional finish proc that is invoked when all GPU work submitted by this call has
|
|
194
|
+
// completed. If there is no pending work to submit, the proc is attached to the most
|
|
195
|
+
// recently outstanding GPU submission, or invoked immediately if the GPU is idle.
|
|
196
|
+
GpuFinishedProc fFinishedProc = nullptr;
|
|
197
|
+
GpuFinishedContext fFinishedContext = nullptr;
|
|
198
|
+
|
|
193
199
|
constexpr SubmitInfo() = default;
|
|
194
200
|
|
|
195
201
|
constexpr SubmitInfo(SyncToCpu sync)
|