1 #include "Test.h"
2 #include "SkBitmap.h"
3
TestGetColor(skiatest::Reporter * reporter)4 static void TestGetColor(skiatest::Reporter* reporter) {
5 static const struct Rec {
6 SkBitmap::Config fConfig;
7 SkColor fInColor;
8 SkColor fOutColor;
9 } gRec[] = {
10 // todo: add some tests that involve alpha, so we exercise the
11 // unpremultiply aspect of getColor()
12 { SkBitmap::kA8_Config, 0xFF000000, 0xFF000000 },
13 { SkBitmap::kA8_Config, 0, 0 },
14 { SkBitmap::kARGB_4444_Config, 0xFF224466, 0xFF224466 },
15 { SkBitmap::kARGB_4444_Config, 0, 0 },
16 { SkBitmap::kRGB_565_Config, 0xFF00FF00, 0xFF00FF00 },
17 { SkBitmap::kRGB_565_Config, 0xFFFF00FF, 0xFFFF00FF },
18 { SkBitmap::kARGB_8888_Config, 0xFFFFFFFF, 0xFFFFFFFF },
19 { SkBitmap::kARGB_8888_Config, 0, 0 },
20 { SkBitmap::kARGB_8888_Config, 0xFF224466, 0xFF224466 },
21 };
22
23 for (size_t i = 0; i < SK_ARRAY_COUNT(gRec); i++) {
24 SkBitmap bm;
25 uint32_t storage[1];
26 bm.setConfig(gRec[i].fConfig, 1, 1);
27 bm.setPixels(storage);
28 bm.eraseColor(gRec[i].fInColor);
29
30 SkColor c = bm.getColor(0, 0);
31 REPORTER_ASSERT(reporter, c == gRec[i].fOutColor);
32 }
33 }
34
35 #include "TestClassDef.h"
36 DEFINE_TESTCLASS("GetColor", TestGetColorClass, TestGetColor)
37