Commit Graph

312 Commits (0d696be0ccb421f65db3d9e445e7edcaac6690f7)

Author SHA1 Message Date
nick black 8f78a8fdc0 fade tests: don't use CLOCK_MONOTONIC_RAW 4 years ago
nick black 3a7ee4b757
direct mode unit tests: allow init failure 4 years ago
nick black 6edc6f098f
streamline unit test common initialization 4 years ago
nick black dcaf29323c
plane_rotate: fix unit tests 4 years ago
nick black 30f049d2e6
metric: don't allow scales that cause overflow #611 4 years ago
nick black c01d0b227f
ncmetric unit tests for small values #607 4 years ago
nick black b7a9b11f0c
test::reset_terminal(): properly check tigetstr() 4 years ago
nick black 25fee034cb
ncplot: print EGC before breaking on small glyph #605 4 years ago
nick black 1c2f92b3bc
ncmetric: replace u with µ, define *COLUMNS #540 4 years ago
Nick Black f602c440a6
ncvisual_rotate() for arbitrary radians (#600)
* normal/visual: need dup stdplane for rotate
* add ncplane_center(), unit tests
* ncplane_center_abs(): add, unit tests
* ncvisual_bounding_box() for #599
* ncvisual_rotate(): works via bounding box #599
* normal demo: comment out broken section
* rotate: resize underlying plane as needed #599
* ncvisual_rotate: support negative rads #599
4 years ago
nick black 9a80750316
notcurses_canopen: split into images/videos #598 4 years ago
nick black 999c6c0742
geometry unit tests: shut down nc in finalizer 4 years ago
nick black 99d05f67e7 add ncplane_center(), unit tests 4 years ago
nick black 0bab14f654 tester: enable Visual tests #325 4 years ago
nick black d9bb9b03af notcurses-tester: run passing tests in C locale #325 4 years ago
nick black 646b8ba4a5
rotate unit test: don't depend on size 4 years ago
nick black fbed12cd80
ncreel_options: add flag field #590 4 years ago
nick black eaaa36f0c8
ncreader: ncplane as first arg #590 4 years ago
nick black fec423264f
selector: undo switch to notcurses from ncplane 4 years ago
nick black 5a3e0625a4
enmetric unit tests: kill duplicated fesetround() 4 years ago
nick black 1c394dc103 modernize c++ according to clang-tidy-11 4 years ago
nick black e2a94817e7 tests: lots of NULL->nullptr 4 years ago
nick black 989ca7ff9a selector->ncselector, multiselector -> ncmultiselector #580 4 years ago
nick black 4e94d942b0 reader unit test visualization #403 4 years ago
nick black d174431187 ncreader_create: accept const options #403 4 years ago
nick black 7683973ee4 ncreader_options, bad options tests #403 4 years ago
nick black 4819c0e1c3 selector/multiselect: accept notcurses 4 years ago
nick black c0c76342a8
rotate test: relax ncvisual_render() checks 4 years ago
nick black cbf46402f8
tests: portable find_data() 4 years ago
nick black ed548ab590
tests: apply clang modernizations 4 years ago
nick black a571f4daaa
tests/wide.cpp: use modern range loop 4 years ago
nick black 173af7b3c6
unit test upper left of rotated visual #569 4 years ago
nick black f84435f708
unit test ncplane_rgba() #569 #559 4 years ago
nick black 43a685be1e
ncsubproc: update unit tests for exit propagation #554 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 cd2cbd0d88
export enforce_utf8() via internal.h #451 4 years ago
nick black c8322e6cb1
ncfdplane: on non-following planes, break out on 0 read 4 years ago
nick black a23efbb463
rigourize ncsubproc destruction
We need support three distinct paths for destruction of
ncsubprocs: (1) external call to ncsubproc_destroy() while
the subprocess is running, (2) external call to
ncsubproc_destroy() after the subprocess has terminated, and
(3) internal call to ncsubproc_destroy() without any external
call. To do this properly, we always waitid() on the subprocess
in our ncsubproc thread, and do not cancel said thread. This
guarantees that the subprocess has been reaped if the thread
has exited. We throw a pidfd_send_signal() into the thread
prior to the waitid(), because this is safe with pidfds. The
thread reclaims no resources otherwise. ncsubproc_destroy(),
instead, reclaims them, after joining the ncsubproc thread.
It sends SIGKILL before the join, which is once again safe
thanks to pidfds. Resolves #552.
4 years ago
nick black c9088ff37b
subproc unit test rename 4 years ago
nick black e156bd42be
plot: match delete, not free, with new 4 years ago
nick black 5210e410f4
visual unit test: use notcursesI.avi, which OIIO can decode #547 4 years ago
nick black 294e8fd90a
subproc tests: pass outofline_cancelled through as curry 4 years ago
nick black 36bfa45d6c
notcurses-tester: fix double-free 4 years ago
nick black 595dd20950
cells unit test: downgrade problematic unicode to WARN #517 4 years ago
Nick Black 9a075ae5d0
Support image decoding with OpenImageIO #453 (#534)
* fedora: dep on OpenImageIO, and use it
* fedora: dep on libqrcodegen-devel
* fedora: BuildRequires OpenEXR-devel
* tight check on USE_MULTIMEDIA
* CMake: enable notcurses-view for ffmpeg OR oiio
* notcurses-view: don't reach into libav
* oiio: ncvisual_render() #453
* oiio: need our own properly-offset ncvisual_plane()
* `visual` poc: accept optional command line argument
* oiio: work for 3-channel images #453
* oiio: destroy ncvisual's plane if we own it #453
* notcurses_visual.3: s/FFmpeg/multimedia/g
4 years ago
nick black 0b4ada19b1 Remove AVFrame from API #532 4 years ago
nick black 21822f98e7 fix up averr->ncerr #532 4 years ago
nick black ad0685aa1b switch to nc_err_e #532 4 years ago