diff options
author | 2011-10-07 21:55:56 +0000 | |
---|---|---|
committer | 2011-10-07 21:55:56 +0000 | |
commit | 07faed110275048c83a55ae39042da2c9d916108 (patch) | |
tree | 4180d282e2695bf8b9572b8b8eb0ed706c075a90 /include | |
parent | cf385232c45b7692eaf31260fe650457f400521a (diff) |
Setting perspective in fixed point.
http://codereview.appspot.com/5088043/
git-svn-id: http://skia.googlecode.com/svn/trunk@2435 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'include')
-rw-r--r-- | include/core/SkMatrix.h | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/include/core/SkMatrix.h b/include/core/SkMatrix.h index 8c7f54be22..8fdb8185b0 100644 --- a/include/core/SkMatrix.h +++ b/include/core/SkMatrix.h @@ -14,6 +14,16 @@ class SkString; +#ifdef SK_SCALAR_IS_FLOAT + typedef SkScalar SkPersp; + #define SkScalarToPersp(x) (x) + #define SkPerspToScalar(x) (x) +#else + typedef SkFract SkPersp; + #define SkScalarToPersp(x) SkFixedToFract(x) + #define SkPerspToScalar(x) SkFractToFixed(x) +#endif + /** \class SkMatrix The SkMatrix class holds a 3x3 matrix for transforming coordinates. @@ -114,8 +124,8 @@ public: SkScalar getSkewX() const { return fMat[kMSkewX]; } SkScalar getTranslateX() const { return fMat[kMTransX]; } SkScalar getTranslateY() const { return fMat[kMTransY]; } - SkScalar getPerspX() const { return fMat[kMPersp0]; } - SkScalar getPerspY() const { return fMat[kMPersp1]; } + SkPersp getPerspX() const { return fMat[kMPersp0]; } + SkPersp getPerspY() const { return fMat[kMPersp1]; } SkScalar& operator[](int index) { SkASSERT((unsigned)index < 9); @@ -135,12 +145,12 @@ public: void setSkewX(SkScalar v) { this->set(kMSkewX, v); } void setTranslateX(SkScalar v) { this->set(kMTransX, v); } void setTranslateY(SkScalar v) { this->set(kMTransY, v); } - void setPerspX(SkScalar v) { this->set(kMPersp0, v); } - void setPerspY(SkScalar v) { this->set(kMPersp1, v); } + void setPerspX(SkPersp v) { this->set(kMPersp0, v); } + void setPerspY(SkPersp v) { this->set(kMPersp1, v); } void setAll(SkScalar scaleX, SkScalar skewX, SkScalar transX, SkScalar skewY, SkScalar scaleY, SkScalar transY, - SkScalar persp0, SkScalar persp1, SkScalar persp2) { + SkPersp persp0, SkPersp persp1, SkPersp persp2) { fMat[kMScaleX] = scaleX; fMat[kMSkewX] = skewX; fMat[kMTransX] = transX; |