Commit Graph

1561 Commits (50ce76bad8f931fd7f0d84e0bde950025635e6bd)

Author SHA1 Message Date
Nick Black 50ce76bad8
Add kernel unicode-to-font mappings dynamically for line-drawing characters (#794)
Part 1 of a two-part revolution in Linux console graphics. Map all the line-drawing Unicode characters to similar glyphs. This means all our nice corners freely translate into rigid corners etc in the console, rather than hateful default characters (usually black diamonds). The demo and all widgets now look correct when drawing lines and boxes. Next, we'll add the actual glyphs for the block-drawing characters, and we'll have the finest graphics ever seen on a text-mode Linux console. #201
4 years ago
nick black ff569d7114
terminfo: chop off $<N> syntax #769 4 years ago
nick black 1c95241948
fileroller/procroller: check widget destructor for error #793 4 years ago
nick black b0990c1389
dumbass 4 years ago
Nick Black dbc83c41b3
linuxconsole PoC (#791)
* use ioctl(KDGETMODE) to detect Linux console
* diagnostic on KDGETMODE
* add logdebug()
* unit test for notcurses_drop_planes(), add ncplane_putnstr_aligned()
* linuxconsole PoC
* linuxconsole: dump unicode->font table
* linuxconsole: explode glyphs
* linuxconsole: show 7 glyphs per 'line'
* linuxconjammer: shim console font with half blocks
* signals: handler for SIGTERM
* man pages: update notcurses_init() for options
* add NCOPTION_NO_FONT_CHANGES #201
4 years ago
nick black 992eaea8d0
tetris: swap colors on level change 4 years ago
nick black 894c6d15f6
tetris: start on level 1 4 years ago
nick black 20864949fa
ncneofetch: check for swapped cursor coordinates #765 4 years ago
nick black 5cf912feb6
ncplane_printf_stainable() and _vfprintf_stainable() #754 4 years ago
nick black 4a97c139e6
add ncplane_putstr_stainable() #754 4 years ago
nick black a6b002fa77 add ncdirect box-drawing functions #753 4 years ago
nick black 96c6dc8e16 add ncdirect_canopen_images() and ncdirect_canutf8() #753 4 years ago
nick black c783244185 ncdirect_hline_interp(), ncdirect_vline_interp(), dirlines PoC #753 4 years ago
nick black 750f88b70a split direct into its own header 4 years ago
nick black b617587ade
demo_nanosleep_abstime_ns: silence compiler warning 4 years ago
nick black 9ff805e754
demo_nanosleep_abstime_ns: fix test sense, swallow input #782 4 years ago
nick black 4b893164e1
ncplane_stain(): only stain valid EGCs #777 4 years ago
nick black 5512158fc5
postpaint(): no need to replace nul with space #777 4 years ago
nick black ea183c0d66
fdthread: stop being an asshole and NUL terminate the input #778 4 years ago
nick black 3ef1a3a07d
add notcurses_version_components() 4 years ago
Nick Black 162f9910c2
Tons of work on ncreel (#776)
Tons of work on ncreel (#627, #749, #694)
Improve reel demo: get input wired up once more, avoid the FPS demo at bottom, print pointer and line count in each tablet, use new ncreel API. Improve notcurses-ncreel explorer: kill memory leaks (#694), draw tablets better, use new ncreel API. Fix bug in ncreel core where cruft could be left on the screen, via a very gross brute force algorithm. I'll likely come back and make this a bit less ghastly in the future #749. Remove weird one-off input system from ncreel, residue from outcurses. Make some of the normalizing changes speced out in #627

* ncreel: give each tablet an index, and print it #749
* reel: eliminate FIXME + param to insert_tabler() #749
* ncreel: label tablets with their adress to correlate against debugging logs #749
* more terminal environment variable notes
* TERMS.md: add Sakura, st
* ncreel: move legend out of reel proper
* ncreel_options: dump min/max_supported_rows/cols #627
* ncreel: remove weird one-off input layer #627
* ncreel: add ncreel_offer_input()
* reel demo: call demo_getc()
* reel demo: rig up input to demo main
* ncreel: drop ncreel_del_focused(), properly bind tablets
* reel demo: don't free up necessary plane
* ncreel: don't pull absolute locations of tablets
* ncreel: place tablets correctly in boundrel
* reel demo: add back support for left/right
* reel demo: restore thread movement
* ncreel: remove a great deal of complexity
* reel demo: stay out of FPS graph's way
* ncreel: give each tablet an index, and print it #749
* reel: eliminate FIXME + param to insert_tabler() #749
* ncreel: label tablets with their adress to correlate against debugging logs #749
* ncreel: move legend out of reel proper
* ncreel_options: dump min/max_supported_rows/cols #627
* ncreel: remove weird one-off input layer #627
* ncreel: add ncreel_offer_input()
* reel demo: call demo_getc()
* reel demo: rig up input to demo main
* ncreel: drop ncreel_del_focused(), properly bind tablets
* reel demo: don't free up necessary plane
* ncreel: don't pull absolute locations of tablets
* ncreel: place tablets correctly in boundrel
* reel demo: add back support for left/right
* reel demo: restore thread movement
* ncreel: remove a great deal of complexity
* reel demo: stay out of FPS graph's way
* reel: tighten up reel following redraw
* reel: fix upper-left corner of topless perimeter
* ncreel: print linecount, return clipped value
* reel: draw focused tablet relative to reel
* reel: brute force decruftification, how embarrassing #749
4 years ago
nick black 479dd00739
ncreel: purge {tblr}off fields; these are ncplane properties #627 4 years ago
nick black 8a9a0c35e0
remove debugging cruft 4 years ago
nick black da765ebdaa
mojibake: don't stomp right side of boxes 4 years ago
nick black f2af24648d
mojibake: add all remaining emoji collations #770 4 years ago
nick black 2c37f2c4ba
mojibake: second third of the emoji collations #770 4 years ago
nick black fd83cc8639
mojibake: add all unicode 13 emoji via CLDR order #770 4 years ago
nick black b6330d142b
add notcurses_render_file() #491 4 years ago
nick black b26bd14d11
demo: make HUD text opaque #771 4 years ago
nick black 5a9e0c6f05
rendering: lack of term capability is not error #768
If we don't have setaf/setab, then we're not going to set color.
OK, fine. Don't regard it as an error during
notcurses_rasterization(), just don't emit the escape. This is
necessary to run on terminals like vt100, which in turn is
necessary to run unit tests properly on Redhat's koji.
Also, use notcurses_canfade() to avoid just breaking during
fades in intro and trans demos.
4 years ago
nick black 2d87aff90e
subprocfd: fix memory leak on error path 4 years ago
nick black 7744c6aae5
highcon: keep text in original position #762 4 years ago
nick black efcf0583c9
ncmetric: fix µ for ASCII mode #764 4 years ago
Nick Black e201c9994d lookup_blitset: properly pass utf8 test #763 4 years ago
Nick Black c88c51c4d3 cell_load: check for negative cols result, propagate #761 4 years ago
Nick Black ecc7bb25cc selector: draw indicators in ASCII mode #761 4 years ago
nick black 6b1b8d1695 ncplane_puttext: unit tests for scrolling #719 4 years ago
nick black 84746f1f31
OTHERS: add termbox, termion, pancurses 4 years ago
nick black 718abd648a ncdirect_render_image: add alignment #759 4 years ago
nick black 2fa8de9813 ncdirect: silence ffmpeg #759 4 years ago
nick black 46b8c8c913 ncdirect_render_image(): get it working for all geometries #759 4 years ago
nick black eba7106067 ncdirect_clear: use ->clearscr, kill off bogon ->clear #759 4 years ago
nick black 4c3cb44100 ncdirect_render_image: fix NCSCALE_NONE #759 4 years ago
nick black b829398538 ncdirect_render_image: accept ncalign_e parameter #759 4 years ago
nick black 46d75c072a ncdirect_render_image(): don't take current x into account #759 4 years ago
nick black 74b44506b6 vizdirect: use all three scaling types #759 4 years ago
nick black b698efb953
ncdirect: prefer provided fp, iff it's a tty #752 4 years ago
nick black e5c9168523
notcurses_init(): dup() ttyfd so we can always close() it 4 years ago
nick black f7fc665c13
Acquire and use ttyfd properly in ncdirect #752
When we don't have an actual terminal in ncdirect, return
placeholder 80x24 for ncdirect_dim_y()/ncdirect_dim_x(), but
don't go querying e.g. a redirected file for its dimensions.
Similarly, only request info about cursor position from a true
TTY (we're otherwise likely to hang, or at best get meaningless
data). Rewrite 'direct' PoC to use ncdirect_dim_*().
Add tty_emit(). Closes #752.
4 years ago
Nick Black 415d4b813f
Tight work on unit testing, controlling tty vs output fd (#758)
* Some things go to the FILE* we're provided. Some can only go to a controlling terminal. Check to see if the FILE we're given is a TTY. If not, open up /dev/tty #752.
* term_emit(): fflush() can return EAGAIN. Loop on it to eliminate a rare error on shutdown that particularly affected unit tests (where we start and shut down Notcurses many times in a row).
* sgr poc: check return value of setlocale()
* drone: run all unit tests
* CMake: add some tests using PoCs
* ncneofetch: print even small palettes
4 years ago