@shopify/react-native-skia 0.1.129 → 0.1.130
Sign up to get free protection for your applications and to get access to all the features.
- package/android/cpp/rnskia-android/SkiaOpenGLRenderer.h +1 -0
- package/cpp/api/JsiSkRuntimeEffect.h +7 -9
- package/cpp/api/JsiSkVertices.h +0 -2
- package/cpp/rnskia/values/RNSkValue.h +1 -1
- package/cpp/skia/include/codec/SkCodec.h +7 -1
- package/cpp/skia/include/core/SkAlphaType.h +45 -0
- package/cpp/skia/include/core/SkBitmap.h +4 -2
- package/cpp/skia/include/core/SkCanvas.h +31 -20
- package/cpp/skia/include/core/SkColor.h +1 -1
- package/cpp/skia/include/core/SkColorFilter.h +1 -0
- package/cpp/skia/include/core/SkColorType.h +66 -0
- package/cpp/skia/include/core/SkDeferredDisplayListRecorder.h +1 -1
- package/cpp/skia/include/core/SkDrawable.h +7 -0
- package/cpp/skia/include/core/SkEncodedImageFormat.h +1 -0
- package/cpp/skia/include/core/SkFont.h +4 -3
- package/cpp/skia/include/core/SkFontArguments.h +33 -1
- package/cpp/skia/include/core/SkGraphics.h +13 -0
- package/cpp/skia/include/core/SkImage.h +67 -22
- package/cpp/skia/include/core/SkImageEncoder.h +0 -3
- package/cpp/skia/include/core/SkImageGenerator.h +4 -3
- package/cpp/skia/include/core/SkImageInfo.h +35 -142
- package/cpp/skia/include/core/SkMesh.h +303 -0
- package/cpp/skia/include/core/SkMilestone.h +1 -1
- package/cpp/skia/include/core/SkOpenTypeSVGDecoder.h +30 -0
- package/cpp/skia/include/core/SkPaint.h +4 -19
- package/cpp/skia/include/core/SkPath.h +20 -33
- package/cpp/skia/include/core/SkPathBuilder.h +1 -6
- package/cpp/skia/include/core/SkPixelRef.h +1 -1
- package/cpp/skia/include/core/SkPixmap.h +3 -2
- package/cpp/skia/include/core/SkRSXform.h +1 -1
- package/cpp/skia/include/core/SkSamplingOptions.h +16 -5
- package/cpp/skia/include/core/SkSpan.h +5 -5
- package/cpp/skia/include/core/SkString.h +5 -8
- package/cpp/skia/include/core/SkSurface.h +21 -0
- package/cpp/skia/include/core/SkTypeface.h +20 -4
- package/cpp/skia/include/core/SkTypes.h +9 -5
- package/cpp/skia/include/effects/SkGradientShader.h +9 -18
- package/cpp/skia/include/effects/SkRuntimeEffect.h +16 -12
- package/cpp/skia/include/gpu/GpuTypes.h +32 -0
- package/cpp/skia/include/gpu/GrBackendSemaphore.h +1 -1
- package/cpp/skia/include/gpu/GrBackendSurface.h +6 -5
- package/cpp/skia/include/gpu/GrBackendSurfaceMutableState.h +1 -1
- package/cpp/skia/include/gpu/GrContextOptions.h +11 -20
- package/cpp/skia/include/gpu/GrContextThreadSafeProxy.h +7 -0
- package/cpp/skia/include/gpu/GrDirectContext.h +16 -11
- package/cpp/skia/include/gpu/GrDriverBugWorkaroundsAutogen.h +0 -2
- package/cpp/skia/include/gpu/GrRecordingContext.h +14 -7
- package/cpp/skia/include/gpu/GrSurfaceInfo.h +6 -6
- package/cpp/skia/include/gpu/dawn/GrDawnTypes.h +1 -1
- package/cpp/skia/include/gpu/gl/GrGLFunctions.h +3 -1
- package/cpp/skia/include/gpu/gl/GrGLInterface.h +2 -2
- package/cpp/skia/include/gpu/graphite/BackendTexture.h +64 -0
- package/cpp/skia/include/gpu/graphite/Context.h +124 -0
- package/cpp/skia/include/gpu/graphite/GraphiteTypes.h +71 -0
- package/cpp/skia/include/gpu/graphite/Recorder.h +104 -0
- package/cpp/skia/include/gpu/graphite/Recording.h +39 -0
- package/cpp/skia/include/gpu/graphite/SkStuff.h +47 -0
- package/cpp/skia/include/gpu/graphite/TextureInfo.h +91 -0
- package/cpp/skia/include/gpu/graphite/mtl/MtlBackendContext.h +24 -0
- package/cpp/skia/include/gpu/graphite/mtl/MtlTypes.h +68 -0
- package/cpp/skia/include/gpu/mock/GrMockTypes.h +1 -2
- package/cpp/skia/include/ports/SkCFObject.h +0 -4
- package/cpp/skia/include/ports/SkTypeface_win.h +2 -2
- package/cpp/skia/include/private/{GrSingleOwner.h → SingleOwner.h} +17 -10
- package/cpp/skia/include/private/SkChecksum.h +11 -0
- package/cpp/skia/include/private/SkEncodedInfo.h +22 -5
- package/cpp/skia/include/private/SkFloatingPoint.h +0 -53
- package/cpp/skia/include/private/SkImageInfoPriv.h +8 -2
- package/cpp/skia/include/private/SkMacros.h +13 -18
- package/cpp/skia/include/private/SkMutex.h +8 -0
- package/cpp/skia/include/private/SkPathRef.h +2 -16
- package/cpp/skia/include/private/SkSLDefines.h +9 -1
- package/cpp/skia/include/private/SkSLIRNode.h +6 -5
- package/cpp/skia/include/private/SkSLLayout.h +11 -10
- package/cpp/skia/include/private/SkSLModifiers.h +4 -3
- package/cpp/skia/include/private/SkSLProgramElement.h +2 -2
- package/cpp/skia/include/private/SkSLProgramKind.h +8 -5
- package/cpp/skia/include/private/SkSLStatement.h +2 -3
- package/cpp/skia/include/private/SkSLString.h +17 -56
- package/cpp/skia/include/private/SkSLSymbol.h +4 -4
- package/cpp/skia/include/private/SkShadowFlags.h +3 -1
- package/cpp/skia/include/private/SkStringView.h +47 -0
- package/cpp/skia/include/private/SkTArray.h +4 -3
- package/cpp/skia/include/private/SkTHash.h +66 -24
- package/cpp/skia/include/private/SkTLogic.h +2 -32
- package/cpp/skia/include/private/SkTemplates.h +2 -2
- package/cpp/skia/include/private/SkThreadAnnotations.h +4 -4
- package/cpp/skia/include/private/SkVx.h +28 -28
- package/cpp/skia/include/private/chromium/GrSlug.h +40 -3
- package/cpp/skia/include/private/chromium/SkChromeRemoteGlyphCache.h +12 -6
- package/cpp/skia/include/private/{GrContext_Base.h → gpu/ganesh/GrContext_Base.h} +7 -0
- package/cpp/skia/include/private/{GrD3DTypesMinimal.h → gpu/ganesh/GrD3DTypesMinimal.h} +0 -0
- package/cpp/skia/include/private/{GrDawnTypesPriv.h → gpu/ganesh/GrDawnTypesPriv.h} +0 -0
- package/cpp/skia/include/private/{GrGLTypesPriv.h → gpu/ganesh/GrGLTypesPriv.h} +1 -0
- package/cpp/skia/include/private/{GrImageContext.h → gpu/ganesh/GrImageContext.h} +4 -4
- package/cpp/skia/include/private/{GrMockTypesPriv.h → gpu/ganesh/GrMockTypesPriv.h} +0 -0
- package/cpp/skia/include/private/{GrMtlTypesPriv.h → gpu/ganesh/GrMtlTypesPriv.h} +0 -0
- package/cpp/skia/include/private/{GrTypesPriv.h → gpu/ganesh/GrTypesPriv.h} +25 -367
- package/cpp/skia/include/private/{GrVkTypesPriv.h → gpu/ganesh/GrVkTypesPriv.h} +0 -0
- package/cpp/skia/include/private/gpu/graphite/MtlTypesPriv.h +74 -0
- package/cpp/skia/include/sksl/DSL.h +4 -0
- package/cpp/skia/include/sksl/DSLBlock.h +8 -3
- package/cpp/skia/include/sksl/DSLCase.h +6 -6
- package/cpp/skia/include/sksl/DSLCore.h +89 -78
- package/cpp/skia/include/sksl/DSLExpression.h +78 -45
- package/cpp/skia/include/sksl/DSLFunction.h +23 -18
- package/cpp/skia/include/sksl/DSLLayout.h +14 -16
- package/cpp/skia/include/sksl/DSLModifiers.h +7 -5
- package/cpp/skia/include/sksl/DSLRuntimeEffects.h +1 -1
- package/cpp/skia/include/sksl/DSLStatement.h +16 -10
- package/cpp/skia/include/sksl/DSLSymbols.h +7 -7
- package/cpp/skia/include/sksl/DSLType.h +27 -23
- package/cpp/skia/include/sksl/DSLVar.h +72 -61
- package/cpp/skia/include/sksl/SkSLErrorReporter.h +12 -49
- package/cpp/skia/include/sksl/SkSLOperator.h +151 -0
- package/cpp/skia/include/sksl/SkSLPosition.h +102 -0
- package/cpp/skia/include/svg/SkSVGCanvas.h +5 -1
- package/cpp/skia/include/utils/SkAnimCodecPlayer.h +7 -0
- package/cpp/skia/include/utils/SkCamera.h +2 -0
- package/cpp/skia/include/utils/SkCanvasStateUtils.h +4 -1
- package/cpp/skia/include/utils/SkCustomTypeface.h +6 -4
- package/cpp/skia/include/utils/SkNWayCanvas.h +34 -0
- package/cpp/skia/include/utils/SkNullCanvas.h +5 -1
- package/cpp/skia/include/utils/SkOrderedFontMgr.h +12 -0
- package/cpp/skia/include/utils/SkPaintFilterCanvas.h +30 -1
- package/cpp/skia/include/utils/SkParse.h +2 -0
- package/cpp/skia/include/utils/SkShadowUtils.h +3 -2
- package/cpp/skia/include/utils/SkTextUtils.h +8 -4
- package/cpp/skia/modules/svg/include/SkSVGAttributeParser.h +27 -1
- package/cpp/skia/modules/svg/include/SkSVGDOM.h +4 -0
- package/cpp/skia/modules/svg/include/SkSVGOpenTypeSVGDecoder.h +32 -0
- package/cpp/skia/modules/svg/include/SkSVGRenderContext.h +3 -3
- package/cpp/skia/modules/svg/include/SkSVGSVG.h +2 -0
- package/cpp/skia/modules/svg/include/SkSVGTypes.h +48 -9
- package/ios/RNSkia-iOS/PlatformContext.h +1 -1
- package/ios/RNSkia-iOS/RNSkDrawViewImpl.mm +1 -0
- package/ios/RNSkia-iOS/SkiaDrawView.mm +1 -1
- package/lib/commonjs/renderer/components/shaders/Shader.js +1 -2
- package/lib/commonjs/renderer/components/shaders/Shader.js.map +1 -1
- package/lib/module/renderer/components/shaders/Shader.js +1 -2
- package/lib/module/renderer/components/shaders/Shader.js.map +1 -1
- package/lib/typescript/src/renderer/components/shaders/Shader.d.ts +0 -1
- package/lib/typescript/src/skia/types/RuntimeEffect/RuntimeEffect.d.ts +2 -4
- package/libs/android/arm64-v8a/libskia.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/libsvg.a +0 -0
- package/libs/android/x86/libskia.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/libsvg.a +0 -0
- package/libs/ios/libskia.xcframework/Info.plist +5 -5
- 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/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/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 +2 -2
- package/src/renderer/components/shaders/Shader.tsx +1 -3
- package/src/skia/types/RuntimeEffect/RuntimeEffect.ts +1 -8
- package/cpp/skia/include/core/SkCustomMesh.h +0 -202
- package/cpp/skia/include/core/SkStringView.h +0 -185
- package/cpp/skia/include/private/SkPaintParamsKey.h +0 -110
- package/cpp/skia/include/private/SkShaderCodeDictionary.h +0 -63
- package/cpp/skia/include/private/SkTOptional.h +0 -362
@@ -8,41 +8,52 @@
|
|
8
8
|
#ifndef SkImage_DEFINED
|
9
9
|
#define SkImage_DEFINED
|
10
10
|
|
11
|
-
#include "include/core/SkImageEncoder.h"
|
12
11
|
#include "include/core/SkImageInfo.h"
|
13
12
|
#include "include/core/SkRefCnt.h"
|
14
13
|
#include "include/core/SkSamplingOptions.h"
|
15
14
|
#include "include/core/SkScalar.h"
|
16
15
|
#include "include/core/SkShader.h"
|
17
16
|
#include "include/core/SkTileMode.h"
|
18
|
-
#include "include/private/SkTOptional.h"
|
19
17
|
#if SK_SUPPORT_GPU
|
20
18
|
#include "include/gpu/GrTypes.h"
|
21
19
|
#endif
|
20
|
+
#if SK_GRAPHITE_ENABLED
|
21
|
+
#include "include/gpu/graphite/GraphiteTypes.h"
|
22
|
+
#endif
|
22
23
|
#include <functional> // std::function
|
24
|
+
#include <optional>
|
23
25
|
|
24
26
|
#if defined(SK_BUILD_FOR_ANDROID) && __ANDROID_API__ >= 26
|
25
27
|
#include <android/hardware_buffer.h>
|
26
28
|
#endif
|
27
29
|
|
28
|
-
class
|
30
|
+
class GrBackendFormat;
|
31
|
+
class GrBackendTexture;
|
32
|
+
class GrContextThreadSafeProxy;
|
33
|
+
class GrDirectContext;
|
34
|
+
class GrRecordingContext;
|
35
|
+
class GrYUVABackendTextureInfo;
|
36
|
+
class GrYUVABackendTextures;
|
29
37
|
class SkCanvas;
|
38
|
+
class SkData;
|
30
39
|
class SkImage;
|
31
40
|
class SkImageFilter;
|
32
41
|
class SkImageGenerator;
|
33
42
|
class SkMipmap;
|
34
43
|
class SkPaint;
|
35
44
|
class SkPicture;
|
45
|
+
class SkPixmap;
|
36
46
|
class SkPromiseImageTexture;
|
37
47
|
class SkSurface;
|
38
48
|
class SkYUVAPixmaps;
|
39
|
-
|
40
|
-
class
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
class
|
45
|
-
|
49
|
+
|
50
|
+
enum class SkEncodedImageFormat;
|
51
|
+
|
52
|
+
#if SK_GRAPHITE_ENABLED
|
53
|
+
namespace skgpu::graphite {
|
54
|
+
class Recorder;
|
55
|
+
};
|
56
|
+
#endif
|
46
57
|
|
47
58
|
/** \class SkImage
|
48
59
|
SkImage describes a two dimensional array of pixels to draw. The pixels may be
|
@@ -184,7 +195,7 @@ public:
|
|
184
195
|
example: https://fiddle.skia.org/c/@Image_MakeFromEncoded
|
185
196
|
*/
|
186
197
|
static sk_sp<SkImage> MakeFromEncoded(sk_sp<SkData> encoded,
|
187
|
-
|
198
|
+
std::optional<SkAlphaType> alphaType = std::nullopt);
|
188
199
|
|
189
200
|
/*
|
190
201
|
* Experimental:
|
@@ -264,7 +275,7 @@ public:
|
|
264
275
|
@param width width of full SkImage
|
265
276
|
@param height height of full SkImage
|
266
277
|
@param type type of compression used
|
267
|
-
@param
|
278
|
+
@param mipmapped does 'data' contain data for all the mipmap levels?
|
268
279
|
@param isProtected do the contents of 'data' require DRM protection (on Vulkan)?
|
269
280
|
@return created SkImage, or nullptr
|
270
281
|
*/
|
@@ -272,7 +283,7 @@ public:
|
|
272
283
|
sk_sp<SkData> data,
|
273
284
|
int width, int height,
|
274
285
|
CompressionType type,
|
275
|
-
GrMipmapped
|
286
|
+
GrMipmapped mipmapped = GrMipmapped::kNo,
|
276
287
|
GrProtected isProtected = GrProtected::kNo);
|
277
288
|
|
278
289
|
/** User function called when supplied texture may be deleted.
|
@@ -390,12 +401,21 @@ public:
|
|
390
401
|
@param colorSpace range of colors; may be nullptr
|
391
402
|
@return created SkImage, or nullptr
|
392
403
|
*/
|
404
|
+
static sk_sp<SkImage> MakeFromAdoptedTexture(GrRecordingContext* context,
|
405
|
+
const GrBackendTexture& backendTexture,
|
406
|
+
GrSurfaceOrigin textureOrigin,
|
407
|
+
SkColorType colorType);
|
393
408
|
static sk_sp<SkImage> MakeFromAdoptedTexture(GrRecordingContext* context,
|
394
409
|
const GrBackendTexture& backendTexture,
|
395
410
|
GrSurfaceOrigin textureOrigin,
|
396
411
|
SkColorType colorType,
|
397
|
-
SkAlphaType alphaType
|
398
|
-
|
412
|
+
SkAlphaType alphaType);
|
413
|
+
static sk_sp<SkImage> MakeFromAdoptedTexture(GrRecordingContext* context,
|
414
|
+
const GrBackendTexture& backendTexture,
|
415
|
+
GrSurfaceOrigin textureOrigin,
|
416
|
+
SkColorType colorType,
|
417
|
+
SkAlphaType alphaType,
|
418
|
+
sk_sp<SkColorSpace> colorSpace);
|
399
419
|
|
400
420
|
/** Creates an SkImage from YUV[A] planar textures. This requires that the textures stay valid
|
401
421
|
for the lifetime of the image. The ReleaseContext can be used to know when it is safe to
|
@@ -442,7 +462,7 @@ public:
|
|
442
462
|
*/
|
443
463
|
static sk_sp<SkImage> MakeFromYUVAPixmaps(GrRecordingContext* context,
|
444
464
|
const SkYUVAPixmaps& pixmaps,
|
445
|
-
|
465
|
+
GrMipmapped buildMips = GrMipmapped::kNo,
|
446
466
|
bool limitToMaxTextureSize = false,
|
447
467
|
sk_sp<SkColorSpace> imageColorSpace = nullptr);
|
448
468
|
|
@@ -472,7 +492,7 @@ public:
|
|
472
492
|
@param gpuContextProxy the thread-safe proxy of the gpu context. required.
|
473
493
|
@param backendFormat format of promised gpu texture
|
474
494
|
@param dimensions width & height of promised gpu texture
|
475
|
-
@param
|
495
|
+
@param mipmapped mip mapped state of promised gpu texture
|
476
496
|
@param origin surface origin of promised gpu texture
|
477
497
|
@param colorType color type of promised gpu texture
|
478
498
|
@param alphaType alpha type of promised gpu texture
|
@@ -485,7 +505,7 @@ public:
|
|
485
505
|
static sk_sp<SkImage> MakePromiseTexture(sk_sp<GrContextThreadSafeProxy> gpuContextProxy,
|
486
506
|
const GrBackendFormat& backendFormat,
|
487
507
|
SkISize dimensions,
|
488
|
-
GrMipmapped
|
508
|
+
GrMipmapped mipmapped,
|
489
509
|
GrSurfaceOrigin origin,
|
490
510
|
SkColorType colorType,
|
491
511
|
SkAlphaType alphaType,
|
@@ -722,7 +742,7 @@ public:
|
|
722
742
|
*/
|
723
743
|
bool peekPixels(SkPixmap* pixmap) const;
|
724
744
|
|
725
|
-
/** Returns true the contents of SkImage was created on or uploaded to GPU memory,
|
745
|
+
/** Returns true if the contents of SkImage was created on or uploaded to GPU memory,
|
726
746
|
and is available as a GPU texture.
|
727
747
|
|
728
748
|
@return true if SkImage is a GPU texture
|
@@ -1101,14 +1121,14 @@ public:
|
|
1101
1121
|
#if SK_SUPPORT_GPU
|
1102
1122
|
/** Returns SkImage backed by GPU texture associated with context. Returned SkImage is
|
1103
1123
|
compatible with SkSurface created with dstColorSpace. The returned SkImage respects
|
1104
|
-
|
1124
|
+
mipmapped setting; if mipmapped equals GrMipmapped::kYes, the backing texture
|
1105
1125
|
allocates mip map levels.
|
1106
1126
|
|
1107
|
-
The
|
1127
|
+
The mipmapped parameter is effectively treated as kNo if MIP maps are not supported by the
|
1108
1128
|
GPU.
|
1109
1129
|
|
1110
1130
|
Returns original SkImage if the image is already texture-backed, the context matches, and
|
1111
|
-
|
1131
|
+
mipmapped is compatible with the backing GPU texture. SkBudgeted is ignored in this case.
|
1112
1132
|
|
1113
1133
|
Returns nullptr if context is nullptr, or if SkImage was created with another
|
1114
1134
|
GrDirectContext.
|
@@ -1122,6 +1142,31 @@ public:
|
|
1122
1142
|
sk_sp<SkImage> makeTextureImage(GrDirectContext*,
|
1123
1143
|
GrMipmapped = GrMipmapped::kNo,
|
1124
1144
|
SkBudgeted = SkBudgeted::kYes) const;
|
1145
|
+
#endif
|
1146
|
+
#ifdef SK_GRAPHITE_ENABLED
|
1147
|
+
/** Graphite version of makeTextureImage.
|
1148
|
+
|
1149
|
+
Returns SkImage backed by GPU texture, using Recorder for creation and uploads if necessary.
|
1150
|
+
The returned SkImage respects mipmapped setting for non-GPU SkImages; if mipmapped
|
1151
|
+
equals GrMipmapped::kYes, the backing texture allocates mip map levels.
|
1152
|
+
|
1153
|
+
It is assumed that MIP maps are always supported by the GPU.
|
1154
|
+
|
1155
|
+
Returns original SkImage if the image is already texture-backed, the recorder matches, and
|
1156
|
+
mipmapped is compatible with the backing GPU texture. If mipmapped is not compatible,
|
1157
|
+
it will return nullptr.
|
1158
|
+
|
1159
|
+
Returns nullptr if recorder is nullptr, or if SkImage was created with another
|
1160
|
+
Recorder and work on that Recorder has not been submitted.
|
1161
|
+
|
1162
|
+
@param Recorder the Recorder to use for storing commands
|
1163
|
+
@param Mipmapped whether created SkImage texture must allocate mip map levels
|
1164
|
+
@return created SkImage, or nullptr
|
1165
|
+
*/
|
1166
|
+
sk_sp<SkImage> makeTextureImage(skgpu::graphite::Recorder*,
|
1167
|
+
skgpu::graphite::Mipmapped = skgpu::graphite::Mipmapped::kNo,
|
1168
|
+
SkBudgeted = SkBudgeted::kYes) const;
|
1169
|
+
|
1125
1170
|
#endif
|
1126
1171
|
|
1127
1172
|
/** Returns raster image or lazy image. Copies SkImage backed by GPU texture into
|
@@ -8,9 +8,6 @@
|
|
8
8
|
#ifndef SkImageEncoder_DEFINED
|
9
9
|
#define SkImageEncoder_DEFINED
|
10
10
|
|
11
|
-
// TODO: update clients so we can remove this include, they should IWYU
|
12
|
-
#include "include/core/SkBitmap.h"
|
13
|
-
|
14
11
|
#include "include/core/SkData.h"
|
15
12
|
#include "include/core/SkEncodedImageFormat.h"
|
16
13
|
#include "include/core/SkPixmap.h"
|
@@ -13,7 +13,8 @@
|
|
13
13
|
#include "include/core/SkImage.h"
|
14
14
|
#include "include/core/SkImageInfo.h"
|
15
15
|
#include "include/core/SkYUVAPixmaps.h"
|
16
|
-
|
16
|
+
|
17
|
+
#include <optional>
|
17
18
|
|
18
19
|
class GrRecordingContext;
|
19
20
|
class GrSurfaceProxyView;
|
@@ -158,7 +159,7 @@ public:
|
|
158
159
|
* kOpaque_SkAlphaType is not supported, and will return NULL.
|
159
160
|
*/
|
160
161
|
static std::unique_ptr<SkImageGenerator> MakeFromEncoded(
|
161
|
-
sk_sp<SkData>,
|
162
|
+
sk_sp<SkData>, std::optional<SkAlphaType> = std::nullopt);
|
162
163
|
|
163
164
|
/** Return a new image generator backed by the specified picture. If the size is empty or
|
164
165
|
* the picture is NULL, this returns NULL.
|
@@ -204,7 +205,7 @@ private:
|
|
204
205
|
// It is called from NewFromEncoded() after it has checked for any runtime factory.
|
205
206
|
// The SkData will never be NULL, as that will have been checked by NewFromEncoded.
|
206
207
|
static std::unique_ptr<SkImageGenerator> MakeFromEncodedImpl(sk_sp<SkData>,
|
207
|
-
|
208
|
+
std::optional<SkAlphaType>);
|
208
209
|
|
209
210
|
SkImageGenerator(SkImageGenerator&&) = delete;
|
210
211
|
SkImageGenerator(const SkImageGenerator&) = delete;
|
@@ -8,9 +8,11 @@
|
|
8
8
|
#ifndef SkImageInfo_DEFINED
|
9
9
|
#define SkImageInfo_DEFINED
|
10
10
|
|
11
|
-
#include "include/core/
|
11
|
+
#include "include/core/SkAlphaType.h"
|
12
|
+
#include "include/core/SkColorType.h"
|
12
13
|
#include "include/core/SkMath.h"
|
13
14
|
#include "include/core/SkRect.h"
|
15
|
+
#include "include/core/SkRefCnt.h"
|
14
16
|
#include "include/core/SkSize.h"
|
15
17
|
|
16
18
|
#include "include/private/SkTFitsIn.h"
|
@@ -18,93 +20,7 @@
|
|
18
20
|
|
19
21
|
class SkReadBuffer;
|
20
22
|
class SkWriteBuffer;
|
21
|
-
|
22
|
-
/** \enum SkImageInfo::SkAlphaType
|
23
|
-
Describes how to interpret the alpha component of a pixel. A pixel may
|
24
|
-
be opaque, or alpha, describing multiple levels of transparency.
|
25
|
-
|
26
|
-
In simple blending, alpha weights the draw color and the destination
|
27
|
-
color to create a new color. If alpha describes a weight from zero to one:
|
28
|
-
|
29
|
-
new color = draw color * alpha + destination color * (1 - alpha)
|
30
|
-
|
31
|
-
In practice alpha is encoded in two or more bits, where 1.0 equals all bits set.
|
32
|
-
|
33
|
-
RGB may have alpha included in each component value; the stored
|
34
|
-
value is the original RGB multiplied by alpha. Premultiplied color
|
35
|
-
components improve performance.
|
36
|
-
*/
|
37
|
-
enum SkAlphaType : int {
|
38
|
-
kUnknown_SkAlphaType, //!< uninitialized
|
39
|
-
kOpaque_SkAlphaType, //!< pixel is opaque
|
40
|
-
kPremul_SkAlphaType, //!< pixel components are premultiplied by alpha
|
41
|
-
kUnpremul_SkAlphaType, //!< pixel components are independent of alpha
|
42
|
-
kLastEnum_SkAlphaType = kUnpremul_SkAlphaType, //!< last valid value
|
43
|
-
};
|
44
|
-
|
45
|
-
/** Returns true if SkAlphaType equals kOpaque_SkAlphaType.
|
46
|
-
|
47
|
-
kOpaque_SkAlphaType is a hint that the SkColorType is opaque, or that all
|
48
|
-
alpha values are set to their 1.0 equivalent. If SkAlphaType is
|
49
|
-
kOpaque_SkAlphaType, and SkColorType is not opaque, then the result of
|
50
|
-
drawing any pixel with a alpha value less than 1.0 is undefined.
|
51
|
-
*/
|
52
|
-
static inline bool SkAlphaTypeIsOpaque(SkAlphaType at) {
|
53
|
-
return kOpaque_SkAlphaType == at;
|
54
|
-
}
|
55
|
-
|
56
|
-
///////////////////////////////////////////////////////////////////////////////
|
57
|
-
|
58
|
-
/** \enum SkImageInfo::SkColorType
|
59
|
-
Describes how pixel bits encode color. A pixel may be an alpha mask, a grayscale, RGB, or ARGB.
|
60
|
-
|
61
|
-
kN32_SkColorType selects the native 32-bit ARGB format for the current configuration. This can
|
62
|
-
lead to inconsistent results across platforms, so use with caution.
|
63
|
-
*/
|
64
|
-
enum SkColorType : int {
|
65
|
-
kUnknown_SkColorType, //!< uninitialized
|
66
|
-
kAlpha_8_SkColorType, //!< pixel with alpha in 8-bit byte
|
67
|
-
kRGB_565_SkColorType, //!< pixel with 5 bits red, 6 bits green, 5 bits blue, in 16-bit word
|
68
|
-
kARGB_4444_SkColorType, //!< pixel with 4 bits for alpha, red, green, blue; in 16-bit word
|
69
|
-
kRGBA_8888_SkColorType, //!< pixel with 8 bits for red, green, blue, alpha; in 32-bit word
|
70
|
-
kRGB_888x_SkColorType, //!< pixel with 8 bits each for red, green, blue; in 32-bit word
|
71
|
-
kBGRA_8888_SkColorType, //!< pixel with 8 bits for blue, green, red, alpha; in 32-bit word
|
72
|
-
kRGBA_1010102_SkColorType, //!< 10 bits for red, green, blue; 2 bits for alpha; in 32-bit word
|
73
|
-
kBGRA_1010102_SkColorType, //!< 10 bits for blue, green, red; 2 bits for alpha; in 32-bit word
|
74
|
-
kRGB_101010x_SkColorType, //!< pixel with 10 bits each for red, green, blue; in 32-bit word
|
75
|
-
kBGR_101010x_SkColorType, //!< pixel with 10 bits each for blue, green, red; in 32-bit word
|
76
|
-
kGray_8_SkColorType, //!< pixel with grayscale level in 8-bit byte
|
77
|
-
kRGBA_F16Norm_SkColorType, //!< pixel with half floats in [0,1] for red, green, blue, alpha;
|
78
|
-
// in 64-bit word
|
79
|
-
kRGBA_F16_SkColorType, //!< pixel with half floats for red, green, blue, alpha;
|
80
|
-
// in 64-bit word
|
81
|
-
kRGBA_F32_SkColorType, //!< pixel using C float for red, green, blue, alpha; in 128-bit word
|
82
|
-
|
83
|
-
// The following 6 colortypes are just for reading from - not for rendering to
|
84
|
-
kR8G8_unorm_SkColorType, //!< pixel with a uint8_t for red and green
|
85
|
-
|
86
|
-
kA16_float_SkColorType, //!< pixel with a half float for alpha
|
87
|
-
kR16G16_float_SkColorType, //!< pixel with a half float for red and green
|
88
|
-
|
89
|
-
kA16_unorm_SkColorType, //!< pixel with a little endian uint16_t for alpha
|
90
|
-
kR16G16_unorm_SkColorType, //!< pixel with a little endian uint16_t for red and green
|
91
|
-
kR16G16B16A16_unorm_SkColorType, //!< pixel with a little endian uint16_t for red, green, blue
|
92
|
-
// and alpha
|
93
|
-
|
94
|
-
kSRGBA_8888_SkColorType,
|
95
|
-
|
96
|
-
kLastEnum_SkColorType = kSRGBA_8888_SkColorType, //!< last valid value
|
97
|
-
|
98
|
-
#if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
|
99
|
-
kN32_SkColorType = kBGRA_8888_SkColorType,//!< native 32-bit BGRA encoding
|
100
|
-
|
101
|
-
#elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
|
102
|
-
kN32_SkColorType = kRGBA_8888_SkColorType,//!< native 32-bit RGBA encoding
|
103
|
-
|
104
|
-
#else
|
105
|
-
#error "SK_*32_SHIFT values must correspond to BGRA or RGBA byte order"
|
106
|
-
#endif
|
107
|
-
};
|
23
|
+
class SkColorSpace;
|
108
24
|
|
109
25
|
/** Returns the number of bytes required to store a pixel, including unused padding.
|
110
26
|
Returns zero if ct is kUnknown_SkColorType or invalid.
|
@@ -183,7 +99,8 @@ public:
|
|
183
99
|
|
184
100
|
@return empty SkImageInfo
|
185
101
|
*/
|
186
|
-
SkColorInfo()
|
102
|
+
SkColorInfo();
|
103
|
+
~SkColorInfo();
|
187
104
|
|
188
105
|
/** Creates SkColorInfo from SkColorType ct, SkAlphaType at, and optionally SkColorSpace cs.
|
189
106
|
|
@@ -194,17 +111,16 @@ public:
|
|
194
111
|
combination is supported.
|
195
112
|
@return created SkColorInfo
|
196
113
|
*/
|
197
|
-
SkColorInfo(SkColorType ct, SkAlphaType at, sk_sp<SkColorSpace> cs)
|
198
|
-
: fColorSpace(std::move(cs)), fColorType(ct), fAlphaType(at) {}
|
114
|
+
SkColorInfo(SkColorType ct, SkAlphaType at, sk_sp<SkColorSpace> cs);
|
199
115
|
|
200
|
-
SkColorInfo(const SkColorInfo&)
|
201
|
-
SkColorInfo(SkColorInfo&&)
|
116
|
+
SkColorInfo(const SkColorInfo&);
|
117
|
+
SkColorInfo(SkColorInfo&&);
|
202
118
|
|
203
|
-
SkColorInfo& operator=(const SkColorInfo&)
|
204
|
-
SkColorInfo& operator=(SkColorInfo&&)
|
119
|
+
SkColorInfo& operator=(const SkColorInfo&);
|
120
|
+
SkColorInfo& operator=(SkColorInfo&&);
|
205
121
|
|
206
|
-
SkColorSpace* colorSpace() const
|
207
|
-
sk_sp<SkColorSpace> refColorSpace() const
|
122
|
+
SkColorSpace* colorSpace() const;
|
123
|
+
sk_sp<SkColorSpace> refColorSpace() const;
|
208
124
|
SkColorType colorType() const { return fColorType; }
|
209
125
|
SkAlphaType alphaType() const { return fAlphaType; }
|
210
126
|
|
@@ -213,16 +129,13 @@ public:
|
|
213
129
|
|| SkColorTypeIsAlwaysOpaque(fColorType);
|
214
130
|
}
|
215
131
|
|
216
|
-
bool gammaCloseToSRGB() const
|
132
|
+
bool gammaCloseToSRGB() const;
|
217
133
|
|
218
134
|
/** Does other represent the same color type, alpha type, and color space? */
|
219
|
-
bool operator==(const SkColorInfo& other) const
|
220
|
-
return fColorType == other.fColorType && fAlphaType == other.fAlphaType &&
|
221
|
-
SkColorSpace::Equals(fColorSpace.get(), other.fColorSpace.get());
|
222
|
-
}
|
135
|
+
bool operator==(const SkColorInfo& other) const;
|
223
136
|
|
224
137
|
/** Does other represent a different color type, alpha type, or color space? */
|
225
|
-
bool operator!=(const SkColorInfo& other) const
|
138
|
+
bool operator!=(const SkColorInfo& other) const;
|
226
139
|
|
227
140
|
/** Creates SkColorInfo with same SkColorType, SkColorSpace, with SkAlphaType set
|
228
141
|
to newAlphaType.
|
@@ -230,23 +143,17 @@ public:
|
|
230
143
|
Created SkColorInfo contains newAlphaType even if it is incompatible with
|
231
144
|
SkColorType, in which case SkAlphaType in SkColorInfo is ignored.
|
232
145
|
*/
|
233
|
-
SkColorInfo makeAlphaType(SkAlphaType newAlphaType) const
|
234
|
-
return SkColorInfo(this->colorType(), newAlphaType, this->refColorSpace());
|
235
|
-
}
|
146
|
+
SkColorInfo makeAlphaType(SkAlphaType newAlphaType) const;
|
236
147
|
|
237
148
|
/** Creates new SkColorInfo with same SkAlphaType, SkColorSpace, with SkColorType
|
238
149
|
set to newColorType.
|
239
150
|
*/
|
240
|
-
SkColorInfo makeColorType(SkColorType newColorType) const
|
241
|
-
return SkColorInfo(newColorType, this->alphaType(), this->refColorSpace());
|
242
|
-
}
|
151
|
+
SkColorInfo makeColorType(SkColorType newColorType) const;
|
243
152
|
|
244
153
|
/** Creates SkColorInfo with same SkAlphaType, SkColorType, with SkColorSpace
|
245
154
|
set to cs. cs may be nullptr.
|
246
155
|
*/
|
247
|
-
SkColorInfo makeColorSpace(sk_sp<SkColorSpace> cs) const
|
248
|
-
return SkColorInfo(this->colorType(), this->alphaType(), std::move(cs));
|
249
|
-
}
|
156
|
+
SkColorInfo makeColorSpace(sk_sp<SkColorSpace> cs) const;
|
250
157
|
|
251
158
|
/** Returns number of bytes per pixel required by SkColorType.
|
252
159
|
Returns zero if colorType() is kUnknown_SkColorType.
|
@@ -306,14 +213,12 @@ public:
|
|
306
213
|
@param cs range of colors; may be nullptr
|
307
214
|
@return created SkImageInfo
|
308
215
|
*/
|
216
|
+
static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at);
|
309
217
|
static SkImageInfo Make(int width, int height, SkColorType ct, SkAlphaType at,
|
310
|
-
sk_sp<SkColorSpace> cs
|
311
|
-
|
312
|
-
}
|
218
|
+
sk_sp<SkColorSpace> cs);
|
219
|
+
static SkImageInfo Make(SkISize dimensions, SkColorType ct, SkAlphaType at);
|
313
220
|
static SkImageInfo Make(SkISize dimensions, SkColorType ct, SkAlphaType at,
|
314
|
-
sk_sp<SkColorSpace> cs
|
315
|
-
return SkImageInfo(dimensions, {ct, at, std::move(cs)});
|
316
|
-
}
|
221
|
+
sk_sp<SkColorSpace> cs);
|
317
222
|
|
318
223
|
/** Creates SkImageInfo from integral dimensions and SkColorInfo colorInfo,
|
319
224
|
|
@@ -347,10 +252,8 @@ public:
|
|
347
252
|
@param cs range of colors; may be nullptr
|
348
253
|
@return created SkImageInfo
|
349
254
|
*/
|
350
|
-
static SkImageInfo MakeN32(int width, int height, SkAlphaType at
|
351
|
-
|
352
|
-
return Make({width, height}, kN32_SkColorType, at, std::move(cs));
|
353
|
-
}
|
255
|
+
static SkImageInfo MakeN32(int width, int height, SkAlphaType at);
|
256
|
+
static SkImageInfo MakeN32(int width, int height, SkAlphaType at, sk_sp<SkColorSpace> cs);
|
354
257
|
|
355
258
|
/** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
|
356
259
|
SkAlphaType at, with sRGB SkColorSpace.
|
@@ -380,9 +283,8 @@ public:
|
|
380
283
|
@param cs range of colors; may be nullptr
|
381
284
|
@return created SkImageInfo
|
382
285
|
*/
|
383
|
-
static SkImageInfo MakeN32Premul(int width, int height
|
384
|
-
|
385
|
-
}
|
286
|
+
static SkImageInfo MakeN32Premul(int width, int height);
|
287
|
+
static SkImageInfo MakeN32Premul(int width, int height, sk_sp<SkColorSpace> cs);
|
386
288
|
|
387
289
|
/** Creates SkImageInfo from integral dimensions width and height, kN32_SkColorType,
|
388
290
|
kPremul_SkAlphaType, with SkColorSpace set to nullptr.
|
@@ -397,9 +299,8 @@ public:
|
|
397
299
|
@param cs range of colors; may be nullptr
|
398
300
|
@return created SkImageInfo
|
399
301
|
*/
|
400
|
-
static SkImageInfo MakeN32Premul(SkISize dimensions
|
401
|
-
|
402
|
-
}
|
302
|
+
static SkImageInfo MakeN32Premul(SkISize dimensions);
|
303
|
+
static SkImageInfo MakeN32Premul(SkISize dimensions, sk_sp<SkColorSpace> cs);
|
403
304
|
|
404
305
|
/** Creates SkImageInfo from integral dimensions width and height, kAlpha_8_SkColorType,
|
405
306
|
kPremul_SkAlphaType, with SkColorSpace set to nullptr.
|
@@ -408,18 +309,14 @@ public:
|
|
408
309
|
@param height pixel row count; must be zero or greater
|
409
310
|
@return created SkImageInfo
|
410
311
|
*/
|
411
|
-
static SkImageInfo MakeA8(int width, int height)
|
412
|
-
return Make({width, height}, kAlpha_8_SkColorType, kPremul_SkAlphaType, nullptr);
|
413
|
-
}
|
312
|
+
static SkImageInfo MakeA8(int width, int height);
|
414
313
|
/** Creates SkImageInfo from integral dimensions, kAlpha_8_SkColorType,
|
415
314
|
kPremul_SkAlphaType, with SkColorSpace set to nullptr.
|
416
315
|
|
417
316
|
@param dimensions pixel row and column count; must be zero or greater
|
418
317
|
@return created SkImageInfo
|
419
318
|
*/
|
420
|
-
static SkImageInfo MakeA8(SkISize dimensions)
|
421
|
-
return Make(dimensions, kAlpha_8_SkColorType, kPremul_SkAlphaType, nullptr);
|
422
|
-
}
|
319
|
+
static SkImageInfo MakeA8(SkISize dimensions);
|
423
320
|
|
424
321
|
/** Creates SkImageInfo from integral dimensions width and height, kUnknown_SkColorType,
|
425
322
|
kUnknown_SkAlphaType, with SkColorSpace set to nullptr.
|
@@ -431,9 +328,7 @@ public:
|
|
431
328
|
@param height pixel row count; must be zero or greater
|
432
329
|
@return created SkImageInfo
|
433
330
|
*/
|
434
|
-
static SkImageInfo MakeUnknown(int width, int height)
|
435
|
-
return Make({width, height}, kUnknown_SkColorType, kUnknown_SkAlphaType, nullptr);
|
436
|
-
}
|
331
|
+
static SkImageInfo MakeUnknown(int width, int height);
|
437
332
|
|
438
333
|
/** Creates SkImageInfo from integral dimensions width and height set to zero,
|
439
334
|
kUnknown_SkColorType, kUnknown_SkAlphaType, with SkColorSpace set to nullptr.
|
@@ -468,7 +363,7 @@ public:
|
|
468
363
|
|
469
364
|
@return SkColorSpace, or nullptr
|
470
365
|
*/
|
471
|
-
SkColorSpace* colorSpace() const
|
366
|
+
SkColorSpace* colorSpace() const;
|
472
367
|
|
473
368
|
/** Returns smart pointer to SkColorSpace, the range of colors. The smart pointer
|
474
369
|
tracks the number of objects sharing this SkColorSpace reference so the memory
|
@@ -478,7 +373,7 @@ public:
|
|
478
373
|
|
479
374
|
@return SkColorSpace wrapped in a smart pointer
|
480
375
|
*/
|
481
|
-
sk_sp<SkColorSpace> refColorSpace() const
|
376
|
+
sk_sp<SkColorSpace> refColorSpace() const;
|
482
377
|
|
483
378
|
/** Returns if SkImageInfo describes an empty area of pixels by checking if either
|
484
379
|
width or height is zero or smaller.
|
@@ -571,9 +466,7 @@ public:
|
|
571
466
|
@param cs range of colors; may be nullptr
|
572
467
|
@return created SkImageInfo
|
573
468
|
*/
|
574
|
-
SkImageInfo makeColorSpace(sk_sp<SkColorSpace> cs) const
|
575
|
-
return Make(fDimensions, fColorInfo.makeColorSpace(std::move(cs)));
|
576
|
-
}
|
469
|
+
SkImageInfo makeColorSpace(sk_sp<SkColorSpace> cs) const;
|
577
470
|
|
578
471
|
/** Returns number of bytes per pixel required by SkColorType.
|
579
472
|
Returns zero if colorType( is kUnknown_SkColorType.
|