Index: include/core/SkMatrix.h |
diff --git a/include/core/SkMatrix.h b/include/core/SkMatrix.h |
index 9f44bed9c4da20251ccb2053d3b9e2ce7dcec2ee..b3c7378ab27dce136832b910fcaccab9ae924dcc 100644 |
--- a/include/core/SkMatrix.h |
+++ b/include/core/SkMatrix.h |
@@ -646,6 +646,29 @@ private: |
SkScalar fMat[9]; |
mutable SkTRacy<uint32_t> fTypeMask; |
+ 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; |