diff options
author | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-06 01:48:29 +0000 |
---|---|---|
committer | danakj@chromium.org <danakj@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-06 01:48:29 +0000 |
commit | 650b3faff7b94dc651751d6f928d90d879059f54 (patch) | |
tree | 1ede2fa9feadd3959b56c445e5178e55b83c82b5 /cc/test/tiled_layer_test_common.cc | |
parent | 2285e5544fb729014dcc37f8c9f870cc1a88ddf9 (diff) | |
download | chromium_src-650b3faff7b94dc651751d6f928d90d879059f54.zip chromium_src-650b3faff7b94dc651751d6f928d90d879059f54.tar.gz chromium_src-650b3faff7b94dc651751d6f928d90d879059f54.tar.bz2 |
cc: Deblur layers that animate-scale-down on creation.
Layers that appear at a scale 1.5 with a transform animation that would
take them to 1.0 end up drawing with the 1.5 tiling still when they
complete their animation. This happens for two reasons:
1. It uses stale data in ManageTilings to tell if the layer is animating.
2. The active tree says it has ideal tilings when it has tilings >= ideal.
We fix 1 by setting the animating draw properties flag before computing contents
scales in calcDrawProperties.
We fix 2 by not telling the scheduler that we drew with all ideal tilings if we
did not.
While fixing 2 we get rid of the tree walk in swapBuffers, by tracking
if any incomplete tiles were used in the AppendQuadsData instead.
BUG=173806
NOTRY=true
Review URL: https://codereview.chromium.org/12188002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180851 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/test/tiled_layer_test_common.cc')
-rw-r--r-- | cc/test/tiled_layer_test_common.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/cc/test/tiled_layer_test_common.cc b/cc/test/tiled_layer_test_common.cc index d78facb..d35db09 100644 --- a/cc/test/tiled_layer_test_common.cc +++ b/cc/test/tiled_layer_test_common.cc @@ -138,6 +138,7 @@ void FakeTiledLayer::updateContentsScale(float idealContentsScale) { calculateContentsScale( idealContentsScale, + false, // animating_transform_to_screen &drawProperties().contents_scale_x, &drawProperties().contents_scale_y, &drawProperties().content_bounds); @@ -156,6 +157,7 @@ void FakeTiledLayerWithScaledBounds::setContentBounds(const gfx::Size& contentBo void FakeTiledLayerWithScaledBounds::calculateContentsScale( float idealContentsScale, + bool animatingTransformToScreen, float* contentsScaleX, float* contentsScaleY, gfx::Size* contentBounds) |