From 3a108a8fec0c1d3110fd6744ad536870b03390f8 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Mon, 4 Apr 2011 17:48:31 -0500 Subject: [PATCH 4/4] 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); -- 1.7.1