aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/codec/SkCodec.h2
-rw-r--r--src/codec/SkBmpCodec.cpp2
-rw-r--r--src/codec/SkGifCodec.cpp5
-rw-r--r--src/codec/SkIcoCodec.cpp8
-rw-r--r--src/codec/SkIcoCodec.h2
-rw-r--r--src/codec/SkRawCodec.cpp3
-rw-r--r--src/codec/SkWbmpCodec.cpp2
7 files changed, 14 insertions, 10 deletions
diff --git a/include/codec/SkCodec.h b/include/codec/SkCodec.h
index 368d5e37b3..c2519cb840 100644
--- a/include/codec/SkCodec.h
+++ b/include/codec/SkCodec.h
@@ -626,7 +626,7 @@ protected:
int height,
const SkEncodedInfo&,
SkStream*,
- sk_sp<SkColorSpace> = nullptr,
+ sk_sp<SkColorSpace>,
Origin = kTopLeft_Origin);
/**
diff --git a/src/codec/SkBmpCodec.cpp b/src/codec/SkBmpCodec.cpp
index 2f796ad667..18e2be4009 100644
--- a/src/codec/SkBmpCodec.cpp
+++ b/src/codec/SkBmpCodec.cpp
@@ -583,7 +583,7 @@ SkCodec* SkBmpCodec::NewFromStream(SkStream* stream, bool inIco) {
SkBmpCodec::SkBmpCodec(int width, int height, const SkEncodedInfo& info, SkStream* stream,
uint16_t bitsPerPixel, SkCodec::SkScanlineOrder rowOrder)
- : INHERITED(width, height, info, stream)
+ : INHERITED(width, height, info, stream, SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named))
, fBitsPerPixel(bitsPerPixel)
, fRowOrder(rowOrder)
, fSrcRowBytes(SkAlign4(compute_row_bytes(width, fBitsPerPixel)))
diff --git a/src/codec/SkGifCodec.cpp b/src/codec/SkGifCodec.cpp
index 3c57f2d709..fe0a2b6623 100644
--- a/src/codec/SkGifCodec.cpp
+++ b/src/codec/SkGifCodec.cpp
@@ -98,9 +98,10 @@ SkCodec* SkGifCodec::NewFromStream(SkStream* stream) {
// zeroes, which is arguably premultiplied.
const auto alphaType = reader->firstFrameHasAlpha() ? kUnpremul_SkAlphaType
: kOpaque_SkAlphaType;
- // FIXME: GIF should default to SkColorSpace::NewNamed(SkColorSpace::kSRGB_Named).
+
const auto imageInfo = SkImageInfo::Make(reader->screenWidth(), reader->screenHeight(),
- colorType, alphaType);
+ colorType, alphaType,
+ SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named));
return new SkGifCodec(encodedInfo, imageInfo, reader.release());
}
diff --git a/src/codec/SkIcoCodec.cpp b/src/codec/SkIcoCodec.cpp
index d01904dc1b..bfbe91311a 100644
--- a/src/codec/SkIcoCodec.cpp
+++ b/src/codec/SkIcoCodec.cpp
@@ -171,10 +171,11 @@ SkCodec* SkIcoCodec::NewFromStream(SkStream* stream) {
int width = codecs->operator[](maxIndex)->getInfo().width();
int height = codecs->operator[](maxIndex)->getInfo().height();
SkEncodedInfo info = codecs->operator[](maxIndex)->getEncodedInfo();
+ SkColorSpace* colorSpace = codecs->operator[](maxIndex)->getInfo().colorSpace();
// Note that stream is owned by the embedded codec, the ico does not need
// direct access to the stream.
- return new SkIcoCodec(width, height, info, codecs.release());
+ return new SkIcoCodec(width, height, info, codecs.release(), sk_ref_sp(colorSpace));
}
/*
@@ -182,8 +183,9 @@ SkCodec* SkIcoCodec::NewFromStream(SkStream* stream) {
* Called only by NewFromStream
*/
SkIcoCodec::SkIcoCodec(int width, int height, const SkEncodedInfo& info,
- SkTArray<SkAutoTDelete<SkCodec>, true>* codecs)
- : INHERITED(width, height, info, nullptr)
+ SkTArray<SkAutoTDelete<SkCodec>, true>* codecs,
+ sk_sp<SkColorSpace> colorSpace)
+ : INHERITED(width, height, info, nullptr, std::move(colorSpace))
, fEmbeddedCodecs(codecs)
, fCurrScanlineCodec(nullptr)
, fCurrIncrementalCodec(nullptr)
diff --git a/src/codec/SkIcoCodec.h b/src/codec/SkIcoCodec.h
index a227d8c671..b9ed823a3a 100644
--- a/src/codec/SkIcoCodec.h
+++ b/src/codec/SkIcoCodec.h
@@ -77,7 +77,7 @@ private:
* @param embeddedCodecs codecs for the embedded images, takes ownership
*/
SkIcoCodec(int width, int height, const SkEncodedInfo& info,
- SkTArray<SkAutoTDelete<SkCodec>, true>* embeddedCodecs);
+ SkTArray<SkAutoTDelete<SkCodec>, true>* embeddedCodecs, sk_sp<SkColorSpace> colorSpace);
SkAutoTDelete<SkTArray<SkAutoTDelete<SkCodec>, true>> fEmbeddedCodecs; // owned
diff --git a/src/codec/SkRawCodec.cpp b/src/codec/SkRawCodec.cpp
index 2a6a48fdbb..5ae44d15fc 100644
--- a/src/codec/SkRawCodec.cpp
+++ b/src/codec/SkRawCodec.cpp
@@ -778,5 +778,6 @@ bool SkRawCodec::onDimensionsSupported(const SkISize& dim) {
SkRawCodec::~SkRawCodec() {}
SkRawCodec::SkRawCodec(SkDngImage* dngImage)
- : INHERITED(dngImage->width(), dngImage->height(), dngImage->getEncodedInfo(), nullptr)
+ : INHERITED(dngImage->width(), dngImage->height(), dngImage->getEncodedInfo(), nullptr,
+ SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named))
, fDngImage(dngImage) {}
diff --git a/src/codec/SkWbmpCodec.cpp b/src/codec/SkWbmpCodec.cpp
index 099b6e472a..45296d8814 100644
--- a/src/codec/SkWbmpCodec.cpp
+++ b/src/codec/SkWbmpCodec.cpp
@@ -105,7 +105,7 @@ bool SkWbmpCodec::readRow(uint8_t* row) {
}
SkWbmpCodec::SkWbmpCodec(int width, int height, const SkEncodedInfo& info, SkStream* stream)
- : INHERITED(width, height, info, stream)
+ : INHERITED(width, height, info, stream, SkColorSpace::MakeNamed(SkColorSpace::kSRGB_Named))
, fSrcRowBytes(get_src_row_bytes(this->getInfo().width()))
, fSwizzler(nullptr)
, fColorTable(nullptr)