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

Side by Side Diff: cc/resources/picture.cc

Issue 684653004: Plumb can_use_lcd_text, contents_opaque directly to ContentLayerClient. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 1 month 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/resources/picture.h" 5 #include "cc/resources/picture.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <limits> 8 #include <limits>
9 #include <set> 9 #include <set>
10 10
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 return true; 79 return true;
80 } 80 }
81 return false; 81 return false;
82 } 82 }
83 83
84 } // namespace 84 } // namespace
85 85
86 scoped_refptr<Picture> Picture::Create( 86 scoped_refptr<Picture> Picture::Create(
87 const gfx::Rect& layer_rect, 87 const gfx::Rect& layer_rect,
88 ContentLayerClient* client, 88 ContentLayerClient* client,
89 bool can_use_lcd_text,
90 bool contents_opaque,
89 const SkTileGridFactory::TileGridInfo& tile_grid_info, 91 const SkTileGridFactory::TileGridInfo& tile_grid_info,
90 bool gather_pixel_refs, 92 bool gather_pixel_refs,
91 RecordingMode recording_mode) { 93 RecordingMode recording_mode) {
92 scoped_refptr<Picture> picture = make_scoped_refptr(new Picture(layer_rect)); 94 scoped_refptr<Picture> picture = make_scoped_refptr(new Picture(layer_rect));
93 95
94 picture->Record(client, tile_grid_info, recording_mode); 96 picture->Record(client,
97 can_use_lcd_text,
98 contents_opaque,
99 tile_grid_info,
100 recording_mode);
95 if (gather_pixel_refs) 101 if (gather_pixel_refs)
96 picture->GatherPixelRefs(tile_grid_info); 102 picture->GatherPixelRefs(tile_grid_info);
97 103
98 return picture; 104 return picture;
99 } 105 }
100 106
101 Picture::Picture(const gfx::Rect& layer_rect) 107 Picture::Picture(const gfx::Rect& layer_rect)
102 : layer_rect_(layer_rect), 108 : layer_rect_(layer_rect),
103 cell_size_(layer_rect.size()) { 109 cell_size_(layer_rect.size()) {
104 // Instead of recording a trace event for object creation here, we wait for 110 // Instead of recording a trace event for object creation here, we wait for
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 DCHECK(picture_); 197 DCHECK(picture_);
192 return picture_->approximateOpCount(); 198 return picture_->approximateOpCount();
193 } 199 }
194 200
195 bool Picture::HasText() const { 201 bool Picture::HasText() const {
196 DCHECK(picture_); 202 DCHECK(picture_);
197 return picture_->hasText(); 203 return picture_->hasText();
198 } 204 }
199 205
200 void Picture::Record(ContentLayerClient* painter, 206 void Picture::Record(ContentLayerClient* painter,
207 bool can_use_lcd_text,
208 bool contents_opaque,
201 const SkTileGridFactory::TileGridInfo& tile_grid_info, 209 const SkTileGridFactory::TileGridInfo& tile_grid_info,
202 RecordingMode recording_mode) { 210 RecordingMode recording_mode) {
203 TRACE_EVENT2("cc", 211 TRACE_EVENT2("cc",
204 "Picture::Record", 212 "Picture::Record",
205 "data", 213 "data",
206 AsTraceableRecordData(), 214 AsTraceableRecordData(),
207 "recording_mode", 215 "recording_mode",
208 recording_mode); 216 recording_mode);
209 217
210 DCHECK(!picture_); 218 DCHECK(!picture_);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
242 canvas->save(); 250 canvas->save();
243 canvas->translate(SkFloatToScalar(-layer_rect_.x()), 251 canvas->translate(SkFloatToScalar(-layer_rect_.x()),
244 SkFloatToScalar(-layer_rect_.y())); 252 SkFloatToScalar(-layer_rect_.y()));
245 253
246 SkRect layer_skrect = SkRect::MakeXYWH(layer_rect_.x(), 254 SkRect layer_skrect = SkRect::MakeXYWH(layer_rect_.x(),
247 layer_rect_.y(), 255 layer_rect_.y(),
248 layer_rect_.width(), 256 layer_rect_.width(),
249 layer_rect_.height()); 257 layer_rect_.height());
250 canvas->clipRect(layer_skrect); 258 canvas->clipRect(layer_skrect);
251 259
252 painter->PaintContents(canvas.get(), layer_rect_, graphics_context_status); 260 painter->PaintContents(canvas.get(),
261 layer_rect_,
262 can_use_lcd_text,
263 contents_opaque,
264 graphics_context_status);
253 265
254 canvas->restore(); 266 canvas->restore();
255 picture_ = skia::AdoptRef(recorder.endRecording()); 267 picture_ = skia::AdoptRef(recorder.endRecording());
256 DCHECK(picture_); 268 DCHECK(picture_);
257 269
258 EmitTraceSnapshot(); 270 EmitTraceSnapshot();
259 } 271 }
260 272
261 void Picture::GatherPixelRefs( 273 void Picture::GatherPixelRefs(
262 const SkTileGridFactory::TileGridInfo& tile_grid_info) { 274 const SkTileGridFactory::TileGridInfo& tile_grid_info) {
(...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after
511 scoped_refptr<base::debug::TracedValue> record_data = 523 scoped_refptr<base::debug::TracedValue> record_data =
512 new base::debug::TracedValue(); 524 new base::debug::TracedValue();
513 TracedValue::SetIDRef(this, record_data.get(), "picture_id"); 525 TracedValue::SetIDRef(this, record_data.get(), "picture_id");
514 record_data->BeginArray("layer_rect"); 526 record_data->BeginArray("layer_rect");
515 MathUtil::AddToTracedValue(layer_rect_, record_data.get()); 527 MathUtil::AddToTracedValue(layer_rect_, record_data.get());
516 record_data->EndArray(); 528 record_data->EndArray();
517 return record_data; 529 return record_data;
518 } 530 }
519 531
520 } // namespace cc 532 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698