Index: include/utils/SkNoSaveLayerCanvas.h |
diff --git a/include/utils/SkNoSaveLayerCanvas.h b/include/utils/SkNoSaveLayerCanvas.h |
index 56a09622a059b0d371e6e5b7274a6f69c7aca2de..686f179901d6181c9fb5a47ece5cd4243d1f8311 100644 |
--- a/include/utils/SkNoSaveLayerCanvas.h |
+++ b/include/utils/SkNoSaveLayerCanvas.h |
@@ -16,8 +16,7 @@ |
// It also simplifies the clipping calls to only use rectangles. |
class SK_API SkNoSaveLayerCanvas : public SkCanvas { |
public: |
- SkNoSaveLayerCanvas(SkBaseDevice* device) : INHERITED(device, kConservativeRasterClip_InitFlag) |
- {} |
+ SkNoSaveLayerCanvas(SkBaseDevice* device) : INHERITED(device) {} |
protected: |
virtual SaveLayerStrategy willSaveLayer(const SkRect* bounds, const SkPaint* paint, |
@@ -26,6 +25,21 @@ |
return kNoLayer_SaveLayerStrategy; |
} |
+ // disable aa for speed |
+ virtual void onClipRect(const SkRect& rect, SkRegion::Op op, ClipEdgeStyle) SK_OVERRIDE { |
+ this->INHERITED::onClipRect(rect, op, kHard_ClipEdgeStyle); |
+ } |
+ |
+ // for speed, just respect the bounds, and disable AA. May give us a few |
+ // false positives and negatives. |
+ virtual void onClipPath(const SkPath& path, SkRegion::Op op, ClipEdgeStyle) SK_OVERRIDE { |
+ this->updateClipConservativelyUsingBounds(path.getBounds(), op, |
+ path.isInverseFillType()); |
+ } |
+ virtual void onClipRRect(const SkRRect& rrect, SkRegion::Op op, ClipEdgeStyle) SK_OVERRIDE { |
+ this->updateClipConservativelyUsingBounds(rrect.getBounds(), op, false); |
+ } |
+ |
private: |
typedef SkCanvas INHERITED; |
}; |