Add low blur and AAClip options to picture bench.
Copy the settings instead of pointing to the
original set on the stack.
Review URL: https://codereview.appspot.com/6818103
git-svn-id: http://skia.googlecode.com/svn/trunk@6330 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tools/PictureRenderer.cpp b/tools/PictureRenderer.cpp
index 59ba680..84b67d8 100644
--- a/tools/PictureRenderer.cpp
+++ b/tools/PictureRenderer.cpp
@@ -59,11 +59,17 @@
virtual void filter(SkPaint* paint, Type t) {
paint->setFlags(paint->getFlags() & ~fFlags[t] & SkPaint::kAllFlags);
- if (PictureRenderer::kBlur_DrawFilterFlag & fFlags[t]) {
+ if ((PictureRenderer::kBlur_DrawFilterFlag | PictureRenderer::kLowBlur_DrawFilterFlag)
+ & fFlags[t]) {
SkMaskFilter* maskFilter = paint->getMaskFilter();
SkMaskFilter::BlurInfo blurInfo;
if (maskFilter && maskFilter->asABlur(&blurInfo)) {
- paint->setMaskFilter(NULL);
+ if (PictureRenderer::kBlur_DrawFilterFlag & fFlags[t]) {
+ paint->setMaskFilter(NULL);
+ } else {
+ blurInfo.fHighQuality = false;
+ maskFilter->setAsABlur(blurInfo);
+ }
}
}
if (PictureRenderer::kHinting_DrawFilterFlag & fFlags[t]) {
@@ -80,6 +86,9 @@
static SkCanvas* setUpFilter(SkCanvas* canvas, PictureRenderer::DrawFilterFlags* drawFilters) {
if (drawFilters && !canvas->getDrawFilter()) {
canvas->setDrawFilter(SkNEW_ARGS(FlagsDrawFilter, (drawFilters)))->unref();
+ if (drawFilters[0] & PictureRenderer::kAAClip_DrawFilterFlag) {
+ canvas->setAllowSoftClip(false);
+ }
}
return canvas;
}