Commit 016dc76a authored by Vincent Povirk's avatar Vincent Povirk Committed by Alexandre Julliard

gdiplus: Transform clipping region to gdi device coordinates.

parent c5796610
...@@ -348,8 +348,26 @@ static void gdi_alpha_blend(GpGraphics *graphics, INT dst_x, INT dst_y, INT dst_ ...@@ -348,8 +348,26 @@ static void gdi_alpha_blend(GpGraphics *graphics, INT dst_x, INT dst_y, INT dst_
static GpStatus get_clip_hrgn(GpGraphics *graphics, HRGN *hrgn) static GpStatus get_clip_hrgn(GpGraphics *graphics, HRGN *hrgn)
{ {
/* clipping region is in device coords */ GpRegion *rgn;
return GdipGetRegionHRgn(graphics->clip, NULL, hrgn); GpMatrix transform;
GpStatus stat;
stat = get_graphics_transform(graphics, WineCoordinateSpaceGdiDevice, CoordinateSpaceDevice, &transform);
if (stat == Ok)
stat = GdipCloneRegion(graphics->clip, &rgn);
if (stat == Ok)
{
stat = GdipTransformRegion(rgn, &transform);
if (stat == Ok)
stat = GdipGetRegionHRgn(rgn, NULL, hrgn);
GdipDeleteRegion(rgn);
}
return stat;
} }
/* Draw ARGB data to the given graphics object */ /* Draw ARGB data to the given graphics object */
......
...@@ -6276,7 +6276,7 @@ static void test_GdipFillRectanglesOnMemoryDCSolidBrush(void) ...@@ -6276,7 +6276,7 @@ static void test_GdipFillRectanglesOnMemoryDCSolidBrush(void)
color[5] = get_bitmap_pixel(width-1, height/2-1); color[5] = get_bitmap_pixel(width-1, height/2-1);
} }
todo_wine ok(is_blue_color(color[0]) && is_blue_color(color[1]) && is_blue_color(color[2]) && ok(is_blue_color(color[0]) && is_blue_color(color[1]) && is_blue_color(color[2]) &&
color[3] == 0 && color[4] == 0 && color[5] == 0, color[3] == 0 && color[4] == 0 && color[5] == 0,
"Expected GdipFillRectangleI take effect!\n" ); "Expected GdipFillRectangleI take effect!\n" );
ReleaseBitmapPixelBuffer(pixel); ReleaseBitmapPixelBuffer(pixel);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment