void RemoveUnusedFrames()  //  frames count will not go below t_initialFrames
 {
     for( uiw frame = 0; frame < _o_frames.Size() && _o_frames.Size() >= t_initialFrames; ++frame )
     {
         if( _o_frames[ frame ].used == 0 )
         {
             _o_frames.Erase( frame, 1 );
             --frame;
         }
     }
 }