Index: src/gpu/GrStencilAndCoverTextContext.cpp |
diff --git a/src/gpu/GrStencilAndCoverTextContext.cpp b/src/gpu/GrStencilAndCoverTextContext.cpp |
index 9702ed706e5679ce9a45ff987f25dc9792f97537..330256ae390b6635b0721127c5c1ff8647204ca6 100644 |
--- a/src/gpu/GrStencilAndCoverTextContext.cpp |
+++ b/src/gpu/GrStencilAndCoverTextContext.cpp |
@@ -62,6 +62,12 @@ bool GrStencilAndCoverTextContext::canDraw(const GrRenderTarget* rt, |
return false; |
} |
+ if (skPaint.isAntiAlias() && |
+ kStencil_GrSampleConfig == rt->sampleConfig() && |
+ !paint.getXPFactory()->canTweakAlphaForCoverage()) { |
Chris Dalton
2015/03/26 05:11:39
We may need to check if it will do in-shader blend
bsalomon
2015/03/31 16:37:33
I think your concern is correct. Adding egdaniel@
|
+ return false; |
+ } |
+ |
// No color bitmap fonts. |
SkScalerContext::Rec rec; |
SkScalerContext::MakeRec(skPaint, &fDeviceProperties, NULL, &rec); |
@@ -362,6 +368,8 @@ void GrStencilAndCoverTextContext::init(GrRenderTarget* rt, |
fStateRestore.set(&fPipelineBuilder); |
fPipelineBuilder.setFromPaint(fPaint, fRenderTarget, fClip); |
+ SkASSERT(fRenderTarget->isMultisampled(GrRenderTarget::kStencilBuffer_PipelineStage)); |
+ fPipelineBuilder.setState(GrPipelineBuilder::kHWAntialias_StateBit, fPaint.isAntiAlias()); |
GR_STATIC_CONST_SAME_STENCIL(kStencilPass, |
kZero_StencilOp, |