Chromium Code Reviews| Index: cc/layers/video_layer_impl.cc |
| diff --git a/cc/layers/video_layer_impl.cc b/cc/layers/video_layer_impl.cc |
| index d62a002e4b92c050db11a2e4a9439892d463a0ba..8e9fa023d8184ef1f599d0a01668c1ebfe182e4b 100644 |
| --- a/cc/layers/video_layer_impl.cc |
| +++ b/cc/layers/video_layer_impl.cc |
| @@ -69,8 +69,10 @@ void VideoLayerImpl::DidBecomeActive() { |
| provider_client_impl_->set_active_video_layer(this); |
| } |
| -void VideoLayerImpl::WillDraw(ResourceProvider* resource_provider) { |
| - LayerImpl::WillDraw(resource_provider); |
| +bool VideoLayerImpl::WillDraw(DrawMode draw_mode, |
| + ResourceProvider* resource_provider) { |
| + if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) |
| + return false; |
| // Explicitly acquire and release the provider mutex so it can be held from |
| // WillDraw to DidDraw. Since the compositor thread is in the middle of |
| @@ -86,9 +88,11 @@ void VideoLayerImpl::WillDraw(ResourceProvider* resource_provider) { |
| updater_.reset(); |
| provider_client_impl_->ReleaseLock(); |
| - return; |
| + return false; |
| } |
| + LayerImpl::WillDraw(draw_mode, resource_provider); |
|
danakj
2013/06/04 15:30:44
In other layers we always return this value. Shoul
|
| + |
| if (!updater_) |
| updater_.reset(new VideoResourceUpdater(resource_provider)); |
| @@ -105,14 +109,14 @@ void VideoLayerImpl::WillDraw(ResourceProvider* resource_provider) { |
| software_resources_ = external_resources.software_resources; |
| software_release_callback_ = |
| external_resources.software_release_callback; |
| - return; |
| + return true; |
| } |
| if (external_resources.hardware_resource) { |
| hardware_resource_ = external_resources.hardware_resource; |
| hardware_release_callback_ = |
| external_resources.hardware_release_callback; |
| - return; |
| + return true; |
| } |
| for (size_t i = 0; i < external_resources.mailboxes.size(); ++i) { |
| @@ -120,12 +124,13 @@ void VideoLayerImpl::WillDraw(ResourceProvider* resource_provider) { |
| resource_provider->CreateResourceFromTextureMailbox( |
| external_resources.mailboxes[i])); |
| } |
| + |
| + return true; |
| } |
| void VideoLayerImpl::AppendQuads(QuadSink* quad_sink, |
| AppendQuadsData* append_quads_data) { |
| - if (!frame_.get()) |
| - return; |
| + DCHECK(frame_.get()); |
| SharedQuadState* shared_quad_state = |
| quad_sink->UseSharedQuadState(CreateSharedQuadState()); |
| @@ -280,8 +285,7 @@ void VideoLayerImpl::AppendQuads(QuadSink* quad_sink, |
| void VideoLayerImpl::DidDraw(ResourceProvider* resource_provider) { |
| LayerImpl::DidDraw(resource_provider); |
| - if (!frame_.get()) |
| - return; |
| + DCHECK(frame_.get()); |
| if (frame_resource_type_ == |
| VideoFrameExternalResources::SOFTWARE_RESOURCE) { |