Index: gm/blurcircles.cpp |
diff --git a/gm/blurcircles.cpp b/gm/blurcircles.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..44f4d6d072bcf3d101df9b0747d7b904fb0fbfa6 |
--- /dev/null |
+++ b/gm/blurcircles.cpp |
@@ -0,0 +1,63 @@ |
+/* |
+* Copyright 2014 Google Inc. |
+* |
+* Use of this source code is governed by a BSD-style license that can be |
+* found in the LICENSE file. |
+*/ |
+ |
+#include "gm.h" |
+#include "SkBlurMask.h" |
+#include "SkBlurMaskFilter.h" |
+#include "SkCanvas.h" |
+#include "SkPaint.h" |
+#include "SkString.h" |
+ |
+class BlurCirclesGM : public skiagm::GM { |
+public: |
+ BlurCirclesGM() |
+ : fName("blurcircles") { |
+ } |
+ |
+protected: |
+ virtual uint32_t onGetFlags() const SK_OVERRIDE { |
+ return kSkipTiled_Flag; |
+ } |
+ |
+ virtual SkString onShortName() SK_OVERRIDE { |
+ return fName; |
+ } |
+ |
+ virtual SkISize onISize() SK_OVERRIDE { |
+ return SkISize::Make(950, 950); |
+ } |
+ |
+ virtual void onDraw(SkCanvas* canvas) SK_OVERRIDE { |
+ canvas->scale(1.5f, 1.5f); |
+ canvas->translate(50,50); |
+ |
+ const float blurRadii[] = { 1,5,10,20 }; |
+ const int circleRadii[] = { 5,10,25,50 }; |
+ for (size_t i = 0; i < SK_ARRAY_COUNT(blurRadii); ++i) { |
+ SkAutoCanvasRestore autoRestore(canvas, true); |
+ canvas->translate(0, SkIntToScalar(150*i)); |
+ for (size_t j = 0; j < SK_ARRAY_COUNT(circleRadii); ++j) { |
+ SkMaskFilter* filter = SkBlurMaskFilter::Create( |
+ kNormal_SkBlurStyle, |
+ SkBlurMask::ConvertRadiusToSigma(SkIntToScalar(blurRadii[i])), |
+ SkBlurMaskFilter::kHighQuality_BlurFlag); |
+ SkPaint paint; |
+ paint.setColor(SK_ColorBLACK); |
+ paint.setMaskFilter(filter)->unref(); |
+ |
+ canvas->drawCircle(SkIntToScalar(50),SkIntToScalar(50),SkIntToScalar(circleRadii[j]),paint); |
+ canvas->translate(SkIntToScalar(150), 0); |
+ } |
+ } |
+ } |
+private: |
+ const SkString fName; |
+ |
+ typedef skiagm::GM INHERITED; |
+}; |
+ |
+DEF_GM(return new BlurCirclesGM();) |