2020-01-01 21:23:11 -05:00
|
|
|
% notcurses_channels(3)
|
|
|
|
% nick black <nickblack@linux.com>
|
2022-12-10 05:20:23 -05:00
|
|
|
% v3.0.9
|
2020-01-01 21:23:11 -05:00
|
|
|
|
|
|
|
# NAME
|
|
|
|
|
2020-01-04 02:37:55 -05:00
|
|
|
notcurses_channels - operations on notcurses channels
|
2020-01-01 21:23:11 -05:00
|
|
|
|
|
|
|
# SYNOPSIS
|
|
|
|
|
2020-04-19 18:46:32 -04:00
|
|
|
**#include <notcurses/notcurses.h>**
|
2020-01-01 21:23:11 -05:00
|
|
|
|
2020-08-24 15:15:27 -04:00
|
|
|
```c
|
2021-08-13 14:14:33 -04:00
|
|
|
#define NCCHANNEL_INITIALIZER(r, g, b) \
|
2021-07-10 18:34:00 -04:00
|
|
|
(((uint32_t)r << 16u) + ((uint32_t)g << 8u) + (b) + NC_BGDEFAULT_MASK)
|
2021-08-13 14:14:33 -04:00
|
|
|
|
|
|
|
#define NCCHANNELS_INITIALIZER(fr, fg, fb, br, bg, bb) \
|
|
|
|
((NCCHANNEL_INITIALIZER(fr, fg, fb) << 32ull) + \
|
|
|
|
(NCCHANNEL_INITIALIZER(br, bg, bb)))
|
2020-08-24 15:15:27 -04:00
|
|
|
```
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-27 14:10:41 -04:00
|
|
|
**uint32_t ncchannel_r(uint32_t ***channel***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-27 14:10:41 -04:00
|
|
|
**uint32_t ncchannel_g(uint32_t ***channel***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-27 14:10:41 -04:00
|
|
|
**uint32_t ncchannel_b(uint32_t ***channel***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-12-17 03:17:56 -05:00
|
|
|
**uint32_t ncchannel_rgb(uint32_t ***channel***);**
|
|
|
|
|
2021-04-27 14:10:41 -04:00
|
|
|
**uint32_t ncchannel_rgb8(uint32_t ***channel***, uint32_t* restrict ***r***, uint32_t* restrict ***g***, uint32_t* restrict ***b***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-08-13 03:54:06 -04:00
|
|
|
**int ncchannel_set_rgb8(uint32_t* ***channel***, unsigned ***r***, unsigned ***g***, unsigned ***b***);**
|
2021-01-02 21:23:38 -05:00
|
|
|
|
2021-04-27 14:10:41 -04:00
|
|
|
**int ncchannel_set(uint32_t* ***channel***, uint32_t ***rgb***);**
|
2021-02-02 20:34:39 -05:00
|
|
|
|
2021-04-27 14:10:41 -04:00
|
|
|
**uint32_t ncchannel_alpha(uint32_t ***channel***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-27 14:10:41 -04:00
|
|
|
**int ncchannel_set_alpha(uint32_t* ***channel***, unsigned ***alpha***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-27 14:10:41 -04:00
|
|
|
**bool ncchannel_default_p(uint32_t ***channel***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-27 14:10:41 -04:00
|
|
|
**uint32_t ncchannel_set_default(uint32_t* ***channel***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-08-13 03:54:06 -04:00
|
|
|
**uint32_t ncchannels_fg_rgb(uint64_t ***channels***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-08-13 03:54:06 -04:00
|
|
|
**uint32_t ncchannels_bg_rgb(uint64_t ***channels***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-08-13 03:54:06 -04:00
|
|
|
**int ncchannels_set_fg_rgb(uint64_t* ***channels***, uint32_t ***rgb***);**
|
2021-02-02 20:34:39 -05:00
|
|
|
|
2021-08-13 03:54:06 -04:00
|
|
|
**int ncchannels_set_bg_rgb(uint64_t* ***channels***, uint32_t ***rgb***);**
|
2021-02-02 20:34:39 -05:00
|
|
|
|
2021-04-29 01:18:37 -04:00
|
|
|
**unsigned ncchannels_fg_alpha(uint64_t ***channels***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-29 01:18:37 -04:00
|
|
|
**unsigned ncchannels_bg_alpha(uint64_t ***channels***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-29 01:18:37 -04:00
|
|
|
**int ncchannels_set_fg_alpha(uint64_t* ***channels***, int ***alpha***);**
|
2021-02-02 20:34:39 -05:00
|
|
|
|
2021-04-29 01:18:37 -04:00
|
|
|
**int ncchannels_set_bg_alpha(uint64_t* ***channels***, int ***alpha***);**
|
2021-02-02 20:34:39 -05:00
|
|
|
|
2021-08-13 03:54:06 -04:00
|
|
|
**uint32_t ncchannels_fg_rgb8(uint64_t ***channels***, unsigned* ***r***, unsigned* ***g***, unsigned* ***b***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-08-13 03:54:06 -04:00
|
|
|
**uint32_t ncchannels_bg_rgb8(uint64_t ***channels***, unsigned* ***r***, unsigned* ***g***, unsigned* ***b***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-07-25 08:26:40 -05:00
|
|
|
**int ncchannels_set_fg_rgb8(uint64_t* ***channels***, unsigned ***r***, unsigned ***g***, unsigned ***b***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-07-25 08:26:40 -05:00
|
|
|
**int ncchannels_set_bg_rgb8(uint64_t* ***channels***, unsigned ***r***, unsigned ***g***, unsigned ***b***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-29 01:18:37 -04:00
|
|
|
**bool ncchannels_fg_default_p(uint64_t ***channels***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-29 01:18:37 -04:00
|
|
|
**bool ncchannels_bg_default_p(uint64_t ***channels***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-04-29 01:18:37 -04:00
|
|
|
**uint64_t ncchannels_set_fg_default(uint64_t* ***channels***);**
|
2020-08-24 15:15:27 -04:00
|
|
|
|
2021-04-29 01:18:37 -04:00
|
|
|
**uint64_t ncchannels_set_bg_default(uint64_t* ***channels***);**
|
2020-01-04 02:37:55 -05:00
|
|
|
|
2021-07-07 09:36:31 -04:00
|
|
|
**uint64_t ncchannels_reverse(uint64_t ***channels***);**
|
|
|
|
|
2021-11-19 08:50:35 -05:00
|
|
|
**unsigned ncchannel_palindex(uint32_t ***channel***);**
|
|
|
|
|
|
|
|
**bool ncchannel_palindex_p(uint32_t ***channel***);**
|
|
|
|
|
2021-12-19 06:44:20 -05:00
|
|
|
**int ncchannel_set_palindex(uint32_t* ***channel***, unsigned ***idx***);**
|
2021-11-19 08:50:35 -05:00
|
|
|
|
|
|
|
**unsigned ncchannels_fg_palindex(uint64_t ***channels***);**
|
|
|
|
|
|
|
|
**unsigned ncchannels_bg_palindex(uint64_t ***channels***);**
|
|
|
|
|
2021-12-19 06:44:20 -05:00
|
|
|
**int ncchannels_set_fg_palindex(uint64_t* ***channels***, unsigned ***idx***);**
|
2021-11-19 08:50:35 -05:00
|
|
|
|
2021-12-19 06:44:20 -05:00
|
|
|
**int ncchannels_set_bg_palindex(uint64_t* ***channels***, unsigned ***idx***);**
|
2021-11-19 08:50:35 -05:00
|
|
|
|
2022-01-23 21:45:06 -05:00
|
|
|
**uint64_t ncchannels_set_channels(uint64_t* ***dst***, uint64_t ***channels***);**
|
|
|
|
|
|
|
|
**uint64_t ncchannels_channels(uint64_t ***channels***);**
|
|
|
|
|
2021-11-19 08:50:35 -05:00
|
|
|
**uint64_t ncchannels_combine(uint32_t ***fchan***, uint32_t ***bchan***);**
|
|
|
|
|
2020-01-01 21:23:11 -05:00
|
|
|
# DESCRIPTION
|
|
|
|
|
2022-01-23 21:45:06 -05:00
|
|
|
Channels ought not be manually manipulated. They contain several bits used
|
|
|
|
"behind the scenes", and e.g. direct assignment is likely to lead to strange
|
|
|
|
and infrequent failures. To assign one channel pair to another, use
|
|
|
|
**ncchannels_set_channels**. To assign a channel to a channel pair's
|
|
|
|
foreground, use **ncchannels_set_fchannel**. To assign a channel to a channel
|
|
|
|
pair's background, use **ncchannels_set_bchannel**.
|
|
|
|
|
2021-11-19 08:50:35 -05:00
|
|
|
**ncchannel_palindex** extracts the palette index from a channel. The channel
|
|
|
|
must be palette-indexed, or the return value is meaningless. Verify palette
|
|
|
|
indexing with **ncchannel_palindex_p**. A channel can be set to palette
|
|
|
|
indexed mode (and have the index set) with **ncchannel_set_palindex**. The
|
|
|
|
index must be less than **NCPALETTESIZE**.
|
|
|
|
|
|
|
|
**ncchannels_combine** creates a new channel pair using ***fchan*** as the
|
|
|
|
foreground channel and ***bchan*** as the background channel.
|
2020-01-01 21:23:11 -05:00
|
|
|
|
|
|
|
# RETURN VALUES
|
|
|
|
|
2021-12-09 18:33:13 -05:00
|
|
|
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
|
2020-01-04 02:37:55 -05:00
|
|
|
input, modified as requested.
|
|
|
|
|
2021-07-07 09:36:31 -04:00
|
|
|
**ncchannels_reverse** inverts the color components of the two channels,
|
|
|
|
while holding all other elements constant. It's the Notcurses approximation
|
|
|
|
to reverse video.
|
|
|
|
|
2020-01-01 21:23:11 -05:00
|
|
|
# SEE ALSO
|
|
|
|
|
2020-05-08 20:56:39 -04:00
|
|
|
**notcurses(3)**,
|
|
|
|
**notcurses_cell(3)**,
|
|
|
|
**notcurses_plane(3)**,
|
2020-01-01 21:23:11 -05:00
|
|
|
**notcurses_output(3)**
|