aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLeon Scroggins III <scroggo@google.com>2018-03-13 11:14:33 -0400
committerDerek Sollenberger <djsollen@google.com>2018-03-14 02:47:52 +0000
commit5c7667b89cfb99f442ff64d7b4a5005b3b928e1b (patch)
tree45a198e505e1855d13f3621f941fea3b137122ed
parent0989f09859e9f122d9654d7f9a3581f48a70c6ac (diff)
downloadskia-5c7667b89cfb99f442ff64d7b4a5005b3b928e1b.tar.gz
Remove calls to computeOutputColor- Type and Space
Bug: b/70846442 Test: I5110881203c000474116a94a48f2afc9a9b62001 These methods were already called by the client. The client may have further overridden the SkColorType (and therefore the SkColorSpace), so respect their final decision on both. Change-Id: Iddcf618e474784b0a000fd516250c44285dacc6b Reviewed-on: https://skia-review.googlesource.com/114062 Commit-Queue: Leon Scroggins <scroggo@google.com> Reviewed-by: Derek Sollenberger <djsollen@google.com> (cherry picked from commit 0118e9756d92d3c56b9e05842d7c828f37f68159) Reviewed-on: https://skia-review.googlesource.com/114200 Reviewed-by: Leon Scroggins <scroggo@google.com>
-rw-r--r--bench/BitmapRegionDecoderBench.cpp4
-rw-r--r--dm/DMSrcSink.cpp15
-rw-r--r--src/android/SkBitmapRegionCodec.cpp7
3 files changed, 13 insertions, 13 deletions
diff --git a/bench/BitmapRegionDecoderBench.cpp b/bench/BitmapRegionDecoderBench.cpp
index dd60b18296..d80fc5de4d 100644
--- a/bench/BitmapRegionDecoderBench.cpp
+++ b/bench/BitmapRegionDecoderBench.cpp
@@ -40,8 +40,10 @@ void BitmapRegionDecoderBench::onDelayedSetup() {
}
void BitmapRegionDecoderBench::onDraw(int n, SkCanvas* canvas) {
+ auto ct = fBRD->computeOutputColorType(fColorType);
+ auto cs = fBRD->computeOutputColorSpace(ct, nullptr);
for (int i = 0; i < n; i++) {
SkBitmap bm;
- SkAssertResult(fBRD->decodeRegion(&bm, nullptr, fSubset, fSampleSize, fColorType, false));
+ SkAssertResult(fBRD->decodeRegion(&bm, nullptr, fSubset, fSampleSize, ct, false, cs));
}
}
diff --git a/dm/DMSrcSink.cpp b/dm/DMSrcSink.cpp
index 149138d832..d33f623ae5 100644
--- a/dm/DMSrcSink.cpp
+++ b/dm/DMSrcSink.cpp
@@ -165,12 +165,13 @@ Error BRDSrc::draw(SkCanvas* canvas) const {
return Error::Nonfatal(SkStringPrintf("Could not create brd for %s.", fPath.c_str()));
}
- if (kRGB_565_SkColorType == colorType) {
- auto recommendedCT = brd->computeOutputColorType(colorType);
- if (recommendedCT != colorType) {
- return Error::Nonfatal("Skip decoding non-opaque to 565.");
- }
+ auto recommendedCT = brd->computeOutputColorType(colorType);
+ if (kRGB_565_SkColorType == colorType && recommendedCT != colorType) {
+ return Error::Nonfatal("Skip decoding non-opaque to 565.");
}
+ colorType = recommendedCT;
+
+ auto colorSpace = brd->computeOutputColorSpace(colorType, nullptr);
const uint32_t width = brd->width();
const uint32_t height = brd->height();
@@ -182,7 +183,7 @@ Error BRDSrc::draw(SkCanvas* canvas) const {
case kFullImage_Mode: {
SkBitmap bitmap;
if (!brd->decodeRegion(&bitmap, nullptr, SkIRect::MakeXYWH(0, 0, width, height),
- fSampleSize, colorType, false, SkColorSpace::MakeSRGB())) {
+ fSampleSize, colorType, false, colorSpace)) {
return "Cannot decode (full) region.";
}
alpha8_to_gray8(&bitmap);
@@ -238,7 +239,7 @@ Error BRDSrc::draw(SkCanvas* canvas) const {
SkBitmap bitmap;
if (!brd->decodeRegion(&bitmap, nullptr, SkIRect::MakeXYWH(decodeLeft,
decodeTop, decodeWidth, decodeHeight), fSampleSize, colorType, false,
- SkColorSpace::MakeSRGB())) {
+ colorSpace)) {
return "Cannot decode region.";
}
diff --git a/src/android/SkBitmapRegionCodec.cpp b/src/android/SkBitmapRegionCodec.cpp
index 493e4b5672..6b17a9015d 100644
--- a/src/android/SkBitmapRegionCodec.cpp
+++ b/src/android/SkBitmapRegionCodec.cpp
@@ -17,8 +17,8 @@ SkBitmapRegionCodec::SkBitmapRegionCodec(SkAndroidCodec* codec)
{}
bool SkBitmapRegionCodec::decodeRegion(SkBitmap* bitmap, SkBRDAllocator* allocator,
- const SkIRect& desiredSubset, int sampleSize, SkColorType prefColorType,
- bool requireUnpremul, sk_sp<SkColorSpace> prefColorSpace) {
+ const SkIRect& desiredSubset, int sampleSize, SkColorType dstColorType,
+ bool requireUnpremul, sk_sp<SkColorSpace> dstColorSpace) {
// Fix the input sampleSize if necessary.
if (sampleSize < 1) {
@@ -50,10 +50,7 @@ bool SkBitmapRegionCodec::decodeRegion(SkBitmap* bitmap, SkBRDAllocator* allocat
SkISize scaledSize = fCodec->getSampledSubsetDimensions(sampleSize, subset);
// Create the image info for the decode
- SkColorType dstColorType = fCodec->computeOutputColorType(prefColorType);
SkAlphaType dstAlphaType = fCodec->computeOutputAlphaType(requireUnpremul);
- sk_sp<SkColorSpace> dstColorSpace = fCodec->computeOutputColorSpace(dstColorType,
- prefColorSpace);
SkImageInfo decodeInfo = SkImageInfo::Make(scaledSize.width(), scaledSize.height(),
dstColorType, dstAlphaType, dstColorSpace);