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

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

Issue 903273002: Update from https://crrev.com/315085 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 5 years, 10 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_image_layer_unittest.cc ('k') | cc/layers/picture_layer_impl.h » ('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.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/resources/display_list_recording_source.h" 10 #include "cc/resources/display_list_recording_source.h"
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
141 } 141 }
142 142
143 // UpdateAndExpandInvalidation will give us an invalidation that covers 143 // UpdateAndExpandInvalidation will give us an invalidation that covers
144 // anything not explicitly recorded in this frame. We give this region 144 // anything not explicitly recorded in this frame. We give this region
145 // to the impl side so that it drops tiles that may not have a recording 145 // to the impl side so that it drops tiles that may not have a recording
146 // for them. 146 // for them.
147 DCHECK(client_); 147 DCHECK(client_);
148 updated |= recording_source_->UpdateAndExpandInvalidation( 148 updated |= recording_source_->UpdateAndExpandInvalidation(
149 client_, &recording_invalidation_, can_use_lcd_text_for_update_, 149 client_, &recording_invalidation_, can_use_lcd_text_for_update_,
150 layer_size, visible_layer_rect, update_source_frame_number_, 150 layer_size, visible_layer_rect, update_source_frame_number_,
151 Picture::RECORD_NORMALLY); 151 RecordingSource::RECORD_NORMALLY);
152 last_updated_visible_content_rect_ = visible_content_rect(); 152 last_updated_visible_content_rect_ = visible_content_rect();
153 153
154 if (updated) { 154 if (updated) {
155 SetNeedsPushProperties(); 155 SetNeedsPushProperties();
156 } else { 156 } else {
157 // If this invalidation did not affect the recording source, then it can be 157 // If this invalidation did not affect the recording source, then it can be
158 // cleared as an optimization. 158 // cleared as an optimization.
159 recording_invalidation_.Clear(); 159 recording_invalidation_.Clear();
160 } 160 }
161 161
(...skipping 23 matching lines...) Expand all
185 // or paint a fresh one depending on what we intend to do with the 185 // or paint a fresh one depending on what we intend to do with the
186 // picture. For now we just paint a fresh one to get consistent results. 186 // picture. For now we just paint a fresh one to get consistent results.
187 if (!DrawsContent()) 187 if (!DrawsContent())
188 return skia::RefPtr<SkPicture>(); 188 return skia::RefPtr<SkPicture>();
189 189
190 int width = bounds().width(); 190 int width = bounds().width();
191 int height = bounds().height(); 191 int height = bounds().height();
192 192
193 SkPictureRecorder recorder; 193 SkPictureRecorder recorder;
194 SkCanvas* canvas = recorder.beginRecording(width, height, nullptr, 0); 194 SkCanvas* canvas = recorder.beginRecording(width, height, nullptr, 0);
195 client_->PaintContents(canvas, 195 client_->PaintContents(canvas, gfx::Rect(width, height),
196 gfx::Rect(width, height), 196 ContentLayerClient::PAINTING_BEHAVIOR_NORMAL);
197 ContentLayerClient::GRAPHICS_CONTEXT_ENABLED);
198 skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecording()); 197 skia::RefPtr<SkPicture> picture = skia::AdoptRef(recorder.endRecording());
199 return picture; 198 return picture;
200 } 199 }
201 200
202 bool PictureLayer::IsSuitableForGpuRasterization() const { 201 bool PictureLayer::IsSuitableForGpuRasterization() const {
203 return recording_source_->IsSuitableForGpuRasterization(); 202 return recording_source_->IsSuitableForGpuRasterization();
204 } 203 }
205 204
206 void PictureLayer::ClearClient() { 205 void PictureLayer::ClearClient() {
207 client_ = nullptr; 206 client_ = nullptr;
(...skipping 10 matching lines...) Expand all
218 217
219 bool PictureLayer::HasDrawableContent() const { 218 bool PictureLayer::HasDrawableContent() const {
220 return client_ && Layer::HasDrawableContent(); 219 return client_ && Layer::HasDrawableContent();
221 } 220 }
222 221
223 void PictureLayer::RunMicroBenchmark(MicroBenchmark* benchmark) { 222 void PictureLayer::RunMicroBenchmark(MicroBenchmark* benchmark) {
224 benchmark->RunOnLayer(this); 223 benchmark->RunOnLayer(this);
225 } 224 }
226 225
227 } // namespace cc 226 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/picture_image_layer_unittest.cc ('k') | cc/layers/picture_layer_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698