Dmitry Timoshkov : gdi32: Don' t return cached glyph metrics if a custom transformation was requested.
Alexandre Julliard
julliard at winehq.org
Tue Jun 24 06:46:56 CDT 2008
Module: wine
Branch: master
Commit: 433c3cfeecbd518be6f54d572defbfd9b3601ace
URL: http://source.winehq.org/git/wine.git/?a=commit;h=433c3cfeecbd518be6f54d572defbfd9b3601ace
Author: Dmitry Timoshkov <dmitry at codeweavers.com>
Date: Tue Jun 24 16:12:32 2008 +0900
gdi32: Don't return cached glyph metrics if a custom transformation was requested.
---
dlls/gdi32/freetype.c | 7 ++++++-
1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c
index 01c9530..e185544 100644
--- a/dlls/gdi32/freetype.c
+++ b/dlls/gdi32/freetype.c
@@ -4327,8 +4327,13 @@ DWORD WineEngGetGlyphOutline(GdiFont *incoming_font, UINT glyph, UINT format,
font->gm = HeapReAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, font->gm,
font->gmsize * sizeof(GM*));
} else {
- if(format == GGO_METRICS && font->gm[original_index / GM_BLOCK_SIZE] != NULL && FONT_GM(font,original_index)->init ) {
+ if (format == GGO_METRICS && font->gm[original_index / GM_BLOCK_SIZE] != NULL &&
+ FONT_GM(font,original_index)->init && (!lpmat || is_identity_MAT2(lpmat)))
+ {
*lpgm = FONT_GM(font,original_index)->gm;
+ TRACE("cached: %u,%u,%s,%d,%d\n", lpgm->gmBlackBoxX, lpgm->gmBlackBoxY,
+ wine_dbgstr_point(&lpgm->gmptGlyphOrigin),
+ lpgm->gmCellIncX, lpgm->gmCellIncY);
LeaveCriticalSection( &freetype_cs );
return 1; /* FIXME */
}
More information about the wine-cvs
mailing list