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; }