#[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§
Auto Trait Implementations§
impl Freeze for _DevDesc
impl RefUnwindSafe for _DevDesc
impl !Send for _DevDesc
impl !Sync for _DevDesc
impl Unpin for _DevDesc
impl UnwindSafe for _DevDesc
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)