Quoting Scott Brumbaugh ([EMAIL PROTECTED]): > Hello, > > I have been playing with XDirectFB and think it is a nice piece of > work. The only feature that I find missing is the ability for an X > client to set the transparency of a top level window. There has been > an ongoing bit of discussion about how to put transparent top-level > windows into X but not much has happened ... until the Xserver was > ported to DirectFB. > > Along these lines, I have created a very simple experimental X > protocol extension that will allow X client programs to get and set > the opacity of their or other's top-level windows through the DirectFB > API. I have tried to make this extension general. It requires that > the Xserver be built on top of a windowing system that supports > transparent top-level windows, such as XDirectFB. I would like to > submit my patch to this project for your evaluation. This patch, > simple as it is, should allow development of X11 window managers that > can control true transparency for top-level client windows. I would > gladly accept feedback from this list about enhancements. > > My patch is based on XFree 4.2.1 and XDirectFB-1.0-rc3. To build > Xdirectfb with this experimental X-Transparency extension, unpack the > X421 sources to a directory and then update the sources to > XDirectFB-1.0-rc3 as directed in the XDirectFB README. Finally, > install the X-Transparency support by changing to the top level of > your new directory tree and apply this patch. > > cd xc > patch -p4 < xc-transparency.diff > > Adjust xc/config/cf/hosts.def for your installation and then make > World. After a successful build you should find a program > demonstrating the use of this extension in xc/programs/xtoggletrans. > You can run xtoggletrans in an xterm and click on a window with the > mouse to change its tranparency. In my testing of this extension, I > have been running XDirectFB in root window mode, I have not been using > the multiplexing core. > > In addition to XTransparencyQueryExtension and > XTransparencyQueryVersion functions, libXTransparency.a provides these > 2 functions to client programs: > > void XSetTransparency(Display *dpy, Window win, OpacityValue value); > > Given value, set the opacity of the top-level window win. > Attempting to set the transparency of a window that is not > top-level is an error and an XErrorEvent will be delivered > asynchronously. Value varies from 0 for invisible, to 255 for > fully opaque. > > Status XGetTransparency(Display *dpy, Window win, OpacityValue *value); > > Retrieve the current opacity for the given top-level window. > Attempting to retrieve the opacity for a window that is > not top-level is an error. > > This is a minimal API and more features can be added once I figure out > what they should be. > > The extension works by requiring an Xserver to provide callbacks to > get and set the transparency of a window. These callbacks are hooked > into the Xprotocol layer at server initialization time. The protocol > layer uses these callbacks to service the client get/set requests. > Hopefully, this scheme is general enough to support other Xservers > that are based on window systems that can also provide transparency.
Hi, I must have forgotten to check this cool patch. I would like to include the patch in XDirectFB, but unfortunately the patch already has seven failing hunks. Do you have a more recent patch? Otherwise I would fix the failing hunks myself. This extension is really a good proof-of-concept. -- Best regards, Denis Oliver Kropp .------------------------------------------. | DirectFB - Hardware accelerated graphics | | http://www.directfb.org/ | "------------------------------------------" Convergence GmbH -- Info: To unsubscribe send a mail to [EMAIL PROTECTED] with "unsubscribe directfb-dev" as subject.
