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 SkColorType fColorType; | 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 { kAlpha_8_SkColorType, 0xFF000000, 0xFF000000 }, | 21 { kAlpha_8_SkColorType, 0xFF000000, 0xFF000000 }, |
22 { kAlpha_8_SkColorType, 0, 0 }, | 22 { kAlpha_8_SkColorType, 0, 0 }, |
23 { kRGB_565_SkColorType, 0xFF00FF00, 0xFF00FF00 }, | 23 { kRGB_565_SkColorType, 0xFF00FF00, 0xFF00FF00 }, |
24 { kRGB_565_SkColorType, 0xFFFF00FF, 0xFFFF00FF }, | 24 { kRGB_565_SkColorType, 0xFFFF00FF, 0xFFFF00FF }, |
25 { kPMColor_SkColorType, 0xFFFFFFFF, 0xFFFFFFFF }, | 25 { kN32_SkColorType, 0xFFFFFFFF, 0xFFFFFFFF }, |
26 { kPMColor_SkColorType, 0, 0 }, | 26 { kN32_SkColorType, 0, 0 }, |
27 { kPMColor_SkColorType, 0xFF224466, 0xFF224466 }, | 27 { kN32_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, | 36 SkImageInfo info = SkImageInfo::Make(2, 2, gRec[i].fColorType, |
37 kPremul_SkAlphaType); | 37 kPremul_SkAlphaType); |
38 SkBitmap bm; | 38 SkBitmap bm; |
39 uint32_t storage[4]; | 39 uint32_t storage[4]; |
40 bm.installPixels(info, storage, info.minRowBytes(), NULL, NULL); | 40 bm.installPixels(info, storage, info.minRowBytes(), NULL, NULL); |
41 | 41 |
42 bm.eraseColor(initColor); | 42 bm.eraseColor(initColor); |
43 bm.eraseArea(area, gRec[i].fInColor); | 43 bm.eraseArea(area, gRec[i].fInColor); |
44 | 44 |
45 SkColor c = bm.getColor(1, 1); | 45 SkColor c = bm.getColor(1, 1); |
46 REPORTER_ASSERT(reporter, c == gRec[i].fOutColor); | 46 REPORTER_ASSERT(reporter, c == gRec[i].fOutColor); |
47 } | 47 } |
48 } | 48 } |
OLD | NEW |