Have GrRectBlurEffect use Linear filtering (rather than Nearest Neighbor)

Committed: https://skia.googlesource.com/skia/+/2d70bcccc9ba8f3898a7ae506ba7410ed8e9c9db

Review URL: https://codereview.chromium.org/1378023004
diff --git a/src/effects/SkBlurMask.cpp b/src/effects/SkBlurMask.cpp
index acee70f..1445c7c 100644
--- a/src/effects/SkBlurMask.cpp
+++ b/src/effects/SkBlurMask.cpp
@@ -681,7 +681,7 @@
 uint8_t* SkBlurMask::ComputeBlurProfile(SkScalar sigma) {
     int size = SkScalarCeilToInt(6*sigma);
 
-    int center = size >> 1;
+    float center = 0.5f * size;
     uint8_t* profile = new uint8_t[size];
 
     float invr = 1.f/(2*sigma);
diff --git a/src/effects/SkBlurMaskFilter.cpp b/src/effects/SkBlurMaskFilter.cpp
index 58242b7..cb28cbd 100644
--- a/src/effects/SkBlurMaskFilter.cpp
+++ b/src/effects/SkBlurMaskFilter.cpp
@@ -677,7 +677,7 @@
                                  const char *sharp_width) {
     fsBuilder->codeAppendf("\tfloat %s;\n", output);
     fsBuilder->codeAppendf("\t\t{\n");
-    fsBuilder->codeAppendf("\t\t\tfloat coord = (0.5 * (abs(2.0*%s - %s) - %s))/%s;\n",
+    fsBuilder->codeAppendf("\t\t\tfloat coord = (0.5 * (abs(2.0*%s - %s) - %s) + 0.5)/%s;\n",
                            loc, blurred_width, sharp_width, profileSize);
     fsBuilder->codeAppendf("\t\t\t%s = ", output);
     fsBuilder->appendTextureLookup(sampler, "vec2(coord,0.5)");
@@ -769,7 +769,7 @@
 GrRectBlurEffect::GrRectBlurEffect(const SkRect& rect, float sigma, GrTexture *blurProfile)
     : fRect(rect)
     , fSigma(sigma)
-    , fBlurProfileAccess(blurProfile) {
+    , fBlurProfileAccess(blurProfile, GrTextureParams::kBilerp_FilterMode) {
     this->initClassID<GrRectBlurEffect>();
     this->addTextureAccess(&fBlurProfileAccess);
     this->setWillReadFragmentPosition();