OLD | NEW |
1 #include "sk_tool_utils.h" | 1 #include "sk_tool_utils.h" |
2 | 2 |
3 namespace sk_tool_utils { | 3 namespace sk_tool_utils { |
4 | 4 |
5 const char* colortype_name(SkColorType ct) { | 5 const char* colortype_name(SkColorType ct) { |
6 switch (ct) { | 6 switch (ct) { |
7 case kUnknown_SkColorType: return "Unknown"; | 7 case kUnknown_SkColorType: return "Unknown"; |
8 case kAlpha_8_SkColorType: return "Alpha_8"; | 8 case kAlpha_8_SkColorType: return "Alpha_8"; |
9 case kIndex_8_SkColorType: return "Index_8"; | 9 case kIndex_8_SkColorType: return "Index_8"; |
10 case kARGB_4444_SkColorType: return "ARGB_4444"; | 10 case kARGB_4444_SkColorType: return "ARGB_4444"; |
11 case kRGB_565_SkColorType: return "RGB_565"; | 11 case kRGB_565_SkColorType: return "RGB_565"; |
12 case kRGBA_8888_SkColorType: return "RGBA_8888"; | 12 case kRGBA_8888_SkColorType: return "RGBA_8888"; |
13 case kBGRA_8888_SkColorType: return "BGRA_8888"; | 13 case kBGRA_8888_SkColorType: return "BGRA_8888"; |
14 default: | 14 default: |
15 SkASSERT(false); | 15 SkASSERT(false); |
16 return "unexpected colortype"; | 16 return "unexpected colortype"; |
17 } | 17 } |
18 } | 18 } |
19 | 19 |
20 void config8888_to_imagetypes(SkCanvas::Config8888 config, SkColorType* ct, SkAl
phaType* at) { | |
21 switch (config) { | |
22 case SkCanvas::kNative_Premul_Config8888: | |
23 *ct = kPMColor_SkColorType; | |
24 *at = kPremul_SkAlphaType; | |
25 break; | |
26 case SkCanvas::kNative_Unpremul_Config8888: | |
27 *ct = kPMColor_SkColorType; | |
28 *at = kUnpremul_SkAlphaType; | |
29 break; | |
30 case SkCanvas::kBGRA_Premul_Config8888: | |
31 *ct = kBGRA_8888_SkColorType; | |
32 *at = kPremul_SkAlphaType; | |
33 break; | |
34 case SkCanvas::kBGRA_Unpremul_Config8888: | |
35 *ct = kBGRA_8888_SkColorType; | |
36 *at = kUnpremul_SkAlphaType; | |
37 break; | |
38 case SkCanvas::kRGBA_Premul_Config8888: | |
39 *ct = kRGBA_8888_SkColorType; | |
40 *at = kPremul_SkAlphaType; | |
41 break; | |
42 case SkCanvas::kRGBA_Unpremul_Config8888: | |
43 *ct = kRGBA_8888_SkColorType; | |
44 *at = kUnpremul_SkAlphaType; | |
45 break; | |
46 default: | |
47 SkASSERT(0); | |
48 } | |
49 } | |
50 | |
51 void write_pixels(SkCanvas* canvas, const SkBitmap& bitmap, int x, int y, | 20 void write_pixels(SkCanvas* canvas, const SkBitmap& bitmap, int x, int y, |
52 SkColorType colorType, SkAlphaType alphaType) { | 21 SkColorType colorType, SkAlphaType alphaType) { |
53 SkBitmap tmp(bitmap); | 22 SkBitmap tmp(bitmap); |
54 tmp.lockPixels(); | 23 tmp.lockPixels(); |
55 | 24 |
56 SkImageInfo info = tmp.info(); | 25 SkImageInfo info = tmp.info(); |
57 info.fColorType = colorType; | 26 info.fColorType = colorType; |
58 info.fAlphaType = alphaType; | 27 info.fAlphaType = alphaType; |
59 | 28 |
60 canvas->writePixels(info, tmp.getPixels(), tmp.rowBytes(), x, y); | 29 canvas->writePixels(info, tmp.getPixels(), tmp.rowBytes(), x, y); |
61 } | 30 } |
62 | 31 |
63 } | 32 } |
OLD | NEW |