Commit Graph

5346 Commits

Author SHA1 Message Date
nick black
a34714ca68 implement sixel_reblit() #1440 2021-04-29 07:47:42 -04:00
nick black
fe719a6c39 [sixel] attach the sixelmap to the sprixel post-load 2021-04-29 07:47:42 -04:00
nick black
322ee8309d ncplayer: use a different plane for each file 2021-04-29 07:47:42 -04:00
nick black
9c472a5d5e free auxvectors at ncplane free time, not sixel hide time #1440 2021-04-29 07:47:42 -04:00
nick black
6ad7fcc7a9 factor out write_sixel_payload for rematerialization #1440 2021-04-29 07:47:42 -04:00
nick black
5799c92415 Third Idea: raw sixel-based sixelmap #1440 2021-04-29 07:47:42 -04:00
nick black
262550c5ea [sixel] create sixelmap for rematerialization #1440 2021-04-29 07:47:42 -04:00
nick black
eb5c9185e5 pixel: shrink BYOP to match sprixel ("crop to content") 2021-04-29 07:47:42 -04:00
nick black
03bc0163ac player: expand on misleading diagnostic 2021-04-29 07:47:42 -04:00
nick black
8cef88b251 properly bound paint_sprixel on sprixel geom #1598 2021-04-29 07:47:42 -04:00
nick black
dd4eb3e5c2 write_sixel_data: allow direct reprodution of palette #1440 2021-04-29 07:47:42 -04:00
nick black
624d6a1390 sixel: start in on sixel_update() to unify wipe+rebuild #1440 2021-04-29 07:47:42 -04:00
nick black
1442e8abd4 move rebuild's free() of auxvec into callback 2021-04-29 07:47:42 -04:00
nick black
37d64d96ec kill off sprixel_kitty_p(), hurrah 2021-04-29 07:47:42 -04:00
nick black
9c03fdcfb5 sprite_wipe: check for ANNIHILATED_TRANS and return 0 2021-04-29 07:47:42 -04:00
nick black
e05ea90760 introduce ANNIHILATED_TRANS, special-case O(1) conversion from TRANSPARENT #1587 2021-04-29 07:47:42 -04:00
nick black
3eb004b61d s/channels/ncchannels/g #1570 2021-04-29 01:32:08 -04:00
nick black
decb36a9fd
let that big bitch riiiiiiiiiiiiiiide 2021-04-28 00:11:42 -04:00
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