Icon Refresh News (and a question)

Joel Holdsworth joel at airwebreathe.org.uk
Mon May 25 08:51:33 CDT 2009


Hi All,

I've been working away little by little at my icons work, and I'm
beginning to make a little progress:
http://www.airwebreathe.org.uk/alpha-tango-icons.png

The screenshot montage shows my work on getting HICONs and HIMAGELISTs
to support the alpha channel, combined with a refreshed icon set from
Tango.

Right now, a lot of the changes I've made are rather bodged, but I'm
encouraged because at least here we see a proof of principle.

To get this to work, I've basically had to go through fixing places
where the alpha channel is incorrectly stripped or ignored. All of them
are relatively easily fixed, except the ones in the stretch blt
functions.

StretchBlt, StretchDIBits et al. seem to have a fast path and a slow
path. The fast path is active when no stretching or translation should
occur. The slow path performs all other cases, but my tests show that
only the fast path preserves the alpha channel. The reason must be that
the stretch is performed in X - but this is a problem, because I don't
know if it's possible for X to preserve alpha. Does anyone know?

My demo has replaced the offending StretchBlts with BitBlts, which works
fine, unless the icon has to be rescaled.

Does anyone have any thoughts or comments?

Thanks
Joel






More information about the wine-devel mailing list