aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--gm/blurimagevmask.cpp57
-rw-r--r--gn/gm.gni1
2 files changed, 58 insertions, 0 deletions
diff --git a/gm/blurimagevmask.cpp b/gm/blurimagevmask.cpp
new file mode 100644
index 0000000000..15f8d1e1ca
--- /dev/null
+++ b/gm/blurimagevmask.cpp
@@ -0,0 +1,57 @@
+/*
+ * Copyright 2017 Google Inc.
+ *
+ * Use of this source code is governed by a BSD-style license that can be
+ * found in the LICENSE file.
+ */
+
+#include "SkBlurMaskFilter.h"
+#include "SkBlurImageFilter.h"
+#include "gm.h"
+#include "sk_tool_utils.h"
+
+
+DEF_SIMPLE_GM(blurimagevmask, canvas, 700, 1200) {
+ SkPaint paint;
+ paint.setAntiAlias(true);
+ paint.setColor(SK_ColorBLACK);
+
+ SkPaint textPaint;
+ textPaint.setAntiAlias(true);
+ sk_tool_utils::set_portable_typeface(&textPaint);
+ textPaint.setTextSize(SkIntToScalar(25));
+
+ const double sigmas[] = {3.0, 8.0, 16.0, 24.0, 32.0};
+
+ canvas->drawString("mask blur", 285, 50, textPaint);
+ canvas->drawString("image blur", 285 + 250, 50, textPaint);
+
+
+ SkRect r = {35, 100, 135, 200};
+ for (auto sigma:sigmas) {
+
+ canvas->drawRect(r, paint);
+
+ char out[100];
+ sprintf(out, "Sigma: %g", sigma);
+ canvas->drawString(out, r.left(), r.bottom() + 35, textPaint);
+
+ r.offset(250, 0);
+
+ paint.setMaskFilter(
+ SkBlurMaskFilter::Make(kNormal_SkBlurStyle, sigma,
+ SkBlurMaskFilter::kHighQuality_BlurFlag));
+ canvas->drawRect(r, paint);
+ paint.setMaskFilter(nullptr);
+
+ SkPaint imageBlurPaint;
+ r.offset(250, 0);
+ imageBlurPaint.setImageFilter(SkBlurImageFilter::Make(sigma, sigma, nullptr));
+ canvas->saveLayer(nullptr, &imageBlurPaint);
+
+ canvas->drawRect(r, paint);
+ canvas->restore();
+ r.offset(-500, 200);
+ }
+
+}
diff --git a/gn/gm.gni b/gn/gm.gni
index 077b80a8c1..a667b89932 100644
--- a/gn/gm.gni
+++ b/gn/gm.gni
@@ -43,6 +43,7 @@ gm_sources = [
"$_gm/blurcircles.cpp",
"$_gm/blurcircles2.cpp",
"$_gm/blurignorexform.cpp",
+ "$_gm/blurimagevmask.cpp",
"$_gm/blurquickreject.cpp",
"$_gm/blurrect.cpp",
"$_gm/blurredclippedcircle.cpp",