Index: cc/layers/texture_layer_impl.cc |
diff --git a/cc/layers/texture_layer_impl.cc b/cc/layers/texture_layer_impl.cc |
index 17f6c480a39afcbce87816f66005f4d78919f0e6..44062975bf8949c2899f854e2f7c92eb5c473c9e 100644 |
--- a/cc/layers/texture_layer_impl.cc |
+++ b/cc/layers/texture_layer_impl.cc |
@@ -63,20 +63,25 @@ void TextureLayerImpl::PushPropertiesTo(LayerImpl* layer) { |
} |
} |
-void TextureLayerImpl::WillDraw(ResourceProvider* resource_provider) { |
- if (uses_mailbox_ || !texture_id_) |
- return; |
- DCHECK(!external_texture_resource_); |
- external_texture_resource_ = |
- resource_provider->CreateResourceFromExternalTexture( |
- GL_TEXTURE_2D, |
- texture_id_); |
+bool TextureLayerImpl::WillDraw(DrawMode draw_mode, |
+ ResourceProvider* resource_provider) { |
+ if (draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) |
+ return false; |
+ |
+ if (!uses_mailbox_ && texture_id_) { |
+ DCHECK(!external_texture_resource_); |
+ external_texture_resource_ = |
+ resource_provider->CreateResourceFromExternalTexture( |
+ GL_TEXTURE_2D, |
+ texture_id_); |
+ } |
+ return external_texture_resource_ && |
+ LayerImpl::WillDraw(draw_mode, resource_provider); |
} |
void TextureLayerImpl::AppendQuads(QuadSink* quad_sink, |
AppendQuadsData* append_quads_data) { |
- if (!external_texture_resource_) |
- return; |
+ DCHECK(external_texture_resource_); |
SharedQuadState* shared_quad_state = |
quad_sink->UseSharedQuadState(CreateSharedQuadState()); |
@@ -103,6 +108,7 @@ void TextureLayerImpl::AppendQuads(QuadSink* quad_sink, |
} |
void TextureLayerImpl::DidDraw(ResourceProvider* resource_provider) { |
+ LayerImpl::DidDraw(resource_provider); |
if (uses_mailbox_ || !external_texture_resource_) |
return; |
// FIXME: the following assert will not be true when sending resources to a |