From 64841aac838a9327af134aa613943ae930b652c1 Mon Sep 17 00:00:00 2001 From: Vincent Povirk Date: Mon, 4 Apr 2011 17:48:31 -0500 Subject: [PATCH] gdiplus: Respect the CmapLookup flag in GDI32_GdipDrawDriverString. --- 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 5ba3a4f7a0e..336929fc9b3 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);