Scaled Window Support in DMX : Previous Work
Previous: Introduction
Next: Possible Solutions

## 2. Previous Work

This section reviews relevant previous work.

### 2.1. VNC

#### 2.1.1. Scaling under VNC

When using the `vncviewer` program for Windows, it is possible to specify a scaling factor (as numerator and denominator). When scaling is in effect, the viewer software uses StretchBlt (instead of BitBlt) to display the pixels for the user. When this call is made, the viewer already has received all of the pixel information (at full unscaled resolution).

The scaling in VNC is primitive. It does not conserve bandwidth, it does not treat textual information differently (i.e., by using a suitably scaled font), and it does not provide any anti-aliasing other than that provided by the underlying (Windows-only) system library.

### 2.2. The X Video Extension

The X Video Extension is a widely-available extension to the X11 protocol that provides support for streaming video. Integral to this support is the ability to arbitrarily scale the output. In version 2.2 of the X Video specification, support for scaled still images was provided, using both shared memory and traditional transport. The API for this support uses calls that are quite similar to XCreateWindow, XPutImage, and XShmPutImage. Currently, most of the drivers implemented in XFree86 only support data in various YUV formats. However, several modern video adaptors support RGB as well.

Note, though, that the target output for this scaling is an overlay plane -- so X Video provides functionality that is fundamentally different from that provided by the Windows StrechBlt call.

Scaled Window Support in DMX : Previous Work
Previous: Introduction
Next: Possible Solutions