@shopify/react-native-skia 0.1.234 → 0.1.236
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cpp/api/JsiSkTypefaceFactory.h +2 -1
- package/cpp/skia/include/android/AHardwareBufferUtils.h +23 -0
- package/cpp/skia/include/android/GrAHardwareBufferUtils.h +2 -0
- package/cpp/skia/include/android/graphite/SurfaceAndroid.h +59 -0
- package/cpp/skia/include/codec/SkAvifDecoder.h +1 -1
- package/cpp/skia/include/codec/SkBmpDecoder.h +1 -1
- package/cpp/skia/include/codec/SkCodec.h +21 -3
- package/cpp/skia/include/codec/SkGifDecoder.h +1 -1
- package/cpp/skia/include/codec/SkIcoDecoder.h +1 -1
- package/cpp/skia/include/codec/SkJpegDecoder.h +1 -1
- package/cpp/skia/include/codec/SkJpegxlDecoder.h +1 -1
- package/cpp/skia/include/codec/SkPngDecoder.h +1 -1
- package/cpp/skia/include/codec/SkRawDecoder.h +1 -1
- package/cpp/skia/include/codec/SkWbmpDecoder.h +1 -1
- package/cpp/skia/include/codec/SkWebpDecoder.h +1 -1
- package/cpp/skia/include/config/SkUserConfig.h +3 -1
- package/cpp/skia/include/core/SkCanvas.h +66 -37
- package/cpp/skia/include/core/SkColorFilter.h +5 -2
- package/cpp/skia/include/core/SkContourMeasure.h +1 -0
- package/cpp/skia/include/core/SkDocument.h +1 -0
- package/cpp/skia/include/core/SkFont.h +14 -24
- package/cpp/skia/include/core/SkFontArguments.h +1 -1
- package/cpp/skia/include/core/SkFontMetrics.h +1 -1
- package/cpp/skia/include/core/SkFontMgr.h +0 -7
- package/cpp/skia/include/core/SkGraphics.h +13 -0
- package/cpp/skia/include/core/SkMesh.h +9 -13
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPathMeasure.h +2 -0
- package/cpp/skia/include/core/SkSerialProcs.h +29 -11
- package/cpp/skia/include/core/SkSize.h +3 -3
- package/cpp/skia/include/core/SkStream.h +3 -13
- package/cpp/skia/include/core/SkSurface.h +6 -3
- package/cpp/skia/include/core/SkSurfaceProps.h +2 -4
- package/cpp/skia/include/core/SkTraceMemoryDump.h +15 -0
- package/cpp/skia/include/core/SkTypeface.h +8 -56
- package/cpp/skia/include/core/SkTypes.h +8 -0
- package/cpp/skia/include/core/SkVertices.h +1 -1
- package/cpp/skia/include/docs/SkMultiPictureDocument.h +53 -0
- package/cpp/skia/include/docs/SkPDFDocument.h +11 -0
- package/cpp/skia/include/effects/SkGradientShader.h +9 -0
- package/cpp/skia/include/effects/SkRuntimeEffect.h +3 -7
- package/cpp/skia/include/gpu/GrBackendSemaphore.h +33 -47
- package/cpp/skia/include/gpu/GrBackendSurface.h +2 -3
- package/cpp/skia/include/gpu/GrContextOptions.h +0 -6
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +44 -28
- package/cpp/skia/include/gpu/GrDirectContext.h +12 -31
- package/cpp/skia/include/gpu/GrTypes.h +1 -16
- package/cpp/skia/include/gpu/MutableTextureState.h +35 -80
- package/cpp/skia/include/gpu/ShaderErrorHandler.h +11 -1
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +2 -2
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +1 -1
- package/cpp/skia/include/gpu/ganesh/gl/GrGLDirectContext.h +3 -2
- package/cpp/skia/include/gpu/ganesh/vk/GrVkBackendSemaphore.h +20 -0
- package/cpp/skia/include/gpu/ganesh/vk/GrVkDirectContext.h +30 -0
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +1 -1
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -0
- package/cpp/skia/include/gpu/gl/glx/GrGLMakeGLXInterface.h +6 -0
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +3 -3
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +39 -27
- package/cpp/skia/include/gpu/graphite/Context.h +39 -13
- package/cpp/skia/include/gpu/graphite/ContextOptions.h +2 -0
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +2 -1
- package/cpp/skia/include/gpu/graphite/Image.h +106 -87
- package/cpp/skia/include/gpu/graphite/Recorder.h +24 -3
- package/cpp/skia/include/gpu/graphite/Surface.h +7 -2
- package/cpp/skia/include/gpu/graphite/dawn/DawnBackendContext.h +41 -2
- package/cpp/skia/include/gpu/graphite/dawn/DawnTypes.h +11 -6
- package/cpp/skia/include/gpu/graphite/mtl/MtlGraphiteTypes.h +1 -2
- package/cpp/skia/include/gpu/graphite/vk/VulkanGraphiteTypes.h +6 -6
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +1 -0
- package/cpp/skia/include/gpu/vk/GrVkBackendContext.h +1 -1
- package/cpp/skia/include/gpu/vk/GrVkTypes.h +1 -44
- package/cpp/skia/include/gpu/vk/VulkanExtensions.h +1 -1
- package/cpp/skia/include/gpu/vk/VulkanMutableTextureState.h +25 -0
- package/cpp/skia/include/gpu/vk/VulkanTypes.h +44 -0
- package/cpp/skia/include/ports/SkFontConfigInterface.h +3 -6
- package/cpp/skia/include/private/SkEncodedInfo.h +5 -0
- package/cpp/skia/include/private/SkExif.h +102 -0
- package/cpp/skia/include/private/SkGainmapInfo.h +11 -1
- package/cpp/skia/include/private/base/SkAssert.h +16 -0
- package/cpp/skia/include/private/base/SkDeque.h +2 -7
- package/cpp/skia/include/private/base/SkLoadUserConfig.h +1 -1
- package/cpp/skia/include/private/base/SkTArray.h +69 -28
- package/cpp/skia/include/private/base/SkThreadAnnotations.h +18 -5
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +26 -30
- package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +4 -3
- package/cpp/skia/include/private/chromium/SkImageChromium.h +1 -1
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +8 -6
- package/cpp/skia/include/private/gpu/graphite/ContextOptionsPriv.h +29 -0
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +12 -9
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +16 -11
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_platform.h +2 -2
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std.h +312 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h264std_decode.h +77 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std.h +446 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codec_h265std_decode.h +67 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vk_video/vulkan_video_codecs_common.h +36 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +9 -2
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +31 -3
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +10624 -5716
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_ios.h +2 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_macos.h +2 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_win32.h +28 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_xcb.h +2 -1
- package/cpp/skia/include/utils/mac/SkCGUtils.h +23 -11
- package/cpp/skia/modules/skcms/skcms.h +2 -410
- package/cpp/skia/modules/skcms/src/Transform_inl.h +831 -704
- package/cpp/skia/modules/skcms/src/skcms_Transform.h +161 -0
- package/cpp/skia/modules/skcms/src/skcms_internals.h +136 -0
- package/cpp/skia/modules/skcms/src/skcms_public.h +404 -0
- package/cpp/skia/modules/skparagraph/include/FontArguments.h +1 -1
- package/cpp/skia/modules/skparagraph/include/FontCollection.h +2 -0
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +2 -2
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +4 -3
- package/cpp/skia/modules/skparagraph/include/TypefaceFontProvider.h +1 -3
- package/cpp/skia/modules/skresources/include/SkResources.h +28 -17
- package/cpp/skia/modules/skunicode/include/SkUnicode.h +12 -0
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +4 -1
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +4 -1
- package/cpp/skia/src/base/SkUTF.h +7 -0
- package/cpp/skia/src/core/SkTHash.h +20 -8
- package/lib/commonjs/dom/nodes/JsiSkDOM.d.ts +3 -2
- package/lib/commonjs/dom/nodes/JsiSkDOM.js +56 -57
- package/lib/commonjs/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/commonjs/external/reanimated/index.d.ts +1 -0
- package/lib/commonjs/external/reanimated/index.js +13 -0
- package/lib/commonjs/external/reanimated/index.js.map +1 -1
- package/lib/commonjs/external/reanimated/interpolators.js +13 -1
- package/lib/commonjs/external/reanimated/interpolators.js.map +1 -1
- package/lib/commonjs/external/reanimated/moduleWrapper.d.ts +1 -0
- package/lib/commonjs/external/reanimated/moduleWrapper.js +5 -3
- package/lib/commonjs/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/commonjs/external/reanimated/textures.d.ts +5 -0
- package/lib/commonjs/external/reanimated/textures.js +52 -0
- package/lib/commonjs/external/reanimated/textures.js.map +1 -0
- package/lib/commonjs/headless/index.js +1 -1
- package/lib/commonjs/headless/index.js.map +1 -1
- package/lib/commonjs/mock/index.js +3 -0
- package/lib/commonjs/mock/index.js.map +1 -1
- package/lib/commonjs/renderer/Canvas.js +1 -1
- package/lib/commonjs/renderer/Canvas.js.map +1 -1
- package/lib/commonjs/renderer/Container.d.ts +1 -1
- package/lib/commonjs/renderer/Container.js +2 -1
- package/lib/commonjs/renderer/Container.js.map +1 -1
- package/lib/commonjs/renderer/Offscreen.d.ts +1 -0
- package/lib/commonjs/renderer/Offscreen.js +18 -5
- package/lib/commonjs/renderer/Offscreen.js.map +1 -1
- package/lib/commonjs/renderer/Reconciler.d.ts +1 -1
- package/lib/commonjs/renderer/Reconciler.js +7 -4
- package/lib/commonjs/renderer/Reconciler.js.map +1 -1
- package/lib/commonjs/skia/types/Matrix4.d.ts +2 -2
- package/lib/commonjs/skia/types/Matrix4.js.map +1 -1
- package/lib/commonjs/skia/types/Shader/Shader.d.ts +1 -1
- package/lib/commonjs/skia/types/Shader/Shader.js.map +1 -1
- package/lib/module/dom/nodes/JsiSkDOM.d.ts +3 -2
- package/lib/module/dom/nodes/JsiSkDOM.js +56 -56
- package/lib/module/dom/nodes/JsiSkDOM.js.map +1 -1
- package/lib/module/external/reanimated/index.d.ts +1 -0
- package/lib/module/external/reanimated/index.js +1 -0
- package/lib/module/external/reanimated/index.js.map +1 -1
- package/lib/module/external/reanimated/interpolators.js +13 -1
- package/lib/module/external/reanimated/interpolators.js.map +1 -1
- package/lib/module/external/reanimated/moduleWrapper.d.ts +1 -0
- package/lib/module/external/reanimated/moduleWrapper.js +3 -2
- package/lib/module/external/reanimated/moduleWrapper.js.map +1 -1
- package/lib/module/external/reanimated/textures.d.ts +5 -0
- package/lib/module/external/reanimated/textures.js +35 -0
- package/lib/module/external/reanimated/textures.js.map +1 -0
- package/lib/module/headless/index.js +1 -1
- package/lib/module/headless/index.js.map +1 -1
- package/lib/module/mock/index.js +3 -0
- package/lib/module/mock/index.js.map +1 -1
- package/lib/module/renderer/Canvas.js +1 -1
- package/lib/module/renderer/Canvas.js.map +1 -1
- package/lib/module/renderer/Container.d.ts +1 -1
- package/lib/module/renderer/Container.js +2 -1
- package/lib/module/renderer/Container.js.map +1 -1
- package/lib/module/renderer/Offscreen.d.ts +1 -0
- package/lib/module/renderer/Offscreen.js +11 -3
- package/lib/module/renderer/Offscreen.js.map +1 -1
- package/lib/module/renderer/Reconciler.d.ts +1 -1
- package/lib/module/renderer/Reconciler.js +7 -4
- package/lib/module/renderer/Reconciler.js.map +1 -1
- package/lib/module/skia/types/Matrix4.d.ts +2 -2
- package/lib/module/skia/types/Matrix4.js.map +1 -1
- package/lib/module/skia/types/Shader/Shader.d.ts +1 -1
- package/lib/module/skia/types/Shader/Shader.js.map +1 -1
- package/lib/typescript/src/dom/nodes/JsiSkDOM.d.ts +3 -2
- package/lib/typescript/src/external/reanimated/index.d.ts +1 -0
- package/lib/typescript/src/external/reanimated/moduleWrapper.d.ts +1 -0
- package/lib/typescript/src/external/reanimated/textures.d.ts +5 -0
- package/lib/typescript/src/renderer/Container.d.ts +1 -1
- package/lib/typescript/src/renderer/Offscreen.d.ts +1 -0
- package/lib/typescript/src/renderer/Reconciler.d.ts +1 -1
- package/lib/typescript/src/skia/types/Matrix4.d.ts +2 -2
- package/lib/typescript/src/skia/types/Shader/Shader.d.ts +1 -1
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libskparagraph.a +0 -0
- package/libs/android/arm64-v8a/libsksg.a +0 -0
- package/libs/android/arm64-v8a/libskshaper.a +0 -0
- package/libs/android/arm64-v8a/libskunicode.a +0 -0
- package/libs/android/arm64-v8a/libsvg.a +0 -0
- package/libs/android/armeabi-v7a/libskia.a +0 -0
- package/libs/android/armeabi-v7a/libskottie.a +0 -0
- package/libs/android/armeabi-v7a/libskparagraph.a +0 -0
- package/libs/android/armeabi-v7a/libsksg.a +0 -0
- package/libs/android/armeabi-v7a/libskshaper.a +0 -0
- package/libs/android/armeabi-v7a/libskunicode.a +0 -0
- package/libs/android/armeabi-v7a/libsvg.a +0 -0
- package/libs/android/x86/libskia.a +0 -0
- package/libs/android/x86/libskottie.a +0 -0
- package/libs/android/x86/libskparagraph.a +0 -0
- package/libs/android/x86/libsksg.a +0 -0
- package/libs/android/x86/libskshaper.a +0 -0
- package/libs/android/x86/libskunicode.a +0 -0
- package/libs/android/x86/libsvg.a +0 -0
- package/libs/android/x86_64/libskia.a +0 -0
- package/libs/android/x86_64/libskottie.a +0 -0
- package/libs/android/x86_64/libskparagraph.a +0 -0
- package/libs/android/x86_64/libsksg.a +0 -0
- package/libs/android/x86_64/libskshaper.a +0 -0
- package/libs/android/x86_64/libskunicode.a +0 -0
- package/libs/android/x86_64/libsvg.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e/libskia.a +0 -0
- package/libs/ios/libskia.xcframework/ios-arm64_arm64e_x86_64-simulator/libskia.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e/libskottie.a +0 -0
- package/libs/ios/libskottie.xcframework/ios-arm64_arm64e_x86_64-simulator/libskottie.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e/libskparagraph.a +0 -0
- package/libs/ios/libskparagraph.xcframework/ios-arm64_arm64e_x86_64-simulator/libskparagraph.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e/libsksg.a +0 -0
- package/libs/ios/libsksg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsksg.a +0 -0
- package/libs/ios/libskshaper.xcframework/Info.plist +5 -5
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e/libskshaper.a +0 -0
- package/libs/ios/libskshaper.xcframework/ios-arm64_arm64e_x86_64-simulator/libskshaper.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e/libskunicode.a +0 -0
- package/libs/ios/libskunicode.xcframework/ios-arm64_arm64e_x86_64-simulator/libskunicode.a +0 -0
- package/libs/ios/libsvg.xcframework/Info.plist +5 -5
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e/libsvg.a +0 -0
- package/libs/ios/libsvg.xcframework/ios-arm64_arm64e_x86_64-simulator/libsvg.a +0 -0
- package/package.json +1 -1
- package/src/dom/nodes/JsiSkDOM.ts +55 -56
- package/src/external/reanimated/index.ts +1 -0
- package/src/external/reanimated/interpolators.ts +15 -2
- package/src/external/reanimated/moduleWrapper.ts +1 -0
- package/src/external/reanimated/textures.tsx +50 -0
- package/src/headless/index.ts +1 -1
- package/src/mock/index.ts +3 -0
- package/src/renderer/Canvas.tsx +1 -1
- package/src/renderer/Container.tsx +3 -2
- package/src/renderer/Offscreen.tsx +12 -3
- package/src/renderer/Reconciler.tsx +5 -2
- package/src/skia/types/Matrix4.ts +2 -2
- package/src/skia/types/Shader/Shader.ts +6 -1
- package/cpp/skia/include/gpu/GrSurfaceInfo.h +0 -142
- package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +0 -107
- package/cpp/skia/include/private/gpu/ganesh/GrMockTypesPriv.h +0 -32
- package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +0 -83
- package/cpp/skia/include/private/gpu/ganesh/GrVkTypesPriv.h +0 -47
- package/cpp/skia/include/private/gpu/vk/VulkanTypesPriv.h +0 -57
- package/cpp/skia/include/utils/SkBase64.h +0 -53
- package/cpp/skia/modules/skcms/skcms_internal.h +0 -56
|
@@ -87,8 +87,20 @@ export const usePathInterpolation = (
|
|
|
87
87
|
input: number[],
|
|
88
88
|
outputRange: SkPath[],
|
|
89
89
|
options?: ExtrapolationType
|
|
90
|
-
) =>
|
|
91
|
-
|
|
90
|
+
) => {
|
|
91
|
+
// Check if all paths in outputRange are interpolable
|
|
92
|
+
const allPathsInterpolable = outputRange
|
|
93
|
+
.slice(1)
|
|
94
|
+
.every((path) => outputRange[0].isInterpolatable(path));
|
|
95
|
+
if (!allPathsInterpolable) {
|
|
96
|
+
// Handle the case where not all paths are interpolable
|
|
97
|
+
// For example, throw an error or return early
|
|
98
|
+
throw new Error(
|
|
99
|
+
`Not all paths in the output range are interpolable.
|
|
100
|
+
See: https://shopify.github.io/react-native-skia/docs/animations/hooks#usepathinterpolation`
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
return useInterpolator(
|
|
92
104
|
() => Skia.Path.Make(),
|
|
93
105
|
value,
|
|
94
106
|
interpolatePaths,
|
|
@@ -96,6 +108,7 @@ export const usePathInterpolation = (
|
|
|
96
108
|
outputRange,
|
|
97
109
|
options
|
|
98
110
|
);
|
|
111
|
+
};
|
|
99
112
|
|
|
100
113
|
export const useVectorInterpolation = (
|
|
101
114
|
value: SharedValue<number>,
|
|
@@ -63,6 +63,7 @@ export const stopMapper: (mapperID: number) => void =
|
|
|
63
63
|
Reanimated2?.stopMapper || throwOnMissingReanimated;
|
|
64
64
|
|
|
65
65
|
export const runOnJS = Reanimated2?.runOnJS || throwOnMissingReanimated;
|
|
66
|
+
export const runOnUI = Reanimated2?.runOnUI || throwOnMissingReanimated;
|
|
66
67
|
|
|
67
68
|
export const useAnimatedReaction: <T>(
|
|
68
69
|
prepare: () => T,
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { useEffect, useMemo } from "react";
|
|
2
|
+
import type { ReactElement } from "react";
|
|
3
|
+
import type { SharedValue } from "react-native-reanimated";
|
|
4
|
+
|
|
5
|
+
import { Skia } from "../../skia";
|
|
6
|
+
import type { SkImage, SkPicture, SkSize } from "../../skia/types";
|
|
7
|
+
import { drawAsPicture } from "../../renderer/Offscreen";
|
|
8
|
+
|
|
9
|
+
import { runOnUI, useSharedValue } from "./moduleWrapper";
|
|
10
|
+
|
|
11
|
+
// TODO: We're not sure yet why PixelRatio is not needed here.
|
|
12
|
+
const pd = 1; //Platform.PixelRatio;
|
|
13
|
+
|
|
14
|
+
const createTexture = (
|
|
15
|
+
texture: SharedValue<SkImage | null>,
|
|
16
|
+
picture: SkPicture,
|
|
17
|
+
size: SkSize
|
|
18
|
+
) => {
|
|
19
|
+
"worklet";
|
|
20
|
+
const surface = Skia.Surface.MakeOffscreen(
|
|
21
|
+
size.width * pd,
|
|
22
|
+
size.height * pd
|
|
23
|
+
)!;
|
|
24
|
+
const canvas = surface.getCanvas();
|
|
25
|
+
// see comment above
|
|
26
|
+
//canvas.save();
|
|
27
|
+
//canvas.scale(pd, pd);
|
|
28
|
+
canvas.drawPicture(picture);
|
|
29
|
+
//canvas.restore();
|
|
30
|
+
surface.flush();
|
|
31
|
+
texture.value = surface.makeImageSnapshot();
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const useTextureValue = (element: ReactElement, size: SkSize) => {
|
|
35
|
+
const picture = useMemo(() => {
|
|
36
|
+
return drawAsPicture(element);
|
|
37
|
+
}, [element]);
|
|
38
|
+
return useTextureValueFromPicture(picture, size);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
export const useTextureValueFromPicture = (
|
|
42
|
+
picture: SkPicture,
|
|
43
|
+
size: SkSize
|
|
44
|
+
) => {
|
|
45
|
+
const texture = useSharedValue<SkImage | null>(null);
|
|
46
|
+
useEffect(() => {
|
|
47
|
+
runOnUI(createTexture)(texture, picture, size);
|
|
48
|
+
}, [texture, picture, size]);
|
|
49
|
+
return texture;
|
|
50
|
+
};
|
package/src/headless/index.ts
CHANGED
|
@@ -25,7 +25,7 @@ export const makeOffscreenSurface = (width: number, height: number) => {
|
|
|
25
25
|
};
|
|
26
26
|
|
|
27
27
|
export const drawOffscreen = (surface: SkSurface, element: ReactNode) => {
|
|
28
|
-
const root = new SkiaRoot(Skia);
|
|
28
|
+
const root = new SkiaRoot(Skia, false);
|
|
29
29
|
root.render(element);
|
|
30
30
|
const canvas = surface.getCanvas();
|
|
31
31
|
const ctx = new JsiDrawingContext(Skia, canvas);
|
package/src/mock/index.ts
CHANGED
|
@@ -31,9 +31,12 @@ export const Mock = (CanvasKit: CanvasKit) => {
|
|
|
31
31
|
// Reanimated hooks
|
|
32
32
|
useClock: NoopSharedValue,
|
|
33
33
|
usePathInterpolation: NoopSharedValue,
|
|
34
|
+
useTextureValue: NoopSharedValue,
|
|
35
|
+
useTextureValueFromPicture: NoopSharedValue,
|
|
34
36
|
useRawData: Noop,
|
|
35
37
|
useData: Noop,
|
|
36
38
|
useFont: () => Skia.Font(undefined, 0),
|
|
39
|
+
useFonts: Noop,
|
|
37
40
|
useTypeface: () => null,
|
|
38
41
|
useImage: () => null,
|
|
39
42
|
useSVG: () => null,
|
package/src/renderer/Canvas.tsx
CHANGED
|
@@ -13,9 +13,10 @@ export class Container {
|
|
|
13
13
|
constructor(
|
|
14
14
|
Skia: Skia,
|
|
15
15
|
public redraw: () => void = () => {},
|
|
16
|
-
public getNativeId: () => number = () => 0
|
|
16
|
+
public getNativeId: () => number = () => 0,
|
|
17
|
+
native: boolean
|
|
17
18
|
) {
|
|
18
|
-
this.Sk = new JsiSkDOM({ Skia });
|
|
19
|
+
this.Sk = new JsiSkDOM({ Skia }, native);
|
|
19
20
|
this._root = this.Sk.Group();
|
|
20
21
|
}
|
|
21
22
|
|
|
@@ -10,15 +10,24 @@ export const drawAsImage = (
|
|
|
10
10
|
width: number,
|
|
11
11
|
height: number
|
|
12
12
|
) => {
|
|
13
|
+
const picture = drawAsPicture(element);
|
|
13
14
|
const surface = Skia.Surface.MakeOffscreen(width, height);
|
|
14
15
|
if (!surface) {
|
|
15
16
|
throw new Error("Could not create offscreen surface");
|
|
16
17
|
}
|
|
17
18
|
const canvas = surface.getCanvas();
|
|
18
|
-
|
|
19
|
+
canvas.drawPicture(picture);
|
|
20
|
+
surface.flush();
|
|
21
|
+
return surface.makeImageSnapshot();
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const drawAsPicture = (element: ReactElement) => {
|
|
25
|
+
const recorder = Skia.PictureRecorder();
|
|
26
|
+
const canvas = recorder.beginRecording();
|
|
27
|
+
const root = new SkiaRoot(Skia, false);
|
|
19
28
|
root.render(element);
|
|
20
29
|
const ctx = new JsiDrawingContext(Skia, canvas);
|
|
21
30
|
root.dom.render(ctx);
|
|
22
|
-
|
|
23
|
-
return
|
|
31
|
+
const picture = recorder.finishRecordingAsPicture();
|
|
32
|
+
return picture;
|
|
24
33
|
};
|
|
@@ -21,10 +21,11 @@ export class SkiaRoot {
|
|
|
21
21
|
|
|
22
22
|
constructor(
|
|
23
23
|
Skia: Skia,
|
|
24
|
+
native = false,
|
|
24
25
|
redraw: () => void = () => {},
|
|
25
26
|
getNativeId: () => number = () => 0
|
|
26
27
|
) {
|
|
27
|
-
this.container = new Container(Skia, redraw, getNativeId);
|
|
28
|
+
this.container = new Container(Skia, redraw, getNativeId, native);
|
|
28
29
|
this.root = skiaReconciler.createContainer(
|
|
29
30
|
this.container,
|
|
30
31
|
0,
|
|
@@ -45,7 +46,9 @@ export class SkiaRoot {
|
|
|
45
46
|
}
|
|
46
47
|
|
|
47
48
|
unmount() {
|
|
48
|
-
skiaReconciler.updateContainer(null, this.root, null, () => {
|
|
49
|
+
skiaReconciler.updateContainer(null, this.root, null, () => {
|
|
50
|
+
hostDebug("unmountContainer");
|
|
51
|
+
});
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
get dom() {
|
|
@@ -356,13 +356,13 @@ export const convertToColumnMajor = (rowMajorMatrix: Matrix4) => {
|
|
|
356
356
|
colMajorMatrix[col * size + row] = rowMajorMatrix[row * size + col];
|
|
357
357
|
}
|
|
358
358
|
}
|
|
359
|
-
return colMajorMatrix;
|
|
359
|
+
return colMajorMatrix as unknown as Matrix4;
|
|
360
360
|
};
|
|
361
361
|
|
|
362
362
|
/**
|
|
363
363
|
* @worklet
|
|
364
364
|
*/
|
|
365
|
-
export const convertToAffineMatrix = (m4:
|
|
365
|
+
export const convertToAffineMatrix = (m4: Matrix4) => {
|
|
366
366
|
"worklet";
|
|
367
367
|
// Extracting the relevant components from the 4x4 matrix
|
|
368
368
|
const a = m4[0]; // Scale X
|
|
@@ -7,7 +7,12 @@ export const isShader = (obj: SkJSIInstance<string> | null): obj is SkShader =>
|
|
|
7
7
|
|
|
8
8
|
export type SkShader = SkJSIInstance<"Shader">;
|
|
9
9
|
|
|
10
|
-
export type Uniform =
|
|
10
|
+
export type Uniform =
|
|
11
|
+
| number
|
|
12
|
+
| Vector
|
|
13
|
+
| Float32Array
|
|
14
|
+
| readonly Uniform[]
|
|
15
|
+
| Uniform[];
|
|
11
16
|
|
|
12
17
|
export interface Uniforms {
|
|
13
18
|
[name: string]: Uniform;
|
|
@@ -1,142 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2021 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 GrSurfaceInfo_DEFINED
|
|
9
|
-
#define GrSurfaceInfo_DEFINED
|
|
10
|
-
|
|
11
|
-
#include "include/gpu/GrTypes.h"
|
|
12
|
-
|
|
13
|
-
#ifdef SK_GL
|
|
14
|
-
#include "include/private/gpu/ganesh/GrGLTypesPriv.h"
|
|
15
|
-
#endif
|
|
16
|
-
#ifdef SK_VULKAN
|
|
17
|
-
#include "include/private/gpu/ganesh/GrVkTypesPriv.h"
|
|
18
|
-
#endif
|
|
19
|
-
#ifdef SK_DIRECT3D
|
|
20
|
-
#include "include/private/gpu/ganesh/GrD3DTypesMinimal.h"
|
|
21
|
-
struct GrD3DSurfaceInfo;
|
|
22
|
-
#endif
|
|
23
|
-
#ifdef SK_METAL
|
|
24
|
-
#include "include/private/gpu/ganesh/GrMtlTypesPriv.h"
|
|
25
|
-
#endif
|
|
26
|
-
#include "include/private/gpu/ganesh/GrMockTypesPriv.h"
|
|
27
|
-
|
|
28
|
-
class GrSurfaceInfo {
|
|
29
|
-
public:
|
|
30
|
-
GrSurfaceInfo() {}
|
|
31
|
-
#ifdef SK_GL
|
|
32
|
-
GrSurfaceInfo(const GrGLSurfaceInfo& glInfo)
|
|
33
|
-
: fBackend(GrBackendApi::kOpenGL)
|
|
34
|
-
, fValid(true)
|
|
35
|
-
, fSampleCount(glInfo.fSampleCount)
|
|
36
|
-
, fLevelCount(glInfo.fLevelCount)
|
|
37
|
-
, fProtected(glInfo.fProtected)
|
|
38
|
-
, fGLSpec(glInfo) {}
|
|
39
|
-
#endif
|
|
40
|
-
#ifdef SK_VULKAN
|
|
41
|
-
GrSurfaceInfo(const GrVkSurfaceInfo& vkInfo)
|
|
42
|
-
: fBackend(GrBackendApi::kVulkan)
|
|
43
|
-
, fValid(true)
|
|
44
|
-
, fSampleCount(vkInfo.fSampleCount)
|
|
45
|
-
, fLevelCount(vkInfo.fLevelCount)
|
|
46
|
-
, fProtected(vkInfo.fProtected)
|
|
47
|
-
, fVkSpec(vkInfo) {}
|
|
48
|
-
#endif
|
|
49
|
-
#ifdef SK_DIRECT3D
|
|
50
|
-
GrSurfaceInfo(const GrD3DSurfaceInfo& d3dInfo);
|
|
51
|
-
#endif
|
|
52
|
-
#ifdef SK_METAL
|
|
53
|
-
GrSurfaceInfo(const GrMtlSurfaceInfo& mtlInfo)
|
|
54
|
-
: fBackend(GrBackendApi::kMetal)
|
|
55
|
-
, fValid(true)
|
|
56
|
-
, fSampleCount(mtlInfo.fSampleCount)
|
|
57
|
-
, fLevelCount(mtlInfo.fLevelCount)
|
|
58
|
-
, fProtected(mtlInfo.fProtected)
|
|
59
|
-
, fMtlSpec(mtlInfo) {}
|
|
60
|
-
#endif
|
|
61
|
-
GrSurfaceInfo(const GrMockSurfaceInfo& mockInfo)
|
|
62
|
-
: fBackend(GrBackendApi::kMock)
|
|
63
|
-
, fValid(true)
|
|
64
|
-
, fSampleCount(mockInfo.fSampleCount)
|
|
65
|
-
, fLevelCount(mockInfo.fLevelCount)
|
|
66
|
-
, fProtected(mockInfo.fProtected)
|
|
67
|
-
, fMockSpec(mockInfo) {}
|
|
68
|
-
|
|
69
|
-
~GrSurfaceInfo();
|
|
70
|
-
GrSurfaceInfo(const GrSurfaceInfo&) = default;
|
|
71
|
-
|
|
72
|
-
bool isValid() const { return fValid; }
|
|
73
|
-
GrBackendApi backend() const { return fBackend; }
|
|
74
|
-
|
|
75
|
-
uint32_t numSamples() const { return fSampleCount; }
|
|
76
|
-
uint32_t numMipLevels() const { return fLevelCount; }
|
|
77
|
-
GrProtected isProtected() const { return fProtected; }
|
|
78
|
-
|
|
79
|
-
#ifdef SK_GL
|
|
80
|
-
bool getGLSurfaceInfo(GrGLSurfaceInfo* info) const {
|
|
81
|
-
if (!this->isValid() || fBackend != GrBackendApi::kOpenGL) {
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
*info = GrGLTextureSpecToSurfaceInfo(fGLSpec, fSampleCount, fLevelCount, fProtected);
|
|
85
|
-
return true;
|
|
86
|
-
}
|
|
87
|
-
#endif
|
|
88
|
-
#ifdef SK_VULKAN
|
|
89
|
-
bool getVkSurfaceInfo(GrVkSurfaceInfo* info) const {
|
|
90
|
-
if (!this->isValid() || fBackend != GrBackendApi::kVulkan) {
|
|
91
|
-
return false;
|
|
92
|
-
}
|
|
93
|
-
*info = GrVkImageSpecToSurfaceInfo(fVkSpec, fSampleCount, fLevelCount, fProtected);
|
|
94
|
-
return true;
|
|
95
|
-
}
|
|
96
|
-
#endif
|
|
97
|
-
#ifdef SK_DIRECT3D
|
|
98
|
-
bool getD3DSurfaceInfo(GrD3DSurfaceInfo*) const;
|
|
99
|
-
#endif
|
|
100
|
-
#ifdef SK_METAL
|
|
101
|
-
bool getMtlSurfaceInfo(GrMtlSurfaceInfo* info) const {
|
|
102
|
-
if (!this->isValid() || fBackend != GrBackendApi::kMetal) {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
*info = GrMtlTextureSpecToSurfaceInfo(fMtlSpec, fSampleCount, fLevelCount, fProtected);
|
|
106
|
-
return true;
|
|
107
|
-
}
|
|
108
|
-
#endif
|
|
109
|
-
bool getMockSurfaceInfo(GrMockSurfaceInfo* info) const {
|
|
110
|
-
if (!this->isValid() || fBackend != GrBackendApi::kMock) {
|
|
111
|
-
return false;
|
|
112
|
-
}
|
|
113
|
-
*info = GrMockTextureSpecToSurfaceInfo(fMockSpec, fSampleCount, fLevelCount, fProtected);
|
|
114
|
-
return true;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
private:
|
|
118
|
-
GrBackendApi fBackend = GrBackendApi::kMock;
|
|
119
|
-
bool fValid = false;
|
|
120
|
-
|
|
121
|
-
uint32_t fSampleCount = 1;
|
|
122
|
-
uint32_t fLevelCount = 0;
|
|
123
|
-
GrProtected fProtected = GrProtected::kNo;
|
|
124
|
-
|
|
125
|
-
union {
|
|
126
|
-
#ifdef SK_GL
|
|
127
|
-
GrGLTextureSpec fGLSpec;
|
|
128
|
-
#endif
|
|
129
|
-
#ifdef SK_VULKAN
|
|
130
|
-
GrVkImageSpec fVkSpec;
|
|
131
|
-
#endif
|
|
132
|
-
#ifdef SK_DIRECT3D
|
|
133
|
-
GrD3DTextureResourceSpecHolder fD3DSpec;
|
|
134
|
-
#endif
|
|
135
|
-
#ifdef SK_METAL
|
|
136
|
-
GrMtlTextureSpec fMtlSpec;
|
|
137
|
-
#endif
|
|
138
|
-
GrMockTextureSpec fMockSpec;
|
|
139
|
-
};
|
|
140
|
-
};
|
|
141
|
-
|
|
142
|
-
#endif
|
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2019 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
|
-
#include "include/core/SkRefCnt.h"
|
|
9
|
-
#include "include/gpu/gl/GrGLTypes.h"
|
|
10
|
-
|
|
11
|
-
#ifndef GrGLTypesPriv_DEFINED
|
|
12
|
-
#define GrGLTypesPriv_DEFINED
|
|
13
|
-
|
|
14
|
-
// TODO(b/293490566) Move this to src/ after GrSurfaceInfo.h has been decoupled from GL
|
|
15
|
-
|
|
16
|
-
static constexpr int kGrGLColorFormatCount = static_cast<int>(GrGLFormat::kLastColorFormat) + 1;
|
|
17
|
-
|
|
18
|
-
class GrGLTextureParameters : public SkNVRefCnt<GrGLTextureParameters> {
|
|
19
|
-
public:
|
|
20
|
-
// We currently consider texture parameters invalid on all textures
|
|
21
|
-
// GrContext::resetContext(). We use this type to track whether instances of
|
|
22
|
-
// GrGLTextureParameters were updated before or after the most recent resetContext(). At 10
|
|
23
|
-
// resets / frame and 60fps a 64bit timestamp will overflow in about a billion years.
|
|
24
|
-
// TODO: Require clients to use GrBackendTexture::glTextureParametersModified() to invalidate
|
|
25
|
-
// texture parameters and get rid of timestamp checking.
|
|
26
|
-
using ResetTimestamp = uint64_t;
|
|
27
|
-
|
|
28
|
-
// This initializes the params to have an expired timestamp. They'll be considered invalid the
|
|
29
|
-
// first time the texture is used unless set() is called.
|
|
30
|
-
GrGLTextureParameters() = default;
|
|
31
|
-
|
|
32
|
-
// This is texture parameter state that is overridden when a non-zero sampler object is bound.
|
|
33
|
-
struct SamplerOverriddenState {
|
|
34
|
-
SamplerOverriddenState();
|
|
35
|
-
void invalidate();
|
|
36
|
-
|
|
37
|
-
GrGLenum fMinFilter;
|
|
38
|
-
GrGLenum fMagFilter;
|
|
39
|
-
GrGLenum fWrapS;
|
|
40
|
-
GrGLenum fWrapT;
|
|
41
|
-
GrGLfloat fMinLOD;
|
|
42
|
-
GrGLfloat fMaxLOD;
|
|
43
|
-
GrGLfloat fMaxAniso;
|
|
44
|
-
// We always want the border color to be transparent black, so no need to store 4 floats.
|
|
45
|
-
// Just track if it's been invalidated and no longer the default
|
|
46
|
-
bool fBorderColorInvalid;
|
|
47
|
-
};
|
|
48
|
-
|
|
49
|
-
// Texture parameter state that is not overridden by a bound sampler object.
|
|
50
|
-
struct NonsamplerState {
|
|
51
|
-
NonsamplerState();
|
|
52
|
-
void invalidate();
|
|
53
|
-
|
|
54
|
-
GrGLint fBaseMipMapLevel;
|
|
55
|
-
GrGLint fMaxMipmapLevel;
|
|
56
|
-
bool fSwizzleIsRGBA;
|
|
57
|
-
};
|
|
58
|
-
|
|
59
|
-
void invalidate();
|
|
60
|
-
|
|
61
|
-
ResetTimestamp resetTimestamp() const { return fResetTimestamp; }
|
|
62
|
-
const SamplerOverriddenState& samplerOverriddenState() const { return fSamplerOverriddenState; }
|
|
63
|
-
const NonsamplerState& nonsamplerState() const { return fNonsamplerState; }
|
|
64
|
-
|
|
65
|
-
// SamplerOverriddenState is optional because we don't track it when we're using sampler
|
|
66
|
-
// objects.
|
|
67
|
-
void set(const SamplerOverriddenState* samplerState,
|
|
68
|
-
const NonsamplerState& nonsamplerState,
|
|
69
|
-
ResetTimestamp currTimestamp);
|
|
70
|
-
|
|
71
|
-
private:
|
|
72
|
-
static constexpr ResetTimestamp kExpiredTimestamp = 0;
|
|
73
|
-
|
|
74
|
-
SamplerOverriddenState fSamplerOverriddenState;
|
|
75
|
-
NonsamplerState fNonsamplerState;
|
|
76
|
-
ResetTimestamp fResetTimestamp = kExpiredTimestamp;
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
class GrGLBackendTextureInfo {
|
|
80
|
-
public:
|
|
81
|
-
GrGLBackendTextureInfo(const GrGLTextureInfo& info, sk_sp<GrGLTextureParameters> params)
|
|
82
|
-
: fInfo(info), fParams(params) {}
|
|
83
|
-
const GrGLTextureInfo& info() const { return fInfo; }
|
|
84
|
-
GrGLTextureParameters* parameters() const { return fParams.get(); }
|
|
85
|
-
sk_sp<GrGLTextureParameters> refParameters() const { return fParams; }
|
|
86
|
-
|
|
87
|
-
bool isProtected() const { return fInfo.isProtected(); }
|
|
88
|
-
|
|
89
|
-
private:
|
|
90
|
-
GrGLTextureInfo fInfo;
|
|
91
|
-
sk_sp<GrGLTextureParameters> fParams; // not const because we might call invalidate() on it.
|
|
92
|
-
};
|
|
93
|
-
|
|
94
|
-
struct GrGLTextureSpec {
|
|
95
|
-
GrGLTextureSpec() : fTarget(0), fFormat(0) {}
|
|
96
|
-
GrGLTextureSpec(const GrGLSurfaceInfo& info) : fTarget(info.fTarget), fFormat(info.fFormat) {}
|
|
97
|
-
|
|
98
|
-
GrGLenum fTarget;
|
|
99
|
-
GrGLenum fFormat;
|
|
100
|
-
};
|
|
101
|
-
|
|
102
|
-
GrGLSurfaceInfo GrGLTextureSpecToSurfaceInfo(const GrGLTextureSpec& glSpec,
|
|
103
|
-
uint32_t sampleCount,
|
|
104
|
-
uint32_t levelCount,
|
|
105
|
-
skgpu::Protected isProtected);
|
|
106
|
-
|
|
107
|
-
#endif
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2021 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 GrMockTypesPriv_DEFINED
|
|
9
|
-
#define GrMockTypesPriv_DEFINED
|
|
10
|
-
|
|
11
|
-
#include "include/core/SkTextureCompressionType.h"
|
|
12
|
-
#include "include/gpu/mock/GrMockTypes.h"
|
|
13
|
-
|
|
14
|
-
struct GrMockTextureSpec {
|
|
15
|
-
GrMockTextureSpec()
|
|
16
|
-
: fColorType(GrColorType::kUnknown)
|
|
17
|
-
, fCompressionType(SkTextureCompressionType::kNone) {}
|
|
18
|
-
GrMockTextureSpec(const GrMockSurfaceInfo& info)
|
|
19
|
-
: fColorType(info.fColorType)
|
|
20
|
-
, fCompressionType(info.fCompressionType) {}
|
|
21
|
-
|
|
22
|
-
GrColorType fColorType = GrColorType::kUnknown;
|
|
23
|
-
SkTextureCompressionType fCompressionType = SkTextureCompressionType::kNone;
|
|
24
|
-
};
|
|
25
|
-
|
|
26
|
-
GrMockSurfaceInfo GrMockTextureSpecToSurfaceInfo(const GrMockTextureSpec& mockSpec,
|
|
27
|
-
uint32_t sampleCount,
|
|
28
|
-
uint32_t levelCount,
|
|
29
|
-
GrProtected isProtected);
|
|
30
|
-
|
|
31
|
-
#endif
|
|
32
|
-
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2021 Google Inc.
|
|
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 GrMtlTypesPriv_DEFINED
|
|
9
|
-
#define GrMtlTypesPriv_DEFINED
|
|
10
|
-
|
|
11
|
-
#include "include/gpu/GrTypes.h"
|
|
12
|
-
#include "include/gpu/mtl/GrMtlTypes.h"
|
|
13
|
-
|
|
14
|
-
///////////////////////////////////////////////////////////////////////////////
|
|
15
|
-
|
|
16
|
-
#ifdef __APPLE__
|
|
17
|
-
|
|
18
|
-
#include <TargetConditionals.h>
|
|
19
|
-
|
|
20
|
-
#if defined(SK_BUILD_FOR_MAC)
|
|
21
|
-
#if __MAC_OS_X_VERSION_MAX_ALLOWED >= 130000
|
|
22
|
-
#define GR_METAL_SDK_VERSION 300
|
|
23
|
-
#elif __MAC_OS_X_VERSION_MAX_ALLOWED >= 120000
|
|
24
|
-
#define GR_METAL_SDK_VERSION 240
|
|
25
|
-
#elif __MAC_OS_X_VERSION_MAX_ALLOWED >= 110000
|
|
26
|
-
#define GR_METAL_SDK_VERSION 230
|
|
27
|
-
#elif __MAC_OS_X_VERSION_MAX_ALLOWED >= 101500
|
|
28
|
-
#define GR_METAL_SDK_VERSION 220
|
|
29
|
-
#elif __MAC_OS_X_VERSION_MAX_ALLOWED >= 101400
|
|
30
|
-
#define GR_METAL_SDK_VERSION 210
|
|
31
|
-
#else
|
|
32
|
-
#error Must use at least 10.14 SDK to build Metal backend for MacOS
|
|
33
|
-
#endif
|
|
34
|
-
#else
|
|
35
|
-
#if __IPHONE_OS_VERSION_MAX_ALLOWED >= 160000 || __TV_OS_VERSION_MAX_ALLOWED >= 160000
|
|
36
|
-
#define GR_METAL_SDK_VERSION 300
|
|
37
|
-
#elif __IPHONE_OS_VERSION_MAX_ALLOWED >= 150000 || __TV_OS_VERSION_MAX_ALLOWED >= 150000
|
|
38
|
-
#define GR_METAL_SDK_VERSION 240
|
|
39
|
-
#elif __IPHONE_OS_VERSION_MAX_ALLOWED >= 140000 || __TV_OS_VERSION_MAX_ALLOWED >= 140000
|
|
40
|
-
#define GR_METAL_SDK_VERSION 230
|
|
41
|
-
#elif __IPHONE_OS_VERSION_MAX_ALLOWED >= 130000 || __TV_OS_VERSION_MAX_ALLOWED >= 130000
|
|
42
|
-
#define GR_METAL_SDK_VERSION 220
|
|
43
|
-
#elif __IPHONE_OS_VERSION_MAX_ALLOWED >= 120000 || __TV_OS_VERSION_MAX_ALLOWED >= 120000
|
|
44
|
-
#define GR_METAL_SDK_VERSION 210
|
|
45
|
-
#else
|
|
46
|
-
#error Must use at least 12.00 SDK to build Metal backend for iOS
|
|
47
|
-
#endif
|
|
48
|
-
#endif
|
|
49
|
-
|
|
50
|
-
#if __has_feature(objc_arc) && __has_attribute(objc_externally_retained)
|
|
51
|
-
#define GR_NORETAIN __attribute__((objc_externally_retained))
|
|
52
|
-
#define GR_NORETAIN_BEGIN \
|
|
53
|
-
_Pragma("clang attribute push (__attribute__((objc_externally_retained)), apply_to=any(function,objc_method))")
|
|
54
|
-
#define GR_NORETAIN_END _Pragma("clang attribute pop")
|
|
55
|
-
#else
|
|
56
|
-
#define GR_NORETAIN
|
|
57
|
-
#define GR_NORETAIN_BEGIN
|
|
58
|
-
#define GR_NORETAIN_END
|
|
59
|
-
#endif
|
|
60
|
-
|
|
61
|
-
struct GrMtlTextureSpec {
|
|
62
|
-
GrMtlTextureSpec()
|
|
63
|
-
: fFormat(0)
|
|
64
|
-
, fUsage(0)
|
|
65
|
-
, fStorageMode(0) {}
|
|
66
|
-
GrMtlTextureSpec(const GrMtlSurfaceInfo& info)
|
|
67
|
-
: fFormat(info.fFormat)
|
|
68
|
-
, fUsage(info.fUsage)
|
|
69
|
-
, fStorageMode(info.fStorageMode) {}
|
|
70
|
-
|
|
71
|
-
GrMTLPixelFormat fFormat;
|
|
72
|
-
GrMTLTextureUsage fUsage;
|
|
73
|
-
GrMTLStorageMode fStorageMode;
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
GrMtlSurfaceInfo GrMtlTextureSpecToSurfaceInfo(const GrMtlTextureSpec& mtlSpec,
|
|
77
|
-
uint32_t sampleCount,
|
|
78
|
-
uint32_t levelCount,
|
|
79
|
-
skgpu::Protected isProtected);
|
|
80
|
-
|
|
81
|
-
#endif // __APPLE__
|
|
82
|
-
|
|
83
|
-
#endif // GrMtlTypesPriv_DEFINED
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2018 Google Inc.
|
|
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 GrVkTypesPriv_DEFINED
|
|
9
|
-
#define GrVkTypesPriv_DEFINED
|
|
10
|
-
|
|
11
|
-
#include "include/core/SkRefCnt.h"
|
|
12
|
-
#include "include/gpu/vk/GrVkTypes.h"
|
|
13
|
-
|
|
14
|
-
namespace skgpu {
|
|
15
|
-
class MutableTextureStateRef;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
GrVkImageInfo GrVkImageInfoWithMutableState(const GrVkImageInfo&,
|
|
19
|
-
const skgpu::MutableTextureStateRef*);
|
|
20
|
-
|
|
21
|
-
struct GrVkImageSpec {
|
|
22
|
-
GrVkImageSpec()
|
|
23
|
-
: fImageTiling(VK_IMAGE_TILING_OPTIMAL)
|
|
24
|
-
, fFormat(VK_FORMAT_UNDEFINED)
|
|
25
|
-
, fImageUsageFlags(0)
|
|
26
|
-
, fSharingMode(VK_SHARING_MODE_EXCLUSIVE) {}
|
|
27
|
-
|
|
28
|
-
GrVkImageSpec(const GrVkSurfaceInfo& info)
|
|
29
|
-
: fImageTiling(info.fImageTiling)
|
|
30
|
-
, fFormat(info.fFormat)
|
|
31
|
-
, fImageUsageFlags(info.fImageUsageFlags)
|
|
32
|
-
, fYcbcrConversionInfo(info.fYcbcrConversionInfo)
|
|
33
|
-
, fSharingMode(info.fSharingMode) {}
|
|
34
|
-
|
|
35
|
-
VkImageTiling fImageTiling;
|
|
36
|
-
VkFormat fFormat;
|
|
37
|
-
VkImageUsageFlags fImageUsageFlags;
|
|
38
|
-
GrVkYcbcrConversionInfo fYcbcrConversionInfo;
|
|
39
|
-
VkSharingMode fSharingMode;
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
GrVkSurfaceInfo GrVkImageSpecToSurfaceInfo(const GrVkImageSpec& vkSpec,
|
|
43
|
-
uint32_t sampleCount,
|
|
44
|
-
uint32_t levelCount,
|
|
45
|
-
skgpu::Protected isProtected);
|
|
46
|
-
|
|
47
|
-
#endif
|