[PATCH] gdiplus: in CompositingModeSourceCopy, fully transparent pixels are drawn black
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42585 Signed-off-by: Damjan Jovanovic <damjan.jov(a)gmail.com> --- dlls/gdiplus/graphics.c | 7 ++++++- dlls/gdiplus/tests/image.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-)
On Wed, Mar 4, 2020, 7:36 PM Damjan Jovanovic <damjan.jov(a)gmail.com> wrote:
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=42585
Signed-off-by: Damjan Jovanovic <damjan.jov(a)gmail.com> --- dlls/gdiplus/graphics.c | 7 ++++++- dlls/gdiplus/tests/image.c | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-)
Hi Damjan, I've looked at this area of GDI+ recently. Effectively what seems to happen for copy is the source color is converted PARGB (pre-multiplied) then back to ARGB. I hadn't decided if I had considered all code paths though. However, if this patch does fix the application bug, it still seems like an improvement. Thanks, Jeff
I'm wondering if this should be in setpixel_32bppARGB. Does GdipBitmapSetPixel also work this way?
No, GdipBitmapSetPixel on ARGB sets the exact color value passed in. GdipGraphicsClear, GdipFill*, and GdipDraw* functions all exhibit the ARGB -> PARGB -> ARGB behavior IIRC. On Thu, Mar 5, 2020 at 10:39 AM Vincent Povirk (they/them) <vincent(a)codeweavers.com> wrote:
I'm wondering if this should be in setpixel_32bppARGB. Does GdipBitmapSetPixel also work this way?
participants (3)
-
Damjan Jovanovic -
Jeff Smith -
Vincent Povirk (they/them)