CS 460 Computer Graphics

Window Systems

A Windowing System is responsible for implementing a I/O scheme in a multitasking environment. There are three main issues:

Communication minimization
Three techniques are:
  • Asynchronous communication
  • Bundle commands
  • Move functions to the server

Input handling
Main concern is timing (eg moving a mouse while clicking)
Three techniques are:
  • Polling output devices
  • Request driven (using interrupts to request permission to speak)
  • Event driven (uses timestamps and an event queue, now used by all window systems)

Output handling
How do we handle "expose" events since windows can be thought of as being in a 3D stack?
  1. Put each window in its entirety into main memory
  2. Just put the covered up part into main memory
  3. The server just notifies each client when an event has occurred and it is up to each client to update its display. (Since the window manager is a client, it gets notified also so it can redraw borders, sliders, etc.)

Detailed notes in pdf format

G. Hill Price