Chromium Code Reviews| 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..622ddba8f7d96e559edfd7bba91b0e5d64fe2e92 100644 |
| --- a/cc/layers/texture_layer_impl.cc |
| +++ b/cc/layers/texture_layer_impl.cc |
| @@ -63,14 +63,20 @@ 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 (!texture_id_ || |
| + draw_mode == DRAW_MODE_RESOURCELESS_SOFTWARE) |
| + return false; |
|
piman
2013/05/31 00:48:15
still nak, because if uses_mailbox_, then texture_
boliu
2013/05/31 02:50:07
Second try! Should be fixed now. The second if con
|
| + |
| + if (!uses_mailbox_) { |
| + DCHECK(!external_texture_resource_); |
| + external_texture_resource_ = |
| + resource_provider->CreateResourceFromExternalTexture( |
| + GL_TEXTURE_2D, |
| + texture_id_); |
| + } |
| + return LayerImpl::WillDraw(draw_mode, resource_provider); |
| } |
| void TextureLayerImpl::AppendQuads(QuadSink* quad_sink, |
| @@ -103,6 +109,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 |