Huw Davies : Revert "gdi32: Do not use VDMX for mapping of negative font heights, based on a test case .".

Alexandre Julliard julliard at winehq.org
Wed Aug 28 14:03:10 CDT 2013


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

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Aug 28 14:21:11 2013 +0100

Revert "gdi32: Do not use VDMX for mapping of negative font heights, based on a test case.".

This reverts commit 7d3cb53cf1a5f40094fbc3332524ec98781d3779.

---

 dlls/gdi32/freetype.c |   19 +++++++++++++++++++
 1 files changed, 19 insertions(+), 0 deletions(-)

diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 2a2bde1..3f3b480 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -4577,6 +4577,25 @@ static LONG load_VDMX(GdiFont *font, LONG height)
 		ppem = 0;
 		TRACE("ppem not found for height %d\n", height);
 	    }
+	} else {
+	    ppem = -height;
+	    if(ppem < startsz || ppem > endsz)
+		goto end;
+
+	    for(i = 0; i < recs; i++) {
+		USHORT yPelHeight;
+		yPelHeight = GET_BE_WORD(vTable[i * 3]);
+
+		if(yPelHeight > ppem)
+		    break; /* failed */
+
+		if(yPelHeight == ppem) {
+		    font->yMax = GET_BE_WORD(vTable[(i * 3) + 1]);
+		    font->yMin = GET_BE_WORD(vTable[(i * 3) + 2]);
+                    TRACE("ppem %d found; yMax=%d  yMin=%d\n", ppem, font->yMax, font->yMin);
+		    break;
+		}
+	    }
 	}
 	end:
 	HeapFree(GetProcessHeap(), 0, vTable);




More information about the wine-cvs mailing list