Index: src/core/SkBitmapDevice.cpp |
diff --git a/src/core/SkBitmapDevice.cpp b/src/core/SkBitmapDevice.cpp |
index ac3b9df0827ed51aedfb5f5520c7457ced5e7a8a..9cda205776e85f90199a2fe2a39bfb5c360c3d82 100644 |
--- a/src/core/SkBitmapDevice.cpp |
+++ b/src/core/SkBitmapDevice.cpp |
@@ -270,7 +270,8 @@ void SkBitmapDevice::drawBitmapRect(const SkDraw& draw, const SkBitmap& bitmap, |
// clip the tmpSrc to the bounds of the bitmap, and recompute dstRect if |
// needed (if the src was clipped). No check needed if src==null. |
- if (src) { |
+ // If bitmapBounds are the same as src, go faster path bellow. |
+ if (src && !(bitmapBounds == *src)) { |
if (!bitmapBounds.contains(*src)) { |
if (!tmpSrc.intersect(bitmapBounds)) { |
return; // nothing to draw |