Commit Graph

3838 Commits (fef33ad2aa9616041bc60a3e57d291473c1ecde4)

Author SHA1 Message Date
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