1. 24 Feb, 2021 2 commits
    • Matthias Clasen's avatar
      Merge branch 'fontmap-thread-fix' into 'master' · 4dfe5918
      Matthias Clasen authored
      fc: Fix an ordering issue
      
      Closes #537
      
      See merge request !290
      4dfe5918
    • Matthias Clasen's avatar
      fc: Fix an ordering issue · 744dc221
      Matthias Clasen authored
      With the recently introduced threading for fontconfig
      calls, we introduced an ordering issue where the fontmap
      may die before an outstanding thread returns, and then
      the code that unrefs the pattern object tries to remove
      it from the fontmap cache.
      
      Prevent that by giving each thread a strong ref on the
      fontmap while it runs.
      
      Fixes: #537
      744dc221
  2. 22 Feb, 2021 9 commits
    • Matthias Clasen's avatar
      Merge branch 'speed-up-format-filtering' into 'master' · 4a3eac9f
      Matthias Clasen authored
      Speed up font sorting
      
      See merge request !221
      4a3eac9f
    • Matthias Clasen's avatar
      fontconfig: Add some trace marks · ab16846f
      Matthias Clasen authored
      Add sysprof marks around the expensive fontconfig
      calls, and for when we are waiting on them.
      ab16846f
    • Matthias Clasen's avatar
      Move FcInit call to a thread · e4e7a76a
      Matthias Clasen authored
      With a big fontconfig configuration, FcInit takes some time
      (60-100ms on my system). Doing this work off the main thread
      can potentially avoid blocking other work.
      
      To take advantage of this, GTK calls pango_cairo_font_map_get_default()
      early to initiate the creation of a fontmap, thereby triggering the
      FcInit() call.
      e4e7a76a
    • Matthias Clasen's avatar
      Move FcFontMatch and FcFontSort calls to a thread · 8f15d1b3
      Matthias Clasen authored
      fontconfig is thread-safe, so we can do calls that
      can take several milliseconds to complete in a thread.
      This patch does that for FcFontSetMatch and FcFontSetSort.
      It is a win, at least for FcFontSetSort, since it
      reduces the time that the main thread spends in
      pango_fc_patterns_get_font_pattern for i > 0 from
      around 10 to 6 milliseconds.
      8f15d1b3
    • Matthias Clasen's avatar
      Use FcFontSetList instead of FcFontList · 229975a3
      Matthias Clasen authored
      We have filtered-by-format lists of fonts available
      now, so we should use them to ensure we always operate
      on the same set of fonts. Also, fix another case of
      passing NULL for the config.
      229975a3
    • Matthias Clasen's avatar
      fc: Only do filtering by format once · 95022977
      Matthias Clasen authored
      The fontconfig configuration changes rarely, so we can avoid
      unnecessary work by only doing the filtering by supported formats
      once, and keeping the result.
      95022977
    • Matthias Clasen's avatar
      Merge branch 'fix-FcConfig-uses' into 'master' · e9d04daa
      Matthias Clasen authored
      Fix FcConfig uses
      
      See merge request !288
      e9d04daa
    • Matthias Clasen's avatar
      Use the right FcConfig for FcFontList · 3fc7b26f
      Matthias Clasen authored
      Passing NULL for a config argument in a fontconfig
      api means we are using the default configuration,
      which may be different from the one the fontmap
      is supposed to be using.
      
      Fix an instance of this in pango_fc_face_list_sizes.
      3fc7b26f
    • Matthias Clasen's avatar
      Use the right FcConfig for FcRenderPrepare · 479f99dc
      Matthias Clasen authored
      Passing NULL for a config argument in a fontconfig
      api means we are using the default configuration,
      which may be different from the one the fontmap
      is supposed to be using.
      
      Fix an instance of this in pango_fc_fontset_load_next_font.
      479f99dc
  3. 16 Feb, 2021 10 commits
  4. 12 Feb, 2021 6 commits
  5. 11 Feb, 2021 3 commits
  6. 26 Jan, 2021 1 commit
  7. 24 Jan, 2021 9 commits