msarett | b23e6aa | 2015-06-09 13:56:10 -0700 | [diff] [blame] | 1 | /* |
| 2 | * Copyright 2015 The Android Open Source Project |
| 3 | * |
| 4 | * Use of this source code is governed by a BSD-style license that can be |
| 5 | * found in the LICENSE file. |
| 6 | */ |
| 7 | |
| 8 | #ifndef SubsetBenchPriv_DEFINED |
| 9 | #define SubsetBenchPriv_DEFINED |
| 10 | |
| 11 | #include "SkCodec.h" |
| 12 | #include "SkData.h" |
| 13 | #include "SkImageGenerator.h" |
| 14 | |
| 15 | /* |
| 16 | * Convert the color type to a string |
| 17 | */ |
| 18 | static const char* get_color_name(SkColorType colorType) { |
| 19 | switch(colorType) { |
| 20 | case kN32_SkColorType: |
| 21 | return "N32"; |
| 22 | case kRGB_565_SkColorType: |
| 23 | return "565"; |
| 24 | case kGray_8_SkColorType: |
| 25 | return "Gray8"; |
| 26 | case kIndex_8_SkColorType: |
| 27 | return "Index8"; |
| 28 | case kAlpha_8_SkColorType: |
| 29 | return "Alpha8"; |
| 30 | default: |
| 31 | return "Unknown"; |
| 32 | } |
| 33 | } |
| 34 | |
msarett | 7f6283b | 2015-06-30 13:29:37 -0700 | [diff] [blame] | 35 | /* |
| 36 | * If we plan to decode to kIndex8, we must create a color table and pass it to the |
| 37 | * bitmap when we allocate pixels. Otherwise, we simply allocate pixels using the |
| 38 | * decode info. |
| 39 | */ |
| 40 | static inline void alloc_pixels(SkBitmap* bitmap, const SkImageInfo& info, SkPMColor* colors, |
| 41 | int colorCount) { |
| 42 | if (kIndex_8_SkColorType == info.colorType()) { |
halcanary | 385fe4d | 2015-08-26 13:07:48 -0700 | [diff] [blame] | 43 | SkAutoTUnref<SkColorTable> colorTable(new SkColorTable(colors, colorCount)); |
halcanary | 96fcdcc | 2015-08-27 07:41:13 -0700 | [diff] [blame] | 44 | bitmap->allocPixels(info, nullptr, colorTable); |
msarett | 7f6283b | 2015-06-30 13:29:37 -0700 | [diff] [blame] | 45 | } else { |
| 46 | bitmap->allocPixels(info); |
| 47 | } |
| 48 | } |
| 49 | |
msarett | b23e6aa | 2015-06-09 13:56:10 -0700 | [diff] [blame] | 50 | #endif // SubsetBenchPriv_DEFINED |