| Index: src/core/SkBitmapProcState_matrix_template.h
 | 
| diff --git a/src/core/SkBitmapProcState_matrix_template.h b/src/core/SkBitmapProcState_matrix_template.h
 | 
| index 9d639b8a04fafc9cb4104e0738ab26edbc755e5c..468013c30da958fda88e9cb60e53e04ad18263e2 100644
 | 
| --- a/src/core/SkBitmapProcState_matrix_template.h
 | 
| +++ b/src/core/SkBitmapProcState_matrix_template.h
 | 
| @@ -22,10 +22,13 @@
 | 
|      const unsigned maxX = s.fPixmap.width() - 1;
 | 
|      SkFractionalInt fx;
 | 
|      {
 | 
| -        const SkBitmapProcStateAutoMapper mapper(s, x ,y);
 | 
| +        SkPoint pt;
 | 
| +        s.fInvProc(s.fInvMatrix, SkIntToScalar(x) + SK_ScalarHalf,
 | 
| +                                  SkIntToScalar(y) + SK_ScalarHalf, &pt);
 | 
| +        fx = SkScalarToFractionalInt(pt.fY);
 | 
|          const unsigned maxY = s.fPixmap.height() - 1;
 | 
| -        *xy++ = TileProc::Y(s, mapper.y(), maxY);
 | 
| -        fx = SkFixedToFractionalInt(mapper.x());
 | 
| +        *xy++ = TileProc::Y(s, SkFractionalIntToFixed(fx), maxY);
 | 
| +        fx = SkScalarToFractionalInt(pt.fX);
 | 
|      }
 | 
|  
 | 
|      if (0 == maxX) {
 | 
| @@ -77,9 +80,13 @@
 | 
|                               SkMatrix::kScale_Mask |
 | 
|                               SkMatrix::kAffine_Mask)) == 0);
 | 
|  
 | 
| -    const SkBitmapProcStateAutoMapper mapper(s, x ,y);
 | 
| -    SkFractionalInt fx = SkFixedToFractionalInt(mapper.x());
 | 
| -    SkFractionalInt fy = SkFixedToFractionalInt(mapper.y());
 | 
| +    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);
 | 
|      SkFractionalInt dx = s.fInvSxFractionalInt;
 | 
|      SkFractionalInt dy = s.fInvKyFractionalInt;
 | 
|      int maxX = s.fPixmap.width() - 1;
 | 
| @@ -100,7 +107,6 @@
 | 
|      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);
 | 
| 
 |