aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar robertphillips <robertphillips@google.com>2015-03-26 19:57:08 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-03-26 19:57:08 -0700
commit1d24b8dfe9aac9cadaf3914b8574a4ff6e9bc19d (patch)
tree19239f2bd95cbdac37f3ec58149fdd30ecd11fe6
parent41f88f0251cf48eb06f3f8d143aac8562a230889 (diff)
Add matrix constructing helpers to SkMatrix
-rw-r--r--bench/DashBench.cpp3
-rw-r--r--bench/HairlinePathBench.cpp3
-rw-r--r--bench/PathBench.cpp3
-rw-r--r--bench/SKPBench.cpp5
-rw-r--r--gm/aarectmodes.cpp3
-rw-r--r--gm/convexpolyeffect.cpp3
-rw-r--r--gm/multipicturedraw.cpp4
-rw-r--r--gm/texturedomaineffect.cpp3
-rw-r--r--include/core/SkMatrix.h12
9 files changed, 22 insertions, 17 deletions
diff --git a/bench/DashBench.cpp b/bench/DashBench.cpp
index 17a9234926..bf0d456143 100644
--- a/bench/DashBench.cpp
+++ b/bench/DashBench.cpp
@@ -153,8 +153,7 @@ static void make_unit_star(SkPath* path, int n) {
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 5b77ff8b49..67f5476724 100644
--- a/bench/HairlinePathBench.cpp
+++ b/bench/HairlinePathBench.cpp
@@ -59,8 +59,7 @@ protected:
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 a429e2f972..710179a437 100644
--- a/bench/PathBench.cpp
+++ b/bench/PathBench.cpp
@@ -57,8 +57,7 @@ protected:
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 3f521799fa..6f74ff942d 100644
--- a/bench/SKPBench.cpp
+++ b/bench/SKPBench.cpp
@@ -116,9 +116,8 @@ void SKPBench::onDraw(const int loops, SkCanvas* canvas) {
} 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 f4889a8cab..205876be46 100644
--- a/gm/aarectmodes.cpp
+++ b/gm/aarectmodes.cpp
@@ -113,8 +113,7 @@ static SkShader* make_bg_shader() {
*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 03f4634bf9..294de5537f 100644
--- a/gm/convexpolyeffect.cpp
+++ b/gm/convexpolyeffect.cpp
@@ -191,9 +191,8 @@ protected:
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 0625b5a35b..f31b698566 100644
--- a/gm/multipicturedraw.cpp
+++ b/gm/multipicturedraw.cpp
@@ -423,8 +423,8 @@ static void tiled(SkCanvas* finalCanvas, SkMultiPictureDraw* mpd,
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 b85d2089d6..6104d46f8a 100644
--- a/gm/texturedomaineffect.cpp
+++ b/gm/texturedomaineffect.cpp
@@ -124,8 +124,7 @@ protected:
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 d00beda373..89bd7935c9 100644
--- a/include/core/SkMatrix.h
+++ b/include/core/SkMatrix.h
@@ -23,6 +23,18 @@ class SkString;
*/
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.
*/