So, I may be about to embarrass myself, because fencepost errors are
like that, but here goes.
If I look at the glyph /H in Source Sans Pro in a font editor, the top
right bound is a point at (562,656) and the bottom left point is at
(90,0). If I were to think about this as a bitmap, I can address row 0
and row 656, so there are 657 addressable rows.
But when I render it to a bitmap in freetype, I get bitmap.rows == 656,
bitmap.width == 472 (562 minus the LSB of 90 is 472).
I seem to have lost a row somewhere - I can only address from rows 0 to
655. For example, this bitmap is an array with bitmap.rows *
bitmap.width = 309632 elements. If I wanted to address the top right
point, I would set:
y = 656
x = 472
and then address:
bitmap[ y * bitmap.width + x ]
bitmap[ 310104 ]
and oops, I'm off the end of the array.
Is this a problem with freetype, or in my assumptions?
Freetype mailing list