mirror of
https://github.com/dankamongmen/notcurses.git
synced 2024-10-31 15:20:13 +00:00
ebcba82d4b
This represents an essentially complete rewrite of ncvisual and associated code. It had two major goals: Improve the ncvisual API based off lessons learned, pursuant to the upcoming API freeze. In particular, I wanted to: decouple ncvisuals from ncplanes. It should be possible to render a ncvisual to multiple planes, with different scaling each time. It should be possible to create an ncvisual without a plane, etc. normalize the various ways of constructing an ncvisual -- file, memory, plane, etc. Support multiple blitters, from 7-bit ASCII to Sixel. This required writing the blitters in several cases, and they're not yet in their final implementations (but the API is fine) I have not yet unified Plots and Visuals, and might not, given that the Plot code works fine. We could at this point implement Plots in terms of Visuals, though -- the blitter backend range has been unified. Sixel is not yet implemented, though it is listed. There is a new POC tool, blitter. It renders its arguments using all possible blitter+scaling combinations. Another new POC, resize, displays its argument, then resizes it to the screen size and displays that, explicitly making use of ncvisual_resize() rather than a scaling parameter to ncvisual_render(). This also eliminates some memory leaks and bugs we were seeing in trunk, and brings in Sixel scaffolding. The C++ wrapper will also need patching back up; I cut most of it down while wrestling with this crap, urk. Closes #638, #562, and #622.
1.3 KiB
1.3 KiB
Other TUI libraries of note
- NCURSES (C)
- caca (C)
- Newt (C)
- FINAL CUT (C++)
- ImTui [C++]
- tui-rs (Rust)
- crossterm (Rust)
- termwiz (Rust)
- blessed-contrib (Javascript)
- tty-cursor (Ruby)
- vty (Haskell)
- hscharm (Haskell)
- S-Lang (S-Lang)
- termbox-go (Go)
- tcell (Go)
- termui (Go)
- gocui (Go)
- tview (Go)
- blessings [Python]
- urwid [Python]