Commit Graph

173 Commits

Author SHA1 Message Date
nick black
306045116f API: always call complex from static simple 2020-01-07 16:15:27 -05:00
nick black
acef43c759
avcodec_parameters_to_context() #215 2020-01-07 09:30:50 -05:00
Nick Black
f5c6297902
Chun Li demo (#251)
* chun li demo
* ncvisual_decode: allow multiple renders of the same frame
* add -H to notcurses-demo man page
* update section 1 man page versions
2020-01-04 07:21:54 -05:00
nick black
5dd90f3735 add ncplane_dim_[yx] quick accessors 2020-01-04 04:34:29 -05:00
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
2020-01-04 02:37:55 -05:00
nick black
2ada135fc2
add ncplane_resize_simple() 2020-01-03 21:37:06 -05:00
nick black
0de1856e38 accept a loglevel for libav 2020-01-03 05:51:27 -05:00
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
2020-01-01 06:41:19 -05:00
nick black
35aa7f6e85
move cell_egc_copy() to internal.h 2019-12-31 21:29:57 -05:00
nick black
e81e58035e
notcurses_at_yx() added 2019-12-31 20:51:20 -05:00
nick black
2ea4f77875
introduce ncplane_aligned() #237 2019-12-30 02:28:40 -05:00
nick black
ed980f1059 pull _get from all accessors 2019-12-30 01:10:10 -05:00
nick black
014afa348b rename ncplane default -> base #236 2019-12-30 01:10:10 -05:00
nick black
c21a04137c curry a void* through ncvisual_stream #113 2019-12-29 23:28:14 -05:00
nick black
db8b99d594
notcurses_render: simplify using new alpha rules 2019-12-29 19:37:24 -05:00
nick black
924d80f0d5
don't blend default colors #235 2019-12-29 17:49:38 -05:00
nick black
46b1b8e622
notcurses_stats man page #213 2019-12-29 03:24:32 -05:00
nick black
663e7e2eef
setting default also sets opaque #235 2019-12-29 02:13:28 -05:00
nick black
daad1c7ea3
more man pages (#213) 2019-12-28 21:02:54 -05:00
nick black
7c5a13e7ac
notcurses_init(3) man page #213 2019-12-28 19:58:05 -05:00
nick black
21c3861804
s/bannner/banner/g, heh 2019-12-28 18:37:44 -05:00
nick black
e9890eefc0 general foreground elision #131 2019-12-27 20:27:12 -05:00
nick black
5b322add56 glyph-based background spec elision #131
When we emit a glyph that has no background pixels (i.e.
the U+2588 FULL BLOCK glyph), there's no need to emit a
background color change.

Eagle demo currently has hand-coded elision. Results from
80x70 runs using the `-c` parameter:

No optimization: 12.63MiB
Hand-optimized: 12.48MiB
New scheme, no hand-coded optimization: 12.45MiB

w00t!
2019-12-27 20:27:12 -05:00
nick black
132793211c
capabilities testing for fade/ffmpeg 2019-12-27 05:13:29 -05:00
nick black
f1453d106e freebsd: fix attribute ordering 2019-12-27 02:48:13 -05:00
nick black
bd034c983a input: handle modifiers+mouse (alt, shift, ctrl) #226 2019-12-27 02:48:13 -05:00
nick black
fb0e03fe89 UMOK: fadecb for faders #162 2019-12-27 02:48:13 -05:00
Nick Black
63ada9289c
Implement CELL_ALPHA_BLEND, improve transparency semantics #191 (#219)
* channels_blend() introduced
* implement CELL_ALPHA_BLEND #191
* maxcolor demo: slidingpanel
* much improved transparency semantics #191
* maxcolor: show all transparencies #191
2019-12-25 06:36:35 -05:00
nick black
cb2bf16a73 support building sans ffmpeg #153 2019-12-25 02:24:10 -05:00
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.
2019-12-23 23:12:29 -05:00
nick black
f742676aee Mouse support using button event tracking #165
Request and parse up mouse messages. We handle up to 11 mouse
buttons, 3 modifiers (currently thrown away), motion while
holding down a button, and loss/gain of focus. I've added twelve
new NCKEYs: one for each button, and one for release. In addition,
I've introduced the 'ncinput' struct, which encodes the nckey plus
extra data. The only extra data thus far is coordinates for mouse
events. It is not necessary to provide a ncinput to all input
functions; NULL can be provided if the caller doesn't care about
details. All demos are updated. notcurses-input has been updated
to decode full information of returned ncinputs.

The primary resource for this work was Dickey at al's "XTerm Control
Sequences", https://invisible-island.net/xterm/ctlseqs/ctlseqs.html.
2019-12-23 19:08:12 -05:00
nick black
aceda89261 input: add NCKEY_MOUSEEVENT, match against CSI prefix #165 2019-12-23 19:08:12 -05:00
nick black
fc17a104b4
notcurses_options: clear screen on start 2019-12-23 03:36:37 -05:00
nick black
ab47ab8976
notcurses_mouse_on()/_off() #165 2019-12-23 02:47:34 -05:00
Nick Black
3ad2124246
Partial visual renders #170 (#193)
* ncvisual_render() accept four bounding dims #175
* ncvisual_render(): partial renders #175
2019-12-21 16:02:27 -05:00
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
2019-12-20 20:38:13 -05:00
nick black
3f326ee0a8 fix up ncplane_set_{bf}g 2019-12-20 09:42:41 -05:00
nick black
6a9d6fa122
add ncplane_printf_yx() 2019-12-20 04:12:30 -05:00
nick black
5bec85746d
allow banners to be suppressed 2019-12-20 00:34:21 -05:00
nick black
32e9fd0a1d
notcurses_reset_stats() added + test #164 2019-12-20 00:05:03 -05:00
nick black
d6bcb3211f eagles level starts at lower-right 2019-12-19 22:20:18 -05:00
nick black
0861b96bde wchar_t -> char32_t in input stack #171 2019-12-19 22:20:18 -05:00
nick black
3cfe88ee0c ncscale_e enumeration for ncvisuals #168 2019-12-19 22:20:18 -05:00
nick black
94722c0f28
Merge branch 'master' of github.com:dankamongmen/notcurses 2019-12-18 11:06:21 -05:00
nick black
ddfd5219ed
notcurses_getc() needs return wchar_t #161 2019-12-18 11:06:16 -05:00
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
040607c6f9
fix up linear interpolations 2019-12-18 00:07:11 -05:00
Nick Black
dfc7623119
Implement notcurses_refresh() #150 (#156)
* boxdemo: clean up colors
* Fix crash on certain resizes due to corruption of damage map #152
* Rewrite ncplane_move_yx(), throwing out ~25 line of code
* implement notcurses_refresh() #150
2019-12-17 23:07:21 -05:00
nick black
c5acdaaef0 don't allow moving a plane above/below itself #71 2019-12-16 21:31:18 -05:00
nick black
dac4f78ee6 basic unit tests for z-axis #71 2019-12-16 21:31:18 -05:00