Commit Graph

5078 Commits

Author SHA1 Message Date
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.
2021-04-27 16:53:44 -04:00
nick black
e43a9955cd
channel_* functions -> ncchannel_* #1570 2021-04-27 14:10:41 -04:00
nick black
25afcbe49d
cherry-pick auxvector release fix #1598 2021-04-26 11:45:21 -04:00
nick black
921311999d
blitter PoC: don't render to standard plane #1595 2021-04-26 11:40:11 -04:00
nick black
7bb23a994b update cell unit tests for freebsd 13 2021-04-26 07:37:03 -03:00
nick black
b3b47cd81f don't mix c and c++-style initializers 2021-04-26 07:36:52 -03:00
nick black
e84b6a4378
yield: speed up bitmap solution #1596 2021-04-26 03:50:35 -04:00
nick black
a7ca2be9e6 kitty: special-case O(1) rebuild for SPRIXCELL_TRANSPARENT #1440 2021-04-26 02:43:48 -04:00
nick black
d435d6e083 kitty: set MIXED when appropriate on rebuild #1440 2021-04-26 02:43:48 -04:00
nick black
1d9ae4082f kitty: fix b64idx(), fixing rebuilding #1440 2021-04-26 02:43:48 -04:00
nick black
20aeccfbb6 kitty_restore: properly restore A in triplet #1440 2021-04-26 02:43:48 -04:00
nick black
f0910ab398 [kitty] first go at kitty_rebuild() #1440 2021-04-26 02:43:48 -04:00
nick black
5eafafa652 kitty: build out auxvec in wipe #1440 2021-04-26 02:43:48 -04:00
nick black
41c5df3336 kitty: set up auxiliary vector #1440 2021-04-26 02:43:48 -04:00
nick black
a19b945ec6 kitty_null: only null out alphas, not RGB #1440 2021-04-26 02:43:48 -04:00
nick black
b075ecd383 add kitty_restore() 2021-04-26 02:43:48 -04:00
nick black
49e94830d2 superstructure for kitty anastasis 2021-04-26 02:43:48 -04:00
nick black
dd85c7042b add auxiliary vector to TAM #1440 2021-04-26 02:43:48 -04:00
nick black
3e0783593d add sprixel_rebuild interface, kitty + sixel skeletons #1440 2021-04-26 02:43:48 -04:00
nick black
7c69a17752 identify annihilation recovery #1440 2021-04-26 02:43:48 -04:00
nick black
ba64d36543 don't warn on bsd about unused sprixel_debug() 2021-04-25 17:11:19 -03:00
Nick Black
da6b8281d5 [OIIO] seed details, synthesize RGB spec #1593 2021-04-25 16:10:11 -04:00
Nick Black
6f07ecb556 bitmap unit tests: use SCALE to work ona ll geoms 2021-04-25 16:10:11 -04:00
nick black
bd6a7918f2 kill freebsd ignored-attributes warning 2021-04-25 16:38:57 -03:00
nick black
725ca9a040
textplay: make the textplane transparent by default #1425 2021-04-25 05:18:17 -04:00
nick black
e9ef4d50f4 break up opaque/mixed into sixel and kitty states 2021-04-25 04:57:27 -04:00
nick black
8eafcaee5b textplay: add video border 2021-04-25 04:57:27 -04:00
nick black
2978a5194d textplay: better colorization 2021-04-25 04:57:27 -04:00
nick black
2695addd5f textplay: colorize 2021-04-25 04:57:27 -04:00
nick black
0d81fb25c7 textplay: read stdin, play to plane with ncplane_puttext() 2021-04-25 04:57:27 -04:00
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
2021-04-24 13:08:09 -04:00
nick black
0c2749707c
sprixel stacking unit test #1575 2021-04-24 10:10:20 -04:00
nick black
787b180fa9
ncvisual_blitset_geom: deliver on y/x contract #1588 2021-04-24 09:35:40 -04:00
nick black
da2db080c9
[yield] work for all blitters/geometries #1588 2021-04-24 09:33:54 -04:00
nick black
375a51b55b
keller: check ncvisual_blitter_geom() return value #1588 2021-04-24 09:02:58 -04:00
nick black
1a16d34b5c
view: move pic-in-pic to row 1 from top #1577 2021-04-24 07:38:44 -04:00
nick black
5fd6177c17
ncplane_resize_internal(): no work necessary when old pos+size are the same #1588 2021-04-24 06:59:17 -04:00
nick black
96981c8e75
extract paint_sprixel() as single loop #1587 2021-04-24 06:36:06 -04:00
nick black
d8e94429c2
rename sixel/kitty_delete -> destroy to match sprixel_destroy() 2021-04-24 06:17:03 -04:00
nick black
e29701cac3
notcurses-tester: accept -l to enable all logging 2021-04-24 05:18:04 -04:00
nick black
dc87bd7c79
ncvisual_blitset_geom: no pixel size checks for scale/stretch #1572 2021-04-24 05:16:18 -04:00
nick black
311fbfa8e8
ncblit_pixel plane size checks: scale geom #1572 2021-04-24 04:55:04 -04:00
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.
2021-04-24 04:47:05 -04:00
nick black
5a72383cb0
reject sprixels larger than plane, add unit test #1572 2021-04-24 04:41:23 -04:00
nick black
cc73811dd4
sprixelated planes may be resized after all #1572 2021-04-24 03:46:19 -04:00
nick black
dc347c99d7
no resizing of sprixelated planes #1572 2021-04-24 03:26:53 -04:00
nick black
a926fe70f8
intro: render the orce only after our first frame 2021-04-24 03:23:47 -04:00
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.
2021-04-24 03:22:23 -04:00
nick black
ea809345e3
kill tacachey/tacachex in ncplane #1572 2021-04-24 03:10:12 -04:00
nick black
cc657bbe35
notcurses_plane(3): document sprixelated effects #1585 2021-04-24 02:38:30 -04:00