Don't make dst copies when color stage requires dst but color writes are disabled.
R=robertphillips@google.com
Review URL: https://codereview.chromium.org/15001035
git-svn-id: http://skia.googlecode.com/svn/trunk@9146 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp
index 068f321..64893b4 100644
--- a/src/gpu/GrContext.cpp
+++ b/src/gpu/GrContext.cpp
@@ -973,12 +973,14 @@
GrDrawTarget* target = this->prepareToDraw(&paint, BUFFERED_DRAW);
GrDrawState::AutoStageDisable atr(fDrawState);
- bool prAA = paint.isAntiAlias() && !this->getRenderTarget()->isMultisampled();
+ bool useAA = paint.isAntiAlias() &&
+ !this->getRenderTarget()->isMultisampled() &&
+ !disable_coverage_aa_for_blend(target);
- if (!fOvalRenderer->drawSimpleRRect(target, this, prAA, rect, stroke)) {
+ if (!fOvalRenderer->drawSimpleRRect(target, this, useAA, rect, stroke)) {
SkPath path;
path.addRRect(rect);
- this->internalDrawPath(target, prAA, path, stroke);
+ this->internalDrawPath(target, useAA, path, stroke);
}
}
@@ -991,7 +993,9 @@
GrDrawTarget* target = this->prepareToDraw(&paint, BUFFERED_DRAW);
GrDrawState::AutoStageDisable atr(fDrawState);
- bool useAA = paint.isAntiAlias() && !this->getRenderTarget()->isMultisampled();
+ bool useAA = paint.isAntiAlias() &&
+ !this->getRenderTarget()->isMultisampled() &&
+ !disable_coverage_aa_for_blend(target);
if (!fOvalRenderer->drawOval(target, this, useAA, oval, stroke)) {
SkPath path;