[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-devel
Subject:    Re: Kde3 suggestion -- alpha channel use
From:       Hamish Rodda <meddie () yoyo ! cc ! monash ! edu ! au>
Date:       2001-10-16 15:55:27
[Download RAW message or body]

Hi all,

I have done a little code-reading (and unsuccessful hacking) recently on this 
topic, as I was interested in seeing these effects too...

On Tue, 16 Oct 2001, Roy Katz wrote:

>I thought that the alpha blending provided by the RENDER extension (and
>what QT 3.0 relies on?) does not support real-time translucency in the
>sense that X does not notify obscured windows to repaint, even if the
>obscuring window is translucent.

From what I have read, this is true - the render extension only works in the 
context of an X client's window.

>So... is it possible all of a sudden to have true, really really real-time
>translucency?

Unfortunately the answer seems to be no, for the time being. The critical 
document on this topic appears to be this one, written by Keith Packard (of 
XFree Render fame) last year:

http://www.xfree86.org/~keithp/talks/KeithPackardAls2000/index.html

His render page is located here:

http://www.xfree86.org/~keithp/render/

At the bottom of this page is the most promising example of true translucent 
windows I could find. Also, it is promising to see there has recently been 
some discussion of this on the XFree Render mailing list: see the threads 
with the title "[Render] Translucent Windows Question" here:

http://www.xfree86.org/pipermail/render/2001-October/thread.html

It seems Keith is working on his proposed implementation, where a window 
would supply an alpha channel as a translucency mask, the "proper" way to 
implement these effects. This would enable pretty much everything that's been 
discussed and more (I can think up some really great uses in applications, 
plus a few security concerns (malicious invisible windows capturing input 
anyone?)).  Unfortunately he mentions that this project is not his highest 
priority and a sample implementation could be expected in the six month range.

The timing is quite unfortunate, because my guess is that the proper way of 
implementing this all-around would be to have support for it in QT, which has 
just stablilized. 

From fiddling around with kwin, it seems to me that it should be fairly easy 
to add drop-shadows and uniform transparency to windows when an appropriate X 
api is ready.  However adding it to other parts of applications is a 
different story. If, say, you wanted a certain frame and its contents to be 
translucent, you would probably have to:
a) patch QT (yuck)
b) use a specialized KClass to contain the alpha transparent area  (? less 
yuck)
c) make the X calls yourself (yuck)

I'm fairly new to KDE programming, so I'm not 100% sure if that's all 
correct, but it's what I understand at the moment. I don't know if adding the 
class mentioned in b) to kdelibs would break binary compatability, but if it 
would perhaps now is the time to think about doing so, while kde3 is still a 
moving target.

I'm interested in doing some work on this over my holidays (I want to take on 
a project of some description) so we'll see how it goes...

Cheers,

Hamish
 
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic