aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/gpu/effects
diff options
context:
space:
mode:
authorGravatar joshualitt <joshualitt@google.com>2015-08-03 09:32:36 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-08-03 09:32:36 -0700
commite494a58de341daf08ae23007694a4f6ed4d9cd06 (patch)
treef985df9f8a848f82cb8b9faf0c39d95be36791de /src/gpu/effects
parent801823b3d825d96baadeb9077c5ed1a8ada05cf2 (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.cpp46
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;
}