Commit Graph

6799 Commits (bd6d0e28fb10e82cf118282ac1c27c84c7518fa8)
 

Author SHA1 Message Date
nick black bd6d0e28fb
[kitty] unite kitty_wipe_animation and kitty_wipe_selfref #2161 3 years ago
nick black 9cc04ea259
[demo] use DETECTMAXONLY for fps graph #2152 3 years ago
nick black 9ec41fe123
[plots] fix NCPLOT_OPTION_DETECTMAXONLY #2152 3 years ago
nick black 88f40df4ae
[plots] print current sample as summary #2152 3 years ago
nick black fb8b6bfcae [kitty] multiframe annihilation transitivity
When using the reflexive composition extension to the
Kitty graphics protocol, we refer to the previously-
blitted image to rebuild cells, and thus don't have to
keep a copy of the image ourselves. We just blit null-
alpha cells to wipe, and then execute a reflective
composition to rebuild. The auxvector is a single word,
holding the state we were in before the wipe, since we
don't have a copy of the image to look at to determine
the state afresh (and caching it is more efficient
anyway). Good, good.

Except. When we reload the plane, we want to carry over
those wipe cells, yes? I.e. if there was a plane above
the graphic before, and we replace the graphic, that
plane still better be above it. And that means editing
the cell out of the new graphic that we blit up, on the
fly. Which we were doing. Problem is, if we later need
to rebuild that cell, and we reflexively compose using
this new image, *we reflexively compose the edited-out
cell*, and thus remain wiped (our RGB values get set
properly, but we have all 0 alphas). No good!

So instead, in KITTY_SELFREF (the most advanced kitty
implementation, corresponding to reflexive composition),
do a pass at the end and send AAAAA wipes for any
ANNIHILATED{_TRANS} sprixcells. We don't present until
both have hit (since we're using a new image ID), so
there's no flicker, though there is some bandwidth cost.

That handles rebuilding. Problem is, if we then need to
wipe these same sprixcells *again*, our auxvecs were
set to ANNIHILATED{_TRANS}, and thus no wipe takes place.
Rather than blindly propagating the auxvec across the
frames, properly reset the auxvec according to the new
blit. This handles wiping post rebuild, closing the cycle.

Kitty 0.22.0+ now runs the bitmapstates PoC perfectly.
Closes #2143.  woo-hah!
3 years ago
nick black 86ea9d00d0 sprixel_debug: don't perform overeager invalid decoding 3 years ago
nick black 4a6e45adb6
kitty_wipe_selfref: update auxvec with state #2143 3 years ago
nick black e70302416e [ncneofetch] try using sysctlbyname() on bsd for totalram 3 years ago
nick black 128c35dc69 [ncneofetch] get total RAM on apple 3 years ago
nick black 51de081616 [ncneofetch] don't go just printing NULLs 3 years ago
nick black 7e6442077b [input] ctrl+ capitalizes ASCII, reflect when synthesizing signals 3 years ago
nick black e7fe2d2ffd
[ncneofetch] kill 'KERNEL_XNU unhandled' warning 3 years ago
nick black 5734444d49 ncneofetch: use kern.osproductversion sysctl for macOS version #2158 3 years ago
nick black 54cf38b076
add ncstrwidth_valid() and documentation #2153 3 years ago
nick black 831a65aa7c
[kitty] move cursor prior to positioning command, closes #2155 3 years ago
nick black 956a2b03ec
[sprite] remove old debugging cruft 3 years ago
nick black d899c5c9d3
notcurses_stop: free rstate fbuf 3 years ago
nick black 2a04effbca
[kitty] reset fbuf prior to init for animation #2150 3 years ago
nick black 762d382ba7
[ncplayer] s/getc/get/ 3 years ago
nick black 3610ce26d6
[ncplayer] nonblocking input check even when behind clockwise 3 years ago
nick black 1a3733f73e
windows terminal: TERM=ms-terminal COLORTERM=24bit 3 years ago
nick black 42179890c0
ncplane_mergedown: don't pass unsafe NULL for sprixelstack 3 years ago
nick black 1018a9d78d
[ncvisual_from_plane] kill two dead stores 3 years ago
nick black 0d948dcbf4
[plots] call destructors on error paths 3 years ago
nick black 5527fabdf5
[input] initialize ncinput all the way through 3 years ago
nick black 4a9f62f131
erp, able->unable in FAQ 3 years ago
nick black 36825374b9
[shutdown] ensure kitty pop goes to tty
In notcurses_stop_minimal(), we need to send most of
our resets prior to sending rmcup. rmcup and the kitty
pop, furthermore, need to be going to the ttyfd to match
their opposites. They were previously going to stdout,
meaning the kitty pop wasn't acted on when we redirected
stdout. Closes #2149.
3 years ago
nick black b74b23ad7c
handle kitty's augmented backspace 3 years ago
nick black 8aa856f20b
v2.4.0 3 years ago
nick black d82a30cf97 [sixel] finish opaque side of update_rmatrix #2133 3 years ago
nick black c24a31d49d [sixel] update_rmatrix() logic for transparency side #2133 3 years ago
nick black a406a5f8ef introduce pixel_refresh #2133 3 years ago
nick black f1b796534b
windows: build with OIIO instead of ffmpeg 3 years ago
nick black 4dc6b7e826
[plots] kill bogon duplicate plot plane #2133 3 years ago
nick black 953243971d
sprite_draw: properly place bound planes 3 years ago
nick black 16dc202362
[intro] don't fail out on unicode failures 3 years ago
nick black 270572c477
[egcpool] make it safe for c++ callers 3 years ago
nick black fac2cd7045
[notcurses-input] fix for non-pixel terminals 3 years ago
nick black d941a012c4
[render] on pile change, move to UNSEEN, not INVALIDATED 3 years ago
nick black cb039eafdf
restore termios settings before calling rmcup 3 years ago
nick black a299c3226d
[direct] pop kitty keyboard state to ttyfd #2145 3 years ago
nick black 1c72516c06
[direct] finalize fbuf on exit 3 years ago
nick black 61ee8b8668
sprixel: damage only on sprite_wipe() failure 3 years ago
nick black 1827a7d58d
[sixel] correctly invalidate on wipe #2142 3 years ago
nick black 882664b6c9
notcurses-input: use max sixelgeom as limiter on plot width #2140 3 years ago
nick black ac5efd529d
[initbanner] properly clreol, ugh 3 years ago
nick black ca3635c28d
render: sanity when we hit an undamaged cell when debugging #2133 3 years ago
nick black d07221ecac
closing banner: clear lines #2134 3 years ago
nick black 83bb816c15
clear to end of line in init banner, if el is available #2134 3 years ago
nick black 108012950e
notcurses-info: indicate that el capability is present 3 years ago