diff options
author | Yoann Lopes <yoann.lopes@nokia.com> | 2011-12-15 14:17:33 +0100 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-12-21 12:16:25 +0100 |
commit | 3d8986d7475ef6fdd04ea1286d840d2b570133a0 (patch) | |
tree | 66cec7e44c432c904b0e33dec4ce34ef622c7b67 /src/quick/scenegraph/qsgdistancefieldglyphnode.cpp | |
parent | 0febfa03b62a4449c42ad1e675777b7b099ebaa3 (diff) |
Reference count glyphs in QSGDistanceFieldGlyphCache.
This was previously done only in the default cache implementation. It
has been moved to the base class.
releaseGlyphs() is called when a glyph is not referenced anymore by any
node.
Added a virtual function referenceGlyphs() that is called everytime glyphs
are being used in a node. This function is called just before
requestGlyphs().
Change-Id: If90f86c328c18ae2a5977847a6adf50b99ea1241
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@nokia.com>
Diffstat (limited to 'src/quick/scenegraph/qsgdistancefieldglyphnode.cpp')
-rw-r--r-- | src/quick/scenegraph/qsgdistancefieldglyphnode.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp b/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp index fe5f16a0a2..f192573624 100644 --- a/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp +++ b/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp @@ -71,7 +71,10 @@ QSGDistanceFieldGlyphNode::~QSGDistanceFieldGlyphNode() delete m_material; if (m_glyph_cache) { - m_glyph_cache->release(m_glyphs.glyphIndexes()); + QVector<quint32> glyphIndexes; + for (int i = 0; i < m_allGlyphs.count(); ++i) + glyphIndexes.append(m_allGlyphs.at(i).glyphIndex); + m_glyph_cache->release(glyphIndexes); m_glyph_cache->unregisterGlyphNode(this); } |