Re: FYI: Mac OS X Desktop



 
> Would Alpha transparency be so difficult to implement on client-side ?
> It seems to me that it would be quite easy to implement this with a
> little bit of help from the WindowManager (take a screenshot of that
> portion of screen, mix it with new image object, put resulting image
> on screen).
> Maybe the speed (or slowness) wouldn't be worth it....

Speed might be a problem, but more importantly you need to update the 
alpha-blended window when the windows below it change, which means getting 
exposure events when the windows below the alpha-blended window update their 
contents. So you would need the cooperation of the server as well.

The speed hit would be magnified by the X architecture, which keeps the 
redrawing code for each client in the client process, so when you update one 
of a stack of alpha-blended windows you get a cascade of context switches as 
each client is woken up to redraw its window contents. (Save-unders could help 
here, but they eat memory.)

An architecture designed for alpha transparency would keep as much drawing 
code as possible in the server. Berlin does this, for example. I think MacOS 
X's Quartz layer achieves this by having each window's contents described by a 
series of drawing commands (I think the drawing language is based on PDF?) 
which are stored in the server. That way the server can redraw windows without 
a context switch - you only need to switch to the client when it gets user 
input or wants to change its window's drawing commands.


Michael





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]