diff options
author | qinmin@chromium.org <qinmin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-04 08:52:58 +0000 |
---|---|---|
committer | qinmin@chromium.org <qinmin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2012-12-04 08:52:58 +0000 |
commit | 4cbadc88bb754d40ab60b01e2a2357660e9cc8af (patch) | |
tree | 1052f16297e41b8ee8dc07b3b2043314b63f82c6 /cc/picture_layer_impl.cc | |
parent | a9f2a621cdba062410caeafc34c942a471f4bb1f (diff) | |
download | chromium_src-4cbadc88bb754d40ab60b01e2a2357660e9cc8af.zip chromium_src-4cbadc88bb754d40ab60b01e2a2357660e9cc8af.tar.gz chromium_src-4cbadc88bb754d40ab60b01e2a2357660e9cc8af.tar.bz2 |
implement the logic to set tile priorities based on current matrix
BUG=163060
Review URL: https://chromiumcodereview.appspot.com/11414238
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@170908 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/picture_layer_impl.cc')
-rw-r--r-- | cc/picture_layer_impl.cc | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/cc/picture_layer_impl.cc b/cc/picture_layer_impl.cc index 8c53563..093e7d4 100644 --- a/cc/picture_layer_impl.cc +++ b/cc/picture_layer_impl.cc @@ -4,6 +4,7 @@ #include "cc/picture_layer_impl.h" +#include "base/time.h" #include "cc/append_quads_data.h" #include "cc/checkerboard_draw_quad.h" #include "cc/debug_border_draw_quad.h" @@ -19,7 +20,8 @@ namespace cc { PictureLayerImpl::PictureLayerImpl(int id) : LayerImpl(id), tilings_(this), - pile_(PicturePileImpl::Create()) { + pile_(PicturePileImpl::Create()), + last_update_time_(0) { } PictureLayerImpl::~PictureLayerImpl() { @@ -132,6 +134,30 @@ void PictureLayerImpl::didUpdateTransforms() { tilings_.AddTiling(contentsScaleX(), tile_size); // TODO(enne): handle invalidations, create new tiles } + + gfx::Transform current_screen_space_transform = screenSpaceTransform(); + double current_time = + (base::TimeTicks::Now() - base::TimeTicks()).InSecondsF(); + double time_delta = 0; + if (last_update_time_ != 0 && last_bounds_ == bounds() && + last_content_bounds_ == contentBounds() && + last_content_scale_x_ == contentsScaleX() && + last_content_scale_y_ == contentsScaleY()) { + time_delta = current_time - last_update_time_; + } + tilings_.UpdateTilePriorities(layerTreeHostImpl()->deviceViewportSize(), + contentsScaleX(), + contentsScaleY(), + last_screen_space_transform_, + current_screen_space_transform, + time_delta); + + last_screen_space_transform_ = current_screen_space_transform; + last_update_time_ = current_time; + last_bounds_ = bounds(); + last_content_bounds_ = contentBounds(); + last_content_scale_x_ = contentsScaleX(); + last_content_scale_y_ = contentsScaleY(); } scoped_refptr<Tile> PictureLayerImpl::CreateTile(PictureLayerTiling*, |