v2.3.2—before i get too deep
A good-sized release, after a more lengthy delay than is typical.
ncplane_at_yx()
now returns the EGC occupying that cell, even if the cell is a secondary column of a wide glyph. Previously, it returned an empty string in this case.ncplane_at_yx_cell()
still replicates the exactnccell
, allowing you to fully distinguish between the primary column of a wide glyph, the secondary column(s) of same, and an empty string. Furthermore,ncplane_at_yx()
now takes the base cell into account; the result is exactly what is fed into rendering logic.- Note that this change cascades, affecting e.g.
ncplane_contents()
.
- Note that this change cascades, affecting e.g.
- Added
notcurses_cursor_yx()
to get the current location of the terminal cursor. - Added
ncdirect_supported_styles()
andncdirect_styles()
to the Direct Mode API. - Closed memory leaks in
ncvisual
API (#1712, #1711) - Support resizing visuals in the absence of a multimedia engine via simple noninterpolative sampling (#1705)
- Explicitly prevent more than one context (
struct notcurses
orstruct ncdirect
) at a time in a process ncplane_as_rgba()
now supportsNCBLIT_2x2
andNCBLIT_3x2
, and requires the desired (inverse-)blitter to be passed explicitly (i.e. noNCBLIT_DEFAULT
) (#1697)- Restore colors properly following
sgr
/sgr0
in direct mode, for both palette and RGB (#1703) - Fix bug in
ncvisual_from_bgra()
that manifested as broad inability to render in Rust, thanks @joseluis (#1703) - Unified much of the storage shared across direct and rendered mode, killing off duplicated code, and packed all escapes into a single, tight, cache-friendly buffer (#1525)
- Always convert visuals to RGBA if not loaded in RGBA, fixing
ncpixel
API for them (#1680) - Rust bindings now use bindgen 0.57, meaning maybe we can build a Fedora package, thanks @joseluis (#1339)
- Emit
rmkx
on exit, thanks @dnkl - Always pad image data suitably for ffmpeg's SIMD-heavy backend (#1675)
- Rebuild auxiliary vectors on a new frame in both Sixel (#1642) and Kitty (#1605)
- Python CFFI fixes, thanks @scauligi
ncplayer
in direct mode (-k
) was printing too many rows (#1673)- Respect
leny
/lenx
fromncvisual_options
when rendering once more (#1661) - Strengthened a lot of unit tests, wrote about a dozen new unit tests.
- Updated a number of man pages.
There's probably other stuff. It's a pretty big release.