Commit Graph

558 Commits (38ec72f4f296c14f7e2a2de4f79525615a041795)

Author SHA1 Message Date
nick black 02c57186b4
Stacking tests: remove cruft, this works now #1318 4 years ago
nick black 4e8f857be0 use entirely delegated initializers in tests/ 4 years ago
nick black 87def26efb paint(): need invert bits not logic for stacked blitters #1068 4 years ago
nick black 39563058ca new unit test breaks #1068 4 years ago
nick black 02d09ef47b quadblitter: unit test for crossed quadrants #1068 4 years ago
nick black 33d9e60003 quadblitter: unit test for stacked blits #1068 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 de0b61925e
properly dispatch remaining visual specifications 4 years ago
nick black 1108ebb5b6
Fix up some subtle pile issues
ncplane_destroy() needs to call ncplane_reparent_family(), not
ncplane_reparent() as it was doing (closes #1291). ->absy and
->absx actually are absolute; return them directly for an O(1)
ncplane_abs_yx() (down from O(N), huzzah). Add some unit tests
related to destroying and reparenting (#1286). Add ncplane_abs_y()
and ncplane_abs_x(), document them, etc.
4 years ago
nick black 7932859b50
unit test for position update following reparent #1286 4 years ago
nick black 6cf7eca50f
unit tests for ncplane_abs_yx() #1286 4 years ago
nick black 15386d57ce
nontrivial stacking unit test #1068 4 years ago
nick black cff006f8ab
fix return value of output functions 4 years ago
nick black 54b44513c4
Wide EGC tweaks
Don't bias the nccell width by 1, or 0-length EGCs become
255 columns. We weren't actually using the width to drive
much anything until now, so this wasn't a problem, but it
is exposed as an error once we got rid of CELL_WIDE_ASIAN
and start looping through the actual egc column width.
Closes #1278, closes #1277
4 years ago
nick black 5636a146e4
Wide unit test: rewrite without CELL_WIDEASIAN_MASK #1277 4 years ago
nick black 9245fda17f
genericize setup_signals() for ncdirect #1271 4 years ago
nick black 7ab2bddde7
notcurses-tester: no alternate screen 4 years ago
nick black 69e329d328
BigMult unit tests: fix for non-'.' decseps 4 years ago
nick black 1d8fcbb5e4
ncdirect: styles{set, on, off} -> _styles #1247 4 years ago
nick black 66349ecbd0
progress bar unit tests: skip non-utf8 4 years ago
nick black 1c4d942cfc DualCell{Left, Right} unit tests #1258 4 years ago
nick black f729d855f9 complete SingleCellDown/SingleCellUp tests #1258 4 years ago
nick black cd8dd4232c Progress bar unit test SingleCellUp #1258 4 years ago
nick black dad7a02b25
add test file for progressbars #1258 4 years ago
nick black 45d0ca54e9
add SetStruck directmode test 4 years ago
nick black 35cb5d9511
GrowPlanes tests: use valid arguments #1215 4 years ago
nick black bcbf7a490f
add ReparentDeep unit test #1214 4 years ago
nick black fd2acde1b1 rename cell->nccell, keep alias #1200 4 years ago
nick black a3e7b3b5d0
utf8_egc_len: count all printing glyphs #1174 4 years ago
nick black f3b86230e6
NCPlane tests: reenable GrowPlane #1198 4 years ago
nick black 0aa060b9f1
Reels unit test: REQUIRE tablet plane #1197 4 years ago
nick black 2c4566fdb3
notcurses-tester: drop loglevel to _ERROR 4 years ago
nick black 4a7353c1ec
PlaneAtCursorAttrs: home cursor #1197 4 years ago
nick black a3220b8a73
add ncplane_descendant_p(), unit test it #1192 4 years ago
nick black ec7bfea22d
get Piles reparent unit test working #1193 4 years ago
nick black f46fa11fb2 Blitting: fix endianness in unit tests #1130 4 years ago
nick black 448251e3f2 NCPlane: endianness fixes for unit tests #1130 4 years ago
nick black 46d6bfe64b Fills: fix endianness issues in tests #1130 4 years ago
nick black eb7e0b7a4c Rotate: fix unit test endianness #1130 4 years ago
nick black b99e6b8bc6 Visual tests: complete endianness fixes #1130 4 years ago
nick black 6915e44cca
Visual/Quadblitter: fix endianness in test #1130 4 years ago
nick black c9dcef2ca5
Visual unit tests: endianness fixes #1130 4 years ago
nick black 42ac6bb90b
more pile reparenting testing #1193 4 years ago
nick black beed7c359c
add some pile rendering unit tests 4 years ago
nick black 47c4931906
EmitEmojiStr: purge a few not yet valid on ubuntu #1189 4 years ago
nick black 8584fb2b05
Metric unit test: call notcurses_stop() at end only 4 years ago
nick black f8a6d21362
pull sleep out of unit test, doh 4 years ago
nick black 93f7f681a4
add unit tests for all plottypes #1081 4 years ago