Commit Graph

55 Commits

Author SHA1 Message Date
nick black
ea41c5ebaf fix cell_extended_p() for big-endian 2021-06-29 12:56:50 +00:00
nick black
346512ccdf
eliminate type-2 gclusters, sprixels no longer interact with fb #1656 2021-05-14 01:39:04 -04:00
nick black
b87407eb36
remove unused cell_sprixel_id() #1656 2021-05-14 01:15:38 -04:00
nick black
96981c8e75
extract paint_sprixel() as single loop #1587 2021-04-24 06:36:06 -04:00
nick black
68d4ebebef
[sixel] disable sprite_sixel_annihilate() for now #1388 2021-03-24 02:22:44 -04:00
nick black
ccb02c61b3 [pixel] bypass sprixel planes in paint() #1401 2021-03-16 00:32:45 -04:00
nick black
645b61e9dc [pixel] pass celldimy through blitterargs #1401 2021-03-16 00:32:45 -04:00
nick black
b18682e86c [pixels] rewrite cell_pixels_p() for 0x02 #1401 2021-03-16 00:32:45 -04:00
nick black
b97af99fa0 man1: normalize notcurses case 2021-03-13 14:44:52 -05:00
nick black
3d9b3b679c
debian glibc 2.31-7 has unicode 13 support, back out ncwidth, yay 2021-01-03 18:41:26 -05:00
nick black
8b0de2aa1b
introduce ncwidth() to handle sextants on pre-U13 libcs #1274 2021-01-02 22:06:28 -05:00
nick black
fd2acde1b1 rename cell->nccell, keep alias #1200 2020-12-13 00:49:37 -05:00
nick black
a3e7b3b5d0
utf8_egc_len: count all printing glyphs #1174 2020-12-12 06:28:17 -05:00
nick black
5bce6d62a8 cell_egc_idx: fix up endianness #1130 2020-12-09 01:42:09 +00:00
nick black
23af0a2626
htole() on cell_egc_idx() constants #1130 2020-12-07 11:12:14 -05:00
nick black
4cf4a4ce0b
egcpool: fix cell_egc_idx() math #1179 2020-12-06 11:55:45 -05:00
nick black
ea771217fb
cell_load_char() unit tests #1176 2020-12-05 02:18:05 -05:00
nick black
11bbf3c4ff correct endianness for cell_simple_p() 2020-12-05 00:39:37 -05:00
nick black
4d524f92bc apply htole() in ncpixel_*() #1130 2020-11-28 23:55:17 -05:00
nick black
dab7247cdd
mbswidth: use utf8_egc_len() for segmentation #1014 2020-09-15 00:29:53 -04:00
nick black
301354a9ba utf8_egc_len: rewrite using uc_is_grapheme_break() #882 2020-09-10 03:50:12 -04:00
nick black
c834e2a78d
cell_simple_p(): fix for htole() #979 2020-08-31 14:36:46 -04:00
nick black
ee649ba0fa
cell_simple_p(): endianness fix #906 2020-08-27 09:48:18 -04:00
nick black
9c6077a44c
move cell_simple_p() for debug builds 2020-08-21 05:47:53 -04:00
nick black
d523b41200 utf8_egc_len: work around treacherous wcwidth #903 2020-08-17 16:14:06 -04:00
nick black
2ceb2f5097 egcpool_extended_gcluster: assert() for great justice 2020-08-15 17:38:20 -04:00
nick black
ce84101939 egcpool_extended_gcluster: a warning 2020-08-15 17:38:20 -04:00
nick black
b0f7f36995 egc inlining #830 2020-08-15 17:38:20 -04:00
nick black
ead60d06cc
unexport cell_egc_idx() 2020-08-02 23:45:58 -04:00
nick black
f0962fc6b5 utf8_etc_len: flatten wcwidth negative returns 2020-07-23 21:21:11 -04:00
nick black
3aedec2501 expose cell_load_direct() #797 2020-07-20 03:20:44 -04:00
nick black
86a75531c6
Support newlines in ncplane_putnstr() when scrolling #793 2020-07-15 18:37:54 -04:00
nick black
e32e4d9744
egcpool_stash: exit on strdup() failure #624 2020-06-03 04:44:13 -04:00
nick black
7215bf92ad
throw somed attributes on a few functions 2020-05-21 21:10:04 -04:00
nick black
355ea6d3d7
Allow EGCpools up to 1GB #425 2020-04-15 23:49:10 -04:00
nick black
3ddb1d3166
EGCPool: early realloc failure is not a hard fail
We do proactive reallocations of the EGCPool once we get
to 90% capacity, to avoid expensive exhaustive searches. When
we're over half the maximum size, though, this will fail. We
shouldn't treat that as a hard failure, but instead proceed on
to the search. This lets us hit the full 32MB EGCPool size #486.
2020-04-15 16:33:22 -04:00
Nick Black
e6637e81cc
Prep for serious rusting #101 (#354)
* CMake: add USE_PANDOC, USE_DOXYGEN options #101
* README: mention rust
* start integrating rust into build #101
* CMake: add USE_NETWORK option for cargo
* Debian: build-dep on doxygen
* rust: colloquy checks in Cargo.lock
* extract NCKEY defines into their own include
* colloquy: use clap to parse CLI args
* CMake: unify option namespace
* Python: update include path
* Rust: fix up --frozen workings for -DUSE_NETWORK=off
* CMake: abstract out colloquy a little
* Sync direct.hh to the New Way
2020-02-18 12:36:16 -05:00
nick black
f3af2b8760
Convert mbtowc to mbrtowc everywhere #308 2020-02-01 17:21:13 -05:00
Nick Black
da0283ac25
Selector widget #166, subtitles #95 (#301)
Get rid of annoying empty line in notcurses-view (and ncvisuals at offsets in general)
Implement most of the Selector widget. Need to add styling and scrolling still. #166
Reenable ubuntu focal build
Subtitles! We decode them, and display them in notcurses-view. If ncvisual_simple_streamer() is provided an extra ncplane, it will use it to display subtitles. #95
We now build Python by default, as things are working much better.
ncplane_set_base() now takes channel, attrword, and EGC, so you can usually avoid having to set up and release a cell. ncplane_set_base_cell() takes over duty from ncplane_set_base() for ease of conversion.
notcurses-demo and notcurses-view now both accept a 0 for delay multiplier, meaning 'go as fast as you possibly can'. Very small multipliers (e.g. 0.00001) no longer cause floating point exceptions.
fading routines no longer cause floating point exceptions on very small timescales.
2020-01-30 08:55:01 -05:00
nick black
08f6fa0e79 implement ncplane_dup() 2020-01-17 08:35:28 -05:00
Nick Black
9b81de3789
O(1) passive damage detection #189 (#197)
* notcurses: set up lastframe #189
* render: o(1) take no prisoners damage detection #189
2019-12-22 08:08:53 -05:00
Nick Black
38a10d9065
Transparency via alpha channels (#122)
* outro: bevel message window's corners
* egcspool: use full 25 bits available for 32MB pools
* render: remove unused inheritance mask
* interfaces + unit tests for 2-bit alpha
* notcurses_*g_alpha() acccessors
* cell alpha + unit tests
* panelreel: support a background channel
* notcurses: transparency via alpha channel
* remove unused CELL_ALPHA_MASK
2019-12-08 13:00:19 -05:00
nick black
d09029f7f4
use -std=c11 not -std=gnu11 2019-12-03 13:31:04 -05:00
nick black
684d9f66fe egcpool: fix corruption #59 2019-12-01 02:22:13 -05:00
Nick Black
a7d50b557d
ncplane_at_cursor (#76), CCCflag, nonblocking stdin (#78) (#84)
* put stdin into nonblocking mode, retry on short write to stdout #78
* wrap getc_blocking() around a poll #78
* get CCCflag from terminfo. stop clearing the screen in render/startup
* implement ncplane_at_cursor() #76
* ncplane_at_cursor() unit test for simples #76
* PlaneAtCursorComplex unit test #76
* PlaneAtCursorInsane() unit test #76
* nplane_at_cursor: return number of bytes, not just 0/-1
* uniblock-demo: add a bunch of pages from Unicode 12
* demo: make -d delay multiplier a float
* egcpool: check offset against poolsize in check_validity()
* notcurses_init(): set smkx/rmkx to NULL with pass_through_esc
* PlaneAtCursorAttrs unit test #76
* add ncplane_styles() accessor
2019-11-30 22:53:24 -05:00
nick black
7bc58fe603 consistency check assert in egcpool #59 2019-11-27 18:32:46 -05:00
Nick Black
ba648dbd74
What a miserable evening tracking #57 (#60)
* widecolor-demo: don't emit spaces
* notcurses_init: newline before splash
* boxdemo: ncplane_erase() on entry #58
* uniblock-demo: print even wide chars #49
2019-11-27 10:43:03 -05:00
nick black
f14ee490f2
CMake: visibility=hidden by default #56 2019-11-27 01:02:05 -05:00
nick black
f67a97edfb
correctly handle ASCII + combining chars, add unit tests #36 2019-11-25 21:11:27 -05:00
nick black
5220836798 completely reset egcpool in egcpool_dump() 2019-11-25 19:38:35 -05:00