diff options
-rw-r--r-- | include/codec/SkCodec.h | 2 | ||||
-rw-r--r-- | src/codec/SkBmpCodec.cpp | 2 | ||||
-rw-r--r-- | src/codec/SkGifCodec.cpp | 5 | ||||
-rw-r--r-- | src/codec/SkIcoCodec.cpp | 8 | ||||
-rw-r--r-- | src/codec/SkIcoCodec.h | 2 | ||||
-rw-r--r-- | src/codec/SkRawCodec.cpp | 3 | ||||
-rw-r--r-- | src/codec/SkWbmpCodec.cpp | 2 |
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) |