• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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