| OLD | NEW |
| 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/resources/picture_layer_tiling.h" | 5 #include "cc/resources/picture_layer_tiling.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <cmath> | 8 #include <cmath> |
| 9 #include <limits> | 9 #include <limits> |
| 10 #include <set> | 10 #include <set> |
| (...skipping 14 matching lines...) Expand all Loading... |
| 25 | 25 |
| 26 const float kSoonBorderDistanceViewportPercentage = 0.15f; | 26 const float kSoonBorderDistanceViewportPercentage = 0.15f; |
| 27 const float kMaxSoonBorderDistanceInScreenPixels = 312.f; | 27 const float kMaxSoonBorderDistanceInScreenPixels = 312.f; |
| 28 | 28 |
| 29 } // namespace | 29 } // namespace |
| 30 | 30 |
| 31 scoped_ptr<PictureLayerTiling> PictureLayerTiling::Create( | 31 scoped_ptr<PictureLayerTiling> PictureLayerTiling::Create( |
| 32 float contents_scale, | 32 float contents_scale, |
| 33 scoped_refptr<RasterSource> raster_source, | 33 scoped_refptr<RasterSource> raster_source, |
| 34 PictureLayerTilingClient* client, | 34 PictureLayerTilingClient* client, |
| 35 size_t max_tiles_for_interest_area, | 35 size_t max_interest_area, |
| 36 float skewport_target_time_in_seconds, | 36 float skewport_target_time_in_seconds, |
| 37 int skewport_extrapolation_limit_in_content_pixels) { | 37 int skewport_extrapolation_limit_in_content_pixels) { |
| 38 return make_scoped_ptr(new PictureLayerTiling( | 38 return make_scoped_ptr( |
| 39 contents_scale, raster_source, client, max_tiles_for_interest_area, | 39 new PictureLayerTiling(contents_scale, raster_source, client, |
| 40 skewport_target_time_in_seconds, | 40 max_interest_area, skewport_target_time_in_seconds, |
| 41 skewport_extrapolation_limit_in_content_pixels)); | 41 skewport_extrapolation_limit_in_content_pixels)); |
| 42 } | 42 } |
| 43 | 43 |
| 44 PictureLayerTiling::PictureLayerTiling( | 44 PictureLayerTiling::PictureLayerTiling( |
| 45 float contents_scale, | 45 float contents_scale, |
| 46 scoped_refptr<RasterSource> raster_source, | 46 scoped_refptr<RasterSource> raster_source, |
| 47 PictureLayerTilingClient* client, | 47 PictureLayerTilingClient* client, |
| 48 size_t max_tiles_for_interest_area, | 48 size_t max_interest_area, |
| 49 float skewport_target_time_in_seconds, | 49 float skewport_target_time_in_seconds, |
| 50 int skewport_extrapolation_limit_in_content_pixels) | 50 int skewport_extrapolation_limit_in_content_pixels) |
| 51 : max_tiles_for_interest_area_(max_tiles_for_interest_area), | 51 : max_interest_area_(max_interest_area), |
| 52 skewport_target_time_in_seconds_(skewport_target_time_in_seconds), | 52 skewport_target_time_in_seconds_(skewport_target_time_in_seconds), |
| 53 skewport_extrapolation_limit_in_content_pixels_( | 53 skewport_extrapolation_limit_in_content_pixels_( |
| 54 skewport_extrapolation_limit_in_content_pixels), | 54 skewport_extrapolation_limit_in_content_pixels), |
| 55 contents_scale_(contents_scale), | 55 contents_scale_(contents_scale), |
| 56 client_(client), | 56 client_(client), |
| 57 raster_source_(raster_source), | 57 raster_source_(raster_source), |
| 58 resolution_(NON_IDEAL_RESOLUTION), | 58 resolution_(NON_IDEAL_RESOLUTION), |
| 59 tiling_data_(gfx::Size(), gfx::Size(), kBorderTexels), | 59 tiling_data_(gfx::Size(), gfx::Size(), kBorderTexels), |
| 60 can_require_tiles_for_activation_(false), | 60 can_require_tiles_for_activation_(false), |
| 61 current_content_to_screen_scale_(0.f), | 61 current_content_to_screen_scale_(0.f), |
| (...skipping 520 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 582 return false; | 582 return false; |
| 583 } | 583 } |
| 584 | 584 |
| 585 // Calculate the skewport. | 585 // Calculate the skewport. |
| 586 gfx::Rect skewport = ComputeSkewport(current_frame_time_in_seconds, | 586 gfx::Rect skewport = ComputeSkewport(current_frame_time_in_seconds, |
| 587 visible_rect_in_content_space); | 587 visible_rect_in_content_space); |
| 588 DCHECK(skewport.Contains(visible_rect_in_content_space)); | 588 DCHECK(skewport.Contains(visible_rect_in_content_space)); |
| 589 | 589 |
| 590 // Calculate the eventually/live tiles rect. | 590 // Calculate the eventually/live tiles rect. |
| 591 gfx::Size tile_size = tiling_data_.max_texture_size(); | 591 gfx::Size tile_size = tiling_data_.max_texture_size(); |
| 592 int64 eventually_rect_area = | 592 int64 eventually_rect_area = max_interest_area_; |
| 593 max_tiles_for_interest_area_ * tile_size.width() * tile_size.height(); | |
| 594 | 593 |
| 595 gfx::Rect eventually_rect = | 594 gfx::Rect eventually_rect = |
| 596 ExpandRectEquallyToAreaBoundedBy(visible_rect_in_content_space, | 595 ExpandRectEquallyToAreaBoundedBy(visible_rect_in_content_space, |
| 597 eventually_rect_area, | 596 eventually_rect_area, |
| 598 gfx::Rect(tiling_size()), | 597 gfx::Rect(tiling_size()), |
| 599 &expansion_cache_); | 598 &expansion_cache_); |
| 600 | 599 |
| 601 DCHECK(eventually_rect.IsEmpty() || | 600 DCHECK(eventually_rect.IsEmpty() || |
| 602 gfx::Rect(tiling_size()).Contains(eventually_rect)) | 601 gfx::Rect(tiling_size()).Contains(eventually_rect)) |
| 603 << "tiling_size: " << tiling_size().ToString() | 602 << "tiling_size: " << tiling_size().ToString() |
| (...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1031 break; | 1030 break; |
| 1032 } | 1031 } |
| 1033 | 1032 |
| 1034 gfx::Rect result(origin_x, origin_y, width, height); | 1033 gfx::Rect result(origin_x, origin_y, width, height); |
| 1035 if (cache) | 1034 if (cache) |
| 1036 cache->previous_result = result; | 1035 cache->previous_result = result; |
| 1037 return result; | 1036 return result; |
| 1038 } | 1037 } |
| 1039 | 1038 |
| 1040 } // namespace cc | 1039 } // namespace cc |
| OLD | NEW |