OLD | NEW |
---|---|
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2007 The Android Open Source Project | 3 * Copyright 2007 The Android Open Source Project |
4 * | 4 * |
5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
7 */ | 7 */ |
8 | 8 |
9 | 9 |
10 #include "SkPictureFlat.h" | 10 #include "SkPictureFlat.h" |
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
647 // delete playback if it is a local version (i.e. cons'd up just now) | 647 // delete playback if it is a local version (i.e. cons'd up just now) |
648 if (playback != fPlayback) { | 648 if (playback != fPlayback) { |
649 SkDELETE(playback); | 649 SkDELETE(playback); |
650 } | 650 } |
651 } else { | 651 } else { |
652 buffer.writeBool(false); | 652 buffer.writeBool(false); |
653 } | 653 } |
654 } | 654 } |
655 | 655 |
656 #if SK_SUPPORT_GPU | 656 #if SK_SUPPORT_GPU |
657 bool SkPicture::suitableForGpuRasterization(GrContext* context) const { | 657 bool SkPicture::suitableForGpuRasterization(GrContext* context, const char **rea son) const { |
658 // TODO: the heuristic used here needs to be refined | 658 // TODO: the heuristic used here needs to be refined |
659 static const int kNumPaintWithPathEffectUsesTol = 1; | 659 static const int kNumPaintWithPathEffectUsesTol = 1; |
660 static const int kNumAAConcavePaths = 5; | 660 static const int kNumAAConcavePaths = 5; |
661 | 661 |
662 SkASSERT(this->numAAHairlineConcavePaths() <= this->numAAConcavePaths()); | 662 SkASSERT(this->numAAHairlineConcavePaths() <= this->numAAConcavePaths()); |
663 | 663 |
664 return this->numPaintWithPathEffectUses() < kNumPaintWithPathEffectUsesTol & & | 664 bool ret = this->numPaintWithPathEffectUses() < kNumPaintWithPathEffectUsesT ol && |
665 (this->numAAConcavePaths()-this->numAAHairlineConcavePaths()) < kNumA AConcavePaths; | 665 (this->numAAConcavePaths()-this->numAAHairlineConcavePaths()) < k NumAAConcavePaths; |
robertphillips
2014/06/02 13:22:16
NULL != reason ?
| |
666 if (!ret && reason) { | |
667 if (this->numPaintWithPathEffectUses() < kNumPaintWithPathEffectUsesTol) | |
ernstm
2014/05/30 22:07:04
Shouldn't this be >= ?
| |
668 *reason = "Too many path effects."; | |
669 else if ((this->numAAConcavePaths()-this->numAAHairlineConcavePaths()) < kNumAAConcavePaths) | |
670 *reason = "Too many anti-aliased concave paths."; | |
671 } | |
672 return ret; | |
666 } | 673 } |
667 #endif | 674 #endif |
668 | 675 |
669 bool SkPicture::willPlayBackBitmaps() const { | 676 bool SkPicture::willPlayBackBitmaps() const { |
670 if (!fPlayback) { | 677 if (!fPlayback) { |
671 return false; | 678 return false; |
672 } | 679 } |
673 return fPlayback->containsBitmaps(); | 680 return fPlayback->containsBitmaps(); |
674 } | 681 } |
675 | 682 |
(...skipping 21 matching lines...) Expand all Loading... | |
697 if (NULL != fRecord) { | 704 if (NULL != fRecord) { |
698 SkASSERT(NULL == fPlayback); | 705 SkASSERT(NULL == fPlayback); |
699 return SK_InvalidGenID; | 706 return SK_InvalidGenID; |
700 } | 707 } |
701 | 708 |
702 if (SK_InvalidGenID == fUniqueID) { | 709 if (SK_InvalidGenID == fUniqueID) { |
703 fUniqueID = next_picture_generation_id(); | 710 fUniqueID = next_picture_generation_id(); |
704 } | 711 } |
705 return fUniqueID; | 712 return fUniqueID; |
706 } | 713 } |
OLD | NEW |