Index: src/gpu/GrDrawContext.cpp |
diff --git a/src/gpu/GrDrawContext.cpp b/src/gpu/GrDrawContext.cpp |
index c4716196b9c266c8a91c99d3fef08639e34814f7..4b0e952823c4366dbe4f5b4b3aa98baec5027698 100644 |
--- a/src/gpu/GrDrawContext.cpp |
+++ b/src/gpu/GrDrawContext.cpp |
@@ -204,35 +204,6 @@ void GrDrawContext::drawPaint(GrRenderTarget* rt, |
} |
} |
-static inline bool is_irect(const SkRect& r) { |
- return SkScalarIsInt(r.fLeft) && SkScalarIsInt(r.fTop) && |
- SkScalarIsInt(r.fRight) && SkScalarIsInt(r.fBottom); |
-} |
- |
-static bool apply_aa_to_rect(GrDrawTarget* target, |
- GrPipelineBuilder* pipelineBuilder, |
- SkRect* devBoundRect, |
- const SkRect& rect, |
- SkScalar strokeWidth, |
- const SkMatrix& combinedMatrix, |
- GrColor color) { |
- if (pipelineBuilder->getRenderTarget()->isUnifiedMultisampled() || |
- !combinedMatrix.preservesAxisAlignment()) { |
- return false; |
- } |
- |
- combinedMatrix.mapRect(devBoundRect, rect); |
- if (!combinedMatrix.rectStaysRect()) { |
- return true; |
- } |
- |
- if (strokeWidth < 0) { |
- return !is_irect(*devBoundRect); |
- } |
- |
- return true; |
-} |
- |
static inline bool rect_contains_inclusive(const SkRect& rect, const SkPoint& point) { |
return point.fX >= rect.fLeft && point.fX <= rect.fRight && |
point.fY >= rect.fTop && point.fY <= rect.fBottom; |
@@ -297,13 +268,17 @@ void GrDrawContext::drawRect(GrRenderTarget* rt, |
} |
GrColor color = paint.getColor(); |
- SkRect devBoundRect; |
bool needAA = paint.isAntiAlias() && |
!pipelineBuilder.getRenderTarget()->isUnifiedMultisampled(); |
- bool doAA = needAA && apply_aa_to_rect(fDrawTarget, &pipelineBuilder, &devBoundRect, rect, |
- width, viewMatrix, color); |
- if (doAA) { |
+ // We can only handle AA in certain cases right now. We also can't handle perspective rects |
+ // at all yet. |
robertphillips
2015/08/14 12:54:56
// The fill path can handle rotation but not skew
|
+ SkASSERT(!viewMatrix.hasPerspective()); |
robertphillips
2015/08/14 12:54:55
Extra space after ':' ?
|
+ bool canApplyAA = width >=0 ? viewMatrix.rectStaysRect() : viewMatrix.preservesRightAngles(); |
+ |
+ if (needAA && canApplyAA) { |
+ SkRect devBoundRect; |
+ viewMatrix.mapRect(&devBoundRect, rect); |
SkAutoTUnref<GrBatch> batch; |
if (width >= 0) { |
batch.reset(GrRectBatchFactory::CreateStrokeAA(color, viewMatrix, rect, devBoundRect, |