refactor(core): 使用全局变量替换Director中的成员变量
将Director类中的Scheduler和SvcMgr成员变量替换为全局变量SCHED和SVC_MGR, 并添加IService的友元声明以允许SvcMgr访问其私有成员
This commit is contained in:
parent
71eeeac033
commit
5ef1873a44
|
|
@ -20,8 +20,8 @@ public:
|
||||||
void mainLoop(float dt);
|
void mainLoop(float dt);
|
||||||
void mainLoopParallel(float dt);
|
void mainLoopParallel(float dt);
|
||||||
|
|
||||||
Scheduler& sched() { return *sched_; }
|
Scheduler& sched() { return SCHED; }
|
||||||
SvcMgr& svcs() { return *svcMgr_; }
|
SvcMgr& svcs() { return SVC_MGR; }
|
||||||
|
|
||||||
float dt() const { return dt_; }
|
float dt() const { return dt_; }
|
||||||
float totalTime() const { return totalTime_; }
|
float totalTime() const { return totalTime_; }
|
||||||
|
|
@ -36,9 +36,6 @@ public:
|
||||||
private:
|
private:
|
||||||
Director() = default;
|
Director() = default;
|
||||||
|
|
||||||
Unique<Scheduler> sched_;
|
|
||||||
Unique<SvcMgr> svcMgr_;
|
|
||||||
|
|
||||||
float dt_ = 0.0f;
|
float dt_ = 0.0f;
|
||||||
float totalTime_ = 0.0f;
|
float totalTime_ = 0.0f;
|
||||||
float fixedAccumulator_ = 0.0f;
|
float fixedAccumulator_ = 0.0f;
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,8 @@ protected:
|
||||||
IService() = default;
|
IService() = default;
|
||||||
bool inited_ = false;
|
bool inited_ = false;
|
||||||
bool enabled_ = true;
|
bool enabled_ = true;
|
||||||
|
|
||||||
|
friend class SvcMgr;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -10,9 +10,6 @@ Director& Director::inst() {
|
||||||
bool Director::init() {
|
bool Director::init() {
|
||||||
if (inited_) return true;
|
if (inited_) return true;
|
||||||
|
|
||||||
sched_ = makeUnique<Scheduler>();
|
|
||||||
svcMgr_ = makeUnique<SvcMgr>();
|
|
||||||
|
|
||||||
inited_ = true;
|
inited_ = true;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
@ -20,11 +17,8 @@ bool Director::init() {
|
||||||
void Director::shutdown() {
|
void Director::shutdown() {
|
||||||
if (!inited_) return;
|
if (!inited_) return;
|
||||||
|
|
||||||
svcMgr_->shutdownAll();
|
SVC_MGR.shutdownAll();
|
||||||
sched_->unscheduleAll();
|
SCHED.unscheduleAll();
|
||||||
|
|
||||||
svcMgr_.reset();
|
|
||||||
sched_.reset();
|
|
||||||
|
|
||||||
inited_ = false;
|
inited_ = false;
|
||||||
}
|
}
|
||||||
|
|
@ -36,17 +30,17 @@ void Director::mainLoop(float dt) {
|
||||||
totalTime_ += dt;
|
totalTime_ += dt;
|
||||||
frameCount_++;
|
frameCount_++;
|
||||||
|
|
||||||
svcMgr_->updateAll(dt);
|
SVC_MGR.updateAll(dt);
|
||||||
|
|
||||||
fixedAccumulator_ += dt;
|
fixedAccumulator_ += dt;
|
||||||
while (fixedAccumulator_ >= fixedDt_) {
|
while (fixedAccumulator_ >= fixedDt_) {
|
||||||
svcMgr_->fixedUpdateAll(fixedDt_);
|
SVC_MGR.fixedUpdateAll(fixedDt_);
|
||||||
fixedAccumulator_ -= fixedDt_;
|
fixedAccumulator_ -= fixedDt_;
|
||||||
}
|
}
|
||||||
|
|
||||||
sched_->update(dt);
|
SCHED.update(dt);
|
||||||
|
|
||||||
svcMgr_->lateUpdateAll(dt);
|
SVC_MGR.lateUpdateAll(dt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Director::mainLoopParallel(float dt) {
|
void Director::mainLoopParallel(float dt) {
|
||||||
|
|
@ -56,17 +50,17 @@ void Director::mainLoopParallel(float dt) {
|
||||||
totalTime_ += dt;
|
totalTime_ += dt;
|
||||||
frameCount_++;
|
frameCount_++;
|
||||||
|
|
||||||
svcMgr_->updateAll(dt);
|
SVC_MGR.updateAll(dt);
|
||||||
|
|
||||||
fixedAccumulator_ += dt;
|
fixedAccumulator_ += dt;
|
||||||
while (fixedAccumulator_ >= fixedDt_) {
|
while (fixedAccumulator_ >= fixedDt_) {
|
||||||
svcMgr_->fixedUpdateAll(fixedDt_);
|
SVC_MGR.fixedUpdateAll(fixedDt_);
|
||||||
fixedAccumulator_ -= fixedDt_;
|
fixedAccumulator_ -= fixedDt_;
|
||||||
}
|
}
|
||||||
|
|
||||||
sched_->updateParallel(dt);
|
SCHED.updateParallel(dt);
|
||||||
|
|
||||||
svcMgr_->lateUpdateAll(dt);
|
SVC_MGR.lateUpdateAll(dt);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Director::pause() {
|
void Director::pause() {
|
||||||
|
|
@ -78,7 +72,7 @@ void Director::resume() {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Director::setTimeScale(float scale) {
|
void Director::setTimeScale(float scale) {
|
||||||
sched_->setTimeScale(scale);
|
SCHED.setTimeScale(scale);
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace extra2d
|
} // namespace extra2d
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue