2020-03-25 08:06:38 +00:00
|
|
|
This document attempts to list user-visible changes and any major internal
|
2020-04-06 00:13:37 +00:00
|
|
|
rearrangements of Notcurses.
|
2020-03-25 08:06:38 +00:00
|
|
|
|
2020-06-15 01:06:24 +00:00
|
|
|
* 1.5.2 (not yet released)
|
2020-06-17 23:39:37 +00:00
|
|
|
* The `ncneofetch` program has been added, of no great consequence.
|
2020-06-15 01:06:24 +00:00
|
|
|
* A `NULL` value can now be passed as `sbytes` to `ncplane_puttext()`.
|
2020-06-17 23:39:37 +00:00
|
|
|
* `ncdirect_render_image()` has been added, allowing images to be
|
|
|
|
rendered in direct mode.
|
2020-06-18 01:29:44 +00:00
|
|
|
* `ncvisual_geom()` now takes scaling into account.
|
2020-06-15 01:06:24 +00:00
|
|
|
|
2020-06-14 21:17:49 +00:00
|
|
|
* 1.5.1 (2020-07-15)
|
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.
2020-06-12 03:01:10 +00:00
|
|
|
* The semantics of rendering have changed slightly. In 1.5.0 and prior
|
|
|
|
versions, a cell without a glyph was replaced *in toto* by that plane's
|
|
|
|
base cell at rendering time. The replacement is now tripartite: if there
|
|
|
|
is no glyph, the base cell's glyph is used; if there is a default
|
|
|
|
foreground, the base cell's foreground is used; if there is a default
|
|
|
|
background, the base cell's background is used. This will hopefully be
|
|
|
|
more intuitive, and allows a plane to effect overlays of varying colors
|
|
|
|
without needing to override glyphs (#395).
|
2020-06-09 09:00:08 +00:00
|
|
|
* `ncvisual_geom()`'s `ncblitter_e` argument has been replaced with a
|
|
|
|
`const struct ncvisual_options*`, so that `NCVISUAL_OPTIONS_NODEGRADE`
|
|
|
|
can be taken into account (the latter contains a `blitter_e` field).
|
2020-06-12 04:13:01 +00:00
|
|
|
* Added `ncuplot_sample()` and `ncdplot_sample()`, allowing retrieval of
|
|
|
|
sample data from `ncuplot`s and `ncdplot`s, respectively.
|
2020-06-14 02:24:50 +00:00
|
|
|
* Added convenience function `ncplane_home()`, which sets the cursor
|
|
|
|
to the plane's origin (and returns `void`, since it cannot fail).
|
|
|
|
* `ncplane_qrcode()` now accepts an `ncblitter_e`, and two value-result
|
|
|
|
`int*`s `ymax` and `xmax`. The actual size of the drawn code is
|
|
|
|
returned in these parameters.
|
2020-06-09 09:00:08 +00:00
|
|
|
|
2020-06-08 09:26:58 +00:00
|
|
|
* 1.5.0 (2020-07-08)
|
2020-06-07 09:08:46 +00:00
|
|
|
* The various `bool`s of `struct notcurses_options` have been folded into
|
|
|
|
that `struct`'s `flags` field. Each `bool` has its own `NCOPTION_`.
|
2020-06-07 01:38:05 +00:00
|
|
|
* Added a Pixel API for working directly with the contents of `ncvisual`s,
|
|
|
|
including `ncvisual_at_yx()` and `ncvisual_set_yx()`.
|
2020-06-08 07:01:58 +00:00
|
|
|
* Added `ncplane_puttext()` for writing multiline, line-broken text.
|
|
|
|
* Added `ncplane_putnstr()`, `ncplane_putnstr_yx()`, and
|
|
|
|
`ncplane_putnstr_aligned()` for byte-limited output of UTF-8.
|
2020-06-07 01:38:05 +00:00
|
|
|
|
2020-06-05 10:09:17 +00:00
|
|
|
* 1.4.5 (2020-06-04)
|
2020-06-05 07:47:13 +00:00
|
|
|
* `ncblit_rgba()` and `ncblit_bgrx()` have replaced most of their arguments
|
|
|
|
with a `const struct ncvisual_options*`. `NCBLIT_DEFAULT` will use
|
|
|
|
`NCBLITTER_2x1` (with fallback) in this context. The `->n` field must
|
|
|
|
be non-`NULL`--new planes will not be created.
|
2020-06-05 05:30:29 +00:00
|
|
|
* Added `ncplane_notcurses_const()`.
|
2020-06-05 02:47:38 +00:00
|
|
|
|
2020-06-01 20:18:56 +00:00
|
|
|
* 1.4.4.1 (2020-06-01)
|
Fully general ncvisual layer (#647)
This represents an essentially complete rewrite of ncvisual and associated code. It had two major goals:
Improve the ncvisual API based off lessons learned, pursuant to the upcoming API freeze. In particular, I wanted to:
decouple ncvisuals from ncplanes. It should be possible to render a ncvisual to multiple planes, with different scaling each time. It should be possible to create an ncvisual without a plane, etc.
normalize the various ways of constructing an ncvisual -- file, memory, plane, etc.
Support multiple blitters, from 7-bit ASCII to Sixel. This required writing the blitters in several cases, and they're not yet in their final implementations (but the API is fine)
I have not yet unified Plots and Visuals, and might not, given that the Plot code works fine. We could at this point implement Plots in terms of Visuals, though -- the blitter backend range has been unified. Sixel is not yet implemented, though it is listed.
There is a new POC tool, blitter. It renders its arguments using all possible blitter+scaling combinations. Another new POC, resize, displays its argument, then resizes it to the screen size and displays that, explicitly making use of ncvisual_resize() rather than a scaling parameter to ncvisual_render().
This also eliminates some memory leaks and bugs we were seeing in trunk, and brings in Sixel scaffolding.
The C++ wrapper will also need patching back up; I cut most of it down while wrestling with this crap, urk.
Closes #638, #562, and #622.
2020-05-29 01:16:58 +00:00
|
|
|
* Got the `ncvisual` API ready for API freeze: `ncvisual_render()` and
|
|
|
|
`ncvisual_stream()` now take a `struct ncvisual_options`. `ncstyle_e`
|
|
|
|
and a few other parameters have been moved within. Both functions now
|
|
|
|
take a `struct notcurses*`. The `struct ncvisual_options` includes a
|
|
|
|
`ncblitter_e` field, allowing visuals to be mapped to various plotting
|
|
|
|
paradigms including Sixel, Braille and quadrants. Not all backends have
|
|
|
|
been implemented, and not all implementations are in their final form.
|
2020-06-01 06:33:33 +00:00
|
|
|
`CELL_ALPHA_BLEND` can now be used for translucent visuals.
|
Fully general ncvisual layer (#647)
This represents an essentially complete rewrite of ncvisual and associated code. It had two major goals:
Improve the ncvisual API based off lessons learned, pursuant to the upcoming API freeze. In particular, I wanted to:
decouple ncvisuals from ncplanes. It should be possible to render a ncvisual to multiple planes, with different scaling each time. It should be possible to create an ncvisual without a plane, etc.
normalize the various ways of constructing an ncvisual -- file, memory, plane, etc.
Support multiple blitters, from 7-bit ASCII to Sixel. This required writing the blitters in several cases, and they're not yet in their final implementations (but the API is fine)
I have not yet unified Plots and Visuals, and might not, given that the Plot code works fine. We could at this point implement Plots in terms of Visuals, though -- the blitter backend range has been unified. Sixel is not yet implemented, though it is listed.
There is a new POC tool, blitter. It renders its arguments using all possible blitter+scaling combinations. Another new POC, resize, displays its argument, then resizes it to the screen size and displays that, explicitly making use of ncvisual_resize() rather than a scaling parameter to ncvisual_render().
This also eliminates some memory leaks and bugs we were seeing in trunk, and brings in Sixel scaffolding.
The C++ wrapper will also need patching back up; I cut most of it down while wrestling with this crap, urk.
Closes #638, #562, and #622.
2020-05-29 01:16:58 +00:00
|
|
|
* Added `ncvisual_geom()`, providing access to an `ncvisual` size and
|
|
|
|
its pixel-to-cell blitting ratios.
|
|
|
|
* Deprecated functions `ncvisual_open_plane()` and `ncplane_visual_open()`
|
|
|
|
have been removed. Their functionality is present in
|
|
|
|
`ncvisual_from_file()`. The function `ncvisual_plane()` no longer has
|
|
|
|
any meaning, and has been removed.
|
2020-06-01 06:33:33 +00:00
|
|
|
* The `fadecb` typedef now accepts as its third argument a `const struct
|
|
|
|
timespec`. This is the absolute deadline through which the frame ought
|
2020-06-01 07:27:55 +00:00
|
|
|
be displayed. New functions have been added to the Fade API: like the
|
|
|
|
changes to `ncvisual_stream()`, this gives more flexibility, and allows
|
|
|
|
more precise timing. All old functions remain available.
|
Fully general ncvisual layer (#647)
This represents an essentially complete rewrite of ncvisual and associated code. It had two major goals:
Improve the ncvisual API based off lessons learned, pursuant to the upcoming API freeze. In particular, I wanted to:
decouple ncvisuals from ncplanes. It should be possible to render a ncvisual to multiple planes, with different scaling each time. It should be possible to create an ncvisual without a plane, etc.
normalize the various ways of constructing an ncvisual -- file, memory, plane, etc.
Support multiple blitters, from 7-bit ASCII to Sixel. This required writing the blitters in several cases, and they're not yet in their final implementations (but the API is fine)
I have not yet unified Plots and Visuals, and might not, given that the Plot code works fine. We could at this point implement Plots in terms of Visuals, though -- the blitter backend range has been unified. Sixel is not yet implemented, though it is listed.
There is a new POC tool, blitter. It renders its arguments using all possible blitter+scaling combinations. Another new POC, resize, displays its argument, then resizes it to the screen size and displays that, explicitly making use of ncvisual_resize() rather than a scaling parameter to ncvisual_render().
This also eliminates some memory leaks and bugs we were seeing in trunk, and brings in Sixel scaffolding.
The C++ wrapper will also need patching back up; I cut most of it down while wrestling with this crap, urk.
Closes #638, #562, and #622.
2020-05-29 01:16:58 +00:00
|
|
|
|
2020-05-22 13:18:39 +00:00
|
|
|
* 1.4.3 (2020-05-22)
|
2020-05-22 10:53:47 +00:00
|
|
|
* Plot: make 8x1 the default, instead of 1x1.
|
|
|
|
* Add `PREFIXFMT`, `BPREFIXFMT`, and `IPREFIXFMT` macros for `ncmetric()`.
|
|
|
|
In order to properly use `printf(3)`'s field width capability, these
|
|
|
|
macros must be used. This is necessary to support 'µ' (micro).
|
2020-05-22 10:56:02 +00:00
|
|
|
* C++'s NotCurses constructor now passes a `nullptr` directly through to
|
|
|
|
`notcurses_init()`, rather than replacing it with `stdout`.
|
2020-05-22 03:46:25 +00:00
|
|
|
* Added `USE_STATIC` CMake option, defaulting to `ON`. If turned `OFF`,
|
|
|
|
static libraries will not be built.
|
2020-05-22 10:53:47 +00:00
|
|
|
|
|
|
|
* 1.4.2.4 (2020-05-20)
|
2020-05-20 19:32:27 +00:00
|
|
|
* Removed `ncplane_move_above_unsafe()` and `ncplane_move_below_unsafe()`;
|
|
|
|
all z-axis moves are now safe. Z-axis moves are all now O(1), rather
|
|
|
|
than the previous O(N).
|
|
|
|
|
2020-05-17 13:01:53 +00:00
|
|
|
* 1.4.2.3 (2020-05-17)
|
2020-05-11 08:32:54 +00:00
|
|
|
* Added `notcurses_canutf8()`, to verify use of UTF-8 encoding.
|
2020-05-11 16:32:45 +00:00
|
|
|
* Fixed bug in `ncvisual_from_plane()` when invoked on the standard plane.
|
|
|
|
* `ncvisual_from_plane()` now accepts the same four geometric parameters
|
|
|
|
as other plane selectors. To reproduce the old behavior, for `ncv`, call
|
|
|
|
it as `ncvisual_from_plane(ncv, 0, 0, -1, -1)`.
|
|
|
|
* `ncvisual_from_plane()`, `ncplane_move_below_unsafe()`, `ncplane_dup()`,
|
|
|
|
and `ncplane_move_above_unsafe()` now accept `const` arguments where they
|
|
|
|
did not before.
|
2020-05-13 00:10:53 +00:00
|
|
|
* `notcurses_canopen()` has been split into `notcurses_canopen_images()` and
|
|
|
|
`notcurses_canopen_videos()`.
|
2020-05-17 00:06:33 +00:00
|
|
|
* `ncmetric()` now uses multibyte suffixes (particularly for the case of
|
|
|
|
'µ', i.e. micro). This has changed the values of `PREFIXSTRLEN` and
|
|
|
|
friends. So long as you were using `PREFIXSTRLEN`, this should require
|
|
|
|
only a recompile. If you were using `PREFIXSTRLEN` in a formatted output
|
|
|
|
context to count columns, you must change to `PREFIXCOLUMNS` etc.
|
|
|
|
* The `streamcb` type definition now accepts a `const struct timespec*` as
|
|
|
|
its third argument. This is the absolute time viz `CLOCK_MONOTONIC` through
|
|
|
|
which the frame ought be displayed. The callback must now effect delay.
|
2020-05-17 04:01:51 +00:00
|
|
|
* Mouse coordinates are now properly translated for any margins.
|
2020-05-17 06:14:27 +00:00
|
|
|
* `qprefix()` and `bprefix()` now take a `uintmax_t` in place of an
|
|
|
|
`unsigned`, to match `ncprefix`.
|
2020-05-11 08:32:54 +00:00
|
|
|
|
2020-05-11 02:21:01 +00:00
|
|
|
* 1.4.1 (2020-05-11)
|
|
|
|
* No user-visible changes (fixed two unit tests).
|
|
|
|
|
2020-05-11 01:39:02 +00:00
|
|
|
* 1.4.0 (2020-05-10)
|
2020-05-09 00:38:17 +00:00
|
|
|
* `ncplane_content()` was added. It allows all non-null glyphs of a plane to
|
|
|
|
be returned as a nul-terminated, heap-allocated string.
|
|
|
|
* `ncreader` was added. This widget allows freeform input to be edited in a
|
|
|
|
block, and collected into a string.
|
2020-05-09 00:58:00 +00:00
|
|
|
* `selector_options` has been renamed to `ncselector_options`, and
|
|
|
|
`multiselector_options` has been renamed to `ncmultiselector_options`.
|
|
|
|
This matches the other widget option struct's nomenclature.
|
2020-05-09 01:06:00 +00:00
|
|
|
* `ncplane_set_channels()` and `ncplane_set_attr()` have been added to allow
|
|
|
|
`ncplane` attributes to be set directly and in toto.
|
2020-05-09 02:33:39 +00:00
|
|
|
* `NULL` can now be passed as the `FILE*` argument to `notcurses_init()` and
|
|
|
|
`ncdirect_init()`. In this case, a new `FILE*` will be created using
|
|
|
|
`/dev/tty`. If the `FILE*` cannot be created, an error will be returned.
|
2020-05-09 08:45:51 +00:00
|
|
|
* A `flags` field has been added to `notcurses_options`. This will allow new
|
|
|
|
boolean options to be added in the future without resizing the structure.
|
|
|
|
Define `NCOPTION_INHIBIT_SETLOCALE` bit. If it's not set, and the "C" or
|
|
|
|
"POSIX" locale is in use, `notcurses_init()` will invoke
|
|
|
|
`setlocale(LC_ALL, "")`.
|
2020-05-09 12:41:03 +00:00
|
|
|
* All widgets now take an `ncplane*` as their first argument (some took
|
|
|
|
`notcurses*` before). All widgets' `options` structs now have an `unsigned
|
|
|
|
flags` bitfield. This future-proofs the widget API, to a degree.
|
2020-05-09 00:38:17 +00:00
|
|
|
|
2020-05-07 05:38:35 +00:00
|
|
|
* 1.3.4 (2020-05-07)
|
2020-04-29 09:44:22 +00:00
|
|
|
* `notcurses_lex_margins()` has been added to lex margins expressed in either
|
2020-05-04 15:05:52 +00:00
|
|
|
of two canonical formats. Hopefully this will lead to more programs
|
|
|
|
supporting margins.
|
2020-05-04 08:55:10 +00:00
|
|
|
* `ncvisual_open_plane()` has been renamed `ncvisual_from_file()`. The former
|
2020-05-04 15:05:52 +00:00
|
|
|
has been retained as a deprecated alias. It will be removed by 1.6/2.0.
|
|
|
|
* `ncvisual_from_rgba()` and `ncvisual_from_bgra()` have been added to
|
|
|
|
support creation of `ncvisual`s from memory, requiring no file.
|
2020-05-06 09:49:22 +00:00
|
|
|
* `ncvisual_rotate()` has been added, supporting rotations of arbitrary
|
|
|
|
radians on `ncvisual` objects.
|
2020-05-04 15:05:52 +00:00
|
|
|
* `ncvisual_from_plane()` has been added to support "promotion" of an
|
|
|
|
`ncplane` to an `ncvisual`. The source plane may contain only spaces,
|
2020-05-07 01:40:24 +00:00
|
|
|
half blocks, and full blocks. This builds atop the new function
|
|
|
|
`ncplane_rgba()`, which makes an RGBA flat array from an `ncplane`.
|
2020-05-07 02:21:22 +00:00
|
|
|
* The `ncplane` argument to `ncplane_at_yx()` is now `const`.
|
2020-04-29 09:44:22 +00:00
|
|
|
|
2020-04-27 01:25:23 +00:00
|
|
|
* 1.3.3 (2020-04-26)
|
2020-04-23 07:52:07 +00:00
|
|
|
* The `ncdplot` type has been added for plots based on `double`s rather than
|
|
|
|
`uint64_t`s. The `ncplot` type and all `ncplot_*` functions were renamed
|
|
|
|
`ncuplot` for symmetry.
|
2020-04-24 05:26:29 +00:00
|
|
|
* FFMpeg types are no longer leaked through the Notcurses API. `AVERROR`
|
|
|
|
is no longer applicable, and `ncvisual_decode()` no longer returns a
|
|
|
|
`struct AVframe*`. Instead, the `nc_err_e` enumeration has been introduced.
|
|
|
|
Functions which once accepted a value-result `AVERROR` now accept a value-
|
|
|
|
result `nc_err_e`. The relevant constants can be found in
|
|
|
|
`notcurses/ncerrs.h`.
|
2020-04-27 01:25:23 +00:00
|
|
|
* OpenImageIO 2.1+ is now supported as an experimental multimedia backend.
|
|
|
|
FFmpeg remains recommended. Video support with OIIO is spotty thus far.
|
2020-04-24 05:26:29 +00:00
|
|
|
* CMake no longer uses the `USE_FFMPEG` option. Instead, the `USE_MULTIMEDIA`
|
|
|
|
option can be defined as `ffmpeg`, `oiio`, or `none`. In `cmake-gui`, this
|
2020-04-25 19:52:23 +00:00
|
|
|
item will now appear as an option selector. `oiio` selects OpenImageIO.
|
2020-04-23 07:52:07 +00:00
|
|
|
|
2020-04-19 06:24:03 +00:00
|
|
|
* 1.3.2 (2020-04-19)
|
2020-04-18 11:11:33 +00:00
|
|
|
* `ncdirect_cursor_push()`, `notcurses_cursor_pop()`, and
|
|
|
|
`ncdirect_cursor_yx()` have been added. These are not supported on all
|
|
|
|
terminals. `ncdirect_cursor_yx()` ought be considered experimental; it
|
|
|
|
must read a response from the terminal, and this can interact poorly with
|
|
|
|
other uses of standard input.
|
2020-04-18 19:28:26 +00:00
|
|
|
* 1.3.1 unintentionally inverted the C++ `Notcurses::render()` wrapper's
|
|
|
|
return code. The previous semantics have been restored.
|
2020-04-18 11:11:33 +00:00
|
|
|
|
2020-04-18 04:35:15 +00:00
|
|
|
* 1.3.1 (2020-04-18)
|
2020-04-18 04:09:14 +00:00
|
|
|
* `ncplane_at_yx()` and `ncplane_at_cursor()` have been changed to return a
|
|
|
|
heap-allocated EGC, and write the attributes and channels to value-result
|
|
|
|
`uint32_t*` and `uint64_t*` parameters, instead of to a `cell*`. This
|
|
|
|
matches `notcurses_at_yx()`, and means they're no longer invalidated if the
|
|
|
|
plane in question is destroyed. The previous functionality is available as
|
|
|
|
new functions `ncplane_at_yx_cell()` and `ncplane_at_cursor_cell()`.
|
|
|
|
* `ncplane_set_base()` inverted its `uint32_t attrword` and `uint64_t channels`
|
|
|
|
parameters, thus matching every other function with these two parameters.
|
|
|
|
It moved `const char* egc` before either, to force a type error, as the
|
|
|
|
change would otherwise be likely to go overlooked.
|
2020-04-18 04:35:15 +00:00
|
|
|
* Scrolling is now completely implemented. When a plane has scrolling enabled
|
|
|
|
through use of `ncplane_set_scrolling(true)`, output past the end of the
|
|
|
|
last line will now result in the top line of the plane being lost, all
|
|
|
|
other lines moved up one, and the bottom line cleared.
|
2020-04-18 04:09:14 +00:00
|
|
|
|
|
|
|
* 1.3.0 (2020-04-12)
|
|
|
|
* No user-visible changes
|
|
|
|
|
|
|
|
* 1.2.9 (2020-04-11)
|
|
|
|
* No user-visible changes
|
|
|
|
|
|
|
|
* 1.2.8 (2020-04-10)
|
2020-04-11 16:39:31 +00:00
|
|
|
* `notcurses-tetris` now happily continues if it can't load its background.
|
|
|
|
|
2020-04-18 04:09:14 +00:00
|
|
|
* 1.2.7 (2020-04-10)
|
2020-04-10 15:22:26 +00:00
|
|
|
* Plots now always keep the most recent data to their far right (i.e., the
|
|
|
|
gap that is initially filled is on the left, rather than the right).
|
|
|
|
|
2020-04-18 04:09:14 +00:00
|
|
|
* 1.2.6 (2020-04-08)
|
2020-04-08 09:39:41 +00:00
|
|
|
* `ncplane_putsimple_yx()` and `ncplane_putstr_yx()` have been exported as
|
|
|
|
static inline functions.
|
2020-04-06 05:15:20 +00:00
|
|
|
* `ncplane_set_scrolling()` has been added, allowing control over whether a
|
2020-04-06 03:51:40 +00:00
|
|
|
plane scrolls. All planes, including the standard plane, do not scroll by
|
|
|
|
default. If scrolling is enabled, text output via the `*put*` family of
|
|
|
|
functions continues onto the next line when encountering the end of a row.
|
|
|
|
This does not apply to e.g. boxes or lines.
|
2020-04-06 05:15:20 +00:00
|
|
|
* `ncplane_putstr_yx()` now always returns the inverse of the number of
|
|
|
|
columns advanced on an error (it used to return the positive short count so
|
|
|
|
long as the error was due to plane geometry, not bad input).
|
2020-04-06 07:39:48 +00:00
|
|
|
* `ncplot_add_sample()` and `ncplot_set_sample()` have been changed to accept
|
|
|
|
a `uint64_t` rather than `int64_t`, since negative samples do not
|
|
|
|
currently make sense. Plots were made more accurate in general.
|
2020-04-08 09:39:41 +00:00
|
|
|
* `notcurses_term_dim_yx()` now accepts a `const struct notcurses*`.
|
|
|
|
* `notcurses_resize()` is no longer exported. It was never necessary to call
|
|
|
|
this in response to a resize, despite confusing documentation that could
|
|
|
|
have been read to suggest otherwise. If you're in a long block on input, and
|
|
|
|
get an `NCKEY_RESIZE`, just call `notcurses_refresh()` (which now calls
|
|
|
|
`notcurses_resize()` internally, as `notcurses_render()` always has).
|
2020-04-10 15:22:26 +00:00
|
|
|
* First Fedora packaging.
|
2020-04-06 00:13:37 +00:00
|
|
|
|
2020-04-18 04:09:14 +00:00
|
|
|
* 1.2.5 (2020-04-05)
|
2020-04-06 00:13:37 +00:00
|
|
|
* Add ncplot, with support for sliding-windowed horizontal histograms.
|
2020-04-06 05:15:20 +00:00
|
|
|
* gradient, polyfill, `ncplane_format()` and `ncplane_stain()` all now return
|
|
|
|
the number of cells written on success. Failure still sees -1 returned.
|
2020-04-06 00:13:37 +00:00
|
|
|
* `ncvisual_render()` now returns the number of cells emitted on success, as
|
2020-03-25 08:06:38 +00:00
|
|
|
opposed to 0. Failure still sees -1 returned.
|
2020-04-06 00:13:37 +00:00
|
|
|
* `ncvisual_render()` now interprets length parameters of -1 to mean "to the
|
2020-04-06 05:15:20 +00:00
|
|
|
end along this axis", and no longer interprets 0 to mean this. 0 now means
|
2020-03-25 08:06:38 +00:00
|
|
|
"a length of 0", resulting in a zero-area rendering.
|
2020-04-06 00:13:37 +00:00
|
|
|
* `notcurses_at_yx()` no longer accepts a `cell*` as its last parameter.
|
2020-04-06 05:15:20 +00:00
|
|
|
Instead, it accepts a `uint32_t*` and a `uint64_t*`, and writes the
|
|
|
|
attribute and channels to these parameters. This was done because the
|
|
|
|
`gcluster` field of the `cell*` was always set to 0, which was surprising
|
|
|
|
and a source of blunders. The EGC is returned via the `char*` return
|
|
|
|
value. https://github.com/dankamongmen/notcurses/issues/410
|
2020-03-25 08:06:38 +00:00
|
|
|
|
2020-04-18 04:09:14 +00:00
|
|
|
* 1.2.4 (2020-03-24)
|
2020-04-06 00:13:37 +00:00
|
|
|
* Add ncmultiselector
|
|
|
|
* Add `ncdirect_cursor_enable()` and `ncdirect_cursor_disable()`.
|