Struct libR_sys::_DevDesc

source ·
#[repr(C)]
pub struct _DevDesc {
Show 83 fields pub left: f64, pub right: f64, pub bottom: f64, pub top: f64, pub clipLeft: f64, pub clipRight: f64, pub clipBottom: f64, pub clipTop: f64, pub xCharOffset: f64, pub yCharOffset: f64, pub yLineBias: f64, pub ipr: [f64; 2], pub cra: [f64; 2], pub gamma: f64, pub canClip: Rboolean, pub canChangeGamma: Rboolean, pub canHAdj: c_int, pub startps: f64, pub startcol: c_int, pub startfill: c_int, pub startlty: c_int, pub startfont: c_int, pub startgamma: f64, pub deviceSpecific: *mut c_void, pub displayListOn: Rboolean, pub canGenMouseDown: Rboolean, pub canGenMouseMove: Rboolean, pub canGenMouseUp: Rboolean, pub canGenKeybd: Rboolean, pub canGenIdle: Rboolean, pub gettingEvent: Rboolean, pub activate: Option<unsafe extern "C" fn(arg1: pDevDesc)>, pub circle: Option<unsafe extern "C" fn(x: f64, y: f64, r: f64, gc: pGEcontext, dd: pDevDesc)>, pub clip: Option<unsafe extern "C" fn(x0: f64, x1: f64, y0: f64, y1: f64, dd: pDevDesc)>, pub close: Option<unsafe extern "C" fn(dd: pDevDesc)>, pub deactivate: Option<unsafe extern "C" fn(arg1: pDevDesc)>, pub locator: Option<unsafe extern "C" fn(x: *mut f64, y: *mut f64, dd: pDevDesc) -> Rboolean>, pub line: Option<unsafe extern "C" fn(x1: f64, y1: f64, x2: f64, y2: f64, gc: pGEcontext, dd: pDevDesc)>, pub metricInfo: Option<unsafe extern "C" fn(c: c_int, gc: pGEcontext, ascent: *mut f64, descent: *mut f64, width: *mut f64, dd: pDevDesc)>, pub mode: Option<unsafe extern "C" fn(mode: c_int, dd: pDevDesc)>, pub newPage: Option<unsafe extern "C" fn(gc: pGEcontext, dd: pDevDesc)>, pub polygon: Option<unsafe extern "C" fn(n: c_int, x: *mut f64, y: *mut f64, gc: pGEcontext, dd: pDevDesc)>, pub polyline: Option<unsafe extern "C" fn(n: c_int, x: *mut f64, y: *mut f64, gc: pGEcontext, dd: pDevDesc)>, pub rect: Option<unsafe extern "C" fn(x0: f64, y0: f64, x1: f64, y1: f64, gc: pGEcontext, dd: pDevDesc)>, pub path: Option<unsafe extern "C" fn(x: *mut f64, y: *mut f64, npoly: c_int, nper: *mut c_int, winding: Rboolean, gc: pGEcontext, dd: pDevDesc)>, pub raster: Option<unsafe extern "C" fn(raster: *mut c_uint, w: c_int, h: c_int, x: f64, y: f64, width: f64, height: f64, rot: f64, interpolate: Rboolean, gc: pGEcontext, dd: pDevDesc)>, pub cap: Option<unsafe extern "C" fn(dd: pDevDesc) -> SEXP>, pub size: Option<unsafe extern "C" fn(left: *mut f64, right: *mut f64, bottom: *mut f64, top: *mut f64, dd: pDevDesc)>, pub strWidth: Option<unsafe extern "C" fn(str_: *const c_char, gc: pGEcontext, dd: pDevDesc) -> f64>, pub text: Option<unsafe extern "C" fn(x: f64, y: f64, str_: *const c_char, rot: f64, hadj: f64, gc: pGEcontext, dd: pDevDesc)>, pub onExit: Option<unsafe extern "C" fn(dd: pDevDesc)>, pub getEvent: Option<unsafe extern "C" fn(arg1: SEXP, arg2: *const c_char) -> SEXP>, pub newFrameConfirm: Option<unsafe extern "C" fn(dd: pDevDesc) -> Rboolean>, pub hasTextUTF8: Rboolean, pub textUTF8: Option<unsafe extern "C" fn(x: f64, y: f64, str_: *const c_char, rot: f64, hadj: f64, gc: pGEcontext, dd: pDevDesc)>, pub strWidthUTF8: Option<unsafe extern "C" fn(str_: *const c_char, gc: pGEcontext, dd: pDevDesc) -> f64>, pub wantSymbolUTF8: Rboolean, pub useRotatedTextInContour: Rboolean, pub eventEnv: SEXP, pub eventHelper: Option<unsafe extern "C" fn(dd: pDevDesc, code: c_int)>, pub holdflush: Option<unsafe extern "C" fn(dd: pDevDesc, level: c_int) -> c_int>, pub haveTransparency: c_int, pub haveTransparentBg: c_int, pub haveRaster: c_int, pub haveCapture: c_int, pub haveLocator: c_int, pub setPattern: Option<unsafe extern "C" fn(pattern: SEXP, dd: pDevDesc) -> SEXP>, pub releasePattern: Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>, pub setClipPath: Option<unsafe extern "C" fn(path: SEXP, ref_: SEXP, dd: pDevDesc) -> SEXP>, pub releaseClipPath: Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>, pub setMask: Option<unsafe extern "C" fn(path: SEXP, ref_: SEXP, dd: pDevDesc) -> SEXP>, pub releaseMask: Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>, pub deviceVersion: c_int, pub deviceClip: Rboolean, pub defineGroup: Option<unsafe extern "C" fn(source: SEXP, op: c_int, destination: SEXP, dd: pDevDesc) -> SEXP>, pub useGroup: Option<unsafe extern "C" fn(ref_: SEXP, trans: SEXP, dd: pDevDesc)>, pub releaseGroup: Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>, pub stroke: Option<unsafe extern "C" fn(path: SEXP, gc: pGEcontext, dd: pDevDesc)>, pub fill: Option<unsafe extern "C" fn(path: SEXP, rule: c_int, gc: pGEcontext, dd: pDevDesc)>, pub fillStroke: Option<unsafe extern "C" fn(path: SEXP, rule: c_int, gc: pGEcontext, dd: pDevDesc)>, pub capabilities: Option<unsafe extern "C" fn(cap: SEXP) -> SEXP>, pub glyph: Option<unsafe extern "C" fn(n: c_int, glyphs: *mut c_int, x: *mut f64, y: *mut f64, font: SEXP, size: f64, colour: c_int, rot: f64, dd: pDevDesc)>, pub reserved: [c_char; 64],
}

