On Thu, Nov 4, 2010 at 3:08 AM, Vassilis Virvilis vasvir@iit.demokritos.gr wrote:
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
You would require ARGB visuals. Various drivers support them these days for desktop composition purposes. When I asked Alexandre about them a long time ago, he said we couldn't use them in Wine. I don't know why that was. Further even if we could use it, we would have to recreate the window upon this call since I don't think we would want to use ARGB by default.
Roderick