Lehrstuhl fuer Rechnerorientierte Statistik und Datenanalyse Uni Augsburg  
Institut Forschung Lehre Mitarbeiter News Allgemeines Research Staff Software
xGD

About xGD

printable form

About xGD
What is xGD?
        

xGD is a package for R (see www.r-project.org) providing an eXternal Graphics Device, that is a way of passing R graphics drawing requests to an external application. The current implementation uses TCP/IP to connect to a server application, which can display or otherwise handle the graphics sent by R. You will also find a XGD server written in pure Java and implementing all currently known graphics device capabilities.

What's new?
2004/03/27 First public release of xGD 0.1-1
2004/02/02 All RoSuDA packages are now available via install.packages with contriburl="http://www.rosuda.org/R" parameter.
Download and Release notes
The source package can be installed from the RoSuDA package repository or alternatively by downloading the sources manually:
Package sources: xGD_0.1-1.tar.gz
XGD Java server sources: XGDserver.java

The package requires R 1.9.0, because major changes has been made in the graphics device interface between R 1.8.1 and 1.9.0. The package itself is considered beta and is more likely to be useful for developers than end users.

Known bugs in 0.1-1: Window resizing is not handled automatically yet - "reloadXGD" for the specific device has to be called if manual resize is to take place. Also the current version produces a lot of debugging output.

Documentation, techincal details
The only available documentation at the moment is the help page in R and the commented sources in the package.

The communication over TCP/IP is message-based, i.e. each GE command in R is sent as a message to the application. The parameters correspond 1:1 to the parameters passed by R. All commands and parameter structures are defined in the src/xGDprot.h file. The endianess of int/double values is defined by the client machine (i.e. the one running the xGD package) and is evident from the initial 16-byte packet sent by the client which is defined as follows (int is always 4 bytes long):

int ID = 0x58474431;
int version; /* currently 0x0100 */
int res1,res2; /* reserved 0,0 */
For PPC-endian machines the ID corresponds to the sequence of bytes: 'XGD1', on Intel this corresponds to '1DGX'.

xGD was developed by Simon Urbanek, but anyone interested is welcome to contribute since the package is released under GPL.


[Institut] [Forschung] [Lehre] [Mitarbeiter] [News] [Allgemeines] [Software]