| Index: src/core/SkBitmapProcState_matrix.h
|
| diff --git a/src/core/SkBitmapProcState_matrix.h b/src/core/SkBitmapProcState_matrix.h
|
| index e4212b60fe81da277efbd46bf8fe8677758143ac..42a5ab6e2242cc5ab6a1cad60de664492281c5ee 100644
|
| --- a/src/core/SkBitmapProcState_matrix.h
|
| +++ b/src/core/SkBitmapProcState_matrix.h
|
| @@ -61,13 +61,17 @@
|
| SkFractionalInt fx;
|
|
|
| {
|
| - const SkBitmapProcStateAutoMapper mapper(s, x ,y);
|
| - const SkFixed fy = mapper.y() - (s.fFilterOneY >> 1);
|
| + SkPoint pt;
|
| + s.fInvProc(s.fInvMatrix, SkIntToScalar(x) + SK_ScalarHalf,
|
| + SkIntToScalar(y) + SK_ScalarHalf, &pt);
|
| + const SkFixed fy = SkScalarToFixed(pt.fY) - (s.fFilterOneY >> 1)
|
| + + bitmap_sampler_inv_bias(s.fInvMatrix.getScaleY());
|
| const unsigned maxY = s.fPixmap.height() - 1;
|
| // compute our two Y values up front
|
| *xy++ = PACK_FILTER_Y_NAME(fy, maxY, s.fFilterOneY PREAMBLE_ARG_Y);
|
| // now initialize fx
|
| - fx = SkFixedToFractionalInt(mapper.x() - (one >> 1));
|
| + fx = SkScalarToFractionalInt(pt.fX) - (SkFixedToFractionalInt(one) >> 1)
|
| + + bitmap_sampler_inv_bias(s.fInvMatrix.getScaleX());
|
| }
|
|
|
| #ifdef CHECK_FOR_DECAL
|
| @@ -93,12 +97,17 @@
|
| SkMatrix::kAffine_Mask)) == 0);
|
|
|
| PREAMBLE(s);
|
| - const SkBitmapProcStateAutoMapper mapper(s, x ,y);
|
| + SkPoint srcPt;
|
| + s.fInvProc(s.fInvMatrix,
|
| + SkIntToScalar(x) + SK_ScalarHalf,
|
| + SkIntToScalar(y) + SK_ScalarHalf, &srcPt);
|
|
|
| SkFixed oneX = s.fFilterOneX;
|
| SkFixed oneY = s.fFilterOneY;
|
| - SkFixed fx = mapper.x() - (oneX >> 1);
|
| - SkFixed fy = mapper.y() - (oneY >> 1);
|
| + SkFixed fx = SkScalarToFixed(srcPt.fX) - (oneX >> 1)
|
| + + bitmap_sampler_inv_bias(s.fInvMatrix.getScaleX());
|
| + SkFixed fy = SkScalarToFixed(srcPt.fY) - (oneY >> 1)
|
| + + bitmap_sampler_inv_bias(s.fInvMatrix.getScaleY());
|
| SkFixed dx = s.fInvSx;
|
| SkFixed dy = s.fInvKy;
|
| unsigned maxX = s.fPixmap.width() - 1;
|
|
|