From 9671ecd44e48e8bbe1361830717b79c9c4dc9d17 Mon Sep 17 00:00:00 2001 From: jvanverth Date: Mon, 23 Feb 2015 13:08:39 -0800 Subject: Use highp for distance field texture coord varyings. Because the glyph texture atlas is 1024x2048, on certain platforms using mediump UVs is not enough resolution for doing texture lookups and getting good results for distance fields. Bumping these to highp solves this problem. BUG=skia:3445 Review URL: https://codereview.chromium.org/951003002 --- src/gpu/effects/GrDistanceFieldTextureEffect.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/gpu/effects/GrDistanceFieldTextureEffect.cpp b/src/gpu/effects/GrDistanceFieldTextureEffect.cpp index 9015a6ff43..3b9bc9b6f0 100755 --- a/src/gpu/effects/GrDistanceFieldTextureEffect.cpp +++ b/src/gpu/effects/GrDistanceFieldTextureEffect.cpp @@ -50,11 +50,11 @@ public: vsBuilder->emitAttributes(dfTexEffect); GrGLVertToFrag st(kVec2f_GrSLType); - args.fPB->addVarying("IntTextureCoords", &st); + args.fPB->addVarying("IntTextureCoords", &st, kHigh_GrSLPrecision); vsBuilder->codeAppendf("%s = %s;", st.vsOut(), dfTexEffect.inTextureCoords()->fName); GrGLVertToFrag uv(kVec2f_GrSLType); - args.fPB->addVarying("TextureCoords", &uv); + args.fPB->addVarying("TextureCoords", &uv, kHigh_GrSLPrecision); // this is only used with text, so our texture bounds always match the glyph atlas vsBuilder->codeAppendf("%s = vec2(" GR_FONT_ATLAS_RECIP_WIDTH ", " GR_FONT_ATLAS_RECIP_HEIGHT ")*%s;", uv.vsOut(), @@ -335,7 +335,7 @@ public: vsBuilder->emitAttributes(dfTexEffect); GrGLVertToFrag v(kVec2f_GrSLType); - args.fPB->addVarying("TextureCoords", &v); + args.fPB->addVarying("TextureCoords", &v, kHigh_GrSLPrecision); // setup pass through color this->setupColorPassThrough(pb, local.fInputColorType, args.fOutputColor, @@ -576,11 +576,11 @@ public: vsBuilder->emitAttributes(dfTexEffect); GrGLVertToFrag st(kVec2f_GrSLType); - args.fPB->addVarying("IntTextureCoords", &st); + args.fPB->addVarying("IntTextureCoords", &st, kHigh_GrSLPrecision); vsBuilder->codeAppendf("%s = %s;", st.vsOut(), dfTexEffect.inTextureCoords()->fName); GrGLVertToFrag uv(kVec2f_GrSLType); - args.fPB->addVarying("TextureCoords", &uv); + args.fPB->addVarying("TextureCoords", &uv, kHigh_GrSLPrecision); // this is only used with text, so our texture bounds always match the glyph atlas vsBuilder->codeAppendf("%s = vec2(" GR_FONT_ATLAS_RECIP_WIDTH ", " GR_FONT_ATLAS_RECIP_HEIGHT ")*%s;", uv.vsOut(), -- cgit v1.2.3