Index: skia/ext/analysis_canvas.cc |
diff --git a/skia/ext/analysis_canvas.cc b/skia/ext/analysis_canvas.cc |
index 8be5f5b1f33d558c207f6ccf5ab77ea54d0cdb7f..5f9f48c0ca0bd835df98b1a32979b87373333f8d 100644 |
--- a/skia/ext/analysis_canvas.cc |
+++ b/skia/ext/analysis_canvas.cc |
@@ -110,8 +110,14 @@ void AnalysisCanvas::drawPoints(SkCanvas::PointMode mode, |
} |
void AnalysisCanvas::drawRect(const SkRect& rect, const SkPaint& paint) { |
- // This recreates the early-exit logic in SkCanvas.cpp, which aborts early |
- // if the paint will "draw nothing". |
+ // This recreates the early-exit logic in SkCanvas.cpp. |
+ SkRect scratch; |
+ if (paint.canComputeFastBounds() && |
+ quickReject(paint.computeFastBounds(rect, &scratch))) { |
+ return; |
+ } |
+ |
+ // An extra no-op check SkCanvas.cpp doesn't do. |
if (paint.nothingToDraw()) |
return; |