Esme Povirk (@madewokherd) commented about dlls/gdiplus/graphics.c:
+{ + struct span_list spans = {0}; + RECT bounds; + GpStatus stat; + + bounds.left = dst_x; + bounds.top = dst_y; + bounds.right = dst_x + src_width; + bounds.bottom = dst_y + src_height; + stat = region_element_to_spans(®ion->node, &spans, &bounds); + + if (stat == Ok) + { + GpBitmap *dst_bitmap = (GpBitmap*)graphics->image; + CompositingMode comp_mode = graphics->compmode; + int premult = dst_bitmap->format & PixelFormatPAlpha; This still looks wrong to me. The decision here is made based on the destination bitmap, but that's already taken care of by GdipBitmapGetPixel/GdipBitmapSetPixel, and the value we're setting is about the source date.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10359#note_134140