Commit Graph

595 Commits (ee21f4e9edfd0a548b45964e057e280c98ba10f5)

Author SHA1 Message Date
nick black 3e853f6635
ncsubproc: map new pipe onto stdio #310 4 years ago
nick black 04f90fa1ea
ncsubproc: launch processes, make pipes
link to LWN article in History section of README.md.
4 years ago
Nick Black fe8034b5e0
ncfdplane, fileroller PoC, ncfdplane unit tests, qrcodes #24 #514 (#524)
* first draft of ncsubproc spec
* qrcode first draft #24
* demo: add qrcode demo skeleton, entries #24
* qrcode demo #24
* fedora python build changes from @dcantrell
* ncplane_qrcode() works #24
* add some flash to the qrcode demo #24
* drone: use newest builders
* fix up rgb PoC
* drop jungle demo to 100Hz target
* add fd.c
* ncfd skeletons
* more ncfdplane #514
* ncfdp i/o loop
* ncfp: improve uinit test, write core
* firm up ncfdplane #514
* fileroller PoC #514
* ncplane: allow '\n' in stream when scrolling #523
4 years ago
nick black 4823098316
Hurd: uint64_t is ULL, fix up printf format/constants #519 4 years ago
Nick Black 1c7796a2b0
ncdirect_cursor_yx, ncdirect_cursor_pop, ncdirect_cursor_push #401 (#492)
* ncdirect_cursor_{push, pop, yx} declarations #401
* direct PoC: invoke ncdirect_cursor_yx() #401
* direct PoC: move to top of screen #401
* OTHERS.md: mention blessings
* ncdirect_cursor_yx working #401
* CHANGELOG: mention ncdirect_cursor_*() #401
4 years ago
Nick Black c6a9997554
Normalize ncplane_at_* / ncplane_set_base() (#479)
* ncplane_at_* and ncplane_at_cursor_*

We had notcurses_at_yx() expanding into three distinct parts of
the cell structure, and ncplane_at_yx() / ncplane_at_cursor()
writing directly to a cell. It was annoying to remember which
was which. The latter two now have a signature matching
notcurses_at_yx(), while the old functionality has been moved
to ncplane_at_yx_cell() and ncplane_at_cursor_yx(). #476
4 years ago
nick black 0e47db3979 quadrant/braille step plots #461 4 years ago
nick black 6ec9b2d250 hrm 4 years ago
nick black d274af34b9 ncplot: define 2x2 and 4x2 sets #461 4 years ago
nick black e27895ef2e Optimized general cursor moves #483 4 years ago
nick black 355ea6d3d7
Allow EGCpools up to 1GB #425 4 years ago
nick black f356af418b
Scrolling: cell_release() cleared rows #482 4 years ago
nick black a4e1d68786
Add ExhaustPool unit test #482 4 years ago
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.
4 years ago
nick black 08e769f989
rasterize: don't emit 0-byte write()s #482 4 years ago
nick black 327c9cba78 Scrolling! all unit tests work #443 4 years ago
nick black b385feef8f zero out newly-scrolled lines #443 4 years ago
nick black 646bcf3db2 finish out ScrollingOffBottom test #443 4 years ago
nick black 40067c0ccd interpret logical plane line via scrolled_row() #443 4 years ago
nick black a7d9220f21 cell_load(): recycle when possible #473 4 years ago
nick black 45b821645a Only left sides of wide glyphs are 2 columns
At various places in rendering and rasterizing, we advance two
columns upon encountering a wide glyph. When dealing with a
single plane, this is always correct, because we're always
hitting the first column of the multicolumn glyph. Once multiple
planes are brought into play, though, we can very much hit the
second column of said glyph, in which case we mustn't advance
two columns, but only one. Resolves #474 by way of #475. w00t!
4 years ago
nick black c934c7be49
colons in output 4 years ago
nick black 14184e8dbb
summary: use colons rather than slashes for emit:elide 4 years ago
nick black b0fc654444 Check that cell is not wide right in render #362 4 years ago
nick black b0aa6b9a7f simplify wide handling in putc_yx #362 4 years ago
nick black b04a37c433
plots: always start from the right #457 4 years ago
nick black cfdd8c4c5c
plot: remove unused windowbase field 4 years ago
nick black 2c2da61c72
ncdirect: add relative move functions #419 4 years ago
nick black 3649cd1a92
notcurses_resize(): fix bug, reclaim 10% perf loss 4 years ago
nick black a7e6e83711
notcurses_resize(): purge from public API #367 4 years ago
Nick Black c2a645e9af
Rust wrapper work (#454)
* packaging: s/libtinfo/Terminfo/g
* rust: add stddim_yx()
* rust: check for valid init in unit tests
* rust: serialize up tests
* constify notcurses_term_dim_yx()
* rust: add dim wrappers
* remove notcurses_resize() from public API #367
* call notcurses_resize() from notcurses_refresh() #367
4 years ago
Nick Black d66549d362
Prep for Fedora packaging (#452)
* jungle demo should be available outside of DFSG builds
* libav: blitters don't need FFMpeg
* CMake: threads independent of ffmpeg
* CMake: add USE_TESTS option to disable tests #450
* tetris: work without ffmpeg
* fedora: flesh out specfile #328
* menu poc: don't use ffmpeg at all
* compile PoCs with binary/include
* multiselect PoC: work without ffmpeg
4 years ago
nick black c38981ee59
ncplot work #445 #448
Tighten up interval arithmetic. Render the plot immediately upon
creation so that the labels are visible. Properly perform domain
detection on miny by initializing it to 2^64-1. Handle plotting
when miny > maxy, as it now will be upon creation when using
domain detection (#448). Add spaces as the first element of each
glyph cycle (#445).
4 years ago
nick black 77dd998b05
ncplot uses exclusively non-negative samples #447 4 years ago
nick black 85c568b3a4
ncplot: redraw upon creation so axis labels are visible 4 years ago
nick black 5c44416426
export ncplane_putstr_yx() as static inline 4 years ago
nick black 4a6ab358ba inline ncplane_putsimple_yx() 4 years ago
nick black dc14483878 implement scrolling #323 4 years ago
nick black 0ee1779e82 ncplane_putstr_yx(): kill useless cell prep and FIXME 4 years ago
nick black b3710bd87e drop _locked() from ncplane_cursor_move_yx() 4 years ago
nick black 0ddb3c0002 implement ncplane_set_scrolling() #323 4 years ago
nick black 4917603478
ncplot: swap NCPLOT_2x1 and NCPLOT_1x1x4 4 years ago
nick black 3e202d6fa6 label dependent axis when requested #438 4 years ago
nick black dfd54f540a keyplot: ticker thead so we needn't provide input 4 years ago
nick black 8214665b7e keyplot: only show yaxis labels on one plot #438 4 years ago
nick black c022800295 plot: fix up slotcount vis-a-vis rangex #438 4 years ago
nick black c6cfafc2fc hrmmm 4 years ago
nick black 2a7ccffec6 ncplot: add labelaxisd, use it in keyplot #438 4 years ago
nick black c0f8d9b444
eliminate detectdomain, infer it from maxy==miny #439 4 years ago
nick black 1c75ac5bd3 plot: implement minchannel with ncplane_stain() #136 4 years ago