2020-01-15 11:14:08 +00:00
|
|
|
% notcurses_palette(3)
|
|
|
|
% nick black <nickblack@linux.com>
|
2020-11-22 05:22:11 +00:00
|
|
|
% v2.0.7
|
2020-01-15 11:14:08 +00:00
|
|
|
|
|
|
|
# NAME
|
|
|
|
|
|
|
|
notcurses_palette - operations on notcurses palettes
|
|
|
|
|
|
|
|
# SYNOPSIS
|
|
|
|
|
2020-04-19 22:46:32 +00:00
|
|
|
**#include <notcurses/notcurses.h>**
|
2020-01-15 11:14:08 +00:00
|
|
|
|
|
|
|
```c
|
|
|
|
typedef struct palette256 {
|
|
|
|
// We store the RGB values as a regular ol' channel
|
|
|
|
uint32_t chans[256];
|
|
|
|
} palette256;
|
|
|
|
```
|
|
|
|
|
2020-11-06 21:49:35 +00:00
|
|
|
**bool notcurses_cantruecolor(const struct notcurses* ***nc***);**
|
2020-06-18 15:04:29 +00:00
|
|
|
|
2020-11-06 21:49:35 +00:00
|
|
|
**palette256* palette256_new(struct notcurses* ***nc***);**
|
2020-01-15 11:14:08 +00:00
|
|
|
|
2020-11-06 21:49:35 +00:00
|
|
|
**int palette256_use(struct notcurses* ***nc***, const palette256* ***p***);**
|
2020-01-15 11:14:08 +00:00
|
|
|
|
2020-11-06 21:49:35 +00:00
|
|
|
**int palette256_set_rgb8(palette256* ***p***, int ***idx***, int ***r***, int ***g***, int ***b***);**
|
2020-01-15 11:14:08 +00:00
|
|
|
|
2020-11-06 21:49:35 +00:00
|
|
|
**int palette256_set(palette256* ***p***, int ***idx***, unsigned ***rgb***);**
|
2020-01-15 11:14:08 +00:00
|
|
|
|
2020-11-06 21:49:35 +00:00
|
|
|
**int palette256_get_rgb8(const palette256* ***p***, int ***idx***, int* restrict ***r***, int* restrict ***g***, int* restrict ***b***);**
|
2020-01-15 11:14:08 +00:00
|
|
|
|
2020-11-06 21:49:35 +00:00
|
|
|
**void palette256_free(palette256* ***p***);**
|
2020-01-15 11:14:08 +00:00
|
|
|
|
2020-11-06 21:49:35 +00:00
|
|
|
**bool notcurses_canchangecolors(const struct notcurses* ***nc***);**
|
2020-01-19 11:16:09 +00:00
|
|
|
|
2020-01-15 11:14:08 +00:00
|
|
|
# DESCRIPTION
|
|
|
|
|
|
|
|
Some terminals only support 256 colors, but allow the full palette to be
|
|
|
|
specified with arbitrary RGB colors. In all cases, it's more performant to use
|
|
|
|
indexed colors, since it's much less data to write to the terminal. If you can
|
|
|
|
limit yourself to 256 colors, that's probably for the best.
|
|
|
|
|
|
|
|
In addition, palette-based color allows for very fast color cycling effects,
|
|
|
|
since a single command can affect many cells on the screen.
|
|
|
|
|
|
|
|
# RETURN VALUES
|
|
|
|
|
|
|
|
Functions returning `int` return -1 on failure, or 0 on success. Failure is
|
|
|
|
always due to invalid inputs. Functions returning `bool` are predicates, and
|
|
|
|
return the requested value. Functions returning `unsigned` forms return the
|
|
|
|
input, modified as requested.
|
|
|
|
|
|
|
|
# SEE ALSO
|
|
|
|
|
2020-05-09 00:56:39 +00:00
|
|
|
**notcurses(3)**,
|
|
|
|
**notcurses_cell(3)**,
|
|
|
|
**notcurses_channels(3)**,
|
|
|
|
**notcurses_output(3)**,
|
|
|
|
**notcurses_plane(3)**
|