diff options
author | 2014-06-12 17:40:00 -0700 | |
---|---|---|
committer | 2014-06-12 17:40:00 -0700 | |
commit | bfefc7c95fc0e8ebd5000c68f6d16e1a3ea0e71e (patch) | |
tree | 9e68e04fa38c4e28ac478786bfe6d402a3bff239 /src | |
parent | 9a8699f45c2bd8dac0c06829a06b6b244d19b6b2 (diff) |
hide Config in SkImageDecoder -- use SkColorType instead
patch from issue 334613003
TBR=scroggo
Author: reed@chromium.org
Review URL: https://codereview.chromium.org/334793002
Diffstat (limited to 'src')
-rw-r--r-- | src/image/SkImagePriv.cpp | 4 | ||||
-rw-r--r-- | src/image/SkImage_Codec.cpp | 9 | ||||
-rw-r--r-- | src/images/SkDecodingImageGenerator.cpp | 4 | ||||
-rw-r--r-- | src/images/SkImageDecoder.cpp | 39 | ||||
-rw-r--r-- | src/ports/SkImageDecoder_empty.cpp | 15 |
5 files changed, 27 insertions, 44 deletions
diff --git a/src/image/SkImagePriv.cpp b/src/image/SkImagePriv.cpp index 56afd6649c..3ea61d519b 100644 --- a/src/image/SkImagePriv.cpp +++ b/src/image/SkImagePriv.cpp @@ -33,10 +33,6 @@ SkBitmap::Config SkColorTypeToBitmapConfig(SkColorType colorType) { return SkBitmap::kNo_Config; } -SkBitmap::Config SkImageInfoToBitmapConfig(const SkImageInfo& info) { - return SkColorTypeToBitmapConfig(info.fColorType); -} - SkColorType SkBitmapConfigToColorType(SkBitmap::Config config) { static const SkColorType gCT[] = { kUnknown_SkColorType, // kNo_Config diff --git a/src/image/SkImage_Codec.cpp b/src/image/SkImage_Codec.cpp index 64f58a6aef..3d815ce7f4 100644 --- a/src/image/SkImage_Codec.cpp +++ b/src/image/SkImage_Codec.cpp @@ -41,8 +41,7 @@ SkImage_Codec::~SkImage_Codec() { void SkImage_Codec::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPaint* paint) { if (!fBitmap.pixelRef()) { - if (!SkImageDecoder::DecodeMemory(fEncodedData->bytes(), fEncodedData->size(), - &fBitmap)) { + if (!SkImageDecoder::DecodeMemory(fEncodedData->bytes(), fEncodedData->size(), &fBitmap)) { return; } } @@ -52,8 +51,7 @@ void SkImage_Codec::onDraw(SkCanvas* canvas, SkScalar x, SkScalar y, const SkPai void SkImage_Codec::onDrawRectToRect(SkCanvas* canvas, const SkRect* src, const SkRect& dst, const SkPaint* paint) { if (!fBitmap.pixelRef()) { - if (!SkImageDecoder::DecodeMemory(fEncodedData->bytes(), fEncodedData->size(), - &fBitmap)) { + if (!SkImageDecoder::DecodeMemory(fEncodedData->bytes(), fEncodedData->size(), &fBitmap)) { return; } } @@ -68,8 +66,7 @@ SkImage* SkImage::NewEncodedData(SkData* data) { } SkBitmap bitmap; - if (!SkImageDecoder::DecodeMemory(data->bytes(), data->size(), &bitmap, - SkBitmap::kNo_Config, + if (!SkImageDecoder::DecodeMemory(data->bytes(), data->size(), &bitmap, kUnknown_SkColorType, SkImageDecoder::kDecodeBounds_Mode)) { return NULL; } diff --git a/src/images/SkDecodingImageGenerator.cpp b/src/images/SkDecodingImageGenerator.cpp index 2493d89b38..88cdef9a32 100644 --- a/src/images/SkDecodingImageGenerator.cpp +++ b/src/images/SkDecodingImageGenerator.cpp @@ -173,9 +173,7 @@ bool DecodingImageGenerator::onGetPixels(const SkImageInfo& info, SkBitmap bitmap; TargetAllocator allocator(fInfo, pixels, rowBytes); decoder->setAllocator(&allocator); - // TODO: need to be able to pass colortype directly to decoder - SkBitmap::Config legacyConfig = SkColorTypeToBitmapConfig(info.colorType()); - bool success = decoder->decode(fStream, &bitmap, legacyConfig, + bool success = decoder->decode(fStream, &bitmap, info.colorType(), SkImageDecoder::kDecodePixels_Mode); decoder->setAllocator(NULL); if (!success) { diff --git a/src/images/SkImageDecoder.cpp b/src/images/SkImageDecoder.cpp index 223ae15264..3c6ff69982 100644 --- a/src/images/SkImageDecoder.cpp +++ b/src/images/SkImageDecoder.cpp @@ -21,7 +21,7 @@ SkImageDecoder::SkImageDecoder() #endif , fAllocator(NULL) , fSampleSize(1) - , fDefaultPref(SkBitmap::kNo_Config) + , fDefaultPref(kUnknown_SkColorType) , fDitherImage(true) , fUsePrefTable(false) , fSkipWritingZeroes(false) @@ -148,9 +148,11 @@ void SkImageDecoder::setPrefConfigTable(const PrefConfigTable& prefTable) { // TODO: use colortype in fPrefTable, fDefaultPref so we can stop using SkBitmapConfigToColorType() // SkColorType SkImageDecoder::getPrefColorType(SrcDepth srcDepth, bool srcHasAlpha) const { - SkBitmap::Config config = SkBitmap::kNo_Config; + SkColorType ct = fDefaultPref; if (fUsePrefTable) { + // Until we kill or change the PrefTable, we have to go into Config land for a moment. + SkBitmap::Config config = SkBitmap::kNo_Config; switch (srcDepth) { case kIndex_SrcDepth: config = srcHasAlpha ? fPrefTable.fPrefFor_8Index_YesAlpha_src @@ -164,18 +166,16 @@ SkColorType SkImageDecoder::getPrefColorType(SrcDepth srcDepth, bool srcHasAlpha : fPrefTable.fPrefFor_8bpc_NoAlpha_src; break; } - } else { - config = fDefaultPref; + // now return to SkColorType land + ct = SkBitmapConfigToColorType(config); } - - return SkBitmapConfigToColorType(config); + return ct; } -bool SkImageDecoder::decode(SkStream* stream, SkBitmap* bm, - SkBitmap::Config pref, Mode mode) { +bool SkImageDecoder::decode(SkStream* stream, SkBitmap* bm, SkColorType pref, Mode mode) { // we reset this to false before calling onDecode fShouldCancelDecode = false; - // assign this, for use by getPrefConfig(), in case fUsePrefTable is false + // assign this, for use by getPrefColorType(), in case fUsePrefTable is false fDefaultPref = pref; // pass a temporary bitmap, so that if we return false, we are assured of @@ -188,18 +188,16 @@ bool SkImageDecoder::decode(SkStream* stream, SkBitmap* bm, return true; } -bool SkImageDecoder::decodeSubset(SkBitmap* bm, const SkIRect& rect, - SkBitmap::Config pref) { +bool SkImageDecoder::decodeSubset(SkBitmap* bm, const SkIRect& rect, SkColorType pref) { // we reset this to false before calling onDecodeSubset fShouldCancelDecode = false; - // assign this, for use by getPrefConfig(), in case fUsePrefTable is false + // assign this, for use by getPrefColorType(), in case fUsePrefTable is false fDefaultPref = pref; return this->onDecodeSubset(bm, rect); } -bool SkImageDecoder::buildTileIndex(SkStreamRewindable* stream, - int *width, int *height) { +bool SkImageDecoder::buildTileIndex(SkStreamRewindable* stream, int *width, int *height) { // we reset this to false before calling onBuildTileIndex fShouldCancelDecode = false; @@ -255,8 +253,8 @@ bool SkImageDecoder::cropBitmap(SkBitmap *dst, SkBitmap *src, int sampleSize, /////////////////////////////////////////////////////////////////////////////// -bool SkImageDecoder::DecodeFile(const char file[], SkBitmap* bm, - SkBitmap::Config pref, Mode mode, Format* format) { +bool SkImageDecoder::DecodeFile(const char file[], SkBitmap* bm, SkColorType pref, Mode mode, + Format* format) { SkASSERT(file); SkASSERT(bm); @@ -270,8 +268,8 @@ bool SkImageDecoder::DecodeFile(const char file[], SkBitmap* bm, return false; } -bool SkImageDecoder::DecodeMemory(const void* buffer, size_t size, SkBitmap* bm, - SkBitmap::Config pref, Mode mode, Format* format) { +bool SkImageDecoder::DecodeMemory(const void* buffer, size_t size, SkBitmap* bm, SkColorType pref, + Mode mode, Format* format) { if (0 == size) { return false; } @@ -281,9 +279,8 @@ bool SkImageDecoder::DecodeMemory(const void* buffer, size_t size, SkBitmap* bm, return SkImageDecoder::DecodeStream(&stream, bm, pref, mode, format); } -bool SkImageDecoder::DecodeStream(SkStreamRewindable* stream, SkBitmap* bm, - SkBitmap::Config pref, Mode mode, - Format* format) { +bool SkImageDecoder::DecodeStream(SkStreamRewindable* stream, SkBitmap* bm, SkColorType pref, + Mode mode, Format* format) { SkASSERT(stream); SkASSERT(bm); diff --git a/src/ports/SkImageDecoder_empty.cpp b/src/ports/SkImageDecoder_empty.cpp index 50b1d44fa8..7824732bb9 100644 --- a/src/ports/SkImageDecoder_empty.cpp +++ b/src/ports/SkImageDecoder_empty.cpp @@ -28,24 +28,19 @@ SkImageDecoder* SkImageDecoder::Factory(SkStreamRewindable*) { void SkImageDecoder::copyFieldsToOther(SkImageDecoder* ) {} -bool SkImageDecoder::DecodeFile(const char[], SkBitmap*, SkBitmap::Config, - SkImageDecoder::Mode, SkImageDecoder::Format*) { +bool SkImageDecoder::DecodeFile(const char[], SkBitmap*, SkColorType, Mode, Format*) { return false; } -bool SkImageDecoder::decode(SkStream*, SkBitmap*, SkBitmap::Config, Mode) { +bool SkImageDecoder::decode(SkStream*, SkBitmap*, SkColorType, Mode) { return false; } -bool SkImageDecoder::DecodeStream(SkStreamRewindable*, SkBitmap*, SkBitmap::Config, - SkImageDecoder::Mode, - SkImageDecoder::Format*) { +bool SkImageDecoder::DecodeStream(SkStreamRewindable*, SkBitmap*, SkColorType, Mode, Format*) { return false; } -bool SkImageDecoder::DecodeMemory(const void*, size_t, SkBitmap*, - SkBitmap::Config, SkImageDecoder::Mode, - SkImageDecoder::Format*) { +bool SkImageDecoder::DecodeMemory(const void*, size_t, SkBitmap*, SkColorType, Mode, Format*) { return false; } @@ -53,7 +48,7 @@ bool SkImageDecoder::buildTileIndex(SkStreamRewindable*, int *width, int *height return false; } -bool SkImageDecoder::decodeSubset(SkBitmap*, const SkIRect&, SkBitmap::Config) { +bool SkImageDecoder::decodeSubset(SkBitmap*, const SkIRect&, SkColorType) { return false; } |