Example #1
0
bool ETHScene::RenderParticleList(std::list<ETHRenderEntity*> &particles)
{
	if (m_provider->GetShaderManager()->BeginParticlePass())
	{
		for (std::list<ETHRenderEntity*>::iterator iter = particles.begin(); iter != particles.end();)
		{
			ETHRenderEntity *pRenderEntity = (*iter);

			if (!m_tempEntities.IsTempEntityEligible(pRenderEntity))
			{
				pRenderEntity->UpdateParticleSystems(GetZAxisDirection());
			}
			for (std::size_t t=0; t<pRenderEntity->GetNumParticleSystems(); t++)
			{
				pRenderEntity->DrawParticles(t, m_maxSceneHeight, m_minSceneHeight, m_sceneProps);
			}
			iter++;
		}
		m_provider->GetShaderManager()->EndParticlePass();
	}
	// seed the random number generator
	Randomizer::Seed(m_provider->GetVideo()->GetElapsedTime());
	return true;
}