blob: 02f7040a227fa2b4b5d2a0f4164a8dcfbb68e4b3 [file] [log] [blame]
msarettb23e6aa2015-06-09 13:56:10 -07001/*
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 */
18static 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
msarett7f6283b2015-06-30 13:29:37 -070035/*
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 */
40static inline void alloc_pixels(SkBitmap* bitmap, const SkImageInfo& info, SkPMColor* colors,
41 int colorCount) {
42 if (kIndex_8_SkColorType == info.colorType()) {
halcanary385fe4d2015-08-26 13:07:48 -070043 SkAutoTUnref<SkColorTable> colorTable(new SkColorTable(colors, colorCount));
halcanary96fcdcc2015-08-27 07:41:13 -070044 bitmap->allocPixels(info, nullptr, colorTable);
msarett7f6283b2015-06-30 13:29:37 -070045 } else {
46 bitmap->allocPixels(info);
47 }
48}
49
msarettb23e6aa2015-06-09 13:56:10 -070050#endif // SubsetBenchPriv_DEFINED