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 573 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 | 584 |
585 static MapPtsProc GetMapPtsProc(TypeMask mask) { | 585 static MapPtsProc GetMapPtsProc(TypeMask mask) { |
586 SkASSERT((mask & ~kAllMasks) == 0); | 586 SkASSERT((mask & ~kAllMasks) == 0); |
587 return gMapPtsProcs[mask & kAllMasks]; | 587 return gMapPtsProcs[mask & kAllMasks]; |
588 } | 588 } |
589 | 589 |
590 MapPtsProc getMapPtsProc() const { | 590 MapPtsProc getMapPtsProc() const { |
591 return GetMapPtsProc(this->getType()); | 591 return GetMapPtsProc(this->getType()); |
592 } | 592 } |
593 | 593 |
| 594 /** Returns true if the matrix can be stepped in X (not complex |
| 595 perspective). |
| 596 */ |
| 597 bool isFixedStepInX() const; |
| 598 |
594 /** If the matrix can be stepped in X (not complex perspective) | 599 /** If the matrix can be stepped in X (not complex perspective) |
595 then return true and if step[XY] is not null, return the step[XY] value. | 600 then return the step value. |
596 If it cannot, return false and ignore step. | 601 If it cannot, behavior is undefined. |
597 */ | 602 */ |
598 bool fixedStepInX(SkScalar y, SkFixed* stepX, SkFixed* stepY) const; | 603 SkVector fixedStepInX(SkScalar y) const; |
599 | 604 |
600 /** Efficient comparison of two matrices. It distinguishes between zero and | 605 /** Efficient comparison of two matrices. It distinguishes between zero and |
601 * negative zero. It will return false when the sign of zero values is the | 606 * negative zero. It will return false when the sign of zero values is the |
602 * only difference between the two matrices. It considers NaN values to be | 607 * only difference between the two matrices. It considers NaN values to be |
603 * equal to themselves. So a matrix full of NaNs is "cheap equal" to | 608 * equal to themselves. So a matrix full of NaNs is "cheap equal" to |
604 * another matrix full of NaNs iff the NaN values are bitwise identical | 609 * another matrix full of NaNs iff the NaN values are bitwise identical |
605 * while according to strict the strict == test a matrix with a NaN value | 610 * while according to strict the strict == test a matrix with a NaN value |
606 * is equal to nothing, including itself. | 611 * is equal to nothing, including itself. |
607 */ | 612 */ |
608 bool cheapEqualTo(const SkMatrix& m) const { | 613 bool cheapEqualTo(const SkMatrix& m) const { |
(...skipping 216 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
825 | 830 |
826 static void Affine_vpts(const SkMatrix&, SkPoint dst[], const SkPoint[], int
); | 831 static void Affine_vpts(const SkMatrix&, SkPoint dst[], const SkPoint[], int
); |
827 | 832 |
828 static const MapPtsProc gMapPtsProcs[]; | 833 static const MapPtsProc gMapPtsProcs[]; |
829 | 834 |
830 friend class SkPerspIter; | 835 friend class SkPerspIter; |
831 }; | 836 }; |
832 SK_END_REQUIRE_DENSE | 837 SK_END_REQUIRE_DENSE |
833 | 838 |
834 #endif | 839 #endif |
OLD | NEW |