Index: include/core/SkImageInfo.h |
diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h |
index 4b308c05d88ca736d69451f3b970c1bd71b30b12..1cac7ebc4deb44b1394b391c6151e4240a437478 100644 |
--- a/include/core/SkImageInfo.h |
+++ b/include/core/SkImageInfo.h |
@@ -86,42 +86,18 @@ enum SkColorType { |
#endif |
}; |
+extern const uint8_t gPrivate_SkColorTypeBytesPerPixel[]; |
+ |
static int SkColorTypeBytesPerPixel(SkColorType ct) { |
- static const uint8_t gSize[] = { |
- 0, // Unknown |
- 1, // Alpha_8 |
- 2, // RGB_565 |
- 2, // ARGB_4444 |
- 4, // RGBA_8888 |
- 4, // BGRA_8888 |
- 1, // kIndex_8 |
- 1, // kGray_8 |
- 8, // kRGBA_F16 |
- }; |
- static_assert(SK_ARRAY_COUNT(gSize) == (size_t)(kLastEnum_SkColorType + 1), |
- "size_mismatch_with_SkColorType_enum"); |
- |
- SkASSERT((size_t)ct < SK_ARRAY_COUNT(gSize)); |
- return gSize[ct]; |
+ SkASSERT((unsigned)ct <= (unsigned)kLastEnum_SkColorType); |
+ return gPrivate_SkColorTypeBytesPerPixel[ct]; |
} |
+extern const uint8_t gPrivate_SkColorTypeShiftPerPixel[]; |
+ |
static int SkColorTypeShiftPerPixel(SkColorType ct) { |
- static const uint8_t gShift[] = { |
- 0, // Unknown |
- 0, // Alpha_8 |
- 1, // RGB_565 |
- 1, // ARGB_4444 |
- 2, // RGBA_8888 |
- 2, // BGRA_8888 |
- 0, // kIndex_8 |
- 0, // kGray_8 |
- 3, // kRGBA_F16 |
- }; |
- static_assert(SK_ARRAY_COUNT(gShift) == (size_t)(kLastEnum_SkColorType + 1), |
- "size_mismatch_with_SkColorType_enum"); |
- |
- SkASSERT((size_t)ct < SK_ARRAY_COUNT(gShift)); |
- return gShift[ct]; |
+ SkASSERT((unsigned)ct <= (unsigned)kLastEnum_SkColorType); |
+ return gPrivate_SkColorTypeShiftPerPixel[ct]; |
} |
static inline size_t SkColorTypeMinRowBytes(SkColorType ct, int width) { |