本文整理汇总了C++中WillBeHeapVector::end方法的典型用法代码示例。如果您正苦于以下问题:C++ WillBeHeapVector::end方法的具体用法?C++ WillBeHeapVector::end怎么用?C++ WillBeHeapVector::end使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类WillBeHeapVector
的用法示例。
在下文中一共展示了WillBeHeapVector::end方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: serviceAnimations
void AnimationTimeline::serviceAnimations(TimingUpdateReason reason)
{
TRACE_EVENT0("blink", "AnimationTimeline::serviceAnimations");
m_lastCurrentTimeInternal = currentTimeInternal();
m_timing->cancelWake();
WillBeHeapVector<RawPtrWillBeMember<Animation>> animations;
animations.reserveInitialCapacity(m_animationsNeedingUpdate.size());
for (RefPtrWillBeMember<Animation> animation : m_animationsNeedingUpdate)
animations.append(animation.get());
std::sort(animations.begin(), animations.end(), Animation::hasLowerPriority);
for (Animation* animation : animations) {
if (!animation->update(reason))
m_animationsNeedingUpdate.remove(animation);
}
ASSERT(m_outdatedAnimationCount == 0);
#if ENABLE(ASSERT)
for (const auto& animation : m_animationsNeedingUpdate)
ASSERT(!animation->outdated());
#endif
}
示例2: serviceAnimations
void AnimationTimeline::serviceAnimations(TimingUpdateReason reason)
{
TRACE_EVENT0("webkit", "AnimationTimeline::serviceAnimations");
m_timing->cancelWake();
double timeToNextEffect = std::numeric_limits<double>::infinity();
WillBeHeapVector<RawPtrWillBeMember<AnimationPlayer> > players;
for (WillBeHeapHashSet<RefPtrWillBeMember<AnimationPlayer> >::iterator it = m_playersNeedingUpdate.begin(); it != m_playersNeedingUpdate.end(); ++it)
players.append(it->get());
std::sort(players.begin(), players.end(), AnimationPlayer::hasLowerPriority);
for (size_t i = 0; i < players.size(); ++i) {
AnimationPlayer* player = players[i];
if (player->update(reason))
timeToNextEffect = std::min(timeToNextEffect, player->timeToEffectChange());
else
m_playersNeedingUpdate.remove(player);
}
if (timeToNextEffect < s_minimumDelay)
m_timing->serviceOnNextFrame();
else if (timeToNextEffect != std::numeric_limits<double>::infinity())
m_timing->wakeAfter(timeToNextEffect - s_minimumDelay);
ASSERT(!hasOutdatedAnimationPlayer());
}
示例3: serviceAnimations
void SVGDocumentExtensions::serviceAnimations(double monotonicAnimationStartTime)
{
WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> > timeContainers;
timeContainers.appendRange(m_timeContainers.begin(), m_timeContainers.end());
WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator end = timeContainers.end();
for (WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator itr = timeContainers.begin(); itr != end; ++itr)
(*itr)->timeContainer()->serviceAnimations(monotonicAnimationStartTime);
}
示例4:
WillBeHeapVector<RefPtrWillBeMember<AnimationPlayer>> AnimationTimeline::getAnimationPlayers()
{
WillBeHeapVector<RefPtrWillBeMember<AnimationPlayer>> animationPlayers;
for (const auto& player : m_players) {
if (player->source() && (player->source()->isCurrent() || player->source()->isInEffect()))
animationPlayers.append(player);
}
std::sort(animationPlayers.begin(), animationPlayers.end(), compareAnimationPlayers);
return animationPlayers;
}
示例5:
WillBeHeapVector<RefPtrWillBeMember<Animation>> AnimationTimeline::getAnimations()
{
WillBeHeapVector<RefPtrWillBeMember<Animation>> animations;
for (const auto& animation : m_animations) {
if (animation->effect() && (animation->effect()->isCurrent() || animation->effect()->isInEffect()))
animations.append(animation);
}
std::sort(animations.begin(), animations.end(), compareAnimations);
return animations;
}
示例6:
WillBeHeapVector<RefPtrWillBeMember<AnimationPlayer> > AnimationTimeline::getAnimationPlayers()
{
WillBeHeapVector<RefPtrWillBeMember<AnimationPlayer> > animationPlayers;
for (WillBeHeapHashSet<RawPtrWillBeWeakMember<AnimationPlayer> >::iterator it = m_players.begin(); it != m_players.end(); ++it) {
if ((*it)->source() && (*it)->source()->isCurrent()) {
animationPlayers.append(*it);
}
}
std::sort(animationPlayers.begin(), animationPlayers.end(), compareAnimationPlayers);
return animationPlayers;
}
示例7: scheduledEventTimerFired
void RTCDataChannel::scheduledEventTimerFired(Timer<RTCDataChannel>*)
{
WillBeHeapVector<RefPtrWillBeMember<Event>> events;
events.swap(m_scheduledEvents);
WillBeHeapVector<RefPtrWillBeMember<Event>>::iterator it = events.begin();
for (; it != events.end(); ++it)
dispatchEvent((*it).release());
events.clear();
}
示例8: PrintTo
void PrintTo(const AnimatableRepeatable& animValue, ::std::ostream* os)
{
*os << "AnimatableRepeatable(";
const WillBeHeapVector<RefPtrWillBeMember<AnimatableValue> > v = animValue.values();
for (WillBeHeapVector<RefPtrWillBeMember<AnimatableValue> >::const_iterator it = v.begin(); it != v.end(); ++it) {
PrintTo(*(it->get()), os);
if (it+1 != v.end())
*os << ", ";
}
*os << ")";
}
示例9: scheduledEventTimerFired
void RTCDTMFSender::scheduledEventTimerFired(Timer<RTCDTMFSender>*)
{
if (m_stopped)
return;
WillBeHeapVector<RefPtrWillBeMember<Event> > events;
events.swap(m_scheduledEvents);
WillBeHeapVector<RefPtrWillBeMember<Event> >::iterator it = events.begin();
for (; it != events.end(); ++it)
dispatchEvent((*it).release());
}
示例10: stopAnimValAnimation
void SVGAnimatedTypeAnimator::stopAnimValAnimation(const WillBeHeapVector<RawPtrWillBeMember<SVGElement> >& list)
{
ASSERT(isAnimatingSVGDom());
SVGElement::InstanceUpdateBlocker blocker(m_contextElement);
WillBeHeapVector<RawPtrWillBeMember<SVGElement> >::const_iterator it = list.begin();
WillBeHeapVector<RawPtrWillBeMember<SVGElement> >::const_iterator itEnd = list.end();
for (; it != itEnd; ++it) {
RefPtr<SVGAnimatedPropertyBase> animatedProperty = (*it)->propertyFromAttribute(m_animatedProperty->attributeName());
if (animatedProperty)
animatedProperty->animationEnded();
}
}
示例11: dispatchScheduledEvent
void RTCPeerConnection::dispatchScheduledEvent()
{
if (m_stopped)
return;
WillBeHeapVector<RefPtrWillBeMember<Event> > events;
events.swap(m_scheduledEvents);
WillBeHeapVector<RefPtrWillBeMember<Event> >::iterator it = events.begin();
for (; it != events.end(); ++it)
dispatchEvent((*it).release());
events.clear();
}
示例12: startAnimations
void SVGDocumentExtensions::startAnimations()
{
// FIXME: Eventually every "Time Container" will need a way to latch on to some global timer
// starting animations for a document will do this "latching"
// FIXME: We hold a ref pointers to prevent a shadow tree from getting removed out from underneath us.
// In the future we should refactor the use-element to avoid this. See https://webkit.org/b/53704
WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> > timeContainers;
timeContainers.appendRange(m_timeContainers.begin(), m_timeContainers.end());
WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator end = timeContainers.end();
for (WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator itr = timeContainers.begin(); itr != end; ++itr) {
SMILTimeContainer* timeContainer = (*itr)->timeContainer();
if (!timeContainer->isStarted())
timeContainer->begin();
}
}
示例13: dispatchSVGLoadEventToOutermostSVGElements
void SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements()
{
WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> > timeContainers;
timeContainers.appendRange(m_timeContainers.begin(), m_timeContainers.end());
WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator end = timeContainers.end();
for (WillBeHeapVector<RefPtrWillBeMember<SVGSVGElement> >::iterator it = timeContainers.begin(); it != end; ++it) {
SVGSVGElement* outerSVG = it->get();
if (!outerSVG->isOutermostSVGSVGElement())
continue;
// don't dispatch the load event document is not wellformed (for XML/standalone svg)
if (outerSVG->document().wellFormed() || !outerSVG->document().isSVGDocument())
outerSVG->sendSVGLoadEventIfPossible();
}
}
示例14: matchPageRules
void PageRuleCollector::matchPageRules(RuleSet* rules)
{
if (!rules)
return;
rules->compactRulesIfNeeded();
WillBeHeapVector<RawPtrWillBeMember<StyleRulePage> > matchedPageRules;
matchPageRulesForList(matchedPageRules, rules->pageRules(), m_isLeftPage, m_isFirstPage, m_pageName);
if (matchedPageRules.isEmpty())
return;
std::stable_sort(matchedPageRules.begin(), matchedPageRules.end(), comparePageRules);
for (unsigned i = 0; i < matchedPageRules.size(); i++)
m_result.addMatchedProperties(&matchedPageRules[i]->properties());
}
示例15: rebuildAllElementReferencesForTarget
void SVGDocumentExtensions::rebuildAllElementReferencesForTarget(SVGElement* referencedElement)
{
ASSERT(referencedElement);
ElementDependenciesMap::iterator it = m_elementDependencies.find(referencedElement);
if (it == m_elementDependencies.end())
return;
ASSERT(it->key == referencedElement);
WillBeHeapVector<RawPtrWillBeMember<SVGElement> > toBeNotified;
SVGElementSet* referencingElements = it->value.get();
copyToVector(*referencingElements, toBeNotified);
// Force rebuilding the referencingElement so it knows about this change.
WillBeHeapVector<RawPtrWillBeMember<SVGElement> >::iterator vectorEnd = toBeNotified.end();
for (WillBeHeapVector<RawPtrWillBeMember<SVGElement> >::iterator vectorIt = toBeNotified.begin(); vectorIt != vectorEnd; ++vectorIt) {
// Before rebuilding referencingElement ensure it was not removed from under us.
if (SVGElementSet* referencingElements = setOfElementsReferencingTarget(referencedElement)) {
if (referencingElements->contains(*vectorIt))
(*vectorIt)->svgAttributeChanged(XLinkNames::hrefAttr);
}
}
}