Commit Graph

65 Commits (e4297242877f1db81eb7b86b8d634d0ab9ae74a9)

Author SHA1 Message Date
nick black 9fc53e811f
ncplane_perimeter() plus unit test 4 years ago
nick black 85e377e652
Accept US-ASCII/C encoding, with warning. 4 years ago
nick black 54c57b3487 s/CELL_STYLE/NCSTYLE/ throughout 4 years ago
nick black 08f6fa0e79 implement ncplane_dup() 5 years ago
Nick Black 7ec022d067
Painter's algorithm #255 (#274)
* notcursesI.avi 30 -> 60fps
* painter's algorithm works #255
5 years ago
Nick Black f6975d11d5
Docs/API sweep for 1.0.0 #244 #249 (#250)
* sync up some docs #244
* sync README and man page
* notcurses_output() man page work
* pull attr/channels from output functions #244
* witherworm: clean up explicit moves #244
* still more man page work
* notcurses_lines, last of the man pages i think
* panelreel man page #244
* debian: ruby-ronn->pandoc
* debian: full multiarch compliance
* debian: symbols file
* pandoc: fix syntax for lexgrog
* fm6.mkv: strip audio
* pandoc: fix up apropos man syntax #249
* ncurses_lines man page
5 years ago
Nick Black 2fbc94e41c
Higher planes obliterate bisected wide glyphs #158 (#243)
* higher planes stomp wide glyphs
* broken unit test
* develop out widestomp PoC
* fix notcurses_at_yx()
* fix up dig_visible_cell() return value
* refuse wide glyph on last column #242
* set adjacent cell wide when rendering #158
* xray: eliminate weird color flicker
* witherworm: don't eat wide glyphs
* unit test for boxed glyph
* uniblock: no need to emit so many U+200Es
* witherworm: remove wide glyph hack
5 years ago
nick black 2ea4f77875
introduce ncplane_aligned() #237 5 years ago
nick black 21c3861804
s/bannner/banner/g, heh 5 years ago
Nick Black ce2a390b52
Out with googletest, in with doctest #202 (#231)
* introduce doctest over googletest #202
* call dtester in in targets
* doctest conversion #202
* channel.cpp -> doctest #202
* egcpool tests -> doctest #202
* input tests to doctester
* zaxis -> doctest
* drone: always define LANG
* libav to doctest #202
* panelreel tests to doctest #202
* spec that a C++17 compiler is now required for doctest #202
* enmetric tests -> doctest #202
* fade tests -> doctest #202
* notcurses test case -> doctest #202
* last conversion to doctest #202
* finish move to doctest #202
* drone: set up make test
5 years ago
nick black 66057e0363
eliminate most uniglyphs from unit tests #196 5 years ago
nick black 37a45955ad
FreeBSD: declare array explicitly 5 years ago
nick black cb2bf16a73 support building sans ffmpeg #153 5 years ago
nick black 452e1d302e
output API enhancements #210 #209
Allow -1 in move specification to remain where we are on that
axis (#210), necessary for context-sensitive aligned output.
Add _aligned forms to printf and vprintf. Invert various output
functions so that simpler form is static inline wrapper around
more complicated form, rather than complicated form being a
static inline composition, facilitating atomic move+output. All
output forms now have a simple form (no alignment, placement at
cursor), an _aligned() form, and a _yx() form.
5 years ago
Nick Black 0e0925a84e
Planereel exploration app, panelreel logic fixes (#188)
* planereels tester #180
* suppress_banner in all tests
* tabletcb: start passing back tablet
* properly initialize fbbytes stat
* panelreel: logic fixes #178
* install all testing data
5 years ago
Nick Black 957549105b
Wide character rigor (#117) (#157)
* unidamage PoC
* add cell_load_simple()
* clear CELL_WIDEASIAN_MASK in cell_load()
* split out render code
* add CELL_SIMPLE_INITIALIZER
* widecolor: fix message plane
* widecolor: simplify color increments
* document wide character handling
* unit tests for wide obliteration #117
* widechar obliteration hardening #117
* widecolor -> widechomper, update man page
5 years ago
Nick Black ff463d464e
Channels API sanity #119 (#138)
* orthogonalize channel/channels/cells APIs #119
* sync README.md with new ncplane channels api #119
5 years ago
nick black a1c90a347a
add ncplane_box() corner masking 5 years ago
nick black 0001fa955d
on a wide enough screen, this test breaks 5 years ago
nick black 7c72b0ce83
emoji unit test 5 years ago
nick black 23f8a070b3
unit tests: don't try to close a NULL outfp_ 5 years ago
nick black ca2f0471c3
setlocale(LC_ALL, "") everywhere 5 years ago
nick black 1821867e35
move outfp out of notcurses_options #130 5 years ago
nick black 7eafdd6772
fix up unit testing sanity 5 years ago
Nick Black 0d2c43603b
Luigi in Mega Man world (#127)
* uniblock-demo: reset background to black
* warning about quantization
* some luigi love
* update cell documentation
* add unit test for move of stdplane
* MoveToLowerRight unit test
* ncplane_move_yx(): error to move stdscr
* better box permutations test
* luigi in megaman2 world
* stats: don't print 'em if we haven't got 'em
5 years ago
nick black 3085a5db31
fix up EmitWchar unit test 5 years ago
nick black 756eebc060
add ncplane_putwegc() and unit test #120 5 years ago
nick black 1b1729133c
add ncplane_putwstr(), add unit test #120 5 years ago
nick black 7566af57e3
introduce ncplane_set_[fb]g 5 years ago
nick black 8afcd04446
sync cell/ncplane fg/bg API naming 5 years ago
Nick Black c0a1ee0f31
Spruce up slider demo, fix up uniblock demo #66 #72 (#112)
Slider demo: paint chunks in a pattern, then shuffle them up #72
Right-to-left unit tests #66
Fix up damage to uniblock demo using cup explicit cursor move #66
5 years ago
nick black 1bb114dbdc box unit tests: enlarge pattern #42 5 years ago
nick black ae711b7e75 h/vline gradient unit tests #42 5 years ago
nick black b711eaeedd box gradient unit tests #42 5 years ago
nick black bdc841e46e ncplane_box: support box mask ctlword #42 5 years ago
nick black a55e02836b ncplane_box: accept ctlword (#42) 5 years ago
Nick Black 8e8cb92c54
Improved cell API #97 (#103)
* cell/ncplane: simplify box API (#97)
* widecolor: use new box api (#97)
* uniblock: use new box API #97
* intro: use new box api #97
* panelreel: use new box api
* boxdemo: use new box API #97
* sliding: use new box API #97
* maxcolor: use new box api #97
* factor out notcurses_channel_prep() #97
* maxcolor: use new channel API #97
* sliding: use new channel API #97
* intro: use new channel API #97
* new output functions with no need for a cell
* add ncplane_putegc() and ncplane_putsimple(). the former takes an EGC, the latter a simple char less than 0x80. (#97)
* cell_prime: directly load all parts of a cell with immediates
* widecolor: use new output API #97
* boxdemo: properly initialize cells
* slider: total time cap of 5 * delaydemo
* maxcolor: use new output API #97
5 years ago
nick black e21594b4e9
ncplane_*_box_cells() -> cells_*_box() #97 5 years ago
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
5 years ago
nick black e391bfbb81
input: add pass_through_esc option, otherwise run smkx #78 5 years ago
Nick Black 7f9ac490b0
ncplane_resize(), slider demo (#64) (#74)
* sliding: bounding box around puzzle
* slider: make moves, deleting planes #61
* implement z-index move functions
* demo: allow demos to be chosen via command-line option
* allow default bg/fg to be explicitly chosen
* ncplane_resize() unit test #64
* useful links
* slider: use random colors
* use find_above() in ncplace_destroy()
* ncplane_resize() work #64
5 years ago
nick black d5cc65715e ncplane userptr routines + unit tests #26 5 years ago
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
5 years ago
nick black f514fe234c switch demos to ncplane_rounded_box_cells() 5 years ago
nick black 66432c37e1 libav: extract frame from AVFormatContext 5 years ago
nick black 7aaa0fcce1
track wide char as reported by wcwidth(), add unit test #6 5 years ago
nick black f67a97edfb
correctly handle ASCII + combining chars, add unit tests #36 5 years ago
nick black 0d1fbdff06 unit test for boxes outside planes #37 5 years ago
nick black 6f92ae92ab egcpool: unit tests for utf8 conversion #20 5 years ago
nick black ba08a6142e demo: call boxdemo 5 years ago