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

Unified Diff: cc/layers/texture_layer_impl.cc

Issue 1142343008: cc: Rework overlays to not use the ResourceProvider and pass texture size (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 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
Index: cc/layers/texture_layer_impl.cc
diff --git a/cc/layers/texture_layer_impl.cc b/cc/layers/texture_layer_impl.cc
index 63d054900425d9af04ff18724f5b3088b569daca..3668503d77a6310441dca19c9f8c487167d08267 100644
--- a/cc/layers/texture_layer_impl.cc
+++ b/cc/layers/texture_layer_impl.cc
@@ -20,6 +20,7 @@ namespace cc {
TextureLayerImpl::TextureLayerImpl(LayerTreeImpl* tree_impl, int id)
: LayerImpl(tree_impl, id),
external_texture_resource_(0),
+ external_texture_allow_overlay_(false),
premultiplied_alpha_(true),
blend_background_color_(false),
flipped_(true),
@@ -84,6 +85,8 @@ bool TextureLayerImpl::WillDraw(DrawMode draw_mode,
external_texture_resource_ =
resource_provider->CreateResourceFromTextureMailbox(
texture_mailbox_, release_callback_.Pass());
+ external_texture_resource_size_ = texture_mailbox_.size();
+ external_texture_allow_overlay_ = texture_mailbox_.allow_overlay();
DCHECK(external_texture_resource_);
texture_copy_ = nullptr;
valid_texture_copy_ = false;
@@ -99,12 +102,12 @@ bool TextureLayerImpl::WillDraw(DrawMode draw_mode,
// hardware draw.
if (!texture_copy_)
texture_copy_ = ScopedResource::Create(resource_provider);
- if (texture_copy_->size() != texture_mailbox_.shared_memory_size() ||
+ if (texture_copy_->size() != texture_mailbox_.size() ||
resource_provider->InUseByConsumer(texture_copy_->id()))
texture_copy_->Free();
if (!texture_copy_->id()) {
- texture_copy_->Allocate(texture_mailbox_.shared_memory_size(),
+ texture_copy_->Allocate(texture_mailbox_.size(),
ResourceProvider::TEXTURE_HINT_IMMUTABLE,
resource_provider->best_texture_format());
}
@@ -127,11 +130,8 @@ bool TextureLayerImpl::WillDraw(DrawMode draw_mode,
}
resource_provider->SetPixels(
- texture_copy_->id(),
- pixels,
- gfx::Rect(texture_mailbox_.shared_memory_size()),
- gfx::Rect(texture_mailbox_.shared_memory_size()),
- gfx::Vector2d());
+ texture_copy_->id(), pixels, gfx::Rect(texture_mailbox_.size()),
+ gfx::Rect(texture_mailbox_.size()), gfx::Vector2d());
valid_texture_copy_ = true;
}
@@ -179,6 +179,10 @@ void TextureLayerImpl::AppendQuads(RenderPass* render_pass,
vertex_opacity_,
flipped_,
nearest_neighbor_);
+ if (!valid_texture_copy_) {
+ quad->resource_size = external_texture_resource_size_;
danakj 2015/05/29 20:04:14 could you just pull these from the texture_mailbox
achaulk 2015/06/01 15:43:10 Done.
+ quad->allow_overlay = external_texture_allow_overlay_;
+ }
ValidateQuadResources(quad);
}

Powered by Google App Engine
This is Rietveld 408576698