			TWIN: a tiny window system
				2004/8/23
			      Keith Packard
		     HP Cambridge Research Laboratory

1. Introduction

twin is a window system designed for devices with constrained memory, CPU
and display space.

2. Pixel formats

twin supports a limited set of pixel formats; additional formats introduce
significant cost into the system.

	Name	Bits	Content
	A8	8 	8-bit A
	RGB16	16	5-6-5 RGB
	ARGB32	32	8-8-8-8 ARGB

3. Objects

twin unifies onscreen and offscreen data in a single 'pixmap' object.  The
screen is constructed from a list of pixmaps composited together to form the
final image.  Pixmaps contain position, width height and stride
information and stacking information.  A pixmap is "on screen" if it is
included in the list of on-screen pixmaps.

4. Operators

twin is architected with an abstract single operator that performs all of
the basic pixel manipulation.  That operator is:

	dest = source IN mask OP dest

IN is the Porter/Duff operator of the same name, OP is either OVER or
SOURCE.  If necessary, OP may be extended in the future to cover additional
Porter/Duff operators.

In the above operator, Source and mask may be replaced with constant values,
mask may be elided (in which case it is implicitly replaced with a constant
opaque pixel).

5. Screen Generation

The screen image is generated by compositing the list of displayed pixmaps.
Displayed pixmaps may be in any format which contains RGB data.  Underneath
all of the windows the screen is white.

6. Geometric figures

Geometry can be displayed by computing an appropriate A8 pixmap and
compositing the result to a pixmap.

7. Paths

To draw the A8 pixmap mentioned above, use a combination of move, draw
and curve primitives to construct a path and then fill it.  To outline a
path, use the convolution operator to convolve a pen with the path to
construct a closed path surrounding the stroke.
