Пример #1
0
/// Renders all the particle systems. Passing in false for doUpdate allows
/// you to render the systems multiple times per frame without updating. This
/// is useful when a shader requires multiple passes (such as water reflection)
/// \param doUpdate Whether the systems should be updated before rendering
void ParticleEngine::render(bool doUpdate)
{
  static SystemSortedSet sortedSystems;
  sortedSystems.clear();

  if(m_UIDMap.size() == 0)
    return;

  if(doUpdate)
    updateSystems();

  // render all systems
  for(UIDMapIter iter = m_UIDMap.begin(); iter != m_UIDMap.end(); iter++)
  {
    sortedSystems.insert(iter->second);
  }

  for(SystemSortedSetIter iter = sortedSystems.rbegin(); iter != sortedSystems.rend(); iter++)
  {
    (*iter)->render();
  }
}
Пример #2
0
 void Engine::run()
 {
     initializeSystems();
     updateSystems();
     shutdownSystems();
 }