Commit Graph

198 Commits

Author SHA1 Message Date
nick black
1fd0563093
Direct mode with its own type #77
Introduce the new type 'ncdirect', a stripped-down 'notcurses'
suitable for inline modification of regular output. Used the new
type because otherwise there were going to be if(directmode) checks
everywhere. Direct mode encompasses only colorizing and styling.
Add new man page notcurses_directmode(3). Add new section to README.
Add new PoC using direct mode RGB. Update demo table summary to use
direct mode.
2020-01-25 01:13:04 -05:00
nick black
3d4e157af6 direct-mode coloring #77 2020-01-24 04:06:41 -05:00
nick black
2ea10d4b28 Remove clear_screen_start option
As it turns out, we can't portably load the initial terminal contents
(there are some hacks of various EXTREME nature, but none of them are
worth it for the rather limited benefit). The O(1)-time damage
inference requires knowledge of what was previously present to
inibit unnecessary draws. We would then need some special cell value
indicating "not yet written to" to distinguish a purposeful null
cell from an initial cell. Again, we could do this, but for what value?

Finally, the idea of clearing new area on SIGWINCH was always flawed,
as we can't do that from a signal handler.

With the advent of direct mode #77, the reason for this largely goes
away in any case.
2020-01-24 04:06:41 -05:00
nick black
55699c6a3c
render summary: autoscale all times 2020-01-22 08:28:56 -05:00
Marek Habersack
75a90461dd Add C++ bindings 2020-01-22 06:47:43 -05:00
nick black
be3a53f3cf
input: function key defs through kf59 2020-01-20 00:00:09 -05:00
nick black
507c3e1d00
expunge wayward fragment of comment 2020-01-19 15:15:42 -05:00
nick black
4ece4a9075
demo: skip demos which we don't have support for 2020-01-19 06:09:59 -05:00
Nick Black
3d612aebcb
ruins color cycling demo #253 (#287)
* palette_set: update pal256 damage map #230
* drone: use newest builders
* palette: send oc on exit for color reset #285
* palette_new: copy existing palette in #230
* Python: use checkRGB everywhere
* more palette unit testing
* add ncplane_set_*_palindex()
* render fg palindex #230
* palette index color is out of 1000
* jungle demo works #253
2020-01-18 20:42:29 -05:00
nick black
3e9347a339
palette color: unit test for alpha clear 2020-01-17 11:49:21 -05:00
nick black
b02acd8631
Curry a void* to fader callbacks #284 2020-01-17 09:30:53 -05:00
nick black
1b01494c79 implement ncplane_greyscale() #280 2020-01-17 08:35:28 -05:00
nick black
08f6fa0e79 implement ncplane_dup() 2020-01-17 08:35:28 -05:00
nick black
209d4f41f4 palette: add necessary predicates #230 2020-01-17 08:35:28 -05:00
nick black
0e70304596 palette indexing: set up attributes #230 2020-01-17 08:35:28 -05:00
nick black
6365fc0917 encode palette index into channels/attr #230 2020-01-17 08:35:28 -05:00
nick black
684bcdcc8c introduce palette256 #230 2020-01-17 08:35:28 -05:00
nick black
67b5a20758 implement ncplane_putwc_yx() 2020-01-15 04:50:54 -05:00
nick black
dd7f8eff4b
ncvisual_stream: add timescale param 2020-01-14 15:50:17 -05:00
nick black
23b5078ed1
pulsing text declarations 2020-01-14 01:09:26 -05:00
nick black
56a54b5441
break apart render/rasterize #155 2020-01-12 23:01:03 -05:00
nick black
2ebc3e2bfe blend: conditionally blend in alpha 2020-01-12 07:46:38 -05:00
nick black
3faffaa847 channels_blend() : don't blend in wide status #260 2020-01-12 07:46:38 -05:00
nick black
922c639355 cell: add clipped 2020-01-12 07:46:38 -05:00
nick black
0f60af347d add clipped set functions 2020-01-12 07:46:38 -05:00
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