Commit Graph

759 Commits (ce3e5d112eab920f14c719ceb5d2862b65d69786)

Author SHA1 Message Date
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