Пример #1
0
void ETHScene::FillMultimapAndClearPersistenList(
	const std::list<Vector2>& currentBucketList,
	const ETHBackBufferTargetManagerPtr& backBuffer)
{
	if (m_persistentEntities.empty())
		return;

	for (std::list<ETHRenderEntity*>::iterator iter = m_persistentEntities.begin();
		iter != m_persistentEntities.end(); ++iter)
	{
		ETHRenderEntity* entity = *iter;
		const Vector2& currentBucket = entity->GetCurrentBucket(m_buckets);
		const bool bucketNotProcessed = std::find(currentBucketList.begin(), currentBucketList.end(), currentBucket) == currentBucketList.end();
		if (bucketNotProcessed)
		{
			m_renderingManager.AddDecomposedPieces(
				entity,
				m_minSceneHeight,
				m_maxSceneHeight,
				backBuffer,
				m_sceneProps);

			m_nRenderedEntities++;
		}
		entity->Release();
	}
	m_persistentEntities.clear();
}