Commit Graph

5029 Commits (decb36a9fd356704e4092e7ab5097aa169e75e0c)
 

Author SHA1 Message Date
nick black decb36a9fd
let that big bitch riiiiiiiiiiiiiiide 3 years ago
nick black d8cc3569ac
Block some signals while writing
Writing a partial escape can easily lock up a terminal. This
is especially relevant when working with bitmaps, as they're
thousands or even millions of times longer than a typical
escape. Immediately before writing, block SIGINT, SIGQUIT, and
SIGTERM in the writing thread, and unblock them upon emerging
(at which point we'll immediately see any queued signal
get delivered). Don't block signals like SIGSEGV that would
seem indicative of actual problems. For this to actually work,
all other threads must also have the signals masked; we thus
now add them to the signal mask of notcurses_getc(), rather
than deleting them. Closes #1416.
3 years ago
nick black e43a9955cd
channel_* functions -> ncchannel_* #1570 3 years ago
nick black 25afcbe49d
cherry-pick auxvector release fix #1598 3 years ago
nick black 921311999d
blitter PoC: don't render to standard plane #1595 3 years ago
nick black 7bb23a994b update cell unit tests for freebsd 13 3 years ago
nick black b3b47cd81f don't mix c and c++-style initializers 3 years ago
nick black e84b6a4378
yield: speed up bitmap solution #1596 3 years ago
nick black a7ca2be9e6 kitty: special-case O(1) rebuild for SPRIXCELL_TRANSPARENT #1440 3 years ago
nick black d435d6e083 kitty: set MIXED when appropriate on rebuild #1440 3 years ago
nick black 1d9ae4082f kitty: fix b64idx(), fixing rebuilding #1440 3 years ago
nick black 20aeccfbb6 kitty_restore: properly restore A in triplet #1440 3 years ago
nick black f0910ab398 [kitty] first go at kitty_rebuild() #1440 3 years ago
nick black 5eafafa652 kitty: build out auxvec in wipe #1440 3 years ago
nick black 41c5df3336 kitty: set up auxiliary vector #1440 3 years ago
nick black a19b945ec6 kitty_null: only null out alphas, not RGB #1440 3 years ago
nick black b075ecd383 add kitty_restore() 3 years ago
nick black 49e94830d2 superstructure for kitty anastasis 3 years ago
nick black dd85c7042b add auxiliary vector to TAM #1440 3 years ago
nick black 3e0783593d add sprixel_rebuild interface, kitty + sixel skeletons #1440 3 years ago
nick black 7c69a17752 identify annihilation recovery #1440 3 years ago
nick black ba64d36543 don't warn on bsd about unused sprixel_debug() 3 years ago
Nick Black da6b8281d5 [OIIO] seed details, synthesize RGB spec #1593 3 years ago
Nick Black 6f07ecb556 bitmap unit tests: use SCALE to work ona ll geoms 3 years ago
nick black bd6a7918f2 kill freebsd ignored-attributes warning 3 years ago
nick black 725ca9a040
textplay: make the textplane transparent by default #1425 3 years ago
nick black e9ef4d50f4 break up opaque/mixed into sixel and kitty states 3 years ago
nick black 8eafcaee5b textplay: add video border 3 years ago
nick black 2978a5194d textplay: better colorization 3 years ago
nick black 2695addd5f textplay: colorize 3 years ago
nick black 0d81fb25c7 textplay: read stdin, play to plane with ncplane_puttext() 3 years ago
Nick Black 2c5d938cbd
Paint sprixels bottom-to-top (#1589)
* Paint sprixels in order, bottom-to-top

We don't want to have to track sprixel order whenever someone
moves an ncplane, so just keep a list growing backwards as we
pass top-to-bottom in notcurses_render_internal(). Each time
we hit a sprixel plane, splice it out of the sprixel list, and
add it to the front of our temporary list. When we hit the
bottom, stick this temporary list on the end of our existing
list (any such planes are to be deleted, which comes before
drawing). Closes #1575.

* reorder collected sprixellist; solves kitty but breaks sixel =/ #1575

* remove debugging cruft

* [rust] fix up mergedown mutability
3 years ago
nick black 0c2749707c
sprixel stacking unit test #1575 3 years ago
nick black 787b180fa9
ncvisual_blitset_geom: deliver on y/x contract #1588 3 years ago
nick black da2db080c9
[yield] work for all blitters/geometries #1588 3 years ago
nick black 375a51b55b
keller: check ncvisual_blitter_geom() return value #1588 3 years ago
nick black 1a16d34b5c
view: move pic-in-pic to row 1 from top #1577 3 years ago
nick black 5fd6177c17
ncplane_resize_internal(): no work necessary when old pos+size are the same #1588 3 years ago
nick black 96981c8e75
extract paint_sprixel() as single loop #1587 3 years ago
nick black d8e94429c2
rename sixel/kitty_delete -> destroy to match sprixel_destroy() 3 years ago
nick black e29701cac3
notcurses-tester: accept -l to enable all logging 3 years ago
nick black dc87bd7c79
ncvisual_blitset_geom: no pixel size checks for scale/stretch #1572 3 years ago
nick black 311fbfa8e8
ncblit_pixel plane size checks: scale geom #1572 3 years ago
nick black 95072d0f5c
No glyph emission on sprixelated planes
Guard against attempts to output glyphs to a sprixelated
plane in ncplane_putc_yx(), the lowest-level common end
of all ncplane_put*() functions. Add unit test #1572.
3 years ago
nick black 5a72383cb0
reject sprixels larger than plane, add unit test #1572 3 years ago
nick black cc73811dd4
sprixelated planes may be resized after all #1572 3 years ago
nick black dc347c99d7
no resizing of sprixelated planes #1572 3 years ago
nick black a926fe70f8
intro: render the orce only after our first frame 3 years ago
nick black d3877cbe44
NCBLIT_PIXEL restrictions for planes
Go ahead and allow the standard plane to be used with
NCBLIT_PIXEL, but enforce placement at the origin with
any provided plane. Implement this in ncvisual_blitter_geom()
so that it applies everywhere #1572.
3 years ago
nick black ea809345e3
kill tacachey/tacachex in ncplane #1572 3 years ago