Commit Graph

489 Commits (15ac1d0411d6860ddcf0e98e5d91fbf1b2068617)
 

Author SHA1 Message Date
nick black 15ac1d0411
outro: balance up messages for centering 5 years ago
nick black 11d6f60ed4
clean up eagle poop 5 years ago
nick black 6be6ae2393 eagles: zoom to lower left 5 years ago
nick black 1dde53d0e2 holy fucking shit it works 5 years ago
nick black d6bcb3211f eagles level starts at lower-right 5 years ago
nick black 712c7a16eb fuck yeah 5 years ago
nick black 7ab6febbf9 viewdemo: add a legend. baller as fuck 5 years ago
nick black b257f40a35 sync input documentation for char32_t #172 5 years ago
nick black 0861b96bde wchar_t -> char32_t in input stack #171 5 years ago
nick black 6532ea858b start eagle demo #167 5 years ago
nick black f3f43528f7 implement superplane (NCSCALE_NONE) #168 5 years ago
nick black 3cfe88ee0c ncscale_e enumeration for ncvisuals #168 5 years ago
nick black e2c58534ca work around -Wclobbered-noted problem 5 years ago
nick black e871660eff dig_visible_cell: rewrite recursion as iteration #170 5 years ago
nick black 1a949a5a81
account for tabletmasks 5 years ago
nick black 5459b4a8a7
Merge branch 'master' of github.com:dankamongmen/notcurses 5 years ago
nick black a96e716663
panelreels: account for tablet masking 5 years ago
nick black 94722c0f28
Merge branch 'master' of github.com:dankamongmen/notcurses 5 years ago
nick black ddfd5219ed
notcurses_getc() needs return wchar_t #161 5 years ago
nick black 4a7409ebda
sprite-enhalfen tool 5 years ago
nick black 37ed8300cb
fix up man page destination path 5 years ago
nick black c4e4f921f3
changeover for 1.0.0 5 years ago
nick black 924b24fa1f
v0.9.0 5 years ago
nick black 97ecbdb0e5
sigh, probably gotta kill DMCA lure 5 years ago
nick black fea5ada5f5
add FINAL CUT shout-out, use ≤ in markdown 5 years ago
nick black 29eb696947
repair a dumbness 5 years ago
Marek Habersack ff3ed881c0 Improve chances of DirectColor terminal detection
While ncurses 6.1 adds the `RGB` capability to terminfo, the flag is not
commonly used in terminfo entries as of now. The `COLORTERM` environment
variable is, otoh, commonly present and set to either `truecolor` or
`24bit` value by terminal emulators which support direct color.

Add a check for this if `RGB` is false (or absent)

