Vincent Povirk : gdiplus: Respect the CmapLookup flag in GDI32_GdipDrawDriverString.

Alexandre Julliard julliard at winehq.org
Tue Apr 5 11:23:30 CDT 2011


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

Author: Vincent Povirk <vincent at codeweavers.com>
Date:   Mon Apr  4 17:48:31 2011 -0500

gdiplus: Respect the CmapLookup flag in GDI32_GdipDrawDriverString.

---

 dlls/gdiplus/graphics.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/dlls/gdiplus/graphics.c b/dlls/gdiplus/graphics.c
index 5ba3a4f..336929f 100644
--- a/dlls/gdiplus/graphics.c
+++ b/dlls/gdiplus/graphics.c
@@ -5620,10 +5620,11 @@ static GpStatus GDI32_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT1
                                      GDIPCONST PointF *positions, INT flags,
                                      GDIPCONST GpMatrix *matrix )
 {
-    static const INT unsupported_flags = ~(DriverStringOptionsRealizedAdvance);
+    static const INT unsupported_flags = ~(DriverStringOptionsRealizedAdvance|DriverStringOptionsCmapLookup);
     INT save_state;
     GpPointF pt;
     HFONT hfont;
+    UINT eto_flags=0;
 
     if (flags & unsupported_flags)
         FIXME("Ignoring flags %x\n", flags & unsupported_flags);
@@ -5631,6 +5632,9 @@ static GpStatus GDI32_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT1
     if (matrix)
         FIXME("Ignoring matrix\n");
 
+    if (!(flags & DriverStringOptionsCmapLookup))
+        eto_flags |= ETO_GLYPH_INDEX;
+
     save_state = SaveDC(graphics->hdc);
     SetBkMode(graphics->hdc, TRANSPARENT);
     SetTextColor(graphics->hdc, brush->lb.lbColor);
@@ -5643,7 +5647,7 @@ static GpStatus GDI32_GdipDrawDriverString(GpGraphics *graphics, GDIPCONST UINT1
 
     SetTextAlign(graphics->hdc, TA_BASELINE|TA_LEFT);
 
-    ExtTextOutW(graphics->hdc, roundr(pt.X), roundr(pt.Y), ETO_GLYPH_INDEX, NULL, text, length, NULL);
+    ExtTextOutW(graphics->hdc, roundr(pt.X), roundr(pt.Y), eto_flags, NULL, text, length, NULL);
 
     RestoreDC(graphics->hdc, save_state);
 




More information about the wine-cvs mailing list