-BlockAllocator is no longer template

-Multithreaded IDManager.getNewID()
 *use implementation with free IDs stack (instead of classic pool)
-support for multiple UpdatePasses. Passes are added by name, and must be called between begin() end() functions.
-removed mutex from addEntity()
-commit() function added. Used to commit all changes made while update() call. Called automatically by begin() end() functions.
This commit is contained in:
Mergul 2018-10-25 11:46:08 +02:00
parent 430ce8074c
commit d3f7593afc
6 changed files with 406 additions and 189 deletions

View file

@ -17,10 +17,10 @@ mixin template EventManagerCode()
//@disable this();
this(EntityManager m)
/*this(EntityManager m)
{
manager = m;
}
}*/
void sendSelfEvent(Ev)(EntityID id, Ev event)
{
@ -120,6 +120,6 @@ mixin template EventManagerCode()
EventList current_events;
EventList process_events;
BlockAllocator!(events_block_size, events_blocks_in_allocation) allocator;
BlockAllocator/*!(events_block_size, events_blocks_in_allocation)*/ allocator;
EntityManager manager;
}