Commit Graph

230 Commits (0baf4ea1b5d404df30d1cd3f5a1c67770717dd45)

Author SHA1 Message Date
nick black 0fc5f7835d
[docs] cell_release -> nccell_release 3 years ago
Nick Black 04b1ba8ed2
Dankamongmen/unify geom (#1514)
deprecate ncvisual_geom() in favor of new ncvisual_blitter_geom(), which allows caller to get the blitter used. replace the checks and calculations in ncvisual_render() with a call to ncvisual_blitter_geom(), unifying the two paths (and eliminating several bugs in the unloved ncvisual_geom()).
3 years ago
nick black 1f33ada62e
[cffi] update for ncplane_as_rgba() 3 years ago
nick black f294c6bb0b
add ncplane_pixelgeom() #1507 3 years ago
nick black 05082fc277
ncplane_as_rgba(), returns pixel geometry along with bitmap #1508 3 years ago
nick black 3b169dfa31
[notcurses.h] improve ncvisual_from_rgba() docs #1488 3 years ago
nick black 8e61429789
[notcurses.h] remove bogus restriction for ncvisual_render #1488 3 years ago
nick black b92991e57b
[visual] allow NCBLIT_PIXEL in ascii mode 3 years ago
nick black c87992c452
[ncvisual] fix NCVISUAL_OPTION_VERALIGNED definition 3 years ago
nick black 50df69ab31 [planes] implement MARGINALIZED in ncplane_create() #1472 3 years ago
nick black 78c8e70933 [planes] add NCPLANE_OPTION_MARGINALIZED #1472 3 years ago
nick black 86de98c5d2 Fix cell blit / plane vertical alignment
Deprecate ncplane_align(), after rewriting it as a passthrough
to new function ncplane_halign(). Add ncplane_valign(). Update
all callers. Closes #1468.
3 years ago
nick black 6105913d06 [planes] add NCPLANE_OPTION_VERALIGNED #1465 3 years ago
nick black 828cce634a [capabilites] remove redundant notcurses_canpixel() 3 years ago
MasFlam c677a4fd8a
Add the nctabbed widget (#1431)
Tabs for the people!

fixes #986
3 years ago
nick black 2cf0f06562 [visual] add OPTION_HORALIGNED #1443 3 years ago
nick black 33d408b4a3
[sixel] call sprite_sixel_init at proper time #1436 3 years ago
nick black 70059297c0
notcurses_direct.3: add image render+raster to docs 3 years ago
nick black 04ad933a4b
ncplayer: don't try to drive four/eight #1406 3 years ago
nick black 268a720225
Keep hardcursurpos bool across rasterizations
Move hardcursorpos into the renderstate carried
across rasterizations. This eliminates undesirable vertical
movement following pixel image emission #1400.
3 years ago
nick black 5b4d920646 pixel documentation 3 years ago
nick black 6c7c9be6d2 require explicit check for pixel support
Add `notcurses_check_pixel_support()` and
`ncdirect_check_pixel_support()` per #1367. Removes
NCOPTION_VERIFY_SIXEL, again per #1367. Adds
`free_terminfo_cache()`, and calls it from both
`notcurses_stop_minimal()` and `ncdirect_stop()`.
Update all documentation. Closes #1371 and #1367.
3 years ago
nick black 40746e76e6 s/nonehi/hires/g 3 years ago
nick black 7724f6301e s/notcurses_cansixel/notcurses_canpixel/g #200 3 years ago
nick black 901ccc2d28 rust/python: ncblit_sixel -> ncblit_pixel 3 years ago
nick black 036d0a8697 s/NCBLIT_SIXEL/NCBLIT_PIXEL/g #1095 3 years ago
nick black 925870bd7a
update some definitions in USAGE.md 3 years ago
nick black 1df9d85f28
Lock accesses to notcurses_stats #1139
notcurses_stats() and notcurses_stats_reset() now take the
new statlock member, as do stat modifications from render,
raster, writeout, resize, plane creation, and plane
destruction. Add nonnull attributes to stats API. Initialize
and destroy statlock as part of notcurses struct. Update
documentation. Free pilelock on error paths. Closes #1139.
3 years ago
nick black 7a698310b6 ncinput is not opaque 3 years ago
nick black 1b1e0b88be
ncplane_qrcode: drop blitter argument, update docs 3 years ago
nick black 6b126f4049
add notcurses_canbraille() capability test 3 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.
3 years ago
nick black 43dd0440f7
add raster timing stats #1324 3 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!
3 years ago
nick black 45c389a709 document *_core_init() #1301 3 years ago
Nick Black 9112185657
Split up notcurses/notcurses-core (#1297)
Extract `libnotcurses-core` from `libnotcurses`. The former contains everything except multimedia code. The latter contains multimedia stuff (a wrapper around FFmpeg or OIIO). If built with `-DUSE_MULTIMEDIA=none`, there will not be any `libnotcurses.so` generated. `libnotcurses.so` uses library constructors/destructors to insert its implementation into the `ncvisual` stack at runtime. Users linking `-lnotcurses` will get the full implementation; users linking `-lnotcurses-core` only will get the stack less multimedia code.

The upshot of this is that someone can compile/install only `libnotcurses-core`, and a program linked against it will work just fine. This eliminates the need to install the full (large) dependency stack of the multimedia code unless necessary. This will hopefully be useful for e.g. installers etc. Closes #339.
3 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 1c0a623b8b
document new function ncplane_abs_yx() #1286 4 years ago
nick black 15386d57ce
nontrivial stacking unit test #1068 4 years ago
nick black 7e05d0438a
notcurses_init.3: fix up some syntax 4 years ago
nick black 18958e98cd update nccell def in docs 4 years ago
nick black 0c38728ceb Remove CELL_WIDEASIAN_MASK from docs #1277 4 years ago
nick black af07822d35 Document base cell better
Improve the documentation for ncplane_set_base_cell() and
ncplane_set_base(). Go by render.c's authority (all three
channels are independently checked for transparency, and
replaced with the base cell if so--egc, fg, and bg). Add a
BASE CELL section to notcurses_plane.3. Check for, and reject,
an nccell which is secondary among a multicolumn EGC.

Closes #1238.
4 years ago
nick black 58bc9bd3bc
fix up writeout stats, report in shutdown banner 4 years ago
nick black 248dd1fff2
add dynamic linesig control #1228 4 years ago
nick black d56ea8b5e7 progbar: remove egcs options 4 years ago
nick black 1d74979718 progbar core / poc #1202 4 years ago
nick black 6bff720122 initial API + documentation for ncprogbar #1202 4 years ago
nick black 33862979da
scan-build: remove dead stores 4 years ago
nick black fd2acde1b1 rename cell->nccell, keep alias #1200 4 years ago
nick black e60a7aa463
add stat for notcurses_refresh() 4 years ago
nick black 14fa544433
add NCPLOT_OPTION_PRINTSAMPLE #1183 4 years ago
nick black 6fb5c1e512 Fill out some API holes, improve some comments
- Disambiguate the docs for ncplane_erase()
- Add ncpile_top(), ncpile_bottom()
- Refuse attempts to modify the standard plane's resizecb
- Copy alignment and resizecb in ncplane_dup()
- Add cell_load_egc32()
4 years ago
nick black 53e905bb57 USAGE: fix up cell_{on, off}_styles as spotted by grendello 4 years ago
nick black b7ea4e2359
run sgr-full and sgr-direct in test suite #1138 4 years ago
nick black 202e3535d5 document new NCSTYLE_STRUCK #1138 4 years ago
nick black b33c780c88 document ncpile_render(), ncpile_rasterize() 4 years ago
nick black b6e5b60374 ncpile_create() not NCPLANE_OPTION_NEWPILE #1078 4 years ago
nick black b747af2ae8 drop NCPLANE_OPTION_NEWPILE #1078 4 years ago
nick black 0da6a8c44b add NCPLANE_OPTION_NEWPILE #1078 4 years ago
nick black c0cb5c7ff9
add ncplane_resizecb() #1124 4 years ago
nick black 6084105c68
add ncplane_set_resizecb() #1124 4 years ago
nick black 1e6f8e4901 USAGE/python/man: update ncplane_options #1115 4 years ago
nick black 51d01b22c8
who knows how this happened 4 years ago
nick black 259b2b6012
make it clear that sixel is not yet supported 4 years ago
joseLuís 219bc34128 fix typo 4 years ago
joseLuís 00b5445418 fix typos 4 years ago
nick black 5647864745 update USAGE for new-skool blitter defs 4 years ago
nick black b35c680f48 add LoopVideo unit test #1066 4 years ago
nick black 8919d6fe70 ncvisual_rewind 4 years ago
nick black 0b825c619e
add notcurses_stddim_yx_const() 4 years ago
nick black a44090a7f7
s/notcurses/Notcurses/g 4 years ago
nick black d101d2d2d9 add ncdirect_init() inhibit cbreak flag #1049 4 years ago
nick black c6c157a5ad
notcurses_stats_alloc() everywhere 4 years ago
nick black f9e2c7863b
add notcurses_stats_alloc #1043 4 years ago
nick black 270b1b20ee implement notcurses_render_to_buffer() #214 4 years ago
nick black b4f1065f69 declare notcurses_render_to_buffer() #214 4 years ago
nick black 222861de13 add ncstats to USAGE.md 4 years ago
nick black afa65f640f update notcurses_plane.3 and USAGE.md for new styles API 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 7b51bab79a add resizecb to ncplane_options struct #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 a4367fcfb5 rip out ncplane_ creation functions #985 4 years ago
nick black e42dbdfd60 _stainable() -> _stained() #985 4 years ago
nick black 0e34bec3fb start converting rgb->rgb8 #985 4 years ago
nick black c3e5e47a2a
ncreader: conform to the New Way #627 4 years ago
nick black 108548e9dc ncmultiselector: add some checks to USAGE.md 4 years ago
nick black 306948507f ncmultiselect: normalize per new widget API #627 #1006 4 years ago
nick black 692e0ce87f USAGE: update selector example 4 years ago
nick black 2f28420034 rename ncplane_putsimple() -> ncplane_putchar() #912 4 years ago
nick black 4c7a1d0427 ncdirect_init: add flags parameter #976 4 years ago
nick black e1863317a3
CMake: conform to cmake capitalization conventions 4 years ago
nick black a48e840542 document ncreel a bit more 4 years ago
nick black a413fb8bc9 notcurses->Notcurses for CMake module 4 years ago
nick black afbb0ac7d4 correct CMake module name 4 years ago
nick black 66f80c77f9
add ncplane_y() and ncplane_x() 4 years ago
nick black 9d75f575db
ncplane_set_[fb]channels 4 years ago
nick black 70a28feb63
ncreader: horizontal scrolling mostly works #839 4 years ago