aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGravatar Brian Osman <brianosman@google.com>2018-01-03 09:57:29 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-03 15:35:34 +0000
commit09068256d6a12a365f36f14c9fa7e3d6b221abec (patch)
treead2d9859231eed88aed7d38571947a97616af344
parentb9bfb7b275d11eb6ba90dc2dfa9cfa9f73cc613e (diff)
Remove unused color from all distance field GPs and GrAtlasTextOp
Bug: skia: Change-Id: I7f2bd68cc4f6ad65660a4415a08777bc71d34ab6 Reviewed-on: https://skia-review.googlesource.com/90522 Reviewed-by: Brian Salomon <bsalomon@google.com> Commit-Queue: Brian Osman <brianosman@google.com>
-rw-r--r--src/gpu/effects/GrDistanceFieldGeoProc.cpp17
-rw-r--r--src/gpu/effects/GrDistanceFieldGeoProc.h31
-rw-r--r--src/gpu/ops/GrAtlasTextOp.cpp16
-rw-r--r--src/gpu/ops/GrAtlasTextOp.h4
-rw-r--r--src/gpu/ops/GrSmallPathRenderer.cpp3
5 files changed, 23 insertions, 48 deletions
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index c63ce8f3b2..d8944fa9d0 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -206,7 +206,6 @@ private:
///////////////////////////////////////////////////////////////////////////////
GrDistanceFieldA8TextGeoProc::GrDistanceFieldA8TextGeoProc(
- GrColor color,
const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState& params,
#ifdef SK_GAMMA_APPLY_TO_A8
@@ -215,7 +214,6 @@ GrDistanceFieldA8TextGeoProc::GrDistanceFieldA8TextGeoProc(
uint32_t flags,
const SkMatrix& localMatrix)
: INHERITED(kGrDistanceFieldA8TextGeoProc_ClassID)
- , fColor(color)
#ifdef SK_GAMMA_APPLY_TO_A8
, fDistanceAdjust(distanceAdjust)
#endif
@@ -285,12 +283,10 @@ sk_sp<GrGeometryProcessor> GrDistanceFieldA8TextGeoProc::TestCreate(GrProcessorT
flags |= d->fRandom->nextBool() ? kScaleOnly_DistanceFieldEffectFlag : 0;
}
SkMatrix localMatrix = GrTest::TestMatrix(d->fRandom);
- GrColor color = GrRandomColor(d->fRandom);
#ifdef SK_GAMMA_APPLY_TO_A8
float lum = d->fRandom->nextF();
#endif
- return GrDistanceFieldA8TextGeoProc::Make(color,
- proxies,
+ return GrDistanceFieldA8TextGeoProc::Make(proxies,
samplerState,
#ifdef SK_GAMMA_APPLY_TO_A8
lum,
@@ -494,13 +490,11 @@ private:
///////////////////////////////////////////////////////////////////////////////
GrDistanceFieldPathGeoProc::GrDistanceFieldPathGeoProc(
- GrColor color,
const SkMatrix& matrix,
const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState& params,
uint32_t flags)
: INHERITED(kGrDistanceFieldPathGeoProc_ClassID)
- , fColor(color)
, fMatrix(matrix)
, fFlags(flags & kNonLCD_DistanceFieldEffectMask)
, fInColor(nullptr) {
@@ -563,8 +557,7 @@ sk_sp<GrGeometryProcessor> GrDistanceFieldPathGeoProc::TestCreate(GrProcessorTes
flags |= d->fRandom->nextBool() ? kScaleOnly_DistanceFieldEffectFlag : 0;
}
- return GrDistanceFieldPathGeoProc::Make(GrRandomColor(d->fRandom),
- GrTest::TestMatrix(d->fRandom),
+ return GrDistanceFieldPathGeoProc::Make(GrTest::TestMatrix(d->fRandom),
proxies,
samplerState,
flags);
@@ -791,14 +784,12 @@ private:
///////////////////////////////////////////////////////////////////////////////
GrDistanceFieldLCDTextGeoProc::GrDistanceFieldLCDTextGeoProc(
- GrColor color,
const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState& params,
DistanceAdjust distanceAdjust,
uint32_t flags,
const SkMatrix& localMatrix)
: INHERITED(kGrDistanceFieldLCDTextGeoProc_ClassID)
- , fColor(color)
, fDistanceAdjust(distanceAdjust)
, fFlags(flags & kLCD_DistanceFieldEffectMask)
, fLocalMatrix(localMatrix) {
@@ -864,9 +855,7 @@ sk_sp<GrGeometryProcessor> GrDistanceFieldLCDTextGeoProc::TestCreate(GrProcessor
flags |= d->fRandom->nextBool() ? kScaleOnly_DistanceFieldEffectFlag : 0;
}
flags |= d->fRandom->nextBool() ? kBGR_DistanceFieldEffectFlag : 0;
- GrColor color = GrRandomColor(d->fRandom);
SkMatrix localMatrix = GrTest::TestMatrix(d->fRandom);
- return GrDistanceFieldLCDTextGeoProc::Make(color, proxies, samplerState, wa, flags,
- localMatrix);
+ return GrDistanceFieldLCDTextGeoProc::Make(proxies, samplerState, wa, flags, localMatrix);
}
#endif
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.h b/src/gpu/effects/GrDistanceFieldGeoProc.h
index f3fd67606b..aefb963102 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.h
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.h
@@ -57,20 +57,18 @@ public:
/** The local matrix should be identity if local coords are not required by the GrPipeline. */
#ifdef SK_GAMMA_APPLY_TO_A8
- static sk_sp<GrGeometryProcessor> Make(GrColor color,
- const sk_sp<GrTextureProxy> proxies[kMaxTextures],
+ static sk_sp<GrGeometryProcessor> Make(const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState& params, float lum, uint32_t flags,
const SkMatrix& localMatrixIfUsesLocalCoords) {
return sk_sp<GrGeometryProcessor>(new GrDistanceFieldA8TextGeoProc(
- color, proxies, params, lum, flags, localMatrixIfUsesLocalCoords));
+ proxies, params, lum, flags, localMatrixIfUsesLocalCoords));
}
#else
- static sk_sp<GrGeometryProcessor> Make(GrColor color,
- const sk_sp<GrTextureProxy> proxies[kMaxTextures],
+ static sk_sp<GrGeometryProcessor> Make(const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState& params, uint32_t flags,
const SkMatrix& localMatrixIfUsesLocalCoords) {
return sk_sp<GrGeometryProcessor>(new GrDistanceFieldA8TextGeoProc(
- color, proxies, params, flags, localMatrixIfUsesLocalCoords));
+ proxies, params, flags, localMatrixIfUsesLocalCoords));
}
#endif
@@ -81,7 +79,6 @@ public:
const Attribute* inPosition() const { return fInPosition; }
const Attribute* inColor() const { return fInColor; }
const Attribute* inTextureCoords() const { return fInTextureCoords; }
- GrColor color() const { return fColor; }
const SkMatrix& localMatrix() const { return fLocalMatrix; }
#ifdef SK_GAMMA_APPLY_TO_A8
float getDistanceAdjust() const { return fDistanceAdjust; }
@@ -95,14 +92,13 @@ public:
GrGLSLPrimitiveProcessor* createGLSLInstance(const GrShaderCaps&) const override;
private:
- GrDistanceFieldA8TextGeoProc(GrColor, const sk_sp<GrTextureProxy> proxies[kMaxTextures],
+ GrDistanceFieldA8TextGeoProc(const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState& params,
#ifdef SK_GAMMA_APPLY_TO_A8
float distanceAdjust,
#endif
uint32_t flags, const SkMatrix& localMatrix);
- GrColor fColor;
TextureSampler fTextureSamplers[kMaxTextures];
#ifdef SK_GAMMA_APPLY_TO_A8
float fDistanceAdjust;
@@ -129,11 +125,11 @@ public:
static constexpr int kMaxTextures = 4;
/** The local matrix should be identity if local coords are not required by the GrPipeline. */
- static sk_sp<GrGeometryProcessor> Make(GrColor color, const SkMatrix& matrix,
+ static sk_sp<GrGeometryProcessor> Make(const SkMatrix& matrix,
const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState& params, uint32_t flags) {
return sk_sp<GrGeometryProcessor>(
- new GrDistanceFieldPathGeoProc(color, matrix, proxies, params, flags));
+ new GrDistanceFieldPathGeoProc(matrix, proxies, params, flags));
}
~GrDistanceFieldPathGeoProc() override {}
@@ -143,7 +139,6 @@ public:
const Attribute* inPosition() const { return fInPosition; }
const Attribute* inColor() const { return fInColor; }
const Attribute* inTextureCoords() const { return fInTextureCoords; }
- GrColor color() const { return fColor; }
const SkMatrix& matrix() const { return fMatrix; }
uint32_t getFlags() const { return fFlags; }
@@ -154,11 +149,10 @@ public:
GrGLSLPrimitiveProcessor* createGLSLInstance(const GrShaderCaps&) const override;
private:
- GrDistanceFieldPathGeoProc(GrColor, const SkMatrix& matrix,
+ GrDistanceFieldPathGeoProc(const SkMatrix& matrix,
const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState&, uint32_t flags);
- GrColor fColor;
SkMatrix fMatrix; // view matrix if perspective, local matrix otherwise
TextureSampler fTextureSamplers[kMaxTextures];
uint32_t fFlags;
@@ -196,14 +190,13 @@ public:
static constexpr int kMaxTextures = 4;
- static sk_sp<GrGeometryProcessor> Make(GrColor color,
- const sk_sp<GrTextureProxy> proxies[kMaxTextures],
+ static sk_sp<GrGeometryProcessor> Make(const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState& params,
DistanceAdjust distanceAdjust,
uint32_t flags,
const SkMatrix& localMatrixIfUsesLocalCoords) {
return sk_sp<GrGeometryProcessor>(new GrDistanceFieldLCDTextGeoProc(
- color, proxies, params, distanceAdjust, flags, localMatrixIfUsesLocalCoords));
+ proxies, params, distanceAdjust, flags, localMatrixIfUsesLocalCoords));
}
~GrDistanceFieldLCDTextGeoProc() override {}
@@ -214,7 +207,6 @@ public:
const Attribute* inColor() const { return fInColor; }
const Attribute* inTextureCoords() const { return fInTextureCoords; }
DistanceAdjust getDistanceAdjust() const { return fDistanceAdjust; }
- GrColor color() const { return fColor; }
uint32_t getFlags() const { return fFlags; }
const SkMatrix& localMatrix() const { return fLocalMatrix; }
@@ -225,11 +217,10 @@ public:
GrGLSLPrimitiveProcessor* createGLSLInstance(const GrShaderCaps&) const override;
private:
- GrDistanceFieldLCDTextGeoProc(GrColor, const sk_sp<GrTextureProxy> proxies[kMaxTextures],
+ GrDistanceFieldLCDTextGeoProc(const sk_sp<GrTextureProxy> proxies[kMaxTextures],
const GrSamplerState& params, DistanceAdjust wa, uint32_t flags,
const SkMatrix& localMatrix);
- GrColor fColor;
TextureSampler fTextureSamplers[kMaxTextures];
DistanceAdjust fDistanceAdjust;
uint32_t fFlags;
diff --git a/src/gpu/ops/GrAtlasTextOp.cpp b/src/gpu/ops/GrAtlasTextOp.cpp
index 7c1d044469..8285d60ee3 100644
--- a/src/gpu/ops/GrAtlasTextOp.cpp
+++ b/src/gpu/ops/GrAtlasTextOp.cpp
@@ -23,7 +23,6 @@ static const int kDistanceAdjustLumShift = 5;
void GrAtlasTextOp::init() {
const Geometry& geo = fGeoData[0];
- fColor = geo.fColor;
SkRect bounds;
geo.fBlob->computeSubRunBounds(&bounds, geo.fRun, geo.fSubRun, geo.fViewMatrix, geo.fX, geo.fY);
// We don't have tight bounds on the glyph paths in device space. For the purposes of bounds
@@ -79,7 +78,7 @@ GrDrawOp::RequiresDstTexture GrAtlasTextOp::finalize(const GrCaps& caps,
if (kColorBitmapMask_MaskType == fMaskType) {
color.setToUnknown();
} else {
- color.setToConstant(fColor);
+ color.setToConstant(this->color());
}
switch (fMaskType) {
case kGrayscaleCoverageMask_MaskType:
@@ -96,9 +95,8 @@ GrDrawOp::RequiresDstTexture GrAtlasTextOp::finalize(const GrCaps& caps,
coverage = GrProcessorAnalysisCoverage::kNone;
break;
}
- auto analysis = fProcessors.finalize(color, coverage, clip, false, caps, dstIsClamped, &fColor);
- // We need to update the per-geo color after analysis, too. This one is sent per-vertex.
- fGeoData[0].fColor = fColor;
+ auto analysis = fProcessors.finalize(color, coverage, clip, false, caps, dstIsClamped,
+ &fGeoData[0].fColor);
fUsesLocalCoords = analysis.usesLocalCoords();
fCanCombineOnTouchOrOverlap =
!analysis.requiresDstTexture() &&
@@ -433,8 +431,8 @@ sk_sp<GrGeometryProcessor> GrAtlasTextOp::setupDfProcessor() const {
GrDistanceFieldLCDTextGeoProc::DistanceAdjust widthAdjust =
GrDistanceFieldLCDTextGeoProc::DistanceAdjust::Make(
redCorrection, greenCorrection, blueCorrection);
- return GrDistanceFieldLCDTextGeoProc::Make(this->color(), p, GrSamplerState::ClampBilerp(),
- widthAdjust, fDFGPFlags, localMatrix);
+ return GrDistanceFieldLCDTextGeoProc::Make(p, GrSamplerState::ClampBilerp(), widthAdjust,
+ fDFGPFlags, localMatrix);
} else {
#ifdef SK_GAMMA_APPLY_TO_A8
float correction = 0;
@@ -444,10 +442,10 @@ sk_sp<GrGeometryProcessor> GrAtlasTextOp::setupDfProcessor() const {
correction = fDistanceAdjustTable->getAdjustment(lum >> kDistanceAdjustLumShift,
fUseGammaCorrectDistanceTable);
}
- return GrDistanceFieldA8TextGeoProc::Make(this->color(), p, GrSamplerState::ClampBilerp(),
+ return GrDistanceFieldA8TextGeoProc::Make(p, GrSamplerState::ClampBilerp(),
correction, fDFGPFlags, localMatrix);
#else
- return GrDistanceFieldA8TextGeoProc::Make(this->color(), p, GrSamplerState::ClampBilerp(),
+ return GrDistanceFieldA8TextGeoProc::Make(p, GrSamplerState::ClampBilerp(),
fDFGPFlags, localMatrix);
#endif
}
diff --git a/src/gpu/ops/GrAtlasTextOp.h b/src/gpu/ops/GrAtlasTextOp.h
index cb15c36fb8..841e2a696c 100644
--- a/src/gpu/ops/GrAtlasTextOp.h
+++ b/src/gpu/ops/GrAtlasTextOp.h
@@ -132,7 +132,6 @@ private:
GrAtlasTextOp(GrPaint&& paint)
: INHERITED(ClassID())
, fGeoDataAllocSize(kMinGeometryAllocated)
- , fColor(paint.getColor())
, fSRGBFlags(GrPipeline::SRGBFlagsFromPaint(paint))
, fProcessors(std::move(paint)) {}
@@ -178,7 +177,7 @@ private:
inline void flush(GrMeshDrawOp::Target* target, FlushInfo* flushInfo) const;
- GrColor color() const { return fColor; }
+ GrColor color() const { SkASSERT(fGeoCount > 0); return fGeoData[0].fColor; }
bool usesLocalCoords() const { return fUsesLocalCoords; }
int numGlyphs() const { return fNumGlyphs; }
@@ -190,7 +189,6 @@ private:
SkAutoSTMalloc<kMinGeometryAllocated, Geometry> fGeoData;
int fGeoDataAllocSize;
- GrColor fColor;
uint32_t fSRGBFlags;
GrProcessorSet fProcessors;
bool fUsesLocalCoords;
diff --git a/src/gpu/ops/GrSmallPathRenderer.cpp b/src/gpu/ops/GrSmallPathRenderer.cpp
index 8c0cf5109e..873ad35def 100644
--- a/src/gpu/ops/GrSmallPathRenderer.cpp
+++ b/src/gpu/ops/GrSmallPathRenderer.cpp
@@ -249,8 +249,7 @@ private:
matrix = &SkMatrix::I();
}
flushInfo.fGeometryProcessor = GrDistanceFieldPathGeoProc::Make(
- this->color(), *matrix, atlas->getProxies(),
- GrSamplerState::ClampBilerp(), flags);
+ *matrix, atlas->getProxies(), GrSamplerState::ClampBilerp(), flags);
} else {
SkMatrix invert;
if (fHelper.usesLocalCoords()) {