Ignore:
Timestamp:
02/06/17 21:13:58 (8 years ago)
Author:
epyon
Message:
  • fixes in handle store
  • removal of get_handle
  • indices instead of handles
  • efficient handle store clears
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/engine/particle_engine.cc

    r534 r543  
    350350}
    351351
     352void nv::particle_engine::release( particle_system_info* info )
     353{
     354        if ( info )
     355        {
     356                m_pgm->unref( info->group );
     357                delete[] info->particles;
     358        }
     359}
     360
    352361void nv::particle_engine::clear()
    353362{
    354         while ( m_systems.size() > 0 )
    355                 release( m_systems.get_handle( 0 ) );
     363        for ( auto& s : m_systems )
     364                release( &s );
     365        m_systems.clear();
    356366        if ( m_pgm )
    357367                m_pgm->reset();
     
    363373void nv::particle_engine::release( particle_system system )
    364374{
    365         particle_system_info* info = m_systems.get( system );
    366         if ( info )
    367         {
    368                 m_pgm->unref( info->group );
    369                 delete[] info->particles;
     375        if ( particle_system_info* info = m_systems.get( system ) )
     376        {
     377                release( info );
    370378                m_systems.destroy( system );
    371379        }
Note: See TracChangeset for help on using the changeset viewer.