The vast majority of window server applications exist so as to display graphics on the screen. This is done through windows to which the application draws. The window server shares the screen between all windows, taking into account each window’s region (its (x,y) coordinates) and ordinal position (how close to the front of the stack of windows it is).
All windows have an ordinal position, and a parent whose behaviour is defined by the base window class, RWindowTreeNode
. This abstract provides behaviour for two quite distinct window types:
Displayable windows, whose abstract base class is RWindowBase
. Displayable windows are divided into:
RBlankWindow
blank windows, which can only be given a position, size and colour
RDrawableWindow
drawable windows to which graphics may be drawn.
There are two types of drawable window: the standard RWindow
which must be redrawn when parts of it become invalid because of exposure, and RBackedUpWindow
for which the window server maintains a backup bitmap, and redraws invalid areas without application intervention.
Window group, RWindowGroup
, a pseudo-window which can never be seen on screen, but which has an ordinal position and participates in parent/child and sibling relationships as all other windows.