MCPcopy Create free account
hub / github.com/OGRECave/ogre-next / performCleanup

Method performCleanup

OgreMain/src/Math/Array/OgreNodeMemoryManager.cpp:317–342  ·  view source on GitHub ↗

---------------------------------------------------------------------

Source from the content-addressed store, hash-verified

315 }
316 //---------------------------------------------------------------------
317 void NodeMemoryManager::performCleanup( uint16 level, const MemoryPoolVec &basePtrs,
318 size_t const *elementsMemSizes, size_t startInstance,
319 size_t diffInstances )
320 {
321 Transform transform;
322 const size_t numNodes = this->getFirstNode( transform, level );
323
324 size_t roundedStart = startInstance / ARRAY_PACKED_REALS;
325
326 transform.advancePack( roundedStart );
327
328 for( size_t i = roundedStart * ARRAY_PACKED_REALS; i < numNodes; i += ARRAY_PACKED_REALS )
329 {
330 for( size_t j = 0; j < ARRAY_PACKED_REALS; ++j )
331 {
332 if( transform.mOwner[j] )
333 {
334 transform.mIndex = (uint8)j;
335 transform.mOwner[j]->_getTransform() = transform;
336 transform.mOwner[j]->_callMemoryChangeListeners();
337 }
338 }
339
340 transform.advancePack();
341 }
342 }
343} // namespace Ogre

Callers 1

defragmentMethod · 0.45

Calls 3

getFirstNodeMethod · 0.95
advancePackMethod · 0.45

Tested by

no test coverage detected