nick black
c0b10a8f32
enable sgr/sgr0 #73
5 years ago
nick black
1ccb747e72
sgr: support disabling ALTCHARSET
5 years ago
nick black
3a79cbf469
proof of concept support. sgr binary
5 years ago
nick black
64462a11ac
for real tho
5 years ago
nick black
208077b95c
enmetric unit tests
5 years ago
nick black
c7c52f21d5
luigi: just use the three frames in a loop
5 years ago
nick black
206db6dedd
sgr unit tests
5 years ago
nick black
624ab35b8f
close bracket in output #121
5 years ago
nick black
e45df10dca
input: handle unicode #121
5 years ago
nick black
6c14a47368
input: pass through decoded utf8 #121
5 years ago
nick black
ad4c8ac58a
luigi: set sprite background so we can elide more
5 years ago
nick black
7eafdd6772
fix up unit testing sanity
5 years ago
Nick Black
0d2c43603b
Luigi in Mega Man world ( #127 )
...
* uniblock-demo: reset background to black
* warning about quantization
* some luigi love
* update cell documentation
* add unit test for move of stdplane
* MoveToLowerRight unit test
* ncplane_move_yx(): error to move stdscr
* better box permutations test
* luigi in megaman2 world
* stats: don't print 'em if we haven't got 'em
5 years ago
nick black
fdc4325929
widecolor: make message its own plane #110
5 years ago
nick black
66fa8854f3
outro effects
5 years ago
nick black
5e5abd7cbd
extract outro
5 years ago
nick black
3a6551ab4d
uniblock-demo: scroll the blocks right-to-left #104
5 years ago
nick black
93231c26eb
input: use SPUA-B for special keys #118
5 years ago
nick black
949e531038
notcurses-input: colorize output
5 years ago
nick black
e77c584815
fadeout: handle background #111
5 years ago
nick black
065d44001c
change demo order
5 years ago
nick black
ea10d80eec
remove duplicate macro define
5 years ago
nick black
0c5c696084
boxdemo: center target grid
5 years ago
Nick Black
38a10d9065
Transparency via alpha channels ( #122 )
...
* outro: bevel message window's corners
* egcspool: use full 25 bits available for 32MB pools
* render: remove unused inheritance mask
* interfaces + unit tests for 2-bit alpha
* notcurses_*g_alpha() acccessors
* cell alpha + unit tests
* panelreel: support a background channel
* notcurses: transparency via alpha channel
* remove unused CELL_ALPHA_MASK
5 years ago
nick black
15c13898ea
don't require civis if retaining cursor
5 years ago
nick black
7566af57e3
introduce ncplane_set_[fb]g
5 years ago
nick black
79253caf31
render: reorder assignment to work around -Wclobbered
5 years ago
nick black
98b323e9a0
demo: only print 'unknown demo' msg when appropriate
5 years ago
nick black
8afcd04446
sync cell/ncplane fg/bg API naming
5 years ago
nick black
78ec605cc6
render: revert cleartoeol, as it leads to flicker
5 years ago
nick black
3d2c2265e0
render: work around wide chars at the far boundary
5 years ago
nick black
3bd43c871d
widecolor: maintain color across resizes
5 years ago
nick black
0392aa34ea
notcurses: get el terminfo capability
5 years ago
nick black
ee4c3d217b
widecolor: detect and inhibit wide spaces
5 years ago
nick black
df93b67b4e
fix up subject of libav test
5 years ago
nick black
6248714cd0
widecolor: oh what fun
5 years ago
nick black
065f8170ef
Merge branch 'master' of github.com:dankamongmen/notcurses
5 years ago
nick black
cb5b0e2968
א guy #110
5 years ago
nick black
bf12ea3c59
panelreel-demo: no general border
5 years ago
nick black
52f5bd1612
widecolors: allow all characters
5 years ago
nick black
638cc5903b
fix up usage message
5 years ago
nick black
541f9304df
widecolor-demo: move snake more quickly #110
5 years ago
nick black
6c5bd5d263
outro: fade background, but not foreground
5 years ago
nick black
3cda04e6ab
panelreel-demo: black background on border
5 years ago
nick black
bacc69380a
uniblock: restore backgrounds
5 years ago
nick black
3c93030177
notcurses_*_default_prep()
5 years ago
nick black
56cad83a4b
widecolor-demo: improve background colors
5 years ago
nick black
64543919ef
preserve default background color during interpolation #115
5 years ago
nick black
774f8e5a23
summary: fix minima trackers
5 years ago
nick black
6e73e3b72f
widecolor-demo: friendly snake 🐍 #110
5 years ago
nick black
be6aa8a3fc
notcurses_render(): guard critical section with pthread_cancel_push()
5 years ago
nick black
7e5e6bc545
slider-demo: force more squarish appearance
5 years ago
nick black
ac845b28a4
handle function keys, insert, end/home, etc #78
5 years ago
nick black
af7ca02f36
Decode input escape sequences to special keys #78
...
Add the necessary input buffer, non-blocking reads, escape trie,
and unit tests to support extended keys, including arrow keys.
Update notcurses-input to print Unicode Control Glyphs instead of
a blank space for control chars.
5 years ago
nick black
cbbc18c3a3
build and destroy input sequence trie #78
5 years ago
nick black
37b0e416c0
get everything prepped for reliable keyboard escapes #78
5 years ago
nick black
04e067c202
Add all handled signals to ppoll() set
...
This addresses an issue where callers of notcurses_getc_blocking()
wouldn't exit on SIGINT etc. until another keystroke was received.
The exit is now immediate, and the proper exit code is propagated.
5 years ago
nick black
6f2c45a0ef
extract input layer into its own file
5 years ago
nick black
29f55049f4
input buffer
5 years ago
Nick Black
c0a1ee0f31
Spruce up slider demo, fix up uniblock demo #66 #72 ( #112 )
...
Slider demo: paint chunks in a pattern, then shuffle them up #72
Right-to-left unit tests #66
Fix up damage to uniblock demo using cup explicit cursor move #66
5 years ago
nick black
f6b422f668
widecolor demo: bottom handle with stats
5 years ago
nick black
c5db91e247
widecolor-demo: fix up summary box
5 years ago
nick black
01a03424f9
box gradients #42
5 years ago
nick black
ae711b7e75
h/vline gradient unit tests #42
5 years ago
nick black
bdc841e46e
ncplane_box: support box mask ctlword #42
5 years ago
nick black
a55e02836b
ncplane_box: accept ctlword ( #42 )
5 years ago
nick black
eb53f420b1
handle resizes gracefully when rendering/fading #105
5 years ago
nick black
c5ecc28ca1
remove resize check from demo core #105
5 years ago
Nick Black
6f9b1e0379
Locking #82 ( #106 )
...
* remove unused simple_gcluster_p()
* detail statistics
* add byte statistics on rendering
* lock around notcurses_render() #82
* lock nc in notcurses_putc() #82
* lock ncplane_styles() and friends #82
5 years ago
nick black
82c5b96f92
remove obsolete assert from panelreels #91
5 years ago
nick black
d8e3cc9675
lol, whoops, don't render twice each call :D
5 years ago
nick black
08d4765dc4
enforce utf-8 encoding via nl_langinfo check #89
5 years ago
nick black
f0e81ea814
widecolors: make everything a bit more visible on small screens
5 years ago
Nick Black
8e8cb92c54
Improved cell API #97 ( #103 )
...
* cell/ncplane: simplify box API (#97 )
* widecolor: use new box api (#97 )
* uniblock: use new box API #97
* intro: use new box api #97
* panelreel: use new box api
* boxdemo: use new box API #97
* sliding: use new box API #97
* maxcolor: use new box api #97
* factor out notcurses_channel_prep() #97
* maxcolor: use new channel API #97
* sliding: use new channel API #97
* intro: use new channel API #97
* new output functions with no need for a cell
* add ncplane_putegc() and ncplane_putsimple(). the former takes an EGC, the latter a simple char less than 0x80. (#97 )
* cell_prime: directly load all parts of a cell with immediates
* widecolor: use new output API #97
* boxdemo: properly initialize cells
* slider: total time cap of 5 * delaydemo
* maxcolor: use new output API #97
5 years ago
nick black
e21594b4e9
ncplane_*_box_cells() -> cells_*_box() #97
5 years ago
nick black
ccbdfcd499
summarize emission/elision rates on exit
5 years ago
nick black
5554b3fccb
persist elision/emission stats, expose them in API
5 years ago
nick black
d09029f7f4
use -std=c11 not -std=gnu11
5 years ago
nick black
f83987711c
silence -Wmaybe-uninitialized through ...whitespace? :/
5 years ago
nick black
35badf8ae7
panelreel: fix some NULL dereferences
...
ncurses getbegy() and friends, as it turns out, check for
a NULL input and return -1. we've been blindly passing
NULL in a few places on the ncurses side--with its own
problems--but that rapidly led to crashes here.
5 years ago
nick black
c70bc7b2a4
slider-demo: work atop a background
5 years ago
nick black
415e238b3d
transparent planes #10
5 years ago
nick black
2aadd096c0
lookin' good atl
5 years ago
nick black
738c590bfd
fix up outro
5 years ago
nick black
be5ce9051d
outro
5 years ago
nick black
957af8151e
view-demo: add video element
5 years ago
nick black
94e52d4acc
respect default mode in fadein #40
5 years ago
nick black
0e4080456c
fade unit tests #40
5 years ago
nick black
966239747c
add ncplane_fadein() #40
5 years ago
nick black
4426ef0574
first go at ncplane_fadeout() #40
5 years ago
nick black
055f49b5fd
sliding-demo: animate moves #72
5 years ago
nick black
570b42b78b
sliders-demo: factor out move_square() #72
5 years ago
Nick Black
9f4fa94209
Use halfblocks to double vertical resolution of media ( #98 )
...
halfblocks vertical, w00t #88
5 years ago
nick black
383895e404
notcurses-view: much more accurate timing
5 years ago
nick black
b882fe4e40
poll() on write() EAGAIN
5 years ago
nick black
1dc254396b
comment back out debugging cruft
5 years ago
nick black
296663717c
uniblock: erase screen each time
5 years ago
nick black
b59d9c633f
video works all the way now :D #94
5 years ago
nick black
56e637d006
motherfucking video #94
5 years ago
nick black
19e1b3ac94
widecolor-demo: fix up right bar of handle
5 years ago
nick black
78e1a06661
view-demo: do both a jpeg and png test
5 years ago
Nick Black
8b0634527d
Correctly copy in shrink + SIGWINCH ( #80 ) ( #93 )
...
* notcurses_resize(): properly set new lenx/leny #80
* ppoll() for SIGWINCH #80
* widecolor-demo: keystroke-driven
5 years ago
Nick Black
0b967ae528
More panelreels work #52 ( #92 )
...
* setup_signals: handle SIGSEGV with restore
* wresize(): fix keep parameter to ncplane_resize() #52
* ncplane_resize: set new lenx/leny on keep #80
* hrmrmm
* ncplane_resize(): fix numerous confusions
* panelreel-demo: don't allow us to go off the left edge
* panelreel: place tablets correctly #52
* panelreel: set background on focused element
5 years ago
Nick Black
426f632300
Panelreels port #52 ( #90 )
...
Port of panelreels, unit tests, and panelreel-demo from outcurses #52 .
Doesn't completely work yet, but is surprisingly close!
5 years ago
nick black
a9f54ed483
add viewdemo #86
5 years ago
nick black
860fb43e3f
ncvisual_render(): respect alpha channel
5 years ago
nick black
3ede80f47f
libav: keep the alpha channel, AV_PIX_FMT_RGBA
5 years ago
nick black
7600b9ed54
libav: come correct #86
5 years ago
nick black
634c54776f
libav: set up oframe beyond scale #86
5 years ago
nick black
3906357e4e
that's an image! #86
5 years ago
nick black
28fac736bb
notcurses-view: stop() before printing error
...
implement ncvisual_render()
5 years ago
nick black
d106ebf0d3
libav: check for AVERROR_EOF #86
5 years ago
nick black
531340a145
libav: return averr to caller #86
5 years ago
nick black
fd79c86880
av: get height/width #86
5 years ago
nick black
40ed1f1896
print_frame_summary(), let's figure out what the fuck we're doing #86
5 years ago
nick black
684d9f66fe
egcpool: fix corruption #59
5 years ago
nick black
3b5aee09a9
widechar-demo: spacing
5 years ago
nick black
8e96c2d78e
ncplane backgrounds: render and use i nsliding-demo #69
5 years ago
nick black
c2f377d599
ncplane_background()/ncplane_set_background() #69
5 years ago
Nick Black
a7d50b557d
ncplane_at_cursor ( #76 ), CCCflag, nonblocking stdin ( #78 ) ( #84 )
...
* put stdin into nonblocking mode, retry on short write to stdout #78
* wrap getc_blocking() around a poll #78
* get CCCflag from terminfo. stop clearing the screen in render/startup
* implement ncplane_at_cursor() #76
* ncplane_at_cursor() unit test for simples #76
* PlaneAtCursorComplex unit test #76
* PlaneAtCursorInsane() unit test #76
* nplane_at_cursor: return number of bytes, not just 0/-1
* uniblock-demo: add a bunch of pages from Unicode 12
* demo: make -d delay multiplier a float
* egcpool: check offset against poolsize in check_validity()
* notcurses_init(): set smkx/rmkx to NULL with pass_through_esc
* PlaneAtCursorAttrs unit test #76
* add ncplane_styles() accessor
5 years ago
nick black
020f712e40
ncplane_create: NULL out userptr on creation
5 years ago
nick black
9fe6c152a9
enhance SetStyles unit test
5 years ago
nick black
5e35e05151
render: don't send unnecessary color change sequences #47
5 years ago
nick black
4cc0ce037d
read terminfo entries for keypad #78
5 years ago
nick black
6a5c21cacd
demo: accept -f, open argument for renderfp
5 years ago
nick black
b3c6f9232a
add renderfp option to render to a file
5 years ago
nick black
8c6d0495ee
input: decode special keys, call notcurses_resize() #79
5 years ago
nick black
e391bfbb81
input: add pass_through_esc option, otherwise run smkx #78
5 years ago
nick black
cb60c11f09
input: factor out handle_getc(), export cell_simple_p() #8
5 years ago
nick black
51a86ece7b
input: print keypresses #8
5 years ago
nick black
c76735cb2a
notcurses_getc(): read from stdin
5 years ago
nick black
a037cdfe5a
add new notcurses-input binary #8
5 years ago
nick black
ad7a517ec8
notcurses_render(): propagate result of write(2)
5 years ago
Nick Black
7f9ac490b0
ncplane_resize(), slider demo ( #64 ) ( #74 )
...
* sliding: bounding box around puzzle
* slider: make moves, deleting planes #61
* implement z-index move functions
* demo: allow demos to be chosen via command-line option
* allow default bg/fg to be explicitly chosen
* ncplane_resize() unit test #64
* useful links
* slider: use random colors
* use find_above() in ncplace_destroy()
* ncplane_resize() work #64
5 years ago
nick black
374403fdeb
sliding: color up pieces
5 years ago
nick black
fe14403f9e
ncplane_double_box_cells(), used in sliding-demo #67
5 years ago
nick black
ad183a6322
shuffle: color and label pieces #67
5 years ago
nick black
e81377cf05
render: slow but simple z-depth algorithm #1
5 years ago
nick black
a1c7bef894
sliding: draw into ncplanes #67
5 years ago
nick black
222c532c77
demo: introduce -d delay param, use everywhere
5 years ago
nick black
c7cf4b1c9b
sliding puzzle demo for planes #26
5 years ago
nick black
0b25c49f9c
render: set styles #11
5 years ago
nick black
f65d168d83
notcurses_render(): call term_setstyles() for sgr stuff #11
5 years ago
nick black
bc662e92bb
notcurses_render(): add term_setstyle() #11
5 years ago
nick black
2dde60c27a
ncplane_destroy(): pull it out of the zbuffer #26
5 years ago
nick black
38ef2148bb
widecolor: throw a box around summary
5 years ago
nick black
d5cc65715e
ncplane userptr routines + unit tests #26
5 years ago
nick black
bd5596cc15
kill obsolete FIXME
5 years ago
nick black
71a127463a
ncplane_create()
5 years ago
nick black
9a41257669
libavutil/libswscale versions in intro
5 years ago
nick black
b1029fc191
av: pass down through libswscale #61
5 years ago
nick black
8dfd050ab7
add ncplane_destroy() #26
5 years ago
nick black
5dfb07183c
libav: throw an swscaler in the mix #61
5 years ago
nick black
f948904f7b
libavutil linkage #61
5 years ago
nick black
45697d54f9
libav: pass AVFrame back through #61
5 years ago
nick black
9ed5a8b6c7
decode AVPacket into AVFrame #61
5 years ago
nick black
cf557ff500
ncurses-view #61
5 years ago
nick black
4b2bf26ee2
ncvisual_destroy() implemented
5 years ago
nick black
dc6ce9ba90
shrink leading box
5 years ago
nick black
7bc58fe603
consistency check assert in egcpool #59
5 years ago
nick black
2080e0bff3
unit tests for exercised egcpool #59
5 years ago
Nick Black
ba648dbd74
What a miserable evening tracking #57 ( #60 )
...
* widecolor-demo: don't emit spaces
* notcurses_init: newline before splash
* boxdemo: ncplane_erase() on entry #58
* uniblock-demo: print even wide chars #49
5 years ago
nick black
ed6ec5e854
unicodeblocks: disable RtL blocks for now
5 years ago
nick black
164d2e1cc0
notcurses_render(): count multicols against running total #57
5 years ago
nick black
ee2e16736c
signal handlers for INT, QUIT, WINCH #27
5 years ago
nick black
f14ee490f2
CMake: visibility=hidden by default #56
5 years ago
nick black
360a3f8600
print versions in startup
5 years ago
nick black
c4fb15524d
ncurses_render(): fflush stdout following writes #46
5 years ago
nick black
a0bb876549
render: if either fg or bg are default, send 'op' first #48
5 years ago
nick black
3bd67740cc
ncplane_putstr(): copy attrword and channels directly #48
5 years ago
nick black
f514fe234c
switch demos to ncplane_rounded_box_cells()
5 years ago
nick black
ccb3c137b3
add ncplane_box_sized() and ncplane_rounded_box_cells()
5 years ago
nick black
98d6f12002
visual_open: round out libav loading #35
5 years ago
nick black
3dee9bba7c
need avframe
5 years ago
nick black
66432c37e1
libav: extract frame from AVFormatContext
5 years ago
nick black
f20e8fde4b
add notcurses_image_open() #23
5 years ago
nick black
f1e7b4a8e5
demo: properly center wave on front page #50
5 years ago
nick black
02a3b25ae0
get 'smso' capability for STANDOUT
5 years ago
nick black
01550af92b
pass number of columns to advance_cursor() #6
5 years ago
nick black
7aaa0fcce1
track wide char as reported by wcwidth(), add unit test #6
5 years ago
nick black
b91d867b29
sleep longer post-block now that we're so fast :) #41
5 years ago
nick black
750518c091
uniblock: only render at end of a block #41
5 years ago
nick black
762689b276
support default colors #31
5 years ago
nick black
37933c6978
uniblock demo: no newline in output #34
5 years ago
nick black
784cbea637
kill obsolete FIXME
5 years ago
nick black
d7ab44363c
uniblocks: a few more blocks, and a hint of green
5 years ago
nick black
73c9fb7767
unicodeblocks-demo: list blocks we want, with descriptions
5 years ago
nick black
c685524229
move wave above text in intro
5 years ago
nick black
f91c80b008
unicodeblocks demo: only print chars where wcwidth() == 1 #34
5 years ago
nick black
6b877f89a9
retain stdscr across a resize #28
5 years ago
nick black
fb07becc16
griddemo: use double-thick box draws for middle grid
5 years ago
nick black
8f840d8f91
demo: turn on box in intro
5 years ago
nick black
816cde0591
ncplane_box: explicitly move for last row
5 years ago
nick black
f67a97edfb
correctly handle ASCII + combining chars, add unit tests #36
5 years ago
nick black
64e998849a
sync widecolor demo stuff to outcurses
5 years ago
nick black
24b3fe7da0
ncplane_box: check dimensions before drawing #37
5 years ago
nick black
190b38dc97
purge widecolor of RtL and LtR direction changes #25
5 years ago
nick black
5220836798
completely reset egcpool in egcpool_dump()
5 years ago
nick black
32a55b2ee3
1 << 24u, not 1 << 23u, stupid
5 years ago
nick black
26c584050c
maxcolor demo: get it working
5 years ago
nick black
2f43da2d16
boxdemo: concentric boxes
5 years ago
nick black
5f053ab220
run maxcolor demo
5 years ago
nick black
894f52ce6c
enter maxcolor demo
5 years ago
nick black
4a402a9843
only 30 blocks, that's quite enough
5 years ago
nick black
9744ca0d4c
egcpool: copy in nonspacing characters of an EGC #32
5 years ago
nick black
095d9035fb
notcurses_options: provide retain_cursor bool #29
5 years ago
nick black
8fcb2923fa
print our stats after restoring terminal
5 years ago
nick black
faa52a22b4
inhibit render printing in media res
5 years ago
nick black
7eb136ae78
render stats #12
5 years ago
nick black
e1034c5612
don't need timer just a clock
5 years ago
nick black
49e33bc6ff
use civis capability to hide cursor #29
5 years ago
nick black
ba495faca9
add timespec utility functions
5 years ago
nick black
c89d8134fa
launch unicodeblocks demo
5 years ago
nick black
8d7a63b853
print boxfilling chars in first demo
5 years ago
nick black
04d11a3521
reorder a bit of widecolor test
5 years ago
nick black
7fcb9d295c
demo: get everything showing up
5 years ago
nick black
e6a009ee3a
erase in griddemo #22
5 years ago
nick black
a90638aa5c
widecolor_demo: get fg/bg working
5 years ago
nick black
979f6828ed
erase in grid demo
5 years ago
nick black
319e9cc25a
widecolor: don't require a plane
5 years ago
nick black
92b5d23185
widecolor: don't require a plane
5 years ago
nick black
3c3c3335fc
always set styling in cell_duplicate #16
5 years ago
nick black
b665592ce1
reenable all demos
5 years ago
nick black
5e61f536e8
gridinverse, gridswitch demos #16
5 years ago
nick black
7173f628ee
griddemo: inverse
5 years ago
nick black
3d5ba40352
grid demo
5 years ago
nick black
414b2694ba
boxdemo: inject some color #9
5 years ago
nick black
ba08a6142e
demo: call boxdemo
5 years ago
nick black
48555507e6
boxdemo
5 years ago
nick black
27e90d9204
cell: implement fg/bgdefault bits
5 years ago
nick black
d400c79870
implement ncplane_box() and unit test #9
5 years ago
nick black
2b467c99af
implement ncplane_vline() + unit test #9
5 years ago
nick black
e050770fde
implement ncplane_hline() + unit test
5 years ago
nick black
0c262a3a6d
implement ncplane_erase() #9
5 years ago
nick black
8ff52f5ebc
laughable implementation of ncplane_vprintf #9
5 years ago
nick black
ca5c37fab9
widepanel: dump content
5 years ago
nick black
e5b426eb55
ncplane: don't putc/getc past plane
5 years ago
nick black
586142057f
egcpool: don't split egc's across ringbuffer bounds
5 years ago
nick black
db842e5305
ncplane: leave cursor at lower right
5 years ago
nick black
1e65adb75a
widecolor: adapt to new ncplane_putc()
5 years ago
nick black
ad321a9516
demo: adapt to new ncplane_putc()
5 years ago
nick black
2b8993a53d
fix up cell_load() #17
5 years ago
nick black
32394dd892
egcpool: preserve incoming EGC on realloc
5 years ago
nick black
a997fb2dc0
reenable widecolor demo from outcurses
5 years ago
nick black
52e83dfcc2
Get UTF8 rendering properly #14
5 years ago
Nick Black
b93bcebf0b
Extended grapheme clusters ( #15 )
...
Introduce egcpool for attached storage
Hook up style support
Switch entirely to UTF-8 char from wchar_t (#14 )
Pull out next EGC in cell_load (#14 )
5 years ago
nick black
9c9f1f4462
demo: getopt(), allow inhibition of alternate screen with -k
5 years ago
nick black
13931aee60
implement ncplane_getc() #9
5 years ago
nick black
f9b88c5079
implement notcurses_palette_size()
5 years ago
nick black
a509cb6320
someone set us up the bomb
5 years ago