Module: wine Branch: master Commit: 48b1e66309ec2dd42ad6b0166cbf184d476f704a URL: http://source.winehq.org/git/wine.git/?a=commit;h=48b1e66309ec2dd42ad6b0166c...
Author: Huw Davies huw@codeweavers.com Date: Wed Nov 16 11:20:52 2011 +0000
gdi32: Use an array of masks to simplify the bitmap conversion.
---
dlls/gdi32/freetype.c | 6 ++++-- 1 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/dlls/gdi32/freetype.c b/dlls/gdi32/freetype.c index 5fb8cda..3a1ae99 100644 --- a/dlls/gdi32/freetype.c +++ b/dlls/gdi32/freetype.c @@ -5049,6 +5049,8 @@ static inline BYTE get_max_level( UINT format ) return 255; }
+static const BYTE masks[8] = {0x80, 0x40, 0x20, 0x10, 0x08, 0x04, 0x02, 0x01}; + static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, LPGLYPHMETRICS lpgm, DWORD buflen, LPVOID buf, const MAT2* lpmat) @@ -5367,7 +5369,7 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, memset( buf, 0, needed ); while(h--) { for(x = 0; x < pitch && x < ft_face->glyph->bitmap.width; x++) - if (src[x / 8] & (1 << ( (7 - (x % 8))))) dst[x] = max_level; + if (src[x / 8] & masks[x % 8]) dst[x] = max_level; src += ft_face->glyph->bitmap.pitch; dst += pitch; } @@ -5439,7 +5441,7 @@ static DWORD get_glyph_outline(GdiFont *incoming_font, UINT glyph, UINT format, { for (x = 0; x < width && x < ft_face->glyph->bitmap.width; x++) { - if ( src[x / 8] & (1 << ( (7 - (x % 8)))) ) + if ( src[x / 8] & masks[x % 8] ) ((unsigned int *)dst)[x] = ~0u; } src += src_pitch;