Commit Graph

955 Commits (c7d284a9afe3f3d4f07545889fb36febc2771a3a)

Author SHA1 Message Date
nick black 34442f263f demo: let ncmenu handle section shortcuts #1058 4 years ago
nick black da1b8d1d53
install version.h #1054 4 years ago
nick black 1fe53d98fb
new notcurses ii test video #1055 4 years ago
nick black cf616ab2ad
fallin: don't use builddef macros 4 years ago
nick black 29e83717f9
demo: don't use builddef.h #defines #1054 4 years ago
nick black b809d5c7c5
s/USE_MULTIMEDIA/NOTCURSES_USE_MULTIMEDIA/g #1054 4 years ago
nick black 1b3f97944a
whiteout: refresh after each cycle to clear cruft 4 years ago
nick black 4e8cae7b2c
zoo: don't check cursor results, so we can run on vt100 #1047 4 years ago
nick black f9e2c7863b
add notcurses_stats_alloc #1043 4 years ago
nick black 4466f1aaff pool_load_direct: call egc_rtl() for RTL U200E forcings #850 4 years ago
nick black cc99f06a2a tighten up render/writer columns 4 years ago
nick black bb6887e05d break up stattracking #1039 4 years ago
nick black 683217ef07 normalize style setters #1034 4 years ago
nick black f15dc9ba80 ncreel: properly size tablets in all border conditions #1031 4 years ago
nick black 20bf1ae2d4
nctablet_ncplane() -> nctablet_plane() 4 years ago
nick black ec85dd1c3b
ncreel_destroy: return void 4 years ago
nick black 11a2861e8d
FPS graph ought be recentered on resized #1023 4 years ago
nick black a685cc18f3 recursively cascade resizes using resizecb #869 4 years ago
nick black 36aed3c521 add ncplane_create() + ncplane_options #1020 4 years ago
nick black 607c03edc4
rename _rgb_clipped functions rgb8_clipped 4 years ago
nick black 2d2e4df2e2 reader: properly place the text plane offscreen #985 4 years ago
nick black a4367fcfb5 rip out ncplane_ creation functions #985 4 years ago
nick black b7a57eaab7 convert all channel rgb calls #985 4 years ago
nick black fca0d16401 demo: colorize more of usage message 4 years ago
nick black 94aa0aaa76 yield: don't print overyield 4 years ago
nick black dd53764df2
allglyphs: home cursor prior to closing gradient 4 years ago
nick black 28dcc8bbbe
mojibake: disable person plane 4 years ago
nick black aba179f769
allglyph: reset gradient at end to clear counter 4 years ago
nick black 4bb1f3fc85 mbswidth -> ncstrwidth() #985 4 years ago
nick black dab7247cdd
mbswidth: use utf8_egc_len() for segmentation #1014 4 years ago
nick black 0fe6d39f18
mojibake: disable erratic 'person'/'subdivision-flags' for now #1011 4 years ago
nick black 94aa8f08f1
grid looks better before mojibake #1012 4 years ago
nick black 592d7e76ae
ncplanes: name menu planes, name demo hud/plot planes 4 years ago
nick black b7dc102eb8
reel: don't breech bottom border #1010 4 years ago
nick black dca9db9687
ncreel: conform to the New Way #627 4 years ago
nick black c3e5e47a2a
ncreader: conform to the New Way #627 4 years ago
nick black 4f04f1bc31 remove bgchannels field from selector_options #627 4 years ago
nick black 306948507f ncmultiselect: normalize per new widget API #627 #1006 4 years ago
nick black 8839d44454 selector: transfer ownership of ncplane #1006 #627 4 years ago
nick black c54d24f7ca
jungle: GMPMS/R2㎨rain falls from top to bottom #1004 4 years ago
nick black 806e604e58
mojibake: adaptive timing #1002 4 years ago
nick black 9c5d6eca27
zoo: move plane before placing cursor, eliminating oscillation #990 4 years ago
nick black 1f214fbe45
cursor_enable: don't consider the same location an error #990 4 years ago
nick black 802e95d876
zoo: error check on notcurses_cursor_enable() #990 4 years ago
nick black a2d2274f18
dragon: use default background 4 years ago
nick black 1aeb6fdb77
mojibake demo: use default background for mojiplanes 4 years ago
nick black 2f28420034 rename ncplane_putsimple() -> ncplane_putchar() #912 4 years ago
nick black ca4a08623d
notcurses-demo: stylize usage message #915 4 years ago
nick black 857e22562c
whiteout: remove intermediary cell 4 years ago
nick black c834e2a78d
cell_simple_p(): fix for htole() #979 4 years ago
nick black 4c7a1d0427 ncdirect_init: add flags parameter #976 4 years ago
nick black 991b39b8a8
zoo: break up exposition lines a little 4 years ago
nick black 2839904785
zoo: fewer newlines in exposition 4 years ago
nick black 11d504f1e7
reel demo: always start tablets with at least 2 lines 4 years ago
nick black 05904a8b6e
allglyph: avoid known-problematic glyphs #881 4 years ago
nick black 3c4842cec5
mojibake: touch up colors 4 years ago
nick black 0060a60756
zoo: time text layout accurately 4 years ago
nick black ffa9dcc862
people <3 chunli; move her up in demo sequence 4 years ago
nick black 34ae5cb5a6
tuck HUD in with FPS graph 4 years ago
nick black 902d8472e8
zoo: break up lines 4 years ago
nick black 7cbb2e9110 zoo demo: show cursor in reader box #835 4 years ago
nick black f877b4f0ea demo/input: include errno.h 4 years ago
nick black 4dd1d6a4c8 Annihilate nc_err_e and all infrastructure #948 4 years ago
nick black 4fb5c3da3a
HUD: rounded box rather than double 4 years ago
nick black 57f3e36e96
view: move legend to top of display 4 years ago
nick black 2c4eead0c2
yield: print the running yield 4 years ago
nick black 60ee1caa14
yield: cut iterdelay 4x 4 years ago
nick black 76d330c9fa
yield: cap at 512 iterations 4 years ago
nick black 026b94969d cffi heap allocations are zero-initialized #942 4 years ago
Nick Black 73dc0a7d69
Zoo 2, electric boogaloo (#939)
* Reimplement the widget zoo demo. The previous PoC
  was a multithreaded monster with behavior dependent
  on screen geometry. Replace it with a single thread state
  machine. Closes #936.
* Support titles for ncplot. Adds title to the ncplot_options
  struct, which may be NULL. Closes #941 .
* Properly color ncplot according to maxchannels and
  minchannels. Closes #940
* Add tools/function-table.sh script for generating public API list.
4 years ago
nick black 14d6129007 take-no-prisoners overhaul of ncplane_puttext() #829 4 years ago
nick black 7560b1b2da
fps plot: use italics for legend 4 years ago
nick black 4a48baf50b
allglyphs: stylize legend 4 years ago
nick black 375037c750
HUD: keep active line in bold 4 years ago
Nick Black 359ad1d36d
Generalized mergedown #779 (#932)
* Rename ncplane_mergedown -> ncplane_mergedown_simple()
* New ncplane_mergedown(), fully general projection of src to dst
4 years ago
nick black ab0833fc6e paint: drop cell_locked_p() #914 4 years ago
nick black 83b0f8c238 whiteout: better brackets in mathtext 4 years ago
nick black bc0016b827 BigMult unit test, fix ncmetric bogon #929 4 years ago
nick black f8854f84e8
demo summary: scale TheoFPS div by 1000 #928 4 years ago
nick black 11a9ce0f5e summary: kill stray comment 4 years ago
nick black 8578cffebe
demo: metricize TheoFPS in summary 4 years ago
nick black 0f79ac5702
zoo: fade out the widgets #835 4 years ago
nick black 0917867d62
demo summary: purge extraneous space in title column 4 years ago
nick black d3cac57d03
fallin': copy styles/colors from old display #909 4 years ago
nick black d523b41200 utf8_egc_len: work around treacherous wcwidth #903 4 years ago
nick black 86454f1b0a
mojibake: move more 2-to-1s to the end #903 4 years ago
nick black 60fceb877f
mojibake: clean up excess chars #903 4 years ago
nick black 6d62470032
zoo demo: feed ncplane_puttext() atomic words #897 4 years ago
nick black a2c95814b7 Remove cell_simple_p()
Get notcurses-tetris working again, since its collision
detection relied on simple vs non-simple EGCs, which are
no longer an operative concept. Closes #899.
4 years ago
nick black d57e1880e0
demo: free up menu on exit 4 years ago
nick black dee27be3c2
highcon: silence scan-build warning 4 years ago
nick black b63cad270f
uniblock: only emit U+200E when necessary 4 years ago
nick black 4fdb11089f idiot 4 years ago
nick black 16ff667325 blissful endianness-opacity
not caring about endianness is the opiate of the masses.
happy, happy masses. remove endianness.h and all its baleful
influence by explicitly breaking up the cell structure. #892
4 years ago
nick black 248c49402e
drone: use new builders 4 years ago
nick black 37d1464d6f
allglpyhs: don't do pointless header updates 4 years ago
nick black 24e457ace2
yield: only do land, much better 4 years ago
nick black 0464845cff
whiteout: disable bidi text until we have solution to #881 4 years ago
nick black 73bd0785a5 demo: make the HUD more readable 4 years ago
nick black 7811663223 inlined EGCs + styling unit tests #830 4 years ago
nick black 489ad88954 trans: add some style to legend 4 years ago
nick black ab04b607b8 demo: don't print 4th version component unless non-0 4 years ago
nick black 935ae0378b demo changes
* Tighten up the HUD, now only as large as it needs be
* Show another digit on timer (milliseconds)
* Move allgraph towards the back
4 years ago
nick black b980d7deee
sgr-direct PoC 4 years ago
nick black 52103af364
Cell: overlap RGB and palette indices #884 4 years ago
nick black 733da37bb5
zoo: render the last bit of text 4 years ago
nick black 7c373ecc3a
zoo demo: correct delaytime for spooling 4 years ago
nick black 8aa0986f7d
zoo: support widget use for the duration #835 4 years ago
Nick Black c3508d524b
ncplane_puttext() work for longer lines (#880)
* The zoo demo made manifest that we had some serious problems handling sequences of longer lines in ncplane_puttext(). This remedies most of the problems, though it's not yet perfect. #871
* Guard notcurses* for NULL in log*() #878 #879
* Fix memory leak in ncdirect_dump_plane()
4 years ago
nick black 8759572632
zoo demo: smooth out delays in mselect input #835 4 years ago
nick black e5d17fd20c
zoo demo: smooth out delays in selector input #835 4 years ago
nick black 82fe736d15
qrcode: fix ncvisual memory leak 4 years ago
nick black 5d08641751
zoo: don't use initialized variable on error path 4 years ago
nick black 4a8d56cbfc
zoo: propagate return codes out of selector demos #835 4 years ago
nick black d6e2ae5262
zoo demo: propagate out return code #835 4 years ago
nick black 02c29f39b6
reel demo: adapt to new tablet callback #818 4 years ago
Nick Black 11d6a4eb89
New reel layout algorithm #818 (#870)
New reel layout algorithm based on trimming and sifting. Fixes the original issue of #818, though I'm not marking that bug fixed until I've resolved the little issues remaining with this one.
Back off CMake version dependency, see if we can get by with 3.11.4 for EPEL8 #851
Simplify tablet drawing tremendously by separating tablet border and data planes. Callbacks no longer need worry about the borders; they can simply fill the plane they're handed. #833
Improve notcurses_debug() a bit
Add ncplane_new_named() and friends to expose plane naming to the user.
Add internal ncplane_genocide() to kill a plane and all its bound descendents
New industrial-strength ncreel unit testing
notcurses-ncreel now accepts -ln for log level n
Add ncplane_parent() and ncplane_parent_const()
4 years ago
nick black b977b5b84d
zoo demo: selectors go behind exposition plane #835 4 years ago
nick black c0ffe0ae91 reeldemo: kill compiler warning with grim cast 4 years ago
nick black 703fbc853e
zoo: differentiate title from borders 4 years ago
nick black 59fe0cb829
zoo demo: color up selectors 4 years ago
nick black e17f7198e7
printf(%lc) is wint_t not wchar_t 4 years ago
nick black 78fdad0f43
demo: simplify HUD code, print top to bottom 4 years ago
nick black b0c1a0ae18
zoo: fix reference to loaded file, use find_data() 4 years ago
nick black 5c5077840e
intro/hud: place things a bit tighter to avoid HUD stomping intro line 4 years ago
nick black 835a62361d
cell_nobackground_p(): load time, 5% perf win =] =] =] #838 4 years ago
nick black 2dcab374c4 mojibake: fix some row overruns #842 4 years ago
nick black 886255e941 mojibake: clean up topmost line of display #842 4 years ago
nick black 63556d295f
demo: color HUD light rather than dark 4 years ago
nick black ac59918682
zoo: mention plots! #835 4 years ago
nick black 9a758b82e2 zoo: speed up the "typing" 4 years ago
nick black b7b6572bc7 zoo: render informative text on ncreader #835 4 years ago
nick black 5a9e2645a5 zoo: blend reader background 4 years ago
nick black 78a7b4d255 constify ncreader_options->egc 4 years ago
nick black c8f623a426 zoo: add necessary locking #835 4 years ago
nick black bea35fb91f zoo: delay based off mult, add reader thread #835 4 years ago
nick black 620ae34c02
Merge branch 'master' of github.com:dankamongmen/notcurses into master 4 years ago
nick black 1a82273231
selector: handle nonzero defidx with zero maxdisplay #834 4 years ago
nick black 0b55b360ff
mojibake: leave some wiggle room for invalid wcwidth() 4 years ago
nick black aec5f79369
demo: move HUD down, right above FPS plot 4 years ago
nick black dde540b1da
zoo demo: render prior to inter-widget pause 4 years ago
nick black d23bf9a393
zoo demo: use CHANNELS_RGB_INITIALIZER() for selector 4 years ago
nick black 47800e57f1
zoo demo: multiselector use CHANNELS_RGB_INIT 4 years ago
nick black 6d6c375265 notcurses-demo: accept --help longform argument 4 years ago
nick black 8f9646c194 zoo: delay + handle input for multiselector #628 4 years ago
nick black c036f14b07 zoo: pause following selector, handling input #628 4 years ago
nick black e0cf13999d zoo: text for multiselect #628 4 years ago
nick black 74d80d76b1 zoo demo: handle inputs 4 years ago
nick black a5f2160558 zoo demo: background 4 years ago
nick black c7cd82af55 update zoo demo for no itemcount 4 years ago
nick black e24d0f9b0a zoo: add items to selector 4 years ago
nick black 7174a84e94 zoo: add multiselector 4 years ago
nick black 988bb1f2a6 zoo: create selector 4 years ago
nick black f62277a69b add zoo demo #628 4 years ago
nick black 38a7306ba8
mojibake: work around wcwidth inaccuracies 4 years ago
nick black 17291b8743 implement ncmenu_mouse_selected() #819 4 years ago
nick black 0767aaec01
work around opensuse compilation issue #806 4 years ago
nick black 9bd0b42a0e normal: fix ncvisual_rotate() abort reported as FAILED #802 4 years ago
nick black f8c47b0681 normal: fix plane rotation quit reported as FAILED #802 4 years ago
nick black 750f88b70a split direct into its own header 4 years ago
nick black b617587ade
demo_nanosleep_abstime_ns: silence compiler warning 4 years ago
nick black 9ff805e754
demo_nanosleep_abstime_ns: fix test sense, swallow input #782 4 years ago
nick black 3ef1a3a07d
add notcurses_version_components() 4 years ago
Nick Black 162f9910c2
Tons of work on ncreel (#776)
Tons of work on ncreel (#627, #749, #694)
Improve reel demo: get input wired up once more, avoid the FPS demo at bottom, print pointer and line count in each tablet, use new ncreel API. Improve notcurses-ncreel explorer: kill memory leaks (#694), draw tablets better, use new ncreel API. Fix bug in ncreel core where cruft could be left on the screen, via a very gross brute force algorithm. I'll likely come back and make this a bit less ghastly in the future #749. Remove weird one-off input system from ncreel, residue from outcurses. Make some of the normalizing changes speced out in #627

* ncreel: give each tablet an index, and print it #749
* reel: eliminate FIXME + param to insert_tabler() #749
* ncreel: label tablets with their adress to correlate against debugging logs #749
* more terminal environment variable notes
* TERMS.md: add Sakura, st
* ncreel: move legend out of reel proper
* ncreel_options: dump min/max_supported_rows/cols #627
* ncreel: remove weird one-off input layer #627
* ncreel: add ncreel_offer_input()
* reel demo: call demo_getc()
* reel demo: rig up input to demo main
* ncreel: drop ncreel_del_focused(), properly bind tablets
* reel demo: don't free up necessary plane
* ncreel: don't pull absolute locations of tablets
* ncreel: place tablets correctly in boundrel
* reel demo: add back support for left/right
* reel demo: restore thread movement
* ncreel: remove a great deal of complexity
* reel demo: stay out of FPS graph's way
* ncreel: give each tablet an index, and print it #749
* reel: eliminate FIXME + param to insert_tabler() #749
* ncreel: label tablets with their adress to correlate against debugging logs #749
* ncreel: move legend out of reel proper
* ncreel_options: dump min/max_supported_rows/cols #627
* ncreel: remove weird one-off input layer #627
* ncreel: add ncreel_offer_input()
* reel demo: call demo_getc()
* reel demo: rig up input to demo main
* ncreel: drop ncreel_del_focused(), properly bind tablets
* reel demo: don't free up necessary plane
* ncreel: don't pull absolute locations of tablets
* ncreel: place tablets correctly in boundrel
* reel demo: add back support for left/right
* reel demo: restore thread movement
* ncreel: remove a great deal of complexity
* reel demo: stay out of FPS graph's way
* reel: tighten up reel following redraw
* reel: fix upper-left corner of topless perimeter
* ncreel: print linecount, return clipped value
* reel: draw focused tablet relative to reel
* reel: brute force decruftification, how embarrassing #749
4 years ago
nick black 479dd00739
ncreel: purge {tblr}off fields; these are ncplane properties #627 4 years ago
nick black da765ebdaa
mojibake: don't stomp right side of boxes 4 years ago
nick black f2af24648d
mojibake: add all remaining emoji collations #770 4 years ago
nick black 2c37f2c4ba
mojibake: second third of the emoji collations #770 4 years ago
nick black fd83cc8639
mojibake: add all unicode 13 emoji via CLDR order #770 4 years ago
nick black b6330d142b
add notcurses_render_file() #491 4 years ago
nick black b26bd14d11
demo: make HUD text opaque #771 4 years ago
nick black 5a9e0c6f05
rendering: lack of term capability is not error #768
If we don't have setaf/setab, then we're not going to set color.
OK, fine. Don't regard it as an error during
notcurses_rasterization(), just don't emit the escape. This is
necessary to run on terminals like vt100, which in turn is
necessary to run unit tests properly on Redhat's koji.
Also, use notcurses_canfade() to avoid just breaking during
fades in intro and trans demos.
4 years ago
nick black 7744c6aae5
highcon: keep text in original position #762 4 years ago
nick black 452fdc671d
intro: move legend into main plane 4 years ago
nick black 4863c7e3df
ncdirect_image_render: restore NCBLIT_2x2 #751 4 years ago
nick black 8310b687ac
demo: enable FPS plot by default #744 4 years ago
nick black 9a5a4a65ca demo: enable HUD by default #743 4 years ago
nick black 8da3e6f968 HUD: fully glyph-transparent, looks great #743 4 years ago
nick black ba1c9868e5 HUD: glyph-transparent inter-column gap #743 4 years ago
nick black 64857e12ac HUD: glyph transparency on frame count #743 4 years ago
nick black 96575fb402 hud: glyph-transparent right side 4 years ago
nick black 6303e803f6
outro: don't obfuscate globe with acai plane 4 years ago
nick black 6f6826238e
mojibake: improve topside a tad 4 years ago
nick black 5513707d8d
allglyph: don't print UTF-16 surrogate characters #740 4 years ago
nick black 354152b48b
Redefine CELL_ALPHA_ in their natural forms
CELL_ALPHA_OPAQUE et al were defined as 0..3, meaning
CELL_ALPHA_SHIFT had to be used to compare them to their
channel representations. Instead, define them in said
representation outright, eliminating the need to shift while
retaining arithmetic properties, and zero initialization for
CELL_ALPHA_OPAQUE. Eliminate CELL_ALPHA_SHIFT #738.
4 years ago
nick black cdd96af8df
trans: put the legend on top to avoid FPS plot 4 years ago
nick black 78c2cef7e9
Use NCBLIT_2x2 by default with NCSCALE_STRETCH
We're not using NCBLIT_2x2 by default because it warps the
aspect ratio. If we're using NCSCALE_STRETCH, though, we've
(1) already indicated that aspect ratio isn't terribly
important to us and (2) are trying to maximize the space.
Since NCBLIT_2x2 is best for large images anyway, make it
the default when NCSCALE_STRECTH is being used.

Remove all explicit uses of NCBLIT_2x2 when NCSCALE_STRETCH
is being used in notcurses-demo.
4 years ago
nick black 03618c70b3
more sys/poll.h -> poll.h for musl #733 4 years ago
nick black 0a0f9faa7f
add .xcf for normal.png 4 years ago
nick black feaa20c586
normal: use fractalheight.png at end 4 years ago
nick black ef10b8ced2
mojibake: order planes by unicode spec 4 years ago
nick black 87a488da9f
mojibake: add unicode 5.2 / emoji 1.0 glyphs 4 years ago
nick black 0c6f160493
eagle: always zoom to target area #732 4 years ago
nick black f99f64d3d7 mojibake: add unicode1/emoji1 4 years ago
nick black 1d7b6a7732 mojibake: add unicode 7 / emoji 2 4 years ago
nick black f0d2847939 mojibake: finish unicode13 block 4 years ago
nick black bca52922dd mojibake: first row of unicode 13 table 4 years ago
nick black 32180235bd mojibake: better title coloring 4 years ago
nick black 70aefd451c mojibake: accommodate kitty 4 years ago
nick black 8654a4554a mojibake: reorganize so everything fits 4 years ago
nick black 46570d46b9 mojibake: color glyphs 4 years ago
nick black 770c0c0fc5 mojibake demo: scroll planes up 4 years ago
nick black e4885327e0 mojibake: clean up planes 4 years ago
nick black 54bfa96b00 mojiake: unicode 6.0 emoji 4 years ago
nick black 44eab55212 mojibake title 4 years ago
nick black 1dfcb826a6 skeleton of mojibake demo #689 4 years ago
nick black e45c2c9ac3
demo: speed things up a bit, our ass is dragging 4 years ago
nick black 1fa9d9be2c
yield demo: adapt to new ncvisual_geom #727 4 years ago
nick black 699407a14a
eagle demo: don't STRETCH for geom() call 4 years ago
nick black d7b04217f9
dragon/view demos: don't disturb menu bar 4 years ago
nick black 222c52e10c
view: use quadblitter 4 years ago
nick black 64b07fcd0b
outro: use quadblitter, reset vopts 4 years ago
nick black 7c1e9fe3d2
ffmpeg: properly scale #714 4 years ago
Nick Black 0084dbaa6d
qrcode generalization #699 (#713)
Add convenience function ncplane_home(). Add an ncblitter_e param
to ncplane_qrcode(), and split int maxversion into value-result
int* ymax and int* xmax. Write the actual sizes of the resulting
visual into these parameters. Update the qrcode demo. Add the
qrcode PoC. Update demos to ncplane_home(), where possible.

ncplane_qrcode() now takes an ncblitter_e and two value-result int*s
in the place of a single value int. The final size of the displayed qrcode
is written to *ymax and *xmax. If the code can't fit within the specified
dimensions, an error is returned. Standard rules for pluggable blitters
apply regarding fallback etc. #699
4 years ago
nick black ee73df3059
dragon: reset static done flag, erp 4 years ago
Nick Black 068b1c952a
Dragon demo #708 (#710)
* define dragon curve demo #708
* demo: distinguish abort from fail, color-wise
* dragon: ncvisual-based #708
4 years ago
nick black 03c748476b
normal: speed up rotation out #599 4 years ago
nick black 4f8f16df8d
qrcode: really remove getrandom() for freebsd < 12 4 years ago
nick black 3e23ca524f normal: improve coloring 4 years ago
nick black b119cec29e
normal: finally move to pi/4 rotations #599 4 years ago
nick black dc49bb943b
demo: destory about screen before restarting #706 4 years ago
nick black e74e7860c5
demo: explicitly set menu/about colors #705 4 years ago
nick black 3936d1b528
adapt callers of ncvisual_geom() 4 years ago
nick black 185742fd08
Rendering now does tripartite fallback to basecell
Each plane has a "base cell", which like all other cells is
initialized to the null glyph, opaque default foreground color,
and opaque default background color. Prior to this change, at
each cell of a plane, we decided whether to use that cell (the
"viscell") or the base cell depending on whether the viscell had
a non-null glyph. We now evaluate each component independently.
If the viscell has a null glyph, we use the base cell's glyph.
If the viscell has a default foreground, we use the base's fg.
If the viscell has a default background, we use the base's bg.
This was done because (a) it seems more intuitive (if I set a cell
to red, I expect red, not red iff there's a glyph in that cell
for this plane), and (b) because otherwise it was impossible to
do a multicolor overlay without blowing away underlying glyphs
(since without a glyph, you always reduced to the same base cell,
which could have only one fore- and background per render).

Existing code will need to change any instances where cells
lacking glyphs are colored, and those colors are not desired.
Since any such coloring had no effect before, it seems unlikely
that any ought exist (this did bring to light an instance in
the "qrcode" demo where we were staining overmuch of the plane).

This closes #395, the last big open worry regarding our API.
4 years ago
nick black 2b89b0850c
jungle/normal: improve behavior under ASCII mode #696 4 years ago
nick black a10ba4dac6
highgradient: degrade to gradient #700 #696 4 years ago
nick black 20322fe805
demo improvements for ASCII mode (#696)
* eagle: use new ncvisual_geom() to properly zoom
* qrcode: skip for now (#699)
* luigi: draw with spaces, not full blocks
4 years ago
nick black af46077775
ncvisual_geom: take degradation into account #697
In order to properly determine the scaling of an ncvisual to
be rendered, ncvisual_geom() needs know the blitting method.
For this reason, it took an ncblitter_e argument. It also,
however, needs handle degradation, which means knowing whether
NCVISUAL_OPTIONS_NODEGRADE is in use. It thus really wants the
struct ncvisual_options. Pass and accept it. Closes #697, and
fixes the "yield" demo in ASCII mode (#696).
4 years ago
nick black 0e1617811f
eagle: require UTF8 for now #697 #696 4 years ago
nick black 1cd3ffc89a
outro: transparent legend at borrom #687 4 years ago
nick black 1ffd871784
blocks poc: handle std coredump-free #645 4 years ago
nick black a3369d77a9
outro: plug memory leak post-fade 4 years ago
nick black 7736e4a7dc all: don't put legend so far away from plane 4 years ago
nick black 841c0a4b8f
quadblitter: respect transparency #686 4 years ago
nick black b2dcc50606
notcurses_options: fold bools into flags 4 years ago
nick black e2b43092c3
outro: fade in samoa while fading out changes #652 4 years ago
nick black 700d59dbad
yield demo: don't stain menu 4 years ago
nick black 71f6b7b02e
USAGE: pixel -> ncpixel 4 years ago
nick black 465f4694b8
rename pixel -> ncpixel 4 years ago
nick black 9f97b7b969
demo HUD: unify blur 4 years ago
nick black 77362a50f4
yield demo looks hot, hot, hot! 4 years ago
nick black fb13b148e9
add Pixel API 4 years ago
nick black 2c417ddb0c
yield demo: punch up with polyfills 4 years ago
nick black cb521e3de7
allglyph: always have room for the legend 4 years ago
nick black 633ef1f76c
add beginnings of yield demo 4 years ago
nick black 787e66a4c8
fallin': use NCBLIT_2x2 4 years ago
nick black 050b44628a
punch up luigi and purpdrank with NCBLIT_2x2 4 years ago
nick black b172d2b97e
NCVISUAL_OPTION_MAYDEGRADE -> NCVISUAL_OPTION_NODEGRADE, doc 'em 4 years ago
nick black cd2cc6f340
allglyph: add a counter showing the current glyph 4 years ago
nick black 9a0f0c66fe
ncblit: accept an ncvisual_options #680 4 years ago