diff options
author | Pierre Rossi <pierre.rossi@nokia.com> | 2012-03-07 14:53:57 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-03-08 23:52:34 +0100 |
commit | 7e53debcf285426042f0f7283b28f716d3b728b1 (patch) | |
tree | 7583629cdc4b5390c7d9c1bbdc9c843345aee6b2 /src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h | |
parent | 4ba895a863a3468db2fe67beaa7e8b0b386b01dd (diff) |
Fix a performance regression with shouldLoadFontEngineForCharacter.
Calling FcFontMatch should be avoided as much as possible. We can simply
cache the patterns it returns, which should still save memory compared to
loading all font engines as we did before.
Change-Id: I67208a4f919338a948535f717cfd0139dbea2e5f
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Diffstat (limited to 'src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h')
-rw-r--r-- | src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h index 4323cb7d2e..260a9b5c70 100644 --- a/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h +++ b/src/platformsupport/fontdatabases/fontconfig/qfontenginemultifontconfig_p.h @@ -43,6 +43,7 @@ #define QFONTENGINEMULTIFONTCONFIG_H #include <QtGui/private/qfontengine_qpa_p.h> +#include <fontconfig/fontconfig.h> QT_BEGIN_NAMESPACE @@ -52,7 +53,13 @@ class QFontEngineMultiFontConfig : public QFontEngineMultiQPA public: explicit QFontEngineMultiFontConfig(QFontEngine *fe, int script, const QStringList &fallbacks); + ~QFontEngineMultiFontConfig(); + bool shouldLoadFontEngineForCharacter(int at, uint ucs4) const; +private: + FcPattern* getMatchPatternForFallback(int at) const; + + mutable QVector<FcPattern*> cachedMatchPatterns; }; QT_END_NAMESPACE |