Commit Graph

1497 Commits (ce619f7af50e86a62140a7f3f58d64af619dd645)

Author SHA1 Message Date
nick black ce619f7af5 tree: implement nctree_plane() #1164 4 years ago
nick black cf367289c8 nctree: fix memory leak on error path 4 years ago
nick black bb14694000 add nctree movement api #1164 4 years ago
nick black 3eb42d6c0c implment nctree_create()/free() #1164 4 years ago
nick black 07dd9dddde
ncplane_new_internal(): check ncplane malloc #1348 4 years ago
nick black 5925d4e121
ncplane_qrcode: get no-qrcodegen definition 4 years ago
nick black 1b1e0b88be
ncplane_qrcode: drop blitter argument, update docs 4 years ago
nick black d9e95afe4d
notcurses_stop: add margin_t when resetting cursor #1345 4 years ago
nick black c11b384a77 apply ALLOC to internal.h 4 years ago
nick black 3e39b6c0a3
shit! properly initialize tcache->utf8 in direct mode 4 years ago
nick black 15d5c48d93
notcurses_stop: position cursor at bottom-left without alternate screen #1337 4 years ago
nick black 18133cb661
handle_input: add comment regarding getc vs read 4 years ago
nick black 9c9f786dd2
move ttyinfp to fd, getc to read #1314 4 years ago
nick black 6b126f4049
add notcurses_canbraille() capability test 4 years ago
nick black 7e4e3b71f8
lookup_blitset: ascii check comes at the end 4 years ago
nick black c64de96cbf
lookup_blitset: degrade from braille smoothly #1334 4 years ago
nick black 4d74d23fc6
apply_term_heuristics: no braille on linux console #1334 4 years ago
nick black 833f1b13bf
rgba_blitter_default: just take tcache #1334 4 years ago
nick black 568e83e4f6
blitting: place utf8 in tcache #1334 4 years ago
nick black c784eb660d
paint(): tighten up comment 4 years ago
nick black 8b4c5fdeb9
cell_load: ingest pool_load() 4 years ago
nick black e8f03235eb
pool_blit_direct: set width rather than in pool_load_direct 4 years ago
nick black 38ec72f4f2
triablitter: use pool_blit_direct() 4 years ago
nick black b4d80ebfaf
term_putc: remove iscntrl check #1316 4 years ago
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.
4 years ago
nick black aa3cbda9a4
blitterstack: must set all 4 bits on full form #1322 4 years ago
nick black 2ae1a764d9
stats: properly initialize raster_min_ns 4 years ago
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.
4 years ago
nick black 5afa3f14a9
ncdirect: always preserve termios status #1325 4 years ago
nick black 94172303be
implement raster timing stats #1324 4 years ago
nick black 43dd0440f7
add raster timing stats #1324 4 years ago
nick black d47337c4ae
nice 4 years ago
nick black b10588e97f
ncvisual_render: replace fprintf with logwarn() 4 years ago
nick black 2507a1712b paint(): need blittedquads != 0 to stack blitters #1068 4 years ago
nick black 87def26efb paint(): need invert bits not logic for stacked blitters #1068 4 years ago
nick black 1a69044d8a fold blends into s bitfield 4 years ago
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.
4 years ago
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!
4 years ago
nick black 0446dc0f6d enable blitterstacking unit test -- fails for now 4 years ago
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.
4 years ago
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.
4 years ago
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().
4 years ago
nick black cdf2e591b3 halfblock blitter: use pool_blit_direct() 4 years ago
nick black c419bda980
initialize crenderlen, stupid #1302 4 years ago
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.
4 years ago
nick black 692689399c
don't infinitely recurse in ncvisual_stream(), ack 4 years ago
nick black de0b61925e
properly dispatch remaining visual specifications 4 years ago
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.
4 years ago
nick black 740093fbb3
ffmpeg: kill per-ncviusal subtitle context memory leak 4 years ago
nick black 5c5f892b3e
progbar: eliminate dead store 4 years ago