Commit Graph

4272 Commits

Author SHA1 Message Date
nick black
c784eb660d
paint(): tighten up comment 2021-02-05 03:07:51 -05:00
nick black
db7281ae54
PoC ncwidth: do a wcswidth() verify pass #1329 2021-02-05 02:59:01 -05:00
nick black
07db12f5e0
keller: always use white for text #1331 2021-02-05 02:44:55 -05:00
nick black
8b4c5fdeb9
cell_load: ingest pool_load() 2021-02-05 02:30:52 -05:00
nick black
e8f03235eb
pool_blit_direct: set width rather than in pool_load_direct 2021-02-05 02:30:38 -05:00
nick black
38ec72f4f2
triablitter: use pool_blit_direct() 2021-02-05 02:30:13 -05:00
nick black
b4d80ebfaf
term_putc: remove iscntrl check #1316 2021-02-05 02:29:43 -05:00
nick black
d66042306f
pool_load_direct(): don't check for full block
We used to set all four quadrant bits if a full block
came through pool_direct_load(). Since users of this
function are going to be explicitly setting the quadrant
bits themselves immediately after this call, there's no
point (except for manual writes of full blocks, but those
ought be uncommon enough not to tip the scales the other
way -- this optimization was directed at blitters).
About a 5% speedup in notcurses-demo. Originates in #1316.
2021-02-05 01:03:05 -05:00
nick black
02c57186b4
Stacking tests: remove cruft, this works now #1318 2021-02-04 23:52:05 -05:00
nick black
56686348d7
more README.md trimming 2021-02-04 23:37:30 -05:00
nick black
dc436ec026
reorganize documentation, trim README.md 2021-02-04 23:33:24 -05:00
nick black
8d4a8b5d62
[PoCs] rename wcwidth -> ncwidth for less ambiguity 2021-02-04 21:25:07 -05:00
nick black
4e8f857be0 use entirely delegated initializers in tests/ 2021-02-03 17:17:39 -03:00
nick black
aa3cbda9a4
blitterstack: must set all 4 bits on full form #1322 2021-02-03 12:28:54 -05:00
nick black
c35c87ba75
FAQs: add Q about COLORTERM and ssh 2021-02-03 08:58:12 -05:00
nick black
54ca2249df
v2.1.8 2021-02-03 08:34:49 -05:00
nick black
2ae1a764d9
stats: properly initialize raster_min_ns 2021-02-03 03:50:42 -05:00
nick black
2b42498c0d
add some notes regarding tmux #1314 2021-02-03 03:50:28 -05:00
nick black
4a36a3853e
notcurses-input: use 8x1 blitter for plot 2021-02-03 01:38:12 -05:00
nick black
cd33073b16
jungle: work on all geometries 2021-02-03 01:05:34 -05:00
nick black
0a6056fde4
reproduce MIT license in ncart.c #1323 2021-02-03 00:43:15 -05:00
nick black
b3569b6aef
Initialize Readline on demand
Eliminate NCDIRECT_OPTION_NO_READLINE (it was only introduced in
Notcurses 2.1.6). Add a new function, ncdirect_readline(). Upon
first call to this function, initialize libreadline. Destroy
libreadline in ncdirect_stop() iff we initialized it. Add
hilodirect guessing game PoC from #1325. Rename
notcurses_directmode.3 to notcurses_direct.3. Closes #1326.
2021-02-03 00:18:10 -05:00
nick black
5afa3f14a9
ncdirect: always preserve termios status #1325 2021-02-02 23:42:54 -05:00
nick black
94172303be
implement raster timing stats #1324 2021-02-02 23:02:43 -05:00
nick black
ddc524420d
jungle demo: more precise timing 2021-02-02 22:57:21 -05:00
nick black
289d0d6a54
notcurses.3: proper linker syntax for notcurses 2021-02-02 22:19:58 -05:00
nick black
072f68a014
add some actual zalgo to zalgo PoC 2021-02-02 22:09:04 -05:00
nick black
43dd0440f7
add raster timing stats #1324 2021-02-02 21:59:29 -05:00
nick black
d47337c4ae
nice 2021-02-02 21:59:13 -05:00
nick black
2491b693ba
Add missing channel_set_palindex()
Implement channels_set_fg_palindex() and channels_set_bg_palindex()
in terms of channel_set_palindex(). Add missing entries to
notcurses_channels.3 man page. Use uint32_t in place of unsigned
when dealing with channels in notcurses.h.
2021-02-02 20:36:59 -05:00
nick black
46f17f4794
add LICENSE to rust/ 2021-02-02 20:36:46 -05:00
nick black
8416e6dfcf add José and igo95862 to README.md 2021-02-02 17:59:44 -05:00
nick black
68776b24e8 Add José to Cargo.toml, copy LICENSE #1163 2021-02-02 17:59:44 -05:00
nick black
b10588e97f
ncvisual_render: replace fprintf with logwarn() 2021-02-02 01:03:35 -05:00
nick black
2507a1712b paint(): need blittedquads != 0 to stack blitters #1068 2021-02-02 00:57:58 -05:00
nick black
87def26efb paint(): need invert bits not logic for stacked blitters #1068 2021-02-02 00:57:58 -05:00
nick black
b112b93901 use byteswap.h on GNU/Hurd #1320 2021-02-02 00:57:58 -05:00
nick black
39563058ca new unit test breaks #1068 2021-02-02 00:57:58 -05:00
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