#[repr(C)]pub struct ncvgeom {Show 17 fields
pub pixy: c_uint,
pub pixx: c_uint,
pub cdimy: c_uint,
pub cdimx: c_uint,
pub rpixy: c_uint,
pub rpixx: c_uint,
pub rcelly: c_uint,
pub rcellx: c_uint,
pub scaley: c_uint,
pub scalex: c_uint,
pub begy: c_uint,
pub begx: c_uint,
pub leny: c_uint,
pub lenx: c_uint,
pub maxpixely: c_uint,
pub maxpixelx: c_uint,
pub blitter: ncblitter_e,
}Expand description
describes all geometries of an ncvisual: those which are inherent, and those dependent upon a given rendering regime. pixy and pixx are the true internal pixel geometry, taken directly from the load (and updated by ncvisual_resize()). cdimy/cdimx are the cell-pixel geometry at the time of this call (it can change with a font change, in which case all values other than pixy/pixx are invalidated). rpixy/rpixx are the pixel geometry as handed to the blitter, following any scaling. scaley/scalex are the number of input pixels drawn to a single cell; when using NCBLIT_PIXEL, they are equivalent to cdimy/cdimx. rcelly/rcellx are the cell geometry as written by the blitter, following any padding (there is padding whenever rpix{y, x} is not evenly divided by scale{y, x}, and also sometimes for Sixel). maxpixely/maxpixelx are defined only when NCBLIT_PIXEL is used, and specify the largest bitmap that the terminal is willing to accept. blitter is the blitter which will be used, a function of the requested blitter and the blitters actually supported by this environment. if no ncvisual was supplied, only cdimy/cdimx are filled in.
Fields§
§pixy: c_uinttrue pixel geometry of ncvisual data
pixx: c_uinttrue pixel geometry of ncvisual data
cdimy: c_uintterminal cell geometry when this was calculated
cdimx: c_uintterminal cell geometry when this was calculated
rpixy: c_uintrendered pixel geometry (per visual_options)
rpixx: c_uintrendered pixel geometry (per visual_options)
rcelly: c_uintrendered cell geometry (per visual_options)
rcellx: c_uintrendered cell geometry (per visual_options)
scaley: c_uintsource pixels per filled cell
scalex: c_uintsource pixels per filled cell
begy: c_uintupper-left corner of used region
begx: c_uintupper-left corner of used region
leny: c_uintgeometry of used region
lenx: c_uintgeometry of used region
maxpixely: c_uintonly defined for NCBLIT_PIXEL
maxpixelx: c_uintonly defined for NCBLIT_PIXEL
blitter: ncblitter_eblitter that will be used
Implementations§
Trait Implementations§
Source§impl From<ncvgeom> for NcVisualGeometry
impl From<ncvgeom> for NcVisualGeometry
Source§fn from(vg: NcVGeom) -> Self
fn from(vg: NcVGeom) -> Self
Since we don’t know the origin of the NcVGeom struct, when some fields
are 0, we can’t really know whether that’s a valid value or not.
That should be determined manually by other means.
Specifically len_yx, beg_yx & maxpixel_yx wont be None
even if the corresponding NcVGeom fields are 0. But they would be
None if the NcVisualGeometry had been created by the
See: https://github.com/dankamongmen/notcurses/pull/2320#issuecomment-962170075