Index: src/image/SkImagePriv.cpp |
diff --git a/src/image/SkImagePriv.cpp b/src/image/SkImagePriv.cpp |
index a044aad0a0da343ca3eed7d301500d3c3c808da6..43cc44b2fa25aa5762611e3bfcf39e467f2e29f8 100644 |
--- a/src/image/SkImagePriv.cpp |
+++ b/src/image/SkImagePriv.cpp |
@@ -37,19 +37,35 @@ SkBitmap::Config SkImageInfoToBitmapConfig(const SkImageInfo& info) { |
return SkColorTypeToBitmapConfig(info.fColorType); |
} |
-SkColorType SkBitmapConfigToColorType(SkBitmap::Config config) { |
- static const SkColorType gCT[] = { |
- kUnknown_SkColorType, // kNo_Config |
- kAlpha_8_SkColorType, // kA8_Config |
- kIndex_8_SkColorType, // kIndex8_Config |
- kRGB_565_SkColorType, // kRGB_565_Config |
- kARGB_4444_SkColorType, // kARGB_4444_Config |
- kPMColor_SkColorType, // kARGB_8888_Config |
- }; |
- SkASSERT((unsigned)config < SK_ARRAY_COUNT(gCT)); |
- return gCT[config]; |
+bool SkBitmapConfigToColorType(SkBitmap::Config config, SkColorType* ctOut) { |
+ SkColorType ct; |
+ switch (config) { |
+ case SkBitmap::kA8_Config: |
+ ct = kAlpha_8_SkColorType; |
+ break; |
+ case SkBitmap::kIndex8_Config: |
+ ct = kIndex_8_SkColorType; |
+ break; |
+ case SkBitmap::kRGB_565_Config: |
+ ct = kRGB_565_SkColorType; |
+ break; |
+ case SkBitmap::kARGB_4444_Config: |
+ ct = kARGB_4444_SkColorType; |
+ break; |
+ case SkBitmap::kARGB_8888_Config: |
+ ct = kPMColor_SkColorType; |
+ break; |
+ case SkBitmap::kNo_Config: |
+ default: |
+ return false; |
+ } |
+ if (ctOut) { |
+ *ctOut = ct; |
+ } |
+ return true; |
} |
+ |
SkImage* SkNewImageFromBitmap(const SkBitmap& bm, bool canSharePixelRef) { |
SkImageInfo info; |
if (!bm.asImageInfo(&info)) { |