diff options
-rw-r--r-- | freetype/src/base/ftobjs.c | 32 |
1 files changed, 13 insertions, 19 deletions
diff --git a/freetype/src/base/ftobjs.c b/freetype/src/base/ftobjs.c index 8d07e35ae..926943b2f 100644 --- a/freetype/src/base/ftobjs.c +++ b/freetype/src/base/ftobjs.c @@ -374,32 +374,26 @@ /* unless the rounded box can collapse for a narrow glyph */ if ( cbox.xMax - cbox.xMin < 64 ) { - cbox.xMin = FT_PIX_FLOOR( cbox.xMin ); - cbox.xMax = FT_PIX_CEIL_LONG( cbox.xMax ); - } - else - { - cbox.xMin = FT_PIX_ROUND_LONG( cbox.xMin ); - cbox.xMax = FT_PIX_ROUND_LONG( cbox.xMax ); + cbox.xMin = ( cbox.xMin + cbox.xMax ) / 2 - 32; + cbox.xMax = cbox.xMin + 64; } + cbox.xMin = FT_PIX_ROUND_LONG( cbox.xMin ); + cbox.xMax = FT_PIX_ROUND_LONG( cbox.xMax ); + if ( cbox.yMax - cbox.yMin < 64 ) { - cbox.yMin = FT_PIX_FLOOR( cbox.yMin ); - cbox.yMax = FT_PIX_CEIL_LONG( cbox.yMax ); - } - else - { - cbox.yMin = FT_PIX_ROUND_LONG( cbox.yMin ); - cbox.yMax = FT_PIX_ROUND_LONG( cbox.yMax ); + cbox.yMin = ( cbox.yMin + cbox.yMax ) / 2 - 32; + cbox.yMax = cbox.yMin + 64; } + + cbox.yMin = FT_PIX_ROUND_LONG( cbox.yMin ); + cbox.yMax = FT_PIX_ROUND_LONG( cbox.yMax ); + + break; #else - cbox.xMin = FT_PIX_FLOOR( cbox.xMin ); - cbox.yMin = FT_PIX_FLOOR( cbox.yMin ); - cbox.xMax = FT_PIX_CEIL_LONG( cbox.xMax ); - cbox.yMax = FT_PIX_CEIL_LONG( cbox.yMax ); + goto Round; #endif - break; case FT_RENDER_MODE_LCD: pixel_mode = FT_PIXEL_MODE_LCD; |