Commit Graph

4134 Commits

Author SHA1 Message Date
nick black
1a69044d8a fold blends into s bitfield 2021-02-02 00:57:58 -05:00
nick black
02d09ef47b quadblitter: unit test for crossed quadrants #1068 2021-02-02 00:57:58 -05:00
nick black
33d9e60003 quadblitter: unit test for stacked blits #1068 2021-02-02 00:57:58 -05:00
nick black
b0915d1db6 Proper transparent blitter stacking
This completes the work for #1068. This addressed a subtle issue.
When we're using pixel->semigraphic art, we want slightly different
rendering. Essentially, imagine that we have two images, each two
pixels tall and one pixel wide. The top image is a transparent pixel
above a white pixel. The bottom image is a white pixel above a black
pixel. We'd expect the result to be two white pixels, but we can
instead get a black pixel above a white pixel. This is because the
*background* color is being merged from the bottom plane, but really
we want the *top* color. Ncvisuals are now blitted along with
information regarding which quadrants they draw over, and when
appropriate, we invert the foreground and background. Closes #1068.
2021-02-02 00:57:58 -05:00
nick black
cb58f45dd3 Write blit quadrants to channel
Reclaim the "blitted" and "full foreground" bits in the
channels. Instead, we now write four bits, encoding the
four quadrants we might occupy as the result of a blit.
These four imply the previous two, leaving us with four
free bits remaining in the channels. This opens a clear
path to O(1)-time, zero-space blitter stacking #1068.
w00t!
2021-02-02 00:57:58 -05:00
nick black
0446dc0f6d enable blitterstacking unit test -- fails for now 2021-02-02 00:57:58 -05:00
nick black
0f5c76d070 intro: use actual inverted blocks 2021-02-02 00:57:58 -05:00
nick black
6c48c82171 rust: CELL_NOBACKGROUND_MASK oughtn't be exported 2021-02-02 00:57:58 -05:00
nick black
ded9ac6aaa paint(): set crender->blitterstacked
Iff cell_blitted_p() when we select the glyph in paint(),
we ought enter blitter stacking mode. Make this decision
in paint() #1068.
2021-02-02 00:57:58 -05:00
nick black
72e09004ba Add blitterstacked bool to crender struct
We need track whether we've entered blitterstacking
mode across the paint() of a given cell. This means
stashing it in the crender rvec #1068.
2021-02-02 00:57:58 -05:00
nick black
f37ebba78d Add CELL_BLITTEDMASK to track ncvisual cells
For properly stacking transparent blittings (#1068), we
need tag those cells which both (1) originated in an
ncvisual operation and (2) have some transparency. For
the three affected blitters (halfblock, quadrant, and
sexblitter), call cell_set_blitted().
2021-02-02 00:57:58 -05:00
nick black
cdf2e591b3 halfblock blitter: use pool_blit_direct() 2021-02-02 00:57:58 -05:00
nick black
294d3b7535
ncls.1: fix man syntax 2021-01-28 22:45:03 -05:00
nick black
7e227744d4
link to FOSDEM presentation video 2021-01-28 18:51:14 -05:00
nick black
52b9b9304a
link to FOSDEM presentation 2021-01-28 18:46:30 -05:00
nick black
c419bda980
initialize crenderlen, stupid #1302 2021-01-27 01:30:21 -05:00
nick black
89a557278b
engorge_crender_vec: stash crenderlen
Rather than checking to see if there is enough space
for the crender vec following a geometry change, stash
the previous allocation, and realloc() whenever it
changes (i.e. whenever we get a resize). This brings
the crender vec back down in size if the screen gets
smaller, and seems to eliminate the problem in #1302.
2021-01-27 01:21:46 -05:00
nick black
76983d6ba7
add skip path writeup to HACKING.md 2021-01-25 05:50:46 -05:00
nick black
692689399c
don't infinitely recurse in ncvisual_stream(), ack 2021-01-24 22:48:03 -05:00
nick black
54318583a2
fix up null vimpl include guard 2021-01-24 07:38:43 -05:00
nick black
2cddb73962
add details to pkg-config Descriptions 2021-01-24 05:43:56 -05:00
nick black
d2c5543995
kill off mathtext pocpp 2021-01-24 05:26:36 -05:00
nick black
de0b61925e
properly dispatch remaining visual specifications 2021-01-24 05:13:05 -05:00
nick black
5e96ec7447
define none multimedia implementation
Without defining a null implementation for the
USE_MULTIMEDIA=none case, we print a warning in programs
which linked against notcurses-core about not being built
with multimedia support. This warning is both (a) inaccurate
and (b) irrelevant. We can now distinguish between "no support"
(implementation != NULL) and "linked against notcurses-core"
(implementation == NULL). Move the warning to the shim.
2021-01-24 04:48:32 -05:00
nick black
89c3fd46f3
release-checklist: drop reprepro 2021-01-23 22:30:28 -05:00
nick black
740093fbb3
ffmpeg: kill per-ncviusal subtitle context memory leak 2021-01-22 01:52:39 -05:00
nick black
fe50c8ba29
ncneofetch: only free cpu_model if we know we'll replace it 2021-01-21 23:51:33 -05:00
nick black
5c5f892b3e
progbar: eliminate dead store 2021-01-21 23:51:21 -05:00
nick black
e9cd118525
ncdirect_flush: remove dead store 2021-01-21 23:42:16 -05:00
nick black
659df1725b
ncneofetch: fall back to ncart if we can't display image #1304 2021-01-21 23:03:04 -05:00
nick black
b8596a1b43
don't install INSTALL.md 2021-01-21 19:15:09 -05:00
nick black
6ebedd73bd
notcurses_core.3: syntax in SEE ALSO 2021-01-21 16:54:47 -05:00
nick black
66968cddab
write out NotcursesCoreConfigVersion.cmake 2021-01-21 15:31:24 -05:00
nick black
3167066de5
player: don't mix designated and undesignated initializers 2021-01-21 13:56:54 -05:00
nick black
e20fb4ac8f
install NotcursesCore cmake support files 2021-01-21 04:19:29 -05:00
nick black
6bb88c42ef
simplify wording in FAQ entry 2021-01-21 03:55:29 -05:00
nick black
7eafcfe598
rename notcurses-tetris -> nctetris 2021-01-21 03:51:12 -05:00
nick black
121f10a9c5
v2.1.7 2021-01-21 03:21:31 -05:00
nick black
b4709bbb4e
tag libnotcurses.so with soversion 2021-01-21 03:18:40 -05:00
nick black
57271d09ce
v2.1.6 2021-01-21 02:44:00 -05:00
nick black
b0301c834d
git mv TERMS.md TERMINALS.md 2021-01-21 02:37:46 -05:00
nick black
3aae597ddd
add notcurses-core to Requires for rust linking 2021-01-21 02:05:38 -05:00
nick black
07ec5206cb
install notcurses-core.pc pkg-config support 2021-01-21 01:36:02 -05:00
nick black
feb592e590
add a note about static linking #1306 2021-01-21 01:26:58 -05:00
nick black
f638b5f12b
use Requires.private for static linking in pkg-config #1306 2021-01-21 00:53:39 -05:00
nick black
65231aefb2
fix linking for USE_MULTIMEDIA=none 2021-01-21 00:46:19 -05:00
nick black
87f2e03510
animate: trim flop over the top 2021-01-21 00:20:49 -05:00
nick black
81f689b6a2
don't violate ODR with visual_implementation 2021-01-20 23:41:21 -05:00
nick black
822d41eb8f
document notcurses-core split 2021-01-20 23:33:23 -05:00
nick black
cde25b9431
ncneofetch: don't require multimedia 2021-01-20 23:33:10 -05:00