diff options
author | egraether@chromium.org <egraether@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-20 04:01:26 +0000 |
---|---|---|
committer | egraether@chromium.org <egraether@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-20 04:01:26 +0000 |
commit | 788fbf72d7fe63eab10e01f2bca86b02b33c263e (patch) | |
tree | 3aa48a72e06e8deeb98c7ad9f370a0bdb223d13a /cc/layer_tree_host.cc | |
parent | 8af989c23f030663c8b5a297e988970b4910b461 (diff) | |
download | chromium_src-788fbf72d7fe63eab10e01f2bca86b02b33c263e.zip chromium_src-788fbf72d7fe63eab10e01f2bca86b02b33c263e.tar.gz chromium_src-788fbf72d7fe63eab10e01f2bca86b02b33c263e.tar.bz2 |
This change adds continuous painting mode to the compositor, which makes it easier to detect how certain DOMNodes and CSSStyles affect painting performance. If active it calls setNeedsDisplay() on every Layer in every frame.
BUG=
Review URL: https://chromiumcodereview.appspot.com/11450022
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@174105 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/layer_tree_host.cc')
-rw-r--r-- | cc/layer_tree_host.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/cc/layer_tree_host.cc b/cc/layer_tree_host.cc index 4a228f4..91276de 100644 --- a/cc/layer_tree_host.cc +++ b/cc/layer_tree_host.cc @@ -221,6 +221,28 @@ void LayerTreeHost::acquireLayerTextures() m_proxy->acquireLayerTextures(); } +void LayerTreeHost::didBeginFrame() +{ + m_client->didBeginFrame(); + + if (m_debugState.continuousPainting) + setNeedsDisplayOnAllLayersRecursive(m_rootLayer.get()); +} + +void LayerTreeHost::setNeedsDisplayOnAllLayersRecursive(Layer* layer) +{ + if (!layer) + return; + + layer->setNeedsDisplay(); + + setNeedsDisplayOnAllLayersRecursive(layer->maskLayer()); + setNeedsDisplayOnAllLayersRecursive(layer->replicaLayer()); + + for (size_t childIndex = 0; childIndex < layer->children().size(); ++childIndex) + setNeedsDisplayOnAllLayersRecursive(layer->children()[childIndex].get()); +} + void LayerTreeHost::updateAnimations(base::TimeTicks frameBeginTime) { m_animating = true; |