4 {0xFF, 0xFF, 0xFF, 0x45, 0x45, 0xFF, 0xFF, 0xFF},
5 {0xFF, 0xFF, 0xE1, 0x00, 0x00, 0xE1, 0xFF, 0xFF},
6 {0xFF, 0xFF, 0x45, 0x0C, 0x0C, 0x45, 0xFF, 0xFF},
7 {0xFF, 0xE1, 0x00, 0xE1, 0xE1, 0x00, 0xE1, 0xFF},
8 {0xFF, 0x45, 0x0C, 0xFF, 0xFF, 0x0C, 0x45, 0xFF},
9 {0xE1, 0x00, 0xE1, 0xFF, 0xFF, 0xE1, 0x00, 0xE1},
10 {0x45, 0x0C, 0xE1, 0xE1, 0xE1, 0xE1, 0x0C, 0x45},
11 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
15 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
16 {0x45, 0x0C, 0xE1, 0xE1, 0xE1, 0xE1, 0x0C, 0x45},
17 {0xE1, 0x00, 0xE1, 0xFF, 0xFF, 0xE1, 0x00, 0xE1},
18 {0xFF, 0x45, 0x0C, 0xFF, 0xFF, 0x0C, 0x45, 0xFF},
19 {0xFF, 0xE1, 0x00, 0xE1, 0xE1, 0x00, 0xE1, 0xFF},
20 {0xFF, 0xFF, 0x45, 0x0C, 0x0C, 0x45, 0xFF, 0xFF},
21 {0xFF, 0xFF, 0xE1, 0x00, 0x00, 0xE1, 0xFF, 0xFF},
22 {0xFF, 0xFF, 0xFF, 0x45, 0x45, 0xFF, 0xFF, 0xFF},
26 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0x45, 0x00},
27 {0xFF, 0xFF, 0xFF, 0xE1, 0x45, 0x00, 0x0C, 0x00},
28 {0xFF, 0xE1, 0x45, 0x00, 0x0C, 0xE1, 0xE1, 0x00},
29 {0x45, 0x00, 0x0C, 0xE1, 0xFF, 0xFF, 0xE1, 0x00},
30 {0x45, 0x00, 0x0C, 0xE1, 0xFF, 0xFF, 0xE1, 0x00},
31 {0xFF, 0xE1, 0x45, 0x00, 0x0C, 0xE1, 0xE1, 0x00},
32 {0xFF, 0xFF, 0xFF, 0xE1, 0x45, 0x00, 0x0C, 0x00},
33 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xE1, 0x45, 0x00},
37 {0x00, 0x45, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
38 {0x00, 0x0C, 0x00, 0x45, 0xE1, 0xFF, 0xFF, 0xFF},
39 {0x00, 0xE1, 0xE1, 0x0C, 0x00, 0x45, 0xE1, 0xFF},
40 {0x00, 0xE1, 0xFF, 0xFF, 0xE1, 0x0C, 0x00, 0x45},
41 {0x00, 0xE1, 0xFF, 0xFF, 0xE1, 0x0C, 0x00, 0x45},
42 {0x00, 0xE1, 0xE1, 0x0C, 0x00, 0x45, 0xE1, 0xE1},
43 {0x00, 0x0C, 0x00, 0x45, 0xE1, 0xFF, 0xFF, 0xFF},
44 {0x00, 0x45, 0xE1, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
48 {0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF},
49 {0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF},
50 {0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF},
51 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
52 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
53 {0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF},
54 {0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF},
55 {0xFF, 0xFF, 0xFF, 0x00, 0x00, 0xFF, 0xFF, 0xFF},
59 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
60 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
61 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
62 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
63 {0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00},
64 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
65 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
66 {0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
94 const uint8_t * KeyView::mask()
const {
KDSize minimalSizeForOptimalDisplay() const override
const uint8_t plusMask[KeyView::k_keySize][KeyView::k_keySize]
const uint8_t upMask[KeyView::k_keySize][KeyView::k_keySize]
const uint8_t minusMask[KeyView::k_keySize][KeyView::k_keySize]
void markRectAsDirty(KDRect rect)
void blendRectWithMask(KDRect rect, KDColor color, const uint8_t *mask, KDColor *workingBuffer)
const uint8_t leftMask[KeyView::k_keySize][KeyView::k_keySize]
const uint8_t downMask[KeyView::k_keySize][KeyView::k_keySize]
KDColor s_keyWorkingBuffer[KeyView::k_keySize *KeyView::k_keySize]
KeyView(Type type=Type::Up)
void drawRect(KDContext *ctx, KDRect rect) const override
constexpr KDColor KDColorBlack
const uint8_t rightMask[KeyView::k_keySize][KeyView::k_keySize]
static constexpr KDCoordinate k_keySize
KDCoordinate width() const
KDCoordinate height() const