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) { |