Add explicit conversion from uint2 to float2 for Vulkan
Change-Id: I07a28c77f3c9b87d6713ae1d6b7e7d1285098aa8
Reviewed-on: https://skia-review.googlesource.com/38728
Reviewed-by: Greg Daniel <egdaniel@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
diff --git a/src/gpu/effects/GrDistanceFieldGeoProc.cpp b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
index 87b47e4..3078786 100644
--- a/src/gpu/effects/GrDistanceFieldGeoProc.cpp
+++ b/src/gpu/effects/GrDistanceFieldGeoProc.cpp
@@ -79,13 +79,15 @@
// add varyings
GrGLSLVertToFrag uv(kVec2f_GrSLType);
varyingHandler->addVarying("TextureCoords", &uv, kHigh_GrSLPrecision);
- vertBuilder->codeAppendf("%s = %s * %s;", uv.vsOut(),
+ vertBuilder->codeAppendf("%s = float2(%s.x, %s.y) * %s;", uv.vsOut(),
+ dfTexEffect.inTextureCoords()->fName,
dfTexEffect.inTextureCoords()->fName,
atlasSizeInvName);
GrGLSLVertToFrag st(kVec2f_GrSLType);
varyingHandler->addVarying("IntTextureCoords", &st, kHigh_GrSLPrecision);
- vertBuilder->codeAppendf("%s = %s;", st.vsOut(),
+ vertBuilder->codeAppendf("%s = float2(%s.x, %s.y);", st.vsOut(),
+ dfTexEffect.inTextureCoords()->fName,
dfTexEffect.inTextureCoords()->fName);
bool isUniformScale = (dfTexEffect.getFlags() & kUniformScale_DistanceFieldEffectMask) ==
@@ -338,13 +340,15 @@
GrGLSLVertToFrag uv(kVec2f_GrSLType);
varyingHandler->addVarying("TextureCoords", &uv, kHigh_GrSLPrecision);
- vertBuilder->codeAppendf("%s = %s * %s;", uv.vsOut(),
+ vertBuilder->codeAppendf("%s = float2(%s.x, %s.y) * %s;", uv.vsOut(),
+ dfTexEffect.inTextureCoords()->fName,
dfTexEffect.inTextureCoords()->fName,
atlasSizeInvName);
GrGLSLVertToFrag st(kVec2f_GrSLType);
varyingHandler->addVarying("IntTextureCoords", &st, kHigh_GrSLPrecision);
- vertBuilder->codeAppendf("%s = %s;", st.vsOut(),
+ vertBuilder->codeAppendf("%s = float2(%s.x, %s.y);", st.vsOut(),
+ dfTexEffect.inTextureCoords()->fName,
dfTexEffect.inTextureCoords()->fName);
// setup pass through color
@@ -609,13 +613,15 @@
// set up varyings
GrGLSLVertToFrag uv(kVec2f_GrSLType);
varyingHandler->addVarying("TextureCoords", &uv, kHigh_GrSLPrecision);
- vertBuilder->codeAppendf("%s = %s * %s;", uv.vsOut(),
+ vertBuilder->codeAppendf("%s = float2(%s.x, %s.y) * %s;", uv.vsOut(),
+ dfTexEffect.inTextureCoords()->fName,
dfTexEffect.inTextureCoords()->fName,
atlasSizeInvName);
GrGLSLVertToFrag st(kVec2f_GrSLType);
varyingHandler->addVarying("IntTextureCoords", &st, kHigh_GrSLPrecision);
- vertBuilder->codeAppendf("%s = %s;", st.vsOut(),
+ vertBuilder->codeAppendf("%s = float2(%s.x, %s.y);", st.vsOut(),
+ dfTexEffect.inTextureCoords()->fName,
dfTexEffect.inTextureCoords()->fName);
GrGLSLVertToFrag delta(kFloat_GrSLType);