[Rd] Ask for information about device architecture
p.murrell at auckland.ac.nz
Thu Oct 23 22:30:32 MEST 2003
l.bize at wanadoo.fr wrote:
> I'm looking for documentation about the graphic device model in R.
> I would understand it in the details, but it seems a bit complex :)
> Thanks for any documents which will help me.
I'm assuming you want to write a new device ...
Here are a couple of places to look:
The API for graphics devices (such as it is) is in
There's a reasonable amount of documentation in the code; you should
probably ingore the first set of "NOTES" and look at all of the comments
in the NewDevDesc structure, plus the stuff at the end of the file.
provides a "template" for how a device should be implemented. It also
has a reasonable amount of documentation in the code.
Most of the device functions should be fairly straightforward --
depending on what sort of device you want to implement, dev_MetricInfo
can be challenging, but returning 0 for all values is a valid option at
Probably the trickiest part is writing the device initialisation and
making sure that you allocate/deallocate structures in the correct
places -- here the X11 template can be particularly useful.
There are a couple of examples of add-on devices for R, so the source
code for these (particularly the stuff for initialising the device)
might be useful; see the gtkDevice package and the RSvgDevice package
(both on CRAN).
There is a document describing a reorganisation of R's graphics code
(started a couple of years ago, but still ongoing -- see below) at
Some of this is relevant to graphics device structures and includes a
section on what should happen when a device is started and when it is
Note that my current plan is to make some changes to this stuff in the
near future (e.g., the graphical primitive functions dev_line, etc will
be getting a graphical-parameter-structure rather than individual
graphical parameters col, lwd, ...), so if you go ahead with anything,
please keep in touch so that I can let you know when these changes (are
about to) happen.
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
64 9 3737599 x85392
paul at stat.auckland.ac.nz
More information about the R-devel