logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

notcurses_channels - operations on notcurses channels

Authors

       nick black <nickblack@linux.com>.

                                                     v3.0.7                                notcurses_channels(3)

Description

       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 ncchan‐nels_set_fchannel.  To assign a channel to a channel pair's background, use ncchannels_set_bchannel.

       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.

Name

       notcurses_channels - operations on notcurses channels

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.

       ncchannels_reverse  inverts  the  color  components of the two channels, while holding all other elements
       constant.  It's the Notcurses approximation to reverse video.

See Also

notcurses(3), notcurses_cell(3), notcurses_plane(3), notcurses_output(3)

Synopsis

#include<notcurses/notcurses.h>

              #define NCCHANNEL_INITIALIZER(r, g, b) \
                (((uint32_t)r << 16u) + ((uint32_t)g << 8u) + (b) + NC_BGDEFAULT_MASK)

              #define NCCHANNELS_INITIALIZER(fr, fg, fb, br, bg, bb) \
                ((NCCHANNEL_INITIALIZER(fr, fg, fb) << 32ull) + \
                 (NCCHANNEL_INITIALIZER(br, bg, bb)))

       uint32_tncchannel_r(uint32_tchannel);uint32_tncchannel_g(uint32_tchannel);uint32_tncchannel_b(uint32_tchannel);uint32_tncchannel_rgb(uint32_tchannel);uint32_tncchannel_rgb8(uint32_tchannel,uint32_t*restrictr,uint32_t*restrictg,uint32_t*restrictb);intncchannel_set_rgb8(uint32_t*channel,unsignedr,unsignedg,unsignedb);intncchannel_set(uint32_t*channel,uint32_trgb);uint32_tncchannel_alpha(uint32_tchannel);intncchannel_set_alpha(uint32_t*channel,unsignedalpha);boolncchannel_default_p(uint32_tchannel);uint32_tncchannel_set_default(uint32_t*channel);uint32_tncchannels_fg_rgb(uint64_tchannels);uint32_tncchannels_bg_rgb(uint64_tchannels);intncchannels_set_fg_rgb(uint64_t*channels,uint32_trgb);intncchannels_set_bg_rgb(uint64_t*channels,uint32_trgb);unsignedncchannels_fg_alpha(uint64_tchannels);unsignedncchannels_bg_alpha(uint64_tchannels);intncchannels_set_fg_alpha(uint64_t*channels,intalpha);intncchannels_set_bg_alpha(uint64_t*channels,intalpha);uint32_tncchannels_fg_rgb8(uint64_tchannels,unsigned*r,unsigned*g,unsigned*b);uint32_tncchannels_bg_rgb8(uint64_tchannels,unsigned*r,unsigned*g,unsigned*b);intncchannels_set_fg_rgb8(uint64_t*channels,unsignedr,unsignedg,unsignedb);intncchannels_set_bg_rgb8(uint64_t*channels,unsignedr,unsignedg,unsignedb);boolncchannels_fg_default_p(uint64_tchannels);boolncchannels_bg_default_p(uint64_tchannels);uint64_tncchannels_set_fg_default(uint64_t*channels);uint64_tncchannels_set_bg_default(uint64_t*channels);uint64_tncchannels_reverse(uint64_tchannels);unsignedncchannel_palindex(uint32_tchannel);boolncchannel_palindex_p(uint32_tchannel);intncchannel_set_palindex(uint32_t*channel,unsignedidx);unsignedncchannels_fg_palindex(uint64_tchannels);unsignedncchannels_bg_palindex(uint64_tchannels);intncchannels_set_fg_palindex(uint64_t*channels,unsignedidx);intncchannels_set_bg_palindex(uint64_t*channels,unsignedidx);uint64_tncchannels_set_channels(uint64_t*dst,uint64_tchannels);uint64_tncchannels_channels(uint64_tchannels);uint64_tncchannels_combine(uint32_tfchan,uint32_tbchan);

See Also