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 15 matching lines...) Expand all Loading... | |
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 WhichTree tree, | 32 WhichTree tree, |
33 float contents_scale, | 33 float contents_scale, |
34 scoped_refptr<RasterSource> raster_source, | 34 scoped_refptr<RasterSource> raster_source, |
35 PictureLayerTilingClient* client, | 35 PictureLayerTilingClient* client, |
36 size_t max_tiles_for_interest_area, | 36 size_t tiling_interest_area_viewport_multiplier, |
37 float skewport_target_time_in_seconds, | 37 float skewport_target_time_in_seconds, |
38 int skewport_extrapolation_limit_in_content_pixels) { | 38 int skewport_extrapolation_limit_in_content_pixels) { |
39 return make_scoped_ptr(new PictureLayerTiling( | 39 return make_scoped_ptr(new PictureLayerTiling( |
40 tree, contents_scale, raster_source, client, max_tiles_for_interest_area, | 40 tree, contents_scale, raster_source, client, |
41 skewport_target_time_in_seconds, | 41 tiling_interest_area_viewport_multiplier, skewport_target_time_in_seconds, |
42 skewport_extrapolation_limit_in_content_pixels)); | 42 skewport_extrapolation_limit_in_content_pixels)); |
43 } | 43 } |
44 | 44 |
45 PictureLayerTiling::PictureLayerTiling( | 45 PictureLayerTiling::PictureLayerTiling( |
46 WhichTree tree, | 46 WhichTree tree, |
47 float contents_scale, | 47 float contents_scale, |
48 scoped_refptr<RasterSource> raster_source, | 48 scoped_refptr<RasterSource> raster_source, |
49 PictureLayerTilingClient* client, | 49 PictureLayerTilingClient* client, |
50 size_t max_tiles_for_interest_area, | 50 size_t tiling_interest_area_viewport_multiplier, |
51 float skewport_target_time_in_seconds, | 51 float skewport_target_time_in_seconds, |
52 int skewport_extrapolation_limit_in_content_pixels) | 52 int skewport_extrapolation_limit_in_content_pixels) |
53 : max_tiles_for_interest_area_(max_tiles_for_interest_area), | 53 : tiling_interest_area_viewport_multiplier_( |
54 tiling_interest_area_viewport_multiplier), | |
54 skewport_target_time_in_seconds_(skewport_target_time_in_seconds), | 55 skewport_target_time_in_seconds_(skewport_target_time_in_seconds), |
55 skewport_extrapolation_limit_in_content_pixels_( | 56 skewport_extrapolation_limit_in_content_pixels_( |
56 skewport_extrapolation_limit_in_content_pixels), | 57 skewport_extrapolation_limit_in_content_pixels), |
57 contents_scale_(contents_scale), | 58 contents_scale_(contents_scale), |
58 client_(client), | 59 client_(client), |
59 tree_(tree), | 60 tree_(tree), |
60 raster_source_(raster_source), | 61 raster_source_(raster_source), |
61 resolution_(NON_IDEAL_RESOLUTION), | 62 resolution_(NON_IDEAL_RESOLUTION), |
62 tiling_data_(gfx::Size(), gfx::Size(), kBorderTexels), | 63 tiling_data_(gfx::Size(), gfx::Size(), kBorderTexels), |
63 can_require_tiles_for_activation_(false), | 64 can_require_tiles_for_activation_(false), |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
567 const gfx::Rect& viewport_in_layer_space, | 568 const gfx::Rect& viewport_in_layer_space, |
568 float ideal_contents_scale, | 569 float ideal_contents_scale, |
569 double current_frame_time_in_seconds, | 570 double current_frame_time_in_seconds, |
570 const Occlusion& occlusion_in_layer_space) { | 571 const Occlusion& occlusion_in_layer_space) { |
571 if (!NeedsUpdateForFrameAtTimeAndViewport(current_frame_time_in_seconds, | 572 if (!NeedsUpdateForFrameAtTimeAndViewport(current_frame_time_in_seconds, |
572 viewport_in_layer_space)) { | 573 viewport_in_layer_space)) { |
573 // This should never be zero for the purposes of has_ever_been_updated(). | 574 // This should never be zero for the purposes of has_ever_been_updated(). |
574 DCHECK_NE(current_frame_time_in_seconds, 0.0); | 575 DCHECK_NE(current_frame_time_in_seconds, 0.0); |
575 return false; | 576 return false; |
576 } | 577 } |
577 | |
578 gfx::Rect visible_rect_in_content_space = | 578 gfx::Rect visible_rect_in_content_space = |
579 gfx::ScaleToEnclosingRect(viewport_in_layer_space, contents_scale_); | 579 gfx::ScaleToEnclosingRect(viewport_in_layer_space, contents_scale_); |
580 | 580 |
581 if (tiling_size().IsEmpty()) { | 581 if (tiling_size().IsEmpty()) { |
582 UpdateVisibleRectHistory(current_frame_time_in_seconds, | 582 UpdateVisibleRectHistory(current_frame_time_in_seconds, |
583 visible_rect_in_content_space); | 583 visible_rect_in_content_space); |
584 last_viewport_in_layer_space_ = viewport_in_layer_space; | 584 last_viewport_in_layer_space_ = viewport_in_layer_space; |
585 return false; | 585 return false; |
586 } | 586 } |
587 | 587 |
588 // Calculate the skewport. | 588 // Calculate the skewport. |
589 gfx::Rect skewport = ComputeSkewport(current_frame_time_in_seconds, | 589 gfx::Rect skewport = ComputeSkewport(current_frame_time_in_seconds, |
590 visible_rect_in_content_space); | 590 visible_rect_in_content_space); |
591 DCHECK(skewport.Contains(visible_rect_in_content_space)); | 591 DCHECK(skewport.Contains(visible_rect_in_content_space)); |
592 | 592 |
593 // Calculate the eventually/live tiles rect. | 593 // Calculate the eventually/live tiles rect. |
594 gfx::Size tile_size = tiling_data_.max_texture_size(); | 594 gfx::Size tile_size = tiling_data_.max_texture_size(); |
vmpstr
2015/05/06 17:57:29
Unused?
sohanjg
2015/05/07 14:42:10
Done.
| |
595 int64 eventually_rect_area = | 595 int64 eventually_rect_area = tiling_interest_area_viewport_multiplier_ * |
596 max_tiles_for_interest_area_ * tile_size.width() * tile_size.height(); | 596 visible_rect_in_content_space.width() * |
597 visible_rect_in_content_space.height(); | |
597 | 598 |
598 gfx::Rect eventually_rect = | 599 gfx::Rect eventually_rect = |
599 ExpandRectEquallyToAreaBoundedBy(visible_rect_in_content_space, | 600 ExpandRectEquallyToAreaBoundedBy(visible_rect_in_content_space, |
600 eventually_rect_area, | 601 eventually_rect_area, |
601 gfx::Rect(tiling_size()), | 602 gfx::Rect(tiling_size()), |
602 &expansion_cache_); | 603 &expansion_cache_); |
603 | 604 |
604 DCHECK(eventually_rect.IsEmpty() || | 605 DCHECK(eventually_rect.IsEmpty() || |
605 gfx::Rect(tiling_size()).Contains(eventually_rect)) | 606 gfx::Rect(tiling_size()).Contains(eventually_rect)) |
606 << "tiling_size: " << tiling_size().ToString() | 607 << "tiling_size: " << tiling_size().ToString() |
(...skipping 427 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1034 break; | 1035 break; |
1035 } | 1036 } |
1036 | 1037 |
1037 gfx::Rect result(origin_x, origin_y, width, height); | 1038 gfx::Rect result(origin_x, origin_y, width, height); |
1038 if (cache) | 1039 if (cache) |
1039 cache->previous_result = result; | 1040 cache->previous_result = result; |
1040 return result; | 1041 return result; |
1041 } | 1042 } |
1042 | 1043 |
1043 } // namespace cc | 1044 } // namespace cc |
OLD | NEW |