| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2011 Google Inc. | 2 * Copyright 2011 Google Inc. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license that can be | 4 * Use of this source code is governed by a BSD-style license that can be |
| 5 * found in the LICENSE file. | 5 * found in the LICENSE file. |
| 6 */ | 6 */ |
| 7 | 7 |
| 8 #include "SkPictureRecord.h" | 8 #include "SkPictureRecord.h" |
| 9 #include "SkTSearch.h" | 9 #include "SkTSearch.h" |
| 10 #include "SkPixelRef.h" | 10 #include "SkPixelRef.h" |
| (...skipping 646 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 657 void SkPictureRecord::recordRestore(bool fillInSkips) { | 657 void SkPictureRecord::recordRestore(bool fillInSkips) { |
| 658 uint32_t initialOffset, size; | 658 uint32_t initialOffset, size; |
| 659 if (fillInSkips) { | 659 if (fillInSkips) { |
| 660 this->fillRestoreOffsetPlaceholdersForCurrentStackLevel((uint32_t)fWrite
r.bytesWritten()); | 660 this->fillRestoreOffsetPlaceholdersForCurrentStackLevel((uint32_t)fWrite
r.bytesWritten()); |
| 661 } | 661 } |
| 662 size = 1 * kUInt32Size; // RESTORE consists solely of 1 op code | 662 size = 1 * kUInt32Size; // RESTORE consists solely of 1 op code |
| 663 initialOffset = this->addDraw(RESTORE, &size); | 663 initialOffset = this->addDraw(RESTORE, &size); |
| 664 this->validate(initialOffset, size); | 664 this->validate(initialOffset, size); |
| 665 } | 665 } |
| 666 | 666 |
| 667 bool SkPictureRecord::translate(SkScalar dx, SkScalar dy) { | 667 void SkPictureRecord::didTranslate(SkScalar dx, SkScalar dy) { |
| 668 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE | 668 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE |
| 669 fMCMgr.translate(dx, dy); | 669 fMCMgr.translate(dx, dy); |
| 670 #else | 670 #else |
| 671 // op + dx + dy | 671 // op + dx + dy |
| 672 uint32_t size = 1 * kUInt32Size + 2 * sizeof(SkScalar); | 672 uint32_t size = 1 * kUInt32Size + 2 * sizeof(SkScalar); |
| 673 size_t initialOffset = this->addDraw(TRANSLATE, &size); | 673 size_t initialOffset = this->addDraw(TRANSLATE, &size); |
| 674 this->addScalar(dx); | 674 this->addScalar(dx); |
| 675 this->addScalar(dy); | 675 this->addScalar(dy); |
| 676 this->validate(initialOffset, size); | 676 this->validate(initialOffset, size); |
| 677 #endif | 677 #endif |
| 678 return this->INHERITED::translate(dx, dy); | 678 this->INHERITED::didTranslate(dx, dy); |
| 679 } | 679 } |
| 680 | 680 |
| 681 bool SkPictureRecord::scale(SkScalar sx, SkScalar sy) { | 681 void SkPictureRecord::didScale(SkScalar sx, SkScalar sy) { |
| 682 | 682 |
| 683 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE | 683 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE |
| 684 fMCMgr.scale(sx, sy); | 684 fMCMgr.scale(sx, sy); |
| 685 #else | 685 #else |
| 686 // op + sx + sy | 686 // op + sx + sy |
| 687 uint32_t size = 1 * kUInt32Size + 2 * sizeof(SkScalar); | 687 uint32_t size = 1 * kUInt32Size + 2 * sizeof(SkScalar); |
| 688 size_t initialOffset = this->addDraw(SCALE, &size); | 688 size_t initialOffset = this->addDraw(SCALE, &size); |
| 689 this->addScalar(sx); | 689 this->addScalar(sx); |
| 690 this->addScalar(sy); | 690 this->addScalar(sy); |
| 691 this->validate(initialOffset, size); | 691 this->validate(initialOffset, size); |
| 692 #endif | 692 #endif |
| 693 return this->INHERITED::scale(sx, sy); | 693 this->INHERITED::didScale(sx, sy); |
| 694 } | 694 } |
| 695 | 695 |
| 696 bool SkPictureRecord::rotate(SkScalar degrees) { | 696 void SkPictureRecord::didRotate(SkScalar degrees) { |
| 697 | 697 |
| 698 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE | 698 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE |
| 699 fMCMgr.rotate(degrees); | 699 fMCMgr.rotate(degrees); |
| 700 #else | 700 #else |
| 701 // op + degrees | 701 // op + degrees |
| 702 uint32_t size = 1 * kUInt32Size + sizeof(SkScalar); | 702 uint32_t size = 1 * kUInt32Size + sizeof(SkScalar); |
| 703 size_t initialOffset = this->addDraw(ROTATE, &size); | 703 size_t initialOffset = this->addDraw(ROTATE, &size); |
| 704 this->addScalar(degrees); | 704 this->addScalar(degrees); |
| 705 this->validate(initialOffset, size); | 705 this->validate(initialOffset, size); |
| 706 #endif | 706 #endif |
| 707 return this->INHERITED::rotate(degrees); | 707 this->INHERITED::didRotate(degrees); |
| 708 } | 708 } |
| 709 | 709 |
| 710 bool SkPictureRecord::skew(SkScalar sx, SkScalar sy) { | 710 void SkPictureRecord::didSkew(SkScalar sx, SkScalar sy) { |
| 711 | 711 |
| 712 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE | 712 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE |
| 713 fMCMgr.skew(sx, sy); | 713 fMCMgr.skew(sx, sy); |
| 714 #else | 714 #else |
| 715 // op + sx + sy | 715 // op + sx + sy |
| 716 uint32_t size = 1 * kUInt32Size + 2 * sizeof(SkScalar); | 716 uint32_t size = 1 * kUInt32Size + 2 * sizeof(SkScalar); |
| 717 size_t initialOffset = this->addDraw(SKEW, &size); | 717 size_t initialOffset = this->addDraw(SKEW, &size); |
| 718 this->addScalar(sx); | 718 this->addScalar(sx); |
| 719 this->addScalar(sy); | 719 this->addScalar(sy); |
| 720 this->validate(initialOffset, size); | 720 this->validate(initialOffset, size); |
| 721 #endif | 721 #endif |
| 722 return this->INHERITED::skew(sx, sy); | 722 this->INHERITED::didSkew(sx, sy); |
| 723 } | 723 } |
| 724 | 724 |
| 725 bool SkPictureRecord::concat(const SkMatrix& matrix) { | 725 void SkPictureRecord::didConcat(const SkMatrix& matrix) { |
| 726 | 726 |
| 727 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE | 727 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE |
| 728 fMCMgr.concat(matrix); | 728 fMCMgr.concat(matrix); |
| 729 #else | 729 #else |
| 730 this->recordConcat(matrix); | 730 this->recordConcat(matrix); |
| 731 #endif | 731 #endif |
| 732 return this->INHERITED::concat(matrix); | 732 this->INHERITED::didConcat(matrix); |
| 733 } | 733 } |
| 734 | 734 |
| 735 void SkPictureRecord::recordConcat(const SkMatrix& matrix) { | 735 void SkPictureRecord::recordConcat(const SkMatrix& matrix) { |
| 736 this->validate(fWriter.bytesWritten(), 0); | 736 this->validate(fWriter.bytesWritten(), 0); |
| 737 // op + matrix | 737 // op + matrix |
| 738 uint32_t size = kUInt32Size + matrix.writeToMemory(NULL); | 738 uint32_t size = kUInt32Size + matrix.writeToMemory(NULL); |
| 739 size_t initialOffset = this->addDraw(CONCAT, &size); | 739 size_t initialOffset = this->addDraw(CONCAT, &size); |
| 740 this->addMatrix(matrix); | 740 this->addMatrix(matrix); |
| 741 this->validate(initialOffset, size); | 741 this->validate(initialOffset, size); |
| 742 } | 742 } |
| 743 | 743 |
| 744 void SkPictureRecord::setMatrix(const SkMatrix& matrix) { | 744 void SkPictureRecord::didSetMatrix(const SkMatrix& matrix) { |
| 745 | 745 |
| 746 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE | 746 #ifdef SK_COLLAPSE_MATRIX_CLIP_STATE |
| 747 fMCMgr.setMatrix(matrix); | 747 fMCMgr.setMatrix(matrix); |
| 748 #else | 748 #else |
| 749 this->validate(fWriter.bytesWritten(), 0); | 749 this->validate(fWriter.bytesWritten(), 0); |
| 750 // op + matrix | 750 // op + matrix |
| 751 uint32_t size = kUInt32Size + matrix.writeToMemory(NULL); | 751 uint32_t size = kUInt32Size + matrix.writeToMemory(NULL); |
| 752 size_t initialOffset = this->addDraw(SET_MATRIX, &size); | 752 size_t initialOffset = this->addDraw(SET_MATRIX, &size); |
| 753 this->addMatrix(matrix); | 753 this->addMatrix(matrix); |
| 754 this->validate(initialOffset, size); | 754 this->validate(initialOffset, size); |
| 755 #endif | 755 #endif |
| 756 this->INHERITED::setMatrix(matrix); | 756 this->INHERITED::didSetMatrix(matrix); |
| 757 } | 757 } |
| 758 | 758 |
| 759 static bool regionOpExpands(SkRegion::Op op) { | 759 static bool regionOpExpands(SkRegion::Op op) { |
| 760 switch (op) { | 760 switch (op) { |
| 761 case SkRegion::kUnion_Op: | 761 case SkRegion::kUnion_Op: |
| 762 case SkRegion::kXOR_Op: | 762 case SkRegion::kXOR_Op: |
| 763 case SkRegion::kReverseDifference_Op: | 763 case SkRegion::kReverseDifference_Op: |
| 764 case SkRegion::kReplace_Op: | 764 case SkRegion::kReplace_Op: |
| 765 return true; | 765 return true; |
| 766 case SkRegion::kIntersect_Op: | 766 case SkRegion::kIntersect_Op: |
| (...skipping 1117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1884 void SkPictureRecord::validateRegions() const { | 1884 void SkPictureRecord::validateRegions() const { |
| 1885 int count = fRegions.count(); | 1885 int count = fRegions.count(); |
| 1886 SkASSERT((unsigned) count < 0x1000); | 1886 SkASSERT((unsigned) count < 0x1000); |
| 1887 for (int index = 0; index < count; index++) { | 1887 for (int index = 0; index < count; index++) { |
| 1888 const SkFlatData* region = fRegions[index]; | 1888 const SkFlatData* region = fRegions[index]; |
| 1889 SkASSERT(region); | 1889 SkASSERT(region); |
| 1890 // region->validate(); | 1890 // region->validate(); |
| 1891 } | 1891 } |
| 1892 } | 1892 } |
| 1893 #endif | 1893 #endif |
| OLD | NEW |