aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/SkGpuDevice.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/SkGpuDevice.cpp')
-rw-r--r--src/gpu/SkGpuDevice.cpp35
1 files changed, 23 insertions, 12 deletions
diff --git a/src/gpu/SkGpuDevice.cpp b/src/gpu/SkGpuDevice.cpp
index ff66177595..39e2c5b2f1 100644
--- a/src/gpu/SkGpuDevice.cpp
+++ b/src/gpu/SkGpuDevice.cpp
@@ -342,7 +342,8 @@ void SkGpuDevice::drawPoints(const SkDraw& draw, SkCanvas::PointMode mode,
path.setIsVolatile(true);
path.moveTo(pts[0]);
path.lineTo(pts[1]);
- fRenderTargetContext->drawPath(fClip, grPaint, *draw.fMatrix, path, style);
+ fRenderTargetContext->drawPath(fClip, grPaint, GrBoolToAA(paint.isAntiAlias()),
+ *draw.fMatrix, path, style);
return;
}
@@ -418,13 +419,13 @@ void SkGpuDevice::drawRect(const SkDraw& draw, const SkRect& rect, const SkPaint
}
GrStyle style(paint);
- fRenderTargetContext->drawRect(fClip, grPaint, *draw.fMatrix, rect, &style);
+ fRenderTargetContext->drawRect(fClip, grPaint, GrBoolToAA(paint.isAntiAlias()), *draw.fMatrix,
+ rect, &style);
}
///////////////////////////////////////////////////////////////////////////////
-void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rrect,
- const SkPaint& paint) {
+void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rrect, const SkPaint& paint) {
ASSERT_SINGLE_OWNER
GR_CREATE_TRACE_MARKER_CONTEXT("SkGpuDevice", "drawRRect", fContext.get());
CHECK_SHOULD_DRAW(draw);
@@ -483,7 +484,8 @@ void SkGpuDevice::drawRRect(const SkDraw& draw, const SkRRect& rrect,
SkASSERT(!style.pathEffect());
- fRenderTargetContext->drawRRect(fClip, grPaint, *draw.fMatrix, rrect, style);
+ fRenderTargetContext->drawRRect(fClip, grPaint, GrBoolToAA(paint.isAntiAlias()), *draw.fMatrix,
+ rrect, style);
}
@@ -510,7 +512,8 @@ void SkGpuDevice::drawDRRect(const SkDraw& draw, const SkRRect& outer,
return;
}
- fRenderTargetContext->drawDRRect(fClip, grPaint, *draw.fMatrix, outer, inner);
+ fRenderTargetContext->drawDRRect(fClip, grPaint, GrBoolToAA(paint.isAntiAlias()),
+ *draw.fMatrix, outer, inner);
return;
}
@@ -542,7 +545,8 @@ void SkGpuDevice::drawRegion(const SkDraw& draw, const SkRegion& region, const S
return;
}
- fRenderTargetContext->drawRegion(fClip, grPaint, *draw.fMatrix, region, GrStyle(paint));
+ fRenderTargetContext->drawRegion(fClip, grPaint, GrBoolToAA(paint.isAntiAlias()), *draw.fMatrix,
+ region, GrStyle(paint));
}
void SkGpuDevice::drawOval(const SkDraw& draw, const SkRect& oval, const SkPaint& paint) {
@@ -571,7 +575,8 @@ void SkGpuDevice::drawOval(const SkDraw& draw, const SkRect& oval, const SkPaint
return;
}
- fRenderTargetContext->drawOval(fClip, grPaint, *draw.fMatrix, oval, GrStyle(paint));
+ fRenderTargetContext->drawOval(fClip, grPaint, GrBoolToAA(paint.isAntiAlias()), *draw.fMatrix,
+ oval, GrStyle(paint));
}
void SkGpuDevice::drawArc(const SkDraw& draw, const SkRect& oval, SkScalar startAngle,
@@ -590,8 +595,8 @@ void SkGpuDevice::drawArc(const SkDraw& draw, const SkRect& oval, SkScalar start
return;
}
- fRenderTargetContext->drawArc(fClip, grPaint, *draw.fMatrix, oval, startAngle, sweepAngle,
- useCenter, GrStyle(paint));
+ fRenderTargetContext->drawArc(fClip, grPaint, GrBoolToAA(paint.isAntiAlias()), *draw.fMatrix,
+ oval, startAngle, sweepAngle, useCenter, GrStyle(paint));
}
#include "SkMaskFilter.h"
@@ -647,7 +652,9 @@ void SkGpuDevice::drawStrokedLine(const SkPoint points[2],
return;
}
- fRenderTargetContext->fillRectWithLocalMatrix(fClip, grPaint, m, rect, local);
+ fRenderTargetContext->fillRectWithLocalMatrix(fClip, grPaint,
+ GrBoolToAA(newPaint.isAntiAlias()), m, rect,
+ local);
}
void SkGpuDevice::drawPath(const SkDraw& draw, const SkPath& origSrcPath,
@@ -1097,7 +1104,10 @@ void SkGpuDevice::drawBitmapTile(const SkBitmap& bitmap,
return;
}
- fRenderTargetContext->drawRect(fClip, grPaint, viewMatrix, dstRect);
+ // Coverage-based AA would cause seams between tiles.
+ GrAA aa = GrBoolToAA(paint.isAntiAlias() &&
+ fRenderTargetContext->isStencilBufferMultisampled());
+ fRenderTargetContext->drawRect(fClip, grPaint, aa, viewMatrix, dstRect);
}
void SkGpuDevice::drawSprite(const SkDraw& draw, const SkBitmap& bitmap,
@@ -1192,6 +1202,7 @@ void SkGpuDevice::drawSpecial(const SkDraw& draw,
fRenderTargetContext->fillRectToRect(fClip,
grPaint,
+ GrBoolToAA(paint.isAntiAlias()),
SkMatrix::I(),
SkRect::Make(SkIRect::MakeXYWH(left + offset.fX,
top + offset.fY,