Commit Graph

166 Commits (master)

Author SHA1 Message Date
nick black 88c765ba7e
drone: build rust in CI, run unit tests #930 4 years ago
nick black 7d2d7c7896
drone: build python in CI #930 4 years ago
nick black 248c49402e
drone: use new builders 4 years ago
nick black b5d93077f1
drone: revert to older fedora until new one's fixed 4 years ago
nick black a8b4c01210 brown v board of education comes for ubuntu 4 years ago
nick black 84631369d4 update to new drones 4 years ago
nick black cb189869ee debugging ubuntu CI 4 years ago
nick black dd0605939a
drone: add libunistring 4 years ago
nick black 1792f820e4
drone: shift ubuntu docker back to 2020-07-13a 4 years ago
nick black 1e39589c08
drone: update to 2020-07-13a builders 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
nick black b6aa91bf4c
drone: fix up exclude syntax 4 years ago
nick black 3a8b0150d3
move doctest --tce to drone.yaml 4 years ago
nick black 9d6b5b2872
drone: fucking yaml syntax 4 years ago
nick black dd2b36ce0a
drone: set TERM on debian 4 years ago
nick black 33667df40e
drone: set TERM for fedora 4 years ago
nick black 4a3d436e5b
drone: update builders 4 years ago
Nick Black 28431914a8
First go at ncplane_puttext() (#690)
Very simple take at ncplane_puttext(), a new function for linebroken text. Also some very basic unit tests. I doubt this works very well yet, but it handles the simplest cases #682. Added nclog(), internal function for logging. #520
4 years ago
nick black e879bf8f93
let outro demo run on no-multimedia builds 4 years ago
nick black 0766007a77
tester: kill off inhibit_alternate_screen #651 4 years ago
Nick Black ebcba82d4b
Fully general ncvisual layer (#647)
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.
4 years ago
nick black dbc20bd5c0
add man page for ncmetric(3) #631 4 years ago
nick black 698f664bd8
drone: update to new builders 4 years ago
Nick Black 216495ce8a
Fedora rawhide docker build (#602)
* run a fedora build
* fedora: dnf -y install for now
* dnf install ncurses-devl
4 years ago
Nick Black fe8034b5e0
ncfdplane, fileroller PoC, ncfdplane unit tests, qrcodes #24 #514 (#524)
* first draft of ncsubproc spec
* qrcode first draft #24
* demo: add qrcode demo skeleton, entries #24
* qrcode demo #24
* fedora python build changes from @dcantrell
* ncplane_qrcode() works #24
* add some flash to the qrcode demo #24
* drone: use newest builders
* fix up rgb PoC
* drop jungle demo to 100Hz target
* add fd.c
* ncfd skeletons
* more ncfdplane #514
* ncfdp i/o loop
* ncfp: improve uinit test, write core
* firm up ncfdplane #514
* fileroller PoC #514
* ncplane: allow '\n' in stream when scrolling #523
4 years ago
nick black 1a670ba443
drone: use newest builders 4 years ago
nick black 2c131c4c2d
drone: drop debian stuff 4 years ago
nick black 7a2d2a9659
drone: use ubuntu focal 2020-04-05a 4 years ago
nick black baa233634b
drone: stop building rust 4 years ago
nick black 74bbe73daf drone: argh 4 years ago
nick black 4430d9c068 drone: use new builders 4 years ago
nick black 716260831e drone: try building rust 4 years ago
Nick Black f9c54761f5
Basic mandelbrot for `n`ormal demo #145 (#424)
normal: working mandelbrot, very basic #145
4 years ago
nick black 7c76f26a16
drone: 2020-02-17a builders 4 years ago
nick black 08bef99244
Debian: remove comments from watch file 4 years ago
nick black d4fe929f63
drone: new focal builder 4 years ago
nick black 2b6b6f996a
drone: new builders 4 years ago
nick black 89a1e806bf
drone: new focal builder 2020-02-01a 4 years ago
nick black 83c50655ba
drone: turn focal back on 4 years ago
Nick Black da0283ac25
Selector widget #166, subtitles #95 (#301)
Get rid of annoying empty line in notcurses-view (and ncvisuals at offsets in general)
Implement most of the Selector widget. Need to add styling and scrolling still. #166
Reenable ubuntu focal build
Subtitles! We decode them, and display them in notcurses-view. If ncvisual_simple_streamer() is provided an extra ncplane, it will use it to display subtitles. #95
We now build Python by default, as things are working much better.
ncplane_set_base() now takes channel, attrword, and EGC, so you can usually avoid having to set up and release a cell. ncplane_set_base_cell() takes over duty from ncplane_set_base() for ease of conversion.
notcurses-demo and notcurses-view now both accept a 0 for delay multiplier, meaning 'go as fast as you possibly can'. Very small multipliers (e.g. 0.00001) no longer cause floating point exceptions.
fading routines no longer cause floating point exceptions on very small timescales.
4 years ago
Nick Black 16dfe05a93
Build and install Python wrappers #294 (#298)
* cmake: build python extension
* Python: remove obsolete clear_screen_start
* Debian: python3-cffi, not python-cffi
* Debian: add dep on python3-setuptools
* Python: build extension module from CMake #294
* Python: install python wrappers #294
* drone: disable focal for now
4 years ago
nick black 809caad8c0
drone: buster lacks necessary cmake 4 years ago
nick black b91029ee31
drone: run a build on stable 4 years ago
nick black 5b4e285798
cherry-pick drone update 4 years ago
Nick Black 3d612aebcb
ruins color cycling demo #253 (#287)
* palette_set: update pal256 damage map #230
* drone: use newest builders
* palette: send oc on exit for color reset #285
* palette_new: copy existing palette in #230
* Python: use checkRGB everywhere
* more palette unit testing
* add ncplane_set_*_palindex()
* render fg palindex #230
* palette index color is out of 1000
* jungle demo works #253
4 years ago
nick black aa79a86438 drone: new builders 5 years ago
nick black d6d1f752a2
drone: update to newest builders 5 years ago
nick black 1697afc6b9 drone: use new builder images 5 years ago
nick black e2745cd12f debian: no more dep on libgtest-dev 5 years ago
nick black 9739f010e0 debian: add build-dep on ruby-ronn 5 years ago
Nick Black ce2a390b52
Out with googletest, in with doctest #202 (#231)
* introduce doctest over googletest #202
* call dtester in in targets
* doctest conversion #202
* channel.cpp -> doctest #202
* egcpool tests -> doctest #202
* input tests to doctester
* zaxis -> doctest
* drone: always define LANG
* libav to doctest #202
* panelreel tests to doctest #202
* spec that a C++17 compiler is now required for doctest #202
* enmetric tests -> doctest #202
* fade tests -> doctest #202
* notcurses test case -> doctest #202
* last conversion to doctest #202
* finish move to doctest #202
* drone: set up make test
5 years ago
nick black 5dfe861de4 drone drone drone 5 years ago
nick black f887023aa6 ubuntu-build 5 years ago
nick black 58332f5ce0 drone: drop duplicate entry 5 years ago
nick black b0bdaaa0b9
build for ubuntu:focal 5 years ago
nick black 873badfc80 relax dep on libgtest...hrm 5 years ago
nick black c61513901f
try building on ubuntu-bionic 5 years ago
nick black 90735c67ba
make test in autobuilder 5 years ago
nick black 4c80791682
erp 5 years ago
nick black bdecfef3d2
drone: build on both debian stable and unstable 5 years ago
nick black f742676aee Mouse support using button event tracking #165
Request and parse up mouse messages. We handle up to 11 mouse
buttons, 3 modifiers (currently thrown away), motion while
holding down a button, and loss/gain of focus. I've added twelve
new NCKEYs: one for each button, and one for release. In addition,
I've introduced the 'ncinput' struct, which encodes the nckey plus
extra data. The only extra data thus far is coordinates for mouse
events. It is not necessary to provide a ncinput to all input
functions; NULL can be provided if the caller doesn't care about
details. All demos are updated. notcurses-input has been updated
to decode full information of returned ncinputs.

The primary resource for this work was Dickey at al's "XTerm Control
Sequences", https://invisible-island.net/xterm/ctlseqs/ctlseqs.html.
5 years ago
nick black b4b4b3684a yaml 5 years ago
nick black 1bc2bcf31e multiple pipelines 5 years ago
nick black e16db46b9c
set tty:true in docker config 5 years ago
Nick Black 0867e43182 sign that fucker 5 years ago
nick black 70df86ba17
version string, notcurses_version() 5 years ago