Commit Graph

174 Commits (1dfcb826a6b1f75b4fb520dfd8ae7cecd8194f51)

Author SHA1 Message Date
nick black 90dacae213
python/docs: declare ncvisual_from_plane() 4 years ago
nick black 94fcada67c
ncvisual_rotate: unify _cw/_ccw, take radians 4 years ago
nick black f63325db60 Lots of ncvisual work
Unify ffmpeg/oiio/null implementations, where possible. This effectively
required placing all three in the same file, which meant they're all now
C++. Update FFmpeg implemenation to be C++-usable. Implement
ncvisual_rotate_cw() and ncvisual_rotate_ccw() #515. Move most of tetris
over to Visual from Plane #558. Add bgra_to_rgba(), necessary for
creating ncvisual from BGRA memory. Implement ncvisual_from_rgba()
and ncvisual_from_bgra() #557. Add unit tests on ncvisual rotation.
4 years ago
nick black 39548acc3a rename ncvisual_open_plane->ncvisual_from_file() #560 4 years ago
nick black 0135a6b54d rotation: ncvisual, not ncplane #515 4 years ago
nick black d95bbb7c61
python: add input functions 4 years ago
nick black c8322e6cb1
ncfdplane: on non-following planes, break out on 0 read 4 years ago
nick black b34fa9be41
python: proper ncfdplane/ncsubproc decls 4 years ago
nick black 6d0fb39458
python: add ncfdplane/ncsubproc decls 4 years ago
nick black 84107c547d
view: support -m argument for margins #551 4 years ago
nick black 05753bd91a
v1.3.3 4 years ago
nick black 0b4ada19b1 Remove AVFrame from API #532 4 years ago
nick black 2037cdfacb move libav.c to nc_err_e #532 4 years ago
Nick Black 0e73b9d3d5
Floating-point ncplot, genericize ncplot (#531)
* compile ncplot as c++ generic #446
* add floating-point plots #446
4 years ago
nick black 7791eec65e
fedora: update spec for review feedback 4 years ago
nick black 1dad2c6b50
v1.3.2 4 years ago
nick black e00ef4aca9
prep for 1.3.1 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 86e225dc4c prep for 1.3.0 #460 4 years ago
nick black 24a9343b0b
prep for 1.2.9 4 years ago
nick black 69b716f7f8 prep for 1.2.8 4 years ago
nick black 89809d5b59 prep for 1.2.7 4 years ago
nick black bdfcdf4086
get pydemo working again #459 4 years ago
nick black 6d366380ed prep for 1.2.6 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 77dd998b05
ncplot uses exclusively non-negative samples #447 4 years ago
nick black 5c44416426
export ncplane_putstr_yx() as static inline 4 years ago
nick black e3b3719a97 python: pull ncplane_putsimple_yx() 4 years ago
nick black fcd7e19e4c Add ncplane_set_scrolling() #323 4 years ago
nick black df3dc6b5bc
prep for 1.2.5 4 years ago
nick black 4917603478
ncplot: swap NCPLOT_2x1 and NCPLOT_1x1x4 4 years ago
nick black 58b7d39b7d plot: fix up python for labelaxisd 4 years ago
nick black 68b4ba1706 plots: implement remaining vertical grid types #136 4 years ago
nick black 5f3eb3dc24 keyplot: add third plot, this one with half blocks #433 4 years ago
nick black 5bccf6b446 ncplot: implement x windowing #430 4 years ago
nick black 41f1f8bb49 python needs ncgridgeom_e 4 years ago
nick black 4926186b5a ncplot: check input parameters for validity #430 4 years ago
nick black a2170a4291 ncplot: add_sample(), set_sample() #430 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.
5 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.
5 years ago
nick black 7c6b655483 v1.2.4 5 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.
5 years ago
nick black bdd7f9422a
python: add ncdirect_cursor_*() 5 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
5 years ago
nick black de520f3aa0
python avoid double def 5 years ago
nick black be089747a7 ncmultiselector_selected() #322 5 years ago
nick black 638be8feb7 multiselector options/items #322 5 years ago
nick black eead4c1414
notcurses_highgradient() added #398 5 years ago
nick black ac683e21d2
v1.2.3 5 years ago
nick black 333f7c1192
define ncplane_rotate_cw/ccw() 5 years ago
nick black bb579d0d05
notcurses_directmode()->ncdirect_init() 5 years ago
nick black 2c98013150
python: fix up seqnum reference 5 years ago
nick black a09bdc4ade
Add seqnum field to ncinput #374 5 years ago
nick black ddd33fea31
ncdirect_move() doc, readme, python, c++ #382 5 years ago
nick black e72111ac8b
v1.2.2 5 years ago
nick black 9b0603bb32
Implement + test ncplane_mouseevent_p() #305 5 years ago
nick black 5e38da9ea3
implement ncplane_stain() #347 5 years ago
nick black 002e8be574
implement ncplane_format() #347 5 years ago
nick black 88c49df1b1
v1.2.1
DSFG demo can't have luigi
s/1.2.0/1.2.1/g
5 years ago
nick black 35d850f008
Implement + test ncplane_putegc_stainable() #352 5 years ago
nick black e9818fe8e8
pydemo: extract demo from main module 5 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
5 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
5 years ago
nick black 2b08c53075 prep for 1.2.0 5 years ago
nick black b076253b16
python/LICENSE.txt: reduce to proper apache format 5 years ago
nick black c6520ab84c add notcurses_drop_planes, use from demo #346 5 years ago
nick black 8ecb4ba6a8 declare gradient functions #340 5 years ago
nick black 124004c87c add nplane_polyfill_yx() #340 5 years ago
nick black ce3e5d112e add ncdirect_clear() #343 5 years ago
nick black 36440ee278
python: sync ncselector declarations 5 years ago
nick black d8c42d4d1e
ncmenu_selected() fills in an ncinput #333 5 years ago
nick black 887726b0d9 Debian: move all symbols/history to 1.1.8 5 years ago
nick black cda600a4aa :/ 5 years ago
nick black ae62e046b0 python: add shebangs 5 years ago
nick black 533752063f python: move notcurses.py back into module 5 years ago
nick black 3e801c1f52
python: clean up example syntax 5 years ago
nick black b0c72607c4
ncmenu_offer_input(), use it in demo/pocmenu #333 5 years ago
nick black 79661633f0
ncmenu: knock out unterminated short descs 5 years ago
nick black aacec297b2
ncmenu: declare ncmenu_offer_input() 5 years ago
nick black 74b9690cf3
ncmenu: remove dumb restrictions/special casing 5 years ago
nick black e78f19c697
python: notcurses.py is runnable 5 years ago
nick black b8adfe1a39 Debian/python: make module runnable #335 5 years ago
nick black acbff55994 so deeply sick of python packaging woes #335 5 years ago
nick black 53df21b977
python: run sdist in build process 5 years ago
nick black 5c67591294
python: match new blend signatures 5 years ago
nick black 62488eaf10
blit->ncblit #324 5 years ago
nick black 5021212953
python: add ncreel, nctablet 5 years ago
nick black 89f516dcaa
tablet->nctablet, add ncreel to python #324 5 years ago
nick black b284901d18
prep for 1.1.6 5 years ago
nick black 09ff64e19f
ncdirect_style_*() #321 5 years ago
nick black f28bdf5d42
Python wrappers for ncdirect_styles_*() #321 5 years ago
nick black 429e00d612 v1.1.5 5 years ago
nick black ab3a91c5d0
python for ncdirect 5 years ago
nick black 87296a9f1c
Debian: update symbols with ncmenu 5 years ago
nick black 2a9f3c5ab3
ncmenu_selected(), update docs #179 5 years ago
nick black 65db9721d9
Python: add ncselector/blitter wrappers 5 years ago
nick black 60c19017f0
v1.1.4 5 years ago
nick black 746ef96ea1 prep for v1.1.3 5 years ago
nick black ca628e55bb python: do all work in build directory 5 years ago