add optional pref-config table to codecs
git-svn-id: http://skia.googlecode.com/svn/trunk@519 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/images/SkImageDecoder_libbmp.cpp b/src/images/SkImageDecoder_libbmp.cpp
index a4dcbf6..30bfbdb 100644
--- a/src/images/SkImageDecoder_libbmp.cpp
+++ b/src/images/SkImageDecoder_libbmp.cpp
@@ -31,8 +31,7 @@
}
protected:
- virtual bool onDecode(SkStream* stream, SkBitmap* bm,
- SkBitmap::Config pref, Mode mode);
+ virtual bool onDecode(SkStream* stream, SkBitmap* bm, Mode mode);
};
static SkImageDecoder* Factory(SkStream* stream) {
@@ -81,8 +80,7 @@
bool fJustBounds;
};
-bool SkBMPImageDecoder::onDecode(SkStream* stream, SkBitmap* bm,
- SkBitmap::Config prefConfig, Mode mode) {
+bool SkBMPImageDecoder::onDecode(SkStream* stream, SkBitmap* bm, Mode mode) {
size_t length = stream->getLength();
SkAutoMalloc storage(length);
@@ -110,12 +108,12 @@
int width = callback.width();
int height = callback.height();
- SkBitmap::Config config = SkBitmap::kARGB_8888_Config;
-
+ SkBitmap::Config config = this->getPrefConfig(k32Bit_SrcDepth, false);
+
// only accept prefConfig if it makes sense for us
- if (SkBitmap::kARGB_4444_Config == prefConfig ||
- SkBitmap::kRGB_565_Config == config) {
- config = prefConfig;
+ if (SkBitmap::kARGB_4444_Config != config &&
+ SkBitmap::kRGB_565_Config != config) {
+ config = SkBitmap::kARGB_8888_Config;
}
SkScaledBitmapSampler sampler(width, height, getSampleSize());