nick black
af07822d35
Document base cell better
...
Improve the documentation for ncplane_set_base_cell() and
ncplane_set_base(). Go by render.c's authority (all three
channels are independently checked for transparency, and
replaced with the base cell if so--egc, fg, and bg). Add a
BASE CELL section to notcurses_plane.3. Check for, and reject,
an nccell which is secondary among a multicolumn EGC.
Closes #1238 .
4 years ago
nick black
cc49c715a6
ffmpeg: averr is a raw int
4 years ago
nick black
bc4fe21ed1
get smxx/rmxx from terminfo
4 years ago
nick black
a9ccbc28f9
ncls: support -V/--version #1266
4 years ago
nick black
e37b466eea
notcurses-demo: support 'V' for version out #1266
4 years ago
nick black
4616d60ae9
notcurses-view: support 'V' for version out #1266
4 years ago
nick black
0bcb107ae6
fallin: don't carry cell across planes #1265
4 years ago
nick black
449455cf4b
microoptimize channels_blend() top half #1262
4 years ago
nick black
8e4158a817
inline postpaint_cell into raster #1262
4 years ago
nick black
23d3e03386
ncls: handle --help option
4 years ago
nick black
69e329d328
BigMult unit tests: fix for non-'.' decseps
4 years ago
nick black
7e20a25482
ncdirect_*_palindex -> ncdirect_set_*_palindex #1261
4 years ago
nick black
f1253560ad
ncdirect: set_ on rgb functions #1261
4 years ago
nick black
76d8e2dfce
ncdirect_{fg, bg}_default() -> ncdirect_set_{fg, bg}_default() #1261
4 years ago
nick black
58bc9bd3bc
fix up writeout stats, report in shutdown banner
4 years ago
nick black
0e8faed3f5
ncneofetch: check LOGO field in /etc/os-release #1246
4 years ago
nick black
638dde7657
remove unnecessary args from ncdirect_raster_frame() #1248
4 years ago
nick black
1d8fcbb5e4
ncdirect: styles{set, on, off} -> _styles #1247
4 years ago
nick black
f608df2af8
progbar PoC: call through on 1 #1258
4 years ago
nick black
8824495924
uniblock demo: properly set progress
4 years ago
nick black
f729d855f9
complete SingleCellDown/SingleCellUp tests #1258
4 years ago
nick black
b0c6f697e0
yield: render in pfill loop so we never look locked up
4 years ago
nick black
68f5ea711e
demo: move HUD over by 2, don't block legend
4 years ago
nick black
f22ddfa72f
progbar: don't overrun on 1.0 #1257
4 years ago
nick black
c9fb385ebe
fold out test breakage #1250
4 years ago
nick black
91e932ed26
ncvisual_render: handle NCSCALE_NONE_HIRES #1250
4 years ago
nick black
56d94e9392
intro: add a bar on top to match bottom
4 years ago
nick black
15664b9799
ncdirect: handle new scalings #1250
4 years ago
nick black
dd1cdc40d5
add NCSCALE_NONE_HIRES, NCSCALE_SCALE_HIRES #1250
4 years ago
nick black
a4bad2318f
dragon: don't force 3x2
4 years ago
nick black
3f26c36458
direct: honor transparency in image blitting #1252
4 years ago
nick black
1fa4580a3e
throw some D's on that bitch #1114
...
If the TERM string contains either of "kitty", "vte", or
"gnome", enable sextants. Fuck it, we'll do it live!
4 years ago
nick black
4d8efcab82
Progress towards NCBLIT_3x2 by default
...
Add a new member 'sextants' to the terminfo cache (both
notcurses and ncvisual contain one of these, and both
initialize it the same way -- interrogate_terminfo()).
Add a new function, 'notcurses_media_defblitter()', and
deprecate 'ncvisual_default_blitter()' (the latter didn't
receive enough information to return NCBLIT_3x2). Update
all callers. Add new *internal* function rgba_default_blitter(),
so this logic can be freely changed in the future. If
sextants are available, and we're scaling, return NCBLIT_3x2.
Once we detect sextant availability, we'll have sexblitter
as a default -- stay tuned! #1114
4 years ago
nick black
b8c33a6caf
ncplane_highgradient: use direct blitting #1249
4 years ago
nick black
4e5dbfd2b9
render: use hpa in place of cuf #1245
4 years ago
nick black
e6a45d5422
wcwidth: print running measure
4 years ago
nick black
6ca8949845
add kittyzapper PoC #1117
4 years ago
nick black
0578e86e02
introduce terminal-specific heuristics
...
Kitty conflates an RGB background specification that aligns
with the default background color with that actual background
color. This can result in translucent background when we're
expecting opaque ones. Detect kitty (strstr check of terminal
name for "kitty"), and if it's active, mark `bg_collides_default`
with the rgb of the default background color. For now, we assume
this to be (0,0,0), but we ought improve it by determining (or
setting, if that's impossible) the precise default bg color.
Closes #1117 .
4 years ago
nick black
7df2c7cd04
ncdirect: use sgr0, properly align images
4 years ago
nick black
1fb4a66853
raster: fine-grained emits of op for default #1240
4 years ago
nick black
408004ee66
define fgop/bgop for fine-grained default color #1240
4 years ago
nick black
248dd1fff2
add dynamic linesig control #1228
4 years ago
nick black
99abcb5f07
cbreak_mode: move to input.c
4 years ago
nick black
d1fdaf7614
view: add -t option for timeouts
...
When the -t switch is provided to notcurses-view, its
floating-point argument is the number of seconds for
which we delay after showing an image. When this is used,
the standard "press any key to continue" prompt is not
displayed, and indeed keybindings are not honored. This
can be used for a slideshow, or just for fullscreen display
involving no user interaction. It does not apply in the
case of -L for looping. Closes #1229 .
4 years ago
nick black
c0316ee96c
view: document and parse -t time argument #1229
4 years ago
nick black
0b633fbdad
ncplane_at_yx_cell/at_cursor_cell: return bytes of egc
4 years ago
nick black
fd146db050
demo: reject extra command line arguments
4 years ago
Nick Black
730e9f69ec
Multithreaded ncls ( #1232 )
...
Thread out ncls to perform the media decode in different threads, in parallel. Only the display needs be locked. On a directory of 200 files on my 39070X, this speeds ncls from ~5s to ~1s. On 75 files, we go from ~.5s to ~.2s. On a single file, we lose about 5%. To facilitate this, ncdirect_render_image() has been split into two helpers, ncdirect_render_frame() and ncdirect_raster_frame().
4 years ago
nick black
d7fd7fa39e
ncdirect_render_image: save/restore colors #1230
4 years ago
nick black
bf3e3eb0b5
ncplane_at_cursor_cell: rewrite with ncplane_at_yx_cell()
4 years ago
nick black
1798e061e1
fallin': drop unused nccell c #1231
4 years ago
nick black
28b1a80433
ncplane_at_yx_cell: work directly with cell_duplicate() #1231
4 years ago
nick black
1b613591fe
ncmenu_create: missing newline on diagnostic
4 years ago
nick black
e43d127b42
ncdirect_render_image: reset colors after each line #1222
4 years ago
nick black
14778e4b71
ncdirect_dump_plane: always emit newline #1222
4 years ago
nick black
85b0a37154
ncdirect: retry fflush() on EAGAIN on all paths
4 years ago
nick black
0fb455f0ee
ncls: don't flush output after each line
4 years ago
nick black
9b0f88f024
ncpile_drop(): reset stdplane's blist #1226
4 years ago
nick black
3226652936
reel demo: kill tablets on demo_render() exit #1225
4 years ago
nick black
4fabba6789
s/reception/receipt/
4 years ago
Nick Black
1bdd2d0555
Progress bar polishing ( #1219 )
...
Progress bars now support four 32-bit channels in ncprogbar_options, and uses them to color a gradient. The redraw procedure has been changed from O(n) to O(1). ASCII progress bars have been repaired. Closes #1213 .
4 years ago
nick black
243b8bd4d4
uniblock: scrub all legend residue
4 years ago
nick black
7b4f978256
ncplane_resize_internal: disallow bad keepy/keepx #1215
4 years ago
nick black
66150c1f42
ncplane_resize_internal: reject keep > len #1215
4 years ago
nick black
a0c722ff0d
notcurses_nccell.3 -> notcurses_cell.3
4 years ago
nick black
913373c27e
ncplane_reparent: update boundto in non-root case #1214
4 years ago
nick black
f83bdab99c
progress bars: full resolution for retrograde #1210
4 years ago
nick black
a598c706db
Correctly splice children of reparented root plane
...
Tremendous thanks to @kaniini, @Ikke and everyone else over
at Alpine Linux for helping to chase this down. I blundered
in ncplane_reparent() when reparenting a root plane with
children (the children need to come into the root plane
list). This will hopefully fix our amd64 failures on Alpine
since late 2.0.x. Closes #1197 .
4 years ago
Ariadne Conill
b49ac58d3e
cope with situations where /dev/tty is not actually a TTY
...
this can happen in situations where a child process is not running in a
session group associated with a TTY, such as on a build server.
4 years ago
nick black
f2cbfff8d9
demo: remove meaningless average r%/w%
4 years ago
nick black
8ec6d2e6fc
progbars: full resolution, fix vert inversion #1210
4 years ago
nick black
2ff20108c8
force LTR override on UC_BIDI_AL #1204
4 years ago
nick black
1bbbdd9dc0
annotate many functions with ((nonnull))
4 years ago
nick black
f7d55e8fa8
allglyph demo: add two fat vertical progress bars
4 years ago
nick black
6b859b6a32
ncls: add --align argument #1195
4 years ago
nick black
ee9ed23e04
uniblock: fixed-width progress bar to better show off smooth fill #1209
4 years ago
nick black
5036e655cb
ASCII fallback for progress bar #1209
4 years ago
nick black
fb38818667
progbar: cover all dependent regions #1209
4 years ago
nick black
91431f84d9
progress bars: 8x resolution #1209
4 years ago
nick black
d5574cab9a
restructure progbar logic to prep for highres #1209
4 years ago
nick black
4984903d61
intro: better use of flipmode bar
4 years ago
nick black
ca547bc521
progbar: get vertical progbars working #1209
4 years ago
nick black
cd3fd17174
uniblock demo: add a progress bar #1151
4 years ago
nick black
827d758c19
properly color progbar #1202
4 years ago
nick black
d56ea8b5e7
progbar: remove egcs options
4 years ago
nick black
c3b5069eae
progbar PoC: use retrograde #1202
4 years ago
nick black
82ffac8eed
remove ncprogbar locking options #1202
4 years ago
nick black
e37540c76e
ncprogbar: implement core draw loop #1202
4 years ago
nick black
08b2d38721
progbar: directions + channels
4 years ago
nick black
ff798e69e9
progbar PoC: finish up
4 years ago
nick black
1d74979718
progbar core / poc #1202
4 years ago
nick black
be3bd474f6
model.dot: simplify
4 years ago
nick black
11efb0f98f
selector: no NULL deref on error path
4 years ago
nick black
97c2d53abf
notcurses-view: remove unused variable 'gotinput'
4 years ago
nick black
ea131b9b11
scan-build: remove unused stores
4 years ago
nick black
33862979da
scan-build: remove dead stores
4 years ago
nick black
228bd17237
rtl PoC #1204
4 years ago
nick black
a2ab467219
whiteout demo: fix up brace extensions
4 years ago
nick black
c98d6c2576
selectively copy width in paint() #1207
4 years ago
nick black
fd2acde1b1
rename cell->nccell, keep alias #1200
4 years ago
nick black
e66f1a03ad
keller: give each phase a full demodelay
4 years ago
Nick Black
6106dea18a
track+use width for polycolumn EGCs #1203 ( #1205 )
...
Some EGCs are more than 2 columns (wcwidth() never returns more than 2, so far as i can tell, but when multiple characters combine, we use the sum). An example would be ကြေ (Myanmar) which occupies three columns over the course of three characters. Track the width (biased by 1) in cell->width, taking over 8 bits from cell->reserved. Use this width in rasterization. Closes #1203 .
4 years ago
nick black
a3e7b3b5d0
utf8_egc_len: count all printing glyphs #1174
4 years ago
nick black
f66425b819
wcwidth PoC: print total bytes
4 years ago
Nick Black
438e042cdf
Multipile resize support #1172 ( #1190 )
...
drone: use ctest -V
4 years ago
nick black
2c4566fdb3
notcurses-tester: drop loglevel to _ERROR
4 years ago
nick black
1c673a57af
assume default 80x24 when ioctl() fails #1197
4 years ago
nick black
876c5a91a1
notcurses: remove unused truecols field
4 years ago
nick black
1239ac7a29
mathtext PoC: loop properly
4 years ago
nick black
764df80816
notcurses_resize: call resizecb's across root plane #1172
4 years ago
nick black
edf55d8cc1
notcurses_rasterize: adapt to piles
4 years ago
nick black
b0aecee29d
ncplane_reparent: kill FIXMEs, fix up blists
4 years ago
nick black
1ff0c0e88c
resize_children -> resize_callbacks_children
4 years ago
nick black
3b5efb0351
ncpile: add roots element, track from bprev
4 years ago
nick black
22790943bc
demo: change plot to 2Hz to avoid gaps
4 years ago
nick black
a3220b8a73
add ncplane_descendant_p(), unit test it #1192
4 years ago
nick black
5bce6d62a8
cell_egc_idx: fix up endianness #1130
4 years ago
nick black
e1201c7c30
fix character loading on bigendian #1130
4 years ago
nick black
e7f208342f
ncls: don't create Ncpp ctx until post-getopt #1194
4 years ago
nick black
42ac6bb90b
more pile reparenting testing #1193
4 years ago
nick black
8fe3e17b54
boxdemo: rotate colors through at finer granularity #1186
4 years ago
nick black
b3b700a8c0
rtl_egc(): augment *bytes VR by ltrmark size #1174
4 years ago
nick black
c95bb1ad48
demo: index summary from 1
4 years ago
nick black
23af0a2626
htole() on cell_egc_idx() constants #1130
4 years ago
nick black
e60a7aa463
add stat for notcurses_refresh()
4 years ago
nick black
39cc06a5f7
input: properly terminate asap when handling multibyte #1188
4 years ago
nick black
2922b8c663
define AT_NO_AUTOMOUNT to 0 on freebsd #1187
4 years ago
nick black
7140d1349c
demo: fix demo_getc() to use MAXSLEEP (12.5ms)
4 years ago
nick black
4cf4a4ce0b
egcpool: fix cell_egc_idx() math #1179
4 years ago
nick black
838280ce6b
ncls: don't use AT_NO_AUTOMOUNT on freebsd
4 years ago
nick black
564fcafee3
fileroller/procroller: use alternate screen
4 years ago
nick black
03c95b2b14
demo: minimal-width debug plane
4 years ago
nick black
aeae053214
strange things going on with kitty + zalgo...
4 years ago
nick black
16320792c2
demo: turn on NCPLOT_OPTION_PRINTSAMPLE #1183
4 years ago
nick black
4b2fe60032
plots: use slotcount - 1 for samples #1183
4 years ago
nick black
14fa544433
add NCPLOT_OPTION_PRINTSAMPLE #1183
4 years ago
nick black
5257232f2f
plot: use T-type intervalbase #1184
4 years ago
nick black
e46d9e2a2b
fpsgraph_stop: don't render
4 years ago
nick black
9b7238fdc9
demo: preserve plot/hud/etc. on shutdown
...
If we're using -k to inhibit use of the alternate screen
for notcurses-demo, we want to see what was on the screen
when we quit. If we're actually quitting, don't destroy
these components manually, so they remain visible.
4 years ago
nick black
a7f59e4fab
plots: use pool_blit_direct() #1182
...
Use pool_blit_direct() instead of ncplane_putwc_yx() in
redraw_plot(). This eliminates use of rtl_egc() and wcwidth()
on the EGCs used in plots, sidestepping Debian's -1 wcwidth
for sextants (in the same fashion blitting does) and slightly
speeding up plot drawing. At a plot rate of 10Hz, notcurses-demo
is now faster than it used to be at 1Hz, so that's nice.
4 years ago
nick black
73d9668d13
de-picklize eagles with help from k. sarkozy
4 years ago
nick black
8091e5c7e0
demo: plot by decisecond instead of second #1081
4 years ago
nick black
2cb8295146
demo: use braille for plot, looks great
4 years ago
nick black
ea771217fb
cell_load_char() unit tests #1176
4 years ago
nick black
66b911de38
move wcwidth()==-1 emoji to end of mojibake
4 years ago
nick black
ea18be772a
don't call egc_rtl() on negative bytes
4 years ago
nick black
0cba073cc9
simplify pool_blit_direct()
4 years ago
nick black
11bbf3c4ff
correct endianness for cell_simple_p()
4 years ago
nick black
afbccc5bde
big-endian fix for iscntrl()
4 years ago
nick black
429bfac785
apply htole() to blanks in paint()
4 years ago
nick black
1c188508d4
add a 1x1 run to widestomp PoC
4 years ago
nick black
35bd9aaae0
whiteout demo: change timing to allow for analysis
4 years ago
nick black
e5306f6197
widestomp PoC: eliminate color weirdness #1175
4 years ago
nick black
f6a5aebf71
link to ncurses/libunistring in readme
4 years ago
nick black
b38d742358
wcwidth PoC: only print (!) for errors
4 years ago
nick black
6fb5c1e512
Fill out some API holes, improve some comments
...
- Disambiguate the docs for ncplane_erase()
- Add ncpile_top(), ncpile_bottom()
- Refuse attempts to modify the standard plane's resizecb
- Copy alignment and resizecb in ncplane_dup()
- Add cell_load_egc32()
4 years ago
nick black
fd9e0e6510
Merge branch 'master' of github.com:dankamongmen/notcurses
4 years ago
nick black
744ba8a75c
reels: properly size cbp when drawing bottom border #1082
4 years ago
nick black
2c85142b2a
notcurses_init: don't treat setup_signals as fatal error #1168
4 years ago
nick black
698540286c
ncmenu: move unrolled section on resize #1162
4 years ago
nick black
fc609f9d7d
ncmenu: resize and redraw callback #1165
4 years ago
nick black
76f2353cb4
lock all accesses to notcurses_resize() #1162
4 years ago
nick black
1b1cc291f6
Resolve segfaults/undefined behavior on resize
...
Consult the new section of HACKING.md for full details. By
performing the resize check in rasterization, we potentially
have too many (3) different geometries at work once we hit
rasterization. Furthermore, we have some pessimal behavior
regarding rendering into enlarged terminals, since we don't
know the new size at render time. Instead, move it to the top
of ncpile_render(), and guard it with a lock (this was in any
case necessary, since the screen geometry can be
shared/mutated concurrently with render operations).
Closes #1162 .
4 years ago
nick black
9b1207dd5f
notcurses_rasterize_inner: receive an ncpile #1162
4 years ago
nick black
c6e06eef29
add some comments to rendering
4 years ago
nick black
192c583aad
try forcing LC_CTYPE, C.UTF-8 if not inhibited #1150
4 years ago
nick black
1cfc406496
ffmpeg: error out on avcodec_send_packet error #1156
4 years ago
nick black
067aaa9bbb
ncls: cover up some unused-param warnings
4 years ago
nick black
55694ef966
finish ncls #693
4 years ago
nick black
84dc81fee4
ncls: render images in handle_inode() #693
4 years ago
nick black
5335e69b41
ncls: unify within lsContext #693
4 years ago
nick black
bc8905b30c
ncls: handle_deref() #693
4 years ago
nick black
41c7dece64
ncls: recurse into directories, when appropriate #693
4 years ago
nick black
c733f33b81
ncls: add -L argument, skeleton for stat()
4 years ago
nick black
65856c37b4
ncls: more command line parameters
4 years ago
nick black
de3944b114
ncls getopt skeleton #693
4 years ago
nick black
b01113941d
is_egc_wordbreak(): portably initialize mbstate
4 years ago
nick black
4b682585b9
reel: don't assert() in tablet draw callback
4 years ago
nick black
dcde23e74c
apply htole() where needed #1130
4 years ago
nick black
4d524f92bc
apply htole() in ncpixel_*() #1130
4 years ago
nick black
253b9582b2
index.html: scale down headers by one
4 years ago
nick black
47d5347f01
run mojibake after normal; it looks cool
4 years ago
nick black
2e78ae1c5e
update logo to notcurses II xray #1144
4 years ago
nick black
4655c9dd13
we want builddef.h from visual-details.h
4 years ago
Marek Habersack
c063ce4e36
[C++] API sync
...
Added:
* Pile: new class derived from Plane, which implements all the
`ncpile_*` calls
* Plane: `get_parent` (`ncplane_parent`)
* Plane: protected constructor for use by `Pile` (or other derived
classes which cannot provide a valid `ncplane*` when invoking parent
constructor.
* Plane: `set_plane` for use by the derived classes above.
Changed:
* Plane: `to_ncplane` is a `const` method now.
4 years ago
nick black
6a9029b60c
ncdirect_styles_set: restore italics/struck after sgr #1138
4 years ago
nick black
b7ea4e2359
run sgr-full and sgr-direct in test suite #1138
4 years ago
nick black
f82ad10667
Properly set italics/struck following sgr #1138
4 years ago
nick black
0ed8c0d234
rasterize: set up NCSTYLE_STRUCK with italics #1138
4 years ago
nick black
fd804be520
beef up sgr-full a bit #1138
4 years ago
nick black
fbe383415f
drop confusing sgr PoC
4 years ago
nick black
725ecc9267
32-bit fixes for various diagnostics
4 years ago
nick black
ebc80915a3
c++/rust struck #1138
4 years ago
nick black
f89ca15640
sgr-full PoC: add NCSTYLE_STRUCK #1138
4 years ago
nick black
fe164b6210
add NCSTYLE_STRUCK #1138
4 years ago
nick black
fd97aa844c
implement ncpile_{render, rasterize}() 🦀 🦀 #1135
4 years ago
nick black
7a21574798
implement notcurses_render() using ncpile_render() #1135
4 years ago
nick black
8f7fa9da44
move postpaint() out of render step #1135
4 years ago
nick black
b2516d8534
Declare ncpile_render() and ncpile_rasterize() #1135
4 years ago
nick black
8c9f8d193a
notcurses_version_components(): drop atoi()s #1131
4 years ago