OLD | NEW |
| (Empty) |
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. | |
4 | |
5 #include "cc/layers/video_layer.h" | |
6 | |
7 #include "cc/layers/video_layer_impl.h" | |
8 | |
9 namespace cc { | |
10 | |
11 scoped_refptr<VideoLayer> VideoLayer::Create( | |
12 VideoFrameProvider* provider, | |
13 media::VideoRotation video_rotation) { | |
14 return make_scoped_refptr(new VideoLayer(provider, video_rotation)); | |
15 } | |
16 | |
17 VideoLayer::VideoLayer(VideoFrameProvider* provider, | |
18 media::VideoRotation video_rotation) | |
19 : provider_(provider), video_rotation_(video_rotation) { | |
20 DCHECK(provider_); | |
21 } | |
22 | |
23 VideoLayer::~VideoLayer() {} | |
24 | |
25 scoped_ptr<LayerImpl> VideoLayer::CreateLayerImpl(LayerTreeImpl* tree_impl) { | |
26 scoped_ptr<VideoLayerImpl> impl = | |
27 VideoLayerImpl::Create(tree_impl, id(), provider_, video_rotation_); | |
28 return impl.Pass(); | |
29 } | |
30 | |
31 bool VideoLayer::Update(ResourceUpdateQueue* queue, | |
32 const OcclusionTracker<Layer>* occlusion) { | |
33 bool updated = Layer::Update(queue, occlusion); | |
34 | |
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. | |
37 // | |
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(); | |
41 | |
42 return updated; | |
43 } | |
44 | |
45 } // namespace cc | |
OLD | NEW |