With this check in I was able to properly appreciate the awesomeness of
notcurses demos :)
5 years ago
Nick Black 957549105b
Wide character rigor (#117) (#157)
* unidamage PoC
* add cell_load_simple()
* clear CELL_WIDEASIAN_MASK in cell_load()
* split out render code
* add CELL_SIMPLE_INITIALIZER
* widecolor: fix message plane
* widecolor: simplify color increments
* document wide character handling
* unit tests for wide obliteration #117
* widechar obliteration hardening #117
* widecolor -> widechomper, update man page
5 years ago
nick black 040607c6f9
fix up linear interpolations 5 years ago
Nick Black dfc7623119
Implement notcurses_refresh() #150 (#156)
* boxdemo: clean up colors
* Fix crash on certain resizes due to corruption of damage map #152
* Rewrite ncplane_move_yx(), throwing out ~25 line of code
* implement notcurses_refresh() #150
5 years ago
nick black 0f175e58d3
unidamage PoC #117 5 years ago
nick black c30bd1b531 pass up damage when changing z-axis #146 5 years ago
nick black 48adc31260 unit test for z-axis rendering #146 5 years ago
nick black 01ac18fb35
s/Open Source/free software/g 5 years ago
nick black 165170dd51 if the man prefers 'free software', use that term 5 years ago
nick black 91a7427689 render: use unlocked stdio in render path 5 years ago
nick black c5acdaaef0 don't allow moving a plane above/below itself #71 5 years ago
nick black 599b7a6d9a z-axis unit tests #71 5 years ago
nick black dac4f78ee6 basic unit tests for z-axis #71 5 years ago
nick black 58cc6927ac 256-color cube is not ansi, don't muddy the waters 5 years ago
nick black 65858b4495 unit test 256-index quantizing #4 5 years ago
nick black 8c40f6076b
link to other tui libraries worth their druthers 5 years ago
nick black a916d929db
RGBtoANSI: fixup lower grey onversions, looks reasonable now #4 5 years ago
nick black cfccd0c39c
RGBtoANSI unit test, fix up bases 5 years ago
nick black 8b664a14ef
move RGBtoANSI into internal header 5 years ago
nick black 041e6438e3
quantize to ansi256, atrociously #4 5 years ago
nick black f9ac7a7737
image in README 5 years ago
Nick Black 2de07f8a48
Per-line damage map, ~50% increase in FPS on notcurses-demo (#144)
Implement a fairly conservative, line-granularity, two-level damage map. One on the overall notcurses object is dirtied by planar moves, creations, deletions, and resizes. One on each ncplane is dirtied by glyph output, media rendering, fades, and erasure. #83 This has some definite false positives: a hidden plane which moves will damage a bunch of lines unnecessarily. For now, don't do things like that :D.

Extra byte per line per plane, shouldn't be a problem.

Two new stats for cell elisions and emissions

Allow keypress to interrupt view-demo

ncvisual_stream() now allows a callback per frame

Allow ncvisual_open() to create its own, perfectly-sized, ncplane #128

Typical performance prior to this PR:

4655 renders, 18.3s total (0.000305s min, 0.196s max, 0.0039s avg 253.9 fps)
401046.505KB total (9.688KB min, 139.697KB max, 86.15KB avg)
Emits/elides: def 1082115/116196 fg 10547624/7236460 bg 10602717/6208644
 Elide rates: 9.70% 40.69% 36.93%
4680 renders, 18.4s total (0.000285s min, 0.15s max, 0.0039s avg 255.0 fps)
403078.188KB total (9.688KB min, 139.697KB max, 86.13KB avg)
Emits/elides: def 1088994/116196 fg 10604983/7267750 bg 10655426/6237472
 Elide rates: 9.64% 40.66% 36.92%
4699 renders, 17.8s total (0.000227s min, 0.192s max, 0.0038s avg 263.8 fps)
403266.907KB total (9.688KB min, 139.697KB max, 85.82KB avg)
Emits/elides: def 1086511/116196 fg 10601709/7359116 bg 10661910/6326744
 Elide rates: 9.66% 40.97% 37.24%

After this PR:

5625 renders, 15s total (9.36e-05s min, 0.187s max, 0.0027s avg 375.2 fps)
168365.640KB total (0.930KB min, 139.600KB max, 29.93KB avg)
Emits/elides: def 310575/116196 fg 4486002/4473416 bg 4116835/4630666
 Elide rates: 27.23% 49.93% 52.94%
Cells emitted; 9928000 elided: 12572000 (55.88%)
5642 renders, 14.2s total (9.17e-05s min, 0.154s max, 0.0025s avg 397.0 fps)
168669.009KB total (0.605KB min, 139.600KB max, 29.90KB avg)
Emits/elides: def 310819/116196 fg 4499833/4482134 bg 4118562/4652470
 Elide rates: 27.21% 49.90% 53.04%
Cells emitted; 9962160 elided: 12605840 (55.86%)
5650 renders, 14.3s total (0.000118s min, 0.143s max, 0.0025s avg 395.7 fps)
169461.884KB total (0.860KB min, 139.600KB max, 29.99KB avg)
Emits/elides: def 305431/116196 fg 4515396/4456376 bg 4149967/4613668
 Elide rates: 27.56% 49.67% 52.65%
Cells emitted; 9945200 elided: 12654800 (55.99%)

on netcurses-demo, we're eliding about half of the total cells via this damage map. that's pretty fucking sweet! FPS increase of about 50% -- I'll take that any day of the fuckin' week, boyo. w00t!

https://www.youtube.com/watch?v=XbGs_qK2PQA
5 years ago
nick black ce9eeecc3b
render: eliminate grotesque stupidity
We were doing an entire copy of the framebuffer every fucking
render for no good reason whatsoever. Found this while working
on #83, but let's get it in master immediately. JFC. I suck.

Before (delay factor of 0.5):

[schwarzgerat](0) $ time ./notcurses-demo -d.5
Term: xterm with direct-color indexing
1737 renders, 24.8s total (0.00131s min, 0.362s max, 0.014s avg 70.1 fps)
230217.182KB total (12.696KB min, 223.310KB max, 132.54KB avg)
Emits/elides: def 1074878/126257 fg 6615070/3023957 bg 5519815/3130192
 Elide rates: 10.51% 31.37% 36.19%

real	0m47.653s
user	0m8.977s
sys	0m1.414s
[schwarzgerat](0) $

After (same delay factor of 0.5)

[schwarzgerat](0) $ time ./notcurses-demo -d.5
Term: xterm with direct-color indexing
1741 renders, 23.2s total (0.00125s min, 0.351s max, 0.013s avg 75.0 fps)
231551.089KB total (12.696KB min, 223.310KB max, 133.00KB avg)
Emits/elides: def 1065445/126257 fg 6655295/3006679 bg 5566155/3115184
 Elide rates: 10.59% 31.12% 35.88%

real	0m46.140s
user	0m8.932s
sys	0m1.350s
[schwarzgerat](0) $

Now *there's* the loss we saw during #139 work, thinking we'd get it
back in #143. Good. Huzzah! But also fuck!
5 years ago
nick black 8bd4607e9b
Merge branch 'master' of github.com:dankamongmen/notcurses 5 years ago