| 111 | Director::Director() {} |
| 112 | |
| 113 | bool Director::init() |
| 114 | { |
| 115 | setDefaultValues(); |
| 116 | |
| 117 | _scenesStack.reserve(15); |
| 118 | |
| 119 | // FPS |
| 120 | _lastUpdate = std::chrono::steady_clock::now(); |
| 121 | |
| 122 | auto concurrency = Configuration::getInstance()->getValue("axmol.concurrency", Value{-1}).asInt(); |
| 123 | _jobSystem = new JobSystem(concurrency); |
| 124 | |
| 125 | #ifdef AX_ENABLE_CONSOLE |
| 126 | _console = new Console(); |
| 127 | #endif |
| 128 | // scheduler |
| 129 | _scheduler = new Scheduler(); |
| 130 | // action manager |
| 131 | _actionManager = new ActionManager(); |
| 132 | _scheduler->scheduleUpdate(_actionManager, Scheduler::PRIORITY_SYSTEM, false); |
| 133 | |
| 134 | _eventDispatcher = new EventDispatcher(); |
| 135 | |
| 136 | _beforeSetNextScene = new EventCustom(EVENT_BEFORE_SET_NEXT_SCENE); |
| 137 | _beforeSetNextScene->setUserData(this); |
| 138 | _afterSetNextScene = new EventCustom(EVENT_AFTER_SET_NEXT_SCENE); |
| 139 | _afterSetNextScene->setUserData(this); |
| 140 | _eventAfterDraw = new EventCustom(EVENT_AFTER_DRAW); |
| 141 | _eventAfterDraw->setUserData(this); |
| 142 | _eventBeforeDraw = new EventCustom(EVENT_BEFORE_DRAW); |
| 143 | _eventBeforeDraw->setUserData(this); |
| 144 | _eventAfterVisit = new EventCustom(EVENT_AFTER_VISIT); |
| 145 | _eventAfterVisit->setUserData(this); |
| 146 | _eventBeforeUpdate = new EventCustom(EVENT_BEFORE_UPDATE); |
| 147 | _eventBeforeUpdate->setUserData(this); |
| 148 | _eventAfterUpdate = new EventCustom(EVENT_AFTER_UPDATE); |
| 149 | _eventAfterUpdate->setUserData(this); |
| 150 | _eventProjectionChanged = new EventCustom(EVENT_PROJECTION_CHANGED); |
| 151 | _eventProjectionChanged->setUserData(this); |
| 152 | _eventResetDirector = new EventCustom(EVENT_RESET); |
| 153 | // init TextureCache |
| 154 | initTextureCache(); |
| 155 | initMatrixStack(); |
| 156 | |
| 157 | _renderer = new Renderer; |
| 158 | |
| 159 | #if AX_ENABLE_CACHE_TEXTURE_DATA |
| 160 | // listen the event that renderer was recreated on Android/WP8 |
| 161 | _rendererRecreatedListener = EventListenerCustom::create(EVENT_RENDERER_RECREATED, [this](EventCustom*) { |
| 162 | _isStatusLabelUpdated = true; // Force recreation of textures |
| 163 | }); |
| 164 | |
| 165 | _eventDispatcher->addEventListenerWithFixedPriority(_rendererRecreatedListener, -1); |
| 166 | #endif |
| 167 | |
| 168 | return true; |
| 169 | } |
| 170 |
no test coverage detected