xGD
About xGD SVN access Download/Files Check results
|
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? |
| 2006/12/08 xGD has moved to RForge.net and thus can be installed using install.packages("xGD",,"http://rforge.net",type="source"). |
| 2004/03/27 First public release of xGD 0.1-1 |
| 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-2.tar.gz
XGD Java server sources: XGDserver.java
The package requires R 1.9.0 or later. The package itself is considered beta and is more likely to be useful for developers than end users. If you want a Java graphics device, use JavaGD instead.
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, technical 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.
|