Commit Graph

341 Commits (be6362d74f6ce7438255c0e0ff2cd63793902328)

Author SHA1 Message Date
nick black 32b1f3937c
add FAQ entry about xterm's eightBitInput resource #735 4 years ago
nick black 6ad8ef1dd3
add FAQ about TERM defintions 4 years ago
nick black c5b517c448
note requirement of musl 1.20+ #733 4 years ago
nick black 3df44a05f7 Add link to 'glyph hell' 4 years ago
nick black ffab8b5294 lay groundwork for ncneofetch #550 4 years ago
nick black 463f5acd6a CMake: unset cached result of qrcodegen header check #711 4 years ago
nick black d3c3905996 FAQ entry about cmake+libqrcodegen-dev #711 4 years ago
nick black ba31c575ba
README: discuss LANG and TERM 4 years ago
nick black 633ef1f76c
add beginnings of yield demo 4 years ago
nick black 84ae45ef39
remove all libsixel crap #200 4 years ago
nick black 89ffb6658e
CMake: improvements to testing usability
Replace USE_TESTS with BUILD_TESTING variable already exported by CTest.
Use the CMake 3.17 CMAKE_CTEST_ARGUMENTS to pass "-V" to ctest. #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 f425944bba
FreeBSD: move back to getrandom(); read_random() is kernelspace 4 years ago
nick black fc998510a0
CMake: only install static libs if built #625 4 years ago
nick black a288c2e654
document all build options 4 years ago
nick black 9ccbc99e9e
now in fedora core! 4 years ago
nick black 4b642bc68d
require oiio 2.15.0+ to get infinite loop fix #547 4 years ago
nick black 5081ed048c
do an OIIO rotate() #559 4 years ago
nick black 084bb721fa
we're now part of freebsd! 4 years ago
nick black 759dfbf499
add 1.4.0 to README.md 4 years ago
nick black 98eddd86a9
README: link to hype videos 4 years ago
nick black a2888f2c75 FAQ entry about 10-bit color 4 years ago
nick black d54e2c3957
README: point to debian unstable package 4 years ago
nick black 018e88f53b
README: don't undersell it 4 years ago
nick black 7d1e3c77c8 oiio: image scaling #535, subimages for video #536 4 years ago
nick black 0a38cd6ff5
move usage ToC to USAGE.md 4 years ago
nick black d40c46a7aa
README: fix up syntax in header list 4 years ago
nick black 5f42e06383 oiio: open and close image #453 4 years ago
nick black 6045c54189 move usage stuff into USAGE.md 4 years ago
nick black 11c5aacb08
ncsubproc: move to big bad clone3() #310 4 years ago
nick black 04f90fa1ea
ncsubproc: launch processes, make pipes
link to LWN article in History section of README.md.
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 790a953c82
list libqrcodegen in README 4 years ago
nick black 40f36a9fb4
accepted into Debian, like a boss 4 years ago
Nick Black 1c7796a2b0
ncdirect_cursor_yx, ncdirect_cursor_pop, ncdirect_cursor_push #401 (#492)
* ncdirect_cursor_{push, pop, yx} declarations #401
* direct PoC: invoke ncdirect_cursor_yx() #401
* direct PoC: move to top of screen #401
* OTHERS.md: mention blessings
* ncdirect_cursor_yx working #401
* CHANGELOG: mention ncdirect_cursor_*() #401
4 years ago
Nick Black c6a9997554
Normalize ncplane_at_* / ncplane_set_base() (#479)
* ncplane_at_* and ncplane_at_cursor_*

We had notcurses_at_yx() expanding into three distinct parts of
the cell structure, and ncplane_at_yx() / ncplane_at_cursor()
writing directly to a cell. It was annoying to remember which
was which. The latter two now have a signature matching
notcurses_at_yx(), while the old functionality has been moved
to ncplane_at_yx_cell() and ncplane_at_cursor_yx(). #476
4 years ago
nick black 957e09671e debian: repack DFSG tarball using uscan #496 4 years ago
nick black 6cbca20d0a
add 1.3.0 release to README 4 years ago
nick black 9a202b558e
remove colloquy from specfile, README 4 years ago
nick black 4c9a756630
drop notcurses-keyplot from README 4 years ago
nick black 2c2da61c72
ncdirect: add relative move functions #419 4 years ago
Nick Black c2a645e9af
Rust wrapper work (#454)
* packaging: s/libtinfo/Terminfo/g
* rust: add stddim_yx()
* rust: check for valid init in unit tests
* rust: serialize up tests
* constify notcurses_term_dim_yx()
* rust: add dim wrappers
* remove notcurses_resize() from public API #367
* call notcurses_resize() from notcurses_refresh() #367
4 years ago
nick black 5c44416426
export ncplane_putstr_yx() as static inline 4 years ago
nick black 4a6ab358ba inline ncplane_putsimple_yx() 4 years ago
nick black 32c590ea64 document details of scrolling #323 4 years ago
nick black fcd7e19e4c Add ncplane_set_scrolling() #323 4 years ago
nick black 7cf3bad556
note that ANSI_X3.4-1968 is also allowed 4 years ago
nick black 459b1029af README: add notcurses-keyplot to app list 4 years ago
nick black af478ccf95
README: book has been published, link it =] 4 years ago
nick black a45d888601
All fill-type functions return cells changed
Fill-type functions used to return 0 for success, and -1
on failure. They now return the number of cells written
on success, similarly to ncvisual_render(). Resolves #427.
4 years ago
nick black 8651486ad7
Don't say DirectColor when TrueColor is meant 4 years ago
nick black a77774f4dc
notcurses_at_yx(): value-result u32+u64, not cell
Resolves #410. notcurses_at_yx() accepted a cell*, but the
gcluster of this cell was always set to 0. The EGC is instead
a heap-allocated copy, returned as the primary return value.
This is due to the absence of an egcpool to bind against.
Existing callers can be converted thus:

* instead of passing cell 'c', pass &(c)->attrword, &(c)->channels
* either initialize 'c' with CELL_TRIVIAL_INITIALIZER, or set its
   gcluster field to 0 following the call

I've updated all calls from tests/demos, updated the docs, and
updated the C++ and Python wrappers.
4 years ago
nick black 73b61f6a69 Add bound planes (#71) plus docs/tests
Add ncplane_bound(3). This allows a new plane N to be created in the
*bound* state relative to another ncplane B. If B moves, N moves the
same amount. If N is moved, the coordinates are taken relative to B
as opposed to the standard plane. If B is destroyed, N is destroyed.
Each plane can have many planes bound to it, but can only be bound to
a single plane. Add ncplane_reparent(3). This allows a plane to be
detached from any plane to which it is bound, and optionally rebound
to a new plane. The standard plane cannot be reparented.
Documentation and unit tests have been added for both.
4 years ago
nick black ff71eda6a1
reels are a cylinder, not a torus 4 years ago
nick black ee754ed241
Tetris: simplify MoveDown(), don't be stupid 4 years ago
Nick Black de9158bd7b
More tetris work for book #421 (#423)
* tetris: use NES gravities
* tetris: use NES grav multiplier of 50ms
* tetris: implement move down #421
* README: mention notcurses-tetris #421
* tetris: use double box for boundary #421
* tetris: extract background.h
* tetris: break up into chunks suitable for book
* tetris: do the rotations
4 years ago
nick black 060c0c2a47 README: WINDOW->plane in reel docs 4 years ago
nick black 38f4255dc0 Define ncplane_mergedown() #361
ncplane_mergedown() is similar to the "Merge down" operation
in the GIMP. It writes to the destination plane the result
of rendering the source and destination frames per se.
4 years ago
nick black 6f9fdc115a published next month! :D 4 years ago
nick black ba90c70a47
ncplane_cursor_yx() takes const first argument 4 years ago
nick black db30bcf0d2
document new ncdirect functions for cursor #402 4 years ago
Nick Black c056a0a026
Subregion renders #293 (#404)
Add four new fields to notcurses_options: margin_{tblr}, which requests margins to the top, right, bottom, and left. Render only within those margins, leaving the screen otherwise untouched (well, cleared if using the alternate screen). #293
4 years ago
nick black 638be8feb7 multiselector options/items #322 4 years ago
nick black eead4c1414
notcurses_highgradient() added #398 4 years ago
nick black 333f7c1192
define ncplane_rotate_cw/ccw() 4 years ago
nick black afe724ee1d
docs: update for ncplane_translate_abs() 4 years ago
nick black bb579d0d05
notcurses_directmode()->ncdirect_init() 4 years ago
nick black c6f27f1bee
notcurses_resize() update docs #367 4 years ago
nick black a39efb1d6d
move selector, menu documentation to book 4 years ago
nick black fce0d9d88d
README: send multimedia to book 4 years ago
nick black 13beb9703f
move some README content to the book 4 years ago
nick black 4fb8500631
README: add link to mailing list 4 years ago
nick black a09bdc4ade
Add seqnum field to ncinput #374 4 years ago
nick black a626178b16
ncdirect: cursor movement / geom detection #382 4 years ago
nick black 9b0603bb32
Implement + test ncplane_mouseevent_p() #305 4 years ago
Nick Black 745e742a12
Fix gradient engine #368 (#372)
Simplify and correct the gradient engine, resolving all test breakage.
4 years ago
nick black 5e38da9ea3
implement ncplane_stain() #347 4 years ago
nick black 002e8be574
implement ncplane_format() #347 4 years ago
nick black 2780734efd
add ncplane_translate() 4 years ago
nick black f9d98dd05c
notcurses_stdplane_dimyx() #365 4 years ago
nick black 35d850f008
Implement + test ncplane_putegc_stainable() #352 4 years ago
Nick Black e5d6685c92
No locks, more lox #290 (#358)
* README/CMake: only require doctest 2.3.5

* man pages: remove talk of locking #290

* Remove locking from notcurses core #290

* Purge locking from notcurses core #290
4 years ago
Nick Black e6637e81cc
Prep for serious rusting #101 (#354)
* CMake: add USE_PANDOC, USE_DOXYGEN options #101
* README: mention rust
* start integrating rust into build #101
* CMake: add USE_NETWORK option for cargo
* Debian: build-dep on doxygen
* rust: colloquy checks in Cargo.lock
* extract NCKEY defines into their own include
* colloquy: use clap to parse CLI args
* CMake: unify option namespace
* Python: update include path
* Rust: fix up --frozen workings for -DUSE_NETWORK=off
* CMake: abstract out colloquy a little
* Sync direct.hh to the New Way
4 years ago
Jakub Wilk f08d51c5e7 fix typos 4 years ago
nick black 3734262a52
README: link to Doxygen output 4 years ago
nick black d8fc0da91d
README: add link to guidebook 4 years ago
nick black 111a44fde5
update HISTORY with 1.2.0 release 4 years ago
nick black 438ee1257b
remove doctest, rely on system 4 years ago
nick black c6520ab84c add notcurses_drop_planes, use from demo #346 4 years ago
nick black ab9cbf82dc drop all images from README.md 4 years ago
nick black 6e97501ef7 add menu example to README 4 years ago
nick black 43bf0874d7 trim down NCKEY repetitions from README 4 years ago
nick black 643c1f4ed4 drop 0.4.0-sheet.png from README.md 4 years ago
nick black 8ecb4ba6a8 declare gradient functions #340 4 years ago
nick black 124004c87c add nplane_polyfill_yx() #340 4 years ago
nick black ce3e5d112e add ncdirect_clear() #343 4 years ago
nick black 6d629025e3 add ncdirect_fg_default() and ncdirect_bg_default() 4 years ago
nick black bfc28b0071 comment up ncdirect a bit better 4 years ago
nick black 9fc53e811f
ncplane_perimeter() plus unit test 4 years ago
nick black d8c42d4d1e
ncmenu_selected() fills in an ncinput #333 4 years ago