Index: trunk/src/cc/layers/texture_layer.cc |
=================================================================== |
--- trunk/src/cc/layers/texture_layer.cc (revision 220454) |
+++ trunk/src/cc/layers/texture_layer.cc (working copy) |
@@ -138,9 +138,6 @@ |
holder_ref_.reset(); |
needs_set_mailbox_ = true; |
SetNeedsCommit(); |
- // The active frame needs to be replaced and the mailbox returned before the |
- // commit is called complete. |
- SetNextCommitWaitsForActivation(); |
} |
void TextureLayer::WillModifyTexture() { |
@@ -164,24 +161,16 @@ |
} |
if (layer_tree_host()) { |
- if (texture_id_) { |
+ if (texture_id_) |
layer_tree_host()->AcquireLayerTextures(); |
- // The texture id needs to be removed from the active tree before the |
- // commit is called complete. |
- SetNextCommitWaitsForActivation(); |
- } |
if (rate_limit_context_ && client_) |
layer_tree_host()->StopRateLimiter(client_->Context3d()); |
} |
// If we're removed from the tree, the TextureLayerImpl will be destroyed, and |
// we will need to set the mailbox again on a new TextureLayerImpl the next |
// time we push. |
- if (!host && uses_mailbox_ && holder_ref_) { |
+ if (!host && uses_mailbox_ && holder_ref_) |
needs_set_mailbox_ = true; |
- // The active frame needs to be replaced and the mailbox returned before the |
- // commit is called complete. |
- SetNextCommitWaitsForActivation(); |
- } |
Layer::SetLayerTreeHost(host); |
} |
@@ -207,9 +196,6 @@ |
client_->Context3d()->getGraphicsResetStatusARB() != GL_NO_ERROR) |
texture_id_ = 0; |
updated = true; |
- // The texture id needs to be removed from the active tree before the |
- // commit is called complete. |
- SetNextCommitWaitsForActivation(); |
} |
} |
@@ -255,6 +241,13 @@ |
return Region(); |
} |
+bool TextureLayer::BlocksPendingCommit() const { |
+ // Double-buffered texture layers need to be blocked until they can be made |
+ // triple-buffered. Single-buffered layers already prevent draws, so |
+ // can block too for simplicity. |
+ return DrawsContent(); |
+} |
+ |
bool TextureLayer::CanClipSelf() const { |
return true; |
} |