Commit Graph

6814 Commits

Author SHA1 Message Date
nick black
0213e026b2 allow users to set the stdplane's resizecb
Hardcode a call to ncplane_resize_maximize() in
notcurses_resize_internal() for the standard plane,
when handling the standard pile. allow the user
to set the standard plane's resize callback beyond
that. closes #2163.
2021-09-13 13:04:38 -04:00
joseLuís
123c0d6307 [rust] fix check_pixel_support; #2162
- add new type `NcPixelImpl`.
- change `check_pixel_support` return type to `NcPixelImpl`.
- update `pixel-cell` example.
- remove remaining reference to removed `blink`.
- remove reference to removed `ncvisual_default_blitter`.
- rustfmt
2021-09-13 11:45:43 +02:00
nick black
be1dc5f2f9
mention CLI mode following ncoptions 2021-09-13 04:11:15 -04:00
nick black
76b1ea9842
[kitty] fix 1st gen animation
Much as we needed to do in the accounting core for
kitty animation, whether we blitted a sprixcell of
alpha nulls or instead wiped it affects how we
rebuild under KITTY_ANIMATION, which right now is
all Kitty >= 0.20.0 since KITTY_SELFREF is disabled.
This gets KITTY_ANIMATION working perfectly on
bitmapstates. I've accomplished this by stashing a
bool onto the end of each KITTY_ANIMATION-style
auxvector, set high if it originated in a reblit's
null alphas, and low if it was zorched by a wipe.
Set {c, r} arguments to animation directive based
on whether this is set. See #2161.
2021-09-13 03:05:08 -04:00
nick black
972b14c09b
[rust] remove NCSTYLE_BLINK 2021-09-13 02:05:11 -04:00
nick black
4789aca20f
notcurses.h: remove some more deprecated static inlines 2021-09-13 01:38:30 -04:00
nick black
e14a320217
notcurses.h: remove some deprecated #defines 2021-09-13 01:34:58 -04:00
nick black
f9df8e14fc
v2.4.1 2021-09-12 22:14:19 -04:00
nick black
772f429fb2
mention ncstrwidth_valid() in NEWS 2021-09-12 22:04:07 -04:00
nick black
4e1897c1c0
[kitty] KITTY_ANIMATED rebuild fix #2161 2021-09-12 21:25:10 -04:00
Tinmarino
a48147da8c Rust: compile: relint last commit 2021-09-12 21:01:38 -04:00
Tinmarino
8abf993f62 Rust: improve compile: remove warning: "trailing semicolon in macro used in expression position" 2021-09-12 21:01:38 -04:00
Tinmarino
8ed451e4ee Rust: Fix compile expected u32, found i32 2021-09-12 21:01:38 -04:00
nick black
4ec1bfd8be
[info] differentiate between kitty animation and kitty selfref #2161 2021-09-12 02:17:29 -04:00
nick black
6612d1b149
[kitty] disable KITTY_SELFREF for now #2161 2021-09-12 01:58:29 -04:00
nick black
bd6d0e28fb
[kitty] unite kitty_wipe_animation and kitty_wipe_selfref #2161 2021-09-12 01:58:13 -04:00
nick black
9cc04ea259
[demo] use DETECTMAXONLY for fps graph #2152 2021-09-12 00:09:11 -04:00
nick black
9ec41fe123
[plots] fix NCPLOT_OPTION_DETECTMAXONLY #2152 2021-09-12 00:08:09 -04:00
nick black
88f40df4ae
[plots] print current sample as summary #2152 2021-09-11 23:28:50 -04:00
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!
2021-09-11 00:41:23 -04:00
nick black
86ea9d00d0 sprixel_debug: don't perform overeager invalid decoding 2021-09-11 00:41:23 -04:00
nick black
4a6e45adb6
kitty_wipe_selfref: update auxvec with state #2143 2021-09-10 05:54:02 -04:00
nick black
e70302416e [ncneofetch] try using sysctlbyname() on bsd for totalram 2021-09-10 04:13:10 -03:00
nick black
128c35dc69 [ncneofetch] get total RAM on apple 2021-09-10 02:02:52 -05:00
nick black
51de081616 [ncneofetch] don't go just printing NULLs 2021-09-10 01:52:37 -05:00
nick black
7e6442077b [input] ctrl+ capitalizes ASCII, reflect when synthesizing signals 2021-09-10 01:50:23 -05:00
nick black
e7fe2d2ffd
[ncneofetch] kill 'KERNEL_XNU unhandled' warning 2021-09-10 02:35:44 -04:00
nick black
5734444d49 ncneofetch: use kern.osproductversion sysctl for macOS version #2158 2021-09-10 01:32:55 -05:00
nick black
54cf38b076
add ncstrwidth_valid() and documentation #2153 2021-09-10 01:28:27 -04:00
nick black
831a65aa7c
[kitty] move cursor prior to positioning command, closes #2155 2021-09-09 00:00:42 -04:00
nick black
956a2b03ec
[sprite] remove old debugging cruft 2021-09-08 07:30:41 -04:00
nick black
d899c5c9d3
notcurses_stop: free rstate fbuf 2021-09-08 07:30:05 -04:00
nick black
2a04effbca
[kitty] reset fbuf prior to init for animation #2150 2021-09-08 07:29:22 -04:00
nick black
762d382ba7
[ncplayer] s/getc/get/ 2021-09-08 04:24:19 -04:00
nick black
3610ce26d6
[ncplayer] nonblocking input check even when behind clockwise 2021-09-08 04:12:52 -04:00
nick black
1a3733f73e
windows terminal: TERM=ms-terminal COLORTERM=24bit 2021-09-08 04:11:54 -04:00
nick black
42179890c0
ncplane_mergedown: don't pass unsafe NULL for sprixelstack 2021-09-08 04:05:44 -04:00
nick black
1018a9d78d
[ncvisual_from_plane] kill two dead stores 2021-09-08 04:04:25 -04:00
nick black
0d948dcbf4
[plots] call destructors on error paths 2021-09-08 03:50:55 -04:00
nick black
5527fabdf5
[input] initialize ncinput all the way through 2021-09-08 03:47:16 -04:00
nick black
4a9f62f131
erp, able->unable in FAQ 2021-09-08 01:37:56 -04:00
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.
2021-09-06 12:27:21 -04:00
nick black
b74b23ad7c
handle kitty's augmented backspace 2021-09-06 11:53:12 -04:00
nick black
8aa856f20b
v2.4.0 2021-09-06 05:29:56 -04:00
nick black
d82a30cf97 [sixel] finish opaque side of update_rmatrix #2133 2021-09-06 04:58:22 -04:00
nick black
c24a31d49d [sixel] update_rmatrix() logic for transparency side #2133 2021-09-06 04:58:22 -04:00
nick black
a406a5f8ef introduce pixel_refresh #2133 2021-09-06 04:58:22 -04:00
nick black
f1b796534b
windows: build with OIIO instead of ffmpeg 2021-09-06 03:50:17 -04:00
nick black
4dc6b7e826
[plots] kill bogon duplicate plot plane #2133 2021-09-06 03:10:15 -04:00
nick black
953243971d
sprite_draw: properly place bound planes 2021-09-06 02:17:19 -04:00