Chromium Code Reviews| 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/layers/picture_layer_impl.h" | 5 #include "cc/layers/picture_layer_impl.h" |
| 6 | 6 |
| 7 #include <stddef.h> | 7 #include <stddef.h> |
| 8 #include <stdint.h> | 8 #include <stdint.h> |
| 9 | 9 |
| 10 #include <algorithm> | 10 #include <algorithm> |
| (...skipping 822 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 833 // Ensure that tile width and height are properly aligned. | 833 // Ensure that tile width and height are properly aligned. |
| 834 tile_width = MathUtil::UncheckedRoundUp(tile_width, kTileMinimalAlignment); | 834 tile_width = MathUtil::UncheckedRoundUp(tile_width, kTileMinimalAlignment); |
| 835 tile_height = MathUtil::UncheckedRoundUp(tile_height, kTileMinimalAlignment); | 835 tile_height = MathUtil::UncheckedRoundUp(tile_height, kTileMinimalAlignment); |
| 836 | 836 |
| 837 // Under no circumstance should we be larger than the max texture size. | 837 // Under no circumstance should we be larger than the max texture size. |
| 838 tile_width = std::min(tile_width, max_texture_size); | 838 tile_width = std::min(tile_width, max_texture_size); |
| 839 tile_height = std::min(tile_height, max_texture_size); | 839 tile_height = std::min(tile_height, max_texture_size); |
| 840 return gfx::Size(tile_width, tile_height); | 840 return gfx::Size(tile_width, tile_height); |
| 841 } | 841 } |
| 842 | 842 |
| 843 void PictureLayerImpl::GetContentsResourceId(ResourceId* resource_id, | 843 void PictureLayerImpl::GetContentsResourceId( |
| 844 gfx::Size* resource_size) const { | 844 ResourceId* resource_id, |
| 845 gfx::Size* resource_size, | |
| 846 gfx::SizeF* resource_uv_size) const { | |
| 845 // The bounds and the pile size may differ if the pile wasn't updated (ie. | 847 // The bounds and the pile size may differ if the pile wasn't updated (ie. |
| 846 // PictureLayer::Update didn't happen). In that case the pile will be empty. | 848 // PictureLayer::Update didn't happen). In that case the pile will be empty. |
| 847 DCHECK(raster_source_->GetSize().IsEmpty() || | 849 DCHECK(raster_source_->GetSize().IsEmpty() || |
| 848 bounds() == raster_source_->GetSize()) | 850 bounds() == raster_source_->GetSize()) |
| 849 << " bounds " << bounds().ToString() << " pile " | 851 << " bounds " << bounds().ToString() << " pile " |
| 850 << raster_source_->GetSize().ToString(); | 852 << raster_source_->GetSize().ToString(); |
| 851 float dest_scale = MaximumTilingContentsScale(); | 853 float dest_scale = MaximumTilingContentsScale(); |
| 852 gfx::Rect content_rect = | 854 gfx::Rect content_rect = |
| 853 gfx::ScaleToEnclosingRect(gfx::Rect(bounds()), dest_scale); | 855 gfx::ScaleToEnclosingRect(gfx::Rect(bounds()), dest_scale); |
| 854 PictureLayerTilingSet::CoverageIterator iter( | 856 PictureLayerTilingSet::CoverageIterator iter( |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 867 | 869 |
| 868 const TileDrawInfo& draw_info = iter->draw_info(); | 870 const TileDrawInfo& draw_info = iter->draw_info(); |
| 869 if (!draw_info.IsReadyToDraw() || | 871 if (!draw_info.IsReadyToDraw() || |
| 870 draw_info.mode() != TileDrawInfo::RESOURCE_MODE) { | 872 draw_info.mode() != TileDrawInfo::RESOURCE_MODE) { |
| 871 *resource_id = 0; | 873 *resource_id = 0; |
| 872 return; | 874 return; |
| 873 } | 875 } |
| 874 | 876 |
| 875 *resource_id = draw_info.resource_id(); | 877 *resource_id = draw_info.resource_id(); |
| 876 *resource_size = draw_info.resource_size(); | 878 *resource_size = draw_info.resource_size(); |
| 879 // |resource_uv_size| represents the range of UV coordinates that map to the | |
| 880 // content being drawn. Typically, we draw to the entire texture, so these | |
| 881 // coordinatesis are (1.0f, 1.0f). However, if we are rasterizing to an | |
|
enne (OOO)
2017/05/02 21:31:37
typo
ericrk
2017/05/04 19:23:53
Done.
| |
| 882 // over-large texture, this size will be smaller, mapping to the subset of the | |
| 883 // texture being used. | |
| 884 gfx::SizeF requested_tile_size = | |
| 885 gfx::SizeF(iter->tiling()->tiling_data()->tiling_size()); | |
|
enne (OOO)
2017/05/02 21:31:37
Is this the same as bounds()?
ericrk
2017/05/04 19:23:53
Most of the time, yes. In certain cases, bounds ap
| |
| 886 DCHECK_LE(requested_tile_size.width(), draw_info.resource_size().width()); | |
| 887 DCHECK_LE(requested_tile_size.height(), draw_info.resource_size().height()); | |
| 888 *resource_uv_size = gfx::SizeF( | |
| 889 requested_tile_size.width() / draw_info.resource_size().width(), | |
| 890 requested_tile_size.height() / draw_info.resource_size().height()); | |
| 877 } | 891 } |
| 878 | 892 |
| 879 void PictureLayerImpl::SetNearestNeighbor(bool nearest_neighbor) { | 893 void PictureLayerImpl::SetNearestNeighbor(bool nearest_neighbor) { |
| 880 if (nearest_neighbor_ == nearest_neighbor) | 894 if (nearest_neighbor_ == nearest_neighbor) |
| 881 return; | 895 return; |
| 882 | 896 |
| 883 nearest_neighbor_ = nearest_neighbor; | 897 nearest_neighbor_ = nearest_neighbor; |
| 884 NoteLayerPropertyChanged(); | 898 NoteLayerPropertyChanged(); |
| 885 } | 899 } |
| 886 | 900 |
| (...skipping 526 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1413 } | 1427 } |
| 1414 | 1428 |
| 1415 invalidation_.Union(invalidation); | 1429 invalidation_.Union(invalidation); |
| 1416 tilings_->UpdateTilingsForImplSideInvalidation(invalidation); | 1430 tilings_->UpdateTilingsForImplSideInvalidation(invalidation); |
| 1417 SetNeedsPushProperties(); | 1431 SetNeedsPushProperties(); |
| 1418 TRACE_EVENT_END1("cc", "PictureLayerImpl::InvalidateRegionForImages", | 1432 TRACE_EVENT_END1("cc", "PictureLayerImpl::InvalidateRegionForImages", |
| 1419 "Invalidation", invalidation.ToString()); | 1433 "Invalidation", invalidation.ToString()); |
| 1420 } | 1434 } |
| 1421 | 1435 |
| 1422 } // namespace cc | 1436 } // namespace cc |
| OLD | NEW |