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

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

Issue 1175113010: cc: Rename visible_content_rect and content stuff on quads. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rename-visible-content-rect: comment Created 5 years, 6 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 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.h" 5 #include "cc/layers/picture_layer.h"
6 6
7 #include "base/auto_reset.h" 7 #include "base/auto_reset.h"
8 #include "cc/layers/content_layer_client.h" 8 #include "cc/layers/content_layer_client.h"
9 #include "cc/layers/picture_layer_impl.h" 9 #include "cc/layers/picture_layer_impl.h"
10 #include "cc/playback/display_list_recording_source.h" 10 #include "cc/playback/display_list_recording_source.h"
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 pending_invalidation_.Union( 110 pending_invalidation_.Union(
111 gfx::IntersectRects(layer_rect, gfx::Rect(bounds()))); 111 gfx::IntersectRects(layer_rect, gfx::Rect(bounds())));
112 } 112 }
113 Layer::SetNeedsDisplayRect(layer_rect); 113 Layer::SetNeedsDisplayRect(layer_rect);
114 } 114 }
115 115
116 bool PictureLayer::Update(ResourceUpdateQueue* queue) { 116 bool PictureLayer::Update(ResourceUpdateQueue* queue) {
117 update_source_frame_number_ = layer_tree_host()->source_frame_number(); 117 update_source_frame_number_ = layer_tree_host()->source_frame_number();
118 bool updated = Layer::Update(queue); 118 bool updated = Layer::Update(queue);
119 119
120 gfx::Rect visible_layer_rect = visible_content_rect(); 120 gfx::Rect update_rect = visible_layer_rect();
121 gfx::Size layer_size = paint_properties().bounds; 121 gfx::Size layer_size = paint_properties().bounds;
122 122
123 if (last_updated_visible_content_rect_ == visible_content_rect() && 123 if (last_updated_visible_layer_rect_ == update_rect &&
124 recording_source_->GetSize() == layer_size && 124 recording_source_->GetSize() == layer_size &&
125 pending_invalidation_.IsEmpty()) { 125 pending_invalidation_.IsEmpty()) {
126 // Only early out if the visible content rect of this layer hasn't changed. 126 // Only early out if the visible content rect of this layer hasn't changed.
127 return updated; 127 return updated;
128 } 128 }
129 129
130 recording_source_->SetBackgroundColor(SafeOpaqueBackgroundColor()); 130 recording_source_->SetBackgroundColor(SafeOpaqueBackgroundColor());
131 recording_source_->SetRequiresClear(!contents_opaque() && 131 recording_source_->SetRequiresClear(!contents_opaque() &&
132 !client_->FillsBoundsCompletely()); 132 !client_->FillsBoundsCompletely());
133 133
134 TRACE_EVENT1("cc", "PictureLayer::Update", 134 TRACE_EVENT1("cc", "PictureLayer::Update",
135 "source_frame_number", 135 "source_frame_number",
136 layer_tree_host()->source_frame_number()); 136 layer_tree_host()->source_frame_number());
137 devtools_instrumentation::ScopedLayerTreeTask update_layer( 137 devtools_instrumentation::ScopedLayerTreeTask update_layer(
138 devtools_instrumentation::kUpdateLayer, id(), layer_tree_host()->id()); 138 devtools_instrumentation::kUpdateLayer, id(), layer_tree_host()->id());
139 139
140 // Calling paint in WebKit can sometimes cause invalidations, so save 140 // Calling paint in WebKit can sometimes cause invalidations, so save
141 // off the invalidation prior to calling update. 141 // off the invalidation prior to calling update.
142 pending_invalidation_.Swap(&recording_invalidation_); 142 pending_invalidation_.Swap(&recording_invalidation_);
143 pending_invalidation_.Clear(); 143 pending_invalidation_.Clear();
144 144
145 if (layer_tree_host()->settings().record_full_layer) { 145 if (layer_tree_host()->settings().record_full_layer) {
146 // Workaround for http://crbug.com/235910 - to retain backwards compat 146 // Workaround for http://crbug.com/235910 - to retain backwards compat
147 // the full page content must always be provided in the picture layer. 147 // the full page content must always be provided in the picture layer.
148 visible_layer_rect = gfx::Rect(layer_size); 148 update_rect = gfx::Rect(layer_size);
149 } 149 }
150 150
151 // UpdateAndExpandInvalidation will give us an invalidation that covers 151 // UpdateAndExpandInvalidation will give us an invalidation that covers
152 // anything not explicitly recorded in this frame. We give this region 152 // anything not explicitly recorded in this frame. We give this region
153 // to the impl side so that it drops tiles that may not have a recording 153 // to the impl side so that it drops tiles that may not have a recording
154 // for them. 154 // for them.
155 DCHECK(client_); 155 DCHECK(client_);
156 updated |= recording_source_->UpdateAndExpandInvalidation( 156 updated |= recording_source_->UpdateAndExpandInvalidation(
157 client_, &recording_invalidation_, layer_size, visible_layer_rect, 157 client_, &recording_invalidation_, layer_size, update_rect,
158 update_source_frame_number_, RecordingSource::RECORD_NORMALLY); 158 update_source_frame_number_, RecordingSource::RECORD_NORMALLY);
159 last_updated_visible_content_rect_ = visible_content_rect(); 159 last_updated_visible_layer_rect_ = visible_layer_rect();
160 160
161 if (updated) { 161 if (updated) {
162 SetNeedsPushProperties(); 162 SetNeedsPushProperties();
163 } else { 163 } else {
164 // If this invalidation did not affect the recording source, then it can be 164 // If this invalidation did not affect the recording source, then it can be
165 // cleared as an optimization. 165 // cleared as an optimization.
166 recording_invalidation_.Clear(); 166 recording_invalidation_.Clear();
167 } 167 }
168 168
169 return updated; 169 return updated;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
229 229
230 bool PictureLayer::HasDrawableContent() const { 230 bool PictureLayer::HasDrawableContent() const {
231 return client_ && Layer::HasDrawableContent(); 231 return client_ && Layer::HasDrawableContent();
232 } 232 }
233 233
234 void PictureLayer::RunMicroBenchmark(MicroBenchmark* benchmark) { 234 void PictureLayer::RunMicroBenchmark(MicroBenchmark* benchmark) {
235 benchmark->RunOnLayer(this); 235 benchmark->RunOnLayer(this);
236 } 236 }
237 237
238 } // namespace cc 238 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698