[PATCH 2/2] comctl32: Paint 32-bpp bitmaps with an alpha channel using GdiAlphaBlend.

Alexandre Julliard julliard at winehq.org
Fri May 31 08:06:45 CDT 2019


Dmitry Timoshkov <dmitry at baikal.ru> writes:

> Alexandre Julliard <julliard at winehq.org> wrote:
>
>> >> My question was whether it's drawn with transparency in that case, since
>> >> it's not really specified in which cases a DDB is considered to have an
>> >> alpha channel.
>> >
>> > In order to draw it with a transparency it's necessary to create a 32-bpp
>> > DIB section, copy source bitmap bits, and use GdiAlphaBlend() with a DIB
>> > section. Basically my patch does all of this.
>> 
>> Yes of course. My question was whether on Windows it's drawn transparent
>> even for the DDB case. I guess the answer is yes since you have an app
>> that does this, but a small test case wouldn't hurt.
>
> I just added the code to my test app to draw a bitmap with BitBlt()
> loaded with LoadBitmap() (instead of assigning it to the Static control),
> and the result is drawn without transparency under Windows.

But if you assign it to the Static control it's transparent, right?  And
it's really a DDB, right?

Just want to make sure that we need special handling there, and that
it's not the app getting a DDB when it should be getting a DIB or
something like that.

-- 
Alexandre Julliard
julliard at winehq.org



More information about the wine-devel mailing list