[5/5] gdiplus: Account for gdi32 transform in SOFTWARE_GdipDrawThinPath.

Vincent Povirk vincent at codeweavers.com
Thu Aug 31 14:14:08 CDT 2017


Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
---
 dlls/gdiplus/graphics.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index f4dc3e6..4413e75 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -3499,7 +3499,7 @@ static GpStatus SOFTWARE_GdipDrawThinPath(GpGraphics *graphics, GpPen *pen, GpPa
 
     if (stat == Ok)
     {
-        stat = get_graphics_transform(graphics, CoordinateSpaceDevice,
+        stat = get_graphics_transform(graphics, WineCoordinateSpaceGdiDevice,
                 CoordinateSpaceWorld, transform);
 
         if (stat == Ok)
@@ -3528,7 +3528,7 @@ static GpStatus SOFTWARE_GdipDrawThinPath(GpGraphics *graphics, GpPen *pen, GpPa
             if (ceilf(y) > output_area.bottom) output_area.bottom = ceilf(y);
         }
 
-        stat = get_graphics_bounds(graphics, &gp_bound_rect);
+        stat = get_graphics_device_bounds(graphics, &gp_bound_rect);
     }
 
     if (stat == Ok)
@@ -3760,9 +3760,13 @@ static GpStatus SOFTWARE_GdipDrawThinPath(GpGraphics *graphics, GpPen *pen, GpPa
         /* draw output image */
         if (stat == Ok)
         {
+            gdi_transform_acquire(graphics);
+
             stat = alpha_blend_pixels(graphics, output_area.left, output_area.top,
                 (BYTE*)output_bits, output_width, output_height, output_width * 4,
                 PixelFormat32bppARGB);
+
+            gdi_transform_release(graphics);
         }
 
         heap_free(brush_bits);
-- 
2.7.4




More information about the wine-patches mailing list