Re: FYI: Mac OS X Desktop
- From: "Michael Rogers" <mrogers cs ucl ac uk>
- To: Wolfgang Sourdeau <wolfgang iNsu com>
- Cc: gnome-devel-list gnome org
- Subject: Re: FYI: Mac OS X Desktop
- Date: Wed, 14 Jun 2000 14:22:54 +0100 (BST)
> 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]