@shopify/react-native-skia 0.1.197 → 0.1.200
Sign up to get free protection for your applications and to get access to all the features.
- package/android/CMakeLists.txt +32 -31
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.cpp +4 -2
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +3 -0
- package/cpp/api/JsiSkShaderFactory.h +4 -4
- package/cpp/api/JsiSkSurfaceFactory.h +2 -1
- package/cpp/rnskia/dom/nodes/JsiShaderNodes.h +2 -2
- package/cpp/skia/include/android/SkCanvasAndroid.h +20 -0
- package/cpp/skia/include/android/SkHeifDecoder.h +43 -0
- package/cpp/skia/include/android/SkSurfaceAndroid.h +50 -0
- package/cpp/skia/include/codec/SkAvifDecoder.h +43 -0
- package/cpp/skia/include/codec/SkBmpDecoder.h +43 -0
- package/cpp/skia/include/codec/SkCodec.h +25 -1
- package/cpp/skia/include/codec/SkGifDecoder.h +43 -0
- package/cpp/skia/include/codec/SkIcoDecoder.h +43 -0
- package/cpp/skia/include/codec/SkJpegDecoder.h +43 -0
- package/cpp/skia/include/codec/SkJpegxlDecoder.h +43 -0
- package/cpp/skia/include/codec/SkPngDecoder.h +43 -0
- package/cpp/skia/include/codec/SkRawDecoder.h +49 -0
- package/cpp/skia/include/codec/SkWbmpDecoder.h +43 -0
- package/cpp/skia/include/codec/SkWebpDecoder.h +43 -0
- package/cpp/skia/include/core/SkBBHFactory.h +5 -1
- package/cpp/skia/include/core/SkBlender.h +0 -2
- package/cpp/skia/include/core/SkCanvas.h +4 -23
- package/cpp/skia/include/core/SkColorFilter.h +14 -1
- package/cpp/skia/include/core/SkColorTable.h +59 -0
- package/cpp/skia/include/core/SkContourMeasure.h +3 -0
- package/cpp/skia/include/core/SkDeferredDisplayList.h +8 -104
- package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +8 -91
- package/cpp/skia/include/core/SkDrawable.h +5 -2
- package/cpp/skia/include/core/SkGraphics.h +7 -19
- package/cpp/skia/include/core/SkImage.h +157 -249
- package/cpp/skia/include/core/SkImageGenerator.h +0 -31
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkPathMeasure.h +3 -3
- package/cpp/skia/include/core/SkPictureRecorder.h +1 -1
- package/cpp/skia/include/core/SkPoint.h +5 -563
- package/cpp/skia/include/core/SkPoint3.h +1 -0
- package/cpp/skia/include/core/SkPromiseImageTexture.h +4 -30
- package/cpp/skia/include/core/SkRect.h +8 -8
- package/cpp/skia/include/core/SkSamplingOptions.h +4 -2
- package/cpp/skia/include/core/SkScalar.h +1 -1
- package/cpp/skia/include/core/SkSerialProcs.h +5 -1
- package/cpp/skia/include/core/SkShader.h +14 -21
- package/cpp/skia/include/core/SkString.h +2 -0
- package/cpp/skia/include/core/SkSurface.h +169 -701
- package/cpp/skia/include/core/SkSurfaceCharacterization.h +8 -256
- package/cpp/skia/include/core/SkTiledImageUtils.h +97 -0
- package/cpp/skia/include/core/SkTypes.h +4 -2
- package/cpp/skia/include/core/SkYUVAPixmaps.h +0 -5
- package/cpp/skia/include/effects/SkGradientShader.h +10 -1
- package/cpp/skia/include/effects/SkImageFilters.h +62 -37
- package/cpp/skia/include/effects/SkPerlinNoiseShader.h +28 -29
- package/cpp/skia/include/effects/SkRuntimeEffect.h +17 -12
- package/cpp/skia/include/gpu/GrBackendSurface.h +12 -39
- package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +6 -0
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +3 -3
- package/cpp/skia/include/gpu/GrDirectContext.h +103 -3
- package/cpp/skia/include/gpu/GrRecordingContext.h +10 -19
- package/cpp/skia/include/gpu/MutableTextureState.h +4 -0
- package/cpp/skia/include/gpu/ganesh/GrExternalTextureGenerator.h +54 -0
- package/cpp/skia/include/gpu/ganesh/SkImageGanesh.h +20 -76
- package/cpp/skia/include/gpu/ganesh/SkSurfaceGanesh.h +217 -0
- package/cpp/skia/include/gpu/ganesh/mtl/SkSurfaceMetal.h +73 -0
- package/cpp/skia/include/gpu/gl/GrGLTypes.h +13 -2
- package/cpp/skia/include/gpu/graphite/BackendSemaphore.h +78 -0
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +1 -0
- package/cpp/skia/include/gpu/graphite/Image.h +277 -0
- package/cpp/skia/include/gpu/graphite/ImageProvider.h +1 -1
- package/cpp/skia/include/gpu/graphite/Recording.h +1 -4
- package/cpp/skia/include/gpu/graphite/Surface.h +81 -0
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +5 -7
- package/cpp/skia/include/gpu/graphite/YUVABackendTextures.h +2 -2
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +23 -8
- package/cpp/skia/include/ports/SkTypeface_fontations.h +21 -0
- package/cpp/skia/include/private/SkGainmapInfo.h +2 -0
- package/cpp/skia/include/private/SkGainmapShader.h +1 -0
- package/cpp/skia/include/private/SkJpegMetadataDecoder.h +19 -1
- package/cpp/skia/include/private/SkPathRef.h +13 -15
- package/cpp/skia/include/private/SkXmp.h +53 -0
- package/cpp/skia/include/private/base/SkFeatures.h +0 -4
- package/cpp/skia/include/private/base/SkFloatingPoint.h +11 -5
- package/cpp/skia/include/private/base/SkPoint_impl.h +569 -0
- package/cpp/skia/include/private/base/SkSpan_impl.h +3 -7
- package/cpp/skia/include/private/base/SkTArray.h +11 -11
- package/cpp/skia/include/private/chromium/GrDeferredDisplayList.h +120 -0
- package/cpp/skia/include/private/chromium/GrDeferredDisplayListRecorder.h +98 -0
- package/cpp/skia/include/private/chromium/GrPromiseImageTexture.h +43 -0
- package/cpp/skia/include/private/chromium/GrSurfaceCharacterization.h +215 -0
- package/cpp/skia/include/private/chromium/GrVkSecondaryCBDrawContext.h +6 -6
- package/cpp/skia/include/private/chromium/SkImageChromium.h +104 -0
- package/cpp/skia/include/private/chromium/Slug.h +7 -3
- package/cpp/skia/include/private/gpu/ganesh/GrContext_Base.h +7 -3
- package/cpp/skia/include/private/gpu/ganesh/GrGLTypesPriv.h +2 -0
- package/cpp/skia/include/private/gpu/ganesh/GrImageContext.h +3 -2
- package/cpp/skia/include/private/gpu/ganesh/GrMtlTypesPriv.h +10 -2
- package/cpp/skia/include/{gpu → private/gpu}/ganesh/GrTextureGenerator.h +2 -13
- package/cpp/skia/include/private/gpu/ganesh/GrTypesPriv.h +1 -1
- package/cpp/skia/include/private/gpu/graphite/DawnTypesPriv.h +7 -0
- package/cpp/skia/include/private/gpu/graphite/MtlGraphiteTypesPriv.h +19 -6
- package/cpp/skia/include/private/gpu/graphite/VulkanGraphiteTypesPriv.h +13 -0
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan.h +0 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_android.h +14 -1
- package/cpp/skia/include/third_party/vulkan/vulkan/vulkan_core.h +999 -79
- package/cpp/skia/modules/skcms/src/Transform_inl.h +36 -236
- package/cpp/skia/modules/skparagraph/include/Paragraph.h +2 -0
- package/cpp/skia/modules/skparagraph/include/ParagraphBuilder.h +16 -0
- package/cpp/skia/modules/skparagraph/include/TextStyle.h +6 -2
- package/cpp/skia/modules/skresources/include/SkResources.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGCircle.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGClipPath.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGContainer.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGDefs.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGEllipse.h +1 -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/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/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/SkSVGG.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGHiddenContainer.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGImage.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGLine.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGLinearGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGMask.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGNode.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPath.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPattern.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGPoly.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRadialGradient.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRect.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +3 -3
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGShape.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGStop.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGText.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGTransformableNode.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +21 -21
- package/cpp/skia/modules/svg/include/SkSVGUse.h +1 -1
- package/cpp/skia/modules/svg/include/SkSVGValue.h +2 -2
- package/cpp/skia/{include/private → src/core}/SkChecksum.h +32 -17
- package/cpp/skia/src/core/SkTHash.h +1 -1
- package/ios/RNSkia-iOS/RNSkMetalCanvasProvider.mm +3 -1
- package/ios/RNSkia-iOS/SkiaMetalRenderer.mm +3 -1
- package/libs/android/arm64-v8a/libskia.a +0 -0
- package/libs/android/arm64-v8a/libskottie.a +0 -0
- package/libs/android/arm64-v8a/libsksg.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/libsksg.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/libsksg.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/libsksg.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/libsksg.xcframework/Info.plist +5 -5
- 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/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/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 -3
- package/cpp/skia/include/effects/SkTableColorFilter.h +0 -29
- package/cpp/skia/include/private/SkOpts_spi.h +0 -23
- package/cpp/skia/include/private/SkSpinlock.h +0 -57
- package/cpp/skia/include/private/chromium/GrSlug.h +0 -16
- package/scripts/install-npm.js +0 -33
package/android/CMakeLists.txt
CHANGED
@@ -47,21 +47,21 @@ add_library(
|
|
47
47
|
"${PROJECT_SOURCE_DIR}/cpp/rnskia-android/RNSkOpenGLCanvasProvider.cpp"
|
48
48
|
"${PROJECT_SOURCE_DIR}/cpp/rnskia-android/SkiaOpenGLRenderer.cpp"
|
49
49
|
|
50
|
-
"${PROJECT_SOURCE_DIR}
|
51
|
-
"${PROJECT_SOURCE_DIR}
|
52
|
-
"${PROJECT_SOURCE_DIR}
|
53
|
-
"${PROJECT_SOURCE_DIR}
|
54
|
-
"${PROJECT_SOURCE_DIR}
|
50
|
+
"${PROJECT_SOURCE_DIR}/../cpp/jsi/JsiHostObject.cpp"
|
51
|
+
"${PROJECT_SOURCE_DIR}/../cpp/jsi/JsiValue.cpp"
|
52
|
+
"${PROJECT_SOURCE_DIR}/../cpp/jsi/RuntimeLifecycleMonitor.cpp"
|
53
|
+
"${PROJECT_SOURCE_DIR}/../cpp/jsi/RuntimeAwareCache.cpp"
|
54
|
+
"${PROJECT_SOURCE_DIR}/../cpp/jsi/JsiPromises.cpp"
|
55
55
|
|
56
|
-
"${PROJECT_SOURCE_DIR}
|
57
|
-
"${PROJECT_SOURCE_DIR}
|
58
|
-
"${PROJECT_SOURCE_DIR}
|
59
|
-
"${PROJECT_SOURCE_DIR}
|
56
|
+
"${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkManager.cpp"
|
57
|
+
"${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkJsView.cpp"
|
58
|
+
"${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkDomView.cpp"
|
59
|
+
"${PROJECT_SOURCE_DIR}/../cpp/rnskia/RNSkDispatchQueue.cpp"
|
60
60
|
|
61
|
-
"${PROJECT_SOURCE_DIR}
|
62
|
-
"${PROJECT_SOURCE_DIR}
|
61
|
+
"${PROJECT_SOURCE_DIR}/../cpp/rnskia/dom/base/DrawingContext.cpp"
|
62
|
+
"${PROJECT_SOURCE_DIR}/../cpp/rnskia/dom/base/ConcatablePaint.cpp"
|
63
63
|
|
64
|
-
"${PROJECT_SOURCE_DIR}
|
64
|
+
"${PROJECT_SOURCE_DIR}/../cpp/api/third_party/CSSColorParser.cpp"
|
65
65
|
|
66
66
|
)
|
67
67
|
|
@@ -75,27 +75,28 @@ target_include_directories(
|
|
75
75
|
"${NODE_MODULES_DIR}/react-native/ReactCommon/react/nativemodule/core"
|
76
76
|
"${NODE_MODULES_DIR}/react-native/ReactAndroid/src/main/java/com/facebook/react/turbomodule/core/jni"
|
77
77
|
|
78
|
-
cpp/skia/include/config/
|
79
|
-
cpp/skia/include/core/
|
80
|
-
cpp/skia/include/effects/
|
81
|
-
cpp/skia/include/utils/
|
82
|
-
cpp/skia/include/pathops/
|
83
|
-
cpp/skia/modules/
|
84
|
-
#cpp/skia/modules/skparagraph/include/
|
85
|
-
cpp/skia/include/
|
86
|
-
cpp/skia
|
87
|
-
|
88
|
-
cpp/api
|
89
|
-
cpp/jsi
|
90
78
|
cpp/jni/include
|
91
79
|
cpp/rnskia-android
|
92
|
-
|
93
|
-
cpp/
|
94
|
-
cpp/
|
95
|
-
cpp/
|
96
|
-
cpp/
|
97
|
-
cpp/
|
98
|
-
cpp/
|
80
|
+
|
81
|
+
../cpp/skia/include/config/
|
82
|
+
../cpp/skia/include/core/
|
83
|
+
../cpp/skia/include/effects/
|
84
|
+
../cpp/skia/include/utils/
|
85
|
+
../cpp/skia/include/pathops/
|
86
|
+
../cpp/skia/modules/
|
87
|
+
#cpp/skia/modules/skparagraph/include/
|
88
|
+
../cpp/skia/include/
|
89
|
+
../cpp/skia
|
90
|
+
|
91
|
+
../cpp/api
|
92
|
+
../cpp/jsi
|
93
|
+
../cpp/rnskia
|
94
|
+
../cpp/rnskia/values
|
95
|
+
../cpp/rnskia/dom
|
96
|
+
../cpp/rnskia/dom/base
|
97
|
+
../cpp/rnskia/dom/nodes
|
98
|
+
../cpp/rnskia/dom/props
|
99
|
+
../cpp/utils
|
99
100
|
|
100
101
|
${libfbjni_include_DIRS}
|
101
102
|
)
|
@@ -4,6 +4,8 @@
|
|
4
4
|
#include <android/native_window.h>
|
5
5
|
#include <android/native_window_jni.h>
|
6
6
|
|
7
|
+
#pragma clang diagnostic push
|
8
|
+
|
7
9
|
#define STENCIL_BUFFER_SIZE 8
|
8
10
|
|
9
11
|
namespace RNSkia {
|
@@ -102,7 +104,7 @@ sk_sp<SkSurface> MakeOffscreenGLSurface(int width, int height) {
|
|
102
104
|
};
|
103
105
|
auto ctx = new OffscreenRenderContext({eglDisplay, eglSurface});
|
104
106
|
|
105
|
-
auto surface =
|
107
|
+
auto surface = SkSurfaces::WrapBackendRenderTarget(
|
106
108
|
grContext.get(), renderTarget, kBottomLeft_GrSurfaceOrigin,
|
107
109
|
kRGBA_8888_SkColorType, nullptr, nullptr,
|
108
110
|
[](void *addr) {
|
@@ -170,7 +172,7 @@ bool SkiaOpenGLRenderer::run(const std::function<void(SkCanvas *)> &cb,
|
|
170
172
|
|
171
173
|
SkSurfaceProps props(0, kUnknown_SkPixelGeometry);
|
172
174
|
|
173
|
-
sk_sp<SkSurface> renderTarget(
|
175
|
+
sk_sp<SkSurface> renderTarget(SkSurfaces::WrapBackendRenderTarget(
|
174
176
|
getThreadDrawingContext()->skContext.get(), backendRT,
|
175
177
|
kBottomLeft_GrSurfaceOrigin, colorType, nullptr, &props));
|
176
178
|
|
@@ -20,7 +20,10 @@
|
|
20
20
|
#include "SkColorSpace.h"
|
21
21
|
#include "SkPicture.h"
|
22
22
|
#include "SkSurface.h"
|
23
|
+
|
24
|
+
#include "include/gpu/GrBackendSurface.h"
|
23
25
|
#include "include/gpu/GrDirectContext.h"
|
26
|
+
#include "include/gpu/ganesh/SkSurfaceGanesh.h"
|
24
27
|
#include "include/gpu/gl/GrGLInterface.h"
|
25
28
|
|
26
29
|
#pragma clang diagnostic pop
|
@@ -169,8 +169,8 @@ public:
|
|
169
169
|
auto tileW = arguments[4].asNumber();
|
170
170
|
auto tileH = arguments[5].asNumber();
|
171
171
|
SkISize size = SkISize::Make(tileW, tileH);
|
172
|
-
sk_sp<SkShader> gradient =
|
173
|
-
baseFreqX, baseFreqY, octaves, seed, &size);
|
172
|
+
sk_sp<SkShader> gradient =
|
173
|
+
SkShaders::MakeTurbulence(baseFreqX, baseFreqY, octaves, seed, &size);
|
174
174
|
return jsi::Object::createFromHostObject(
|
175
175
|
runtime,
|
176
176
|
std::make_shared<JsiSkShader>(getContext(), std::move(gradient)));
|
@@ -184,8 +184,8 @@ public:
|
|
184
184
|
auto tileW = arguments[4].asNumber();
|
185
185
|
auto tileH = arguments[5].asNumber();
|
186
186
|
SkISize size = SkISize::Make(tileW, tileH);
|
187
|
-
sk_sp<SkShader> gradient =
|
188
|
-
baseFreqX, baseFreqY, octaves, seed, &size);
|
187
|
+
sk_sp<SkShader> gradient =
|
188
|
+
SkShaders::MakeFractalNoise(baseFreqX, baseFreqY, octaves, seed, &size);
|
189
189
|
return jsi::Object::createFromHostObject(
|
190
190
|
runtime,
|
191
191
|
std::make_shared<JsiSkShader>(getContext(), std::move(gradient)));
|
@@ -25,7 +25,8 @@ public:
|
|
25
25
|
JSI_HOST_FUNCTION(Make) {
|
26
26
|
auto width = static_cast<int>(arguments[0].asNumber());
|
27
27
|
auto height = static_cast<int>(arguments[1].asNumber());
|
28
|
-
auto
|
28
|
+
auto imageInfo = SkImageInfo::MakeN32Premul(width, height);
|
29
|
+
auto surface = SkSurfaces::Raster(imageInfo);
|
29
30
|
if (surface == nullptr) {
|
30
31
|
return jsi::Value::null();
|
31
32
|
}
|
@@ -256,7 +256,7 @@ public:
|
|
256
256
|
SkISize size = SkISize::Make(_tileWidthProp->value().getAsNumber(),
|
257
257
|
_tileHeightProp->value().getAsNumber());
|
258
258
|
|
259
|
-
context->getShaders()->push(
|
259
|
+
context->getShaders()->push(SkShaders::MakeTurbulence(
|
260
260
|
_freqXProp->value().getAsNumber(), _freqYProp->value().getAsNumber(),
|
261
261
|
_octavesProp->value().getAsNumber(), _seedProp->value().getAsNumber(),
|
262
262
|
&size));
|
@@ -274,7 +274,7 @@ public:
|
|
274
274
|
SkISize size = SkISize::Make(_tileWidthProp->value().getAsNumber(),
|
275
275
|
_tileHeightProp->value().getAsNumber());
|
276
276
|
|
277
|
-
context->getShaders()->push(
|
277
|
+
context->getShaders()->push(SkShaders::MakeFractalNoise(
|
278
278
|
_freqXProp->value().getAsNumber(), _freqYProp->value().getAsNumber(),
|
279
279
|
_octavesProp->value().getAsNumber(), _seedProp->value().getAsNumber(),
|
280
280
|
&size));
|
@@ -0,0 +1,20 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkCanvasAndroid_DEFINED
|
9
|
+
#define SkCanvasAndroid_DEFINED
|
10
|
+
|
11
|
+
class SkCanvas;
|
12
|
+
struct SkIRect;
|
13
|
+
class GrBackendRenderTarget;
|
14
|
+
|
15
|
+
namespace skgpu::ganesh {
|
16
|
+
SkIRect TopLayerBounds(const SkCanvas*);
|
17
|
+
GrBackendRenderTarget TopLayerBackendRenderTarget(const SkCanvas*);
|
18
|
+
}
|
19
|
+
|
20
|
+
#endif
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkHeifDecoder_DEFINED
|
8
|
+
#define SkHeifDecoder_DEFINED
|
9
|
+
|
10
|
+
#include "include/codec/SkCodec.h"
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
|
13
|
+
class SkData;
|
14
|
+
class SkStream;
|
15
|
+
|
16
|
+
#include <memory>
|
17
|
+
|
18
|
+
namespace SkHeifDecoder {
|
19
|
+
|
20
|
+
/** Returns true if this data claims to be a HEIF image. */
|
21
|
+
SK_API bool IsHeif(const void*, size_t);
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Attempts to decode the given bytes as a HEIF.
|
25
|
+
*
|
26
|
+
* If the bytes are not a HEIF, returns nullptr.
|
27
|
+
*
|
28
|
+
* DecodeContext is treated as a SkCodec::SelectionPolicy*
|
29
|
+
*/
|
30
|
+
SK_API std::unique_ptr<SkCodec> Decode(std::unique_ptr<SkStream>,
|
31
|
+
SkCodec::Result*,
|
32
|
+
SkCodecs::DecodeContext = nullptr);
|
33
|
+
SK_API std::unique_ptr<SkCodec> Decode(sk_sp<SkData>,
|
34
|
+
SkCodec::Result*,
|
35
|
+
SkCodecs::DecodeContext = nullptr);
|
36
|
+
|
37
|
+
inline SkCodecs::Decoder Decoder() {
|
38
|
+
return { "heif", IsHeif, Decode };
|
39
|
+
}
|
40
|
+
|
41
|
+
} // namespace SkHeifDecoder
|
42
|
+
|
43
|
+
#endif // SkHeifDecoder_DEFINED
|
@@ -0,0 +1,50 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkSurfaceAndroid_DEFINED
|
9
|
+
#define SkSurfaceAndroid_DEFINED
|
10
|
+
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
#include "include/core/SkSurface.h"
|
13
|
+
#include "include/gpu/GrTypes.h"
|
14
|
+
|
15
|
+
class SkColorSpace;
|
16
|
+
class GrDirectContext;
|
17
|
+
class SkPixmap;
|
18
|
+
struct AHardwareBuffer;
|
19
|
+
|
20
|
+
namespace SkSurfaces {
|
21
|
+
|
22
|
+
/** Private; only to be used by Android Framework.
|
23
|
+
Creates SkSurface from Android hardware buffer.
|
24
|
+
Returned SkSurface takes a reference on the buffer. The ref on the buffer will be released
|
25
|
+
when the SkSurface is destroyed and there is no pending work on the GPU involving the
|
26
|
+
buffer.
|
27
|
+
|
28
|
+
Currently this is only supported for buffers that can be textured as well as rendered to.
|
29
|
+
In other words that must have both AHARDWAREBUFFER_USAGE_GPU_COLOR_OUTPUT and
|
30
|
+
AHARDWAREBUFFER_USAGE_GPU_SAMPLED_IMAGE usage bits.
|
31
|
+
|
32
|
+
@param context GPU context
|
33
|
+
@param hardwareBuffer AHardwareBuffer Android hardware buffer
|
34
|
+
@param colorSpace range of colors; may be nullptr
|
35
|
+
@param surfaceProps LCD striping orientation and setting for device independent
|
36
|
+
fonts; may be nullptr
|
37
|
+
@param fromWindow Whether or not the AHardwareBuffer is part of an Android Window.
|
38
|
+
Currently only used with Vulkan backend.
|
39
|
+
@return created SkSurface, or nullptr
|
40
|
+
*/
|
41
|
+
SK_API sk_sp<SkSurface> WrapAndroidHardwareBuffer(GrDirectContext* context,
|
42
|
+
AHardwareBuffer* hardwareBuffer,
|
43
|
+
GrSurfaceOrigin origin,
|
44
|
+
sk_sp<SkColorSpace> colorSpace,
|
45
|
+
const SkSurfaceProps* surfaceProps,
|
46
|
+
bool fromWindow = false);
|
47
|
+
|
48
|
+
} // namespace SkSurfaces
|
49
|
+
|
50
|
+
#endif
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkAvifDecoder_DEFINED
|
8
|
+
#define SkAvifDecoder_DEFINED
|
9
|
+
|
10
|
+
#include "include/codec/SkCodec.h"
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
|
13
|
+
class SkData;
|
14
|
+
class SkStream;
|
15
|
+
|
16
|
+
#include <memory>
|
17
|
+
|
18
|
+
namespace SkAvifDecoder {
|
19
|
+
|
20
|
+
/** Returns true if this data claims to be a AVIF image. */
|
21
|
+
SK_API bool IsAvif(const void*, size_t);
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Attempts to decode the given bytes as a AVIF.
|
25
|
+
*
|
26
|
+
* If the bytes are not a AVIF, returns nullptr.
|
27
|
+
*
|
28
|
+
* DecodeContext is ignored
|
29
|
+
*/
|
30
|
+
SK_API std::unique_ptr<SkCodec> Decode(std::unique_ptr<SkStream>,
|
31
|
+
SkCodec::Result*,
|
32
|
+
SkCodecs::DecodeContext = nullptr);
|
33
|
+
SK_API std::unique_ptr<SkCodec> Decode(sk_sp<SkData>,
|
34
|
+
SkCodec::Result*,
|
35
|
+
SkCodecs::DecodeContext = nullptr);
|
36
|
+
|
37
|
+
inline SkCodecs::Decoder Decoder() {
|
38
|
+
return { "avif", IsAvif, Decode };
|
39
|
+
}
|
40
|
+
|
41
|
+
} // namespace SkAvifDecoder
|
42
|
+
|
43
|
+
#endif // SkAvifDecoder_DEFINED
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkBmpDecoder_DEFINED
|
8
|
+
#define SkBmpDecoder_DEFINED
|
9
|
+
|
10
|
+
#include "include/codec/SkCodec.h"
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
|
13
|
+
class SkData;
|
14
|
+
class SkStream;
|
15
|
+
|
16
|
+
#include <memory>
|
17
|
+
|
18
|
+
namespace SkBmpDecoder {
|
19
|
+
|
20
|
+
/** Returns true if this data claims to be a BMP image. */
|
21
|
+
SK_API bool IsBmp(const void*, size_t);
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Attempts to decode the given bytes as a BMP.
|
25
|
+
*
|
26
|
+
* If the bytes are not a BMP, returns nullptr.
|
27
|
+
*
|
28
|
+
* DecodeContext is ignored
|
29
|
+
*/
|
30
|
+
SK_API std::unique_ptr<SkCodec> Decode(std::unique_ptr<SkStream>,
|
31
|
+
SkCodec::Result*,
|
32
|
+
SkCodecs::DecodeContext = nullptr);
|
33
|
+
SK_API std::unique_ptr<SkCodec> Decode(sk_sp<SkData>,
|
34
|
+
SkCodec::Result*,
|
35
|
+
SkCodecs::DecodeContext = nullptr);
|
36
|
+
|
37
|
+
inline SkCodecs::Decoder Decoder() {
|
38
|
+
return { "bmp", IsBmp, Decode };
|
39
|
+
}
|
40
|
+
|
41
|
+
} // namespace SkBmpDecoder
|
42
|
+
|
43
|
+
#endif // SkBmpDecoder_DEFINED
|
@@ -23,6 +23,7 @@
|
|
23
23
|
#include <cstddef>
|
24
24
|
#include <functional>
|
25
25
|
#include <memory>
|
26
|
+
#include <string>
|
26
27
|
#include <tuple>
|
27
28
|
#include <vector>
|
28
29
|
|
@@ -41,7 +42,6 @@ enum class Blend;
|
|
41
42
|
enum class DisposalMethod;
|
42
43
|
}
|
43
44
|
|
44
|
-
|
45
45
|
namespace DM {
|
46
46
|
class CodecSrc;
|
47
47
|
} // namespace DM
|
@@ -1012,4 +1012,28 @@ private:
|
|
1012
1012
|
friend class SkIcoCodec;
|
1013
1013
|
friend class SkAndroidCodec; // for fEncodedInfo
|
1014
1014
|
};
|
1015
|
+
|
1016
|
+
namespace SkCodecs {
|
1017
|
+
|
1018
|
+
using DecodeContext = void*;
|
1019
|
+
using IsFormatCallback = bool (*)(const void* data, size_t len);
|
1020
|
+
using MakeFromStreamCallback = std::unique_ptr<SkCodec> (*)(std::unique_ptr<SkStream>,
|
1021
|
+
SkCodec::Result*,
|
1022
|
+
DecodeContext);
|
1023
|
+
|
1024
|
+
struct Decoder {
|
1025
|
+
// By convention, we use all lowercase letters and go with the primary filename extension.
|
1026
|
+
// For example "png", "jpg", "ico", "webp", etc
|
1027
|
+
std::string id;
|
1028
|
+
IsFormatCallback isFormat;
|
1029
|
+
MakeFromStreamCallback makeFromStream;
|
1030
|
+
};
|
1031
|
+
|
1032
|
+
// Add the decoder to the end of a linked list of decoders, which will be used to identify calls to
|
1033
|
+
// SkCodec::MakeFromStream. If a decoder with the same id already exists, this new decoder
|
1034
|
+
// will replace the existing one (in the same position). This is not thread-safe, so make sure all
|
1035
|
+
// initialization is done before the first call.
|
1036
|
+
void Register(Decoder d);
|
1037
|
+
}
|
1038
|
+
|
1015
1039
|
#endif // SkCodec_DEFINED
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkGifDecoder_DEFINED
|
8
|
+
#define SkGifDecoder_DEFINED
|
9
|
+
|
10
|
+
#include "include/codec/SkCodec.h"
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
|
13
|
+
class SkData;
|
14
|
+
class SkStream;
|
15
|
+
|
16
|
+
#include <memory>
|
17
|
+
|
18
|
+
namespace SkGifDecoder {
|
19
|
+
|
20
|
+
/** Returns true if this data claims to be a GIF image. */
|
21
|
+
SK_API bool IsGif(const void*, size_t);
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Attempts to decode the given bytes as a GIF.
|
25
|
+
*
|
26
|
+
* If the bytes are not a GIF, returns nullptr.
|
27
|
+
*
|
28
|
+
* DecodeContext is ignored
|
29
|
+
*/
|
30
|
+
SK_API std::unique_ptr<SkCodec> Decode(std::unique_ptr<SkStream>,
|
31
|
+
SkCodec::Result*,
|
32
|
+
SkCodecs::DecodeContext = nullptr);
|
33
|
+
SK_API std::unique_ptr<SkCodec> Decode(sk_sp<SkData>,
|
34
|
+
SkCodec::Result*,
|
35
|
+
SkCodecs::DecodeContext = nullptr);
|
36
|
+
|
37
|
+
inline SkCodecs::Decoder Decoder() {
|
38
|
+
return { "gif", IsGif, Decode };
|
39
|
+
}
|
40
|
+
|
41
|
+
} // namespace SkGifDecoder
|
42
|
+
|
43
|
+
#endif // SkGifDecoder_DEFINED
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkIcoDecoder_DEFINED
|
8
|
+
#define SkIcoDecoder_DEFINED
|
9
|
+
|
10
|
+
#include "include/codec/SkCodec.h"
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
|
13
|
+
class SkData;
|
14
|
+
class SkStream;
|
15
|
+
|
16
|
+
#include <memory>
|
17
|
+
|
18
|
+
namespace SkIcoDecoder {
|
19
|
+
|
20
|
+
/** Returns true if this data claims to be a ICO image. */
|
21
|
+
SK_API bool IsIco(const void*, size_t);
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Attempts to decode the given bytes as a ICO.
|
25
|
+
*
|
26
|
+
* If the bytes are not a ICO, returns nullptr.
|
27
|
+
*
|
28
|
+
* DecodeContext is ignored
|
29
|
+
*/
|
30
|
+
SK_API std::unique_ptr<SkCodec> Decode(std::unique_ptr<SkStream>,
|
31
|
+
SkCodec::Result*,
|
32
|
+
SkCodecs::DecodeContext = nullptr);
|
33
|
+
SK_API std::unique_ptr<SkCodec> Decode(sk_sp<SkData>,
|
34
|
+
SkCodec::Result*,
|
35
|
+
SkCodecs::DecodeContext = nullptr);
|
36
|
+
|
37
|
+
inline SkCodecs::Decoder Decoder() {
|
38
|
+
return { "ico", IsIco, Decode };
|
39
|
+
}
|
40
|
+
|
41
|
+
} // namespace SkIcoDecoder
|
42
|
+
|
43
|
+
#endif // SkIcoDecoder_DEFINED
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkJpegDecoder_DEFINED
|
8
|
+
#define SkJpegDecoder_DEFINED
|
9
|
+
|
10
|
+
#include "include/codec/SkCodec.h"
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
|
13
|
+
class SkData;
|
14
|
+
class SkStream;
|
15
|
+
|
16
|
+
#include <memory>
|
17
|
+
|
18
|
+
namespace SkJpegDecoder {
|
19
|
+
|
20
|
+
/** Returns true if this data claims to be a JPEG image. */
|
21
|
+
SK_API bool IsJpeg(const void*, size_t);
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Attempts to decode the given bytes as a JPEG.
|
25
|
+
*
|
26
|
+
* If the bytes are not a JPEG, returns nullptr.
|
27
|
+
*
|
28
|
+
* DecodeContext is ignored
|
29
|
+
*/
|
30
|
+
SK_API std::unique_ptr<SkCodec> Decode(std::unique_ptr<SkStream>,
|
31
|
+
SkCodec::Result*,
|
32
|
+
SkCodecs::DecodeContext = nullptr);
|
33
|
+
SK_API std::unique_ptr<SkCodec> Decode(sk_sp<SkData>,
|
34
|
+
SkCodec::Result*,
|
35
|
+
SkCodecs::DecodeContext = nullptr);
|
36
|
+
|
37
|
+
inline SkCodecs::Decoder Decoder() {
|
38
|
+
return { "jpeg", IsJpeg, Decode };
|
39
|
+
}
|
40
|
+
|
41
|
+
} // namespace SkJpegDecoder
|
42
|
+
|
43
|
+
#endif // SkJpegDecoder_DEFINED
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkJpegxlDecoder_DEFINED
|
8
|
+
#define SkJpegxlDecoder_DEFINED
|
9
|
+
|
10
|
+
#include "include/codec/SkCodec.h"
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
|
13
|
+
class SkData;
|
14
|
+
class SkStream;
|
15
|
+
|
16
|
+
#include <memory>
|
17
|
+
|
18
|
+
namespace SkJpegxlDecoder {
|
19
|
+
|
20
|
+
/** Returns true if this data claims to be a JPEGXL image. */
|
21
|
+
SK_API bool IsJpegxl(const void*, size_t);
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Attempts to decode the given bytes as a JPEGXL.
|
25
|
+
*
|
26
|
+
* If the bytes are not a JPEGXL, returns nullptr.
|
27
|
+
*
|
28
|
+
* DecodeContext is ignored
|
29
|
+
*/
|
30
|
+
SK_API std::unique_ptr<SkCodec> Decode(std::unique_ptr<SkStream>,
|
31
|
+
SkCodec::Result*,
|
32
|
+
SkCodecs::DecodeContext = nullptr);
|
33
|
+
SK_API std::unique_ptr<SkCodec> Decode(sk_sp<SkData>,
|
34
|
+
SkCodec::Result*,
|
35
|
+
SkCodecs::DecodeContext = nullptr);
|
36
|
+
|
37
|
+
inline SkCodecs::Decoder Decoder() {
|
38
|
+
return { "jpegxl", IsJpegxl, Decode };
|
39
|
+
}
|
40
|
+
|
41
|
+
} // namespace SkJpegxlDecoder
|
42
|
+
|
43
|
+
#endif // SkJpegxlDecoder_DEFINED
|
@@ -0,0 +1,43 @@
|
|
1
|
+
/*
|
2
|
+
* Copyright 2023 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 SkPngDecoder_DEFINED
|
8
|
+
#define SkPngDecoder_DEFINED
|
9
|
+
|
10
|
+
#include "include/codec/SkCodec.h"
|
11
|
+
#include "include/core/SkRefCnt.h"
|
12
|
+
|
13
|
+
class SkData;
|
14
|
+
class SkStream;
|
15
|
+
|
16
|
+
#include <memory>
|
17
|
+
|
18
|
+
namespace SkPngDecoder {
|
19
|
+
|
20
|
+
/** Returns true if this data claims to be a PNG image. */
|
21
|
+
SK_API bool IsPng(const void*, size_t);
|
22
|
+
|
23
|
+
/**
|
24
|
+
* Attempts to decode the given bytes as a PNG.
|
25
|
+
*
|
26
|
+
* If the bytes are not a PNG, returns nullptr.
|
27
|
+
*
|
28
|
+
* DecodeContext, if non-null, is expected to be a SkPngChunkReader*
|
29
|
+
*/
|
30
|
+
SK_API std::unique_ptr<SkCodec> Decode(std::unique_ptr<SkStream>,
|
31
|
+
SkCodec::Result*,
|
32
|
+
SkCodecs::DecodeContext = nullptr);
|
33
|
+
SK_API std::unique_ptr<SkCodec> Decode(sk_sp<SkData>,
|
34
|
+
SkCodec::Result*,
|
35
|
+
SkCodecs::DecodeContext = nullptr);
|
36
|
+
|
37
|
+
inline SkCodecs::Decoder Decoder() {
|
38
|
+
return { "png", IsPng, Decode };
|
39
|
+
}
|
40
|
+
|
41
|
+
} // namespace SkPngDecoder
|
42
|
+
|
43
|
+
#endif // SkPngDecoder_DEFINED
|