Index: src/gpu/effects/GrDistanceFieldTextureEffect.cpp |
diff --git a/src/gpu/effects/GrDistanceFieldTextureEffect.cpp b/src/gpu/effects/GrDistanceFieldTextureEffect.cpp |
index b9776986b54dfb969bbff17897908fd296d6c597..d710a0e0b18fceafae14cd11af74afafe625cea9 100755 |
--- a/src/gpu/effects/GrDistanceFieldTextureEffect.cpp |
+++ b/src/gpu/effects/GrDistanceFieldTextureEffect.cpp |
@@ -45,6 +45,11 @@ public: |
GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); |
vsBuilder->codeAppendf("\t%s = %s;\n", v.vsOut(), dfTexEffect.inTextureCoords().c_str()); |
+ // setup position varying |
+ vsBuilder->codeAppendf("vec3 pos3 = %s * vec3(%s, 1);", args.fGP.uViewM(), |
+ args.fGP.inPosition()); |
+ vsBuilder->transformPositionToDeviceSpace("pos3"); |
+ |
const char* textureSizeUniName = NULL; |
fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
kVec2f_GrSLType, "TextureSize", |
@@ -256,6 +261,11 @@ public: |
GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); |
vsBuilder->codeAppendf("%s = %s;", v.vsOut(), dfTexEffect.inTextureCoords().c_str()); |
+ // setup position varying |
+ vsBuilder->codeAppendf("vec3 pos3 = %s * vec3(%s, 1);", args.fGP.uViewM(), |
+ args.fGP.inPosition()); |
+ vsBuilder->transformPositionToDeviceSpace("pos3"); |
+ |
const char* textureSizeUniName = NULL; |
fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibility, |
kVec2f_GrSLType, "TextureSize", |
@@ -410,6 +420,11 @@ public: |
GrGLVertexBuilder* vsBuilder = args.fPB->getVertexShaderBuilder(); |
vsBuilder->codeAppendf("\t%s = %s;\n", v.vsOut(), dfTexEffect.inTextureCoords().c_str()); |
+ // setup position varying |
+ vsBuilder->codeAppendf("vec3 pos3 = %s * vec3(%s, 1);", args.fGP.uViewM(), |
+ args.fGP.inPosition()); |
+ vsBuilder->transformPositionToDeviceSpace("pos3"); |
+ |
const char* textureSizeUniName = NULL; |
// width, height, 1/(3*width) |
fTextureSizeUni = args.fPB->addUniform(GrGLProgramBuilder::kFragment_Visibility, |