nick black
25ce448889
rgba_blit()/bgrx_blit() #311
5 years ago
nick black
f3af2b8760
Convert mbtowc to mbrtowc everywhere #308
5 years ago
nick black
44f80694a3
selector: bind with ┴ where appropriate #309
5 years ago
nick black
4716b5f495
selector: bind riser to body #309
5 years ago
nick black
20e4c106a2
FreeBSD build fixen #304
5 years ago
nick black
4af5c79b2a
notcurses-input: cast input to wchar_t for output
5 years ago
nick black
39f99dfa4a
Selector: final styling touches #302
5 years ago
nick black
c1664170fd
selector: bgchannels only inside the body #302
5 years ago
nick black
eab1ce0262
selector: align secondary/footer #302
5 years ago
nick black
45235fc076
Selector: add arrows if there are more options #302
5 years ago
nick black
fad612bd2f
Use column width in selector calculations #302
5 years ago
nick black
43ce3e5ccb
selector: don't FPE on empty itemlist #302
5 years ago
nick black
05a83e54c7
Selector: inverse rather than reverse video #302
5 years ago
nick black
fe51f93a4c
selector: destroy ncplane on exit
5 years ago
nick black
77432ee1c5
set ~ICRNL with termios.c_iflag #303
5 years ago
nick black
99b79cbf4f
ncselector_create: fix base_egc fuckup #302
5 years ago
nick black
6a4cfcde95
selector: always rotate options #302
5 years ago
nick black
d30df23f43
selector: support non-zero default idx #302
5 years ago
nick black
09d2e35372
C++ wrappers: kill Visual::destroy_plane() #299
...
ncvisual_destroy() already calls ncplane_destroy() when
appropriate. There's never a need for the C++ wrappers
to explicitly free the Visual's underlying Plane. With
this change, valgrind no longer complains upon exiting
notcurses-view(1).
5 years ago
nick black
a57f0f234c
selector styling
5 years ago
nick black
e4dcccc409
selector: implement scrolling
5 years ago
nick black
3991b3e53a
selector: implement maxdisplay. unit tests!
5 years ago
nick black
ac2b951fa9
ncselector_selected(), unit tests
5 years ago
Nick Black
da0283ac25
Selector widget #166 , subtitles #95 ( #301 )
...
Get rid of annoying empty line in notcurses-view (and ncvisuals at offsets in general)
Implement most of the Selector widget. Need to add styling and scrolling still. #166
Reenable ubuntu focal build
Subtitles! We decode them, and display them in notcurses-view. If ncvisual_simple_streamer() is provided an extra ncplane, it will use it to display subtitles. #95
We now build Python by default, as things are working much better.
ncplane_set_base() now takes channel, attrword, and EGC, so you can usually avoid having to set up and release a cell. ncplane_set_base_cell() takes over duty from ncplane_set_base() for ease of conversion.
notcurses-demo and notcurses-view now both accept a 0 for delay multiplier, meaning 'go as fast as you possibly can'. Very small multipliers (e.g. 0.00001) no longer cause floating point exceptions.
fading routines no longer cause floating point exceptions on very small timescales.
5 years ago
nick black
345ed60abd
Improve smcup handling
...
If we're going to issue smcup to switch to the alternate screen,
flush immediately after doing so. Otherwise, subsequent output
prior to the first render can be swept away. See growlight issue
75: https://github.com/dankamongmen/growlight/issues/75 . In the
demo, we now get this output either (a) at the beginning (if smcup
is inhibited) or (b) at the end (default). Only perform our pause
on startup in case (a).
5 years ago
Marek Habersack
cd6d1e16d1
Properly clean up when NotCurses instance is destructed
...
We need to set `_instance` to `nullptr` or we'll leave a dangling
pointer.
5 years ago
nick black
4e19d51e57
geom: tighten things up a bit
5 years ago
nick black
652cfbc9f1
more dumb geometry block tricks
5 years ago
nick black
c3d4ac8caa
geom.c: PoC fun with geometric shapes
5 years ago
nick black
c04a68896c
README: add FAQ entry about c++ scopes
5 years ago
nick black
24fc43fab5
demo: support 100k+ frames in HUD
5 years ago
nick black
2cad2bbfd5
direct mode: properly initialize termcaps #77
5 years ago
nick black
81b58234ee
direct mode: reset terminal, check vals #77
5 years ago
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.
5 years ago
nick black
83e40d3472
direct mode RGB PoC
5 years ago
nick black
ceb15e4e8f
demo summary: PoC direct mode with color #77
5 years ago
nick black
3d4e157af6
direct-mode coloring #77
5 years ago
nick black
d8849bb4b1
uniblocks: add a few missing blocks
5 years ago
nick black
e899f8b7ed
demo summary: also print real FPS
5 years ago
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.
5 years ago
nick black
78650e00da
replace gibberish with einstein field equation RHS
5 years ago
nick black
55699c6a3c
render summary: autoscale all times
5 years ago
Marek Habersack
75a90461dd
Add C++ bindings
5 years ago
nick black
22f71c9a80
implement quantize_rgb8() for linux console #288 #4
5 years ago
nick black
48025cd794
report Alt in ncinput #228
5 years ago
nick black
be3a53f3cf
input: function key defs through kf59
5 years ago
nick black
1aa462385e
detect ctrl+letter, prep ncinput appropriately #228
5 years ago
nick black
4ece4a9075
demo: skip demos which we don't have support for
5 years ago
nick black
b7bc693ef7
i'm WarMECH, bitch
5 years ago
nick black
ec5e857a6c
palette256: fix up unit tests
5 years ago
nick black
004f5ca1ea
Note copyright of Mark Ferrari for jungle demo
5 years ago
nick black
bee5be9d80
chunli: finalize out
5 years ago
nick black
19db2a5675
still more chunli
5 years ago
nick black
cffd08418a
more chun li
5 years ago
nick black
bb0cdb2b88
demo: add demo_nanosleep() for HUD
5 years ago
nick black
1e403123e1
s/notcurses_render/demo_render/g pass
5 years ago
nick black
6a2dae0279
box: punch it up a little
5 years ago
nick black
eb8ecb2433
jungle: center image, use demo_render()
5 years ago
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
5 years ago
nick black
02698ebbd1
add jungle demo
5 years ago
nick black
03e3c5406d
interrogate_term: check CCC if initc is defined
5 years ago
nick black
f450c1261a
libav: don't molest user pointer
5 years ago
nick black
c23b4196a2
notcurses-view: get status line back, urk
5 years ago
nick black
3e9347a339
palette color: unit test for alpha clear
5 years ago
nick black
f5e151e9a0
render+raster palette-index support #230
5 years ago
nick black
b02acd8631
Curry a void* to fader callbacks #284
5 years ago
nick black
d95069fb1e
fallin: more blocks, many more #283
5 years ago
nick black
ed783fe421
drop ncplane_erase() from slider
5 years ago
nick black
98fe08727b
fallen: open the curtain on patents.png
5 years ago
nick black
ff34fb387a
fallin' demo pretty much works #267
5 years ago
nick black
5d69545f22
rgb_greyscale: linear approximation to gamma decomp
5 years ago
nick black
fe2dcc3387
unibloick: call ncplane_greyscale() at start
5 years ago
nick black
1b01494c79
implement ncplane_greyscale() #280
5 years ago
nick black
3bd0732e81
notcurses_view: accept -s option
5 years ago
nick black
56479fd777
panelreel-demo: lock in border background
5 years ago
nick black
97e17c6cf5
demos: lock in some backgrounds
5 years ago
nick black
44af796e74
demos: lock in some backgrounds
5 years ago
nick black
3e6a862603
libav: require alpha 192 to be visible
5 years ago
nick black
02b845ba75
notcurses-view: quit on 'q'
5 years ago
nick black
4c7093901b
banner: print term shortname/dims
5 years ago
nick black
011f7524bb
reject bad demo spec before starting
5 years ago
nick black
df08a8fb8a
fallen demo working up through disappearance #267
5 years ago
nick black
9046bbfbe7
notcurses-view: erase screen between files
5 years ago
nick black
b3f4fbdf51
fix fallin' bug
5 years ago
nick black
55c946ca6b
fallin'
5 years ago
nick black
7860e1eace
first start of fallin' demo
5 years ago
nick black
2783a1b503
ncplane_move bugfix when already in desired config
5 years ago
nick black
08f6fa0e79
implement ncplane_dup()
5 years ago
nick black
38b2b3d075
render: fix bad reference in final pass
5 years ago
nick black
209d4f41f4
palette: add necessary predicates #230
5 years ago
nick black
0e70304596
palette indexing: set up attributes #230
5 years ago
nick black
20f4b3493c
send palette updates (initc) #230
5 years ago
nick black
dfcdd10cb5
more palette support/testing #230
5 years ago
nick black
684bcdcc8c
introduce palette256 #230
5 years ago
nick black
98446b4810
render: fix setting of channel on wide
5 years ago
nick black
97c0a34504
make pulser() available to all
5 years ago
nick black
d7d61aa669
trans: pulse up so HUD clock keeps moving
5 years ago
nick black
f953d18cfb
HUD: move to lower left
5 years ago
nick black
79c1314854
uniblock: up with the white and gold
5 years ago
nick black
fc1341ea5a
painter: skip unnecessary work
5 years ago
nick black
b2dcc7cdf2
demo: push delaymult through to ncvisuals
5 years ago
nick black
0f435240d6
xray: scroll twice as quickly
5 years ago
nick black
7295377db7
panelreeldemo: don't block on input
5 years ago
nick black
aba9a4f967
Eliminate fprintf() for ~20% FPS boost #277
...
Profiling with `perf` revealed the fprintf() inside term_esc_rgb()
to dominate our performance. Replace it with a u8->str lookup table
and a hand-assembled string fed into a single fputs(). On a 80x70
xfce4-terminal geometry, this wins 20%+ FPS on the demo, w00t!
Huzzah for profiling!
5 years ago
nick black
19c2d7d6df
demo: export delaymultiplier
5 years ago
nick black
785ef20937
view: legend visible on 80x24
5 years ago
nick black
afcd265253
handle 10^4 FPS in summary table :)
5 years ago
nick black
b8f25ff89b
Map 8-bit ffmpeg α to 2-bit notcurses α #276
5 years ago
nick black
f857edd09d
libav: render spaces when possible
5 years ago
nick black
17df279b66
libnotcurses-sys rust lowlevel bindings
5 years ago
nick black
5cf8b8327a
demo: don't overcount time in summary table
5 years ago
nick black
3011a59cbd
don't call ncplane_dim_yx() in notcurses_render_internal
5 years ago
nick black
385d37ac8c
painter: drop loop at end, nice FPS gain
5 years ago
nick black
1c17b05434
allow rtl uniblocks
5 years ago
nick black
c8f12b6412
uniblock: darken the area above the block
5 years ago
nick black
631c684a88
cut view demo runtime by 1/3
5 years ago
nick black
adf808110d
convert remaining man1 pages to pandoc
5 years ago
nick black
a419e866fe
witherworms: color/timing tweaks
5 years ago
nick black
5f58ef3a4d
implement ncvisual timescaling #275
5 years ago
nick black
dd7f8eff4b
ncvisual_stream: add timescale param
5 years ago
nick black
347f85150f
witherworms: just lighten head #272
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
7c687faea0
pulsing text + unit test + docs #163
5 years ago
nick black
13c2dc9841
fade: propagate fader return value
5 years ago
nick black
56a54b5441
break apart render/rasterize #155
5 years ago
nick black
1b83c8b182
uniblock: drop rtl blocks for now #183 #259
5 years ago
nick black
49d684c772
render: always restore char when recovering
5 years ago
nick black
2ebc3e2bfe
blend: conditionally blend in alpha
5 years ago
nick black
f280db744d
panelreeldemo: support abort/fail
5 years ago
nick black
6508135667
witherworm: enable mathtext
5 years ago
nick black
3faffaa847
channels_blend() : don't blend in wide status #260
5 years ago
nick black
38fb082c61
pthread_cond_timedwait() requires CLOCK_REALTIME :/
5 years ago
nick black
f8c870bb76
demo: reject multiplier <= 0
5 years ago
nick black
9b62958bd0
witherworm: support abort v failed
5 years ago
nick black
a120e40816
panelreel-demo: support abort vs fail
5 years ago
nick black
6a7d7a750c
xray: support abort vs failed
5 years ago
nick black
8b4de3f482
add internal cell_debug()
5 years ago
nick black
0f60af347d
add clipped set functions
5 years ago
nick black
c4ee0acff0
demo: support aborted vs failed
5 years ago
nick black
5742c7396c
viewdemo: support abort vs failed
5 years ago
nick black
4f629cc5b3
lighting kick!
5 years ago
nick black
b1995190c4
don't be an asshole
5 years ago
nick black
b8e11e5ef4
poc mathtext works now #260
5 years ago
nick black
f36431bc19
render: inherit wide mask on assignment #260
5 years ago
nick black
3ee48a8233
vfprintf: need a va_copy()
5 years ago
nick black
dc2f788d28
summary: match rounding #268
5 years ago
nick black
7895d06273
cursor_move(-1,-1) while invalid is invalid #270
5 years ago
nick black
fc039b034e
notcurses-demo: implement -r option
5 years ago
nick black
00e6ecac7d
fade: avoid divide by zero on empty plane #269
5 years ago
nick black
602b34bc0c
mathtext: full strings #260
5 years ago