Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(216)

Side by Side Diff: cc/picture_layer_tiling.cc

Issue 12225054: Generate fewer tiles when zooming in. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Take 2 Created 7 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/picture_layer_tiling.h" 5 #include "cc/picture_layer_tiling.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "cc/math_util.h" 8 #include "cc/math_util.h"
9 #include "ui/gfx/point_conversions.h" 9 #include "ui/gfx/point_conversions.h"
10 #include "ui/gfx/rect_conversions.h" 10 #include "ui/gfx/rect_conversions.h"
(...skipping 355 matching lines...) Expand 10 before | Expand all | Expand 10 after
366 last_layer_bounds == current_layer_bounds && 366 last_layer_bounds == current_layer_bounds &&
367 last_layer_content_bounds == current_layer_content_bounds && 367 last_layer_content_bounds == current_layer_content_bounds &&
368 last_layer_contents_scale == current_layer_contents_scale) { 368 last_layer_contents_scale == current_layer_contents_scale) {
369 time_delta = current_frame_time - last_impl_frame_time_; 369 time_delta = current_frame_time - last_impl_frame_time_;
370 } 370 }
371 371
372 gfx::Rect viewport_in_content_space = 372 gfx::Rect viewport_in_content_space =
373 gfx::ToEnclosingRect(gfx::ScaleRect(viewport_in_layer_space, 373 gfx::ToEnclosingRect(gfx::ScaleRect(viewport_in_layer_space,
374 contents_scale_)); 374 contents_scale_));
375 gfx::Rect inflated_rect = viewport_in_content_space; 375 gfx::Rect inflated_rect = viewport_in_content_space;
376 float adjusted_inset = TilePriority::kMaxDistanceInContentSpace /
377 std::max(contents_scale_, 1.f);
376 inflated_rect.Inset( 378 inflated_rect.Inset(
377 -TilePriority::kMaxDistanceInContentSpace, 379 -adjusted_inset,
378 -TilePriority::kMaxDistanceInContentSpace, 380 -adjusted_inset,
379 -TilePriority::kMaxDistanceInContentSpace, 381 -adjusted_inset,
380 -TilePriority::kMaxDistanceInContentSpace); 382 -adjusted_inset);
381 inflated_rect.Intersect(ContentRect()); 383 inflated_rect.Intersect(ContentRect());
382 384
383 // Iterate through all of the tiles that were live last frame but will 385 // Iterate through all of the tiles that were live last frame but will
384 // not be live this frame, and mark them as being dead. 386 // not be live this frame, and mark them as being dead.
385 for (TilingData::DifferenceIterator iter(&tiling_data_, 387 for (TilingData::DifferenceIterator iter(&tiling_data_,
386 last_prioritized_rect_, 388 last_prioritized_rect_,
387 inflated_rect); 389 inflated_rect);
388 iter; 390 iter;
389 ++iter) { 391 ++iter) {
390 TileMap::iterator find = tiles_.find(iter.index()); 392 TileMap::iterator find = tiles_.find(iter.index());
(...skipping 105 matching lines...) Expand 10 before | Expand all | Expand 10 after
496 // and recreated, then that picture pile ref could exist indefinitely. To 498 // and recreated, then that picture pile ref could exist indefinitely. To
497 // prevent this, ask the client to update the pile to its own ref. This 499 // prevent this, ask the client to update the pile to its own ref. This
498 // will cause PicturePileImpls and their clones to get deleted once the 500 // will cause PicturePileImpls and their clones to get deleted once the
499 // corresponding PictureLayerImpl and any in flight raster jobs go out of 501 // corresponding PictureLayerImpl and any in flight raster jobs go out of
500 // scope. 502 // scope.
501 client_->UpdatePile(it->second); 503 client_->UpdatePile(it->second);
502 } 504 }
503 } 505 }
504 506
505 } // namespace cc 507 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698