aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/GrRenderTargetContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gpu/GrRenderTargetContext.cpp')
-rw-r--r--src/gpu/GrRenderTargetContext.cpp75
1 files changed, 20 insertions, 55 deletions
diff --git a/src/gpu/GrRenderTargetContext.cpp b/src/gpu/GrRenderTargetContext.cpp
index 16d8e1bbbd..b0b117f914 100644
--- a/src/gpu/GrRenderTargetContext.cpp
+++ b/src/gpu/GrRenderTargetContext.cpp
@@ -99,7 +99,6 @@ private:
//////////////////////////////////////////////////////////////////////////////
GrAAType GrChooseAAType(GrAA aa, GrFSAAType fsaaType, GrAllowMixedSamples allowMixedSamples,
- GrAllowNonAABinaryCoverage allowNonAABinaryCoverage, const GrPaint* paint,
const GrCaps& caps) {
if (GrAA::kNo == aa) {
// On some devices we cannot disable MSAA if it is enabled so we make the AA type reflect
@@ -107,34 +106,6 @@ GrAAType GrChooseAAType(GrAA aa, GrFSAAType fsaaType, GrAllowMixedSamples allowM
if (fsaaType == GrFSAAType::kUnifiedMSAA && !caps.multisampleDisableSupport()) {
return GrAAType::kMSAA;
}
- if (GrAllowNonAABinaryCoverage::kYes == allowNonAABinaryCoverage) {
- SkASSERT(paint);
- // If we already have a coverage FP then we won't make anything worse.
- if (paint->numCoverageFragmentProcessors()) {
- return GrAAType::kCoverage;
- }
- // Shader based blending isn't so expensive with these extensions.
- if (caps.shaderCaps()->fbFetchSupport() || caps.textureBarrierSupport()) {
- return GrAAType::kCoverage;
- }
- SkBlendMode mode;
- if (GrXPFactory::AsBlendMode(paint->getXPFactory(), &mode)) {
- // If we have dual source blending then all Porter-Duff modes can use HW blending
- // with coverage.
- if (mode <= SkBlendMode::kLastCoeffMode &&
- caps.shaderCaps()->dualSourceBlendingSupport()) {
- return GrAAType::kCoverage;
- }
- if (SkBlendMode_SupportsCoverageAsAlpha(mode)) {
- return GrAAType::kCoverage;
- }
- // If the mode is "advanced" then either we will already be doing dst copies or we
- // have advanced blending support and it is ok to conflate coverage with alpha.
- if (mode > SkBlendMode::kLastCoeffMode) {
- return GrAAType::kCoverage;
- }
- }
- }
return GrAAType::kNone;
}
switch (fsaaType) {
@@ -944,16 +915,14 @@ void GrRenderTargetContext::drawRRect(const GrClip& origClip,
AutoCheckFlush acf(this->drawingManager());
const SkStrokeRec stroke = style.strokeRec();
- GrAAType aaType = this->chooseAAType(aa, GrAllowMixedSamples::kNo,
- GrAllowNonAABinaryCoverage::kYes, &paint);
+ GrAAType aaType = this->chooseAAType(aa, GrAllowMixedSamples::kNo);
if (GrAAType::kCoverage == aaType) {
const GrShaderCaps* shaderCaps = fContext->caps()->shaderCaps();
- std::unique_ptr<GrDrawOp> op = GrOvalOpFactory::MakeCoverageRRectOp(std::move(paint),
- aa,
- viewMatrix,
- rrect,
- stroke,
- shaderCaps);
+ std::unique_ptr<GrDrawOp> op = GrOvalOpFactory::MakeRRectOp(std::move(paint),
+ viewMatrix,
+ rrect,
+ stroke,
+ shaderCaps);
if (op) {
this->addDrawOp(*clip, std::move(op));
return;
@@ -1217,9 +1186,8 @@ bool GrRenderTargetContext::drawFilledDRRect(const GrClip& clip,
auto circleBounds = SkRect::MakeLTRB(cx - avgR, cy - avgR, cx + avgR, cy + avgR);
SkStrokeRec stroke(SkStrokeRec::kFill_InitStyle);
stroke.setStrokeStyle(outerR - innerR);
- auto op = GrOvalOpFactory::MakeCoverageOvalOp(std::move(paint), aa, viewMatrix,
- circleBounds, stroke,
- this->caps()->shaderCaps());
+ auto op = GrOvalOpFactory::MakeOvalOp(std::move(paint), viewMatrix, circleBounds,
+ stroke, this->caps()->shaderCaps());
if (op) {
this->addDrawOp(clip, std::move(op));
return true;
@@ -1360,12 +1328,11 @@ void GrRenderTargetContext::drawOval(const GrClip& clip,
AutoCheckFlush acf(this->drawingManager());
const SkStrokeRec& stroke = style.strokeRec();
- GrAAType aaType = this->chooseAAType(aa, GrAllowMixedSamples::kNo,
- GrAllowNonAABinaryCoverage::kYes, &paint);
+ GrAAType aaType = this->chooseAAType(aa, GrAllowMixedSamples::kNo);
if (GrAAType::kCoverage == aaType) {
const GrShaderCaps* shaderCaps = fContext->caps()->shaderCaps();
- std::unique_ptr<GrDrawOp> op = GrOvalOpFactory::MakeCoverageOvalOp(
- std::move(paint), aa, viewMatrix, oval, stroke, shaderCaps);
+ std::unique_ptr<GrDrawOp> op =
+ GrOvalOpFactory::MakeOvalOp(std::move(paint), viewMatrix, oval, stroke, shaderCaps);
if (op) {
this->addDrawOp(clip, std::move(op));
return;
@@ -1392,19 +1359,17 @@ void GrRenderTargetContext::drawArc(const GrClip& clip,
AutoCheckFlush acf(this->drawingManager());
- GrAAType aaType = this->chooseAAType(aa, GrAllowMixedSamples::kNo,
- GrAllowNonAABinaryCoverage::kYes, &paint);
+ GrAAType aaType = this->chooseAAType(aa, GrAllowMixedSamples::kNo);
if (GrAAType::kCoverage == aaType) {
const GrShaderCaps* shaderCaps = fContext->caps()->shaderCaps();
- std::unique_ptr<GrDrawOp> op = GrOvalOpFactory::MakeCoverageArcOp(std::move(paint),
- aa,
- viewMatrix,
- oval,
- startAngle,
- sweepAngle,
- useCenter,
- style,
- shaderCaps);
+ std::unique_ptr<GrDrawOp> op = GrOvalOpFactory::MakeArcOp(std::move(paint),
+ viewMatrix,
+ oval,
+ startAngle,
+ sweepAngle,
+ useCenter,
+ style,
+ shaderCaps);
if (op) {
this->addDrawOp(clip, std::move(op));
return;