@shopify/react-native-skia 0.1.234 → 0.1.236
Sign up to get free protection for your applications and to get access to all the features.
- 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
|