Index: src/utils/SkMatrix44.cpp |
diff --git a/src/utils/SkMatrix44.cpp b/src/utils/SkMatrix44.cpp |
index 37ab8db27f08ee89a71a9376e0b5acb6caf5cb7a..440bf36b62e8cefec9fed415673b48a1be03ae71 100644 |
--- a/src/utils/SkMatrix44.cpp |
+++ b/src/utils/SkMatrix44.cpp |
@@ -229,14 +229,8 @@ void SkMatrix44::preTranslate(SkMScalar dx, SkMScalar dy, SkMScalar dz) { |
return; |
} |
- const double X = SkMScalarToDouble(dx); |
- const double Y = SkMScalarToDouble(dy); |
- const double Z = SkMScalarToDouble(dz); |
- |
- double tmp; |
for (int i = 0; i < 4; ++i) { |
- tmp = fMat[0][i] * X + fMat[1][i] * Y + fMat[2][i] * Z + fMat[3][i]; |
- fMat[3][i] = SkDoubleToMScalar(tmp); |
+ fMat[3][i] = fMat[0][i] * dx + fMat[1][i] * dy + fMat[2][i] * dz + fMat[3][i]; |
} |
this->dirtyTypeMask(); |
} |
@@ -783,10 +777,10 @@ static void map2_sd(const SkMScalar mat[][4], const double* SK_RESTRICT src2, |
static void map2_af(const SkMScalar mat[][4], const float* SK_RESTRICT src2, |
int count, float* SK_RESTRICT dst4) { |
- double r; |
+ SkMScalar r; |
for (int n = 0; n < count; ++n) { |
- double sx = src2[0]; |
- double sy = src2[1]; |
+ SkMScalar sx = SkFloatToMScalar(src2[0]); |
+ SkMScalar sy = SkFloatToMScalar(src2[1]); |
r = mat[0][0] * sx + mat[1][0] * sy + mat[3][0]; |
dst4[0] = SkMScalarToFloat(r); |
r = mat[0][1] * sx + mat[1][1] * sy + mat[3][1]; |
@@ -815,14 +809,13 @@ static void map2_ad(const SkMScalar mat[][4], const double* SK_RESTRICT src2, |
static void map2_pf(const SkMScalar mat[][4], const float* SK_RESTRICT src2, |
int count, float* SK_RESTRICT dst4) { |
+ SkMScalar r; |
for (int n = 0; n < count; ++n) { |
- float sx = src2[0]; |
- float sy = src2[1]; |
+ SkMScalar sx = SkFloatToMScalar(src2[0]); |
+ SkMScalar sy = SkFloatToMScalar(src2[1]); |
for (int i = 0; i < 4; i++) { |
- dst4[i] = |
- SkMScalarToFloat(mat[0][i]) * sx + |
- SkMScalarToFloat(mat[1][i]) * sy + |
- SkMScalarToFloat(mat[3][i]); |
+ r = mat[0][i] * sx + mat[1][i] * sy + mat[3][i]; |
+ dst4[i] = SkMScalarToFloat(r); |
} |
src2 += 2; |
dst4 += 4; |