Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Unified Diff: cc/layers/texture_layer_impl.cc

Issue 16211002: Skip drawing unsupported layers in forced software mode (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix cc_unittests Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « cc/layers/texture_layer_impl.h ('k') | cc/layers/texture_layer_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
« no previous file with comments | « cc/layers/texture_layer_impl.h ('k') | cc/layers/texture_layer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698