OLD | NEW |
1 // Copyright 2017 The Chromium Authors. All rights reserved. | 1 // Copyright 2017 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/paint/paint_op_buffer.h" | 5 #include "cc/paint/paint_op_buffer.h" |
6 | 6 |
7 #include "cc/paint/display_item_list.h" | 7 #include "cc/paint/display_item_list.h" |
8 #include "cc/paint/paint_record.h" | 8 #include "cc/paint/paint_record.h" |
9 #include "third_party/skia/include/core/SkAnnotation.h" | 9 #include "third_party/skia/include/core/SkAnnotation.h" |
10 | 10 |
(...skipping 398 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
409 AnnotateOp::~AnnotateOp() = default; | 409 AnnotateOp::~AnnotateOp() = default; |
410 | 410 |
411 DrawDisplayItemListOp::DrawDisplayItemListOp( | 411 DrawDisplayItemListOp::DrawDisplayItemListOp( |
412 scoped_refptr<DisplayItemList> list) | 412 scoped_refptr<DisplayItemList> list) |
413 : list(list) {} | 413 : list(list) {} |
414 | 414 |
415 size_t DrawDisplayItemListOp::AdditionalBytesUsed() const { | 415 size_t DrawDisplayItemListOp::AdditionalBytesUsed() const { |
416 return list->ApproximateMemoryUsage(); | 416 return list->ApproximateMemoryUsage(); |
417 } | 417 } |
418 | 418 |
| 419 bool DrawDisplayItemListOp::HasDiscardableImages() const { |
| 420 return list->has_discardable_images(); |
| 421 } |
| 422 |
419 DrawDisplayItemListOp::DrawDisplayItemListOp(const DrawDisplayItemListOp& op) = | 423 DrawDisplayItemListOp::DrawDisplayItemListOp(const DrawDisplayItemListOp& op) = |
420 default; | 424 default; |
421 | 425 |
422 DrawDisplayItemListOp& DrawDisplayItemListOp::operator=( | 426 DrawDisplayItemListOp& DrawDisplayItemListOp::operator=( |
423 const DrawDisplayItemListOp& op) = default; | 427 const DrawDisplayItemListOp& op) = default; |
424 | 428 |
425 DrawDisplayItemListOp::~DrawDisplayItemListOp() = default; | 429 DrawDisplayItemListOp::~DrawDisplayItemListOp() = default; |
426 | 430 |
427 DrawImageOp::DrawImageOp(const PaintImage& image, | 431 DrawImageOp::DrawImageOp(const PaintImage& image, |
428 SkScalar left, | 432 SkScalar left, |
429 SkScalar top, | 433 SkScalar top, |
430 const PaintFlags* flags) | 434 const PaintFlags* flags) |
431 : image(image), | 435 : image(image), |
432 left(left), | 436 left(left), |
433 top(top), | 437 top(top), |
434 flags(flags ? *flags : PaintFlags()) {} | 438 flags(flags ? *flags : PaintFlags()) {} |
435 | 439 |
| 440 bool DrawImageOp::HasDiscardableImages() const { |
| 441 // TODO(khushalsagar): Callers should not be able to change the lazy generated |
| 442 // state for a PaintImage. |
| 443 return image.sk_image()->isLazyGenerated(); |
| 444 } |
| 445 |
436 DrawImageOp::~DrawImageOp() = default; | 446 DrawImageOp::~DrawImageOp() = default; |
437 | 447 |
438 DrawImageRectOp::DrawImageRectOp(const PaintImage& image, | 448 DrawImageRectOp::DrawImageRectOp(const PaintImage& image, |
439 const SkRect& src, | 449 const SkRect& src, |
440 const SkRect& dst, | 450 const SkRect& dst, |
441 const PaintFlags* flags, | 451 const PaintFlags* flags, |
442 PaintCanvas::SrcRectConstraint constraint) | 452 PaintCanvas::SrcRectConstraint constraint) |
443 : image(image), | 453 : image(image), |
444 flags(flags ? *flags : PaintFlags()), | 454 flags(flags ? *flags : PaintFlags()), |
445 src(src), | 455 src(src), |
446 dst(dst), | 456 dst(dst), |
447 constraint(constraint) {} | 457 constraint(constraint) {} |
448 | 458 |
| 459 bool DrawImageRectOp::HasDiscardableImages() const { |
| 460 return image.sk_image()->isLazyGenerated(); |
| 461 } |
| 462 |
449 DrawImageRectOp::~DrawImageRectOp() = default; | 463 DrawImageRectOp::~DrawImageRectOp() = default; |
450 | 464 |
451 DrawPosTextOp::DrawPosTextOp(size_t bytes, | 465 DrawPosTextOp::DrawPosTextOp(size_t bytes, |
452 size_t count, | 466 size_t count, |
453 const PaintFlags& flags) | 467 const PaintFlags& flags) |
454 : PaintOpWithDataArray(bytes, count), flags(flags) {} | 468 : PaintOpWithDataArray(bytes, count), flags(flags) {} |
455 | 469 |
456 DrawPosTextOp::~DrawPosTextOp() = default; | 470 DrawPosTextOp::~DrawPosTextOp() = default; |
457 | 471 |
458 DrawRecordOp::DrawRecordOp(sk_sp<const PaintRecord> record) | 472 DrawRecordOp::DrawRecordOp(sk_sp<const PaintRecord> record) |
459 : record(std::move(record)) {} | 473 : record(std::move(record)) {} |
460 | 474 |
461 DrawRecordOp::~DrawRecordOp() = default; | 475 DrawRecordOp::~DrawRecordOp() = default; |
462 | 476 |
463 size_t DrawRecordOp::AdditionalBytesUsed() const { | 477 size_t DrawRecordOp::AdditionalBytesUsed() const { |
464 return record->approximateBytesUsed(); | 478 return record->approximateBytesUsed(); |
465 } | 479 } |
466 | 480 |
| 481 bool DrawRecordOp::HasDiscardableImages() const { |
| 482 return record->HasDiscardableImages(); |
| 483 } |
| 484 |
467 DrawTextBlobOp::DrawTextBlobOp(sk_sp<SkTextBlob> blob, | 485 DrawTextBlobOp::DrawTextBlobOp(sk_sp<SkTextBlob> blob, |
468 SkScalar x, | 486 SkScalar x, |
469 SkScalar y, | 487 SkScalar y, |
470 const PaintFlags& flags) | 488 const PaintFlags& flags) |
471 : blob(std::move(blob)), x(x), y(y), flags(flags) {} | 489 : blob(std::move(blob)), x(x), y(y), flags(flags) {} |
472 | 490 |
473 DrawTextBlobOp::~DrawTextBlobOp() = default; | 491 DrawTextBlobOp::~DrawTextBlobOp() = default; |
474 | 492 |
475 PaintOpBuffer::PaintOpBuffer() : cull_rect_(SkRect::MakeEmpty()) {} | 493 PaintOpBuffer::PaintOpBuffer() : cull_rect_(SkRect::MakeEmpty()) {} |
476 | 494 |
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
557 } | 575 } |
558 | 576 |
559 void PaintOpBuffer::ShrinkToFit() { | 577 void PaintOpBuffer::ShrinkToFit() { |
560 if (!used_ || used_ == reserved_) | 578 if (!used_ || used_ == reserved_) |
561 return; | 579 return; |
562 data_.realloc(used_); | 580 data_.realloc(used_); |
563 reserved_ = used_; | 581 reserved_ = used_; |
564 } | 582 } |
565 | 583 |
566 } // namespace cc | 584 } // namespace cc |
OLD | NEW |