http://bugs.winehq.org/show_bug.cgi?id=9262
--- Comment #1 from Mikolaj Zalewski mikolaj.zalewski@gmail.com 2007-08-27 19:17:14 --- Created an attachment (id=7844) --> (http://bugs.winehq.org/attachment.cgi?id=7844) patches
This bug is caused by AlphaBlend ignoring the blendFunction.AlphaFormat field. Currently we assume it's value is AC_SRC_ALPHA - the alpha data is available for each pixel as an alpha channel in the DIB. However if this field is 0 we should assume that each pixel have a constant alpha (it's written in a very unclear way in the MSDN that this value is valid). With this patch the filter gallery seems to be drawn correctly.
I don't know if this way of solving it is the best or there is a way to ask XRender to do it for us. I will try to find some documentation of it. Also even with this patch we ignore SourceConstantAlpha (Photoshop filter gallery doesn't use it) - a factor by which we rescale the alpha values. It's probably rarely used if there is an alpha channel but it's the way to manipulate transparency without an alpha channel. Adding it only for the later case is trivial but I will search if there is a way that would work for both 0 and AC_SRC_ALPHA.