UI: Being Pollitically Correct

Chris Harris chharris@u.washington.edu
Mon, 2 Jan 1995 22:28:59 -0800 (PST)


I came up with a seemingly good idea for low-level UI stuff, which I'll 
descirbe below, and then complain about:

Below the set of UI modules, talked about last time, are the device 
drivers.  These drivers are a set of objects representing the availible 
video hardware.  (Ignoring audio stuffs at the moment, since they're a 
rather different type of device.)  They include support for setting pixels, 
drawing lines and circles, moving pixmaps around in memory, and all that
good stuff.  Its happily set up with a neat inheritance hiarchy, to reduce
code duplication, and all the calls are inlined, so its still fast.

Each UI module then works with one or more screen monitor drivers, 
providing the basic stuff they'd probably all need to use.  For sub-UIs, 
virtual monitor objects would be created, that would be mapped into the 
space of the real video hardware.

(Sorry if this sounds stupid; I need to go to sleep soon.)  This is all 
fine and dandy, but it seems that its a bit biased.  For one thing, its 
rather two-dimensional, so a 3d interface would have an unhappy burden 
mapping a 2d screen onto a flat surface.  (It'd also be silly for one 3d 
interface to enclose another, since the second one could only exist on 
one surface of the first.)

That might be okay, since the screen really isn't 3d in the first place.  
But that's not all the problems....  What if we wanted the UI to be able 
to be run from an X terminal?  (Not an unreasonable idea....)  X provides 
a few more services than those described above, so an X driver would be 
under-used, or the different UIs would have to go out of their ways to 
support such a thing.  (This would get bad if all the availible UIs had 
the same x-supporting code....)

Anyone have any suggestions on how to expand this model to be more 
pollitically correct?  =)

-Chris

"If patterns of 1s and 0s were 'like' patterns of human lives and death,
if everything about an individual could be represented in a computer by a
long string of 1s and 0s, then what kind of creature would be represented
by a long string of lives and deaths?"  --Thomas Pynchon