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

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

Issue 2632463005: cc: Ensure that large damage doesn't register as "frame has no damage" (Closed)
Patch Set: Created 3 years, 11 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
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/render_surface_impl.h" 5 #include "cc/layers/render_surface_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 8
9 #include <algorithm> 9 #include <algorithm>
10 10
(...skipping 336 matching lines...) Expand 10 before | Expand all | Expand 10 after
347 void RenderSurfaceImpl::ClearLayerLists() { 347 void RenderSurfaceImpl::ClearLayerLists() {
348 layer_list_.clear(); 348 layer_list_.clear();
349 } 349 }
350 350
351 int RenderSurfaceImpl::GetRenderPassId() { 351 int RenderSurfaceImpl::GetRenderPassId() {
352 return owning_layer_->id(); 352 return owning_layer_->id();
353 } 353 }
354 354
355 void RenderSurfaceImpl::AppendRenderPasses(RenderPassSink* pass_sink) { 355 void RenderSurfaceImpl::AppendRenderPasses(RenderPassSink* pass_sink) {
356 std::unique_ptr<RenderPass> pass = RenderPass::Create(layer_list_.size()); 356 std::unique_ptr<RenderPass> pass = RenderPass::Create(layer_list_.size());
357 pass->SetNew(owning_layer_->id(), content_rect(), 357 gfx::Rect damage_rect = content_rect();
358 gfx::IntersectRects(content_rect(), 358 if (!damage_tracker_->ShouldDamageEverything())
359 damage_tracker_->current_damage_rect()), 359 damage_rect.Intersect(damage_tracker_->CurrentDamageRect());
360 pass->SetNew(owning_layer_->id(), content_rect(), damage_rect,
360 draw_properties_.screen_space_transform); 361 draw_properties_.screen_space_transform);
361 pass->filters = Filters(); 362 pass->filters = Filters();
362 pass->background_filters = BackgroundFilters(); 363 pass->background_filters = BackgroundFilters();
363 pass_sink->AppendRenderPass(std::move(pass)); 364 pass_sink->AppendRenderPass(std::move(pass));
364 } 365 }
365 366
366 void RenderSurfaceImpl::AppendQuads(RenderPass* render_pass, 367 void RenderSurfaceImpl::AppendQuads(RenderPass* render_pass,
367 AppendQuadsData* append_quads_data) { 368 AppendQuadsData* append_quads_data) {
368 gfx::Rect visible_layer_rect = 369 gfx::Rect visible_layer_rect =
369 occlusion_in_content_space().GetUnoccludedContentRect(content_rect()); 370 occlusion_in_content_space().GetUnoccludedContentRect(content_rect());
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
413 414
414 RenderPassDrawQuad* quad = 415 RenderPassDrawQuad* quad =
415 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>(); 416 render_pass->CreateAndAppendDrawQuad<RenderPassDrawQuad>();
416 quad->SetNew(shared_quad_state, content_rect(), visible_layer_rect, 417 quad->SetNew(shared_quad_state, content_rect(), visible_layer_rect,
417 GetRenderPassId(), mask_resource_id, mask_uv_scale, 418 GetRenderPassId(), mask_resource_id, mask_uv_scale,
418 mask_texture_size, owning_layer_to_target_scale, 419 mask_texture_size, owning_layer_to_target_scale,
419 FiltersOrigin()); 420 FiltersOrigin());
420 } 421 }
421 422
422 } // namespace cc 423 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698