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.

Reply via email to