aboutsummaryrefslogtreecommitdiffhomepage
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/codec/SkAndroidCodec.h2
-rw-r--r--include/codec/SkCodec.h10
-rw-r--r--include/private/SkEncodedInfo.h (renamed from include/codec/SkEncodedInfo.h)40
3 files changed, 11 insertions, 41 deletions
diff --git a/include/codec/SkAndroidCodec.h b/include/codec/SkAndroidCodec.h
index 8dfa8ba5fe..0d6cc185d9 100644
--- a/include/codec/SkAndroidCodec.h
+++ b/include/codec/SkAndroidCodec.h
@@ -43,8 +43,6 @@ public:
virtual ~SkAndroidCodec();
- const SkEncodedInfo& getEncodedInfo() const;
-
const SkImageInfo& getInfo() const { return fInfo; }
/**
diff --git a/include/codec/SkCodec.h b/include/codec/SkCodec.h
index d3035a7a71..6a6a597f1f 100644
--- a/include/codec/SkCodec.h
+++ b/include/codec/SkCodec.h
@@ -9,11 +9,11 @@
#define SkCodec_DEFINED
#include "../private/SkTemplates.h"
+#include "../private/SkEncodedInfo.h"
#include "SkCodecAnimation.h"
#include "SkColor.h"
#include "SkColorSpaceXform.h"
#include "SkEncodedImageFormat.h"
-#include "SkEncodedInfo.h"
#include "SkEncodedOrigin.h"
#include "SkImageInfo.h"
#include "SkPixmap.h"
@@ -169,8 +169,6 @@ public:
*/
const SkImageInfo& getInfo() const { return fSrcInfo; }
- const SkEncodedInfo& getEncodedInfo() const { return fEncodedInfo; }
-
/**
* Returns the image orientation stored in the EXIF data.
* If there is no EXIF data, or if we cannot read the EXIF data, returns kTopLeft.
@@ -612,7 +610,7 @@ public:
* This is conservative; it will still return non-opaque if e.g. a
* color index-based frame has a color with alpha but does not use it.
*/
- SkEncodedInfo::Alpha fAlpha;
+ SkAlphaType fAlphaType;
/**
* How this frame should be modified before decoding the next one.
@@ -662,6 +660,8 @@ public:
}
protected:
+ const SkEncodedInfo& getEncodedInfo() const { return fEncodedInfo; }
+
using XformFormat = SkColorSpaceXform::ColorFormat;
SkCodec(int width,
@@ -847,7 +847,7 @@ private:
*
* Will be called for the appropriate frame, prior to initializing the colorXform.
*/
- virtual bool conversionSupported(const SkImageInfo& dst, SkEncodedInfo::Color srcColor,
+ virtual bool conversionSupported(const SkImageInfo& dst, SkColorType srcColor,
bool srcIsOpaque, const SkColorSpace* srcCS) const;
/**
* Return whether these dimensions are supported as a scale.
diff --git a/include/codec/SkEncodedInfo.h b/include/private/SkEncodedInfo.h
index dce88cadc1..638f03dc11 100644
--- a/include/codec/SkEncodedInfo.h
+++ b/include/private/SkEncodedInfo.h
@@ -118,40 +118,12 @@ public:
* closest possible match to the encoded info.
*/
SkImageInfo makeImageInfo(int width, int height, sk_sp<SkColorSpace> colorSpace) const {
- switch (fColor) {
- case kGray_Color:
- SkASSERT(kOpaque_Alpha == fAlpha);
- return SkImageInfo::Make(width, height, kGray_8_SkColorType,
- kOpaque_SkAlphaType, colorSpace);
- case kGrayAlpha_Color:
- SkASSERT(kOpaque_Alpha != fAlpha);
- return SkImageInfo::Make(width, height, kN32_SkColorType,
- kUnpremul_SkAlphaType, colorSpace);
- case kPalette_Color: {
- SkAlphaType alphaType = (kOpaque_Alpha == fAlpha) ? kOpaque_SkAlphaType :
- kUnpremul_SkAlphaType;
- return SkImageInfo::Make(width, height, kN32_SkColorType,
- alphaType, colorSpace);
- }
- case kRGB_Color:
- case kBGR_Color:
- case kBGRX_Color:
- case kYUV_Color:
- case kInvertedCMYK_Color:
- case kYCCK_Color:
- SkASSERT(kOpaque_Alpha == fAlpha);
- return SkImageInfo::Make(width, height, kN32_SkColorType,
- kOpaque_SkAlphaType, colorSpace);
- case kRGBA_Color:
- case kBGRA_Color:
- case kYUVA_Color:
- SkASSERT(kOpaque_Alpha != fAlpha);
- return SkImageInfo::Make(width, height, kN32_SkColorType,
- kUnpremul_SkAlphaType, std::move(colorSpace));
- default:
- SkASSERT(false);
- return SkImageInfo::MakeUnknown();
- }
+ auto ct = kGray_Color == fColor ? kGray_8_SkColorType :
+ fBitsPerComponent > 8 ? kRGBA_F16_SkColorType :
+ kN32_SkColorType ;
+ auto alpha = kOpaque_Alpha == fAlpha ? kOpaque_SkAlphaType
+ : kUnpremul_SkAlphaType;
+ return SkImageInfo::Make(width, height, ct, alpha, std::move(colorSpace));
}
Color color() const { return fColor; }