Releases: dankamongmen/notcurses
v1.1.0—all the hustlers they love it just to see one of us make it
The 1.1.0 release closes 28 issues, along with many issues that were never recorded.
Bugfixes
- We now decode all videos that reference ffmpeg wrappers (e.g.
mpv
) can decode, so far as I can tell. Before, we successfully decoded very few. #215 - Correct presentation timings for videos. They were pretty much never accurate in 1.0.0. #159
- Don't FPE fading in an empty plane #269
- Properly handle a higher plane bisecting a wide glyph #260
- Eliminate nasty cruft around transparent ncvisuals #276
- Restore original palette on exit #285
- Interrupt blocking getc with
NCKEY_RESIZE
#262 - Fix segfault on startup in fbterm #252
- Fix segfault when
ncplane_putstr()
is invoked off-plane - Fix average byte/time calculations in demo summary table
- Instruction banner restored in
notcurses-input
#263
Perf, sweet perf
- Painter's Algorithm was implemented, necessary for handling large numbers of planes #255. Thousands of planes are now perfectly usable. Before, we choked up with a few dozen.
term_esc_rgb()
was noticed dominatingperf
profiles. Hand-optimization boosted FPS anywhere from 10% to 500% across demos. #277
Enhancements
- man pages added for all functionality. html versions are also available.
notcurses-demo
summary table improved a great deal- Implemented indexed-palette color when desired and supported #230
- New demos
jungle
andfallin'
.jungle
uses artwork of pixel legend Mark Ferrari with permission to demonstrate palette cycling, a very low-bandwidth animation technique #253fallin'
uses reflection to have the screen "fall apart" #267
ncvisual_stream()
now accepts a duration scaling parameter- all fade functions now take a curry #284
- plane pulsing added to the fading suite #163
notcurses-video
now accepts-s
to specify scaling typenotcurses-video
now properly handles resize events- all demos and example code had
notcurses_cursor_move_yx()
etc. removed in favor of atomic move+update calls. demos in general were cleaned up a good deal. - Python wrappers seem to be working now? I'd love to get testers here #149
v1.0.2—what's platinum, i guess
- Fixed incorrect path for
notcurses-demo
data files
v1.0.1—what's golden
- Video support massively improved (#159, #215)
- demo summary table massively improved (#256, #258)
- Don't segfault in fbterm (#252)
- Use installed prefix when looking for demo data (#208)
- Restore instruction banner to
notcurses-input
(#263) - Fix
SIGWINCH
handling innotcurses-demo
and others (#262) - API improvements I'd thought I'd already made (#257)
v1.0.0—track team, crack fiend, dying to geek
First GA release. 1.0.0 milestone.
Mother is putting my new secondhand clothes in order. She prays now, she says, that I may learn in my own life and away from home and friends what the heart is and what it feels. Amen. So be it. Welcome, O life! I go to encounter for the millionth time the reality of experience and to forge in the smithy of my soul the uncreated conscience of my race. Old father, old artificer, stand me now and ever in good stead.
—James Joyce, Portrait of the Artist as a Young Man
New features
- Output API additions: everything now has an
_aligned()
form and a_yx()
form - New
ncplane_aligned()
to create a plane aligned relative to another - New
notcurses_at_yx()
to reflect upon the last rendered frame _yx()
-type functions accept -1 to mean "current position on this axis"- Mouse input events
- New
notcurses_mice_enable()
andnotcurses_mice_disable()
- New
notcurses_refresh()
for repainting a damaged screen - witherworms demo replaces widecolor demo
- transparency for ncvisuals
- Building without FFmpeg is now supported via
DISABLE_FFMPEG
CELL_ALPHA_BLEND
is now implemented- Man pages added for all functions using
pandoc
- HUD and stats added to
notcurses-demo
- ncvisual can now create its own (optimally-sized) ncplane
ncvisual_stream
now takes a callback+curry and supports resizing
- ncvisual now tracks PTS (presentation timestamps) for much more accurate video sync
- notcurses can now be built without FFmpeg.
- All
ncvisual
functions will return error notcurses-view
will not be builtncvisual
unit tests will not be builtnotcurses_init()
will print a warning on startup about the missing functionality
- All
notcurses-view
supports resizing- new
chunli
demo
Performance improvements
- O(1) damage map
- ncvisuals can be partially rendered
Bug fixes
- Linear interpolation fixed for long lines
- box demo: transparent background fixed
- style state properly maintained across renders, fixes
notcurses-input
underlining - Failure to start on st ("simple terminal") fixed
- view demo: cruft removed
- grid demo: fix color calculation, clip properly
- Unit tests using decimal separator now work in all locales
- witherworms demo: fix disappearing wide characters
- Fix disappearing topmost planereel
- Inhibit libswscale from crapping onto stderr
- Switch to
char32_t
fromwchar_t
to work on all architectures - Higher planes properly obliterate lower wide glyphs they intersect
- Memory leak in
ncvisual_render()
path fixed - All valgrind complaints for the demo have been fixed
v0.9.9—what you know about purple drank?
Release candidate for 1.0.0.
v0.9.3
v0.9.3
v0.9.2
v0.9.2
v0.9.0—You dig in! You dig out! You get out!
29 issues closed, 138 commits. Last major pre-GA release.
- @grendello 's patch to recognize COLORTERM, for better or wose
- Line-based zdepth-aware damage map increased FPS by an average of ~50% (#83)
- Quantize colors for 256-index palettes (#4)
- Implicit ncplane creation by ncvisuals (#128)
- Much API improvement wrt orthogonality, addition of
_xy
wrappers to all outputs - Add panelreel documentation to README.md
- Support sgr-style attributes (bold, underline, italic, etc.) (#73)
- Move special keys to Unicode PSUA-B, input's now ready to play (#121, #134)
- Uniblock demo: fade in blocks rather than scrolling them horizontally
- Widechomper demo: add a little aleph friend who eats wide characters
- Box demo: add targeting grid to test complex alignment
- View demo: eliminate copyright infringement, replace with new video
- Intro: add perimeter box to show off linear interpolations
- Outro: vastly improved, show off transparency + bgfade
- New "Luigi" demo: sprites, motherfucker! Luigi goes to Heat Man Zone from Mega Man 2
- Fix fade out for background colors (#111)
- Add output API for
wchar_t
, for those unfortunate souls using them (#120) - Wide glyph-aware alignment output helpers (#102)
- Demo can now run to completion without user intervention (#135)
- Add
notcurses_refresh()
for remedying external screen corruption (#150) - Added very basic man pages
v0.4.0—TRAP MUSIC ALL NIGHT LONG
https://github.com/dankamongmen/notcurses/milestone/6?closed=1
- Updated README.md to match all current declarations (#21). Clean up Cell API (#97)
- Fixed unexpected background on hlines/vlines (#115)
- Implemented terminfo-based special key discovery, fixing keypad among others (#78 )
- Demo improvements all over (#72 #66 )
- Render sensibly in the face of resizes (#105)
- Add necessary locking (#82)
- Remove obsolete assert()s
This is pretty much a usable release. We're rapidly approaching GA.
v0.3.0—a riot is the voice of the unheard
https://github.com/dankamongmen/notcurses/milestone/5?closed=1
- Transparent planes (#10)
- Video support (#61 )
- Double SWScale vertical resolution with halfblocks (#88)
- Palette fades in and out (#40)
- SIGWINCH ->
NCKEY_RESIZE
input event (#79)
wake up, drink water, smoke blunts, clean and oil my kalashnikov!