make setScaleTranslate public

BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2122093002

TBR=

Review-Url: https://codereview.chromium.org/2122093002
This commit is contained in:
reed 2016-07-05 20:10:42 -07:00 committed by Commit bot
parent ec7f2ac728
commit 2dcb615c6f
2 changed files with 31 additions and 23 deletions

View File

@ -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;

View File

@ -939,6 +939,11 @@ DEF_TEST(Matrix, reporter) {
test_set9(reporter);
test_decompScale(reporter);
mat.setScaleTranslate(2, 3, 1, 4);
mat2.setScale(2, 3);
mat2.postTranslate(1, 4);
REPORTER_ASSERT(reporter, mat == mat2);
}
DEF_TEST(Matrix_Concat, r) {