| Index: src/core/SkCanvas.cpp
|
| diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
|
| index 09c50c69b0248cf2dc83e95c87f07d662c80252c..5abfb3e1ad000fcdbc3af9eaf8bb8fd0b6e35f3e 100644
|
| --- a/src/core/SkCanvas.cpp
|
| +++ b/src/core/SkCanvas.cpp
|
| @@ -1449,9 +1449,15 @@ void SkCanvas::internalDrawDevice(SkBaseDevice* srcDev, int x, int y, const SkPa
|
| /////////////////////////////////////////////////////////////////////////////
|
|
|
| void SkCanvas::translate(SkScalar dx, SkScalar dy) {
|
| - SkMatrix m;
|
| - m.setTranslate(dx, dy);
|
| - this->concat(m);
|
| + this->checkForDeferredSave();
|
| + fDeviceCMDirty = true;
|
| + fMCRec->fMatrix.preTranslate(dx,dy);
|
| +
|
| + // Translate shouldn't affect the is-scale-translateness of the matrix.
|
| + // (Remember, fConservativeIsScaleTranslate is conservative, so false is always fine.)
|
| + SkASSERT(!fConservativeIsScaleTranslate || fMCRec->fMatrix.isScaleTranslate());
|
| +
|
| + this->didTranslate(dx,dy);
|
| }
|
|
|
| void SkCanvas::scale(SkScalar sx, SkScalar sy) {
|
|
|