OLD | NEW |
1 /* | 1 /* |
2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
3 * | 3 * |
4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
6 */ | 6 */ |
7 | 7 |
8 #include "SkBitmap.h" | 8 #include "SkBitmap.h" |
9 #include "SkRandom.h" | 9 #include "SkRandom.h" |
10 #include "SkRect.h" | 10 #include "SkRect.h" |
11 #include "Test.h" | 11 #include "Test.h" |
12 | 12 |
13 DEF_TEST(GetColor, reporter) { | 13 DEF_TEST(GetColor, reporter) { |
14 static const struct Rec { | 14 static const struct Rec { |
15 SkBitmap::Config fConfig; | 15 SkColorType fColorType; |
16 SkColor fInColor; | 16 SkColor fInColor; |
17 SkColor fOutColor; | 17 SkColor fOutColor; |
18 } gRec[] = { | 18 } gRec[] = { |
19 // todo: add some tests that involve alpha, so we exercise the | 19 // todo: add some tests that involve alpha, so we exercise the |
20 // unpremultiply aspect of getColor() | 20 // unpremultiply aspect of getColor() |
21 { SkBitmap::kA8_Config, 0xFF000000, 0xFF000000 }, | 21 { kAlpha_8_SkColorType, 0xFF000000, 0xFF000000 }, |
22 { SkBitmap::kA8_Config, 0, 0 }, | 22 { kAlpha_8_SkColorType, 0, 0 }, |
23 { SkBitmap::kRGB_565_Config, 0xFF00FF00, 0xFF00FF00 }, | 23 { kRGB_565_SkColorType, 0xFF00FF00, 0xFF00FF00 }, |
24 { SkBitmap::kRGB_565_Config, 0xFFFF00FF, 0xFFFF00FF }, | 24 { kRGB_565_SkColorType, 0xFFFF00FF, 0xFFFF00FF }, |
25 { SkBitmap::kARGB_8888_Config, 0xFFFFFFFF, 0xFFFFFFFF }, | 25 { kPMColor_SkColorType, 0xFFFFFFFF, 0xFFFFFFFF }, |
26 { SkBitmap::kARGB_8888_Config, 0, 0 }, | 26 { kPMColor_SkColorType, 0, 0 }, |
27 { SkBitmap::kARGB_8888_Config, 0xFF224466, 0xFF224466 }, | 27 { kPMColor_SkColorType, 0xFF224466, 0xFF224466 }, |
28 }; | 28 }; |
29 | 29 |
30 // specify an area that doesn't touch (0,0) and may extend beyond the | 30 // specify an area that doesn't touch (0,0) and may extend beyond the |
31 // bitmap bounds (to test that we catch that in eraseArea | 31 // bitmap bounds (to test that we catch that in eraseArea |
32 const SkColor initColor = 0xFF0000FF; | 32 const SkColor initColor = 0xFF0000FF; |
33 const SkIRect area = { 1, 1, 3, 3 }; | 33 const SkIRect area = { 1, 1, 3, 3 }; |
34 | 34 |
35 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) { | 35 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) { |
| 36 SkImageInfo info = SkImageInfo::Make(2, 2, gRec[i].fColorType, |
| 37 kPremul_SkAlphaType); |
36 SkBitmap bm; | 38 SkBitmap bm; |
37 uint32_t storage[4]; | 39 uint32_t storage[4]; |
38 bm.setConfig(gRec[i].fConfig, 2, 2); | 40 bm.installPixels(info, storage, info.minRowBytes(), NULL, NULL); |
39 bm.setPixels(storage); | |
40 | 41 |
41 bm.eraseColor(initColor); | 42 bm.eraseColor(initColor); |
42 bm.eraseArea(area, gRec[i].fInColor); | 43 bm.eraseArea(area, gRec[i].fInColor); |
43 | 44 |
44 SkColor c = bm.getColor(1, 1); | 45 SkColor c = bm.getColor(1, 1); |
45 REPORTER_ASSERT(reporter, c == gRec[i].fOutColor); | 46 REPORTER_ASSERT(reporter, c == gRec[i].fOutColor); |
46 } | 47 } |
47 } | 48 } |
OLD | NEW |