mirror of
https://github.com/dankamongmen/notcurses
synced 2025-03-09 17:19:03 -04:00
[visual] add OPTION_HORALIGNED #1443
This commit is contained in:
parent
68d4ebebef
commit
2cf0f06562
20
USAGE.md
20
USAGE.md
@ -2886,27 +2886,35 @@ int notcurses_lex_blitter(const char* op, ncblitter_e* blitter);
|
||||
// Get the name of a blitter.
|
||||
const char* notcurses_str_blitter(ncblitter_e blitter);
|
||||
|
||||
#define NCVISUAL_OPTION_NODEGRADE 0x0001ull // fail rather than degrade
|
||||
#define NCVISUAL_OPTION_BLEND 0x0002ull // use CELL_ALPHA_BLEND with visual
|
||||
#define NCVISUAL_OPTION_HORALIGNED 0x0004ull // x is an alignment, not absolute
|
||||
|
||||
struct ncvisual_options {
|
||||
// if no ncplane is provided, one will be created using the exact size
|
||||
// necessary to render the source with perfect fidelity (this might be
|
||||
// smaller or larger than the rendering area). if provided, style is
|
||||
// taken into account, relative to the provided ncplane.
|
||||
// smaller or larger than the rendering area).
|
||||
struct ncplane* n;
|
||||
// the style is ignored if no ncplane is provided (it ought be NCSCALE_NONE
|
||||
// the scaling is ignored if no ncplane is provided (it ought be NCSCALE_NONE
|
||||
// in this case). otherwise, the source is stretched/scaled relative to the
|
||||
// provided ncplane.
|
||||
ncscale_e scaling;
|
||||
// if an ncplane is provided, y and x specify where the visual will be
|
||||
// rendered on that plane. otherwise, they specify where the created ncplane
|
||||
// will be placed.
|
||||
// will be placed relative to the standard plane's origin. x is an ncalign_e
|
||||
// value if NCVISUAL_OPTION_HORALIGNED is provided.
|
||||
int y, x;
|
||||
// the section of the visual that ought be rendered. for the entire visual,
|
||||
// pass an origin of 0, 0 and a size of 0, 0 (or the true height and width).
|
||||
// these numbers are all in terms of ncvisual pixels.
|
||||
// these numbers are all in terms of ncvisual pixels. negative values are
|
||||
// prohibited.
|
||||
int begy, begx; // origin of rendered section
|
||||
int leny, lenx; // size of rendered section
|
||||
// use NCBLIT_DEFAULT if you don't care, an appropriate blitter will be
|
||||
// chosen for your terminal, given your scaling. NCBLIT_PIXEL is never
|
||||
// chosen for NCBLIT_DEFAULT.
|
||||
ncblitter_e blitter; // glyph set to use (maps input to output cells)
|
||||
uint64_t flags; // currently all zero
|
||||
uint64_t flags; // bitmask over NCVISUAL_OPTION_*
|
||||
};
|
||||
|
||||
typedef enum {
|
||||
|
@ -32,6 +32,7 @@ typedef enum {
|
||||
|
||||
#define NCVISUAL_OPTION_NODEGRADE 0x0001
|
||||
#define NCVISUAL_OPTION_BLEND 0x0002
|
||||
#define NCVISUAL_OPTION_HORALIGNED 0x0004
|
||||
|
||||
struct ncvisual_options {
|
||||
struct ncplane* n;
|
||||
|
@ -549,7 +549,7 @@ ncplane* ncvisual_render_pixels(notcurses* nc, ncvisual* ncv, const struct blits
|
||||
}
|
||||
|
||||
ncplane* ncvisual_render(notcurses* nc, ncvisual* ncv, const struct ncvisual_options* vopts){
|
||||
if(vopts && vopts->flags > NCVISUAL_OPTION_BLEND){
|
||||
if(vopts && vopts->flags > NCVISUAL_OPTION_HORALIGNED){
|
||||
logwarn(nc, "Warning: unknown ncvisual options %016jx\n", (uintmax_t)vopts->flags);
|
||||
}
|
||||
int lenx = vopts ? vopts->lenx : 0;
|
||||
|
Loading…
x
Reference in New Issue
Block a user