v2.3.12—drop a gem on 'em
I think this will be a pretty solid one. Did a lot of testing and bugfixing this week.
- Fix crash/errors on Linux framebuffer graphics when they weren't multiples of the cell geometry (#1996)
- Scrub Linux framebuffer so multiframe partially-transparent graphics don't combine.
- Support Type-1 DVB bitmap subtitles with ffmpeg (#1311).
ncplayer
will now display them when pixel blitting is available, regardless of whether pixel blitting is being used for the main image. They're only available from the new functionncvisual_subtitle_plane()
, which supersedesncvisual_subtitle()
. The latter is now deprecated, and will be removed in ABI3. - Fix a memory leak on frame decode when a container had subtitles. This leak has been present since ffmpeg support was added, i.e. pre-1.0.
- Add
ncvisual_from_palindex()
to buildncvisual
s from palette-indexed streams. - Add support for Kitty 0.22.0's self-referential composition, though disable it for now due to a presumed bug in Kitty (see kovidgoyal/kitty#3874). When enabled, this allows for much less memory usage/copying when using Kitty graphics #1900. I proposed it; see kovidgoyal/kitty#3809 for more details. Thanks @kovidgoyal for implementing it!
- In CLI mode, always move to the bottom before attempting to scroll #1994. This fixes
notcurses-info
when launched close to, but not at, the bottom of the screen. - Propagate out the error when we abort in
intro
; it was always reporting FAILURE rather than ABORTED. - Handle arbitrary glyph widths #1873.
wcwidth()
doesn't report any widths greater than 2 currently, but it might in the future, and should we ever use mosaics, we'll need this. - Added
static inline
nccell_cols()
, which is faster thannccell_width()
, which has been deprecated and will be removed for ABI 3. - Implement wipes and restores in Linux framebuffer graphics #1954.
- Many changes necessary for supporting Windows, which is coming very soon
- Removed
sigset_t
from the API by deprecatingnotcurses_getc()
andncdirect_getc()
.notcurses_get()
andncdirect_get()
have been added, which do not take asigset_t
. There was much rejoicing. - We now run CI on macOS (#1933), thanks @michaelsbradleyjr !
ncplayer
now passes a specified loglevel through toncdirect_core_init()
#1981- Get Linux framebuffer graphics working in direct mode #1959
- Fix terrible bug where we returned error instead of special keys from input
- Replace
%ju
+uintmax_t
casts everywhere withPRIu64
frominttypes.h
- We now deflate Kitty bitmaps, reducing bandwidth at the cost of some latency #1695
- Fix
NCVISUAL_ADD_ALPHA
when restoring cells in Kitty graphics - Flush before deciding whether to use Synchronized Update mode, to get the true length
ncmenu
now usesNCPLANE_OPTION_FIXED
so it doesn't move on scrolling planes #1958- Recognize Terminology based off DA3
- Invert DECSDM on foot 1.8.2+ (thanks @dknl!)
notcurses-demo
now creates the HUD and FPS graph withNCPLANE_OPTION_FIXED
, so they no longer scroll off the screen in thewhiteout
demo, heh
Enjoy!