Vincent Povirk : gdiplus: Add clipping to GDI32_GdipDrawDriverString.

Alexandre Julliard julliard at winehq.org
Tue Sep 20 10:45:00 CDT 2016


Module: wine
Branch: master
Commit: c6afa50db6fb2fefcd349a52728cea2479bf0392
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c6afa50db6fb2fefcd349a52728cea2479bf0392

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Mon Sep 19 15:07:01 2016 -0500

gdiplus: Add clipping to GDI32_GdipDrawDriverString.

Signed-off-by: Vincent Povirk <vincent at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdiplus/graphics.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 964fa9f..894503e 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -6321,6 +6321,8 @@ static GpStatus GDI32_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT1
     GpPointF pt;
     HFONT hfont;
     UINT eto_flags=0;
+    GpStatus status;
+    HRGN hrgn;
 
     if (flags & unsupported_flags)
         FIXME("Ignoring flags %x\n", flags & unsupported_flags);
@@ -6332,6 +6334,14 @@ static GpStatus GDI32_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT1
     SetBkMode(graphics->hdc, TRANSPARENT);
     SetTextColor(graphics->hdc, get_gdi_brush_color(brush));
 
+    status = get_clip_hrgn(graphics, &hrgn);
+
+    if (status == Ok && hrgn)
+    {
+        ExtSelectClipRgn(graphics->hdc, hrgn, RGN_AND);
+        DeleteObject(hrgn);
+    }
+
     pt = positions[0];
     GdipTransformPoints(graphics, CoordinateSpaceDevice, CoordinateSpaceWorld, &pt, 1);
 




More information about the wine-cvs mailing list