Fix kernel width calculation in GPU-based Gaussian blur. When converting the

sigma value to a kernel width, it should be rounded up.  Otherwise, for small
sigmas, the edge pixels of the kernel may be missing.



git-svn-id: http://skia.googlecode.com/svn/trunk@1891 2bbb7eff-a529-9590-31e7-b0007b416f81
This commit is contained in:
senorblanco@chromium.org 2011-07-18 21:48:35 +00:00
parent ef427d4712
commit 4a947d264b
2 changed files with 2 additions and 2 deletions

View File

@ -28,7 +28,7 @@ protected:
SkBlurMaskFilter::kHighQuality_BlurFlag);
paint.setMaskFilter(mf)->unref();
canvas->translate(200, 200);
canvas->drawCircle(100, 100, 250, paint);
canvas->drawCircle(100, 100, 200, paint);
canvas->restore();
}

View File

@ -865,7 +865,7 @@ static bool drawWithGPUMaskFilter(GrContext* context, const SkPath& path,
sigma *= 0.5f;
}
scaleRect(&srcRect, 1.0f / scaleFactor);
int halfWidth = static_cast<int>(sigma * 3.0f);
int halfWidth = static_cast<int>(ceilf(sigma * 3.0f));
int kernelWidth = halfWidth * 2 + 1;
SkIRect srcIRect;