nick black
302d69289a
[termdesc] parse a 8-bit rgb spec preferentially, to get foot working #1292
3 years ago
nick black
5f130b407d
CSI_BGQ: four slashes too many, whoops #1292
3 years ago
nick black
c814ee6137
[termdesc] parse bg query reply, set up bg_collides_default #1292
3 years ago
nick black
15cda99d88
sent background query along with our other initial queries #1292
3 years ago
nick black
dd9e3e673b
notcurses_debug_caps(): better utilize space
3 years ago
nick black
38bb8bd3b7
'at least a', not 'at least an'
3 years ago
nick black
44b398cac7
poll.h, not sys/poll.h
3 years ago
nick black
476ebe5533
tie warning about no multimedia to linking with null implementation #1771
3 years ago
nick black
0d963f17a9
ncplane_rgba: extend coverage to braille #1441
3 years ago
nick black
68af28f25e
start in on braille reverse
3 years ago
nick black
80b7391d96
remove NEWS claim that notcurses_check_pixel_support() is going away #1766
3 years ago
joseLuís
85cfca8df8
make `check_pixel_support` require a const reference
...
- fix rust bindings
- related #1766
3 years ago
nick black
9cbcc6c273
init: pipe detected terminal through to heuristics #1761
3 years ago
nick black
c13c613f32
no debugging cruft during init
3 years ago
nick black
966b2bc5ec
extract WezTerm from interrogations
3 years ago
nick black
412bd7450b
FOOT: match post-decode #1761
3 years ago
nick black
b44f17f4ad
extract terminal query responses #1761
3 years ago
nick black
1c6fae3403
term interrogation: extract strings #1761
3 years ago
nick black
cf09c65e3c
queried_terminal enumeration #1761
3 years ago
nick black
a163eeb2d7
until #1726 is fixed, no quadrants in linux console
3 years ago
nick black
dae208b4c5
ugh, dumb error in control_read() led to iterated reads
3 years ago
nick black
03d1e4fb5a
get u7 from terminfo rather than hardcoding it
3 years ago
nick black
0d7a5a5ef8
remove the majority of notcurses_check_pixel_support() calls #1469
3 years ago
nick black
309d211cde
termdesc: only bounce back to cbreak if fd >= 0 #1469
3 years ago
nick black
288381d5b9
ncinputlayer_init: only read responses on a tty #1469
3 years ago
nick black
be1356d213
termdesc: use cbreak mode until interrogation is complete #1469
3 years ago
nick black
73019e097f
debug_caps: elide meaningless max sixel when 0
3 years ago
nick black
7381356594
check for sixel_maxy before clamping; fixes MLTerm sixel
3 years ago
nick black
56c58c41f9
removed accursed alacritty_sixel_hack, hurrah!
3 years ago
nick black
0574a3a479
hook up sixel discovery through new one-shot query #1469
3 years ago
nick black
5fcce3d8b7
init vtmachine: extract numeric arguments for sixel #1469
3 years ago
nick black
398ebca5fd
extract XTVERSION, drain XTSMGRAPHICS on failure #1469
3 years ago
nick black
c0b724e140
add STATE_XTVERSION{1,2}, recognize ST to terminate #1469
3 years ago
nick black
4478896916
differentiate VT101 vs XTSMGRAPHICS color registers #1469
3 years ago
nick black
78b674610c
kill old xtsmgraphics / da lexing
3 years ago
nick black
4006f05cbd
effect STATE_DA_DRAIN state #1469
3 years ago
nick black
9efda3e5bc
start handling primary device attributes #1469
3 years ago
nick black
8569906dd3
bulk up notcurses-info with more glyphs
3 years ago
nick black
44ce08ecd6
pump_control_input: handle XTGETTCAP prefix
3 years ago
nick black
fc6bc1a3d8
build up pump_control_read() state machine, terminate on DA response #1469
3 years ago
nick black
a35ea97e2c
remove obsolete comment in handle_input()
3 years ago
nick black
a22e941b5e
ncinputlayer_init: prep for terminal detection end sequene
3 years ago
nick black
935e982487
unify inputlayer setup/teardown
3 years ago
nick black
59a36681be
rename inputlayer->ttyinfd to infd, as it's not necessarily a tty
3 years ago
nick black
f6405ca051
send CSI>q query, necessary for picking up wezterm DCS #1759
3 years ago
nick black
41231800c6
use XTTERMCCAP TN request in initial query
3 years ago
nick black
03b896e7ad
send XTGETTCAP for terminal name
3 years ago
nick black
cadd4aefee
s/CELL_ALPHA_/NCCELL_ALPHA_/g
3 years ago
nick black
fc2bbca1ca
notcurses-info: break up text segments
3 years ago
nick black
e99221f59e
replace all writen() with blocking_write() to avoid spins
3 years ago
nick black
834f256ec9
notcurses-info: be reliable in the face of output EAGAIN
3 years ago
nick black
a290e3f741
NEWS: fix typos info: dump more unicode
3 years ago
nick black
0b72bec79d
add ncdirect_ascii_box(), use it in DefaultBox unit test
3 years ago
nick black
d695a8206f
add ncdirect_detected_terminal() and notcurses_detected_terminal() #1759
3 years ago
nick black
e838209d21
ncdirect_vline_interp: force default background if selected #1752
3 years ago
nick black
8b058d022b
ncdirect_hline_interp: force default background if selected #1752
3 years ago
nick black
b541ec198d
direct mode: factor out activate_channels(), use it in ncdirect_box #1752
3 years ago
nick black
3dbb3c149d
get another mergedown() unit test #1615
3 years ago
nick black
091908295f
fix up Fills::MergeDownUni unit test #1615
3 years ago
nick black
f822510c3f
no need to track margins in sixel code #1615
3 years ago
nick black
20165ccbbe
no need to reference margins from kitty code #1615
3 years ago
nick black
608943bb95
reference nc->margin when we want margins, not stdplane #1615
3 years ago
nick black
27b05e6f1b
sixel/kitty: remove references to stdplane #1615
3 years ago
nick black
2f43bc70f1
ncplane_move_yx: correct dy/dx for root planes, add unit test #1753
3 years ago
nick black
9f4a578e72
factor out common unicode box sequences
3 years ago
nick black
cb178ac247
add simple_box() and heavy_box() forms
3 years ago
nick black
4731e8269f
add a unit test for ncdirect boxen #1752
3 years ago
nick black
deea4ddf9c
ncdirectf_geom: move to ncvisual_options #1746
3 years ago
nick black
5912a2138a
switch writen() to blocking_write() to avoid spinning
3 years ago
nick black
3622a96d29
argh, fix up blocking write, stupid
3 years ago
nick black
d7d032732f
ncplane_resize: rebuild TAM #1750
3 years ago
nick black
c56dfc2607
install caps-rendered as notcurses-info #1745
3 years ago
nick black
1bb5d690ff
debug_caps: show halfblock glyphs
3 years ago
nick black
3ca80fecd7
add internal NCVISUAL_OPTION_SCROLL, pass from ncdirect #1733
3 years ago
nick black
e6661bdd3b
ncplayer: fill in bottom line #1733
3 years ago
nick black
da9293fef1
allow kitty graphics to be printed on the lowest line, and use C=1 #1733
3 years ago
nick black
761ab46f75
XTSMGRAPHICS: send read attribute, not read maximum allowed #1716
3 years ago
nick black
866e1d04d5
termdesc: disable sixel with fewer than 64 color registers up front #1716
3 years ago
nick black
5426e153f7
ncdirectf_render: make ncvisual_options const, thanks @joseluis #1738
3 years ago
nick black
c967028fbe
ncplayer: add -n option for noninterpolative scaling #1738
3 years ago
nick black
99bb6e6f70
ncdirect_render_visual: pass vopts->flags through to bargs.flags #1738
3 years ago
nick black
2f340d6926
ncdirect_render_visual: convert maxx/maxy into ncvisualspeak #1738
3 years ago
nick black
59f4edd777
ncdirectf_render: accept an ncvisual_options #1738
3 years ago
nick black
6fcaad3c5d
generalize ncvisual_inflate() to ncvisual_resize_noninterpolative() #1738
3 years ago
nick black
9d47666dfe
kitty: undo C=1 thinko, ugh #1733
3 years ago
nick black
af7cde565b
implement NCVISUAL_OPTION_NOINTERPOLATE #1576
3 years ago
nick black
863c1778aa
kitty: cut alphas in half with NCVISUAL_OPTION_BLEND #1735
3 years ago
nick black
94cefb091f
pass blitterargs in toto down to write_kitty_data #1735
3 years ago
nick black
5940239e32
kill bargs->blendcolors, pass full flags qword #1735 , #1576
3 years ago
nick black
7d6c03fe6a
notcurses_visual.3: document BLEND interactions with PIXEL #1735
3 years ago
nick black
df29cbaf1e
[kitty] pass C=1 to inhibit cursor moves/scrolling from graphics #1733
3 years ago
nick black
a6433caeaa
add NCVISUAL_OPTION_NOINTERPOLATE #1576
3 years ago
nick black
e3bf3c9802
place resized pixel planes properly
3 years ago
nick black
f8533d44a1
new unit test, InflateVsScale #1728
3 years ago
nick black
ea13e25cf4
kill NCSCALE_INFLATE #1576
3 years ago
nick black
4bf14935f5
tinfo_debug_caps: prettify outputs
3 years ago
nick black
9cbc1c35f3
[sextants] add right-half to inverse lookup
3 years ago
Nick Black
b686661873
RGBA/BRGA unit tests: don't do any scaling #1714
3 years ago
nick black
97bfd726e4
ncvisual_from_bgra(): use ncpixel API to work on big-endian #1714
3 years ago
nick black
7f2635ced1
rgba/bgra from memory tests need htole() #1714
3 years ago
nick black
eee6ed4f7b
rotate unit tests: fix for big-endian #1714
3 years ago
nick black
e03b1fb5d8
if query_sixel_details fails, disable bitmap support #1469
3 years ago
nick black
b432166f66
send DA following XTSMGRAPHICS #1469
3 years ago
nick black
60c030e232
send DA following XTSMGRAPHICS #1469
3 years ago
nick black
8f0324547e
oiio: use pixel_stride() when appropriate #1723
3 years ago
nick black
bb243989d3
blitters: take bpp as parameter to deal with OIIO pixel_stride() #1723
3 years ago
nick black
383dc90842
ncvisual_blit: call resize_bitmap() for implicit scaling without multimedia engine #1718
3 years ago
nick black
c64e6e265e
drop visual_resize_internal
3 years ago
nick black
4cf653635a
add Visual::Stretch unit test, complete FIXMEs in two others #1718
3 years ago
nick black
0184ccc0b3
add visual_resize_internal to visual_interface API #1718
3 years ago
nick black
a7f41dcefa
ffmpeg_resize: check for owndata before frame_unref #1718
3 years ago
nick black
250c5c9262
ffmpeg_resize: rewrite using ffmpeg_resize_internal() #1718
3 years ago
nick black
e07d712029
notcurses-tester: use unique_ptr on find_data()
3 years ago
nick black
ba8dd1b705
extract ffmpeg_resize_internal(), call from ffmpeg_blit() #1718
3 years ago
nick black
68c0ac4093
ffmpeg: no need for an AVFrame in resize, yay #1718
3 years ago
nick black
3a3fe77514
null media implementation: use c source, not c++ #1718
3 years ago
nick black
73ed97993f
kill 'none' multimedia implementation #1718
3 years ago
nick black
f77c008e88
tinfo_debug_caps: print unicode block characters
3 years ago
nick black
8d22f4618f
lookup_blitset: replace O(N) loop with O(1) access
3 years ago
nick black
26054e757c
rely on ncvisual_set_data() for clear in ffmpeg_resize() #1712
3 years ago
nick black
63bbe9fbbf
FdsAndSubprocs: WARN on (very rarely) failing pthread_mutex_destroy()
3 years ago
nick black
27831c744e
[ffmpeg] restore some av_freep()s, IMGALLOCALIGN 32->64 #1712
3 years ago
nick black
c2a82d0ed1
ffmpeg: transfer ownership following resize #1712
3 years ago
nick black
5f3844d6f1
ffmpeg: free sframe->data[0], not sframe->data #1712
3 years ago
nick black
36f7eb500c
av_frame_free() instead of av_freep() in ffmpeg_destroy() #1712
3 years ago
nick black
5ad08e7e87
[fallin] plug up memory leak on empty ncplane_at_yx() return
3 years ago
nick black
7c54fe0f23
ncplane_at_yx: free intermediate empty ret
3 years ago
nick black
1daa011269
kill OWNDATA diagnostic
3 years ago
nick black
d8c9463175
none_destroy: free up subdata #1711
3 years ago
nick black
82fb065795
only manage ncvisual in toplayer with no media implementation #1711
3 years ago
nick black
5a4b6cdae0
ncvisual_destroy: free up structure on all paths #1711
3 years ago
nick black
c2dd6b6a78
fix compilation error in textplay #1710
3 years ago
nick black
2aa63404e2
resize_bitmap: guard against potential overwrite
3 years ago
nick black
bebd33a30a
prune cruft
3 years ago
nick black
f0bcf63214
properly inflate #1576
3 years ago
nick black
27b09da0f7
ncvisual_inflate: use dstride for new rowstride #1576
3 years ago
nick black
b5174e75b7
Visual tests: properly base checks off rowstride
3 years ago
nick black
2dff72340f
remove obsoleted inflate_bitmap() #1576
3 years ago
nick black
513dbc18fc
factor out pad_for_image() #1705
3 years ago
nick black
7b72ef0567
unit tests now pass with null multimedia #1705
3 years ago
nick black
f46012e2d9
hook up resize_bitmap() to null VI #1576
3 years ago
nick black
f2fefacfc0
first go at generic resize_bitmap() for NCCSCALE_INFLATE #1576
3 years ago
nick black
3a6a2fa90b
textplayer: dewhiten last character written on delay #1649
3 years ago
nick black
e7d40e00e3
textplayer: support longdelay on '…'
3 years ago
nick black
52ebb71ac9
ncdirect_style_emit/render: take palette-indexing into account
3 years ago
nick black
96d743536f
box demo: work when built without multimedia support
3 years ago
nick black
3ac445a328
enforce singleton across both direct and rendered mode #1694
3 years ago
nick black
d170e6e7a2
man pages: document that only one context can be active at a time #1694
3 years ago
nick black
e4aae2d9b7
tinfo_debug_caps: tighten up output a bit
3 years ago
Nick Black
cd2b5de5fa
Panblitter ncplane_as_rgba() ( #1697 )
...
ncplane_as_rgba: genericize across blitters
ncplane_as_rgba() previously was implemented explicitly
in terms of NCBLIT_2x1. it now uses the `egcs` field of the
`blitset`. this supports NCBLIT_2x2 and NCBLIT_3x2 in
ncplane_rgba(). Closes #1490 .
3 years ago
nick black
d216b4115e
scrub_color_table: use sprixel cell geom not plane cell geom #1689
3 years ago
nick black
d20a4d8104
ncdirect: restore colors properly following sgr #1703
3 years ago
nick black
1f1bbadeac
demo: fpsgraph_init: ncuplot_create() kills plane on error
3 years ago
nick black
74eac6236b
ncXplot_create: own ncplane on all paths
3 years ago
joseLuís
9b5987e061
from_bgra(): repair mempcy #1700
3 years ago
nick black
217ab0cd90
cbreak_mode: require working file descriptor
3 years ago
nick black
ccad97dcff
cbreak_mode(): take no action on invalid file descriptor
3 years ago
nick black
a0130a88e6
don't try to preserve termios sans terminal
3 years ago
nick black
a4337ef144
merge tpreserved across direct/rendered #1525
3 years ago
nick black
e10a2f7a21
unify ncinputlayer between direct and rendered mode #1525
3 years ago
nick black
36d1eaf37b
revert, revert, revert my idiot change
3 years ago
nick black
d902dae60b
unify preserved termios between direct/rendered mode
3 years ago
nick black
73913c3f1a
free_terminfo_cache: free up esctable #1525
3 years ago
nick black
2df95f7e25
load up ESCAPE_OC #1525
3 years ago
nick black
1b15de9532
convert last two into esctable (initc/getm) #1525
3 years ago
nick black
59ddd3b0aa
move sc, rc, clear, and home to esctable #1525
3 years ago
nick black
567a1796a5
add smxx/rmxx to esctable #1525
3 years ago
nick black
857d5e5958
move smkx/rmkx smcup/rmcup into escape block #1525
3 years ago
nick black
c4e5ee2c38
sgr-direct PoC: use ncdirect_supported_styles() to guide output
3 years ago
nick black
a22414cd35
explicitly disable italics on ncv failure #1525
3 years ago
nick black
d613ed0784
move cursor controls into escblock #1525
3 years ago
nick black
92873d6b6e
move italics into esctable #1525
3 years ago
nick black
b67315a17e
tinfo: keep supported styles as single-site bitmap #1525
3 years ago
nick black
3b4057d550
move blink/dim/reverse/uline/standout to bools #1525
3 years ago
nick black
c4e2932c76
add ncdirect_supported_styles(), move SGR/SGR0/OC into escblock #1525
3 years ago
nick black
91d8529f0f
civis and cnorm go into escape table #1525
3 years ago
nick black
3f26ff2464
factor out term_supported_styles() for use by ncdirect
3 years ago
nick black
e5bc2a7d7f
terminfo: bold is just a boolean now #1525
3 years ago
nick black
1207765cc8
op/fgop/bgop into escape block #1525
3 years ago
nick black
6767a36996
move setaf/setab into escape table #1525
3 years ago
nick black
317c09d87d
bring hpa and vpa into escape table #1525
3 years ago
nick black
a5b597cfef
move ESCAPE_CUP into dense pack #1525
3 years ago
nick black
0f10eaf9fc
termdesc: move smcup/rmcup lookup into interrogate_terminfo() #1525
3 years ago
nick black
01c4ec61f3
termdesc: add get_escape(), tables #1525
3 years ago
nick black
55fd1f7bbe
TERMS.md: proper syntax on ETerm
3 years ago
nick black
dbbbc162ce
extract tinfo definition into termdesc.h
3 years ago
nick black
ee140a24e2
ncplane_as_rgba: nil geometry is any non-positive geometry
3 years ago
Daniel Eklöf
84f417aa41
Emit rmkx on exit
...
notcurses_core_init() does `smkx`, so let’s undo that in
notcurses_stop_minimal().
3 years ago
nick black
577ff0e545
progbar_create: safe 32-bit diagnostic
3 years ago
nick black
cd6236976a
[ffmpeg] convert loaded frames to RGBA in decode #1680
3 years ago
nick black
264e2cd3a1
ffmpeg_decode: remove obsolete FIXME
3 years ago
nick black
071000af4b
sixel: rebuild auxvecs on a new frame #1642
3 years ago
nick black
50693fb812
add a section on hardware cursor to notcurses_init.3 #1681
3 years ago
nick black
8ff2499b44
ncdirectf_geom: approximate rcell{y,x} #1665
3 years ago
nick black
f344c0d978
strengthen ImageChildScaling test #1675
3 years ago
nick black
51bd8b7c40
kill rotator PoC; it's covered by visual PoC
3 years ago
nick black
b26730a7e0
ensure we're exercising renderer in visual unit tests
3 years ago
nick black
41a31b0352
predicate ImageFileChildScaling unit test on ability to open media #1675
3 years ago
nick black
68e44d4c8b
align to 64B in ncvisual_from_bgra() #1675
3 years ago
nick black
1622beeac4
ncvisual_from_rgba: align suitably for ffmpeg (64B) #1675
3 years ago
nick black
20ea3a3345
new unit test, ImageFileChildScaling #1675
3 years ago
nick black
6969652031
add ncinput_nomod_p()
3 years ago
nick black
08e6fefb25
rgba_trans_q: replace illegal type punning with memcpy
3 years ago
nick black
21c0d0a215
kitty: rebuild auxvector when decoding a new frame #1605
3 years ago
nick black
580fe2d660
OIIO: comment about beg{x,y} and len{x,y} #1661
3 years ago
nick black
def4f5fd17
directmode render: update outy following a scaling #1673
3 years ago
nick black
3475a9d59b
initialize blitterags leny/lenx from ncvisual
3 years ago
nick black
dc9343714d
ffmpeg: scale from computed srcleny/srclenx #1661
3 years ago
nick black
937bf98473
nctabbed: spelling (alocate -> allocate)
3 years ago
nick black
6a982799a3
respect leny/lenx in cell rendering #1661
3 years ago
nick black
22e7fbf4c9
ncvgeom: explicitly set rcelly/rcellx to -1 until filled
3 years ago
nick black
a0bf28645f
unit test for visuals with partial limit + offset #1661
3 years ago
nick black
69adacf3f5
add Visual::Partial unit test for #1661
3 years ago
nick black
ce24efaaf8
vizdirect: exercise direct render restrictions #1661
3 years ago
nick black
42f26fcb1e
ncls: update to prep_image() maxy/maxx #1661
3 years ago
nick black
0e593502d4
directmode: honor xmax/ymax when rendering images #1661
3 years ago
nick black
0b197fe19b
is_test_tty: check for /dev/tty #1668
3 years ago
nick black
a903f32cd6
Robustify detect_cursor_inversion()
...
When we're doing cursor querying, whether for detection
of inversion or just straight up localizing ourselves,
we need to talk to a real terminal, or else there's not
much point. When detecting cursor inversion, we need
move the cursor, *and have it reflected in the terminal
feedback*, which means we need write directly to the
terminal (if one exists). This requires ctermfd over
ttyfp, which we now hardcode. Fixes cursor crap when
redirected away from the terminal #1668 .
3 years ago
nick black
a7fe43654b
wrap cursor tests in is_test_tty() #1668
3 years ago
nick black
6d1b7e7571
add is_test_tty() for notcurses-tester
3 years ago
nick black
65c3aa6653
drop_signals: return 0 even if we don't own the atomic
3 years ago
nick black
d8238da8c6
if we aren't setting signal handlers, don't try to take ownership of signal atomic #1666
3 years ago
nick black
c49749a1bd
add unit tests to check cursor following render #1664
3 years ago
nick black
8df01c2ab8
beef up directmode directf tests #1664
3 years ago
nick black
8729eccf06
SprixelGeom test: validate that scale{x,y} == cdim{x,y} #1659
3 years ago
nick black
2ef759f7a9
correct ncvisual_blitset_geom() for ncdirect case #1659
3 years ago
nick black
94cd3b60f1
basic unit testing of ncdirectf_geom() #1659
3 years ago
nick black
445ead70da
basic unit testing of ncdirectf_geom() #1659
3 years ago
nick black
646f57312e
first pass at ncdirecf_geom() #1659
3 years ago
nick black
c42fab1564
implement ncdirectf passthroughs #1659
3 years ago
nick black
b8cdd29a63
ffmpeg_details_destroy: use av_freep, not av_frame_free() #1658
3 years ago
nick black
ec5509b9be
use av_image_alloc() in ffmpeg_resize() #1658
3 years ago
nick black
3ae7ed6ed3
fix bitmapmaximize unit test to not use standard plane #1658
3 years ago
nick black
39afbd75c4
bitmap tests: remove useless garbage
3 years ago
nick black
b9e941e51e
tester: interpret any -l as -l8
3 years ago
nick black
194c739038
add new unit test SprixelMaximize #1658
3 years ago
nick black
014a88a09c
always enable 8bpc RGB for kitty, alacritty, and foot #1641
3 years ago
nick black
346512ccdf
eliminate type-2 gclusters, sprixels no longer interact with fb #1656
3 years ago
nick black
b87407eb36
remove unused cell_sprixel_id() #1656
3 years ago
nick black
f64b1deeb7
dump unused sprixel_by_id() #1656
3 years ago
nick black
ce2f2c6509
ncplane_dup: don't dup sprixcells #1654
3 years ago
nick black
8bd73378cf
add NCSCALE_INFLATE
3 years ago
nick black
9ce8222d36
drop "available" output from reel demo
3 years ago
Daniel Eklöf
632cbcc881
fetch: add artix to distro info
3 years ago
nick black
29b161f1c0
[box] place ships underneath grid #1639
3 years ago
nick black
a39b5f9347
[box] add some spaceships #1639
3 years ago
nick black
d80df651b3
textplay: expose more of the source material
3 years ago
nick black
d441dd4d0d
fix up compilation on freebsd #1644
3 years ago
nick black
af1641be4e
empty implementation of nctree_goto() #1643
3 years ago
nick black
fd7a1a5d6d
sixel_destroy: be more precise with damage #1616
3 years ago
nick black
19006b4988
account for margins in sixel/kitty_destroy() #1588
3 years ago
nick black
ee638b9a96
nccell_width() return -1 on utf8_egc_len() error #1627
3 years ago
nick black
e0e747837e
kitty: must damage cells underneath a sprixel when hiding #1562
3 years ago
nick black
8f6879ab7f
Fix sixel reload cached wipe display #1557
...
In Sixel, we must supply a value for P2; essentially, 1
means that there are transparent pixels, while 0 means
there are not, or that we don't care what's already
present (P2=0 is implemented faster by some terminals).
We set P2=1 upon encountering a transparent pixel, or
after wiping a cell, but we weren't doing so when we
reloaded a bitmap and prewiped due to cached ANNIHILATION
values in the TAM. Do so. This fixes up the flickering
we saw in the yield demo, as we no longer printed over
the text. Furthermore, we can now properly return 0 from
sixel_wipe() on a cached wipe, eliminating a great many
invalidations and redraws. Move the ANNIHILATION check
into the shared code of sprite_wipe(), removing it from
sixel_wipe() and kitty_wipe().
Oh, what a happy, happy, happy day!
3 years ago
nick black
3f908d43a2
sprixel_debug: show glyph length
3 years ago
nick black
022c6350e2
use ncplane_erase_region() in wipebitmap PoC
3 years ago
nick black
f080e1502b
add ncplane_erase_region()
3 years ago
nick black
e4a1b44ffa
sixel: restore bad 1 on cached wipe
3 years ago
nick black
f067f03832
wipebitmap PoC: more close-in testing
3 years ago
nick black
88936490bb
further wipebitmap PoC flushwork
3 years ago
nick black
0d70d73100
Write Requires.private in pc files based off discovered TERMINFO_LIBRARIES #1635
3 years ago
nick black
84c7aca04e
add ncblit_rgb_packed(), ncblit_rgb_loose() #1634
3 years ago
nick black
3a29fb7991
sixel_wipe: fix off-by-one in bounds computations #1628
3 years ago
nick black
05f5a479c1
revert #1628 fix until crash is resolved
3 years ago
nick black
ace36638d6
[sixel] completely wipe cells when height % 6 == 1 #1628
3 years ago
nick black
2d7019c726
deal with possible endianness problems in bitmap tests #1627
3 years ago
nick black
6a2ed461df
deal with possible endianness problems in bitmap tests #1627
3 years ago
nick black
73fc4ea935
demo: change up the order a bit, moving zoo before outro
3 years ago
nick black
c61eafbbf4
[ncdirect] use '\v' for cursor down, not '\n'
...
With '\v' (vertical tab), we don't need force raw mode.
This saves us system calls, and makes the entire affair
more reliable (no race between setting up termios and
emitting '\n'; no chance for second tcsetattr to fail).
Thanks once more to @dnkl on #1625 .
3 years ago
nick black
36a2d00fb3
ncdirect: move down with raw-mode newlines
...
The cud capability to move the cursor down doesn't
scroll (and shouldn't be used on the last row). We
have no reliable knowledge of whether we're on the
last row or not, so instead switch to raw mode, emit
the newlines, and switch back to whatever mode we
were in. This method is due to @dnkl aka Daniel Eklöf,
a gentleman and scholar who absolutely knows his shit.
Closes #1625 .
3 years ago
nick black
96491e42df
tighten up state machine, only move to INVALIDATED from QUIESCENT #1631
3 years ago
nick black
d574dee3fe
kitty: fix mask in triplet_alpha1() #1631
3 years ago
nick black
1d06c5bd5a
invalidate sprixel following rebuild #1631
3 years ago
nick black
757d12b9ad
wipebitmap poc -- more tests
3 years ago
nick black
99675db255
wipebitmap PoC: test transparent cells atop bitmaps
3 years ago
nick black
d5e3624f30
[sixel] *really* correct wipe_color() assert #1630
3 years ago
nick black
e65f4f2e7c
sprite_rebuild: don't assert on missing auxvec in SPRIXCELL_ANNIHILATED_TRANS #1629
3 years ago
nick black
ad265fe530
[sixel] fix up assert to properly bound xoff #1629
3 years ago
nick black
05f5f70ee2
lift SPRIXEL_HIDE check out of spirxel_wipe()
3 years ago
nick black
e0a53be471
textplay: purge debugging cruft
3 years ago
nick black
578f8eb45c
bitmaps: cap to screen size, fix bitmap childplane tests #1603
3 years ago
nick black
e8f0ff0f30
NCVISUAL_OPTION_CHILDPLANE unit tests for bitmap path #1603
3 years ago
nick black
d144d606f7
implement NCVISUAL_OPTION_CHILDPLANE on cell path #1603
3 years ago
nick black
763a69ea41
unit tests for NCVISUAL_OPTION_CHILDPLANE #1603
3 years ago
nick black
c93f9371b3
[dirlines] throw in a newline at the end
3 years ago
nick black
d1ab898cfe
dirlines PoC: ncdirect_stop() on all error paths
3 years ago
nick black
4283fc038d
[textplay] work for arbitrary UTF-8 input
3 years ago
nick black
9a5b719627
ncvisual_set_data: handle incoming data equivalent to existing data
3 years ago
nick black
584f394071
[ncplayer] block SIGWINCH from the beginning #1624
3 years ago
nick black
af093d397c
[directmode] don't leak sprixel after printing
3 years ago
nick black
172b9adfab
kitty graphics nonce space is 24 bits only #1578
3 years ago
nick black
a19e6a52de
Use different kitty nonces for different runs
...
If we always start with kitty graphics id 1, successive
runs of ncplayer -bpixel -k will erase any previously-
printed graphics. Initialize it with random() in
sprite_init(). Break graphics erasure out from sprite_init()
into new interface sprite_clear_all(), defined only for kitty.
The latter is now guarded by NCOPTION_NO_CLEAR_BITMAPS.
Closes #1578 .
3 years ago
nick black
a2b5a6dc03
[xray] tighten cleanup a bit
3 years ago
nick black
87f5952ace
restore av_frame_free()
3 years ago
nick black
95f8023d04
drop stdio.h from visual-details.h
3 years ago
nick black
0f018c2fc4
[ffmpeg] don't double-free
3 years ago
nick black
15fa0345bd
[ffmpeg] eliminate the despised oframe #1594
3 years ago
nick black
75d0549250
[intro] use a plane rather than ncvisual_resize()
3 years ago
nick black
dcef593670
[ffmpeg] properly seed following rotation #1594
3 years ago
nick black
3dd8f24937
[sixel] must use P2=1 if we added transparent rows #1560
3 years ago
nick black
629a16ca69
bounce onwards, with scaling #1560
3 years ago
nick black
c02467bb84
direct: bounce, bounce, bounce somewhere else #1560
3 years ago
nick black
f19368c61f
oiio: fix header
3 years ago
nick black
297617a12e
better color on demo postchecks
3 years ago
nick black
2375f48789
ncvisual_blit: chop out leny/lenx args for now #1560
3 years ago
nick black
252608b0cc
write_sixel: write output geometry to sixel escape #1560
3 years ago
nick black
6627c9c3d3
direct: adapt pixel blitting to the New Way #1560
3 years ago
nick black
707d3634eb
sprixel_load: guard against bad args #1560
3 years ago
nick black
2e444a7a23
bitmap unit tests: adapt to proper sixel scaling #1560
3 years ago
nick black
36c2eef914
render_pixel: use output geometry where applicable #1560
3 years ago
nick black
00782a0ee7
sixel: use output geometry #1560
3 years ago
nick black
52828cff07
plane_blit_sprixel: eliminate unnecessary length checks #1560
3 years ago
nick black
16d54497fa
bitmap unit tests: exercise resize to 1,1 #1594
3 years ago
nick black
5f51e15d7c
sprixel_load: sanity-check pixel geometry #1560
3 years ago
nick black
fedcd94502
separate output from scaled geometry #1560
3 years ago
nick black
9c2aef0ff7
factor out make_sprixel_plane() #1560
3 years ago
nick black
6e75998cf2
ncvisual_render_pixels: rename disprows/dispcols -> disppixy/disppixx #1560
3 years ago
nick black
e3d4bffd28
demo: no newline chars in diags, stupid asshole #1622
3 years ago
nick black
f4e4806ed9
intro: reduce highgradient area #1622
3 years ago
nick black
5b84197321
kitty: calculate damage out properly #1618
3 years ago
nick black
a6501057c5
demo: spruce up pixel/mosue checks a bit
3 years ago
nick black
c2b865a31d
demo: print initialization strings within notcurses context
3 years ago
nick black
3c574b5866
remove placey/placex from pixel chain #1560
3 years ago
nick black
1242e06d23
fd tests: don't introduce c++ locks #1538
3 years ago
nick black
1218fbddf9
fd tests: move inline_cancelled out of file scope
3 years ago
nick black
5c85070345
ncsubproc_destroy: call pthread_mutex_destroy() #1538
3 years ago
nick black
5b926d311c
egcpool unit tests: use nccell_width() throughout
3 years ago
nick black
8e0173cce3
cell unit tests: use nccell_width()
3 years ago
nick black
55837bcb55
add nccell_width() to avoid calling utf8_egc_len externally
3 years ago
nick black
4a10801bb5
render: improve some diagnostics
3 years ago
nick black
c792b2e972
[demo] place hud down and in center
3 years ago
nick black
745cbfb41b
intro: animate following orca move, not before #1616
3 years ago
nick black
6944dd5bf8
sprixel: remove x/y fields, as we now shrink the plane to fit #1612
3 years ago
nick black
70357f7173
notcurses_init: bad signal registration is once again an error, huzzah
3 years ago
nick black
1f55d2e398
exception tests: explicitly stop context
3 years ago
nick black
fb1bc236b4
signals: improve diagnostics
3 years ago
nick black
476d180797
sixel tests: notcurses_stop() on early exit
3 years ago
nick black
eb04a7872a
[ncplayer] name the rendered plane for debug
3 years ago
nick black
ad4763127e
ncplane_reparent: destroy old empty piles #1614
3 years ago
nick black
7c53072803
[xray] clean up last sprixel plane
3 years ago
nick black
f701271c27
migrate sprixels across sprixelcaches when reparenting across piles #1608
3 years ago
nick black
b557db381a
[xray] kick the living shit out of this #1607
3 years ago
nick black
d1f67dcddf
[xray] kill off cancelled global
3 years ago
nick black
5e1247051f
xray: more threading work #1607
3 years ago
nick black
5947f3d4d2
experimental threaded xray #1607
3 years ago
nick black
9a1499bd02
[sprixel] kill FIXME, make sprixelid_nonce atomic
3 years ago
nick black
23b966d4a3
[textplay] drop loglevel back
3 years ago
nick black
89c17b7b91
[textplay] put some flair on the leader
3 years ago
nick black
467c8d0e72
textplay: need render to a new plane
3 years ago
nick black
e21f3585dc
ncplane_reparent: add some diagnostics
3 years ago
nick black
58b8c528fc
intro: base orca movement off screen width
3 years ago
nick black
7f1310f4d1
ncplane_move_yx: don't invoke sprixel_move on no movement
3 years ago
nick black
069084d435
auxvec: unite memory release in sprite_rebuild() #1440
3 years ago
nick black
a6766c3bd4
[sixel] use transparency vector + auxvecs #1440
3 years ago
nick black
effb1d4613
[sixel] get last column in wipes
3 years ago
nick black
505571e43f
[sixel] implement wipe_color #1440
3 years ago
nick black
f4ff9beb50
[sixel] flip it and reverse it #1440
3 years ago
nick black
a34714ca68
implement sixel_reblit() #1440
3 years ago
nick black
fe719a6c39
[sixel] attach the sixelmap to the sprixel post-load
3 years ago
nick black
322ee8309d
ncplayer: use a different plane for each file
3 years ago
nick black
9c472a5d5e
free auxvectors at ncplane free time, not sixel hide time #1440
3 years ago
nick black
6ad7fcc7a9
factor out write_sixel_payload for rematerialization #1440
3 years ago
nick black
5799c92415
Third Idea: raw sixel-based sixelmap #1440
3 years ago
nick black
262550c5ea
[sixel] create sixelmap for rematerialization #1440
3 years ago
nick black
eb5c9185e5
pixel: shrink BYOP to match sprixel ("crop to content")
3 years ago
nick black
03bc0163ac
player: expand on misleading diagnostic
3 years ago
nick black
8cef88b251
properly bound paint_sprixel on sprixel geom #1598
3 years ago
nick black
dd4eb3e5c2
write_sixel_data: allow direct reprodution of palette #1440
3 years ago
nick black
624d6a1390
sixel: start in on sixel_update() to unify wipe+rebuild #1440
3 years ago
nick black
1442e8abd4
move rebuild's free() of auxvec into callback
3 years ago
nick black
37d64d96ec
kill off sprixel_kitty_p(), hurrah
3 years ago
nick black
9c03fdcfb5
sprite_wipe: check for ANNIHILATED_TRANS and return 0
3 years ago
nick black
e05ea90760
introduce ANNIHILATED_TRANS, special-case O(1) conversion from TRANSPARENT #1587
3 years ago
nick black
3eb004b61d
s/channels/ncchannels/g #1570
3 years ago
nick black
decb36a9fd
let that big bitch riiiiiiiiiiiiiiide
3 years ago
nick black
d8cc3569ac
Block some signals while writing
...
Writing a partial escape can easily lock up a terminal. This
is especially relevant when working with bitmaps, as they're
thousands or even millions of times longer than a typical
escape. Immediately before writing, block SIGINT, SIGQUIT, and
SIGTERM in the writing thread, and unblock them upon emerging
(at which point we'll immediately see any queued signal
get delivered). Don't block signals like SIGSEGV that would
seem indicative of actual problems. For this to actually work,
all other threads must also have the signals masked; we thus
now add them to the signal mask of notcurses_getc(), rather
than deleting them. Closes #1416 .
3 years ago
nick black
e43a9955cd
channel_* functions -> ncchannel_* #1570
3 years ago
nick black
25afcbe49d
cherry-pick auxvector release fix #1598
3 years ago
nick black
921311999d
blitter PoC: don't render to standard plane #1595
3 years ago
nick black
7bb23a994b
update cell unit tests for freebsd 13
3 years ago
nick black
b3b47cd81f
don't mix c and c++-style initializers
3 years ago
nick black
e84b6a4378
yield: speed up bitmap solution #1596
3 years ago
nick black
a7ca2be9e6
kitty: special-case O(1) rebuild for SPRIXCELL_TRANSPARENT #1440
3 years ago
nick black
d435d6e083
kitty: set MIXED when appropriate on rebuild #1440
3 years ago
nick black
1d9ae4082f
kitty: fix b64idx(), fixing rebuilding #1440
3 years ago
nick black
20aeccfbb6
kitty_restore: properly restore A in triplet #1440
3 years ago
nick black
f0910ab398
[kitty] first go at kitty_rebuild() #1440
3 years ago
nick black
5eafafa652
kitty: build out auxvec in wipe #1440
3 years ago
nick black
41c5df3336
kitty: set up auxiliary vector #1440
3 years ago
nick black
a19b945ec6
kitty_null: only null out alphas, not RGB #1440
3 years ago
nick black
b075ecd383
add kitty_restore()
3 years ago
nick black
49e94830d2
superstructure for kitty anastasis
3 years ago
nick black
dd85c7042b
add auxiliary vector to TAM #1440
3 years ago
nick black
3e0783593d
add sprixel_rebuild interface, kitty + sixel skeletons #1440
3 years ago
nick black
7c69a17752
identify annihilation recovery #1440
3 years ago
nick black
ba64d36543
don't warn on bsd about unused sprixel_debug()
3 years ago
Nick Black
da6b8281d5
[OIIO] seed details, synthesize RGB spec #1593
3 years ago
Nick Black
6f07ecb556
bitmap unit tests: use SCALE to work ona ll geoms
3 years ago
nick black
725ca9a040
textplay: make the textplane transparent by default #1425
3 years ago
nick black
e9ef4d50f4
break up opaque/mixed into sixel and kitty states
3 years ago