// 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. #ifndef SKY_ENGINE_CORE_ANIMATION_SAMPLEDEFFECT_H_ #define SKY_ENGINE_CORE_ANIMATION_SAMPLEDEFFECT_H_ #include "sky/engine/core/animation/Animation.h" #include "sky/engine/core/animation/AnimationPlayer.h" #include "sky/engine/core/animation/Interpolation.h" #include "sky/engine/wtf/BitArray.h" #include "sky/engine/wtf/Vector.h" namespace blink { class SampledEffect { public: static PassOwnPtr create(Animation* animation, PassOwnPtr > > interpolations) { return adoptPtr(new SampledEffect(animation, interpolations)); } bool canChange() const; void clear(); const Vector >& interpolations() const { return *m_interpolations; } void setInterpolations(PassOwnPtr > > interpolations) { m_interpolations = interpolations; } Animation* animation() const { return m_animation; } unsigned sequenceNumber() const { return m_sequenceNumber; } Animation::Priority priority() const { return m_priority; } void removeReplacedInterpolationsIfNeeded(const BitArray&); private: SampledEffect(Animation*, PassOwnPtr > >); RawPtr m_animation; #if !ENABLE(OILPAN) RefPtr m_player; #endif OwnPtr > > m_interpolations; const unsigned m_sequenceNumber; Animation::Priority m_priority; }; } // namespace blink #endif // SKY_ENGINE_CORE_ANIMATION_SAMPLEDEFFECT_H_