В настоящее время я пытаюсь создать растровое изображение глифа, которое содержит только внешнюю границу глифа, без какого-либо заполнения внутри. Для этого используется библиотека FreeType. Вот мой код, который похож на пример 2 кода из FreeType ссылки:FreeType: как растеризовать незаполненный контур
Spans outlineSpans;
FT_Stroker stroker;
FT_Stroker_New(ft, &stroker);
FT_Stroker_Set(stroker, outlineWidth, round ? FT_STROKER_LINECAP_ROUND : FT_STROKER_LINECAP_SQUARE, round ? FT_STROKER_LINEJOIN_ROUND : FT_STROKER_LINEJOIN_BEVEL, 0);
FT_Glyph g;
FT_Get_Glyph(currentFace->glyph, &g);
FT_Glyph_StrokeBorder(&g, stroker, 0, 1);
FT_Raster_Params params;
memset(¶ms, 0, sizeof(params));
params.flags = FT_RASTER_FLAG_AA | FT_RASTER_FLAG_DIRECT;
params.gray_spans = RasterCallback;
params.user = &outlineSpans;
outlineSpans.clear();
FT_Outline *o = &reinterpret_cast<FT_OutlineGlyph>(g)->outline;
int err = FT_Outline_Render(ft, o, ¶ms);
FT_Stroker_Done(stroker);
FT_Done_Glyph(g);
В результате я получаю outlineSpans
вектор, заполненный пролетами для всего глифов изображения, но мне нужно только «граница» будет растеризации. CurrentFace->glyph
содержит глиф, который я загрузил с помощью FT_Load_Char(currentFace, *ch, FT_LOAD_NO_BITMAP))
Что я делаю неправильно? Спасибо за любую помощь, в NetType не так много документации/примеров о FreeType.