mirror of
https://github.com/flutter/flutter.git
synced 2026-02-20 02:29:02 +08:00
This CL generated by |sed -i '/sky\/engine\/config.h/d'| and a manual sweep to catch some oddballs. TBR=eseidel@chromium.org Review URL: https://codereview.chromium.org/1206763002.
58 lines
1.6 KiB
C++
58 lines
1.6 KiB
C++
// Copyright 2014 The Chromium Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
#include "sky/engine/core/animation/SampledEffect.h"
|
|
|
|
#include "sky/engine/core/animation/StyleInterpolation.h"
|
|
|
|
namespace blink {
|
|
|
|
SampledEffect::SampledEffect(Animation* animation, PassOwnPtr<Vector<RefPtr<Interpolation> > > interpolations)
|
|
: m_animation(animation)
|
|
#if !ENABLE(OILPAN)
|
|
, m_player(animation->player())
|
|
#endif
|
|
, m_interpolations(interpolations)
|
|
, m_sequenceNumber(animation->player()->sequenceNumber())
|
|
, m_priority(animation->priority())
|
|
{
|
|
ASSERT(m_interpolations && !m_interpolations->isEmpty());
|
|
}
|
|
|
|
bool SampledEffect::canChange() const
|
|
{
|
|
#if ENABLE(OILPAN)
|
|
return m_animation;
|
|
#else
|
|
if (!m_animation)
|
|
return false;
|
|
// FIXME: This check won't be needed when Animation and AnimationPlayer are moved to Oilpan.
|
|
return !m_player->canFree();
|
|
#endif
|
|
}
|
|
|
|
void SampledEffect::clear()
|
|
{
|
|
#if !ENABLE(OILPAN)
|
|
m_player = nullptr;
|
|
#endif
|
|
m_animation = nullptr;
|
|
m_interpolations->clear();
|
|
}
|
|
|
|
void SampledEffect::removeReplacedInterpolationsIfNeeded(const BitArray<numCSSProperties>& replacedProperties)
|
|
{
|
|
if (canChange() && m_animation->isCurrent())
|
|
return;
|
|
|
|
size_t dest = 0;
|
|
for (size_t i = 0; i < m_interpolations->size(); i++) {
|
|
if (!replacedProperties.get(toStyleInterpolation(m_interpolations->at(i).get())->id()))
|
|
m_interpolations->at(dest++) = m_interpolations->at(i);
|
|
}
|
|
m_interpolations->shrink(dest);
|
|
}
|
|
|
|
} // namespace blink
|