Index: src/core/SkBitmapProcState.cpp |
diff --git a/src/core/SkBitmapProcState.cpp b/src/core/SkBitmapProcState.cpp |
index bc9a8fb1d6a47ee0055ba4a3094442bc4ea85e3b..c1874a9f255623df96769277cff56e8ae10511f3 100644 |
--- a/src/core/SkBitmapProcState.cpp |
+++ b/src/core/SkBitmapProcState.cpp |
@@ -281,16 +281,8 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) { |
return false; |
} |
- bool trivialMatrix = (inv.getType() & ~SkMatrix::kTranslate_Mask) == 0; |
- bool clampClamp = SkShader::kClamp_TileMode == fTileModeX && |
- SkShader::kClamp_TileMode == fTileModeY; |
- |
- fInvMatrix = inv; |
- if (!(clampClamp || trivialMatrix)) { |
- fInvMatrix.postIDiv(fOrigBitmap.width(), fOrigBitmap.height()); |
- } |
- |
fBitmap = &fOrigBitmap; |
+ fInvMatrix = inv; |
// initialize our filter quality to the one requested by the caller. |
// We may downgrade it later if we determine that we either don't need |
@@ -308,6 +300,14 @@ bool SkBitmapProcState::chooseProcs(const SkMatrix& inv, const SkPaint& paint) { |
this->possiblyScaleImage(); |
#endif |
+ bool trivialMatrix = (fInvMatrix.getType() & ~SkMatrix::kTranslate_Mask) == 0; |
+ bool clampClamp = SkShader::kClamp_TileMode == fTileModeX && |
+ SkShader::kClamp_TileMode == fTileModeY; |
+ |
+ if (!(clampClamp || trivialMatrix)) { |
+ fInvMatrix.postIDiv(fOrigBitmap.width(), fOrigBitmap.height()); |
+ } |
+ |
// Now that all possible changes to the matrix have taken place, check |
// to see if we're really close to a no-scale matrix. If so, explicitly |
// set it to be so. Subsequent code may inspect this matrix to choose |