nick black
c2c017831f
add ncplane_get_channels()
2019-12-12 16:23:05 -05:00
nick black
1821867e35
move outfp out of notcurses_options #130
2019-12-12 07:59:48 -05:00
nick black
8de3696268
add ncplane_putwstr_aligned(), update docs #102
2019-12-12 07:07:04 -05:00
nick black
de595380b6
ncplane_putstr_aligned(), use it in intro #102
2019-12-12 07:01:05 -05:00
nick black
5735e5966a
add _yx-suffixed output forms #102
2019-12-12 06:38:16 -05:00
nick black
c0b10a8f32
enable sgr/sgr0 #73
2019-12-12 06:21:16 -05:00
nick black
194b76a9d3
input: update comment, no longer driven through cell
2019-12-11 00:47:46 -05:00
nick black
208077b95c
enmetric unit tests
2019-12-10 16:21:18 -05:00
nick black
8672ae3caa
update docs regarding input
2019-12-10 06:10:01 -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
93231c26eb
input: use SPUA-B for special keys #118
2019-12-08 15:32:57 -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
08859aeb29
use CELL_STYLE_SHIFT rather than bare 16u
2019-12-08 12:59:41 -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
222889c7c6
add ncplane_*_rgb()
2019-12-07 15:13:08 -05:00
nick black
8afcd04446
sync cell/ncplane fg/bg API naming
2019-12-06 22:45:08 -05:00
nick black
bacc69380a
uniblock: restore backgrounds
2019-12-05 04:18:43 -05:00
nick black
3c93030177
notcurses_*_default_prep()
2019-12-05 03:54:41 -05:00
nick black
774f8e5a23
summary: fix minima trackers
2019-12-05 02:01:49 -05:00
nick black
ac845b28a4
handle function keys, insert, end/home, etc #78
2019-12-05 00:24:08 -05:00
nick black
af7ca02f36
Decode input escape sequences to special keys #78
...
Add the necessary input buffer, non-blocking reads, escape trie,
and unit tests to support extended keys, including arrow keys.
Update notcurses-input to print Unicode Control Glyphs instead of
a blank space for control chars.
2019-12-04 23:46:24 -05:00
nick black
37b0e416c0
get everything prepped for reliable keyboard escapes #78
2019-12-04 23:46:24 -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
ae711b7e75
h/vline gradient unit tests #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
6f9b1e0379
Locking #82 ( #106 )
...
* remove unused simple_gcluster_p()
* detail statistics
* add byte statistics on rendering
* lock around notcurses_render() #82
* lock nc in notcurses_putc() #82
* lock ncplane_styles() and friends #82
2019-12-03 23:34:08 -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
5554b3fccb
persist elision/emission stats, expose them in API
2019-12-03 14:08:26 -05:00
nick black
415e238b3d
transparent planes #10
2019-12-02 05:49:13 -05:00
nick black
957af8151e
view-demo: add video element
2019-12-02 03:44:11 -05:00
nick black
966239747c
add ncplane_fadein() #40
2019-12-02 03:44:11 -05:00
nick black
02b30c822e
fix cel_rgb_get[bf]b() #40
2019-12-02 03:44:11 -05:00
nick black
4426ef0574
first go at ncplane_fadeout() #40
2019-12-02 03:44:11 -05:00
Nick Black
426f632300
Panelreels port #52 ( #90 )
...
Port of panelreels, unit tests, and panelreel-demo from outcurses #52 .
Doesn't completely work yet, but is surprisingly close!
2019-12-01 17:48:38 -05:00
nick black
36ed25fb46
fix cell_fg_default() and cell_bg_default()
2019-12-01 15:29:59 -05:00
nick black
28fac736bb
notcurses-view: stop() before printing error
...
implement ncvisual_render()
2019-12-01 15:29:59 -05:00
nick black
d106ebf0d3
libav: check for AVERROR_EOF #86
2019-12-01 15:29:59 -05:00
nick black
531340a145
libav: return averr to caller #86
2019-12-01 15:29:59 -05:00
nick black
c2f377d599
ncplane_background()/ncplane_set_background() #69
2019-12-01 02:22:13 -05:00
nick black
b993360f53
add ncplane API
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
b3c6f9232a
add renderfp option to render to a file
2019-11-29 05:55:41 -05:00
nick black
8c6d0495ee
input: decode special keys, call notcurses_resize() #79
2019-11-29 03:56:53 -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
cb60c11f09
input: factor out handle_getc(), export cell_simple_p() #8
2019-11-29 01:53:36 -05:00
nick black
c76735cb2a
notcurses_getc(): read from stdin
2019-11-29 01:17:35 -05:00
nick black
a037cdfe5a
add new notcurses-input binary #8
2019-11-29 00:20:30 -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
fe14403f9e
ncplane_double_box_cells(), used in sliding-demo #67
2019-11-28 16:27:15 -05:00
nick black
494ce69ebf
export styles unshifted, fix test in cell_get_style() #11
2019-11-28 15:58:53 -05:00
nick black
f65d168d83
notcurses_render(): call term_setstyles() for sgr stuff #11
2019-11-28 15:58:53 -05:00
nick black
bc662e92bb
notcurses_render(): add term_setstyle() #11
2019-11-28 15:58:53 -05:00
nick black
01beeb07b8
declare ncvisual_render() #61
2019-11-28 11:43:49 -05:00
nick black
d5cc65715e
ncplane userptr routines + unit tests #26
2019-11-28 11:43:49 -05:00
nick black
9a41257669
libavutil/libswscale versions in intro
2019-11-27 18:32:46 -05:00
nick black
5dfb07183c
libav: throw an swscaler in the mix #61
2019-11-27 18:32:46 -05:00
nick black
9ed5a8b6c7
decode AVPacket into AVFrame #61
2019-11-27 18:32:46 -05:00
nick black
4b2bf26ee2
ncvisual_destroy() implemented
2019-11-27 18:32:46 -05:00
nick black
2080e0bff3
unit tests for exercised 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
ee2e16736c
signal handlers for INT, QUIT, WINCH #27
2019-11-27 02:08:35 -05:00
nick black
f14ee490f2
CMake: visibility=hidden by default #56
2019-11-27 01:02:05 -05:00
nick black
ccb3c137b3
add ncplane_box_sized() and ncplane_rounded_box_cells()
2019-11-26 21:50:50 -05:00
nick black
80519c92fa
libav: add LoadVideo unit test #35
2019-11-26 20:23:40 -05:00
nick black
f20e8fde4b
add notcurses_image_open() #23
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
6b877f89a9
retain stdscr across a resize #28
2019-11-26 00:04:31 -05:00
nick black
f67a97edfb
correctly handle ASCII + combining chars, add unit tests #36
2019-11-25 21:11:27 -05:00
nick black
095d9035fb
notcurses_options: provide retain_cursor bool #29
2019-11-25 13:40:43 -05:00
nick black
da607561e3
move ncplane management all together #26
2019-11-25 09:55:55 -05:00
nick black
979f6828ed
erase in grid demo
2019-11-24 22:00:35 -05:00
nick black
f5a0c1920b
EGC, not wchar_t
2019-11-24 21:43:53 -05:00
nick black
27e90d9204
cell: implement fg/bgdefault bits
2019-11-24 18:38:27 -05:00
nick black
9934c1d45d
declare ncplane_box() #9
2019-11-24 18:38:27 -05:00
nick black
0ae550f5d1
declare cell_release()
2019-11-24 16:11:35 -05:00
Nick Black
b93bcebf0b
Extended grapheme clusters ( #15 )
...
Introduce egcpool for attached storage
Hook up style support
Switch entirely to UTF-8 char from wchar_t (#14 )
Pull out next EGC in cell_load (#14 )
2019-11-24 12:36:46 -05:00
nick black
0d10fdad79
spelling ugh
2019-11-23 21:34:35 -05:00
nick black
affb0c120b
kill duplicate decl and obsolete FIXME
2019-11-23 21:32:58 -05:00
nick black
13931aee60
implement ncplane_getc() #9
2019-11-23 20:45:53 -05:00
nick black
f9b88c5079
implement notcurses_palette_size()
2019-11-23 20:39:22 -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
7cb951ccc4
purge duplicate ncplane definitions
2019-11-23 12:53:55 -05:00
nick black
8856f67822
ncplane: background directcolor works
2019-11-23 12:39:54 -05:00
nick black
fd04c55d16
implement ncplane_putwstr #9
2019-11-23 12:28:42 -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
94c67af64d
notcurses_version: add to README
2019-11-21 11:03:02 -05:00
nick black
4fb5c9db71
readme touches
2019-11-21 11:00:40 -05:00
nick black
2dffc5ae1e
document basic use
2019-11-21 10:56:08 -05:00
nick black
b94e428277
ncplane: add ncplane_putwc()
2019-11-21 08:51:57 -05:00
nick black
d6aef3d2e6
notcurses_render: blit wchar_t arrays #5
2019-11-21 08:51:57 -05:00
nick black
691d3d97b8
some ncplane unit tests
2019-11-21 08:51:57 -05:00
nick black
a916c66052
introduce z-buffer of ncplanes
2019-11-21 08:51:57 -05:00
nick black
d3f9329737
notcurses_options: allow outfd to be specified
2019-11-21 08:51:57 -05:00
nick black
54ed3e108e
introduce notcurses_options struct #3
2019-11-21 08:51:57 -05:00