From p.murrell at auckland.ac.nz  Wed Dec  2 00:24:48 2009
From: p.murrell at auckland.ac.nz (Paul Murrell)
Date: Wed, 02 Dec 2009 12:24:48 +1300
Subject: [Rd] raster support in graphics devices
In-Reply-To: <de4e29f50912011038v33c3503dmb732dbd0d8ffd456@mail.gmail.com>
References: <4B146EC6.2000502@auckland.ac.nz>
	<de4e29f50912011038v33c3503dmb732dbd0d8ffd456@mail.gmail.com>
Message-ID: <4B15A5C0.4060400@auckland.ac.nz>

Hi


baptiste auguie wrote:
> Very nice, thank you for this great addition to R graphics! I can't
> wait to see lattice and ggplot2 functions that use rasterGrob to
> display images. The pdf output is so much better in every way!
> 
> Incidentally, I ran into a segfault with grid.cap on the quartz
> device, but maybe it's normal at this stage.


This may be due to the fact that I tested the changes on Mac OS X 10.6 
(looks like you have 10.5 ?), plus the fact that I am feeling my way a 
bit on the Mac.  I have access to a 10.4 machine so I will try to take a 
look there.  Thanks for the report.

Paul


> This works fine:
> 
> library(grid)
> x11()
> grid.text("test")
> cap <- grid.cap()
> 
> This doesn't:
> 
> library(grid)
> quartz()
> grid.text("test")
> cap <- grid.cap()
> 
>  *** caught segfault ***
> address 0x18330001, cause 'memory not mapped'
> 
> Traceback:
>  1: .Call(fnname, ..., PACKAGE = "grid")
>  2: grid.Call("L_cap")
>  3: grid.cap()
> 
> Possible actions:
> 1: abort (with core dump, if enabled)
> 2: normal R exit
> 3: exit R without saving workspace
> 4: exit R saving workspace
> 
> [R.app GUI 1.30 (5527) i386-apple-darwin9.8.0]
> 
>> sessionInfo()
> R version 2.11.0 Under development (unstable) (2009-11-30 r50622)
> i386-apple-darwin9.8.0
> 
> locale:
> [1] en_GB.UTF-8/en_GB.UTF-8/C/C/en_GB.UTF-8/en_GB.UTF-8
> 
> attached base packages:
> [1] stats     graphics  grDevices utils     datasets  methods   base
> 
> Best regards,
> 
> baptiste
> 
> 2009/12/1 Paul Murrell <p.murrell at auckland.ac.nz>:
>> Hi
>>
>> This is for developers of extension packages that provide extra *graphics
>> devices* for R.
>>
>> In the *development* version of R, support has been added to the graphics
>> engine for sending raster images (bitmaps) to a graphics device.  This
>> consists mainly of two new device functions:  dev_Raster() and dev_Cap().
>>
>> The R_GE_version constant (in GraphicsEngine.h) has been bumped up to 6 as a
>> marker of this change.
>>
>> This means that, at a minimum, all graphics devices should be updated to
>> provide dummy implementations of these new functions that just say the
>> feature is not yet implemented (see for example the PicTeX and XFig devices
>> in the 'grDevices' package).
>>
>> A full implementation of dev_Raster() should be able to draw a raster image
>> (provided as an array of 32-bit R colors) at any size, possibly (bilinear)
>> interpolated (otherwise nearest-neighbour), at any orientation, and with a
>> per-pixel alpha channel.  Where these are not natively supported by a
>> device, the graphics engine provides some routines for scaling and rotating
>> raster images (see for example the X11 device).  The dev_Cap() function
>> should return a representation of a raster image captured from the current
>> device.  This will only make sense for some devices (see for example the
>> Cairo device in the 'grDevices' package).
>>
>> A little more information and a couple of small examples are provided at
>> http://developer.r-project.org/Raster/raster-RFC.html
>>
>> Paul
>> --
>> Dr Paul Murrell
>> Department of Statistics
>> The University of Auckland
>> Private Bag 92019
>> Auckland
>> New Zealand
>> 64 9 3737599 x85392
>> paul at stat.auckland.ac.nz
>> http://www.stat.auckland.ac.nz/~paul/
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>

-- 
Dr Paul Murrell
Department of Statistics
The University of Auckland
Private Bag 92019
Auckland
New Zealand
64 9 3737599 x85392
paul at stat.auckland.ac.nz
http://www.stat.auckland.ac.nz/~paul/



[Rd] raster support in graphics devices
Paul Murrell