diff options
author | 2013-05-15 17:30:26 +0000 | |
---|---|---|
committer | 2013-05-15 17:30:26 +0000 | |
commit | d09ab846789a33a969f9ea8428555270fe4de23e (patch) | |
tree | 7bbfe109a823d42d8685c7cc030852c096ac21e0 /src/gpu/GrContext.cpp | |
parent | cefd981a4c4e90be33d1433592f11f84a102d2e0 (diff) |
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
Diffstat (limited to 'src/gpu/GrContext.cpp')
-rw-r--r-- | src/gpu/GrContext.cpp | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/gpu/GrContext.cpp b/src/gpu/GrContext.cpp index 068f32110e..64893b461a 100644 --- a/src/gpu/GrContext.cpp +++ b/src/gpu/GrContext.cpp @@ -973,12 +973,14 @@ void GrContext::drawRRect(const GrPaint& paint, 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 @@ void GrContext::drawOval(const GrPaint& paint, 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; |