[comp.sys.next] transparent windows?

glenn@heaven.woodside.ca.us (Glenn Reid) (05/25/90)

Do any of you have any ideas about how to keep a window from painting
its backgroundGray color?  I would like to have a window that lets you
see through to what's behind it, for positioning graphic elements.

I know that it must be possible to keep it from drawing the background,
since (with the PostScript drawing model) it doesn't start out gray.
At worst, I could probably redefine "rectfill" to do nothing, but then
I couldn't use it, either :-)

I couldn't seem to find any reasonable method to override in the View
or Window classes, and before I spent a lot of time fooling with it,
I thought I would ask if anybody else has accomplished this (even if
by accident :-)

Thanks,
 Glenn Reid
 glenn@heaven.woodside.ca.us

grd@cm-next-9.Stanford.EDU (glen diener) (05/26/90)

In article <177@heaven.woodside.ca.us> glenn@heaven.UUCP (Glenn C. Reid) writes:
>
>Do any of you have any ideas about how to keep a window from painting
>its backgroundGray color?  I would like to have a window that lets you
>see through to what's behind it, for positioning graphic elements.
 ...stuff deleted
>Thanks,
> Glenn Reid
> glenn@heaven.woodside.ca.us

I spent a lot of time on this, and concluded that there was no easy way to
do it: windows are opaque, and that's that.  Paul Hegarty from NeXT
also told me that it was impossible given the current window server
architecture.

One thing you can do, however, which will have the same effect (almost)
is to locate the window directly underneath the current window, then composite
it, or at least the part of it which intersects the current window, into the
current window (This lets you do nifty things using the dissolve operator
which you could never do with transparent windows).  I'm sure this is the
way that the screen grabbers in Icon and Scene do their work.  I found that
the compositing machinery was almost, but not quite, fast enough to allow
what we might call ``pseudo-transparent'' windows to appear smooth as they
are dragged around (provided they aren't too big!).

glen diener
grd@cm-next-9.stanford.edu

aozer@next.com (Ali Ozer) (05/31/90)

In article <1990May25.192737.14598@Neon.Stanford.EDU> Glen Diener writes:
>In article <177@heaven.woodside.ca.us> Glenn C. Reid writes:
>>Do any of you have any ideas about how to keep a window from painting
>>its backgroundGray color?
>I spent a lot of time on this, and concluded that there was no easy way to
>do it: windows are opaque, and that's that.  ...
>One thing you can do, however, which will have the same effect (almost)
>is to locate the window directly underneath the current window, then composite
>it, ...

Under certain cases you can use a Nonretained window with autofill
to false; this prevents the exposed areas of the window from being painted.
You can use such a window on screen to copy bits from the screen (by 
compositing).

Ali
Ali_Ozer@NeXT.com