Я использую FreeType2 для рендеринга шрифтов, и мне нужно получить глобальную ограничивающую рамку для всех шрифтов, чтобы я мог выровнять их в красивой сетке. Я вызываю FT_Set_Char_Size
, а затем извлекаю глобальные границы, используя
int pixels_x = ::FT_MulFix((face->bbox.xMax - face->bbox.xMin), face->size->metrics.x_scale );
int pixels_y = ::FT_MulFix((face->bbox.yMax - face->bbOx.yMin), face->size->metrics.y_scale );
return Size (pixels_x / 64, pixels_y / 64);
который работает, но он слишком большой. Я также пытался вычислять с использованием двойников (как описано в руководстве по FreeType2) , но результаты практически те же. Даже использование только face->bbox.xMax
приводит к слишком широким ограничивающим рамкам. Правильно ли я поступаю, или в моем шрифте просто есть какой-то огромный глиф (в данном случае Arial.ttf?). Есть ли способ проверить, какой глиф предположительно такой большой?