OLD | NEW |
1 | 1 |
2 /* | 2 /* |
3 * Copyright 2006 The Android Open Source Project | 3 * Copyright 2006 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 #ifndef SkMatrix_DEFINED | 10 #ifndef SkMatrix_DEFINED |
(...skipping 628 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
639 kAllMasks = kTranslate_Mask | | 639 kAllMasks = kTranslate_Mask | |
640 kScale_Mask | | 640 kScale_Mask | |
641 kAffine_Mask | | 641 kAffine_Mask | |
642 kPerspective_Mask | | 642 kPerspective_Mask | |
643 kRectStaysRect_Mask | 643 kRectStaysRect_Mask |
644 }; | 644 }; |
645 | 645 |
646 SkScalar fMat[9]; | 646 SkScalar fMat[9]; |
647 mutable SkTRacy<uint32_t> fTypeMask; | 647 mutable SkTRacy<uint32_t> fTypeMask; |
648 | 648 |
649 void setScaleTranslate(SkScalar sx, SkScalar sy, SkScalar tx, SkScalar ty) { | |
650 fMat[kMScaleX] = sx; | |
651 fMat[kMSkewX] = 0; | |
652 fMat[kMTransX] = tx; | |
653 | |
654 fMat[kMSkewY] = 0; | |
655 fMat[kMScaleY] = sy; | |
656 fMat[kMTransY] = ty; | |
657 | |
658 fMat[kMPersp0] = 0; | |
659 fMat[kMPersp1] = 0; | |
660 fMat[kMPersp2] = 1; | |
661 | |
662 unsigned mask = 0; | |
663 if (sx != 1 || sy != 1) { | |
664 mask |= kScale_Mask; | |
665 } | |
666 if (tx || ty) { | |
667 mask |= kTranslate_Mask; | |
668 } | |
669 this->setTypeMask(mask | kRectStaysRect_Mask); | |
670 } | |
671 | |
672 uint8_t computeTypeMask() const; | 649 uint8_t computeTypeMask() const; |
673 uint8_t computePerspectiveTypeMask() const; | 650 uint8_t computePerspectiveTypeMask() const; |
674 | 651 |
675 void setTypeMask(int mask) { | 652 void setTypeMask(int mask) { |
676 // allow kUnknown or a valid mask | 653 // allow kUnknown or a valid mask |
677 SkASSERT(kUnknown_Mask == mask || (mask & kAllMasks) == mask || | 654 SkASSERT(kUnknown_Mask == mask || (mask & kAllMasks) == mask || |
678 ((kUnknown_Mask | kOnlyPerspectiveValid_Mask) & mask) | 655 ((kUnknown_Mask | kOnlyPerspectiveValid_Mask) & mask) |
679 == (kUnknown_Mask | kOnlyPerspectiveValid_Mask)); | 656 == (kUnknown_Mask | kOnlyPerspectiveValid_Mask)); |
680 fTypeMask = SkToU8(mask); | 657 fTypeMask = SkToU8(mask); |
681 } | 658 } |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
734 static void RotTrans_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], | 711 static void RotTrans_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], |
735 int count); | 712 int count); |
736 static void Persp_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], int); | 713 static void Persp_pts(const SkMatrix&, SkPoint dst[], const SkPoint[], int); |
737 | 714 |
738 static const MapPtsProc gMapPtsProcs[]; | 715 static const MapPtsProc gMapPtsProcs[]; |
739 | 716 |
740 friend class SkPerspIter; | 717 friend class SkPerspIter; |
741 }; | 718 }; |
742 | 719 |
743 #endif | 720 #endif |
OLD | NEW |