
Redisplay after a change to an object in a traditional structured graphics environment only affects the modified object and any objects that intersect it on the screen. For user interface components such as Xt widgets, redisplay may involve recomputing the layout of other user interface objects. Fresco unifies structured graphics and user interface components under a common base abstraction, which provides a simple, powerful model but complicates the redisplay problem. As part of the Fresco implementation, we have implemented a general redisplay algorithm that recomputes layout when necessary but minimizes the cost of performing transformations when updating a structured graphics hierarchy. Our implementation can also run redisplay as a separate thread, allowing independent application threads to trigger screen update.