MCPcopy Create free account
hub / github.com/axmolengine/axmol / removeUnusedSpriteFrames

Method removeUnusedSpriteFrames

core/2d/SpriteFrameCache.cpp:157–179  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

155}
156
157void SpriteFrameCache::removeUnusedSpriteFrames()
158{
159 auto removed = false;
160 std::vector<uint64_t> toRemoveFrames;
161
162 const auto& frames = getSpriteFrames();
163 for (auto&& iter : frames)
164 {
165 auto* spriteFrame = iter.second;
166 if (spriteFrame->getReferenceCount() == 1)
167 {
168 toRemoveFrames.emplace_back(iter.first);
169 spriteFrame->getTexture()->removeSpriteFrameCapInset(spriteFrame);
170 AXLOGD("SpriteFrameCache: removing unused frame: {}", spriteFrame->getName());
171 removed = true;
172 }
173 }
174
175 if (removed)
176 {
177 eraseFrames(toRemoveFrames);
178 }
179}
180
181void SpriteFrameCache::removeUnusedSpriteSheets()
182{

Callers 5

purgeCachedDataMethod · 0.80
TestCaseMethod · 0.80
onExitMethod · 0.80
onExitMethod · 0.80

Calls 5

getReferenceCountMethod · 0.45
emplace_backMethod · 0.45
getTextureMethod · 0.45
getNameMethod · 0.45

Tested by 4

TestCaseMethod · 0.64
onExitMethod · 0.64
onExitMethod · 0.64