Commit Graph

3057 Commits (c7d284a9afe3f3d4f07545889fb36febc2771a3a)

Author SHA1 Message Date
Daniel Eklöf 013ac94cd5 [sixel]: re-enable Set Raster Attributes, and fix the ‘pad’ parameter
Now that we explicitly set P2=1, we can safely emit a "Set Raster
Attributes" command, to tell the terminal the final size of the image
up front.

Also fix the ‘pad’ parameter (horizontal aspect ratio); XTerm rejects
sixels with pan or pad set to 0.
3 years ago
Daniel Eklöf 8b7fa78be1 [sixel]: set P2=1
This indicates that empty pixels should "remain at their current
color". I.e. it makes them transparent.

This is in contrast to P2=0|2, where empty pixels are filled with the
"current background color" (which is either sixel color register #0,
or the current ANSI background color, depending on terminal and its
sixel implementation).

Note that due to what is most likely a bug, XTerm will behave as if
P2=1 if P2 is either left unset, or explicitly set to 0 or 2, as long
as we do *not* emit a "Set Raster Attributes" command.
3 years ago
nick black 9c7fa38187
mlterm: enable quadrants (no sextants as of 3.9.0) 3 years ago
nick black c7fca301e8
sixel: set a huge default max geom 3 years ago
nick black e7ca10804d
xtsmgraphics reply: always allow 'S' to terminate #1523 3 years ago
nick black 430e328df6
[query_sixel] tighten sixel check state machine #1523 3 years ago
nick black 96ca5e79cb
xray: use alpha channel for sprixel 3 years ago
nick black 2e254d29e0
ncvisual_blitset_geom: fix unknown flag diagnostic 3 years ago
nick black f8f2784a22
[alacritty] did they disable XTSMGRAPHICS again? wtf? 3 years ago
nick black fada4148b5 [ncplayer] add -a option for alpha channel #1518 3 years ago
nick black 76241f81d2 [rust] adapt pixel-cell.rs 3 years ago
nick black 34bcbb505b [xray] put streaming plane back above scrolling #1518 3 years ago
nick black bac7d634d9 [visual] pipe transcolor through, use it everywhere #1518 3 years ago
nick black 0c566cd74a [ncvisual] pipe transcolor through #1518 3 years ago
nick black ff76dba6ed
cell_strdup -> nccell_strdup 3 years ago
nick black d504e972cc
cell_release -> nccell_release 3 years ago
nick black 9dbcef9969
stop exporting lookup_blitset()
the media code that makes up non-core libnotcurses called
into lookup_rgba(). instead, have them use the new
funtion ncvisual_blitter_geom() to access the actual blitter
being used. we can then hide lookup_blitset(), which ought
never have been exported. closes #1519.
3 years ago
nick black d4fff6a921
check wcwidth('⣿') for braille support 3 years ago
nick black 1f67f540e6
[stacking] guard tests for quadrants 3 years ago
nick black 1720457467
[rotate] fix unit tests for odd number of columns 3 years ago
nick black 17a27427ec
[visual] guard quadblitter tests with check 3 years ago
nick black 7488a84121
[xray] bring slider plane to top #1518 3 years ago
nick black 80d93fdfb6
disable quadrants except where whitelisted #1517
Require a known-good TERM heuristic match to enable
quadrants (NCBLIT_2x2); they otherwise decay to halves
(NCBLIT_2x1). The only terminal that supports quadrants
but does not support sextants is the Linux console, where
we program quadrants directly into the font table,
like a beast. Closes #1517, and #1298 if we're lucky.
3 years ago
nick black 62242f0e41 [terminfo] add alacritty hack for sixel #1430 3 years ago
nick black 53894caccb add ncdirect_stream #1346 3 years ago
Nick Black 04b1ba8ed2
Dankamongmen/unify geom (#1514)
deprecate ncvisual_geom() in favor of new ncvisual_blitter_geom(), which allows caller to get the blitter used. replace the checks and calculations in ncvisual_render() with a call to ncvisual_blitter_geom(), unifying the two paths (and eliminating several bugs in the unloved ncvisual_geom()).
3 years ago
nick black 35e44d81c5
caps-rendered: differentiate sixel v kitty 3 years ago
nick black 1f33ada62e
[cffi] update for ncplane_as_rgba() 3 years ago
nick black 582bdebbc3
lol remove notcurses_debug() from notcurses_render() 3 years ago
nick black f294c6bb0b
add ncplane_pixelgeom() #1507 3 years ago
nick black d153ccb8f4
[ncvisual] properly size created plane
if we go into ncvisual_render() looking to render a number
of rows not evenly divisible by the scaling factor, we need
to get an extra row (duh). correct ncvisual_render_cell() to
reflect this. the blitters already know to fill this line in
with transparency wherever the image is not defined. fix up
rotation unit tests to reflect this. closes #1513.
3 years ago
nick black 94839c2958
[ncdirect_stream] kill unused variable warnings 3 years ago
nick black 05082fc277
ncplane_as_rgba(), returns pixel geometry along with bitmap #1508 3 years ago
nick black 694a0c133f
[terminfo] only interrogate for sixel when pixel geometry is defined #1511 #1506 3 years ago
nick black 217453780e
[terminfo] remove alacritty hacks #1506 #1430 3 years ago
nick black b1baa5e88a
[demo] print that we're checking for pixel support #1506 3 years ago
nick black cc3cddf40b
[sprixel] don't yet enable sixel on alacritty 3 years ago
nick black 0febe3428f
[sprixels] simplify query_sixel() 3 years ago
nick black 9dad70568b
[plot] drop inline from update_sample 3 years ago
joseLuís fce6c6873f fix typos 3 years ago
nick black 8db054ede7
kill off get_controlling_tty in favor of get_tty_fd #1504 3 years ago
nick black 7865539505
query_sixel: support alacritty's ugh decisions #1430 3 years ago
nick black 0c2e3d6e35
[sixel] make some sixeltable args const 3 years ago
Nick Black 7e78690597
[bitmaps] new unit test LoadVideoPixelScaleDifferentPlanes (#1502) 3 years ago
nick black 7c35d94a9b
paint: referene crender, not rvec #1482 3 years ago
nick black 0dbd3cf830
ncvisual_render_pixels: hide any old sprixels 3 years ago
nick black 2f47d9adef
[bitmaps] new unit test LoadVideoPixelScaleDifferentPlanes 3 years ago
nick black 656b3221af
refresh: initialize with init_rvec, not memset() 3 years ago
nick black 123447183c
[jungle] fix invalid access on some window geometries 3 years ago
nick black 3d3d235abb
[xray] update frame count for new video 3 years ago
nick black 998ebf8254
[ncplayer] meaningless timespec dealloc 3 years ago
nick black ee2f150058
[sprixels] move destruction into free_plane() from ncplane_destroy() 3 years ago
nick black 16b7910b57
[sprixels] plug two memory leaks 3 years ago
nick black 94b073dd3d
ncvisual_render_pixels: zorch reuse on either invalid ncv or n sprixel 3 years ago
nick black cbd92e5180
sprixel_recycle: use the valid sprixel link 3 years ago
nick black d7408cf5aa
[bitmap] check p_beats_sprixel, use text phase 2 when set #1496 3 years ago
nick black 3c4d25a092
[ncvisual] detach from sprite in ncvisual_destroy() 3 years ago
nick black 89734a2dc7
[bitmap] proper parameters for tacache TAM2 #1495 3 years ago
nick black ad3322e4db
erp 3 years ago
nick black 6a1e74feae
[bitmaps] clear out ncvisual link on hide 3 years ago
nick black f968ba7774
[plots] free up title in destructor 3 years ago
nick black 021fc052fc [render] end kitty flicker #1493 3 years ago
nick black 631697e9e2 eliminate sixel flicker #1493 3 years ago
nick black 83296b4688
Revert "eliminate sixel flicker #1493"
This reverts commit aa80af8f87.
3 years ago
nick black aa80af8f87
eliminate sixel flicker #1493 3 years ago
nick black d4883d30f2
[tests] add directmode bitmap test 3 years ago
nick black c0dadcd5d7
[normal] don't use expired ncplane 'n' #1492 3 years ago
nick black b6a9b59f9d notcurses_plane.3: add BUGS about bitmap graphics and ncplane_at_yx() 3 years ago
nick black fbe16935f3 [sixel] clean up sprixels on move #1449 3 years ago
nick black d813a66581
[sixel] seed initial TAM matrix #1445 3 years ago
nick black 670dcbdd08
[kitty] initialize TAM matrix #1445 3 years ago
nick black dd6d9392ec
[unittests] add PixelTAMSetup test #1445 3 years ago
nick black 259c5f5e3e
[tests] pixel test shouldn't check for wipe function 3 years ago
nick black 4c735cd95d
[paint] why must we constify ourselves, every day 3 years ago
nick black 21de64f65b
ncdirect_cursor_move_yx: only use cursor_yx_get with a real terminal #1486 3 years ago
nick black afeed4d075
drone: run ctest with --output-on-failure 3 years ago
nick black cef16e77ce
disable PixelWipe test until we can keep it from OOMing ctest 3 years ago
nick black 05f73da2da
directmode: get cursor position if we need to for cursor move #1486 3 years ago
nick black 98d506d011 [plots] error path return fixups -- thanks, unit tests! 3 years ago
nick black 4ca2bb0940 [visual-details] get compiling with OIIO C++ 3 years ago
nick black 687aa93a84 [plots] c++ conversion done #1421 3 years ago
nick black acc5be058c [plots] move plot.cpp to C plot.c #1421 3 years ago
nick black d62ced7aa4 [TERMINALS] wezterm notes 3 years ago
nick black d2dfa0ecbb [ffmpeg] move C++ to C #1421 3 years ago
nick black 322e4f4b3b
[kitty] fix off-by-one in write_kitty_data(), ugh 3 years ago
nick black 913f06d59c
[PixelWipeImages] actually test image wiping 3 years ago
nick black 0434d75689
[unittests] correct checks for putchar 3 years ago
nick black b92991e57b
[visual] allow NCBLIT_PIXEL in ascii mode 3 years ago
nick black c67981d668
[unittests] don't export sprite_wipe_cell() 3 years ago
nick black 57114c8005
[bitmaps] remove redundant PixelWipeBlocks test 3 years ago
nick black 5e4c07816d
[stream] restore erase(), preserve tacache across sixels #1482 3 years ago
nick black da0da25269 [bitmaps] abstract out sprite_destroy() 3 years ago
nick black 65cc9a3ea9 [xray] keep bitmap plane below others 3 years ago
nick black 58c1cdf055 [bitmaps] ATL represent
Fix Sixel mutation by printing the Sixel first, and only then
printing text atop it. Come around a second time on sprixels
only. All tests and demos now work under both the Sixel and
the Kitty protocols.

Huzzah! World leader, bitch! Ain't nobody else done this.
3 years ago
nick black 7127118d27
[fallin] undo changes which put background on top 3 years ago
nick black 51182e3315 [sixel] reproduce surgery map #1457 3 years ago
nick black 6907562c9c [kitty] apply tacache #1457 3 years ago
nick black 21c0e17c05 [kitty] tacache resuse #1457 3 years ago
nick black 2e1582af1f plane_blit_sixel: move back to memcpy() 3 years ago
nick black 094dd89bb7 [sixel] don't double-close fp on error 3 years ago
nick black dd5136256a [ffmpeg] don't erase() in stream() 3 years ago
nick black feb462bafa [sprixels] comment out debugging cruft 3 years ago
nick black 69c8e25894 [sprixels] kill glyph copy on sprixel load 3 years ago
nick black 4ee0582321 [bitmaps] introduce sprixcell_e enum #1457 3 years ago
nick black 85d0df491e
[bitmap] intensify unit tests 3 years ago
nick black cd6b9c2c87 [intro] kill unused param warnings 3 years ago
nick black f887b5a122
[intro] use NCSCALE_SCALE 3 years ago
nick black 11685e77cc
[sprixel_create] eliminate copy of glyph 3 years ago
nick black fac56fc2cc
[plane] incorporate left/top margins into resize #1472 3 years ago
nick black 5a6ee2d720
[ncplane_dup] remove cheerful diagnostic 3 years ago
nick black a8a42c2a50 [planes] implement ncplane_resize_marginalized() #1472 3 years ago
nick black 7c5b7fe85c [ncplane_new] allocate based on true length #1472 3 years ago
nick black 1688f66bc7 [ncplane_new_internal] fix diagnostic 3 years ago
nick black 50df69ab31 [planes] implement MARGINALIZED in ncplane_create() #1472 3 years ago
nick black 78c8e70933 [planes] add NCPLANE_OPTION_MARGINALIZED #1472 3 years ago
nick black a3a4f40fa0 [bitmaps] add a big unit test on wiping 3 years ago
nick black d095ba9bb7 [keller] drop 2 unnecessary bitmap workarounds 3 years ago
nick black 0100e26d62 [ncplayer] use unique_ptr for view plane 3 years ago
nick black 0c36e1248e
[blit] skip over left/top trim, allowing neg placement #1470 3 years ago
nick black ca84f95379
[demo] vertically align fpsgraph at bottom 3 years ago
nick black fea6b51bdf
xray: horizontally center video 3 years ago
nick black 390bfc6647 ncplayer: extract handle_subtitle() 3 years ago
nick black df85fb55ba [bitmaps] fix bitmap placement when making a new plane #1468 3 years ago
nick black 229c1ab3c2 ncplane_new_internal: use ncplane_valign() #1468 3 years ago
nick black 86de98c5d2 Fix cell blit / plane vertical alignment
Deprecate ncplane_align(), after rewriting it as a passthrough
to new function ncplane_halign(). Add ncplane_valign(). Update
all callers. Closes #1468.
3 years ago
nick black 51ccd60e96 [kitty] comment up the graphics protocol] 3 years ago
nick black 8b3e692fa1
[ncplayer] don't vertically center until #1468 is resolved 3 years ago
nick black 958b75bed7 NCPLANE_OPTION_VERALIGNED for bitmaps #1465 3 years ago
nick black ff86bb0187 [ncvisual] first stab at NCVISUAL_OPTION_VERALIGNED #1461 3 years ago
nick black de69fd858b
fwrite vs ncputs
theoretically, fwrite() could get better performance than
fputs() due to knowing the length of its input buffer. i
didn't see any perf change beyond noise, but who knows.
3 years ago
nick black 465390f5e1 [planes] implement NCPLANE_OPTION_VERALIGNED #1465 3 years ago
nick black 6105913d06 [planes] add NCPLANE_OPTION_VERALIGNED #1465 3 years ago
nick black 3d586844fb
[intro] great scott! 3 years ago
nick black 625955ba63
[intro] cover the x-axis when we move 3 years ago
nick black 00634eb982
[ncdirect] honor xoff for bitmaps #1436 3 years ago
nick black 83af07546d
[bitmap] actually call sprite_sixel_init() 3 years ago
nick black 6f446f94de
remove kittyzapper PoC 3 years ago
nick black 721e208ce2
[ncplayer] newline between bitmaps in directmode 3 years ago
nick black 8b9af4cf0e [visual] work for all alignment types 3 years ago
nick black 42e1e4f5d0 [visual] NCVISUAL_OPTIONS_HORALIGNED for bitmaps #1443 3 years ago
nick black 1c3e10f926 [visual] implement NCVISUAL_OPTION_HORALIGNED for cells 1443 3 years ago
nick black f714337fe1 [visual] NCVISUAL_OPTION_HORALIGNED for cell blitters #1443 3 years ago
nick black cd297ff4d2 [tests] add pixel video test, direct mode scale test 3 years ago
nick black 57cb7004ff [ncvisual] add logerror() throughout parameter checks 3 years ago
nick black 6f4a9e089c [tests] unit test for directmode image rendering 3 years ago
nick black 828cce634a [capabilites] remove redundant notcurses_canpixel() 3 years ago
nick black 32def3a600
[nctabbed] notcurses_stop() ending unit tests 3 years ago
nick black a487aa9a28
[nctabbed_destroy] work on single-element case 3 years ago
nick black 978d872307
[nctabbed] get Add test working 3 years ago
nick black 7754eed249
fix bad test in ncreel_add()/nctabbed_add() 3 years ago