Исчезающие символы при рендеринге шрифта cairo

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

Любой вклад приветствуется..


person fen    schedule 19.02.2010    source источник
comment
Вы уверены, что какая-то обрезка не задействована? Можете ли вы опубликовать всю программу (минимальный пример), демонстрирующую проблему? Когда вы говорите иногда, вы имеете в виду, что повторный запуск ОДИНАКОВОГО кода дает РАЗНЫЕ результаты?   -  person kazanaki    schedule 26.02.2010
comment
извините что не обновил. код был точно таким же (выполнялся в цикле), однако я удалил поддержку cairo из приложения и решил ее другим подходом. так что проблема для меня решена.   -  person fen    schedule 08.03.2010


Ответы (1)


убрал поддержку cairo - проблема больше не актуальна.

person fen    schedule 08.03.2010