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

Side by Side Diff: cc/layers/picture_layer_impl.cc

Issue 565043002: cc: Remove the opaque rect return-parameter from ContentLayerClient. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: contentlayerclientopaque: build Created 6 years, 3 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
« no previous file with comments | « cc/layers/picture_layer.cc ('k') | cc/layers/picture_layer_unittest.cc » ('j') | 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/layers/picture_layer_impl.h" 5 #include "cc/layers/picture_layer_impl.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 10
(...skipping 260 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 271
272 size_t missing_tile_count = 0u; 272 size_t missing_tile_count = 0u;
273 size_t on_demand_missing_tile_count = 0u; 273 size_t on_demand_missing_tile_count = 0u;
274 for (PictureLayerTilingSet::CoverageIterator iter(tilings_.get(), 274 for (PictureLayerTilingSet::CoverageIterator iter(tilings_.get(),
275 max_contents_scale, 275 max_contents_scale,
276 scaled_visible_content_rect, 276 scaled_visible_content_rect,
277 ideal_contents_scale_); 277 ideal_contents_scale_);
278 iter; 278 iter;
279 ++iter) { 279 ++iter) {
280 gfx::Rect geometry_rect = iter.geometry_rect(); 280 gfx::Rect geometry_rect = iter.geometry_rect();
281 gfx::Rect opaque_rect = contents_opaque() ? geometry_rect : gfx::Rect();
281 gfx::Rect visible_geometry_rect = occlusion_tracker.UnoccludedContentRect( 282 gfx::Rect visible_geometry_rect = occlusion_tracker.UnoccludedContentRect(
282 geometry_rect, scaled_draw_transform); 283 geometry_rect, scaled_draw_transform);
283 if (visible_geometry_rect.IsEmpty()) 284 if (visible_geometry_rect.IsEmpty())
284 continue; 285 continue;
285 286
286 append_quads_data->visible_content_area += 287 append_quads_data->visible_content_area +=
287 visible_geometry_rect.width() * visible_geometry_rect.height(); 288 visible_geometry_rect.width() * visible_geometry_rect.height();
288 289
289 bool has_draw_quad = false; 290 bool has_draw_quad = false;
290 if (*iter && iter->IsReadyToDraw()) { 291 if (*iter && iter->IsReadyToDraw()) {
291 const ManagedTileState::TileVersion& tile_version = 292 const ManagedTileState::TileVersion& tile_version =
292 iter->GetTileVersionForDrawing(); 293 iter->GetTileVersionForDrawing();
293 switch (tile_version.mode()) { 294 switch (tile_version.mode()) {
294 case ManagedTileState::TileVersion::RESOURCE_MODE: { 295 case ManagedTileState::TileVersion::RESOURCE_MODE: {
295 gfx::RectF texture_rect = iter.texture_rect(); 296 gfx::RectF texture_rect = iter.texture_rect();
296 gfx::Rect opaque_rect = iter->opaque_rect();
297 opaque_rect.Intersect(geometry_rect);
298 297
299 // The raster_contents_scale_ is the best scale that the layer is 298 // The raster_contents_scale_ is the best scale that the layer is
300 // trying to produce, even though it may not be ideal. Since that's 299 // trying to produce, even though it may not be ideal. Since that's
301 // the best the layer can promise in the future, consider those as 300 // the best the layer can promise in the future, consider those as
302 // complete. But if a tile is ideal scale, we don't want to consider 301 // complete. But if a tile is ideal scale, we don't want to consider
303 // it incomplete and trying to replace it with a tile at a worse 302 // it incomplete and trying to replace it with a tile at a worse
304 // scale. 303 // scale.
305 if (iter->contents_scale() != raster_contents_scale_ && 304 if (iter->contents_scale() != raster_contents_scale_ &&
306 iter->contents_scale() != ideal_contents_scale_ && 305 iter->contents_scale() != ideal_contents_scale_ &&
307 geometry_rect.Intersects(scaled_viewport_for_tile_priority)) { 306 geometry_rect.Intersects(scaled_viewport_for_tile_priority)) {
(...skipping 15 matching lines...) Expand all
323 } 322 }
324 case ManagedTileState::TileVersion::PICTURE_PILE_MODE: { 323 case ManagedTileState::TileVersion::PICTURE_PILE_MODE: {
325 if (!layer_tree_impl() 324 if (!layer_tree_impl()
326 ->GetRendererCapabilities() 325 ->GetRendererCapabilities()
327 .allow_rasterize_on_demand) { 326 .allow_rasterize_on_demand) {
328 ++on_demand_missing_tile_count; 327 ++on_demand_missing_tile_count;
329 break; 328 break;
330 } 329 }
331 330
332 gfx::RectF texture_rect = iter.texture_rect(); 331 gfx::RectF texture_rect = iter.texture_rect();
333 gfx::Rect opaque_rect = iter->opaque_rect();
334 opaque_rect.Intersect(geometry_rect);
335 332
336 ResourceProvider* resource_provider = 333 ResourceProvider* resource_provider =
337 layer_tree_impl()->resource_provider(); 334 layer_tree_impl()->resource_provider();
338 ResourceFormat format = 335 ResourceFormat format =
339 resource_provider->memory_efficient_texture_format(); 336 resource_provider->memory_efficient_texture_format();
340 PictureDrawQuad* quad = 337 PictureDrawQuad* quad =
341 render_pass->CreateAndAppendDrawQuad<PictureDrawQuad>(); 338 render_pass->CreateAndAppendDrawQuad<PictureDrawQuad>();
342 quad->SetNew(shared_quad_state, 339 quad->SetNew(shared_quad_state,
343 geometry_rect, 340 geometry_rect,
344 opaque_rect, 341 opaque_rect,
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
580 // memory savings that we can get. Note that we don't handle solid color 577 // memory savings that we can get. Note that we don't handle solid color
581 // masks, so we shouldn't bother analyzing those. 578 // masks, so we shouldn't bother analyzing those.
582 // Bugs: crbug.com/397198, crbug.com/396908 579 // Bugs: crbug.com/397198, crbug.com/396908
583 if (!pile_->is_mask()) 580 if (!pile_->is_mask())
584 flags = Tile::USE_PICTURE_ANALYSIS; 581 flags = Tile::USE_PICTURE_ANALYSIS;
585 582
586 return layer_tree_impl()->tile_manager()->CreateTile( 583 return layer_tree_impl()->tile_manager()->CreateTile(
587 pile_.get(), 584 pile_.get(),
588 content_rect.size(), 585 content_rect.size(),
589 content_rect, 586 content_rect,
590 contents_opaque() ? content_rect : gfx::Rect(),
591 tiling->contents_scale(), 587 tiling->contents_scale(),
592 id(), 588 id(),
593 layer_tree_impl()->source_frame_number(), 589 layer_tree_impl()->source_frame_number(),
594 flags); 590 flags);
595 } 591 }
596 592
597 PicturePileImpl* PictureLayerImpl::GetPile() { 593 PicturePileImpl* PictureLayerImpl::GetPile() {
598 return pile_.get(); 594 return pile_.get();
599 } 595 }
600 596
(...skipping 1165 matching lines...) Expand 10 before | Expand all | Expand 10 after
1766 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange(); 1762 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange();
1767 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start; 1763 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start;
1768 return tiling_range.end - 1 - current_tiling_range_offset; 1764 return tiling_range.end - 1 - current_tiling_range_offset;
1769 } 1765 }
1770 } 1766 }
1771 NOTREACHED(); 1767 NOTREACHED();
1772 return 0; 1768 return 0;
1773 } 1769 }
1774 1770
1775 } // namespace cc 1771 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_layer.cc ('k') | cc/layers/picture_layer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698