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

Unified Diff: cc/output/dc_layer_overlay.cc

Issue 2881483002: Always set damage rect to output rect if 3D context was reshaped. (Closed)
Patch Set: Created 3 years, 7 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 side-by-side diff with in-line comments
Download patch
Index: cc/output/dc_layer_overlay.cc
diff --git a/cc/output/dc_layer_overlay.cc b/cc/output/dc_layer_overlay.cc
index eda508e6e13243b6787f3c841565d0d0f0aa788c..6aff4b38ef773e4f385c82b45e7d7f67649598f0 100644
--- a/cc/output/dc_layer_overlay.cc
+++ b/cc/output/dc_layer_overlay.cc
@@ -117,13 +117,13 @@ DCLayerOverlayProcessor::DCLayerResult DCLayerOverlayProcessor::FromDrawQuad(
}
void DCLayerOverlayProcessor::Process(ResourceProvider* resource_provider,
+ bool was_reshaped,
const gfx::RectF& display_rect,
QuadList* quad_list,
gfx::Rect* overlay_damage_rect,
gfx::Rect* damage_rect,
DCLayerOverlayList* ca_layer_overlays) {
ccameron 2017/05/11 08:49:17 This function is doing both the "overlay" strategy
gfx::Rect this_frame_underlay_rect;
- bool display_rect_changed = (display_rect != previous_display_rect_);
for (auto it = quad_list->begin(); it != quad_list->end(); ++it) {
DCLayerOverlay ca_layer;
DCLayerResult result = FromDrawQuad(resource_provider, display_rect,
@@ -146,7 +146,7 @@ void DCLayerOverlayProcessor::Process(ResourceProvider* resource_provider,
// underneath it.
if (it->shared_quad_state->quad_to_target_transform
.Preserves2dAxisAlignment() &&
- !display_rect_changed && !it->ShouldDrawWithBlending()) {
+ !was_reshaped && !it->ShouldDrawWithBlending()) {
damage_rect->Subtract(quad_rectangle);
}
quad_list->EraseAndInvalidateAllPointers(it);
@@ -175,7 +175,7 @@ void DCLayerOverlayProcessor::Process(ResourceProvider* resource_provider,
// area for this and last frame, as that may have changed.
if (it->shared_quad_state->quad_to_target_transform
.Preserves2dAxisAlignment() &&
- !display_rect_changed) {
+ !was_reshaped) {
ccameron 2017/05/11 08:49:17 Drive-by comment -- is this if missing a else {
gfx::Rect occluding_damage_rect = *damage_rect;
occluding_damage_rect.Intersect(quad_rectangle);
damage_rect->Subtract(quad_rectangle);
@@ -201,7 +201,6 @@ void DCLayerOverlayProcessor::Process(ResourceProvider* resource_provider,
}
damage_rect->Intersect(gfx::ToEnclosingRect(display_rect));
previous_frame_underlay_rect_ = this_frame_underlay_rect;
- previous_display_rect_ = display_rect;
}
} // namespace cc

Powered by Google App Engine
This is Rietveld 408576698