Index: src/gpu/effects/GrBezierEffect.cpp |
diff --git a/src/gpu/effects/GrBezierEffect.cpp b/src/gpu/effects/GrBezierEffect.cpp |
index c9a2bea0522f150fce1086639b41527952a836e4..78633e59a8747bdaa8a3dc1c363a49d5fa0e6677 100644 |
--- a/src/gpu/effects/GrBezierEffect.cpp |
+++ b/src/gpu/effects/GrBezierEffect.cpp |
@@ -29,7 +29,7 @@ public: |
virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVERRIDE {} |
private: |
- GrBezierEdgeType fEdgeType; |
+ GrEffectEdgeType fEdgeType; |
typedef GrGLVertexEffect INHERITED; |
}; |
@@ -59,7 +59,7 @@ void GrGLConicEffect::emitCode(GrGLFullShaderBuilder* builder, |
builder->fsCodeAppend("\t\tfloat edgeAlpha;\n"); |
switch (fEdgeType) { |
- case kHairAA_GrBezierEdgeType: { |
+ case kHairlineAA_GrEffectEdgeType: { |
SkAssertResult(builder->enableFeature( |
GrGLShaderBuilder::kStandardDerivatives_GLSLFeature)); |
builder->fsCodeAppendf("\t\tvec3 dklmdx = dFdx(%s.xyz);\n", fsName); |
@@ -81,7 +81,7 @@ void GrGLConicEffect::emitCode(GrGLFullShaderBuilder* builder, |
// builder->fsCodeAppend("\t\tedgeAlpha = edgeAlpha*edgeAlpha*(3.0-2.0*edgeAlpha);\n"); |
break; |
} |
- case kFillAA_GrBezierEdgeType: { |
+ case kFillAA_GrEffectEdgeType: { |
SkAssertResult(builder->enableFeature( |
GrGLShaderBuilder::kStandardDerivatives_GLSLFeature)); |
builder->fsCodeAppendf("\t\tvec3 dklmdx = dFdx(%s.xyz);\n", fsName); |
@@ -102,12 +102,14 @@ void GrGLConicEffect::emitCode(GrGLFullShaderBuilder* builder, |
// builder->fsCodeAppend("\t\tedgeAlpha = edgeAlpha*edgeAlpha*(3.0-2.0*edgeAlpha);\n"); |
break; |
} |
- case kFillNoAA_GrBezierEdgeType: { |
+ case kFillBW_GrEffectEdgeType: { |
builder->fsCodeAppendf("\t\tedgeAlpha = %s.x*%s.x - %s.y*%s.z;\n", fsName, fsName, |
fsName, fsName); |
builder->fsCodeAppend("\t\tedgeAlpha = float(edgeAlpha < 0.0);\n"); |
break; |
} |
+ default: |
+ GrCrash("Shouldn't get here"); |
} |
builder->fsCodeAppendf("\t%s = %s;\n", outputColor, |
@@ -127,7 +129,7 @@ const GrBackendEffectFactory& GrConicEffect::getFactory() const { |
return GrTBackendEffectFactory<GrConicEffect>::getInstance(); |
} |
-GrConicEffect::GrConicEffect(GrBezierEdgeType edgeType) : GrVertexEffect() { |
+GrConicEffect::GrConicEffect(GrEffectEdgeType edgeType) : GrVertexEffect() { |
this->addVertexAttrib(kVec4f_GrSLType); |
fEdgeType = edgeType; |
} |
@@ -145,8 +147,13 @@ GrEffectRef* GrConicEffect::TestCreate(SkRandom* random, |
GrContext*, |
const GrDrawTargetCaps& caps, |
GrTexture*[]) { |
- const GrBezierEdgeType edgeType = static_cast<GrBezierEdgeType>(random->nextULessThan(3)); |
- return GrConicEffect::Create(edgeType, caps); |
+ GrEffectRef* effect; |
+ do { |
+ GrEffectEdgeType edgeType = static_cast<GrEffectEdgeType>( |
+ random->nextULessThan(kGrEffectEdgeTypeCnt)); |
+ effect = GrConicEffect::Create(edgeType, caps); |
+ } while (NULL == effect); |
+ return effect; |
} |
////////////////////////////////////////////////////////////////////////////// |
@@ -170,7 +177,7 @@ public: |
virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVERRIDE {} |
private: |
- GrBezierEdgeType fEdgeType; |
+ GrEffectEdgeType fEdgeType; |
typedef GrGLVertexEffect INHERITED; |
}; |
@@ -198,7 +205,7 @@ void GrGLQuadEffect::emitCode(GrGLFullShaderBuilder* builder, |
builder->addVarying(kVec4f_GrSLType, "HairQuadEdge", &vsName, &fsName); |
switch (fEdgeType) { |
- case kHairAA_GrBezierEdgeType: { |
+ case kHairlineAA_GrEffectEdgeType: { |
SkAssertResult(builder->enableFeature( |
GrGLShaderBuilder::kStandardDerivatives_GLSLFeature)); |
builder->fsCodeAppendf("\t\tvec2 duvdx = dFdx(%s.xy);\n", fsName); |
@@ -214,7 +221,7 @@ void GrGLQuadEffect::emitCode(GrGLFullShaderBuilder* builder, |
// builder->fsCodeAppend("\t\tedgeAlpha = edgeAlpha*edgeAlpha*(3.0-2.0*edgeAlpha);\n"); |
break; |
} |
- case kFillAA_GrBezierEdgeType: { |
+ case kFillAA_GrEffectEdgeType: { |
SkAssertResult(builder->enableFeature( |
GrGLShaderBuilder::kStandardDerivatives_GLSLFeature)); |
builder->fsCodeAppendf("\t\tvec2 duvdx = dFdx(%s.xy);\n", fsName); |
@@ -230,12 +237,14 @@ void GrGLQuadEffect::emitCode(GrGLFullShaderBuilder* builder, |
// builder->fsCodeAppend("\t\tedgeAlpha = edgeAlpha*edgeAlpha*(3.0-2.0*edgeAlpha);\n"); |
break; |
} |
- case kFillNoAA_GrBezierEdgeType: { |
+ case kFillBW_GrEffectEdgeType: { |
builder->fsCodeAppendf("\t\tedgeAlpha = (%s.x*%s.x - %s.y);\n", fsName, fsName, |
fsName); |
builder->fsCodeAppend("\t\tedgeAlpha = float(edgeAlpha < 0.0);\n"); |
break; |
} |
+ default: |
+ GrCrash("Shouldn't get here"); |
} |
builder->fsCodeAppendf("\t%s = %s;\n", outputColor, |
@@ -258,7 +267,7 @@ const GrBackendEffectFactory& GrQuadEffect::getFactory() const { |
return GrTBackendEffectFactory<GrQuadEffect>::getInstance(); |
} |
-GrQuadEffect::GrQuadEffect(GrBezierEdgeType edgeType) : GrVertexEffect() { |
+GrQuadEffect::GrQuadEffect(GrEffectEdgeType edgeType) : GrVertexEffect() { |
this->addVertexAttrib(kVec4f_GrSLType); |
fEdgeType = edgeType; |
} |
@@ -276,8 +285,13 @@ GrEffectRef* GrQuadEffect::TestCreate(SkRandom* random, |
GrContext*, |
const GrDrawTargetCaps& caps, |
GrTexture*[]) { |
- const GrBezierEdgeType edgeType = static_cast<GrBezierEdgeType>(random->nextULessThan(3)); |
- return GrQuadEffect::Create(edgeType, caps); |
+ GrEffectRef* effect; |
+ do { |
+ GrEffectEdgeType edgeType = static_cast<GrEffectEdgeType>( |
+ random->nextULessThan(kGrEffectEdgeTypeCnt)); |
+ effect = GrQuadEffect::Create(edgeType, caps); |
+ } while (NULL == effect); |
+ return effect; |
} |
////////////////////////////////////////////////////////////////////////////// |
@@ -301,7 +315,7 @@ public: |
virtual void setData(const GrGLUniformManager&, const GrDrawEffect&) SK_OVERRIDE {} |
private: |
- GrBezierEdgeType fEdgeType; |
+ GrEffectEdgeType fEdgeType; |
typedef GrGLVertexEffect INHERITED; |
}; |
@@ -331,7 +345,7 @@ void GrGLCubicEffect::emitCode(GrGLFullShaderBuilder* builder, |
builder->fsCodeAppend("\t\tfloat edgeAlpha;\n"); |
switch (fEdgeType) { |
- case kHairAA_GrBezierEdgeType: { |
+ case kHairlineAA_GrEffectEdgeType: { |
SkAssertResult(builder->enableFeature( |
GrGLShaderBuilder::kStandardDerivatives_GLSLFeature)); |
builder->fsCodeAppendf("\t\tvec3 dklmdx = dFdx(%s.xyz);\n", fsName); |
@@ -353,7 +367,7 @@ void GrGLCubicEffect::emitCode(GrGLFullShaderBuilder* builder, |
// builder->fsCodeAppend("\t\tedgeAlpha = edgeAlpha*edgeAlpha*(3.0-2.0*edgeAlpha);\n"); |
break; |
} |
- case kFillAA_GrBezierEdgeType: { |
+ case kFillAA_GrEffectEdgeType: { |
SkAssertResult(builder->enableFeature( |
GrGLShaderBuilder::kStandardDerivatives_GLSLFeature)); |
builder->fsCodeAppendf("\t\tvec3 dklmdx = dFdx(%s.xyz);\n", fsName); |
@@ -374,12 +388,14 @@ void GrGLCubicEffect::emitCode(GrGLFullShaderBuilder* builder, |
// builder->fsCodeAppend("\t\tedgeAlpha = edgeAlpha*edgeAlpha*(3.0-2.0*edgeAlpha);\n"); |
break; |
} |
- case kFillNoAA_GrBezierEdgeType: { |
+ case kFillBW_GrEffectEdgeType: { |
builder->fsCodeAppendf("\t\tedgeAlpha = %s.x*%s.x*%s.x - %s.y*%s.z;\n", |
fsName, fsName, fsName, fsName, fsName); |
builder->fsCodeAppend("\t\tedgeAlpha = float(edgeAlpha < 0.0);\n"); |
break; |
} |
+ default: |
+ GrCrash("Shouldn't get here"); |
} |
builder->fsCodeAppendf("\t%s = %s;\n", outputColor, |
@@ -399,7 +415,7 @@ const GrBackendEffectFactory& GrCubicEffect::getFactory() const { |
return GrTBackendEffectFactory<GrCubicEffect>::getInstance(); |
} |
-GrCubicEffect::GrCubicEffect(GrBezierEdgeType edgeType) : GrVertexEffect() { |
+GrCubicEffect::GrCubicEffect(GrEffectEdgeType edgeType) : GrVertexEffect() { |
this->addVertexAttrib(kVec4f_GrSLType); |
fEdgeType = edgeType; |
} |
@@ -417,6 +433,11 @@ GrEffectRef* GrCubicEffect::TestCreate(SkRandom* random, |
GrContext*, |
const GrDrawTargetCaps& caps, |
GrTexture*[]) { |
- const GrBezierEdgeType edgeType = static_cast<GrBezierEdgeType>(random->nextULessThan(3)); |
- return GrCubicEffect::Create(edgeType, caps); |
+ GrEffectRef* effect; |
+ do { |
+ GrEffectEdgeType edgeType = static_cast<GrEffectEdgeType>( |
+ random->nextULessThan(kGrEffectEdgeTypeCnt)); |
+ effect = GrCubicEffect::Create(edgeType, caps); |
+ } while (NULL == effect); |
+ return effect; |
} |