diff options
Diffstat (limited to 'src/quick/scenegraph/util/qsgdistancefieldutil.cpp')
-rw-r--r-- | src/quick/scenegraph/util/qsgdistancefieldutil.cpp | 31 |
1 files changed, 18 insertions, 13 deletions
diff --git a/src/quick/scenegraph/util/qsgdistancefieldutil.cpp b/src/quick/scenegraph/util/qsgdistancefieldutil.cpp index 76fdf97d80..ecfdf9b03c 100644 --- a/src/quick/scenegraph/util/qsgdistancefieldutil.cpp +++ b/src/quick/scenegraph/util/qsgdistancefieldutil.cpp @@ -62,16 +62,10 @@ static float defaultAntialiasingSpreadFunc(float glyphScale) return range / glyphScale; } -QSGDistanceFieldGlyphCacheManager::QSGDistanceFieldGlyphCacheManager(QSGContext *c) - : sgCtx(c) - , m_threshold_func(defaultThresholdFunc) +QSGDistanceFieldGlyphCacheManager::QSGDistanceFieldGlyphCacheManager() + : m_threshold_func(defaultThresholdFunc) , m_antialiasingSpread_func(defaultAntialiasingSpreadFunc) { -#ifndef QT_OPENGL_ES - m_defaultAntialiasingMode = QSGGlyphNode::HighQualitySubPixelAntialiasing; -#else - m_defaultAntialiasingMode = QSGGlyphNode::GrayAntialiasing; -#endif } QSGDistanceFieldGlyphCacheManager::~QSGDistanceFieldGlyphCacheManager() @@ -81,11 +75,22 @@ QSGDistanceFieldGlyphCacheManager::~QSGDistanceFieldGlyphCacheManager() QSGDistanceFieldGlyphCache *QSGDistanceFieldGlyphCacheManager::cache(const QRawFont &font) { - QRawFontPrivate *fontD = QRawFontPrivate::get(font); - QHash<QFontEngine *, QSGDistanceFieldGlyphCache *>::iterator cache = m_caches.find(fontD->fontEngine); - if (cache == m_caches.end()) - cache = m_caches.insert(fontD->fontEngine, sgCtx->createDistanceFieldGlyphCache(font)); - return cache.value(); + QString key = QString::fromLatin1("%1_%2_%3_%4") + .arg(font.familyName()) + .arg(font.styleName()) + .arg(font.weight()) + .arg(font.style()); + return m_caches.value(key, 0); +} + +void QSGDistanceFieldGlyphCacheManager::insertCache(const QRawFont &font, QSGDistanceFieldGlyphCache *cache) +{ + QString key = QString::fromLatin1("%1_%2_%3_%4") + .arg(font.familyName()) + .arg(font.styleName()) + .arg(font.weight()) + .arg(font.style()); + m_caches.insert(key, cache); } QT_END_NAMESPACE |