Commit Graph

4873 Commits

Author SHA1 Message Date
joseLuís
452b7cd535 [rust] renamed cell_* functions to nccell_* 2021-04-15 20:45:08 +02:00
nick black
89fb48a30b
sprixcells: tense agreement in comment 2021-04-15 01:31:12 -04:00
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.
2021-04-15 01:07:22 -04:00
nick black
93a08edb23
render: extract stats functions to stats.c 2021-04-15 00:13:44 -04:00
nick black
d2394f9c63
c++ wrapper for direct-mode streaming #1515 2021-04-14 18:48:53 -04:00
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.
2021-04-14 16:38:09 -04:00
nick black
9d516d8c8c
summarize_stats: don't divide by 0 writeouts 2021-04-14 11:40:14 -04:00
nick black
32500239ac
cell_extract() -> nccell_extract() 2021-04-14 10:30:22 -04:00
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.
2021-04-14 10:04:28 -04:00
nick black
76bcb8f0af
zaxis test: update to api3 2021-04-14 09:36:00 -04:00
nick black
96ac640733
cell->nccell 2021-04-14 09:31:50 -04:00
nick black
657ed15632
cell_on_styles -> nccell_on_styles() #1532 2021-04-14 09:05:00 -04:00
nick black
15c330c580
[sixel_shutdown] don't disable sixel scrolling on shutdown #1533 2021-04-14 08:26:27 -04:00
nick black
81370ba311
[sixel_delete] don't scribble beyond pile rendering vector #1534 2021-04-14 08:23:17 -04:00
Nick Black
e591ec2e98
cell -> nccell throughout much of remaining API (#1535)
cell -> nccell throughout much of the API #1532
2021-04-14 06:42:14 -04:00
nick black
e9b5388dde
[sixel] clear debugging cruft #1533 2021-04-14 05:21:23 -04:00
nick black
b794dbc848
[sixel] clear sixel scrolling private mode on exit #1533 2021-04-14 05:20:59 -04:00
nick black
89678ed412
[render] only invalidate glyphs when wipe fails 2021-04-14 03:35:31 -04:00
nick black
11f79dfd31
visual_render_pixels: don't use last line of visual area #1479 2021-04-14 03:25:28 -04:00
nick black
f5d16e1e89
sprite_wipe_cell: purge unnecessary fxn check 2021-04-14 00:50:05 -04:00
nick black
282830e31c
define sixel_wipe 2021-04-14 00:48:36 -04:00
nick black
39335bc210
[sixel_wipe] set SIXEL_P2_TRANS #1527 2021-04-14 00:48:16 -04:00
nick black
567c351b8f
[sprixcell] kill unused TAM enums for now 2021-04-13 21:03:58 -04:00
nick black
53485eabc3
[paint] extract paint_sprixel() 2021-04-13 18:47:24 -04:00
nick black
3474134f23
[nctree] eliminate tautological pointer compare 2021-04-13 18:44:52 -04:00
nick black
46d70602c5
always set SIXEL_P2_TRANS on transparent pixels #1527 2021-04-13 16:42:00 -04:00
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.
2021-04-13 15:45:50 -04:00
nick black
2f8efe53a6
[demo] shrink the fps graph horizontally a little 2021-04-13 11:36:16 -04:00
nick black
162248fcaa
[ncplayer] put blitter changes into effect at media's end #1529 2021-04-13 11:30:00 -04:00
nick black
ba059692f9
README: we're no longer necessarily 'svelter' 2021-04-12 09:49:30 -04:00
nick black
20b01e41a8
README: fix zig link 2021-04-12 08:53:55 -04:00
nick black
fe9d877f80
notcurses-demo: add attribution for greatscott.jpg 2021-04-12 08:08:03 -04:00
nick black
77e8697be9
get a richer blue in banner RGB 2021-04-12 08:04:17 -04:00
nick black
4834ec6c1f
doc/man/index.html: link to version described 2021-04-12 07:54:19 -04:00
nick black
e017dcba89
v2.2.6 2021-04-12 05:01:58 -04:00
nick black
cfd47c26b6
ncvisual_render_pixels: reject negative placex/placey on alignment #1526 2021-04-12 04:22:31 -04:00
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.
2021-04-12 04:02:23 -04:00
nick black
03a1e66bf9
TERMINALS.md: add notes on terminology 2021-04-12 03:32:42 -04:00
nick black
7e08e40bff
notcurses_stop: don't treat drop_signals() as an error 2021-04-12 03:32:32 -04:00
nick black
e301ef34ae
disable alacritty sixel until ayosec/graphics is merged #1430 2021-04-12 03:25:49 -04:00
nick black
084d5d6673
notcurses_init: free memstream on error paths 2021-04-12 03:23:55 -04:00
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.
2021-04-12 02:44:36 -04:00
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.
2021-04-12 02:44:36 -04:00
nick black
9c7fa38187
mlterm: enable quadrants (no sextants as of 3.9.0) 2021-04-12 02:25:21 -04:00
nick black
c7fca301e8
sixel: set a huge default max geom 2021-04-12 02:17:06 -04:00
nick black
e7ca10804d
xtsmgraphics reply: always allow 'S' to terminate #1523 2021-04-12 02:14:15 -04:00
nick black
430e328df6
[query_sixel] tighten sixel check state machine #1523 2021-04-12 02:03:17 -04:00
nick black
96ca5e79cb
xray: use alpha channel for sprixel 2021-04-12 01:12:37 -04:00
nick black
2e254d29e0
ncvisual_blitset_geom: fix unknown flag diagnostic 2021-04-12 00:53:42 -04:00
nick black
0fade67ae1
link to Jakub Dundalek's zig example 2021-04-11 20:32:49 -04:00