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

Unified Diff: cc/layers/texture_layer.cc

Issue 227413011: Remove old texture path in TextureLayer (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 8 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.h ('k') | cc/layers/texture_layer_client.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/layers/texture_layer.cc
diff --git a/cc/layers/texture_layer.cc b/cc/layers/texture_layer.cc
index 4285ee0eb54caa4127ddbceb8f0e185c57a3c1b1..05391fe5d637bf8a93c2cd4ae8b1dac11ff643ac 100644
--- a/cc/layers/texture_layer.cc
+++ b/cc/layers/texture_layer.cc
@@ -16,27 +16,20 @@
namespace cc {
-scoped_refptr<TextureLayer> TextureLayer::Create(TextureLayerClient* client) {
- return scoped_refptr<TextureLayer>(new TextureLayer(client, false));
-}
-
scoped_refptr<TextureLayer> TextureLayer::CreateForMailbox(
TextureLayerClient* client) {
- return scoped_refptr<TextureLayer>(new TextureLayer(client, true));
+ return scoped_refptr<TextureLayer>(new TextureLayer(client));
}
-TextureLayer::TextureLayer(TextureLayerClient* client, bool uses_mailbox)
+TextureLayer::TextureLayer(TextureLayerClient* client)
: Layer(),
client_(client),
- uses_mailbox_(uses_mailbox),
flipped_(true),
uv_top_left_(0.f, 0.f),
uv_bottom_right_(1.f, 1.f),
premultiplied_alpha_(true),
blend_background_color_(false),
rate_limit_context_(false),
- impl_may_draw_client_data_(false),
- texture_id_(0),
needs_set_mailbox_(false) {
vertex_opacity_[0] = 1.0f;
vertex_opacity_[1] = 1.0f;
@@ -55,25 +48,11 @@ void TextureLayer::ClearClient() {
}
void TextureLayer::ClearTexture() {
- if (uses_mailbox_) {
- SetTextureMailbox(TextureMailbox(), scoped_ptr<SingleReleaseCallback>());
- } else if (texture_id_) {
- if (impl_may_draw_client_data_) {
- DCHECK(layer_tree_host());
- layer_tree_host()->AcquireLayerTextures();
- impl_may_draw_client_data_ = false;
- }
- texture_id_ = 0;
- SetNeedsCommit();
- // The texture id needs to be removed from the active tree before the
- // commit is called complete.
- SetNextCommitWaitsForActivation();
- }
+ SetTextureMailbox(TextureMailbox(), scoped_ptr<SingleReleaseCallback>());
}
scoped_ptr<LayerImpl> TextureLayer::CreateLayerImpl(LayerTreeImpl* tree_impl) {
- return TextureLayerImpl::Create(tree_impl, id(), uses_mailbox_).
- PassAs<LayerImpl>();
+ return TextureLayerImpl::Create(tree_impl, id()).PassAs<LayerImpl>();
}
void TextureLayer::SetFlipped(bool flipped) {
@@ -138,7 +117,6 @@ void TextureLayer::SetTextureMailboxInternal(
scoped_ptr<SingleReleaseCallback> release_callback,
bool requires_commit,
bool allow_mailbox_reuse) {
- DCHECK(uses_mailbox_);
DCHECK(!mailbox.IsValid() || !holder_ref_ ||
!mailbox.Equals(holder_ref_->holder()->mailbox()) ||
allow_mailbox_reuse);
@@ -205,20 +183,13 @@ void TextureLayer::SetLayerTreeHost(LayerTreeHost* host) {
}
if (layer_tree_host()) {
- if (impl_may_draw_client_data_) {
- layer_tree_host()->AcquireLayerTextures();
- // The texture id needs to be removed from the active tree before the
- // commit is called complete.
- SetNextCommitWaitsForActivation();
- impl_may_draw_client_data_ = false;
- }
if (rate_limit_context_ && client_)
layer_tree_host()->StopRateLimiter();
}
// 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 && holder_ref_) {
needs_set_mailbox_ = true;
// The active frame needs to be replaced and the mailbox returned before the
// commit is called complete.
@@ -228,36 +199,27 @@ void TextureLayer::SetLayerTreeHost(LayerTreeHost* host) {
}
bool TextureLayer::DrawsContent() const {
- return (client_ || texture_id_ || holder_ref_) && Layer::DrawsContent();
+ return (client_ || holder_ref_) && Layer::DrawsContent();
}
bool TextureLayer::Update(ResourceUpdateQueue* queue,
const OcclusionTracker<Layer>* occlusion) {
bool updated = Layer::Update(queue, occlusion);
if (client_) {
- if (uses_mailbox_) {
- TextureMailbox mailbox;
- scoped_ptr<SingleReleaseCallback> release_callback;
- if (client_->PrepareTextureMailbox(
- &mailbox,
- &release_callback,
- layer_tree_host()->UsingSharedMemoryResources())) {
- // Already within a commit, no need to do another one immediately.
- bool requires_commit = false;
- bool allow_mailbox_reuse = false;
- SetTextureMailboxInternal(mailbox,
- release_callback.Pass(),
- requires_commit,
- allow_mailbox_reuse);
- updated = true;
- }
- } else {
- texture_id_ = client_->PrepareTexture();
+ TextureMailbox mailbox;
+ scoped_ptr<SingleReleaseCallback> release_callback;
+ if (client_->PrepareTextureMailbox(
+ &mailbox,
+ &release_callback,
+ layer_tree_host()->UsingSharedMemoryResources())) {
+ // Already within a commit, no need to do another one immediately.
+ bool requires_commit = false;
+ bool allow_mailbox_reuse = false;
+ SetTextureMailboxInternal(mailbox,
+ release_callback.Pass(),
+ requires_commit,
+ allow_mailbox_reuse);
updated = true;
- SetNeedsPushProperties();
- // The texture id needs to be removed from the active tree before the
- // commit is called complete.
- SetNextCommitWaitsForActivation();
}
}
@@ -277,7 +239,7 @@ void TextureLayer::PushPropertiesTo(LayerImpl* layer) {
texture_layer->SetVertexOpacity(vertex_opacity_);
texture_layer->SetPremultipliedAlpha(premultiplied_alpha_);
texture_layer->SetBlendBackgroundColor(blend_background_color_);
- if (uses_mailbox_ && needs_set_mailbox_) {
+ if (needs_set_mailbox_) {
TextureMailbox texture_mailbox;
scoped_ptr<SingleReleaseCallback> release_callback;
if (holder_ref_) {
@@ -287,9 +249,6 @@ void TextureLayer::PushPropertiesTo(LayerImpl* layer) {
}
texture_layer->SetTextureMailbox(texture_mailbox, release_callback.Pass());
needs_set_mailbox_ = false;
- } else {
- texture_layer->SetTextureId(texture_id_);
- impl_may_draw_client_data_ = texture_id_ && Layer::DrawsContent();
}
}
« no previous file with comments | « cc/layers/texture_layer.h ('k') | cc/layers/texture_layer_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698