Index: src/gpu/GrAALinearizingConvexPathRenderer.cpp |
diff --git a/src/gpu/GrAALinearizingConvexPathRenderer.cpp b/src/gpu/GrAALinearizingConvexPathRenderer.cpp |
index d899e7d0841425dd598ebe0f4c48b0aa47551bf7..23c4e4f7f94ddcc679d7084c1e298a185e1833ef 100644 |
--- a/src/gpu/GrAALinearizingConvexPathRenderer.cpp |
+++ b/src/gpu/GrAALinearizingConvexPathRenderer.cpp |
@@ -96,19 +96,6 @@ static void extract_verts(const GrAAConvexTessellator& tess, |
} |
} |
-static const GrGeometryProcessor* create_fill_gp(bool tweakAlphaForCoverage, |
- const SkMatrix& localMatrix, |
- bool usesLocalCoords, |
- bool coverageIgnored) { |
- uint32_t flags = GrDefaultGeoProcFactory::kColor_GPType; |
- if (!tweakAlphaForCoverage) { |
- flags |= GrDefaultGeoProcFactory::kCoverage_GPType; |
- } |
- |
- return GrDefaultGeoProcFactory::Create(flags, GrColor_WHITE, usesLocalCoords, coverageIgnored, |
- SkMatrix::I(), localMatrix); |
-} |
- |
class AAFlatteningConvexPathBatch : public GrBatch { |
public: |
struct Geometry { |
@@ -181,19 +168,15 @@ public: |
void generateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline) override { |
bool canTweakAlphaForCoverage = this->canTweakAlphaForCoverage(); |
- |
- SkMatrix invert; |
- if (this->usesLocalCoords() && !this->viewMatrix().invert(&invert)) { |
- SkDebugf("Could not invert viewmatrix\n"); |
+ SkAutoTUnref<const GrGeometryProcessor> gp( |
+ GrDefaultGeoProcFactory::CreateForDeviceSpaceAlphaTweakIfPossible( |
+ this->viewMatrix(), this->usesLocalCoords(), this->coverageIgnored(), |
+ canTweakAlphaForCoverage)); |
+ if (!gp) { |
+ SkDebugf("Couldn't create a GrGeometryProcessor\n"); |
return; |
} |
- // Setup GrGeometryProcessor |
- SkAutoTUnref<const GrGeometryProcessor> gp( |
- create_fill_gp(canTweakAlphaForCoverage, invert, |
- this->usesLocalCoords(), |
- this->coverageIgnored())); |
- |
batchTarget->initDraw(gp, pipeline); |
size_t vertexStride = gp->getVertexStride(); |