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

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

Issue 473813002: Revert 289480 "Still produce quad when tile OOM and on demand ra..." (Closed) Base URL: svn://svn.chromium.org/chrome/
Patch Set: Created 6 years, 4 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 | trunk/src/cc/layers/picture_layer_impl_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 9
10 #include "base/debug/trace_event_argument.h" 10 #include "base/debug/trace_event_argument.h"
(...skipping 263 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 ++iter) { 274 ++iter) {
275 gfx::Rect geometry_rect = iter.geometry_rect(); 275 gfx::Rect geometry_rect = iter.geometry_rect();
276 gfx::Rect visible_geometry_rect = occlusion_tracker.UnoccludedContentRect( 276 gfx::Rect visible_geometry_rect = occlusion_tracker.UnoccludedContentRect(
277 geometry_rect, scaled_draw_transform); 277 geometry_rect, scaled_draw_transform);
278 if (visible_geometry_rect.IsEmpty()) 278 if (visible_geometry_rect.IsEmpty())
279 continue; 279 continue;
280 280
281 append_quads_data->visible_content_area += 281 append_quads_data->visible_content_area +=
282 visible_geometry_rect.width() * visible_geometry_rect.height(); 282 visible_geometry_rect.width() * visible_geometry_rect.height();
283 283
284 bool has_draw_quad = false;
285 if (*iter && iter->IsReadyToDraw()) { 284 if (*iter && iter->IsReadyToDraw()) {
286 const ManagedTileState::TileVersion& tile_version = 285 const ManagedTileState::TileVersion& tile_version =
287 iter->GetTileVersionForDrawing(); 286 iter->GetTileVersionForDrawing();
288 switch (tile_version.mode()) { 287 switch (tile_version.mode()) {
289 case ManagedTileState::TileVersion::RESOURCE_MODE: { 288 case ManagedTileState::TileVersion::RESOURCE_MODE: {
290 gfx::RectF texture_rect = iter.texture_rect(); 289 gfx::RectF texture_rect = iter.texture_rect();
291 gfx::Rect opaque_rect = iter->opaque_rect(); 290 gfx::Rect opaque_rect = iter->opaque_rect();
292 opaque_rect.Intersect(geometry_rect); 291 opaque_rect.Intersect(geometry_rect);
293 292
294 if (iter->contents_scale() != ideal_contents_scale_) 293 if (iter->contents_scale() != ideal_contents_scale_)
295 append_quads_data->num_incomplete_tiles++; 294 append_quads_data->num_incomplete_tiles++;
296 295
297 TileDrawQuad* quad = 296 TileDrawQuad* quad =
298 render_pass->CreateAndAppendDrawQuad<TileDrawQuad>(); 297 render_pass->CreateAndAppendDrawQuad<TileDrawQuad>();
299 quad->SetNew(shared_quad_state, 298 quad->SetNew(shared_quad_state,
300 geometry_rect, 299 geometry_rect,
301 opaque_rect, 300 opaque_rect,
302 visible_geometry_rect, 301 visible_geometry_rect,
303 tile_version.get_resource_id(), 302 tile_version.get_resource_id(),
304 texture_rect, 303 texture_rect,
305 iter.texture_size(), 304 iter.texture_size(),
306 tile_version.contents_swizzled()); 305 tile_version.contents_swizzled());
307 has_draw_quad = true;
308 break; 306 break;
309 } 307 }
310 case ManagedTileState::TileVersion::PICTURE_PILE_MODE: { 308 case ManagedTileState::TileVersion::PICTURE_PILE_MODE: {
311 if (!layer_tree_impl() 309 if (!layer_tree_impl()
312 ->GetRendererCapabilities() 310 ->GetRendererCapabilities()
313 .allow_rasterize_on_demand) { 311 .allow_rasterize_on_demand) {
314 ++on_demand_missing_tile_count; 312 ++on_demand_missing_tile_count;
315 break; 313 break;
316 } 314 }
317 315
(...skipping 10 matching lines...) Expand all
328 quad->SetNew(shared_quad_state, 326 quad->SetNew(shared_quad_state,
329 geometry_rect, 327 geometry_rect,
330 opaque_rect, 328 opaque_rect,
331 visible_geometry_rect, 329 visible_geometry_rect,
332 texture_rect, 330 texture_rect,
333 iter.texture_size(), 331 iter.texture_size(),
334 format, 332 format,
335 iter->content_rect(), 333 iter->content_rect(),
336 iter->contents_scale(), 334 iter->contents_scale(),
337 pile_); 335 pile_);
338 has_draw_quad = true;
339 break; 336 break;
340 } 337 }
341 case ManagedTileState::TileVersion::SOLID_COLOR_MODE: { 338 case ManagedTileState::TileVersion::SOLID_COLOR_MODE: {
342 SolidColorDrawQuad* quad = 339 SolidColorDrawQuad* quad =
343 render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 340 render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
344 quad->SetNew(shared_quad_state, 341 quad->SetNew(shared_quad_state,
345 geometry_rect, 342 geometry_rect,
346 visible_geometry_rect, 343 visible_geometry_rect,
347 tile_version.get_solid_color(), 344 tile_version.get_solid_color(),
348 false); 345 false);
349 has_draw_quad = true;
350 break; 346 break;
351 } 347 }
352 } 348 }
353 } 349 } else {
354
355 if (!has_draw_quad) {
356 if (draw_checkerboard_for_missing_tiles()) { 350 if (draw_checkerboard_for_missing_tiles()) {
357 CheckerboardDrawQuad* quad = 351 CheckerboardDrawQuad* quad =
358 render_pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>(); 352 render_pass->CreateAndAppendDrawQuad<CheckerboardDrawQuad>();
359 SkColor color = DebugColors::DefaultCheckerboardColor(); 353 SkColor color = DebugColors::DefaultCheckerboardColor();
360 quad->SetNew( 354 quad->SetNew(
361 shared_quad_state, geometry_rect, visible_geometry_rect, color); 355 shared_quad_state, geometry_rect, visible_geometry_rect, color);
362 } else { 356 } else {
363 SkColor color = SafeOpaqueBackgroundColor(); 357 SkColor color = SafeOpaqueBackgroundColor();
364 SolidColorDrawQuad* quad = 358 SolidColorDrawQuad* quad =
365 render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>(); 359 render_pass->CreateAndAppendDrawQuad<SolidColorDrawQuad>();
(...skipping 1329 matching lines...) Expand 10 before | Expand all | Expand 10 after
1695 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange(); 1689 PictureLayerTilingSet::TilingRange tiling_range = CurrentTilingRange();
1696 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start; 1690 size_t current_tiling_range_offset = current_tiling_ - tiling_range.start;
1697 return tiling_range.end - 1 - current_tiling_range_offset; 1691 return tiling_range.end - 1 - current_tiling_range_offset;
1698 } 1692 }
1699 } 1693 }
1700 NOTREACHED(); 1694 NOTREACHED();
1701 return 0; 1695 return 0;
1702 } 1696 }
1703 1697
1704 } // namespace cc 1698 } // namespace cc
OLDNEW
« no previous file with comments | « no previous file | trunk/src/cc/layers/picture_layer_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698