// Copyright 2015 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 "cc/blink/web_compositor_animation_player_impl.h" #include "cc/animation/animation_id_provider.h" #include "cc/animation/animation_player.h" #include "cc/blink/web_animation_impl.h" #include "cc/blink/web_to_cc_animation_delegate_adapter.h" #include "third_party/WebKit/public/platform/WebLayer.h" using cc::AnimationPlayer; namespace cc_blink { WebCompositorAnimationPlayerImpl::WebCompositorAnimationPlayerImpl() : animation_player_( AnimationPlayer::Create(cc::AnimationIdProvider::NextPlayerId())) { } WebCompositorAnimationPlayerImpl::~WebCompositorAnimationPlayerImpl() { } CC_BLINK_EXPORT cc::AnimationPlayer* WebCompositorAnimationPlayerImpl::animation_player() const { return animation_player_.get(); } void WebCompositorAnimationPlayerImpl::setAnimationDelegate( blink::WebCompositorAnimationDelegate* delegate) { animation_delegate_adapter_.reset( new WebToCCAnimationDelegateAdapter(delegate)); animation_player_->set_layer_animation_delegate( animation_delegate_adapter_.get()); } void WebCompositorAnimationPlayerImpl::attachLayer(blink::WebLayer* web_layer) { animation_player_->AttachLayer(web_layer->id()); } void WebCompositorAnimationPlayerImpl::detachLayer() { animation_player_->DetachLayer(); } bool WebCompositorAnimationPlayerImpl::isLayerAttached() const { return animation_player_->layer_id() != 0; } void WebCompositorAnimationPlayerImpl::addAnimation( blink::WebCompositorAnimation* animation) { animation_player_->AddAnimation( static_cast(animation)->PassAnimation()); delete animation; } void WebCompositorAnimationPlayerImpl::removeAnimation(int animation_id) { animation_player_->RemoveAnimation(animation_id); } void WebCompositorAnimationPlayerImpl::pauseAnimation(int animation_id, double time_offset) { animation_player_->PauseAnimation(animation_id, time_offset); } } // namespace cc_blink