| OLD | NEW |
| 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 207 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 218 | 218 |
| 219 clones_.clear(); | 219 clones_.clear(); |
| 220 for (int i = 0; i < num_threads; i++) { | 220 for (int i = 0; i < num_threads; i++) { |
| 221 scoped_refptr<Picture> clone = make_scoped_refptr( | 221 scoped_refptr<Picture> clone = make_scoped_refptr( |
| 222 new Picture(skia::AdoptRef(new SkPicture(clones[i])), | 222 new Picture(skia::AdoptRef(new SkPicture(clones[i])), |
| 223 layer_rect_, | 223 layer_rect_, |
| 224 opaque_rect_, | 224 opaque_rect_, |
| 225 pixel_refs_)); | 225 pixel_refs_)); |
| 226 clones_.push_back(clone); | 226 clones_.push_back(clone); |
| 227 | 227 |
| 228 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID( | 228 clone->EmitTraceSnapshot(); |
| 229 TRACE_DISABLED_BY_DEFAULT("cc.debug"), | |
| 230 "cc::Picture", | |
| 231 clone.get(), | |
| 232 TracedPicture::AsTraceablePicture(clone.get())); | |
| 233 } | 229 } |
| 234 } | 230 } |
| 235 | 231 |
| 236 void Picture::Record(ContentLayerClient* painter, | 232 void Picture::Record(ContentLayerClient* painter, |
| 237 const SkTileGridPicture::TileGridInfo& tile_grid_info, | 233 const SkTileGridPicture::TileGridInfo& tile_grid_info, |
| 238 RenderingStats* stats) { | 234 RenderingStats* stats) { |
| 239 TRACE_EVENT2("cc", "Picture::Record", | 235 TRACE_EVENT2("cc", "Picture::Record", |
| 240 "width", layer_rect_.width(), | 236 "width", layer_rect_.width(), |
| 241 "height", layer_rect_.height()); | 237 "height", layer_rect_.height()); |
| 242 | 238 |
| (...skipping 26 matching lines...) Expand all Loading... |
| 269 stats->total_record_time += base::TimeTicks::Now() - begin_record_time; | 265 stats->total_record_time += base::TimeTicks::Now() - begin_record_time; |
| 270 stats->total_pixels_recorded += | 266 stats->total_pixels_recorded += |
| 271 layer_rect_.width() * layer_rect_.height(); | 267 layer_rect_.width() * layer_rect_.height(); |
| 272 } | 268 } |
| 273 | 269 |
| 274 canvas->restore(); | 270 canvas->restore(); |
| 275 picture_->endRecording(); | 271 picture_->endRecording(); |
| 276 | 272 |
| 277 opaque_rect_ = gfx::ToEnclosedRect(opaque_layer_rect); | 273 opaque_rect_ = gfx::ToEnclosedRect(opaque_layer_rect); |
| 278 | 274 |
| 279 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID(TRACE_DISABLED_BY_DEFAULT("cc.debug"), | 275 EmitTraceSnapshot(); |
| 280 "cc::Picture", this, TracedPicture::AsTraceablePicture(this)); | |
| 281 } | 276 } |
| 282 | 277 |
| 283 void Picture::GatherPixelRefs( | 278 void Picture::GatherPixelRefs( |
| 284 const SkTileGridPicture::TileGridInfo& tile_grid_info, | 279 const SkTileGridPicture::TileGridInfo& tile_grid_info, |
| 285 RenderingStats* stats) { | 280 RenderingStats* stats) { |
| 286 TRACE_EVENT2("cc", "Picture::GatherPixelRefs", | 281 TRACE_EVENT2("cc", "Picture::GatherPixelRefs", |
| 287 "width", layer_rect_.width(), | 282 "width", layer_rect_.width(), |
| 288 "height", layer_rect_.height()); | 283 "height", layer_rect_.height()); |
| 289 | 284 |
| 290 DCHECK(picture_); | 285 DCHECK(picture_); |
| (...skipping 93 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 384 size_t serialized_size = stream.bytesWritten(); | 379 size_t serialized_size = stream.bytesWritten(); |
| 385 scoped_ptr<char[]> serialized_picture(new char[serialized_size]); | 380 scoped_ptr<char[]> serialized_picture(new char[serialized_size]); |
| 386 stream.copyTo(serialized_picture.get()); | 381 stream.copyTo(serialized_picture.get()); |
| 387 std::string b64_picture; | 382 std::string b64_picture; |
| 388 base::Base64Encode(std::string(serialized_picture.get(), serialized_size), | 383 base::Base64Encode(std::string(serialized_picture.get(), serialized_size), |
| 389 &b64_picture); | 384 &b64_picture); |
| 390 res->SetString("skp64", b64_picture); | 385 res->SetString("skp64", b64_picture); |
| 391 return res.PassAs<base::Value>(); | 386 return res.PassAs<base::Value>(); |
| 392 } | 387 } |
| 393 | 388 |
| 389 void Picture::EmitTraceSnapshot() { |
| 390 TRACE_EVENT_OBJECT_SNAPSHOT_WITH_ID(TRACE_DISABLED_BY_DEFAULT("cc.debug"), |
| 391 "cc::Picture", this, TracedPicture::AsTraceablePicture(this)); |
| 392 } |
| 393 |
| 394 base::LazyInstance<Picture::PixelRefs> | 394 base::LazyInstance<Picture::PixelRefs> |
| 395 Picture::PixelRefIterator::empty_pixel_refs_; | 395 Picture::PixelRefIterator::empty_pixel_refs_; |
| 396 | 396 |
| 397 Picture::PixelRefIterator::PixelRefIterator() | 397 Picture::PixelRefIterator::PixelRefIterator() |
| 398 : picture_(NULL), | 398 : picture_(NULL), |
| 399 current_pixel_refs_(empty_pixel_refs_.Pointer()), | 399 current_pixel_refs_(empty_pixel_refs_.Pointer()), |
| 400 current_index_(0), | 400 current_index_(0), |
| 401 min_point_(-1, -1), | 401 min_point_(-1, -1), |
| 402 max_point_(-1, -1), | 402 max_point_(-1, -1), |
| 403 current_x_(0), | 403 current_x_(0), |
| (...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 495 raster_data->Set("picture_id", TracedValue::CreateIDRef(this).release()); | 495 raster_data->Set("picture_id", TracedValue::CreateIDRef(this).release()); |
| 496 raster_data->SetDouble("scale", scale); | 496 raster_data->SetDouble("scale", scale); |
| 497 raster_data->SetDouble("rect_x", rect.x()); | 497 raster_data->SetDouble("rect_x", rect.x()); |
| 498 raster_data->SetDouble("rect_y", rect.y()); | 498 raster_data->SetDouble("rect_y", rect.y()); |
| 499 raster_data->SetDouble("rect_width", rect.width()); | 499 raster_data->SetDouble("rect_width", rect.width()); |
| 500 raster_data->SetDouble("rect_height", rect.height()); | 500 raster_data->SetDouble("rect_height", rect.height()); |
| 501 return TracedValue::FromValue(raster_data.release()); | 501 return TracedValue::FromValue(raster_data.release()); |
| 502 } | 502 } |
| 503 | 503 |
| 504 } // namespace cc | 504 } // namespace cc |
| OLD | NEW |