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));
        }
Exemple #2
0
        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))
 {
 }