Fields§

§left: f64

left raster coordinate

§right: f64

right raster coordinate

§bottom: f64

bottom raster coordinate

§top: f64

top raster coordinate

§clipLeft: f64

R only has the notion of a rectangular clipping region

§clipRight: f64§clipBottom: f64§clipTop: f64§xCharOffset: f64

x character addressing offset - unused

§yCharOffset: f64

y character addressing offset

§yLineBias: f64

1/2 interline space as frac of line height

§ipr: [f64; 2]

Inches per raster; [0]=x, [1]=y

§cra: [f64; 2]

Character size in rasters; [0]=x, [1]=y

§gamma: f64

(initial) Device Gamma Correction

§canClip: Rboolean

Device-level clipping

§canChangeGamma: Rboolean

can the gamma factor be modified?

§canHAdj: c_int

Can do at least some horiz adjust of text 0 = none, 1 = {0,0.5,1}, 2 = [0,1]

§startps: f64

Device initial settings / /* These are things that the device must set up when it is created. The graphics system can modify them and track current values,

§startcol: c_int

sets par(“fg”), par(“col”) and gpar(“col”)

§startfill: c_int

sets par(“bg”) and gpar(“fill”)

§startlty: c_int§startfont: c_int§startgamma: f64§deviceSpecific: *mut c_void

pointer to device specific parameters

§displayListOn: Rboolean

toggle for initial display list status

§canGenMouseDown: Rboolean

can the device generate mousedown events

§canGenMouseMove: Rboolean

can the device generate mousemove events

§canGenMouseUp: Rboolean

can the device generate mouseup events

§canGenKeybd: Rboolean

can the device generate keyboard events

§canGenIdle: Rboolean

can the device generate idle events

§gettingEvent: Rboolean

This is set while getGraphicsEvent is actively looking for events

§activate: Option<unsafe extern "C" fn(arg1: pDevDesc)>§circle: Option<unsafe extern "C" fn(x: f64, y: f64, r: f64, gc: pGEcontext, dd: pDevDesc)>§clip: Option<unsafe extern "C" fn(x0: f64, x1: f64, y0: f64, y1: f64, dd: pDevDesc)>§close: Option<unsafe extern "C" fn(dd: pDevDesc)>§deactivate: Option<unsafe extern "C" fn(arg1: pDevDesc)>§locator: Option<unsafe extern "C" fn(x: *mut f64, y: *mut f64, dd: pDevDesc) -> Rboolean>§line: Option<unsafe extern "C" fn(x1: f64, y1: f64, x2: f64, y2: f64, gc: pGEcontext, dd: pDevDesc)>§metricInfo: Option<unsafe extern "C" fn(c: c_int, gc: pGEcontext, ascent: *mut f64, descent: *mut f64, width: *mut f64, dd: pDevDesc)>§mode: Option<unsafe extern "C" fn(mode: c_int, dd: pDevDesc)>§newPage: Option<unsafe extern "C" fn(gc: pGEcontext, dd: pDevDesc)>§polygon: Option<unsafe extern "C" fn(n: c_int, x: *mut f64, y: *mut f64, gc: pGEcontext, dd: pDevDesc)>§polyline: Option<unsafe extern "C" fn(n: c_int, x: *mut f64, y: *mut f64, gc: pGEcontext, dd: pDevDesc)>§rect: Option<unsafe extern "C" fn(x0: f64, y0: f64, x1: f64, y1: f64, gc: pGEcontext, dd: pDevDesc)>§path: Option<unsafe extern "C" fn(x: *mut f64, y: *mut f64, npoly: c_int, nper: *mut c_int, winding: Rboolean, gc: pGEcontext, dd: pDevDesc)>§raster: Option<unsafe extern "C" fn(raster: *mut c_uint, w: c_int, h: c_int, x: f64, y: f64, width: f64, height: f64, rot: f64, interpolate: Rboolean, gc: pGEcontext, dd: pDevDesc)>§cap: Option<unsafe extern "C" fn(dd: pDevDesc) -> SEXP>§size: Option<unsafe extern "C" fn(left: *mut f64, right: *mut f64, bottom: *mut f64, top: *mut f64, dd: pDevDesc)>§strWidth: Option<unsafe extern "C" fn(str_: *const c_char, gc: pGEcontext, dd: pDevDesc) -> f64>§text: Option<unsafe extern "C" fn(x: f64, y: f64, str_: *const c_char, rot: f64, hadj: f64, gc: pGEcontext, dd: pDevDesc)>§onExit: Option<unsafe extern "C" fn(dd: pDevDesc)>§getEvent: Option<unsafe extern "C" fn(arg1: SEXP, arg2: *const c_char) -> SEXP>

device_getEvent is no longer used, but the slot is kept for back compatibility of the structure.

§newFrameConfirm: Option<unsafe extern "C" fn(dd: pDevDesc) -> Rboolean>§hasTextUTF8: Rboolean

and strWidthUTF8

§textUTF8: Option<unsafe extern "C" fn(x: f64, y: f64, str_: *const c_char, rot: f64, hadj: f64, gc: pGEcontext, dd: pDevDesc)>§strWidthUTF8: Option<unsafe extern "C" fn(str_: *const c_char, gc: pGEcontext, dd: pDevDesc) -> f64>§wantSymbolUTF8: Rboolean§useRotatedTextInContour: Rboolean

Is rotated text good enough to be preferable to Hershey in contour labels? Old default was FALSE.

§eventEnv: SEXP

This is an environment holding event handlers.

§eventHelper: Option<unsafe extern "C" fn(dd: pDevDesc, code: c_int)>§holdflush: Option<unsafe extern "C" fn(dd: pDevDesc, level: c_int) -> c_int>§haveTransparency: c_int

1 = no, 2 = yes

§haveTransparentBg: c_int

1 = no, 2 = fully, 3 = semi

§haveRaster: c_int

1 = no, 2 = yes, 3 = except for missing values

§haveCapture: c_int

1 = no, 2 = yes

§haveLocator: c_int

1 = no, 2 = yes

§setPattern: Option<unsafe extern "C" fn(pattern: SEXP, dd: pDevDesc) -> SEXP>§releasePattern: Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>§setClipPath: Option<unsafe extern "C" fn(path: SEXP, ref_: SEXP, dd: pDevDesc) -> SEXP>§releaseClipPath: Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>§setMask: Option<unsafe extern "C" fn(path: SEXP, ref_: SEXP, dd: pDevDesc) -> SEXP>§releaseMask: Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>§deviceVersion: c_int

This should match R_GE_version, BUT it does not have to. It give the graphics engine a chance to work with graphics device packages BEFORE they update to changes in R_GE_version.

§deviceClip: Rboolean

This can be used to OVERRIDE canClip so that graphics engine leaves ALL clipping to the graphics device

§defineGroup: Option<unsafe extern "C" fn(source: SEXP, op: c_int, destination: SEXP, dd: pDevDesc) -> SEXP>§useGroup: Option<unsafe extern "C" fn(ref_: SEXP, trans: SEXP, dd: pDevDesc)>§releaseGroup: Option<unsafe extern "C" fn(ref_: SEXP, dd: pDevDesc)>§stroke: Option<unsafe extern "C" fn(path: SEXP, gc: pGEcontext, dd: pDevDesc)>§fill: Option<unsafe extern "C" fn(path: SEXP, rule: c_int, gc: pGEcontext, dd: pDevDesc)>§fillStroke: Option<unsafe extern "C" fn(path: SEXP, rule: c_int, gc: pGEcontext, dd: pDevDesc)>§capabilities: Option<unsafe extern "C" fn(cap: SEXP) -> SEXP>§glyph: Option<unsafe extern "C" fn(n: c_int, glyphs: *mut c_int, x: *mut f64, y: *mut f64, font: SEXP, size: f64, colour: c_int, rot: f64, dd: pDevDesc)>§reserved: [c_char; 64]

Area for future expansion. By zeroing this, devices are more likely to work if loaded into a later version of R than that they were compiled under.

Trait Implementations§

source§

impl Clone for _DevDesc

source§

fn clone(&self) -> _DevDesc

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
source§

impl Debug for _DevDesc

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
source§

impl Copy for _DevDesc

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.