1 // Copyright 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "cc/layers/video_layer.h"
7 #include "cc/layers/video_layer_impl.h"
11 scoped_refptr
<VideoLayer
> VideoLayer::Create(
12 VideoFrameProvider
* provider
,
13 media::VideoRotation video_rotation
) {
14 return make_scoped_refptr(new VideoLayer(provider
, video_rotation
));
17 VideoLayer::VideoLayer(VideoFrameProvider
* provider
,
18 media::VideoRotation video_rotation
)
19 : provider_(provider
), video_rotation_(video_rotation
) {
23 VideoLayer::~VideoLayer() {}
25 scoped_ptr
<LayerImpl
> VideoLayer::CreateLayerImpl(LayerTreeImpl
* tree_impl
) {
26 scoped_ptr
<VideoLayerImpl
> impl
=
27 VideoLayerImpl::Create(tree_impl
, id(), provider_
, video_rotation_
);
31 bool VideoLayer::Update(ResourceUpdateQueue
* queue
,
32 const OcclusionTracker
<Layer
>* occlusion
) {
33 bool updated
= Layer::Update(queue
, occlusion
);
35 // Video layer doesn't update any resources from the main thread side,
36 // but repaint rects need to be sent to the VideoLayerImpl via commit.
38 // This is the inefficient legacy redraw path for videos. It's better to
39 // communicate this directly to the VideoLayerImpl.
40 updated
|= !update_rect_
.IsEmpty();