blob: d13b0d81f8e2561fdd01cf1b0cae5d38a04f7b2f [file] [log] [blame]
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +00001#include "sk_tool_utils.h"
2
3namespace sk_tool_utils {
4
commit-bot@chromium.orga713f9c2014-03-17 21:31:26 +00005const char* colortype_name(SkColorType ct) {
6 switch (ct) {
7 case kUnknown_SkColorType: return "Unknown";
8 case kAlpha_8_SkColorType: return "Alpha_8";
9 case kIndex_8_SkColorType: return "Index_8";
10 case kARGB_4444_SkColorType: return "ARGB_4444";
11 case kRGB_565_SkColorType: return "RGB_565";
12 case kRGBA_8888_SkColorType: return "RGBA_8888";
13 case kBGRA_8888_SkColorType: return "BGRA_8888";
14 default:
15 SkASSERT(false);
16 return "unexpected colortype";
17 }
18}
19
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +000020void config8888_to_imagetypes(SkCanvas::Config8888 config, SkColorType* ct, SkAlphaType* 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
51void write_pixels(SkCanvas* canvas, const SkBitmap& bitmap, int x, int y,
52 SkColorType colorType, SkAlphaType alphaType) {
53 SkBitmap tmp(bitmap);
54 tmp.lockPixels();
skia.committer@gmail.come62513f2014-03-08 03:02:06 +000055
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +000056 SkImageInfo info = tmp.info();
57 info.fColorType = colorType;
58 info.fAlphaType = alphaType;
skia.committer@gmail.come62513f2014-03-08 03:02:06 +000059
commit-bot@chromium.org4cd9e212014-03-07 03:25:16 +000060 canvas->writePixels(info, tmp.getPixels(), tmp.rowBytes(), x, y);
61}
62
63}