[cairo-bugs] [Bug 96357] New: Incorrect cache algorithm in _cairo_ft_unscaled_font_set_scale

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Fri Jun 3 15:01:59 UTC 2016


https://bugs.freedesktop.org/show_bug.cgi?id=96357

            Bug ID: 96357
           Summary: Incorrect cache algorithm in
                    _cairo_ft_unscaled_font_set_scale
           Product: cairo
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: medium
         Component: freetype font backend
          Assignee: david at freetype.org
          Reporter: bulkmail at joshuagranick.com
        QA Contact: cairo-bugs at cairographics.org

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!

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.cairographics.org/archives/cairo-bugs/attachments/20160603/35b469b3/attachment.html>


More information about the cairo-bugs mailing list