| Index: skia/ext/skia_utils_mac.mm
|
| diff --git a/skia/ext/skia_utils_mac.mm b/skia/ext/skia_utils_mac.mm
|
| index dd8f560e1d9cd7632265eea9980794bb4bbcd692..9e552eb77b0da67f5a6a5f99a11fd056c9d1ba65 100644
|
| --- a/skia/ext/skia_utils_mac.mm
|
| +++ b/skia/ext/skia_utils_mac.mm
|
| @@ -376,16 +376,9 @@ void SkiaBitLocker::releaseIfNeeded() {
|
| if (!bitmap_.extractSubset(&subset, bounds)) {
|
| return;
|
| }
|
| - // Neutralize the global matrix by concatenating the inverse. In the
|
| - // future, Skia may provide some mechanism to set the device portion of
|
| - // the matrix to identity without clobbering any hosting matrix (e.g., the
|
| - // picture's matrix).
|
| - const SkMatrix& skMatrix = canvas_->getTotalMatrix();
|
| - SkMatrix inverse;
|
| - if (!skMatrix.invert(&inverse))
|
| - return;
|
| + subset.setImmutable(); // Prevents a defensive copy inside Skia.
|
| canvas_->save();
|
| - canvas_->concat(inverse);
|
| + canvas_->setMatrix(SkMatrix::I()); // Reset back to device space.
|
| canvas_->translate(bounds.x() + bitmapOffset_.x(),
|
| bounds.y() + bitmapOffset_.y());
|
| canvas_->scale(1.f / bitmapScaleFactor_, 1.f / bitmapScaleFactor_);
|
|
|