| 1391 | } |
| 1392 | |
| 1393 | void Tr2TextureAtlas::ReleasePendingFreeAreas() |
| 1394 | { |
| 1395 | if( !m_pendingFreeAreas.empty() ) |
| 1396 | { |
| 1397 | USE_MAIN_THREAD_RENDER_CONTEXT(); |
| 1398 | for( auto& pair : m_pendingFreeAreas ) |
| 1399 | { |
| 1400 | if( pair.second <= renderContext.GetRenderedFrameNumber() ) |
| 1401 | { |
| 1402 | FreeArea( pair.first ); |
| 1403 | } |
| 1404 | } |
| 1405 | auto freeBegin = std::remove_if( m_pendingFreeAreas.begin(), m_pendingFreeAreas.end(), [&]( const auto& pair ) { |
| 1406 | return pair.second <= renderContext.GetRenderedFrameNumber(); |
| 1407 | } ); |
| 1408 | if( freeBegin == m_pendingFreeAreas.end() ) |
| 1409 | { |
| 1410 | return; |
| 1411 | } |
| 1412 | m_pendingFreeAreas.erase( freeBegin, m_pendingFreeAreas.end() ); |
| 1413 | UpdateFreeMaxima(); |
| 1414 | } |
| 1415 | } |
| 1416 | |
| 1417 | void Tr2TextureAtlas::FreeArea( Tr2TextureAtlasArea* area ) |
| 1418 | { |
nothing calls this directly
no test coverage detected