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
This commit is contained in:
parent
6df8e3495a
commit
9671ecd44e
@ -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(),
|
||||
|
Loading…
Reference in New Issue
Block a user