diff options
author | vmpstr@chromium.org <vmpstr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-30 07:00:34 +0000 |
---|---|---|
committer | vmpstr@chromium.org <vmpstr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-30 07:00:34 +0000 |
commit | 90af23b73870b5678d4b188ba39e0e7ac1a482a2 (patch) | |
tree | 8f7d364269d41e212272d12b907a88ccb0908296 /cc | |
parent | eefaddbeadf9bb0d1a406a0d42aa216b7c73b188 (diff) | |
download | chromium_src-90af23b73870b5678d4b188ba39e0e7ac1a482a2.zip chromium_src-90af23b73870b5678d4b188ba39e0e7ac1a482a2.tar.gz chromium_src-90af23b73870b5678d4b188ba39e0e7ac1a482a2.tar.bz2 |
cc: Make LTHI::NotifyTileInitialized more generic.
This patch forwards NotifyTileInitialized to layer_impl, which makes
it easier to add more special handling per layer, instead of putting
extra logic in LTHI.
R=enne
Review URL: https://codereview.chromium.org/252293003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@267109 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc')
-rw-r--r-- | cc/layers/layer_impl.h | 2 | ||||
-rw-r--r-- | cc/layers/picture_layer_impl.cc | 8 | ||||
-rw-r--r-- | cc/layers/picture_layer_impl.h | 1 | ||||
-rw-r--r-- | cc/trees/layer_tree_host_impl.cc | 21 |
4 files changed, 24 insertions, 8 deletions
diff --git a/cc/layers/layer_impl.h b/cc/layers/layer_impl.h index 0649856..e712b7e 100644 --- a/cc/layers/layer_impl.h +++ b/cc/layers/layer_impl.h @@ -51,6 +51,7 @@ class QuadSink; class Renderer; class ScrollbarAnimationController; class ScrollbarLayerImplBase; +class Tile; struct AppendQuadsData; @@ -178,6 +179,7 @@ class CC_EXPORT LayerImpl : public LayerAnimationValueObserver, virtual RenderPass::Id NextContributingRenderPassId(RenderPass::Id id) const; virtual void UpdateTilePriorities() {} + virtual void NotifyTileInitialized(const Tile* tile) {} virtual ScrollbarLayerImplBase* ToScrollbarLayer(); diff --git a/cc/layers/picture_layer_impl.cc b/cc/layers/picture_layer_impl.cc index 39af47d..aed6dc1 100644 --- a/cc/layers/picture_layer_impl.cc +++ b/cc/layers/picture_layer_impl.cc @@ -412,6 +412,14 @@ void PictureLayerImpl::UpdateTilePriorities() { layer_tree_impl()->DidModifyTilePriorities(); } +void PictureLayerImpl::NotifyTileInitialized(const Tile* tile) { + if (layer_tree_impl()->IsActiveTree()) { + gfx::RectF layer_damage_rect = + gfx::ScaleRect(tile->content_rect(), 1.f / tile->contents_scale()); + AddDamageRect(layer_damage_rect); + } +} + void PictureLayerImpl::DidBecomeActive() { LayerImpl::DidBecomeActive(); tilings_->DidBecomeActive(); diff --git a/cc/layers/picture_layer_impl.h b/cc/layers/picture_layer_impl.h index cd7c68b..bf24251 100644 --- a/cc/layers/picture_layer_impl.h +++ b/cc/layers/picture_layer_impl.h @@ -92,6 +92,7 @@ class CC_EXPORT PictureLayerImpl virtual void AppendQuads(QuadSink* quad_sink, AppendQuadsData* append_quads_data) OVERRIDE; virtual void UpdateTilePriorities() OVERRIDE; + virtual void NotifyTileInitialized(const Tile* tile) OVERRIDE; virtual void DidBecomeActive() OVERRIDE; virtual void DidBeginTracing() OVERRIDE; virtual void ReleaseResources() OVERRIDE; diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc index 2f7bf0d..1ec6d33 100644 --- a/cc/trees/layer_tree_host_impl.cc +++ b/cc/trees/layer_tree_host_impl.cc @@ -1223,15 +1223,20 @@ void LayerTreeHostImpl::NotifyReadyToActivate() { } void LayerTreeHostImpl::NotifyTileInitialized(const Tile* tile) { - if (!active_tree_) - return; + TRACE_EVENT0("cc", "LayerTreeHostImpl::NotifyTileInitialized"); - LayerImpl* layer_impl = - active_tree_->FindActiveTreeLayerById(tile->layer_id()); - if (layer_impl) { - gfx::RectF layer_damage_rect = - gfx::ScaleRect(tile->content_rect(), 1.f / tile->contents_scale()); - layer_impl->AddDamageRect(layer_damage_rect); + if (active_tree_) { + LayerImpl* layer_impl = + active_tree_->FindActiveTreeLayerById(tile->layer_id()); + if (layer_impl) + layer_impl->NotifyTileInitialized(tile); + } + + if (pending_tree_) { + LayerImpl* layer_impl = + pending_tree_->FindPendingTreeLayerById(tile->layer_id()); + if (layer_impl) + layer_impl->NotifyTileInitialized(tile); } } |