void CCLayerAnimationController::removeAnimationsCompletedOnMainThread(CCLayerAnimationController* controllerImpl) const { // Delete all impl thread animations for which there is no corresponding main thread animation. // Each iteration, controller->m_activeAnimations.size() is decremented or i is incremented // guaranteeing progress towards loop termination. for (size_t i = 0; i < controllerImpl->m_activeAnimations.size();) { CCActiveAnimation* current = getActiveAnimation(controllerImpl->m_activeAnimations[i]->group(), controllerImpl->m_activeAnimations[i]->targetProperty()); if (!current) controllerImpl->m_activeAnimations.remove(i); else i++; } }
void CCLayerAnimationController::pushAnimationProperties(CCLayerAnimationControllerImpl* controllerImpl) { // Delete all impl thread animations for which there is no corresponding main thread animation. // Each iteration, controller->m_activeAnimations.size() is decremented or i is incremented // guaranteeing progress towards loop termination. for (size_t i = 0; i < controllerImpl->m_activeAnimations.size(); ++i) { CCActiveAnimation* currentImpl = controllerImpl->m_activeAnimations[i].get(); CCActiveAnimation* current = getActiveAnimation(currentImpl->group(), currentImpl->targetProperty()); ASSERT(current); if (current) current->synchronizeProperties(currentImpl); } }