Generated by Doxygen 1.8.14
Neographics
color.h
1 #pragma once
2 #ifdef NGFX_IS_CORE
3 #include <stdint.h>
4 #else
5 #include <pebble.h>
6 #endif
7 #include "colors.h"
8 
9 /*-----------------------------------------------------------------------------.
10 | |
11 | Color |
12 | |
13 `-----------------------------------------------------------------------------*/
14 
26 typedef union n_GColor8 {
27  struct {
28  // little endian, so reverse field order (within byte)
29  uint8_t b:2;
30  uint8_t g:2;
31  uint8_t r:2;
32  uint8_t a:2;
33  };
34  uint8_t argb;
35 } n_GColor8;
36 
37 typedef n_GColor8 n_GColor;
38 
42 inline bool n_gcolor_equal(n_GColor8 a, n_GColor8 b) {
43  return a.argb == b.argb;
44 }
45 
50  return (color.r + color.g + color.b > 6) ? n_GColorWhite : n_GColorBlack;
51 }
52 
56 #define n_GColorFromRGBA(_r, _g, _b, _a) \
57  ((n_GColor8) {{.a = ((_a) >> 6) & 0b11, .r = ((_r) >> 6) & 0b11,\
58  .g = ((_g) >> 6) & 0b11, .b = ((_b) >> 6) & 0b11}})
59 
63 #define n_GColorFromRGB(_r, _g, _b) \
64  ((n_GColor8) {{.a = 0b11, .r = ((_r) >> 6) & 0b11,\
65  .g = ((_g) >> 6) & 0b11, .b = ((_b) >> 6) & 0b11}})
66 
70 #define n_GColorFromHEX(_h) n_GColorFromRGB(((_h) >> 16) & 0b11111111, \
71  ((_h) >> 8) & 0b11111111, \
72  (_h) & 0b11111111)
73 
Definition: color.h:26
bool n_gcolor_equal(n_GColor8 a, n_GColor8 b)
Definition: color.h:42
union n_GColor8 n_GColor8
n_GColor8 n_gcolor_legible_over(n_GColor8 color)
Definition: color.h:49