Here is a selection of issues for consideration by anyone interested in discussing the merits of making more explicit use of the traditional graphics concepts of windows and viewports, and structured display files in windowing systems.
Adopting the traditional graphics distinction between a window and a viewport, the former denotes an area in some source display space and the latter denotes an area in some destination display space. The displayed destination image appears to be clipped to lie within the viewport boundary. Some systems, like the currently issued PERQ PNX windowing system, present a window and viewport as one and the same entity. This can be regarded as a special case of one-to-one window to viewport mapping. Initial hiding of the implicit window to viewport mapping does not necessarily prevent later exposure. This approach has the advantage of simplicity and allows deferral of solving any complexities of the more general case. It has the disadvantage that the user is denied, at least in the short term, several potentially desirable facilities made feasible by fuller manipulation of window to viewport mappings.
Examining some of the possibilities for manipulating window to viewport mappings poses some interesting issues:
Should a manipulation to one window to viewport mapping, which has the effect of changing the visibility of parts of the viewport of another unaltered mapping, be a notifiable event to any applications associated with the affected mappings?
As is well known from traditional graphics, manipulation of a window to viewport mapping permits operations such as:
When deciding how or whether to allow these operations in a window management system, several more issues might be considered.
Given a one-for-one window-pixel to viewport-pixel relationship, it is attractive to consider the source space in bitmap form. One can readily imagine rapid panning and scrolling of a window over a larger display area, without having to recompute the image. Additional measures need not be taken to save information for refreshing the contents of partially obscured viewports when they are later revealed. In practice, optimizations might be made, for instance, to economize on memory utilization by avoiding duplicate copies of unobscured portions of viewports. Given multiple mutually constrained window to viewport mappings, independent images may be combined easily so as to appear in the destination space as if a single image, but with differing areas being potentially under the control of independent applications.
A bitmap image representation has some disadvantages, however. Limitations on physical resources may severely constrain the possible size of a bitmap. Transfer of information among display spaces (cut and paste) is limited to bitmap form which may have undesirable consequences if the resolutions differ. Any structure that may have been used by the application to construct the image is lost so it might be difficult to identify logical components of the image.
Another possibility is to introduce a structured display file. The disadvantage of having only a structured display file is the time taken to regenerate complex images. Perhaps some combination of structured display file and bitmap might be more appropriate than either alone.