| Index: include/core/SkMatrix.h
|
| diff --git a/include/core/SkMatrix.h b/include/core/SkMatrix.h
|
| index d6d029597f14598dfeb4140767227b7ae7b506f2..5b22a774814de5c02111d0e3c656b10f90526551 100644
|
| --- a/include/core/SkMatrix.h
|
| +++ b/include/core/SkMatrix.h
|
| @@ -710,6 +710,32 @@ public:
|
| this->setTypeMask(kUnknown_Mask);
|
| }
|
|
|
| + /**
|
| + * Initialize the matrix to be scale + post-translate.
|
| + */
|
| + void setScaleTranslate(SkScalar sx, SkScalar sy, SkScalar tx, SkScalar ty) {
|
| + fMat[kMScaleX] = sx;
|
| + fMat[kMSkewX] = 0;
|
| + fMat[kMTransX] = tx;
|
| +
|
| + fMat[kMSkewY] = 0;
|
| + fMat[kMScaleY] = sy;
|
| + fMat[kMTransY] = ty;
|
| +
|
| + fMat[kMPersp0] = 0;
|
| + fMat[kMPersp1] = 0;
|
| + fMat[kMPersp2] = 1;
|
| +
|
| + unsigned mask = 0;
|
| + if (sx != 1 || sy != 1) {
|
| + mask |= kScale_Mask;
|
| + }
|
| + if (tx || ty) {
|
| + mask |= kTranslate_Mask;
|
| + }
|
| + this->setTypeMask(mask | kRectStaysRect_Mask);
|
| + }
|
| +
|
| private:
|
| enum {
|
| /** Set if the matrix will map a rectangle to another rectangle. This
|
| @@ -748,29 +774,6 @@ private:
|
|
|
| static void ComputeInv(SkScalar dst[9], const SkScalar src[9], double invDet, bool isPersp);
|
|
|
| - void setScaleTranslate(SkScalar sx, SkScalar sy, SkScalar tx, SkScalar ty) {
|
| - fMat[kMScaleX] = sx;
|
| - fMat[kMSkewX] = 0;
|
| - fMat[kMTransX] = tx;
|
| -
|
| - fMat[kMSkewY] = 0;
|
| - fMat[kMScaleY] = sy;
|
| - fMat[kMTransY] = ty;
|
| -
|
| - fMat[kMPersp0] = 0;
|
| - fMat[kMPersp1] = 0;
|
| - fMat[kMPersp2] = 1;
|
| -
|
| - unsigned mask = 0;
|
| - if (sx != 1 || sy != 1) {
|
| - mask |= kScale_Mask;
|
| - }
|
| - if (tx || ty) {
|
| - mask |= kTranslate_Mask;
|
| - }
|
| - this->setTypeMask(mask | kRectStaysRect_Mask);
|
| - }
|
| -
|
| uint8_t computeTypeMask() const;
|
| uint8_t computePerspectiveTypeMask() const;
|
|
|
|
|