C-Menu 0.2.9
A User Interface Toolkit
Loading...
Searching...
No Matches
nccell.h
Go to the documentation of this file.
1#include <stdint.h>
2
3typedef struct nccell {
4 uint32_t gcluster; // 0 4 4 little endian EGC
5 uint8_t gcluster_backstop; // 4 1 5 (8 bits of zero)
6 uint8_t width; // 5 1 6 (8 bits of EGC column width)
7 uint16_t stylemask; // 6 2 8 (16 bits of NCSTYLE_* attributes)
8 uint64_t channels; // 8 8 16 (fg/bg, alpha, palette index, quadrant)
9} nccell;
10
11#define NCALPHA_HIGHCONTRAST 0x30000000ull
12#define NCALPHA_TRANSPARENT 0x20000000ull
13#define NCALPHA_BLEND 0x10000000ull
14#define NCALPHA_OPAQUE 0x00000000ull
15
16#define NCCHANNELS_FOREGROUND_ALPHA_MASK 0x3000000000000000ull
17#define NCCHANNELS_FOREGROUND_DEFAULT 0x4000000000000000ull
18#define NCCHANNELS_FOREGROUND_QUADRANT_UL 0x8000000000000000ull
19#define NCCHANNELS_FOREGROUND_QUADRANT_LR 0x0100000000000000ull
20#define NCCHANNELS_FOREGROUND_QUADRANT_LL 0x0200000000000000ull
21#define NCCHANNELS_FOREGROUND_QUADRANT_UR 0x0400000000000000ull
22#define NCCHANNELS_FOREGROUND_PALETTE 0x0800000000000000ull
23#define NCCHANNELS_FOREGROUND_MASK 0x00ffffff00000000ull
24#define NCCHANNELS_BACKGROUND_ALPHA_MASK 0x0000000030000000ull
25#define NCCHANNELS_BACKGROUND_DEFAULT 0x0000000040000000ull
26#define NCCHANNELS_RESERVED1 0x0000000080000000ull
27#define NCCHANNELS_RESERVED2 0x0000000007000000ull
28#define NCCHANNELS_BACKGROUND_PALETTE 0x0000000008000000ull
29#define NCCHANNELS_BACKGROUND_MASK 0x0000000000ffffffull
30
31// (channels & 0x3000000000000000ull): foreground alpha (2 bits)
32// (channels & 0x4000000000000000ull): foreground is *not* "default color"
33// (channels & 0x8000000000000000ull): blitted to upper-left quadrant
34// (channels & 0x0100000000000000ull): blitted to lower-right quadrant
35// (channels & 0x0200000000000000ull): blitted to lower-left quadrant
36// (channels & 0x0400000000000000ull): blitted to upper-right quadrant
37// (channels & 0x0800000000000000ull): foreground uses palette index
38// (channels & 0x00ffffff00000000ull): foreground in 3x8 RGB (rrggbb)
39// (channels & 0x0000000080000000ull): reserved, must be 0
40// (channels & 0x0000000040000000ull): background is *not* "default color"
41// (channels & 0x0000000030000000ull): background alpha (2 bits)
42// (channels & 0x0000000008000000ull): background uses palette index
43// (channels & 0x0000000007000000ull): reserved, must be 0
44// (channels & 0x0000000000ffffffull): background in 3x8 RGB (rrggbb)
Definition nccell.h:3
uint64_t channels
Definition nccell.h:8
uint16_t stylemask
Definition nccell.h:7
uint8_t gcluster_backstop
Definition nccell.h:5
uint8_t width
Definition nccell.h:6
uint32_t gcluster
Definition nccell.h:4