On Thu, Nov 4, 2010 at 3:08 AM, Vassilis Virvilis <vas...@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