Transparent windows (with alpha channel)

Vassilis Virvilis vasvir at iit.demokritos.gr
Thu Nov 4 05:08:42 CDT 2010


On 03/11/2010 12:36 πμ, Vassilis Virvilis wrote:
> On 02/11/2010 02:12 πμ, Vincent Povirk wrote:
>> It is probably a layered window, in which case the following functions
>> in user32 are relevant: SetLayeredWindowAttributes,
>> GetLayeredWindowAttributes, UpdateLayeredWindowIndirect, and
>> UpdateLayeredWindow
>>
>> Most of user32 is implemented based on gdi32, wineserver, and
>> winex11.drv. When you see USER_Driver in user32, that indicates a
>> function in winex11.drv. So USER_Driver->pSetLayeredWindowAttributes
>> is really X11DRV_SetLayeredWindowAttributes.
>>
>> Wine requires a compositing window manager to implement layered
>> windows properly. It does not matter whether the window manager
>> provides any 3D effects or uses opengl.
>
> Thank you very much for the directions. They certainly put me on the
> right track.
>

Again thanks for the directions.

The UpdateLayeredWindowIndirect implementation of wine only utilizes a global per window alpha value.

After a little bit of research it looks like what I want is something called per-pixel alpha or per color alpha or blending with alpha channel.

Does wine and/or X-Windows support something like this and if so where?

My guess is in bitblit but any insightful comment is welcome.

            .bill



More information about the wine-devel mailing list