Chromium Code Reviews| Index: cc/resources/picture_layer_tiling.cc |
| diff --git a/cc/resources/picture_layer_tiling.cc b/cc/resources/picture_layer_tiling.cc |
| index 72161525725cc98f44e4f3dc31199185051721ac..862d4d8b46750864ef453049b26d21ad7fb193d5 100644 |
| --- a/cc/resources/picture_layer_tiling.cc |
| +++ b/cc/resources/picture_layer_tiling.cc |
| @@ -33,8 +33,6 @@ scoped_ptr<PictureLayerTiling> PictureLayerTiling::Clone( |
| layer_bounds, |
| client)); |
| out->resolution_ = resolution_; |
|
enne (OOO)
2013/05/02 19:59:46
Looking at this code closer, but could this lead t
danakj
2013/05/02 20:02:04
Hmm! It's kinda weird anyway right? You should man
|
| - out->last_source_frame_number_ = last_source_frame_number_; |
| - out->last_impl_frame_time_ = last_impl_frame_time_; |
| return out.Pass(); |
| } |
| @@ -46,8 +44,7 @@ PictureLayerTiling::PictureLayerTiling(float contents_scale, |
| resolution_(NON_IDEAL_RESOLUTION), |
| client_(client), |
| tiling_data_(gfx::Size(), gfx::Size(), true), |
| - last_source_frame_number_(0), |
| - last_impl_frame_time_(0.0) { |
| + last_impl_frame_time_in_seconds_(0.0) { |
| gfx::Size content_bounds = |
| gfx::ToCeiledSize(gfx::ScaleSize(layer_bounds, contents_scale)); |
| gfx::Size tile_size = client_->CalculateTileSize(content_bounds); |
| @@ -295,12 +292,13 @@ void PictureLayerTiling::UpdateTilePriorities( |
| float current_layer_contents_scale, |
| const gfx::Transform& last_screen_transform, |
| const gfx::Transform& current_screen_transform, |
| - int current_source_frame_number, |
| - double current_frame_time, |
| + double current_frame_time_in_seconds, |
| bool store_screen_space_quads_on_tiles, |
| size_t max_tiles_for_interest_area) { |
| if (ContentRect().IsEmpty()) |
| return; |
| + if (!NeedsUpdateForFrameAtTime(current_frame_time_in_seconds)) |
| + return; |
| gfx::Rect viewport_in_content_space = |
| gfx::ToEnclosingRect(gfx::ScaleRect(viewport_in_layer_space, |
| @@ -325,26 +323,12 @@ void PictureLayerTiling::UpdateTilePriorities( |
| SetLiveTilesRect(interest_rect); |
| - bool first_update_in_new_source_frame = |
| - current_source_frame_number != last_source_frame_number_; |
| - |
| - bool first_update_in_new_impl_frame = |
| - current_frame_time != last_impl_frame_time_; |
| - |
| - // In pending tree, this is always called. We update priorities: |
| - // - Immediately after a commit (first_update_in_new_source_frame). |
| - // - On animation ticks after the first frame in the tree |
| - // (first_update_in_new_impl_frame). |
| - // In active tree, this is only called during draw. We update priorities: |
| - // - On draw if properties were not already computed by the pending tree |
| - // and activated for the frame (first_update_in_new_impl_frame). |
| - if (!first_update_in_new_impl_frame && !first_update_in_new_source_frame) |
| - return; |
| - |
| - double time_delta = 0.0; |
| - if (last_impl_frame_time_ != 0.0 && |
| - last_layer_bounds == current_layer_bounds) |
| - time_delta = current_frame_time - last_impl_frame_time_; |
| + double time_delta = 0; |
| + if (last_impl_frame_time_in_seconds_ != 0.0 && |
| + last_layer_bounds == current_layer_bounds) { |
| + time_delta = |
| + current_frame_time_in_seconds - last_impl_frame_time_in_seconds_; |
| + } |
| gfx::Rect view_rect(device_viewport); |
| float current_scale = current_layer_contents_scale / contents_scale_; |
| @@ -437,8 +421,7 @@ void PictureLayerTiling::UpdateTilePriorities( |
| } |
| } |
| - last_source_frame_number_ = current_source_frame_number; |
| - last_impl_frame_time_ = current_frame_time; |
| + last_impl_frame_time_in_seconds_ = current_frame_time_in_seconds; |
| } |
| void PictureLayerTiling::SetLiveTilesRect( |