diff options
author | joshualitt <joshualitt@google.com> | 2015-08-03 09:32:36 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-08-03 09:32:36 -0700 |
commit | e494a58de341daf08ae23007694a4f6ed4d9cd06 (patch) | |
tree | f985df9f8a848f82cb8b9faf0c39d95be36791de /src/gpu/effects | |
parent | 801823b3d825d96baadeb9077c5ed1a8ada05cf2 (diff) |
Revert of Use new API everywhere for GrDefaultGeoProcFactory (patchset #5 id:80001 of https://codereview.chromium.org/1261083003/)
Reason for revert:
breaking things
Original issue's description:
> Use new API everywhere for GrDefaultGeoProcFactory
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/801823b3d825d96baadeb9077c5ed1a8ada05cf2
TBR=robertphillips@google.com,bsalomon@google.com,joshualitt@chromium.org
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:
Review URL: https://codereview.chromium.org/1264283004
Diffstat (limited to 'src/gpu/effects')
-rw-r--r-- | src/gpu/effects/GrDashingEffect.cpp | 46 |
1 files changed, 22 insertions, 24 deletions
diff --git a/src/gpu/effects/GrDashingEffect.cpp b/src/gpu/effects/GrDashingEffect.cpp index afb09b9539..550823aacb 100644 --- a/src/gpu/effects/GrDashingEffect.cpp +++ b/src/gpu/effects/GrDashingEffect.cpp @@ -300,28 +300,30 @@ public: void generateGeometry(GrBatchTarget* batchTarget, const GrPipeline* pipeline) override { int instanceCount = fGeoData.count(); + + SkMatrix invert; + if (this->usesLocalCoords() && !this->viewMatrix().invert(&invert)) { + SkDebugf("Failed to invert\n"); + return; + } + SkPaint::Cap cap = this->cap(); - bool isRoundCap = SkPaint::kRound_Cap == cap; - DashCap capType = isRoundCap ? kRound_DashCap : kNonRound_DashCap; SkAutoTUnref<const GrGeometryProcessor> gp; + + bool isRoundCap = SkPaint::kRound_Cap == cap; + DashCap capType = isRoundCap ? kRound_DashCap : kNonRound_DashCap; if (this->fullDash()) { - gp.reset(create_dash_gp(this->color(), this->aaMode(), capType, this->viewMatrix(), + gp.reset(create_dash_gp(this->color(), this->aaMode(), capType, invert, this->usesLocalCoords())); } else { // Set up the vertex data for the line and start/end dashes - using namespace GrDefaultGeoProcFactory; - Color color(this->color()); - Coverage coverage(this->coverageIgnored() ? Coverage::kNone_Type : - Coverage::kSolid_Type); - LocalCoords localCoords(this->usesLocalCoords() ? LocalCoords::kUsePosition_Type : - LocalCoords::kUnused_Type); - gp.reset(CreateForDeviceSpace(color, coverage, localCoords, this->viewMatrix())); - } - - if (!gp) { - SkDebugf("Could not create GrGeometryProcessor\n"); - return; + gp.reset(GrDefaultGeoProcFactory::Create(GrDefaultGeoProcFactory::kPosition_GPType, + this->color(), + this->usesLocalCoords(), + this->coverageIgnored(), + SkMatrix::I(), + invert)); } batchTarget->initDraw(gp, pipeline); @@ -1207,19 +1209,15 @@ GrGeometryProcessor* DashingLineEffect::TestCreate(GrProcessorTestData* d) { static GrGeometryProcessor* create_dash_gp(GrColor color, DashAAMode dashAAMode, DashCap cap, - const SkMatrix& viewMatrix, + const SkMatrix& localMatrix, bool usesLocalCoords) { - SkMatrix invert; - if (usesLocalCoords && !viewMatrix.invert(&invert)) { - SkDebugf("Failed to invert\n"); - return NULL; - } - switch (cap) { case kRound_DashCap: - return DashingCircleEffect::Create(color, dashAAMode, invert, usesLocalCoords); + return DashingCircleEffect::Create(color, dashAAMode, localMatrix, usesLocalCoords); case kNonRound_DashCap: - return DashingLineEffect::Create(color, dashAAMode, invert, usesLocalCoords); + return DashingLineEffect::Create(color, dashAAMode, localMatrix, usesLocalCoords); + default: + SkFAIL("Unexpected dashed cap."); } return NULL; } |