public static GenneralContextState Full(ContextStateProcessor processor, AxisAlignedBox octreeBounds, EngineNotificator notificator, ILabLogger logger) { var syncContext = new RenderLoopSynchronizationContext(); var octree = new OctreeManager(processor, octreeBounds, 5, syncContext); notificator.Subscribe(octree); var geoPool = new GeometryPool(notificator, syncContext); notificator.Subscribe(geoPool); return(new GenneralContextState(processor, octree, geoPool, notificator, syncContext, logger)); }
public ManagerContainer(IManagerChangeNotify notify, IOctreeManager octree, IContextState context, IGeometryMemoryPool geoPool, RenderLoopSynchronizationContext syncContext, ILabLogger logger) { SynchronizationContext = syncContext; EntityOrder = new EntityOrderContainer(); this.SystemManager = new SystemManager(notify, context); var encom = new EntityComponentManager(notify, EntityOrder, syncContext); GeoMemoryPool = geoPool; this.ComponentManager = encom; this.EntityManager = encom; OctreeManager = octree; Logger = logger; }
GenneralContextState(ContextStateProcessor processor, IOctreeManager octree, IGeometryMemoryPool geoPool, EngineNotificator notificator, RenderLoopSynchronizationContext context, ILabLogger logger) : base(processor, new ManagerContainer(notificator, octree, processor, geoPool, context, logger)) { }