To be able to display individual application windows onto the SAGE display wall. The most effective method of achieving this objective is to rewrite the application to be aware of the SAGE display and write to its graphical output directly. With many interesting and commercial applications, such as MATLAB, a rewrite is not possible without the cooperation of the respective authors/companies.
There are two strategies that can be used to get around the issue of
not having the source code of third-party applications. The current
application uses the simpler method of grabbing output from the local
display and sends it to the SAGE display wall. This method has its own
advantages and disadvantages. For example, when more than one window(of
size > (1/4)DesktopSize) is to be streamed it is recommended to
stream the entire desktop. Doing so will reduce the load on the
local(capture) machine and also the network. The simpler method can be
extended in certain cases to stream application windows that are
obscured behind others on the local display. The complex method
involves tricking the application into believing that size of
the X display it can use is the same size as the SAGE display wall. If
you wish to implement this please do contact us.
WallStream
This application can stream application windows from the local X display to a SAGE display wall. When available it can use shared memory to make the capture slightly faster. Usage is very simple:
- User runs wallstream
- User selects a window to stream by clicking on it with the left mouse button
Source code of the current development version can be downloaded
here: WallStream-0.1
Notes/issues
- You will need a local network faster than 100Mbps. This requirement may be eased in future releases, though it seems unlikely.
- If the streaming is slow, most likely your graphics card is the bottleneck. GPUs like to be "write-only" devices; the AGP bus is asymmetric with a bias towards writing to the GPU. PCIe GPUs have gotten away with this, but note that there is lot of data being moved around(currently alpha channel is also captured!)
- Future releases will use multithreading to reduce the delay between capture and streaming.
