Я использую cairo для рендеринга простого текста на поверхности cairo. Я использую для этого шрифт свободного типа (Vera.ttf, если это имеет значение). Это работает, но иногда на выходе пропадают символы. На самом деле только цифры. Я нарисовал текст «Demostream 1..», и иногда «1» исчезает из вывода, и я совершенно не понимаю, почему. Число определенно является частью строки. Также нет повреждения памяти или чего-то в этом роде. Это код, который рисует текст:
font = cairo_ft_font_face_create_for_ft_face(ftFace, 0);
cr = cairo_create(surface);
/* set the foreground color */
cairo_set_source_rgba(cr, ...);
/* render the text */
cairo_set_antialias(cr, CAIRO_ANTIALIAS_GRAY);
cairo_set_font_face(cr, font);
cairo_set_font_size(cr, size);
cairo_move_to(cr, x, y);
cairo_show_text(cr, text);
cairo_destroy(cr);
cairo_font_face_destroy(font);
ftFace — загруженный шрифт свободного типа.
Я также использовал бы pango для рендеринга текста, но у меня нет доступного шрифтового кеша, поэтому я понятия не имею, как загрузить шрифт в панго, поскольку он, очевидно, поддерживает только кеширование шрифтов, а не прямую загрузку шрифта.
Любой вклад приветствуется..