Index: src/core/SkBitmapProcState_matrix_template.h |
diff --git a/src/core/SkBitmapProcState_matrix_template.h b/src/core/SkBitmapProcState_matrix_template.h |
index 468013c30da958fda88e9cb60e53e04ad18263e2..9d639b8a04fafc9cb4104e0738ab26edbc755e5c 100644 |
--- a/src/core/SkBitmapProcState_matrix_template.h |
+++ b/src/core/SkBitmapProcState_matrix_template.h |
@@ -22,13 +22,10 @@ void NoFilterProc_Scale(const SkBitmapProcState& s, uint32_t xy[], |
const unsigned maxX = s.fPixmap.width() - 1; |
SkFractionalInt fx; |
{ |
- SkPoint pt; |
- s.fInvProc(s.fInvMatrix, SkIntToScalar(x) + SK_ScalarHalf, |
- SkIntToScalar(y) + SK_ScalarHalf, &pt); |
- fx = SkScalarToFractionalInt(pt.fY); |
+ const SkBitmapProcStateAutoMapper mapper(s, x ,y); |
const unsigned maxY = s.fPixmap.height() - 1; |
- *xy++ = TileProc::Y(s, SkFractionalIntToFixed(fx), maxY); |
- fx = SkScalarToFractionalInt(pt.fX); |
+ *xy++ = TileProc::Y(s, mapper.y(), maxY); |
+ fx = SkFixedToFractionalInt(mapper.x()); |
} |
if (0 == maxX) { |
@@ -80,13 +77,9 @@ void NoFilterProc_Affine(const SkBitmapProcState& s, uint32_t xy[], |
SkMatrix::kScale_Mask | |
SkMatrix::kAffine_Mask)) == 0); |
- SkPoint srcPt; |
- s.fInvProc(s.fInvMatrix, |
- SkIntToScalar(x) + SK_ScalarHalf, |
- SkIntToScalar(y) + SK_ScalarHalf, &srcPt); |
- |
- SkFractionalInt fx = SkScalarToFractionalInt(srcPt.fX); |
- SkFractionalInt fy = SkScalarToFractionalInt(srcPt.fY); |
+ const SkBitmapProcStateAutoMapper mapper(s, x ,y); |
+ SkFractionalInt fx = SkFixedToFractionalInt(mapper.x()); |
+ SkFractionalInt fy = SkFixedToFractionalInt(mapper.y()); |
SkFractionalInt dx = s.fInvSxFractionalInt; |
SkFractionalInt dy = s.fInvKyFractionalInt; |
int maxX = s.fPixmap.width() - 1; |
@@ -107,6 +100,7 @@ void NoFilterProc_Persp(const SkBitmapProcState& s, uint32_t* SK_RESTRICT xy, |
int maxX = s.fPixmap.width() - 1; |
int maxY = s.fPixmap.height() - 1; |
+ // TODO: inv bias support |
SkPerspIter iter(s.fInvMatrix, |
SkIntToScalar(x) + SK_ScalarHalf, |
SkIntToScalar(y) + SK_ScalarHalf, count); |