CCDisplayLinkDirector::mainLoop(
= (!
CCPoolManager::sharedPoolManager()->
CCDirector::drawScene(
(!->|
->
->++
->
定時器 和 普通intervalCCScheduler 中的主要存儲變量。(
_listEntry *m_pUpdatesNegList;
_listEntry *m_pUpdates0List;
_listEntry *m_pUpdatesPosList;
_hashUpdateEntry *m_pHashForUpdates;
_hashSelectorEntry *m_pHashForTimers;
CCScheduler::update(= ;
(m_fTimeScale != *=
tListEntry *pEntry, *
((! pEntry->paused) && (! pEntry->->target->
((! pEntry->paused) && (! pEntry->->target->
((! pEntry->paused) && (! pEntry->->target->
(tHashTimerEntry *elt = m_pHashForTimers; elt !=== (! m_pCurrentTarget->
(elt->timerIndex = ; elt->timerIndex < elt->timers->num; ++(elt->->currentTimer = (CCTimer*)(elt->timers->arr[elt->->currentTimerSalvaged = ->currentTimer-> (elt->
elt->currentTimer->->currentTimer =
elt = (tHashTimerEntry *)elt->
(m_bCurrentTargetSalvaged && m_pCurrentTarget->timers->num ==
( i = m_pScriptHandlerEntries->count() - ; i >= ; i--* pEntry = static_cast<CCSchedulerScriptHandlerEntry*>(m_pScriptHandlerEntries-> (pEntry->-> (!pEntry->->getTimer()->
(pEntry->->
(pEntry->->
(pEntry->->= ;
=
對於定時器,每個節點只能注冊一個定時器,因此調度器中存儲定時器數據的結構體主要保存了注冊節點和優先級。每一幀通過迭代調用鏈表中節點的
對於普通定時器,每個節點能注冊多個定時器,引擎使用回調函數(選擇器)來區分同一個節點的不同定時器。調度器為每一個定時器創建了一個
//
((! pEntry->paused) && (! pEntry->