Commit Graph

50 Commits

Author SHA1 Message Date
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
2019-12-18 04:38:43 -05:00
Nick Black
ff463d464e
Channels API sanity #119 (#138)
* orthogonalize channel/channels/cells APIs #119
* sync README.md with new ncplane channels api #119
2019-12-14 05:33:34 -05:00
nick black
a1c90a347a
add ncplane_box() corner masking 2019-12-13 19:40:22 -05:00
nick black
0001fa955d
on a wide enough screen, this test breaks 2019-12-12 17:05:17 -05:00
nick black
7c72b0ce83
emoji unit test 2019-12-12 16:14:01 -05:00
nick black
23f8a070b3
unit tests: don't try to close a NULL outfp_ 2019-12-12 09:08:06 -05:00
nick black
ca2f0471c3
setlocale(LC_ALL, "") everywhere 2019-12-12 08:59:16 -05:00
nick black
1821867e35
move outfp out of notcurses_options #130 2019-12-12 07:59:48 -05:00
nick black
7eafdd6772
fix up unit testing sanity 2019-12-10 06:59:35 -05:00
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
2019-12-10 06:02:49 -05:00
nick black
3085a5db31
fix up EmitWchar unit test 2019-12-08 14:26:35 -05:00
nick black
756eebc060
add ncplane_putwegc() and unit test #120 2019-12-07 23:00:18 -05:00
nick black
1b1729133c
add ncplane_putwstr(), add unit test #120 2019-12-07 20:37:25 -05:00
nick black
7566af57e3
introduce ncplane_set_[fb]g 2019-12-07 17:55:23 -05:00
nick black
8afcd04446
sync cell/ncplane fg/bg API naming 2019-12-06 22:45:08 -05:00
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
2019-12-04 10:00:23 -05:00
nick black
1bb114dbdc box unit tests: enlarge pattern #42 2019-12-04 04:50:26 -05:00
nick black
ae711b7e75 h/vline gradient unit tests #42 2019-12-04 04:50:26 -05:00
nick black
b711eaeedd box gradient unit tests #42 2019-12-04 04:50:26 -05:00
nick black
bdc841e46e ncplane_box: support box mask ctlword #42 2019-12-04 04:50:26 -05:00
nick black
a55e02836b ncplane_box: accept ctlword (#42) 2019-12-04 04:50:26 -05:00
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
2019-12-03 18:40:41 -05:00
nick black
e21594b4e9
ncplane_*_box_cells() -> cells_*_box() #97 2019-12-03 14:29:48 -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
e391bfbb81
input: add pass_through_esc option, otherwise run smkx #78 2019-11-29 03:26:37 -05:00
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
2019-11-28 22:08:26 -05:00
nick black
d5cc65715e ncplane userptr routines + unit tests #26 2019-11-28 11:43:49 -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
f514fe234c switch demos to ncplane_rounded_box_cells() 2019-11-26 21:50:50 -05:00
nick black
66432c37e1 libav: extract frame from AVFormatContext 2019-11-26 20:23:40 -05:00
nick black
7aaa0fcce1
track wide char as reported by wcwidth(), add unit test #6 2019-11-26 07:14:44 -05:00
nick black
f67a97edfb
correctly handle ASCII + combining chars, add unit tests #36 2019-11-25 21:11:27 -05:00
nick black
0d1fbdff06 unit test for boxes outside planes #37 2019-11-25 19:52:11 -05:00
nick black
6f92ae92ab egcpool: unit tests for utf8 conversion #20 2019-11-25 13:40:43 -05:00
nick black
ba08a6142e demo: call boxdemo 2019-11-24 18:38:27 -05:00
nick black
d400c79870 implement ncplane_box() and unit test #9 2019-11-24 18:38:27 -05:00
nick black
2b467c99af implement ncplane_vline() + unit test #9 2019-11-24 18:38:27 -05:00
nick black
e050770fde implement ncplane_hline() + unit test 2019-11-24 18:38:27 -05:00
nick black
0c262a3a6d implement ncplane_erase() #9 2019-11-24 18:38:27 -05:00
nick black
879009ff9a adapt test to new ncplane_putc() api 2019-11-24 16:11:35 -05:00
nick black
a509cb6320
someone set us up the bomb 2019-11-23 19:24:29 -05:00
nick black
e4f041f522
start moving to utf-8 from wchar_t #14 2019-11-23 18:34:06 -05:00
nick black
5129021480
add EmitWchar unit test 2019-11-23 12:52:09 -05:00
nick black
2f9821ce39
notcurses: interrogate terminfo for styles 2019-11-23 10:42:46 -05:00
Nick Black
7e92c8bb82
documentation and declarations (#13)
ncplane: flesh out API
ncplane: line and erase APIs
README.md: document differences from ncurses
notcurses_init(): print long term name
CMake: link librt into notcurses
cell: move functionality out to header
2019-11-23 09:05:32 -05:00
nick black
a8721df75a
ncplane: flesh out API 2019-11-22 22:47:12 -05:00
nick black
f07652f24b don't try to destroy nullptr ncplane in tests 2019-11-21 08:51:57 -05:00
nick black
c16b03cd9f ncplane: more basic unit testing 2019-11-21 08:51:57 -05:00
nick black
1fb1be6a4d ncplane: unit tests for rgb 2019-11-21 08:51:57 -05:00
nick black
691d3d97b8 some ncplane unit tests 2019-11-21 08:51:57 -05:00