* src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
diff --git a/ChangeLog b/ChangeLog
index 70bc8a1..0b945f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2018-08-30 Alexei Podtelezhnikov <apodtele@gmail.com>
+
+ * src/base/ftobjs.c (ft_glyphslot_preset_bitmap): Correct mono.
+
2018-08-30 Armin Hasitzka <prince.cherusker@gmail.com>
[errors] Introduce a macro to control `FT_Error_String'.
diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c
index d4594b5..f245430 100644
--- a/src/base/ftobjs.c
+++ b/src/base/ftobjs.c
@@ -391,25 +391,31 @@
pixel_mode = FT_PIXEL_MODE_MONO;
#if 1
/* undocumented but confirmed: bbox values get rounded */
- /* unless the rounded box can collapse for a narrow glyph */
- if ( pbox.xMax - pbox.xMin == 0 )
+ /* for narrow glyphs bbox is extended to one pixel first */
+ if ( pbox.xMax - pbox.xMin <= 1 )
{
- cbox.xMin = ( cbox.xMin + cbox.xMax ) / 2 - 32;
- cbox.xMax = cbox.xMin + 64;
+ if ( pbox.xMax - pbox.xMin == 0 )
+ {
+ cbox.xMin = ( cbox.xMin + cbox.xMax ) / 2 - 32;
+ cbox.xMax = cbox.xMin + 64;
+ }
+ else if ( cbox.xMax - cbox.xMin < 0 )
+ cbox.xMin = cbox.xMax = ( cbox.xMin + cbox.xMax ) / 2;
}
- else if ( pbox.xMax - pbox.xMin == 1 )
- cbox.xMin = cbox.xMax = ( cbox.xMin + cbox.xMax ) / 2;
pbox.xMin += ( cbox.xMin + 32 ) >> 6;
pbox.xMax += ( cbox.xMax + 32 ) >> 6;
- if ( pbox.yMax - pbox.yMin == 0 )
+ if ( pbox.yMax - pbox.yMin <= 1 )
{
- cbox.yMin = ( cbox.yMin + cbox.yMax ) / 2 - 32;
- cbox.yMax = cbox.yMin + 64;
+ if ( pbox.yMax - pbox.yMin == 0 )
+ {
+ cbox.yMin = ( cbox.yMin + cbox.yMax ) / 2 - 32;
+ cbox.yMax = cbox.yMin + 64;
+ }
+ else if ( cbox.yMax - cbox.yMin < 0 )
+ cbox.yMin = cbox.yMax = ( cbox.yMin + cbox.yMax ) / 2;
}
- else if ( pbox.yMax - pbox.yMin == 1 )
- cbox.yMin = cbox.yMax = ( cbox.yMin + cbox.yMax ) / 2;
pbox.yMin += ( cbox.yMin + 32 ) >> 6;
pbox.yMax += ( cbox.yMax + 32 ) >> 6;