blob: 323ab4aef79fac945fbbed39cf30d2faf959bc3f [file] [log] [blame]
// Copyright 2016 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 CompositorAnimationTimeline_h
#define CompositorAnimationTimeline_h
#include "base/memory/ref_counted.h"
#include "cc/animation/animation_timeline.h"
#include "platform/PlatformExport.h"
#include "wtf/Noncopyable.h"
#include <memory>
namespace blink {
class CompositorAnimationHost;
class CompositorAnimationPlayerClient;
// A compositor representation for cc::AnimationTimeline.
class PLATFORM_EXPORT CompositorAnimationTimeline {
WTF_MAKE_NONCOPYABLE(CompositorAnimationTimeline);
public:
CompositorAnimationTimeline();
virtual ~CompositorAnimationTimeline();
cc::AnimationTimeline* animationTimeline() const;
// TODO(ymalik): Currently we just wrap cc::AnimationHost in
// CompositorAnimationHost. Correctly introduce CompositorAnimationHost
// to blink. See crbug.com/610763.
CompositorAnimationHost compositorAnimationHost();
virtual void playerAttached(const CompositorAnimationPlayerClient&);
virtual void playerDestroyed(const CompositorAnimationPlayerClient&);
private:
scoped_refptr<cc::AnimationTimeline> m_animationTimeline;
};
} // namespace blink
#endif // CompositorAnimationTimeline_h