Fix Red/Blue decoding problem in WebP.
Added unit test with lossless webp data.
BUG=skia:1402
Will need to rebaseline webp expectations for some systems.
R=scroggo@google.com
Review URL: https://codereview.chromium.org/105443005
git-svn-id: http://skia.googlecode.com/svn/trunk@12803 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/images/SkImageDecoder_libwebp.cpp b/src/images/SkImageDecoder_libwebp.cpp
index ab58aef..4a59510 100644
--- a/src/images/SkImageDecoder_libwebp.cpp
+++ b/src/images/SkImageDecoder_libwebp.cpp
@@ -173,7 +173,13 @@
SkBitmap::Config config = decodedBitmap->config();
if (config == SkBitmap::kARGB_8888_Config) {
- mode = premultiply ? MODE_rgbA : MODE_RGBA;
+ #if SK_PMCOLOR_BYTE_ORDER(B,G,R,A)
+ mode = premultiply ? MODE_bgrA : MODE_BGRA;
+ #elif SK_PMCOLOR_BYTE_ORDER(R,G,B,A)
+ mode = premultiply ? MODE_rgbA : MODE_RGBA;
+ #else
+ #error "Skia uses BGRA or RGBA byte order"
+ #endif
} else if (config == SkBitmap::kARGB_4444_Config) {
mode = premultiply ? MODE_rgbA_4444 : MODE_RGBA_4444;
} else if (config == SkBitmap::kRGB_565_Config) {