aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/qsgdistancefieldglyphnode.cpp
diff options
context:
space:
mode:
authorYoann Lopes <yoann.lopes@nokia.com>2011-12-15 14:17:33 +0100
committerQt by Nokia <qt-info@nokia.com>2011-12-21 12:16:25 +0100
commit3d8986d7475ef6fdd04ea1286d840d2b570133a0 (patch)
tree66cec7e44c432c904b0e33dec4ce34ef622c7b67 /src/quick/scenegraph/qsgdistancefieldglyphnode.cpp
parent0febfa03b62a4449c42ad1e675777b7b099ebaa3 (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.cpp5
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);
}