Commit Graph

5264 Commits

Author SHA1 Message Date
nick black
74744abc89
[sixel] don't damage on delete just because new sprixel is mixed #1553 2021-04-18 07:12:12 -04:00
nick black
7d61457b37
ncvisual_inflate: call ncvisual_seed_details() #1546 2021-04-18 06:52:21 -04:00
joseLuís
8209bc6841 [rust] use deprecated blacklist_function; #1339 2021-04-18 12:08:14 +02:00
joseLuís
08a3edb71f [rust] update pixel-cell example; #1546 2021-04-18 11:33:58 +02:00
joseLuís
88c89f2d30 [rust] add ncvisual_inflate; update function-summary; fixes
- add ncvisual_inflate function
- update function-summary script & related data
- update cell inner comments.
- fix several doc inner links.
2021-04-18 11:15:33 +02:00
nick black
3bdd5ce142
scrub TAM boundaries in sixel+kitty #1553 2021-04-18 04:45:34 -04:00
nick black
74862a32b8
kitty: partial sprixcells cannot be opaque #1553 2021-04-18 04:12:19 -04:00
nick black
8a4bd09d9b
demo: stop input on error path before notcurses_stop() 2021-04-18 04:07:56 -04:00
nick black
dd327a381f
[intro] leave greatscott up while fading main 2021-04-18 03:37:13 -04:00
nick black
1f0edcb60f
demo: always move hud/fps off-pile to hide #1552 2021-04-18 03:11:41 -04:00
nick black
317cbb3fdb
sixel_draw: break out of loop faster #1527 2021-04-18 02:57:08 -04:00
nick black
c875eb4544
clamp Sixel to max supported size #1550 2021-04-18 02:48:20 -04:00
nick black
266ed71c0b
ncdirect_stream: fix c++ wrapper's error guard 2021-04-18 01:28:11 -04:00
nick black
1722714ee6 tighten up visual unit tests 2021-04-18 01:12:28 -04:00
nick black
2b5b62c110 ncvisual_blitset_geom: tighten tests on len and vertical alignment 2021-04-18 01:12:28 -04:00
nick black
2ebe209c7f implement ncvisual_inflate(), add unit test #1546 2021-04-18 01:12:28 -04:00
nick black
6b7195a387 document new function ncvisual_inflate() #1546 2021-04-18 01:12:28 -04:00
nick black
2d73ba79e4
Detach sprixel from ncvisual
The ncvisual can't own the sprixel -- we could very well
blit it twice to two different planes, wipe cells from one
and not the other, and not want those shared. Instead, it's
owned by the plane. This clears up the ownership/lifetime
story quite a bit, and closes #1548, where only the most
recent of several blittings of a sprixel was visible.
2021-04-17 23:49:01 -04:00
Nick Black
8c6cd6a630
Further work on opacity optimizations (#1549)
* [bitmap] on move, clear old OPAQUE cells #1527
* update ncvisual_blitter_geom() documentation #1547
* replace some ncvisual_blitter_geom with NCVISUAL_OPTION_VERALIGNED
* [normal] replace ncvisual_blitter_geom with NCVISUAL_OPTION_VERALIGNED
* [intro] use ncvisual_blitter_geom() correctly #1547
* ncvisual_blitter_geom: only set *blitter on success
2021-04-17 23:11:11 -04:00
joseLuís
eaee89c99f [rust] renamed FullMode & DirectMode to Nc & NcD
- improve pixel-cell example.
- rustfmt
2021-04-17 22:13:43 +02:00
nick black
b1317ddf7e
Revert "[bitmap] on move, clear old OPAQUE cells #1527"
This reverts commit 416806c42c.
2021-04-16 10:45:17 -04:00
nick black
416806c42c
[bitmap] on move, clear old OPAQUE cells #1527 2021-04-16 09:35:24 -04:00
nick black
c9cf30c31a
intro: always let our orca reach the far side 2021-04-16 09:33:56 -04:00
nick black
420c967605
[postpaint_cell] don't damage cells hidden by sprixel #1527 2021-04-16 08:08:11 -04:00
nick black
5a702512c5 [bitmaps] be less aggressive about third phase
When we scribble underneath a TRANSPARENT or ANNIHILATED
sprixcell, or even an OPAQUE or MIXED one in Kitty, we
needn't invalidate the sprixel. Perform these checks for
less aggressive invalidation, eliminating the flicker we
were seeing in xray using Kitty. Closes #1522.
2021-04-16 07:23:26 -04:00
nick black
333b4414d9 note ECMA-48's NUL escape #1416 2021-04-16 07:23:26 -04:00
nick black
0dce453461
[direct] don't print sprixels to the last line 2021-04-16 07:23:12 -04:00
nick black
c975bc85fd ncvisual: or 0x1000000 tp transcolor when NCVISUAL_OPTION_ADDALPHA is used 2021-04-16 02:45:13 -04:00
nick black
d4e2598c9e [ncplayer] direct mode support for chromakey #1515 2021-04-16 02:45:13 -04:00
nick black
feab25bd7d ncdirect_render_visual: account for bitmap overhang #1515 2021-04-16 02:45:13 -04:00
nick black
0de734cb02 ncplayer has 9 log levels, not 10 2021-04-16 02:45:13 -04:00
nick black
2c7034f1e3 [ncplayer] fix margins in direct mode #1515 2021-04-16 02:45:13 -04:00
nick black
9f8d938fad [ncplayer] disable cursor in direct mode #1515 2021-04-16 02:45:13 -04:00
nick black
5507bbbd3e [ncplayer] get margins working with direct mode once more #1515 2021-04-16 02:45:13 -04:00
nick black
ef69abe0fc ncdirect_stream: save and restore cursor position before each frame #1515 2021-04-16 02:45:13 -04:00
nick black
53f92760dd ncplayer: support multiframe in direct mode via streamfile #1515 2021-04-16 02:45:13 -04:00
nick black
3555257afb
kitty: use supplied alpha value directly
In Sixel, we map the alpha value to either 0 or 255, as
it has no alpha concept. Kitty can freely reproduce eight
bits of alpha, so go ahead and use them. Improves image
quality of translucent bitmaps in Kitty at the expense of
some behavioral divergence depending on bitmap backend.
2021-04-16 01:12:48 -04:00
nick black
4442a9fea9
rgba_trans_p: any non-zero alpha must be displayed #1540 2021-04-16 01:03:46 -04:00
nick black
e1d97bfb62
[rust] cell_ -> nccell_ drudgery #1532 2021-04-15 22:41:48 -04:00
nick black
b070b69eb2
get last remaining cell_ functions -> nccell_ #1532 2021-04-15 22:29:53 -04:00
nick black
7ad5219fa2
convert another crop of cell_ to nccell_ #1532 2021-04-15 22:20:16 -04:00
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