Commit Graph

4872 Commits (89fb48a30ba07000dd296f8c14ac0210c45e605a)
 

Author SHA1 Message Date
nick black 89fb48a30b
sprixcells: tense agreement in comment 3 years ago
nick black 30cb74428f
work on the sprixel state machine
Sixel: detect SPRIXCELL_TRANSPARENT cells and mark them as such.
sprixel_invalidate: fix copy-and-paste, want both TRANSPARENT and
ANNIHILATED to block progression to INVALIDATED. add gigantic
comment detailing the state machine. #1537, #1522, #1527, #1483.
3 years ago
nick black 93a08edb23
render: extract stats functions to stats.c 3 years ago
nick black d2394f9c63
c++ wrapper for direct-mode streaming #1515 3 years ago
nick black 529972d16b Elide unnecessary sprixel invalidations
When the damaged cell of a sprixel is actually entirely
transparent (or annihilated), there's no need to invalidate
it. Check for this in the TAM in sprixel_invalidate(). Good
optimization, and eliminates a lot of the flicker in `xray`
on Kitty described in #1522.
3 years ago
nick black 9d516d8c8c
summarize_stats: don't divide by 0 writeouts 3 years ago
nick black 32500239ac
cell_extract() -> nccell_extract() 3 years ago
nick black da2a897544
fix unintended cell abi breakage #1532
cell_release() and cell_duplicate() were deprecated in 2.2.6,
but replaced with static inlines. this breaks the abi, forcing
recompiles from client programs. restore them as exported
functions.
3 years ago
nick black 76bcb8f0af
zaxis test: update to api3 3 years ago
nick black 96ac640733
cell->nccell 3 years ago
nick black 657ed15632
cell_on_styles -> nccell_on_styles() #1532 3 years ago
nick black 15c330c580
[sixel_shutdown] don't disable sixel scrolling on shutdown #1533 3 years ago
nick black 81370ba311
[sixel_delete] don't scribble beyond pile rendering vector #1534 3 years ago
Nick Black e591ec2e98
cell -> nccell throughout much of remaining API (#1535)
cell -> nccell throughout much of the API #1532
3 years ago
nick black e9b5388dde
[sixel] clear debugging cruft #1533 3 years ago
nick black b794dbc848
[sixel] clear sixel scrolling private mode on exit #1533 3 years ago
nick black 89678ed412
[render] only invalidate glyphs when wipe fails 3 years ago
nick black 11f79dfd31
visual_render_pixels: don't use last line of visual area #1479 3 years ago
nick black f5d16e1e89
sprite_wipe_cell: purge unnecessary fxn check 3 years ago
nick black 282830e31c
define sixel_wipe 3 years ago
nick black 39335bc210
[sixel_wipe] set SIXEL_P2_TRANS #1527 3 years ago
nick black 567c351b8f
[sprixcell] kill unused TAM enums for now 3 years ago
nick black 53485eabc3
[paint] extract paint_sprixel() 3 years ago
nick black 3474134f23
[nctree] eliminate tautological pointer compare 3 years ago
nick black 46d70602c5
always set SIXEL_P2_TRANS on transparent pixels #1527 3 years ago
nick black c54198a992
Emit P2=0 when sixel is entirely opaque
Some terminals (foot makes this claim explicitly) can draw
sixels more quickly when P2 is 0 than when P2 is 1. Since
we're already detecting transparency for the TAM matrix, do
the same globally, and prepare a sixel_p2_e value-result
parameter based on the results. If there are no transparent
pixels, emit P2=0 #1527.
3 years ago
nick black 2f8efe53a6
[demo] shrink the fps graph horizontally a little 3 years ago
nick black 162248fcaa
[ncplayer] put blitter changes into effect at media's end #1529 3 years ago
nick black ba059692f9
README: we're no longer necessarily 'svelter' 3 years ago
nick black 20b01e41a8
README: fix zig link 3 years ago
nick black fe9d877f80
notcurses-demo: add attribution for greatscott.jpg 3 years ago
nick black 77e8697be9
get a richer blue in banner RGB 3 years ago
nick black 4834ec6c1f
doc/man/index.html: link to version described 3 years ago
nick black e017dcba89
v2.2.6 3 years ago
nick black cfd47c26b6
ncvisual_render_pixels: reject negative placex/placey on alignment #1526 3 years ago
nick black 669bc5fa33
[mlterm] sixel cursor hack
At least mlterm unhides the cursor after emitting a
Sixel, even if it was hidden beforehand. Track this
behavior using 'sprixel_cursor_hack' in the tinfo cache.
Set this based on an "mlterm" TERM heuristic match.
When it is set, supply the 'civis' capability as
cursor_hack in blitterargs, and emit it at the end of
the sixel in sixel_blit() #1524.
3 years ago
nick black 03a1e66bf9
TERMINALS.md: add notes on terminology 3 years ago
nick black 7e08e40bff
notcurses_stop: don't treat drop_signals() as an error 3 years ago
nick black e301ef34ae
disable alacritty sixel until ayosec/graphics is merged #1430 3 years ago
nick black 084d5d6673
notcurses_init: free memstream on error paths 3 years ago
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 0fade67ae1
link to Jakub Dundalek's zig example 3 years ago
joseLuís 5f96acc9e3 [rust] refacture NcVisual module
- separate the methods into its own module.
- add constants NCVISUAL_OPTION_ADDALPHA, NCVISUAL_OPTION_HORALIGNED, NCVISUAL_OPTION_VERALIGNED
- add NcRgba type.
- update the docs.
3 years ago