| Index: src/gpu/effects/GrDistanceFieldGeoProc.cpp
|
| diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
|
| index f6c41cbf1924621a0718a02e1d1ebe5ceade3e7e..7a63a62dec62a973bd44d38664b82732880361ff 100644
|
| --- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
|
| +++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
|
| @@ -26,7 +26,6 @@ class GrGLDistanceFieldA8TextGeoProc : public GrGLSLGeometryProcessor {
|
| public:
|
| GrGLDistanceFieldA8TextGeoProc()
|
| : fViewMatrix(SkMatrix::InvalidMatrix())
|
| - , fColor(GrColor_ILLEGAL)
|
| #ifdef SK_GAMMA_APPLY_TO_A8
|
| , fDistanceAdjust(-1.0f)
|
| #endif
|
| @@ -57,12 +56,7 @@ public:
|
|
|
| // Setup pass through color
|
| if (!dfTexEffect.colorIgnored()) {
|
| - if (dfTexEffect.hasVertexColor()) {
|
| - varyingHandler->addPassThroughAttribute(dfTexEffect.inColor(), args.fOutputColor);
|
| - } else {
|
| - this->setupUniformColor(fragBuilder, uniformHandler, args.fOutputColor,
|
| - &fColorUniform);
|
| - }
|
| + varyingHandler->addPassThroughAttribute(dfTexEffect.inColor(), args.fOutputColor);
|
| }
|
|
|
| // Setup position
|
| @@ -174,13 +168,6 @@ public:
|
| GrGLSLGetMatrix<3>(viewMatrix, fViewMatrix);
|
| pdman.setMatrix3f(fViewMatrixUniform, viewMatrix);
|
| }
|
| -
|
| - if (dfa8gp.color() != fColor && !dfa8gp.hasVertexColor()) {
|
| - float c[4];
|
| - GrColorToRGBAFloat(dfa8gp.color(), c);
|
| - pdman.set4fv(fColorUniform, 1, c);
|
| - fColor = dfa8gp.color();
|
| - }
|
| }
|
|
|
| static inline void GenKey(const GrGeometryProcessor& gp,
|
| @@ -188,8 +175,7 @@ public:
|
| GrProcessorKeyBuilder* b) {
|
| const GrDistanceFieldA8TextGeoProc& dfTexEffect = gp.cast<GrDistanceFieldA8TextGeoProc>();
|
| uint32_t key = dfTexEffect.getFlags();
|
| - key |= dfTexEffect.hasVertexColor() << 16;
|
| - key |= dfTexEffect.colorIgnored() << 17;
|
| + key |= dfTexEffect.colorIgnored() << 16;
|
| key |= ComputePosKey(dfTexEffect.viewMatrix()) << 25;
|
| b->add32(key);
|
|
|
| @@ -203,8 +189,6 @@ public:
|
|
|
| private:
|
| SkMatrix fViewMatrix;
|
| - GrColor fColor;
|
| - UniformHandle fColorUniform;
|
| UniformHandle fViewMatrixUniform;
|
| #ifdef SK_GAMMA_APPLY_TO_A8
|
| float fDistanceAdjust;
|
| @@ -238,9 +222,7 @@ GrDistanceFieldA8TextGeoProc::GrDistanceFieldA8TextGeoProc(GrColor color,
|
| this->initClassID<GrDistanceFieldA8TextGeoProc>();
|
| fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertexAttribType,
|
| kHigh_GrSLPrecision));
|
| - if (flags & kColorAttr_DistanceFieldEffectFlag) {
|
| - fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexAttribType));
|
| - }
|
| + fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexAttribType));
|
| fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords",
|
| kVec2s_GrVertexAttribType));
|
| this->addTextureAccess(&fTextureAccess);
|
| @@ -291,7 +273,6 @@ class GrGLDistanceFieldPathGeoProc : public GrGLSLGeometryProcessor {
|
| public:
|
| GrGLDistanceFieldPathGeoProc()
|
| : fViewMatrix(SkMatrix::InvalidMatrix())
|
| - , fColor(GrColor_ILLEGAL)
|
| , fTextureSize(SkISize::Make(-1, -1)) {}
|
|
|
| void onEmitCode(EmitArgs& args, GrGPArgs* gpArgs) override{
|
| @@ -313,12 +294,7 @@ public:
|
|
|
| // setup pass through color
|
| if (!dfTexEffect.colorIgnored()) {
|
| - if (dfTexEffect.hasVertexColor()) {
|
| - varyingHandler->addPassThroughAttribute(dfTexEffect.inColor(), args.fOutputColor);
|
| - } else {
|
| - this->setupUniformColor(fragBuilder, uniformHandler, args.fOutputColor,
|
| - &fColorUniform);
|
| - }
|
| + varyingHandler->addPassThroughAttribute(dfTexEffect.inColor(), args.fOutputColor);
|
| }
|
| vertBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoords()->fName);
|
|
|
| @@ -415,13 +391,6 @@ public:
|
| GrGLSLGetMatrix<3>(viewMatrix, fViewMatrix);
|
| pdman.setMatrix3f(fViewMatrixUniform, viewMatrix);
|
| }
|
| -
|
| - if (dfpgp.color() != fColor && !dfpgp.hasVertexColor()) {
|
| - float c[4];
|
| - GrColorToRGBAFloat(dfpgp.color(), c);
|
| - pdman.set4fv(fColorUniform, 1, c);
|
| - fColor = dfpgp.color();
|
| - }
|
| }
|
|
|
| static inline void GenKey(const GrGeometryProcessor& gp,
|
| @@ -431,17 +400,14 @@ public:
|
|
|
| uint32_t key = dfTexEffect.getFlags();
|
| key |= dfTexEffect.colorIgnored() << 16;
|
| - key |= dfTexEffect.hasVertexColor() << 17;
|
| key |= ComputePosKey(dfTexEffect.viewMatrix()) << 25;
|
| b->add32(key);
|
| }
|
|
|
| private:
|
| - UniformHandle fColorUniform;
|
| UniformHandle fTextureSizeUni;
|
| UniformHandle fViewMatrixUniform;
|
| SkMatrix fViewMatrix;
|
| - GrColor fColor;
|
| SkISize fTextureSize;
|
|
|
| typedef GrGLSLGeometryProcessor INHERITED;
|
| @@ -466,9 +432,7 @@ GrDistanceFieldPathGeoProc::GrDistanceFieldPathGeoProc(
|
| this->initClassID<GrDistanceFieldPathGeoProc>();
|
| fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertexAttribType,
|
| kHigh_GrSLPrecision));
|
| - if (flags & kColorAttr_DistanceFieldEffectFlag) {
|
| - fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexAttribType));
|
| - }
|
| + fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexAttribType));
|
| fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords",
|
| kVec2f_GrVertexAttribType));
|
| this->addTextureAccess(&fTextureAccess);
|
| @@ -516,7 +480,7 @@ const GrGeometryProcessor* GrDistanceFieldPathGeoProc::TestCreate(GrProcessorTes
|
| class GrGLDistanceFieldLCDTextGeoProc : public GrGLSLGeometryProcessor {
|
| public:
|
| GrGLDistanceFieldLCDTextGeoProc()
|
| - : fViewMatrix(SkMatrix::InvalidMatrix()), fColor(GrColor_ILLEGAL) {
|
| + : fViewMatrix(SkMatrix::InvalidMatrix()) {
|
| fDistanceAdjust = GrDistanceFieldLCDTextGeoProc::DistanceAdjust::Make(1.0f, 1.0f, 1.0f);
|
| }
|
|
|
| @@ -535,12 +499,7 @@ public:
|
|
|
| // setup pass through color
|
| if (!dfTexEffect.colorIgnored()) {
|
| - if (dfTexEffect.hasVertexColor()) {
|
| - varyingHandler->addPassThroughAttribute(dfTexEffect.inColor(), args.fOutputColor);
|
| - } else {
|
| - this->setupUniformColor(fragBuilder, uniformHandler, args.fOutputColor,
|
| - &fColorUniform);
|
| - }
|
| + varyingHandler->addPassThroughAttribute(dfTexEffect.inColor(), args.fOutputColor);
|
| }
|
|
|
| // Setup position
|
| @@ -700,13 +659,6 @@ public:
|
| GrGLSLGetMatrix<3>(viewMatrix, fViewMatrix);
|
| pdman.setMatrix3f(fViewMatrixUniform, viewMatrix);
|
| }
|
| -
|
| - if (dflcd.color() != fColor && !dflcd.hasVertexColor()) {
|
| - float c[4];
|
| - GrColorToRGBAFloat(dflcd.color(), c);
|
| - pdman.set4fv(fColorUniform, 1, c);
|
| - fColor = dflcd.color();
|
| - }
|
| }
|
|
|
| static inline void GenKey(const GrGeometryProcessor& gp,
|
| @@ -729,7 +681,6 @@ public:
|
|
|
| private:
|
| SkMatrix fViewMatrix;
|
| - GrColor fColor;
|
| UniformHandle fViewMatrixUniform;
|
| UniformHandle fColorUniform;
|
| GrDistanceFieldLCDTextGeoProc::DistanceAdjust fDistanceAdjust;
|
| @@ -755,9 +706,7 @@ GrDistanceFieldLCDTextGeoProc::GrDistanceFieldLCDTextGeoProc(
|
| this->initClassID<GrDistanceFieldLCDTextGeoProc>();
|
| fInPosition = &this->addVertexAttrib(Attribute("inPosition", kVec2f_GrVertexAttribType,
|
| kHigh_GrSLPrecision));
|
| - if (flags & kColorAttr_DistanceFieldEffectFlag) {
|
| - fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexAttribType));
|
| - }
|
| + fInColor = &this->addVertexAttrib(Attribute("inColor", kVec4ub_GrVertexAttribType));
|
| fInTextureCoords = &this->addVertexAttrib(Attribute("inTextureCoords",
|
| kVec2s_GrVertexAttribType));
|
| this->addTextureAccess(&fTextureAccess);
|
|
|