Path: utzoo!utgpu!news-server.csri.toronto.edu!clyde.concordia.ca!uunet!snorkelwacker!bloom-beacon!EXPO.LCS.MIT.EDU!rws From: rws@EXPO.LCS.MIT.EDU (Bob Scheifler) Newsgroups: comp.windows.x Subject: Re: Invisible windows (Technical Limitations of X?) Message-ID: <9003221837.AA04927@expire.lcs.mit.edu> Date: 22 Mar 90 18:37:46 GMT References: <9003221746.AA00894.chandran@cesium.ASC.SLB.COM> Sender: daemon@athena.mit.edu (Mr Background) Organization: The Internet Lines: 32 "Transparent" windows are a tricky subject, there are many possible interpretations of this term. (The core X protocol provides no support for any of them, I suspect.) NeWS has a special kind of canvas (overlay) that provides one kind of transparent window, but I think that you will find the semantics very contrained. In particular, consider the situation where we have to produce complicated graphics into a window. The desired effect is to have whatever is behind the window show through (no matter where the window is currently positioned). You have switched between these two sentences. There is a difference between doing "overlay" graphics across multiple windows (or requiring that it be done in a separate window) and doing overlay graphics in the same window as the underlying graphics. Overlay graphics can be done within a single window, given certain assumptions. You can examine the color chapters of the some of the X books for examples (e.g. O'Reilly volume 1 chapter 7). There is display hardware that has a notion of "overlay" planes, and of "blending" multiple images on the screen. Several companies have private extensions which integrate this hardware into their X server. There is work going on in the X Consortium to try and standardize such an extension, although it is slow going so far (it is a difficult topic). What is the main purpose of "window_background_pixmap" to be "None"? The main purpose is a minor performance improvement. If the application is simply going to cover the entire window with graphics (i.e. there is no reasonable "background" that can be supplied), then why bother forcing the server to spend time painting the background? That is the primary reason, although the mechanism can be used for other tricks.