Я использую Каир для рендеринга простого текста на поверхность Каира. Я использую шрифт freetype для этого (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 для рендеринга текста, но у меня нет доступного кеша шрифтов - поэтому я понятия не имею, как загрузить шрифт в pango, поскольку он, очевидно, поддерживает только fontcache и не загружает напрямую шрифт.
Любые входные данные приветствуются.