Add matrix constructing helpers to SkMatrix
Review URL: https://codereview.chromium.org/1034273002
diff --git a/bench/DashBench.cpp b/bench/DashBench.cpp
index 17a9234..bf0d456 100644
--- a/bench/DashBench.cpp
+++ b/bench/DashBench.cpp
@@ -153,8 +153,7 @@
static void make_poly(SkPath* path) {
make_unit_star(path, 9);
- SkMatrix matrix;
- matrix.setScale(SkIntToScalar(100), SkIntToScalar(100));
+ const SkMatrix matrix = SkMatrix::MakeScale(SkIntToScalar(100), SkIntToScalar(100));
path->transform(matrix);
}
diff --git a/bench/HairlinePathBench.cpp b/bench/HairlinePathBench.cpp
index 5b77ff8..67f5476 100644
--- a/bench/HairlinePathBench.cpp
+++ b/bench/HairlinePathBench.cpp
@@ -59,8 +59,7 @@
SkPath path;
this->makePath(&path);
if (fFlags & kBig_Flag) {
- SkMatrix m;
- m.setScale(SkIntToScalar(3), SkIntToScalar(3));
+ const SkMatrix m = SkMatrix::MakeScale(SkIntToScalar(3), SkIntToScalar(3));
path.transform(m);
}
diff --git a/bench/PathBench.cpp b/bench/PathBench.cpp
index a429e2f..710179a 100644
--- a/bench/PathBench.cpp
+++ b/bench/PathBench.cpp
@@ -57,8 +57,7 @@
SkPath path;
this->makePath(&path);
if (fFlags & kBig_Flag) {
- SkMatrix m;
- m.setScale(SkIntToScalar(10), SkIntToScalar(10));
+ const SkMatrix m = SkMatrix::MakeScale(SkIntToScalar(10), SkIntToScalar(10));
path.transform(m);
}
diff --git a/bench/SKPBench.cpp b/bench/SKPBench.cpp
index 3f52179..6f74ff9 100644
--- a/bench/SKPBench.cpp
+++ b/bench/SKPBench.cpp
@@ -116,9 +116,8 @@
} else {
for (int i = 0; i < loops; i++) {
for (int j = 0; j < fTileRects.count(); ++j) {
- SkMatrix trans;
- trans.setTranslate(-fTileRects[j].fLeft / fScale,
- -fTileRects[j].fTop / fScale);
+ const SkMatrix trans = SkMatrix::MakeTrans(-fTileRects[j].fLeft / fScale,
+ -fTileRects[j].fTop / fScale);
fSurfaces[j]->getCanvas()->drawPicture(fPic, &trans, NULL);
}
diff --git a/gm/aarectmodes.cpp b/gm/aarectmodes.cpp
index f4889a8..205876b 100644
--- a/gm/aarectmodes.cpp
+++ b/gm/aarectmodes.cpp
@@ -113,8 +113,7 @@
*bm.getAddr32(1, 0) = *bm.getAddr32(0, 1) = SkPackARGB32(0xFF, 0xCC,
0xCC, 0xCC);
- SkMatrix m;
- m.setScale(SkIntToScalar(6), SkIntToScalar(6));
+ const SkMatrix m = SkMatrix::MakeScale(SkIntToScalar(6), SkIntToScalar(6));
SkShader* s = SkShader::CreateBitmapShader(bm,
SkShader::kRepeat_TileMode,
SkShader::kRepeat_TileMode,
diff --git a/gm/convexpolyeffect.cpp b/gm/convexpolyeffect.cpp
index 03f4634..294de55 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -191,9 +191,8 @@
SkDEBUGFAIL("Couldn't get Gr test target.");
return;
}
- SkMatrix m;
+ const SkMatrix m = SkMatrix::MakeTrans(x, y);
SkPath p;
- m.setTranslate(x, y);
path->transform(m, &p);
GrPrimitiveEdgeType edgeType = (GrPrimitiveEdgeType) et;
diff --git a/gm/multipicturedraw.cpp b/gm/multipicturedraw.cpp
index 0625b5a..f31b698 100644
--- a/gm/multipicturedraw.cpp
+++ b/gm/multipicturedraw.cpp
@@ -423,8 +423,8 @@
SkCanvas* subCanvas = step.fSurf->getCanvas();
- SkMatrix trans;
- trans.setTranslate(-SkIntToScalar(x*kTileWidth), -SkIntToScalar(y*kTileHeight));
+ const SkMatrix trans = SkMatrix::MakeTrans(-SkIntToScalar(x*kTileWidth),
+ -SkIntToScalar(y*kTileHeight));
create_content(mpd, pfGen, pictures, subCanvas, trans);
}
diff --git a/gm/texturedomaineffect.cpp b/gm/texturedomaineffect.cpp
index b85d208..6104d46 100644
--- a/gm/texturedomaineffect.cpp
+++ b/gm/texturedomaineffect.cpp
@@ -124,8 +124,7 @@
if (!fp) {
continue;
}
- SkMatrix viewMatrix;
- viewMatrix.setTranslate(x, y);
+ const SkMatrix viewMatrix = SkMatrix::MakeTrans(x, y);
GrPipelineBuilder pipelineBuilder;
pipelineBuilder.setRenderTarget(rt);
pipelineBuilder.addColorProcessor(fp);
diff --git a/include/core/SkMatrix.h b/include/core/SkMatrix.h
index d00beda..89bd793 100644
--- a/include/core/SkMatrix.h
+++ b/include/core/SkMatrix.h
@@ -23,6 +23,18 @@
*/
class SK_API SkMatrix {
public:
+ static SkMatrix SK_WARN_UNUSED_RESULT MakeScale(SkScalar sx, SkScalar sy) {
+ SkMatrix m;
+ m.setScale(sx, sy);
+ return m;
+ }
+
+ static SkMatrix SK_WARN_UNUSED_RESULT MakeTrans(SkScalar dx, SkScalar dy) {
+ SkMatrix m;
+ m.setTranslate(dx, dy);
+ return m;
+ }
+
/** Enum of bit fields for the mask return by getType().
Use this to identify the complexity of the matrix.
*/