The `_cairo_ft_unscaled_font_set_scale` method has an incorrect method of detecting whether it needs to call FT_Set_Char_Size to resize a glyph. Use font APIs with different matrix values multiple text API calls with different cairo_matrix_t values (but a constant font size) is one example that breaks. Glyphs will be rendered with mixed sizes as a result. This also can occur if other libraries referencing the shared FT_Face, such as using harfbuzz together with cairo. Commenting the following code (lines 811-816 in cairo 1.15.2) temporarily resolves the problem: if (unscaled->have_scale && scale->xx == unscaled->current_scale.xx && scale->yx == unscaled->current_scale.yx && scale->xy == unscaled->current_scale.xy && scale->yy == unscaled->current_scale.yy) return CAIRO_STATUS_SUCCESS; It would be ideal determine what is needed to fix this calculation. Thank you!
I apologize I forgot to mention, this code is in "cairo-ft-font.c", thank you again
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/cairo/cairo/issues/325.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.