Commit Graph

2059 Commits

Author SHA1 Message Date
nick black
1526cfc7b8
handle_getc(): check for NULL ni before writing ->alt 2020-05-07 00:51:50 -04:00
nick black
e97d16b85f
plot.cpp: modernize return types 2020-05-07 00:51:26 -04:00
nick black
3f93d15cda
widestomp: apply clang-tidy-11 fixes 2020-05-07 00:18:12 -04:00
nick black
173af7b3c6
unit test upper left of rotated visual #569 2020-05-06 23:50:24 -04:00
nick black
f84435f708
unit test ncplane_rgba() #569 #559 2020-05-06 23:16:00 -04:00
nick black
3aa0e482d3
ncplane_rgba: set up frame #559 2020-05-06 23:04:36 -04:00
nick black
c96498de8a
ncplane_rgba(): check for validity of input #559 2020-05-06 22:21:50 -04:00
nick black
7337280e17
ncplane_at_yx(): const ncplane argument 2020-05-06 22:21:22 -04:00
nick black
5bdfc0183f
ncvisual_from_plane() #559 2020-05-06 21:40:24 -04:00
nick black
90dacae213
python/docs: declare ncvisual_from_plane() 2020-05-06 20:10:01 -04:00
nick black
43a685be1e
ncsubproc: update unit tests for exit propagation #554 2020-05-06 19:53:59 -04:00
nick black
efc8c027a0
ncsubproc: harvest with waitpid(), pass up wstatus #554 2020-05-06 19:46:51 -04:00
nick black
94fcada67c
ncvisual_rotate: unify _cw/_ccw, take radians 2020-05-06 05:49:22 -04:00
nick black
20d0048838
CMake improvements/cleanup #565
Rather than inspecting CMAKE_BUILD_TYPE manually and setting
DEBUG_OPTIONS based off the results, set CMAKE_{C/CXX}_FLAGS_DEBUG,
and allow that to be picked up by CMake #565. Remove repeated -W
flags that were all over the place, making them global compiler
flags. Remove repeated FORTIFY=2 definition that was all over the
place, making it a global compiler definition. Remove all uses of
${DEBUG_FLAGS}. Also, since CMake doesn't define a CMAKE_BUILD_TYPE
by default, instead just setting neither debugging nor optimization
flags, in what seems a pretty fucking boneheaded move, set it by
default to RelWithDebInfo. ugh. Explicitly disuse unused PoC variables.
2020-05-06 05:24:23 -04:00
nick black
54154339f6
ncvisual_set_data() to track ncv->data for ownership 2020-05-06 04:38:02 -04:00
nick black
3e8cbca9e6
plug memory leak in whiteout demo 2020-05-06 04:20:57 -04:00
nick black
b420722bfe
ncvisual_destroy() for null multimedia #568 2020-05-06 03:06:06 -04:00
nick black
102ff0a7ce
unify ncvisual_render() across ffmpeg/oiio #568 2020-05-06 03:02:42 -04:00
nick black
14fa7c350d
bgra_to_rgba(): remove obsolete assert #566 2020-05-06 01:51:01 -04:00
nick black
4446bbdf06
tria_blit(): interpret missing row as transparent #566 2020-05-06 01:50:02 -04:00
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.
2020-05-06 01:02:46 -04:00
nick black
f7e002d913 ncvisual_from_*: prefixes for all three modes #557 2020-05-06 01:02:46 -04:00
nick black
39548acc3a rename ncvisual_open_plane->ncvisual_from_file() #560 2020-05-06 01:02:46 -04:00
nick black
7e9cc29f8e add decls+docs for ncvisual_from_rgba/bgra #557 2020-05-06 01:02:46 -04:00
nick black
803296fb80 tetris: curpiece is now a Visual, not a Plane #558 2020-05-06 01:02:46 -04:00
nick black
a2888f2c75 FAQ entry about 10-bit color 2020-05-06 01:02:46 -04:00
nick black
03f98e0101 USAGE: flesh out media section #556 2020-05-06 01:02:46 -04:00
nick black
2ec3a8a5ca visual.3: add ncvisual_subtitle() to man page 2020-05-06 01:02:46 -04:00
nick black
ecdc85de11 USAGE: add section on multimedia #556 2020-05-06 01:02:46 -04:00
nick black
0135a6b54d rotation: ncvisual, not ncplane #515 2020-05-06 01:02:46 -04:00
nick black
0b22b561d2
notcurses-view: accept only valid -s arguments #563 2020-05-04 17:28:20 -04:00
Marek Habersack
e23d5baea4 [C++] Sync API changes
Added:

  * class FDPlane (`ncfdplane*`)
  * class Subproc (`ncsubproc*`)
  * NotCurses: get_inputready_fd (`notcurses_inputready_fd`)
  * Plane: qrcode (`ncplane_qrcode`)
  * class PlotBase: templated base class for Plot variations
  * class PlotU: `uint64_t` instantiation of PlotBase (aliased to previous
    `Plot` class for source compatibility), `ncuplot*`
  * class PlotD: `double` instantiation of PlotBase, `ncdplot*`
2020-05-04 05:39:01 -04:00
nick black
f14444cfca
multiselector: work in ASCII environment #451 2020-05-02 16:37:01 -04:00
nick black
cd2cbd0d88
export enforce_utf8() via internal.h #451 2020-05-02 15:52:11 -04:00
nick black
4951a6876c
ncplane_putc_yx(): abstract to ncplane_cell_ref_yx() 2020-05-02 15:16:01 -04:00
nick black
c0b2a64102
implement+doc notcurses_inputready_fd() #513 2020-05-02 12:56:39 -04:00
nick black
d95bbb7c61
python: add input functions 2020-05-02 12:55:09 -04:00
nick black
fd86da5530
kill_and_wait_subproc: no NULL siginfo_t for waiid() 2020-05-02 12:07:10 -04:00
nick black
c8322e6cb1
ncfdplane: on non-following planes, break out on 0 read 2020-05-02 11:57:38 -04:00
nick black
b34fa9be41
python: proper ncfdplane/ncsubproc decls 2020-05-02 11:01:43 -04:00
nick black
5132b5b2b5
ncsubproc: unify thread implementations #553 2020-05-02 09:29:39 -04:00
nick black
8feb01c7cc
rust: use ncplane_dim_{y|x} from libnotcurses-sys 2020-05-02 08:23:48 -04:00
nick black
0d38adc60a
rust: move inline replacements to libnotcurses-sys 2020-05-02 08:13:15 -04:00
nick black
ff18138349
rust: ncplane_perimeter(), cells_rounded_box() 2020-05-02 08:04:13 -04:00
nick black
63f65a0902
rust: proper subslice in ncplane_putstr() 2020-05-02 07:17:17 -04:00
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.
2020-05-02 04:34:37 -04:00
nick black
6d0fb39458
python: add ncfdplane/ncsubproc decls 2020-05-02 03:49:43 -04:00
nick black
c9088ff37b
subproc unit test rename 2020-05-02 03:49:16 -04:00
nick black
456c54e9bd
fds.3: detail usage of ncsubproc_destroy() #552 2020-05-02 03:47:18 -04:00
nick black
6e0fd72e33
proc/fileroller: don't call ncfdplane_destroy() from within callbacks 2020-05-02 03:33:30 -04:00