| Index: src/core/SkNormalSource.cpp
|
| diff --git a/src/core/SkNormalSource.cpp b/src/core/SkNormalSource.cpp
|
| index 421f56459d0a4c0cf75cd17719ab119f215f44ff..7a4bb2de59ea7797d0bb087c8a196cfcadb82561 100644
|
| --- a/src/core/SkNormalSource.cpp
|
| +++ b/src/core/SkNormalSource.cpp
|
| @@ -385,6 +385,8 @@ public:
|
| : fType(type)
|
| , fWidth(width)
|
| , fHeight(height) {
|
| + fUsesDistanceVectorField = true;
|
| +
|
| this->initClassID<NormalBevelFP>();
|
| }
|
|
|
| @@ -395,7 +397,15 @@ public:
|
| void emitCode(EmitArgs& args) override {
|
| GrGLSLFragmentBuilder* fragBuilder = args.fFragBuilder;
|
|
|
| - fragBuilder->codeAppendf("%s = vec4(0, 0, 1, 0);", args.fOutputColor);
|
| + fragBuilder->codeAppendf("if (%s == vec2(0.0, 0.0)) {",
|
| + fragBuilder->distanceVectorName());
|
| + fragBuilder->codeAppendf(" %s = normalize(vec4(0.0, 0.0, 1.0, 0.0));",
|
| + args.fOutputColor);
|
| + fragBuilder->codeAppend( "} else {");
|
| + // TODO (dvonbeck): emit normals according to bevel type and distance vector
|
| + fragBuilder->codeAppendf(" %s = normalize(vec4(0.0, 0.0, 1.0, 0.0));",
|
| + args.fOutputColor);
|
| + fragBuilder->codeAppend( "}");
|
| }
|
|
|
| static void GenKey(const GrProcessor& proc, const GrGLSLCaps&,
|
|
|